{"version":3,"file":"index.prod.mjs","names":["plugin","options","_bPrefix","_ePrefix","_mPrefix","c","t","blockPrefix","elementPrefix","modifierPrefix","_plugin","install","instance","ctx","context","bem","b","els","arg","memorizedB","memorizedE","before","after","$","props","bPrefix","e","split","map","v","trim","el","join","m","modifiers","elementToSelector","modifier","undefined","process","env","NODE_ENV","length","Error","notM","cB","args","cE","cM","cNotM","Object","assign","ampCount","selector","cnt","i","length","separatorRegex","extraSpaceRegex","resolveSelectorWithAmp","amp","nextAmp","split","forEach","partialSelector","round","partialAmp","push","replace","partialNextAmp","nextPartialNextAmp","selectorItr","part","resolveSelector","parseSelectorPath","selectorPaths","trim","includes","join","removeElement","el","parentElement","removeChild","queryElement","id","parent","document","head","querySelector","createElement","setAttribute","isMediaOrSupports","selector","test","parseSelectorPath","isMediaOrSupports","kebabRegex","kebabCase","pattern","replace","match","toLowerCase","unwrapProperty","prop","indent","Object","entries","map","v","join","unwrapProperties","props","instance","params","context","createStyle","selector","unwrappedProps","propertyNames","keys","length","config","keepEmptyBlock","statements","forEach","propertyName","property","push","undefined","loopCNodeListWithCallback","children","options","callback","child","Array","isArray","grandChildren","traverseCNode","node","selectorPaths","styles","$","blockSelector","before","style","childNode","raw","pop","after","render","murmur2","str","h","k","i","len","length","charCodeAt","toString","hash","createElement","queryElement","removeElement","window","__cssrContext","unmount","instance","node","id","parent","els","undefined","forEach","target","includes","filter","el","addElementToList","push","mount","props","head","force","anchorMetaName","ssrAdapter","style","render","adapter","document","queriedTarget","textContent","anchorMetaEl","querySelector","insertBefore","appendChild","render","mount","unmount","wrappedRender","props","instance","wrappedMount","options","id","ssr","head","force","anchorMetaName","parent","targetElement","wrappedUnmount","createCNode","$","children","els","c","Array","isArray","c","queryElement","CssRender","config","cssr","args","use","plugin","install","find","context","queryElement","exists","id","ssr","undefined","context","ids","has","onceCbs","paramsMap","WeakMap","flushOnceCallbacks","forEach","cb","get","beforeNextFrameOnce","params","set","includes","push","requestAnimationFrame","getParentNode","node","nodeType","parentNode","getScrollParent","document","documentElement","overflow","overflowX","overflowY","getComputedStyle","test","unwrapElement","target","document","querySelector","happensIn","e","dataSetPropName","target","dataset","undefined","parentElement","getPreciseEventTarget","event","composedPath","parseResponsiveProp","reponsiveProp","toString","params","split","forEach","pairLiteral","prefix","value","undefined","parseResponsivePropValue","activeKeyOrSize","_a","classObj","Array","isArray","i","length","key","activeValue","activeKey","Object","keys","keyAsNum","Number","isNaN","depx","value","endsWith","Number","slice","length","pxfy","undefined","getMargin","position","parts","trim","split","margin","top","right","bottom","left","Error","getGap","orient","rowGap","colGap","row","col","getPadding","parseResponsiveProp","parseResponsivePropValue","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","transparent","hsl2hsv","h","s","l","v","Math","min","hsv2hsl","m","hsv2rgb","f","n","k","max","rgb2hsv","r","g","b","c","rgb2hsl","abs","hsl2rgb","a","colors","hsl2rgb","hsv2rgb","prefix","suffix","percent","float","hex","dhex","hslRegex","RegExp","hsvRegex","hslaRegex","hsvaRegex","rgbRegex","rgbaRegex","sHexRegex","hexRegex","sHexaRegex","hexaRegex","parseHex","value","parseInt","hsla","color","i","exec","roundDeg","roundPercent","roundAlpha","Error","e","hsva","rgba","roundChannel","test","h","s","l","a","v","normalizeAlpha","alphaValue","stringifyRgb","r","g","b","stringifyRgba","compositeChannel","v1","a1","v2","a2","composite","background","overlay","Array","isArray","alpha","changeColor","base","options","scaleColor","lightness","toRgbaString","getAlpha","_a","getAlphaString","Math","round","Number","toRgbString","toHsvString","toHsvaString","toHslString","toHslaString","toHexaString","slice","map","unit","toString","toUpperCase","padStart","join","length","toHexString","hsl2hsv","hsv2hsl","rgb2hsv","rgb2hsl","createId","length","Math","random","toString","slice","repeat","count","v","ret","i","push","indexMap","createValue","sleep","ms","Promise","resolve","setTimeout","getEventTarget","e","path","composedPath","on","off","getEventTarget","traps","mousemoveoutside","WeakMap","clickoutside","createTrapHandler","name","el","originalHandler","moveHandler","e","contains","mousemove","touchstart","mouseDownOutside","downHandler","upHanlder","mousedown","mouseup","touchend","console","error","ensureTrapHandlers","handler","handlers","elHandlers","get","undefined","set","trapHandler","trapOn","options","trapHandlers","Object","keys","forEach","key","document","trapOff","trapOn","trapOff","getEventTarget","createDelegate","window","on","off","propagationStopped","WeakMap","immediatePropagationStopped","trackPropagation","set","trackImmediate","spy","event","propName","fn","source","apply","arguments","unspy","Event","prototype","currentTargets","currentTargetDescriptor","Object","getOwnPropertyDescriptor","getCurrentTarget","_a","get","defineCurrentTarget","getter","undefined","defineProperty","configurable","enumerable","phaseToTypeToElToHandlers","bubble","capture","typeToWindowEventHandlers","createUnifiedHandler","delegeteHandler","e","type","eventPhase","bubbles","target","phase","cursor","path","push","parentNode","captureElToHandlers","bubbleElToHandlers","i","length","has","handlers","handler","bubbleHandlers","displayName","createUnifiedWindowEventHandler","delegateHandler","forEach","unifiedHandler","unfiendWindowEventHandler","ensureElToHandlers","phaseHandlers","Map","addEventListener","ensureWindowEventHandlers","windowEventHandlers","Set","ensureHandlers","elToHandlers","el","elHandlers","handlerExist","windowEventHandlerExist","options","mergedHandler","once","trapped","add","mirrorPhase","delete","size","removeEventListener","ref","readonly","watch","useFalseUntilTruthy","originalRef","currentRef","value","stop","computed","ref","watch","useMemo","getterOrOptions","computedValueRef","valueRef","value","__v_isRef","v","set","getCurrentInstance","hasInstance","isBrowser","window","onMounted","onBeforeUnmount","isBrowser","fontsReady","isFontReady","init","_a","_b","document","fonts","ready","undefined","then","onFontsReady","cb","deactivated","ref","readonly","onBeforeMount","onBeforeUnmount","on","off","hasInstance","isBrowser","mousePositionRef","clickHandler","e","clientX","clientY","value","x","y","target","Element","left","top","width","height","getBoundingClientRect","usedCount","managable","useClickPosition","document","setup","onBeforeMount","onBeforeUnmount","ref","readonly","on","off","hasInstance","isBrowser","clickedTimeRef","undefined","usedCount","handleClick","value","Date","now","managable","useClicked","timeout","clickedRef","timerId","clearTimer","window","clearTimeout","clickedHandler","setTimeout","setup","ref","readonly","onBeforeMount","onBeforeUnmount","hasInstance","usedCount","supportMatchMedia","window","matchMedia","undefined","osTheme","darkMql","lightMql","handleDarkMqlChange","e","matches","value","handleLightMqlChange","init","addEventListener","addListener","clean","removeEventListener","removeListener","managable","useOsTheme","process","env","NODE_ENV","watch","computed","useMergedState","controlledStateRef","uncontrolledStateRef","value","undefined","ref","onMounted","readonly","isMounted","value","computed","useCompitable","reactive","keys","key","undefined","length","isIos","window","test","navigator","platform","maxTouchPoints","MSStream","useIsIos","ref","computed","onBeforeUnmount","isBrowser","defaultBreakpointOptions","xs","s","m","l","xl","createMediaQuery","screenWidth","mqlMap","useBreakpoints","screens","window","matchMedia","breakpointStatusRef","breakpoints","Object","keys","updateBreakpoints","e","breakpointName","matches","value","forEach","key","breakpointValue","mql","cbs","undefined","addEventListener","cb","addListener","Set","add","breakpoint","has","delete","filter","onBeforeMount","onBeforeUnmount","reactive","readonly","watch","on","off","hasInstance","useKeyboard","options","enabledRef","state","ctrl","command","win","shift","tab","keydown","keyup","keydownHandler","e","key","undefined","Object","keys","forEach","handler","stop","prevent","stopPropagation","preventDefault","keyupHandler","setup","value","document","Fragment","createTextVNode","Comment","getSlot","scope","slots","slotName","slot","undefined","Error","flatten","vNodes","filterCommentNode","result","forEach","vNode","push","String","Array","isArray","type","children","getFirstVNode","content","length","viewMeasurer","ensureViewBoundingRect","document","getElementById","createElement","id","style","position","left","right","top","bottom","pointerEvents","visibility","body","appendChild","getBoundingClientRect","getPointRect","x","y","viewRect","height","width","getRect","el","elRect","getParentNode","node","nodeType","parentNode","getScrollParent","overflow","overflowX","overflowY","getComputedStyle","test","defineComponent","provide","ref","inject","getCurrentInstance","onBeforeUnmount","beforeNextFrameOnce","on","off","getSlot","getScrollParent","Binder","name","props","syncTargetWithParent","Boolean","syncTarget","type","default","setup","_a","proxy","VBinder","targetRef","setTargetRef","el","value","scrollableNodes","ensureScrollListener","cursor","push","onScroll","removeScrollListeners","followerScrollListeners","Set","addScrollListener","listener","size","has","add","removeScrollListener","delete","onScrollRaf","forEach","followerResizeListeners","addResizeListener","window","onResize","removeResizeListener","render","$slots","defineComponent","inject","withDirectives","getFirstVNode","name","setup","setTargetRef","syncTarget","setTargetDirective","mounted","updated","render","$slots","on","off","ctxKey","mousemoveoutside","mounted","el","value","handler","undefined","updated","ctx","unmounted","on","off","ctxKey","clickoutside","mounted","el","value","modifiers","handler","undefined","capture","updated","ctx","unmounted","warnedMessages","Set","warnOnce","location","message","mergedMessage","has","add","warn","console","error","warn","ZIndexManager","constructor","elementZIndex","Map","nextZIndex","elementCount","size","ensureZIndex","el","zIndex","undefined","style","delete","has","currentZIndex","get","set","squashState","unregister","rearrange","elementZIndexPair","Array","from","entries","sort","pair1","pair2","forEach","pair","zIndexManager","ctx","zindexable","mounted","el","bindings","value","zIndex","enabled","initialized","ensureZIndex","updated","cachedEnabled","unmounted","unregister","inject","ssrContextKey","createStyleString","id","style","ssrAdapter","ssrContext","styles","ids","has","add","push","isBrowser","document","useSsrAdapter","undefined","context","adapter","setup","app","Set","provide","collect","res","join","length","warn","location","message","console","error","CssRender","c","cssrAnchorMetaName","lowBit","n","FinweckTree","constructor","l","min","ft","Array","i","add","get","sum","undefined","Error","ret","getBound","threshold","r","m","Math","floor","sumM","resolveTo","selector","_a","document","querySelector","Teleport","h","toRef","computed","defineComponent","useFalseUntilTruthy","getSlot","name","props","to","type","String","Object","default","undefined","disabled","Boolean","show","required","setup","showTeleport","mergedTo","render","$slots","oppositionPositions","top","bottom","left","right","oppositeAligns","start","center","end","propToCompare","transformOrigins","overlapTransformOrigin","oppositeAlignCssPositionProps","keepOffsetDirection","cssPositionToOppositeAlign","getPlacementAndOffsetOfFollower","placement","targetRect","followerRect","shift","flip","overlap","position","align","split","properAlign","properOffset","deriveOffset","oppositeAlignCssSizeProp","alignCssPositionProp","offsetVertically","diff","oppositeAlignCssPositionProp","currentAlignCssPositionProp","followerOverTargetSize","possibleAlternativeAlignCssPositionProp1","possibleAlternativeAlignCssPositionProp2","alternativeAlignCssSizeProp","properPosition","getProperTransformOrigin","getOffset","offsetRect","offsetTopToStandardPlacement","offsetLeftToStandardPlacement","Math","round","height","transform","width","h","defineComponent","inject","nextTick","watch","toRef","ref","onMounted","onBeforeUnmount","withDirectives","zindexable","useMemo","useIsMounted","onFontsReady","useSsrAdapter","c","cssrAnchorMetaName","LazyTeleport","getPlacementAndOffsetOfFollower","getProperTransformOrigin","getOffset","getPointRect","getRect","style","position","left","right","top","height","pointerEvents","zIndex","name","inheritAttrs","props","show","Boolean","enabled","type","default","undefined","placement","String","syncTrigger","Array","to","Object","flip","internalShift","x","Number","y","width","minWidth","containerClass","teleportDisabled","overlap","setup","VBinder","mergedEnabledRef","followerRef","offsetContainerRef","ensureListeners","includes","addScrollListener","syncPosition","addResizeListener","removeListeners","removeScrollListener","removeResizeListener","value","ssrAdapter","mount","id","head","anchorMetaName","ssr","follower","target","targetRef","targetRect","setProperty","Math","round","setAttribute","removeAttribute","followerRect","offsetContainerRect","offsetLeftToStandardPlacement","offsetTopToStandardPlacement","properPlacement","properTransformOrigin","transform","transformOrigin","syncOnNextTick","then","catch","e","console","error","forEach","prop","isMountedRef","mergedToRef","mergedEnabled","mergedTo","render","disabled","_a","_b","vNode","class","$slots","call","resizeObservers","resizeObservers","hasActiveObservations","some","ro","activeTargets","length","resizeObservers","hasSkippedObservations","some","ro","skippedTargets","length","msg","deliverResizeLoopError","event","ErrorEvent","message","document","createEvent","initEvent","window","dispatchEvent","ResizeObserverBoxOptions","freeze","obj","Object","freeze","ResizeObserverSize","inlineSize","blockSize","freeze","DOMRectReadOnly","x","y","width","height","top","left","bottom","right","prototype","toJSON","_a","fromRect","rectangle","isSVG","target","SVGElement","isHidden","_a","getBBox","width","height","_b","offsetWidth","offsetHeight","getClientRects","length","isElement","obj","Element","scope","ownerDocument","defaultView","isReplacedElement","tagName","type","global","window","ResizeObserverBoxOptions","ResizeObserverSize","DOMRectReadOnly","isSVG","isHidden","freeze","global","cache","WeakMap","scrollRegexp","verticalRegexp","IE","test","navigator","userAgent","parseDimension","pixel","parseFloat","size","inlineSize","blockSize","switchSizes","zeroBoxes","devicePixelContentBoxSize","borderBoxSize","contentBoxSize","contentRect","calculateBoxSizes","target","forceRecalculation","has","get","set","cs","getComputedStyle","svg","ownerSVGElement","getBBox","removePadding","boxSizing","writingMode","canScrollVertically","overflowY","canScrollHorizontally","overflowX","paddingTop","paddingRight","paddingBottom","paddingLeft","borderTop","borderTopWidth","borderRight","borderRightWidth","borderBottom","borderBottomWidth","borderLeft","borderLeftWidth","horizontalPadding","verticalPadding","horizontalBorderArea","verticalBorderArea","horizontalScrollbarThickness","offsetHeight","clientHeight","verticalScrollbarThickness","offsetWidth","clientWidth","widthReduction","heightReduction","contentWidth","width","contentHeight","height","borderBoxWidth","borderBoxHeight","boxes","Math","round","devicePixelRatio","calculateBoxSize","observedBox","_a","DEVICE_PIXEL_CONTENT_BOX","BORDER_BOX","calculateBoxSizes","freeze","ResizeObserverEntry","target","boxes","contentRect","borderBoxSize","contentBoxSize","devicePixelContentBoxSize","isHidden","calculateDepthForNode","node","Infinity","depth","parent","parentNode","resizeObservers","ResizeObserverEntry","calculateDepthForNode","calculateBoxSize","broadcastActiveObservations","shallowestDepth","Infinity","callbacks","forEach","processObserver","ro","activeTargets","length","entries","processTarget","ot","entry","target","targetDepth","push","lastReportedSize","observedBox","resizeObserverCallback","callback","call","observer","splice","_i","callbacks_1","resizeObservers","calculateDepthForNode","gatherActiveObservationsAtDepth","depth","forEach","processObserver","ro","activeTargets","splice","length","skippedTargets","observationTargets","processTarget","ot","isActive","target","push","hasActiveObservations","hasSkippedObservations","deliverResizeLoopError","broadcastActiveObservations","gatherActiveObservationsAtDepth","process","depth","trigger","callbacks","notify","splice","forEach","cb","queueMicroTask","callback","toggle_1","el_1","document","createTextNode","config","characterData","MutationObserver","observe","textContent","concat","push","queueMicroTask","queueResizeObserver","cb","ResizeObserver","requestAnimationFrame","process","global","queueResizeObserver","watching","isWatching","CATCH_PERIOD","observerConfig","attributes","characterData","childList","subtree","events","time","timeout","Date","now","scheduled","Scheduler","_this","stopped","listener","schedule","prototype","run","until","elementsHaveResized","start","stop","observe","cb","observer","document","body","addEventListener","MutationObserver","forEach","name","disconnect","removeEventListener","scheduler","updateCount","n","ResizeObserverBoxOptions","calculateBoxSize","isSVG","isReplacedElement","skipNotifyOnElement","target","getComputedStyle","display","ResizeObservation","observedBox","CONTENT_BOX","lastReportedSize","inlineSize","blockSize","prototype","isActive","size","ResizeObserverDetail","resizeObserver","callback","activeTargets","skippedTargets","observationTargets","observer","scheduler","updateCount","ResizeObservation","ResizeObserverDetail","resizeObservers","observerMap","WeakMap","getObservationIndex","observationTargets","target","i","length","ResizeObserverController","connect","resizeObserver","callback","detail","set","observe","options","get","firstObservation","push","box","schedule","unobserve","index","lastObservation","splice","indexOf","disconnect","_this","slice","forEach","ot","activeTargets","ResizeObserverController","isElement","ResizeObserver","callback","arguments","length","TypeError","connect","prototype","observe","target","options","unobserve","disconnect","toString","ResizeObserver","PolyfillResizeObserver","ResizeObserverDelegate","constructor","handleResize","bind","observer","window","elHandlersMap","Map","entries","entry","handler","get","target","undefined","registerHandler","el","set","observe","unregisterHandler","has","delete","unobserve","defineComponent","renderSlot","getCurrentInstance","onMounted","onBeforeUnmount","delegate","warn","name","props","onResize","Function","setup","registered","proxy","handleResize","entry","undefined","el","$el","nextElementSibling","nextSibling","nodeType","nodeValue","registerHandler","unregisterHandler","render","$slots","maybeTouch","ensureMaybeTouch","document","undefined","window","matchMedia","matches","wheelScale","ensureWheelScale","devicePixelRatio","xScrollInjextionKey","computed","provide","ref","useMemo","FinweckTree","xScrollInjextionKey","setupXScroll","columnsRef","renderColRef","renderItemWithColsRef","listWidthRef","scrollLeftRef","xFinweckTreeRef","columns","value","length","ft","forEach","column","index","add","width","startIndexRef","xFinweckTree","Math","max","getBound","getLeft","sum","endIndexRef","min","defineComponent","inject","xScrollInjextionKey","VirtualListRow","name","props","index","type","Number","required","item","Object","setup","startIndexRef","endIndexRef","columnsRef","getLeft","renderColRef","renderItemWithColsRef","startIndex","endIndex","columns","renderCol","renderItemWithCols","render","itemIndex","startColIndex","endColIndex","allColumns","items","i","column","push","left","mergeProps","computed","defineComponent","ref","onMounted","h","onActivated","onDeactivated","toRef","beforeNextFrameOnce","depx","pxfy","useMemo","useSsrAdapter","VResizeObserver","c","cssrAnchorMetaName","FinweckTree","ensureMaybeTouch","ensureWheelScale","setupXScroll","VirtualListRow","styles","maxHeight","height","overflow","minWidth","scrollbarWidth","width","display","name","inheritAttrs","props","showScrollbar","type","Boolean","default","columns","Array","renderCol","Function","renderItemWithCols","items","itemSize","Number","required","itemResizable","itemsStyle","String","Object","visibleItemsTag","visibleItemsProps","ignoreItemResize","onScroll","onWheel","onResize","defaultScrollKey","defaultScrollIndex","keyField","paddingTop","paddingBottom","setup","ssrAdapter","mount","id","head","anchorMetaName","ssr","undefined","scrollTo","index","key","isDeactivated","activateStateInitialized","top","scrollTopRef","value","left","scrollLeftRef","totalWidthRef","length","forEach","column","keyIndexMapRef","map","Map","item","set","listWidthRef","columnsRef","renderColRef","renderItemWithColsRef","listElRef","listHeightRef","keyToHeightOffset","finweckTreeRef","ft","heightOffset","get","add","finweckTreeUpdateTrigger","startIndexRef","Math","max","getBound","viewportItemsRef","listHeight","startIndex","endIndex","min","ceil","viewportItems","i","push","options","y","scrollToPosition","position","behavior","debounce","scrollToIndex","toIndex","MAX_SAFE_INTEGER","anchorIndex","anchorTimerId","listEl","targetTop","sum","window","clearTimeout","setTimeout","scrollTop","offsetHeight","handleItemResize","entry","_a","_b","_c","isHideByVShow","target","previousHeight","borderBoxSize","blockSize","contentRect","offset","delete","delta","previousHeightSum","scrollBy","syncViewport","mayUseWheel","wheelCatched","handleListScroll","e","call","handleListWheel","deltaX","deltaY","scrollHeight","preventDefault","scrollLeft","handleListResize","el","cursor","style","parentElement","listStyle","keyToIndex","boxSizing","minHeight","visibleItemsStyle","transform","itemsElRef","render","$attrs","class","assign","renderedCols","renderedItemWithCols","itemVNode","$slots","empty","useSsrAdapter","defineComponent","h","ref","c","cssrAnchorMetaName","styles","overflow","scrollbarWidth","width","height","name","props","disabled","Boolean","onScroll","Function","setup","selfRef","handleWheel","e","preventYWheel","currentTarget","offsetWidth","scrollWidth","deltaY","scrollLeft","deltaX","preventDefault","ssrAdapter","mount","id","head","anchorMetaName","ssr","exposedMethods","scrollTo","args","_a","value","Object","assign","render","onWheel","undefined","class","$slots","defineComponent","renderSlot","h","onMounted","ref","nextTick","useSsrAdapter","c","cssrAnchorMetaName","hiddenAttr","style","display","name","props","getCounter","Function","getTail","updateCounter","onUpdateCount","onUpdateOverflow","setup","slots","selfRef","counterRef","deriveCounter","options","value","self","counter","undefined","hasAttribute","removeAttribute","children","showAllItemsBeforeCalculate","child","containerWidth","offsetWidth","childWidths","tail","childWidthSum","overflow","len","length","i","setAttribute","childWidth","j","restCount","textContent","counterWidth","maxWidth","boxSizing","ssrAdapter","mount","id","head","anchorMetaName","ssr","sync","render","$slots","class","isHTMLElement","node","HTMLElement","focusFirstDescendant","i","childNodes","length","child","attemptFocus","focusLastDescendant","element","isFocusable","focus","preventScroll","_a","document","activeElement","tabIndex","getAttribute","nodeName","href","rel","type","h","defineComponent","ref","Fragment","onMounted","onBeforeUnmount","watch","createId","getPreciseEventTarget","on","off","focusFirstDescendant","focusLastDescendant","resolveTo","stack","FocusTrap","name","props","disabled","Boolean","active","autoFocus","type","default","onEsc","Function","initialFocusTo","String","finalFocusTo","returnFocusOnDeactivated","setup","id","focusableStartRef","focusableEndRef","activated","ignoreInternalFocusChange","lastFocusedElement","document","activeElement","isCurrentActive","currentActiveId","length","handleDocumentKeydown","e","_a","code","call","value","activate","deactivate","immediate","handleDocumentFocus","mainEl","getMainEl","contains","resetFocusTo","focusableStartEl","nextSibling","Element","tagName","push","undefined","focus","preventScroll","addEventListener","removeEventListener","filter","idInStack","HTMLElement","target","focusableEndEl","focused","handleStartFocus","relatedTarget","handleEndFocus","focusableStyle","render","defaultSlot","$slots","tabindex","style","onFocus","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","args","options","width","String","defaultWidth","format","formats","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","args","value","options","context","String","valuesArray","formattingValues","defaultWidth","defaultFormattingWidth","width","values","index","argumentCallback","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","args","string","options","width","matchPattern","matchPatterns","defaultMatchWidth","matchResult","match","matchedString","parsePatterns","defaultParseWidth","key","Array","isArray","findIndex","pattern","test","findKey","value","valueCallback","rest","slice","length","object","predicate","Object","prototype","hasOwnProperty","call","undefined","array","buildMatchPatternFn","args","string","options","matchResult","match","matchPattern","matchedString","parseResult","parsePattern","value","valueCallback","rest","slice","length","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","af","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","two","threeToTen","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","usageGroup","result","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","String","localize","era","values","defaultWidth","quarter","argumentCallback","Number","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchPatternFn","buildMatchFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","Number","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","arDZ","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","suffixes","getSuffix","number","a","b","c","ordinalNumber","dirtyNumber","_options","Number","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","az","code","options","weekStartsOn","firstWeekContainsDate","declension","scheme","count","one","undefined","rem10","rem100","singularNominative","replace","String","singularGenitive","pluralGenitive","buildLocalizeTokenFn","options","addSuffix","comparison","future","regular","past","halfAMinute","_","formatDistanceLocale","lessThanXSeconds","xSeconds","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","daysInWeek","daysInYear","maxTime","Math","pow","minTime","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","millisecondsInSecond","minutesInYear","minutesInMonth","minutesInDay","minutesInHour","monthsInQuarter","monthsInYear","quartersInYear","secondsInHour","secondsInMinute","secondsInDay","secondsInWeek","secondsInYear","secondsInMonth","secondsInQuarter","constructFromSymbol","Symbol","for","constructFromSymbol","constructFrom","date","value","Date","constructor","constructFrom","normalizeDates","context","dates","normalize","bind","find","date","map","defaultOptions","getDefaultOptions","setDefaultOptions","newOptions","constructFrom","toDate","argument","context","getDefaultOptions","toDate","startOfWeek","date","options","defaultOptions","weekStartsOn","locale","_date","in","day","getDay","diff","setDate","getDate","setHours","normalizeDates","startOfWeek","isSameWeek","laterDate","earlierDate","options","laterDate_","earlierDate_","in","isSameWeek","toDate","accusativeWeekdays","lastWeek","day","weekday","thisWeek","nextWeek","lastWeekFormat","dirtyDate","baseDate","options","date","getDay","nextWeekFormat","formatRelativeLocale","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","unit","String","number","Number","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","be","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","toDate","weekdays","lastWeek","day","weekday","thisWeek","nextWeek","lastWeekFormatToken","dirtyDate","baseDate","options","date","getDay","nextWeekFormatToken","formatRelativeLocale","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","isFeminine","unit","isNeuter","numberWithSuffix","number","masculine","feminine","neuter","suffix","ordinalNumber","dirtyNumber","options","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchDayPatterns","short","parseDayPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","bg","code","options","weekStartsOn","firstWeekContainsDate","buildLocalizeFn","numberValues","locale","number","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","dateOrdinalNumber","localeNumber","ordinalNumber","dirtyNumber","options","Number","numberToLocale","unit","rem10","enNumber","toString","replace","match","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","numberToLocale","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","any","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","bn","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","eleven","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelativeLocalePlural","formatRelative","token","date","_baseDate","_options","getHours","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","any","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ca","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","regular","past","future","few","many","xSeconds","halfAMinute","type","other","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","pluralResult","tokenValue","suffixExist","addSuffix","comparison","timeResult","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","accusativeWeekdays","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","date","day","getDay","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","cs","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","da","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","standalone","one","other","withPreposition","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","replace","String","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","day","dayPeriod","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","de","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","getDay","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","options","number","Number","unit","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","el","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatDistance","formatRelative","localize","match","formatLong","enGB","code","options","weekStartsOn","firstWeekContainsDate","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatDistance","formatRelative","localize","match","formatLong","enIN","code","options","weekStartsOn","firstWeekContainsDate","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatDistance","formatLong","formatRelative","localize","match","enUS","code","options","weekStartsOn","firstWeekContainsDate","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatDistance","formatRelative","localize","match","formatLong","enZA","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xWeeks","aboutXWeeks","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchPatternFn","buildMatchFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","eo","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelativeLocalePlural","formatRelative","token","date","_baseDate","_options","getHours","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchPatternFn","buildMatchFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","es","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","standalone","one","other","withPreposition","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","usageGroup","addSuffix","result","replace","String","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","et","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelativeLocalePlural","formatRelative","token","date","getHours","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","any","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","eu","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","faIR","code","options","weekStartsOn","firstWeekContainsDate","futureSeconds","text","replace","futureMinutes","futureHours","futureDays","futureWeeks","futureMonths","futureYears","formatDistanceLocale","lessThanXSeconds","one","other","futureTense","xSeconds","halfAMinute","_text","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","tokenValue","result","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","fi","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","form","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","options","number","Number","unit","feminineUnits","suffix","includes","LONG_MONTHS_TOKENS","localize","preprocessor","date","parts","getDate","hasLongMonthToken","some","part","isToken","value","map","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","fr","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelativeLocalePlural","formatRelative","token","date","_baseDate","_options","getHours","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","gl","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","gu","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","two","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","addSuffix","comparison","result","tokenValue","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","String","unit","isFemale","indexOf","male","female","index","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalName","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","number","parseInt","isNaN","indexOf","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","he","code","options","weekStartsOn","firstWeekContainsDate","buildLocalizeFn","numberValues","locale","number","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","Number","numberToLocale","localeToNumber","enNumber","toString","replace","match","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","numberToLocale","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildMatchFn","buildMatchPatternFn","localeToNumber","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","hi","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","standalone","withPrepositionAgo","withPrepositionIn","dual","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","comparison","String","substr","replace","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","getDay","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_baseDate","_options","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","dayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","hr","code","options","weekStartsOn","firstWeekContainsDate","translations","about","over","almost","lessthan","withoutSuffixes","xseconds","halfaminute","xminutes","xhours","xdays","xweeks","xmonths","xyears","withSuffixes","formatDistance","token","count","options","adverb","match","unit","replace","addSuffix","key","toLowerCase","comparison","translated","result","adv","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","accusativeWeekdays","week","isFuture","date","weekday","getDay","prefix","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","formattingQuarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","formattingValues","defaultFormattingWidth","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","hu","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","hy","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","id","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","is","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","weekdays","lastWeek","day","thisWeek","nextWeek","formatRelativeLocale","date","baseDate","options","getDay","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","it","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","oneWithSuffix","otherWithSuffix","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","replace","String","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchPatternFn","buildMatchFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ja","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","past","present","future","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","comparison","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ka","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","regular","one","singularNominative","singularGenitive","pluralGenitive","future","xSeconds","past","halfAMinute","options","addSuffix","comparison","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","type","other","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","declension","scheme","count","rem10","rem100","replace","String","formatDistance","token","tokenValue","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","accusativeWeekdays","lastWeek","day","weekday","thisWeek","nextWeek","formatRelativeLocale","date","baseDate","options","getDay","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","suffixes","ordinalNumber","dirtyNumber","_options","number","Number","mod10","b","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","kk","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","tokenValue","result","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_","number","Number","toString","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","km","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","default","future","past","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","getResultByTense","parentToken","options","addSuffix","comparison","formatDistance","token","count","result","tokenValue","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","kn","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ko","code","options","weekStartsOn","firstWeekContainsDate","translations","xseconds_other","xminutes_one","xminutes_other","xhours_one","xhours_other","xdays_one","xdays_other","xweeks_one","xweeks_other","xmonths_one","xmonths_other","xyears_one","xyears_other","about","over","almost","lessthan","translateSeconds","_number","addSuffix","_key","isFuture","translateSingular","key","forms","translate","number","result","special","split","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","adverb","match","unit","replace","comparison","undefined","tokenValue","toLowerCase","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","formattingQuarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","formattingValues","defaultFormattingWidth","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","lt","code","options","weekStartsOn","firstWeekContainsDate","buildLocalizeTokenFn","schema","count","options","addSuffix","one","replace","rem","other","String","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","_count","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","result","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","weekdays","formatRelativeLocale","lastWeek","date","baseDate","options","weekday","getDay","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","formattingQuarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","formattingValues","defaultFormattingWidth","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","lv","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","weekdays","lastWeek","day","weekday","thisWeek","nextWeek","formatRelativeLocale","date","baseDate","options","getDay","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchDayPatterns","short","parseDayPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","mk","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","words","split","lastword","pop","join","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","mn","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ms","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","nb","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","nl","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","wordMapping","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","nn","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","regular","past","future","twoFour","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","declensionGroup","scheme","count","rem100","rem10","declension","time","group","finalText","replace","String","formatDistance","token","options","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","adjectivesLastWeek","masculine","feminine","adjectivesThisWeek","adjectivesNextWeek","dayGrammaticalGender","dayAndTimeWithAdjective","token","date","baseDate","options","adjectives","Error","day","getDay","grammaticalGender","adjective","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","monthFormattingValues","dayValues","short","dayFormattingValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","dayPeriodFormattingValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","pl","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","weekday","getDay","last","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_baseDate","_options","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","pt","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","weekday","getDay","last","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_baseDate","_options","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ptBR","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ro","code","options","weekStartsOn","firstWeekContainsDate","declension","scheme","count","one","undefined","rem10","rem100","singularNominative","replace","String","singularGenitive","pluralGenitive","buildLocalizeTokenFn","options","addSuffix","comparison","future","regular","past","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","_count","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","accusativeWeekdays","lastWeek","day","weekday","thisWeek","nextWeek","formatRelativeLocale","date","baseDate","options","getDay","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ru","code","options","weekStartsOn","firstWeekContainsDate","declensionGroup","scheme","count","one","twoFour","other","declension","time","group","finalText","replace","String","extractPreposition","token","result","filter","preposition","match","RegExp","prefixPreposition","translation","length","suffixPreposition","lowercaseFirstLetter","string","charAt","toLowerCase","slice","formatDistanceLocale","xSeconds","present","past","future","halfAMinute","xMinutes","xHours","xDays","xWeeks","xMonths","xYears","formatDistance","options","key","substring","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","accusativeWeekdays","lastWeek","day","weekday","thisWeek","nextWeek","formatRelativeLocale","date","baseDate","options","getDay","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","sk","code","options","weekStartsOn","firstWeekContainsDate","isPluralType","val","one","undefined","formatDistanceLocale","lessThanXSeconds","present","two","few","other","past","future","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","getFormFromCount","count","formatDistance","token","options","result","tense","addSuffix","comparison","tokenValue","form","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","day","getDay","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_baseDate","_options","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","narrow","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","sl","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","sq","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","standalone","withPrepositionAgo","withPrepositionIn","dual","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","comparison","String","substr","replace","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","date","day","getDay","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_baseDate","_options","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","formattingDayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","dayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","sr","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","wordMapping","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","rem100","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","sv","code","options","weekStartsOn","firstWeekContainsDate","isPluralType","val","one","undefined","formatDistanceLocale","lessThanXSeconds","default","in","ago","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","tense","addSuffix","comparison","tokenValue","replace","String","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ta","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","standalone","one","other","withPreposition","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","addSuffix","replace","String","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","te","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","dayValues","short","monthValues","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","th","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","toString","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","number","Number","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","tr","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","wide","parseEraPatterns","any","matchQuarterPatterns","abbreviated","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","ug","code","options","weekStartsOn","firstWeekContainsDate","declension","scheme","count","one","undefined","rem10","rem100","singularNominative","replace","String","singularGenitive","pluralGenitive","buildLocalizeTokenFn","options","addSuffix","comparison","future","regular","past","halfAtMinute","_","formatDistanceLocale","lessThanXSeconds","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","toDate","accusativeWeekdays","lastWeek","day","weekday","thisWeek","nextWeek","lastWeekFormat","dirtyDate","baseDate","options","date","getDay","nextWeekFormat","formatRelativeLocale","yesterday","today","tomorrow","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","unit","String","number","Number","suffix","localize","era","values","defaultWidth","quarter","argumentCallback","month","formattingValues","defaultFormattingWidth","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","uk","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","any","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","_options","String","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","uz","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","formattingQuarterValues","monthValues","formattingMonthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","String","localize","era","values","defaultWidth","quarter","formattingValues","defaultFormattingWidth","argumentCallback","month","day","dayPeriod","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","vi","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","xHours","aboutXHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","isSameWeek","checkWeek","date","baseDate","options","baseFormat","getTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","format","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","toString","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","zhCN","code","options","weekStartsOn","firstWeekContainsDate","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","xHours","aboutXHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","token","count","options","result","tokenValue","replace","String","addSuffix","comparison","buildFormatLongFn","dateFormats","full","long","medium","short","timeFormats","dateTimeFormats","formatLong","date","formats","defaultWidth","time","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","other","formatRelative","token","_date","_baseDate","_options","buildLocalizeFn","eraValues","narrow","abbreviated","wide","quarterValues","monthValues","dayValues","short","dayPeriodValues","am","pm","midnight","noon","morning","afternoon","evening","night","formattingDayPeriodValues","ordinalNumber","dirtyNumber","options","number","Number","unit","localize","era","values","defaultWidth","quarter","argumentCallback","month","day","dayPeriod","formattingValues","defaultFormattingWidth","buildMatchFn","buildMatchPatternFn","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","narrow","abbreviated","wide","parseEraPatterns","any","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","short","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","am","pm","midnight","noon","morning","afternoon","evening","night","match","ordinalNumber","matchPattern","parsePattern","valueCallback","value","parseInt","era","matchPatterns","defaultMatchWidth","parsePatterns","defaultParseWidth","quarter","index","month","day","dayPeriod","formatDistance","formatLong","formatRelative","localize","match","zhTW","code","options","weekStartsOn","firstWeekContainsDate","freeGlobal","global","Object","freeGlobal","freeSelf","self","Object","root","Function","root","Symbol","Symbol","objectProto","Object","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","toStringTag","undefined","getRawTag","value","isOwn","call","tag","unmasked","e","result","objectProto","Object","prototype","nativeObjectToString","toString","objectToString","value","call","Symbol","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","toStringTag","undefined","baseGetTag","value","Object","isObjectLike","value","baseGetTag","isObjectLike","symbolTag","isSymbol","value","arrayMap","array","iteratee","index","length","result","Array","isArray","Array","Symbol","arrayMap","isArray","isSymbol","INFINITY","symbolProto","prototype","undefined","symbolToString","toString","baseToString","value","call","result","reWhitespace","trimmedEndIndex","string","index","length","test","charAt","trimmedEndIndex","reTrimStart","baseTrim","string","slice","replace","isObject","value","type","baseTrim","isObject","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","toNumber","value","other","valueOf","isBinary","test","slice","toNumber","INFINITY","MAX_INTEGER","toFinite","value","sign","toFinite","toInteger","value","result","remainder","identity","value","baseGetTag","isObject","asyncTag","funcTag","genTag","proxyTag","isFunction","value","tag","root","coreJsData","coreJsData","maskSrcKey","uid","exec","keys","IE_PROTO","isMasked","func","funcProto","Function","prototype","funcToString","toString","toSource","func","call","e","isFunction","isMasked","isObject","toSource","reRegExpChar","reIsHostCtor","funcProto","Function","prototype","objectProto","Object","funcToString","toString","hasOwnProperty","reIsNative","RegExp","call","replace","baseIsNative","value","pattern","test","getValue","object","key","undefined","baseIsNative","getValue","getNative","object","key","value","undefined","getNative","root","WeakMap","isObject","objectCreate","Object","create","baseCreate","object","proto","prototype","result","undefined","apply","func","thisArg","args","length","call","copyArray","source","array","index","length","Array","HOT_COUNT","HOT_SPAN","nativeNow","Date","now","shortOut","func","count","lastCalled","stamp","remaining","arguments","apply","undefined","constant","value","getNative","defineProperty","func","Object","e","constant","defineProperty","identity","baseSetToString","func","string","baseSetToString","shortOut","setToString","arrayEach","array","iteratee","index","length","MAX_SAFE_INTEGER","reIsUint","isIndex","value","length","type","test","defineProperty","baseAssignValue","object","key","value","eq","value","other","baseAssignValue","eq","objectProto","Object","prototype","hasOwnProperty","assignValue","object","key","value","objValue","call","undefined","assignValue","baseAssignValue","copyObject","source","props","object","customizer","isNew","index","length","key","newValue","undefined","apply","nativeMax","Math","max","overRest","func","start","transform","undefined","length","args","arguments","index","array","Array","otherArgs","identity","overRest","setToString","baseRest","func","start","MAX_SAFE_INTEGER","isLength","value","isFunction","isLength","isArrayLike","value","length","eq","isArrayLike","isIndex","isObject","isIterateeCall","value","index","object","type","length","baseRest","isIterateeCall","createAssigner","assigner","object","sources","index","length","customizer","undefined","guard","Object","source","objectProto","Object","prototype","isPrototype","value","Ctor","constructor","proto","baseTimes","n","iteratee","index","result","Array","baseGetTag","isObjectLike","argsTag","baseIsArguments","value","baseIsArguments","isObjectLike","objectProto","Object","prototype","hasOwnProperty","propertyIsEnumerable","isArguments","arguments","value","call","stubFalse","root","stubFalse","freeExports","exports","nodeType","freeModule","module","moduleExports","Buffer","undefined","nativeIsBuffer","isBuffer","baseGetTag","isLength","isObjectLike","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","value","length","baseUnary","func","value","freeGlobal","freeExports","exports","nodeType","freeModule","module","moduleExports","freeProcess","process","nodeUtil","types","require","binding","e","baseIsTypedArray","baseUnary","nodeUtil","nodeIsTypedArray","isTypedArray","baseTimes","isArguments","isArray","isBuffer","isIndex","isTypedArray","objectProto","Object","prototype","hasOwnProperty","arrayLikeKeys","value","inherited","isArr","isArg","isBuff","isType","skipIndexes","result","length","String","key","call","push","overArg","func","transform","arg","overArg","nativeKeys","Object","keys","isPrototype","nativeKeys","objectProto","Object","prototype","hasOwnProperty","baseKeys","object","result","key","call","push","arrayLikeKeys","baseKeys","isArrayLike","keys","object","nativeKeysIn","object","result","key","Object","push","isObject","isPrototype","nativeKeysIn","objectProto","Object","prototype","hasOwnProperty","baseKeysIn","object","isProto","result","key","call","push","arrayLikeKeys","baseKeysIn","isArrayLike","keysIn","object","isArray","isSymbol","reIsDeepProp","reIsPlainProp","isKey","value","object","type","test","Object","getNative","nativeCreate","Object","nativeCreate","hashClear","__data__","size","hashDelete","key","result","has","__data__","size","nativeCreate","HASH_UNDEFINED","objectProto","Object","prototype","hasOwnProperty","hashGet","key","data","__data__","result","undefined","call","nativeCreate","objectProto","Object","prototype","hasOwnProperty","hashHas","key","data","__data__","undefined","call","nativeCreate","HASH_UNDEFINED","hashSet","key","value","data","__data__","size","has","undefined","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","entries","index","length","clear","entry","set","prototype","get","has","listCacheClear","__data__","size","eq","assocIndexOf","array","key","length","assocIndexOf","arrayProto","Array","prototype","splice","listCacheDelete","key","data","__data__","index","lastIndex","length","pop","call","size","assocIndexOf","listCacheGet","key","data","__data__","index","undefined","assocIndexOf","listCacheHas","key","__data__","assocIndexOf","listCacheSet","key","value","data","__data__","index","size","push","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","entries","index","length","clear","entry","set","prototype","get","has","getNative","root","Map","Hash","ListCache","Map","mapCacheClear","size","__data__","isKeyable","value","type","isKeyable","getMapData","map","key","data","__data__","getMapData","mapCacheDelete","key","result","size","getMapData","mapCacheGet","key","get","getMapData","mapCacheHas","key","has","getMapData","mapCacheSet","key","value","data","size","set","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","entries","index","length","clear","entry","set","prototype","get","has","MapCache","FUNC_ERROR_TEXT","memoize","func","resolver","TypeError","memoized","args","arguments","key","apply","cache","has","get","result","set","Cache","memoize","MAX_MEMOIZE_SIZE","memoizeCapped","func","result","key","cache","size","clear","memoizeCapped","rePropName","reEscapeChar","stringToPath","string","result","charCodeAt","push","replace","match","number","quote","subString","baseToString","toString","value","isArray","isKey","stringToPath","toString","castPath","value","object","isSymbol","INFINITY","toKey","value","result","castPath","toKey","baseGet","object","path","index","length","undefined","baseGet","get","object","path","defaultValue","result","undefined","arrayPush","array","values","index","length","offset","overArg","getPrototype","Object","getPrototypeOf","baseGetTag","getPrototype","isObjectLike","objectTag","funcProto","Function","prototype","objectProto","Object","funcToString","toString","hasOwnProperty","objectCtorString","call","isPlainObject","value","proto","Ctor","constructor","baseSlice","array","start","end","index","length","result","Array","baseSlice","castSlice","array","start","end","length","undefined","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","RegExp","hasUnicode","string","test","asciiToArray","string","split","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsZWJ","reOptMod","rsOptVar","rsOptJoin","join","rsSeq","rsSymbol","reUnicode","RegExp","unicodeToArray","string","match","asciiToArray","hasUnicode","unicodeToArray","stringToArray","string","castSlice","hasUnicode","stringToArray","toString","createCaseFirst","methodName","string","strSymbols","undefined","chr","charAt","trailing","join","slice","createCaseFirst","upperFirst","toString","upperFirst","capitalize","string","toLowerCase","arrayReduce","array","iteratee","accumulator","initAccum","index","length","basePropertyOf","object","key","undefined","basePropertyOf","deburredLetters","deburrLetter","deburrLetter","toString","reLatin","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsCombo","reComboMark","RegExp","deburr","string","replace","reAsciiWord","asciiWords","string","match","reHasUnicodeWord","hasUnicodeWord","string","test","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsVarRange","rsBreakRange","rsApos","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsZWJ","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsOptVar","rsOptJoin","join","rsOrdLower","rsOrdUpper","rsSeq","rsEmoji","reUnicodeWord","RegExp","unicodeWords","string","match","asciiWords","hasUnicodeWord","toString","unicodeWords","words","string","pattern","guard","undefined","match","arrayReduce","deburr","words","rsApos","reApos","RegExp","createCompounder","callback","string","replace","capitalize","createCompounder","camelCase","result","word","index","toLowerCase","root","toInteger","toNumber","toString","nativeIsFinite","isFinite","nativeMin","Math","min","createRound","methodName","func","number","precision","pair","split","value","ListCache","stackClear","__data__","size","stackDelete","key","data","__data__","result","size","stackGet","key","__data__","get","stackHas","key","__data__","has","ListCache","Map","MapCache","LARGE_ARRAY_SIZE","stackSet","key","value","data","__data__","pairs","length","push","size","set","ListCache","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","entries","data","__data__","size","prototype","clear","get","has","set","copyObject","keys","baseAssign","object","source","copyObject","keysIn","baseAssignIn","object","source","root","freeExports","exports","nodeType","freeModule","module","moduleExports","Buffer","undefined","allocUnsafe","cloneBuffer","buffer","isDeep","slice","length","result","constructor","copy","arrayFilter","array","predicate","index","length","resIndex","result","value","stubArray","arrayFilter","stubArray","objectProto","Object","prototype","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","getSymbols","object","symbol","call","copyObject","getSymbols","copySymbols","source","object","arrayPush","getPrototype","getSymbols","stubArray","nativeGetSymbols","Object","getOwnPropertySymbols","getSymbolsIn","object","result","copyObject","getSymbolsIn","copySymbolsIn","source","object","arrayPush","isArray","baseGetAllKeys","object","keysFunc","symbolsFunc","result","baseGetAllKeys","getSymbols","keys","getAllKeys","object","baseGetAllKeys","getSymbolsIn","keysIn","getAllKeysIn","object","getNative","root","DataView","getNative","root","Promise","getNative","root","Set","DataView","Map","Promise","Set","WeakMap","baseGetTag","toSource","mapTag","objectTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ArrayBuffer","resolve","value","result","Ctor","constructor","undefined","ctorString","objectProto","Object","prototype","hasOwnProperty","initCloneArray","array","length","result","constructor","call","index","input","root","Uint8Array","Uint8Array","cloneArrayBuffer","arrayBuffer","result","constructor","byteLength","set","cloneArrayBuffer","cloneDataView","dataView","isDeep","buffer","constructor","byteOffset","byteLength","reFlags","cloneRegExp","regexp","result","constructor","source","exec","lastIndex","Symbol","symbolProto","prototype","undefined","symbolValueOf","valueOf","cloneSymbol","symbol","Object","call","cloneArrayBuffer","cloneTypedArray","typedArray","isDeep","buffer","constructor","byteOffset","length","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","boolTag","dateTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","initCloneByTag","object","tag","isDeep","Ctor","constructor","baseCreate","getPrototype","isPrototype","initCloneObject","object","constructor","getTag","isObjectLike","mapTag","baseIsMap","value","baseIsMap","baseUnary","nodeUtil","nodeIsMap","isMap","getTag","isObjectLike","setTag","baseIsSet","value","baseIsSet","baseUnary","nodeUtil","nodeIsSet","isSet","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isArray","isBuffer","isMap","isObject","isSet","keys","keysIn","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","cloneableTags","baseClone","value","bitmask","customizer","key","object","stack","result","isDeep","isFlat","isFull","undefined","isArr","tag","isFunc","stacked","get","set","forEach","subValue","add","keysFunc","props","baseClone","CLONE_DEEP_FLAG","CLONE_SYMBOLS_FLAG","cloneDeep","value","HASH_UNDEFINED","setCacheAdd","value","__data__","set","setCacheHas","value","__data__","has","MapCache","setCacheAdd","setCacheHas","SetCache","values","index","length","__data__","add","prototype","push","has","arraySome","array","predicate","index","length","cacheHas","cache","key","has","SetCache","arraySome","cacheHas","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","equalArrays","array","other","bitmask","customizer","equalFunc","stack","isPartial","arrLength","length","othLength","arrStacked","get","othStacked","index","result","seen","undefined","set","arrValue","othValue","compared","othIndex","push","mapToArray","map","index","result","Array","size","forEach","value","key","setToArray","set","index","result","Array","size","forEach","value","Symbol","Uint8Array","eq","equalArrays","mapToArray","setToArray","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","stringTag","symbolTag","arrayBufferTag","dataViewTag","symbolProto","prototype","undefined","symbolValueOf","valueOf","equalByTag","object","other","tag","bitmask","customizer","equalFunc","stack","byteLength","byteOffset","buffer","name","message","convert","isPartial","size","stacked","get","set","result","call","getAllKeys","COMPARE_PARTIAL_FLAG","objectProto","Object","prototype","hasOwnProperty","equalObjects","object","other","bitmask","customizer","equalFunc","stack","isPartial","objProps","objLength","length","othProps","othLength","index","key","call","objStacked","get","othStacked","result","set","skipCtor","objValue","othValue","compared","undefined","objCtor","constructor","othCtor","Stack","equalArrays","equalByTag","equalObjects","getTag","isArray","isBuffer","isTypedArray","COMPARE_PARTIAL_FLAG","argsTag","arrayTag","objectTag","objectProto","Object","prototype","hasOwnProperty","baseIsEqualDeep","object","other","bitmask","customizer","equalFunc","stack","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","call","othIsWrapped","objUnwrapped","value","othUnwrapped","baseIsEqualDeep","isObjectLike","baseIsEqual","value","other","bitmask","customizer","stack","Stack","baseIsEqual","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseIsMatch","object","source","matchData","customizer","index","length","noCustomizer","Object","data","key","objValue","srcValue","undefined","stack","result","isObject","isStrictComparable","value","isStrictComparable","keys","getMatchData","object","result","length","key","value","matchesStrictComparable","key","srcValue","object","undefined","Object","baseIsMatch","getMatchData","matchesStrictComparable","baseMatches","source","matchData","length","object","baseHasIn","object","key","Object","castPath","isArguments","isArray","isIndex","isLength","toKey","hasPath","object","path","hasFunc","index","length","result","key","baseHasIn","hasPath","hasIn","object","path","baseIsEqual","get","hasIn","isKey","isStrictComparable","matchesStrictComparable","toKey","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","baseMatchesProperty","path","srcValue","object","objValue","undefined","baseProperty","key","object","undefined","baseGet","basePropertyDeep","path","object","baseProperty","basePropertyDeep","isKey","toKey","property","path","baseMatches","baseMatchesProperty","identity","isArray","property","baseIteratee","value","arrayAggregator","array","setter","iteratee","accumulator","index","length","value","createBaseFor","fromRight","object","iteratee","keysFunc","index","iterable","Object","props","length","key","createBaseFor","baseFor","baseFor","keys","baseForOwn","object","iteratee","isArrayLike","createBaseEach","eachFunc","fromRight","collection","iteratee","length","index","iterable","Object","baseForOwn","createBaseEach","baseEach","baseEach","baseAggregator","collection","setter","iteratee","accumulator","value","key","arrayAggregator","baseAggregator","baseIteratee","isArray","createAggregator","setter","initializer","collection","iteratee","func","accumulator","root","now","Date","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","undefined","apply","leadingEdge","setTimeout","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","clearTimeout","flush","debounced","isInvoking","arguments","baseAssignValue","eq","assignMergeValue","object","key","value","undefined","isArrayLike","isObjectLike","isArrayLikeObject","value","safeGet","object","key","copyObject","keysIn","toPlainObject","value","assignMergeValue","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray","isArrayLikeObject","isBuffer","isFunction","isObject","isPlainObject","isTypedArray","safeGet","toPlainObject","baseMergeDeep","object","source","key","srcIndex","mergeFunc","customizer","stack","objValue","srcValue","stacked","get","newValue","undefined","isCommon","isArr","isBuff","isTyped","set","Stack","assignMergeValue","baseFor","baseMergeDeep","isObject","keysIn","safeGet","baseMerge","object","source","srcIndex","customizer","stack","srcValue","key","newValue","undefined","baseEach","isArrayLike","baseMap","collection","iteratee","index","result","Array","length","value","key","arrayMap","baseIteratee","baseMap","isArray","map","collection","iteratee","func","baseAssignValue","createAggregator","objectProto","Object","prototype","hasOwnProperty","groupBy","result","value","key","call","push","baseGt","value","other","createCompounder","kebabCase","result","word","index","toLowerCase","baseAssignValue","baseForOwn","baseIteratee","mapValues","object","iteratee","result","value","key","isSymbol","baseExtremum","array","iteratee","comparator","index","length","value","current","computed","undefined","result","baseExtremum","baseGt","baseIteratee","maxBy","array","iteratee","length","undefined","baseMerge","createAssigner","merge","object","source","srcIndex","createRound","round","debounce","isObject","FUNC_ERROR_TEXT","throttle","func","wait","options","leading","trailing","TypeError","normalizeClass","_normalizeClass","defineComponent","__defineComponent","toArray","arg","Array","isArray","TRAVERSE_COMMAND","STOP","traverseWithCb","treeNode","callback","command","children","undefined","forEach","childNode","getNonLeafKeys","treeNodes","options","preserveGroup","keys","cb","node","isLeaf","push","key","traverse","isGroup","nodes","rawNode","getChildren","defaultGetChildren","defaultGetKey","isIgnored","isShallowLoaded","isDisabled","disabled","isExpilicitlyNotLoaded","isNodeInvalid","length","unwrapCheckedKeys","result","_a","checkedKeys","unwrapIndeterminateKeys","indeterminateKeys","merge","originalKeys","keysToAdd","set","Set","has","add","from","minus","keysToRemove","delete","type","createIndexGetter","map","Map","i","get","isExpilicitlyNotLoaded","merge","minus","traverseWithCb","TRAVERSE_COMMAND","SubtreeNotLoadedError","Error","constructor","message","getExtendedCheckedKeySetAfterCheck","checkKeys","currentCheckedKeys","treeMate","allowNotLoaded","getExtendedCheckedKeySet","concat","getAvailableAscendantNodeSet","uncheckedKeys","visitedKeys","Set","forEach","uncheckedKey","uncheckedTreeNode","treeNodeMap","get","undefined","nodeCursor","parent","disabled","has","key","add","getExtendedCheckedKeySetAfterUncheck","extendedCheckedKeySet","extendedKeySetToUncheck","ascendantKeySet","keysToRemove","push","delete","getCheckedKeys","options","checkedKeys","keysToCheck","keysToUncheck","indeterminateKeys","cascade","leafOnly","checkStrategy","Array","from","levelTreeNodeMap","checkStrategyIsParent","checkStrategyIsChild","syntheticCheckedKeySet","syntheticIndeterminateKeySet","maxLevel","Math","max","apply","keys","level","levelIsZero","levelTreeNodes","levelTreeNode","isLeaf","levelTreeNodeKey","shallowLoaded","children","v","fullyChecked","partialChecked","allDisabled","childNode","childKey","isUnchecking","getChildren","visitedKeySet","extendedKeySet","checkedKey","checkedTreeNode","treeNode","STOP","rawNode","getPath","key","includeGroup","includeSelf","treeMate","_a","treeNodeMap","treeNode","undefined","get","mergedPath","keyPath","treeNodePath","ignored","isGroup","push","parent","reverse","pop","map","getFirstAvailableNode","nodes","length","node","isGroup","ignored","disabled","getNext","rawGetNext","loop","sibs","siblings","l","index","move","fromNode","dir","includeDisabled","iterate","rawGetPrev","getChildOptions","reverse","meet","endNode","traverse","child","getChild","nextNode","parent","rawGetParent","options","children","start","end","delta","i","childInGroup","moveMethods","getParent","getPrev","flatten","treeNodes","expandedKeys","expandedKeySet","Set","undefined","flattenedNodes","traverse","forEach","treeNode","push","isLeaf","children","ignored","isGroup","has","key","contains","parent","child","parentKey","key","getCheckedKeys","toArray","isDisabled","isLeaf","isGroup","isNodeInvalid","unwrapCheckedKeys","isShallowLoaded","unwrapIndeterminateKeys","getNonLeafKeys","isIgnored","defaultGetChildren","defaultGetKey","getPath","moveMethods","getFirstAvailableNode","flatten","contains","createTreeNodes","rawNodes","treeNodeMap","levelTreeNodeMap","nodeProto","getChildren","parent","level","treeNodes","forEach","rawNode","index","_a","process","env","NODE_ENV","console","error","treeNode","Object","create","siblings","isFirstChild","isLastChild","length","ignored","rawChildren","Array","isArray","children","push","set","key","has","get","createTreeMate","options","Map","getDisabled","getIgnored","getIsGroup","getKey","_getChildren","ignoreEmptyChildren","node","assign","disabled","shallowLoaded","getNode","undefined","tmNode","_getNode","getPrev","getNext","getParent","getChild","treemate","maxLevel","Math","max","keys","getFlattenedNodes","expandedKeys","checkedKeys","cascade","leafOnly","checkStrategy","allowNotLoaded","indeterminateKeys","check","keysToCheck","uncheck","keysToUncheck","constructFrom","toDate","addDays","date","amount","options","_date","in","isNaN","NaN","setDate","getDate","constructFrom","toDate","addMonths","date","amount","options","_date","in","isNaN","NaN","dayOfMonth","getDate","endOfDesiredMonth","getTime","setMonth","getMonth","daysInMonth","setFullYear","getFullYear","startOfWeek","startOfISOWeek","date","options","weekStartsOn","constructFrom","startOfISOWeek","toDate","getISOWeekYear","date","options","_date","in","year","getFullYear","fourthOfJanuaryOfNextYear","setFullYear","setHours","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getTime","toDate","getTimezoneOffsetInMilliseconds","date","_date","utcDate","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","toDate","startOfDay","date","options","_date","in","setHours","getTimezoneOffsetInMilliseconds","normalizeDates","millisecondsInDay","startOfDay","differenceInCalendarDays","laterDate","earlierDate","options","laterDate_","earlierDate_","in","laterStartOfDay","earlierStartOfDay","laterTimestamp","earlierTimestamp","Math","round","constructFrom","getISOWeekYear","startOfISOWeek","startOfISOWeekYear","date","options","year","fourthOfJanuary","in","setFullYear","setHours","addMonths","addQuarters","date","amount","options","addMonths","addYears","date","amount","options","toDate","compareAsc","dateLeft","dateRight","diff","normalizeDates","startOfDay","isSameDay","laterDate","earlierDate","options","dateLeft_","dateRight_","in","isDate","value","Date","Object","prototype","toString","call","isDate","toDate","isValid","date","isNaN","toDate","getQuarter","date","options","_date","in","quarter","Math","trunc","getMonth","getRoundingMethod","method","number","round","Math","trunc","result","normalizeDates","normalizeInterval","context","interval","start","end","normalizeInterval","constructFrom","eachDayOfInterval","interval","options","start","end","in","reversed","endTime","date","setHours","step","dates","push","setDate","getDate","reverse","toDate","startOfQuarter","date","options","_date","in","currentMonth","getMonth","month","setMonth","setHours","toDate","startOfMonth","date","options","_date","in","setDate","setHours","toDate","endOfYear","date","options","_date","in","year","getFullYear","setFullYear","setHours","toDate","startOfYear","date","options","date_","in","setFullYear","getFullYear","setHours","getDefaultOptions","toDate","endOfWeek","date","options","defaultOptions","weekStartsOn","locale","_date","in","day","getDay","diff","setDate","getDate","setHours","differenceInCalendarDays","startOfYear","toDate","getDayOfYear","date","options","_date","in","diff","dayOfYear","millisecondsInWeek","startOfISOWeek","startOfISOWeekYear","toDate","getISOWeek","date","options","_date","in","diff","Math","round","getDefaultOptions","constructFrom","startOfWeek","toDate","getWeekYear","date","options","_date","in","year","getFullYear","defaultOptions","firstWeekContainsDate","locale","firstWeekOfNextYear","setFullYear","setHours","startOfNextYear","firstWeekOfThisYear","startOfThisYear","getDefaultOptions","constructFrom","getWeekYear","startOfWeek","startOfWeekYear","date","options","defaultOptions","firstWeekContainsDate","locale","year","firstWeek","in","setFullYear","setHours","_date","millisecondsInWeek","startOfWeek","startOfWeekYear","toDate","getWeek","date","options","_date","in","diff","Math","round","addLeadingZeros","number","targetLength","sign","output","Math","abs","toString","padStart","addLeadingZeros","lightFormatters","y","date","token","signedYear","getFullYear","year","length","M","month","getMonth","String","d","getDate","a","dayPeriodEnumValue","getHours","toUpperCase","h","H","m","getMinutes","s","getSeconds","S","numberOfDigits","milliseconds","getMilliseconds","fractionalSeconds","Math","trunc","pow","getDayOfYear","getISOWeek","getISOWeekYear","getWeek","getWeekYear","addLeadingZeros","lightFormatters","dayPeriodEnum","am","pm","midnight","noon","morning","afternoon","evening","night","formatters","G","date","token","localize","era","getFullYear","width","y","signedYear","year","ordinalNumber","unit","Y","options","signedWeekYear","weekYear","twoDigitYear","length","R","isoWeekYear","u","Q","quarter","Math","ceil","getMonth","String","context","q","M","month","L","w","week","I","isoWeek","d","getDate","D","dayOfYear","E","dayOfWeek","getDay","day","e","localDayOfWeek","weekStartsOn","c","i","isoDayOfWeek","a","hours","getHours","dayPeriodEnumValue","dayPeriod","toLowerCase","b","B","h","H","K","k","m","getMinutes","s","getSeconds","S","X","_localize","timezoneOffset","getTimezoneOffset","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","t","timestamp","trunc","T","offset","delimiter","sign","absOffset","abs","minutes","dateLongFormatter","pattern","formatLong","date","width","timeLongFormatter","time","dateTimeLongFormatter","matchResult","match","datePattern","timePattern","dateTimeFormat","dateTime","replace","longFormatters","p","P","dayOfYearTokenRE","weekYearTokenRE","throwTokens","isProtectedDayOfYearToken","token","test","isProtectedWeekYearToken","warnOrThrowProtectedError","format","input","_message","message","console","warn","includes","RangeError","subject","toLowerCase","defaultLocale","getDefaultOptions","formatters","longFormatters","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","isValid","toDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","format","formatDate","date","formatStr","options","defaultOptions","locale","firstWeekContainsDate","weekStartsOn","originalDate","in","RangeError","parts","match","map","substring","firstCharacter","longFormatter","formatLong","join","isToken","value","cleanEscapedString","localize","preprocessor","formatterOptions","part","token","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","String","formatter","input","matched","replace","defaultLocale","getDefaultOptions","getRoundingMethod","getTimezoneOffsetInMilliseconds","normalizeDates","compareAsc","millisecondsInMinute","minutesInDay","minutesInMonth","minutesInYear","formatDistanceStrict","laterDate","earlierDate","options","defaultOptions","locale","comparison","isNaN","RangeError","localizeOptions","Object","assign","addSuffix","laterDate_","earlierDate_","in","roundingMethod","milliseconds","getTime","minutes","timezoneOffset","dstNormalizedMinutes","defaultUnit","unit","seconds","formatDistance","roundedMinutes","hours","days","months","years","toDate","fromUnixTime","unixTime","options","in","toDate","getDate","date","options","in","toDate","getDay","date","options","in","constructFrom","toDate","getDaysInMonth","date","options","_date","in","year","getFullYear","monthIndex","getMonth","lastDayOfMonth","setFullYear","setHours","getDate","getDefaultOptions","getInternalDefaultOptions","Object","assign","toDate","getHours","date","options","in","toDate","getISODay","date","options","day","in","getDay","toDate","getMilliseconds","date","toDate","getMinutes","date","options","in","toDate","getMonth","date","options","in","toDate","getSeconds","date","toDate","getTime","date","toDate","getYear","date","options","in","getFullYear","constructFrom","transpose","date","constructor","date_","isConstructor","setFullYear","getFullYear","getMonth","getDate","setHours","getHours","getMinutes","getSeconds","getMilliseconds","prototype","constructFrom","transpose","TIMEZONE_UNIT_PRIORITY","Setter","subPriority","validate","_utcDate","_options","ValueSetter","constructor","value","validateValue","setValue","priority","date","options","set","flags","DateTimezoneSetter","context","reference","timestampIsSet","ValueSetter","Parser","run","dateString","token","match","options","result","parse","setter","value","validate","set","priority","subPriority","rest","_utcDate","_value","_options","Parser","EraParser","priority","parse","dateString","token","match","era","width","set","date","flags","value","setFullYear","setHours","incompatibleTokens","numericPatterns","month","date","dayOfYear","week","hour23h","hour24h","hour11h","hour12h","minute","second","singleDigit","twoDigits","threeDigits","fourDigits","anyDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","timezonePatterns","basicOptionalMinutes","basic","basicOptionalSeconds","extended","extendedOptionalSeconds","millisecondsInHour","millisecondsInMinute","millisecondsInSecond","numericPatterns","mapValue","parseFnResult","mapFn","value","rest","parseNumericPattern","pattern","dateString","matchResult","match","parseInt","slice","length","parseTimezonePattern","sign","hours","minutes","seconds","parseAnyDigitsSigned","anyDigitsSigned","parseNDigits","n","singleDigit","twoDigits","threeDigits","fourDigits","RegExp","parseNDigitsSigned","singleDigitSigned","twoDigitsSigned","threeDigitsSigned","fourDigitsSigned","dayPeriodEnumToHours","dayPeriod","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","result","rangeEnd","rangeEndCentury","Math","trunc","isPreviousCentury","isLeapYearIndex","year","Parser","mapValue","normalizeTwoDigitYear","parseNDigits","YearParser","priority","incompatibleTokens","parse","dateString","token","match","valueCallback","year","isTwoDigitYear","ordinalNumber","unit","length","validate","_date","value","set","date","flags","currentYear","getFullYear","normalizedTwoDigitYear","setFullYear","setHours","era","getWeekYear","startOfWeek","Parser","mapValue","normalizeTwoDigitYear","parseNDigits","LocalWeekYearParser","priority","parse","dateString","token","match","valueCallback","year","isTwoDigitYear","ordinalNumber","unit","length","validate","_date","value","set","date","flags","options","currentYear","normalizedTwoDigitYear","setFullYear","firstWeekContainsDate","setHours","era","incompatibleTokens","startOfISOWeek","constructFrom","Parser","parseNDigitsSigned","ISOWeekYearParser","priority","parse","dateString","token","length","set","date","_flags","value","firstWeekOfYear","setFullYear","setHours","incompatibleTokens","Parser","parseNDigitsSigned","ExtendedYearParser","priority","parse","dateString","token","length","set","date","_flags","value","setFullYear","setHours","incompatibleTokens","Parser","parseNDigits","QuarterParser","priority","parse","dateString","token","match","length","ordinalNumber","unit","quarter","width","context","validate","_date","value","set","date","_flags","setMonth","setHours","incompatibleTokens","Parser","parseNDigits","StandAloneQuarterParser","priority","parse","dateString","token","match","length","ordinalNumber","unit","quarter","width","context","validate","_date","value","set","date","_flags","setMonth","setHours","incompatibleTokens","numericPatterns","Parser","mapValue","parseNDigits","parseNumericPattern","MonthParser","incompatibleTokens","priority","parse","dateString","token","match","valueCallback","value","month","ordinalNumber","unit","width","context","validate","_date","set","date","_flags","setMonth","setHours","numericPatterns","Parser","mapValue","parseNDigits","parseNumericPattern","StandAloneMonthParser","priority","parse","dateString","token","match","valueCallback","value","month","ordinalNumber","unit","width","context","validate","_date","set","date","_flags","setMonth","setHours","incompatibleTokens","getWeek","toDate","setWeek","date","week","options","date_","in","diff","setDate","getDate","setWeek","startOfWeek","numericPatterns","Parser","parseNDigits","parseNumericPattern","LocalWeekParser","priority","parse","dateString","token","match","week","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","options","incompatibleTokens","getISOWeek","toDate","setISOWeek","date","week","options","_date","in","diff","setDate","getDate","setISOWeek","startOfISOWeek","numericPatterns","Parser","parseNDigits","parseNumericPattern","ISOWeekParser","priority","parse","dateString","token","match","week","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","incompatibleTokens","numericPatterns","Parser","isLeapYearIndex","parseNDigits","parseNumericPattern","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","priority","subPriority","parse","dateString","token","match","date","ordinalNumber","unit","length","validate","value","year","getFullYear","isLeapYear","month","getMonth","set","_flags","setDate","setHours","incompatibleTokens","numericPatterns","Parser","isLeapYearIndex","parseNDigits","parseNumericPattern","DayOfYearParser","priority","subpriority","parse","dateString","token","match","dayOfYear","ordinalNumber","unit","length","validate","date","value","year","getFullYear","isLeapYear","set","_flags","setMonth","setHours","incompatibleTokens","getDefaultOptions","addDays","toDate","setDay","date","day","options","defaultOptions","weekStartsOn","locale","date_","in","currentDay","getDay","remainder","dayIndex","delta","diff","setDay","Parser","DayParser","priority","parse","dateString","token","match","day","width","context","validate","_date","value","set","date","_flags","options","setHours","incompatibleTokens","setDay","Parser","mapValue","parseNDigits","LocalDayParser","priority","parse","dateString","token","match","options","valueCallback","value","wholeWeekDays","Math","floor","weekStartsOn","length","ordinalNumber","unit","day","width","context","validate","_date","set","date","_flags","setHours","incompatibleTokens","setDay","Parser","mapValue","parseNDigits","StandAloneLocalDayParser","priority","parse","dateString","token","match","options","valueCallback","value","wholeWeekDays","Math","floor","weekStartsOn","length","ordinalNumber","unit","day","width","context","validate","_date","set","date","_flags","setHours","incompatibleTokens","addDays","getISODay","toDate","setISODay","date","day","options","date_","in","currentDay","diff","setISODay","Parser","mapValue","parseNDigits","ISODayParser","priority","parse","dateString","token","match","valueCallback","value","length","ordinalNumber","unit","day","width","context","validate","_date","set","date","_flags","setHours","incompatibleTokens","Parser","dayPeriodEnumToHours","AMPMParser","priority","parse","dateString","token","match","dayPeriod","width","context","set","date","_flags","value","setHours","incompatibleTokens","Parser","dayPeriodEnumToHours","AMPMMidnightParser","priority","parse","dateString","token","match","dayPeriod","width","context","set","date","_flags","value","setHours","incompatibleTokens","Parser","dayPeriodEnumToHours","DayPeriodParser","priority","parse","dateString","token","match","dayPeriod","width","context","set","date","_flags","value","setHours","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","Hour1to12Parser","priority","parse","dateString","token","match","hour12h","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","isPM","getHours","setHours","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","Hour0to23Parser","priority","parse","dateString","token","match","hour23h","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","setHours","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","Hour0To11Parser","priority","parse","dateString","token","match","hour11h","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","isPM","getHours","setHours","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","Hour1To24Parser","priority","parse","dateString","token","match","hour24h","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","hours","setHours","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","MinuteParser","priority","parse","dateString","token","match","minute","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","setMinutes","incompatibleTokens","numericPatterns","Parser","parseNDigits","parseNumericPattern","SecondParser","priority","parse","dateString","token","match","second","ordinalNumber","unit","length","validate","_date","value","set","date","_flags","setSeconds","incompatibleTokens","Parser","mapValue","parseNDigits","FractionOfSecondParser","priority","parse","dateString","token","valueCallback","value","Math","trunc","pow","length","set","date","_flags","setMilliseconds","incompatibleTokens","constructFrom","getTimezoneOffsetInMilliseconds","timezonePatterns","Parser","parseTimezonePattern","ISOTimezoneWithZParser","priority","parse","dateString","token","basicOptionalMinutes","basic","basicOptionalSeconds","extendedOptionalSeconds","extended","set","date","flags","value","timestampIsSet","getTime","incompatibleTokens","constructFrom","getTimezoneOffsetInMilliseconds","timezonePatterns","Parser","parseTimezonePattern","ISOTimezoneParser","priority","parse","dateString","token","basicOptionalMinutes","basic","basicOptionalSeconds","extendedOptionalSeconds","extended","set","date","flags","value","timestampIsSet","getTime","incompatibleTokens","constructFrom","Parser","parseAnyDigitsSigned","TimestampSecondsParser","priority","parse","dateString","set","date","_flags","value","timestampIsSet","incompatibleTokens","constructFrom","Parser","parseAnyDigitsSigned","TimestampMillisecondsParser","priority","parse","dateString","set","date","_flags","value","timestampIsSet","incompatibleTokens","EraParser","YearParser","LocalWeekYearParser","ISOWeekYearParser","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","ISOWeekParser","DateParser","DayOfYearParser","DayParser","LocalDayParser","StandAloneLocalDayParser","ISODayParser","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","SecondParser","FractionOfSecondParser","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","G","y","Y","R","u","Q","q","M","L","w","I","d","D","E","e","c","i","a","b","B","h","H","K","k","m","s","S","X","x","t","T","defaultLocale","longFormatters","isProtectedDayOfYearToken","isProtectedWeekYearToken","warnOrThrowProtectedError","constructFrom","getDefaultOptions","toDate","DateTimezoneSetter","parsers","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","notWhitespaceRegExp","unescapedLatinCharacterRegExp","parse","dateStr","formatStr","referenceDate","options","invalidDate","in","NaN","defaultOptions","locale","firstWeekContainsDate","weekStartsOn","subFnOptions","setters","tokens","match","map","substring","firstCharacter","longFormatter","formatLong","join","usedTokens","token","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","parser","incompatibleTokens","Array","isArray","incompatibleToken","find","usedToken","includes","RangeError","fullToken","length","push","parseResult","run","setter","rest","cleanEscapedString","indexOf","slice","test","uniquePrioritySetters","priority","sort","a","b","filter","index","array","subPriority","setterArray","date","isNaN","flags","validate","result","set","Object","assign","input","replace","toDate","startOfHour","date","options","_date","in","setMinutes","toDate","startOfMinute","date","options","date_","in","setSeconds","normalizeDates","isSameMonth","laterDate","earlierDate","options","laterDate_","earlierDate_","in","getFullYear","getMonth","normalizeDates","startOfQuarter","isSameQuarter","laterDate","earlierDate","options","dateLeft_","dateRight_","in","toDate","startOfSecond","date","options","date_","in","setMilliseconds","normalizeDates","isSameYear","laterDate","earlierDate","options","laterDate_","earlierDate_","in","getFullYear","toDate","isWithinInterval","date","interval","options","time","in","startTime","endTime","start","end","sort","a","b","millisecondsInHour","millisecondsInMinute","constructFrom","toDate","parseISO","argument","options","invalidDate","in","NaN","additionalDigits","dateStrings","splitDateString","date","parseYearResult","parseYear","parseDate","restDateString","year","isNaN","timestamp","time","offset","parseTime","timezone","parseTimezone","tmpDate","Date","result","setFullYear","getUTCFullYear","getUTCMonth","getUTCDate","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","patterns","dateTimeDelimiter","timeZoneDelimiter","dateRegex","timeRegex","timezoneRegex","dateString","array","split","timeString","length","test","substr","token","exec","replace","regex","RegExp","captures","match","parseInt","century","slice","isWeekDate","dayOfYear","parseDateUnit","month","day","week","dayOfWeek","validateWeekDate","dayOfISOWeekYear","validateDate","validateDayOfYearDate","setUTCFullYear","Math","max","value","hours","parseTimeUnit","minutes","seconds","validateTime","parseFloat","timezoneString","sign","validateTimezone","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","daysInMonths","isLeapYearIndex","_year","_hours","constructFrom","getDaysInMonth","toDate","setMonth","date","month","options","_date","in","year","getFullYear","day","getDate","midMonth","setFullYear","setHours","daysInMonth","Math","min","constructFrom","setMonth","toDate","set","date","values","options","_date","in","isNaN","NaN","year","setFullYear","month","setDate","hours","setHours","minutes","setMinutes","seconds","setSeconds","milliseconds","setMilliseconds","toDate","setHours","date","hours","options","_date","in","toDate","setMinutes","date","minutes","options","date_","in","setMonth","toDate","setQuarter","date","quarter","options","date_","in","oldQuarter","Math","trunc","getMonth","diff","toDate","setSeconds","date","seconds","options","_date","in","constructFrom","toDate","setYear","date","year","options","date_","in","isNaN","NaN","setFullYear","addYears","subYears","date","amount","options","getDefaultOptions","tzIntlTimeZoneName","length","date","options","defaultOptions","dtf","getDTF","timeZone","locale","partsTimeZone","hackyTimeZone","formatted","formatToParts","i","type","value","undefined","format","replace","tzNameMatch","exec","substr","Intl","DateTimeFormat","code","timeZoneName","tzTokenizeDate","date","timeZone","dtf","getDateTimeFormat","partsOffset","hackyOffset","typeToPos","year","month","day","hour","minute","second","formatted","formatToParts","filled","i","length","pos","type","undefined","parseInt","value","error","RangeError","NaN","format","parsed","exec","dtfCache","testDateFormatted","Intl","DateTimeFormat","hourCycle","Date","hourCycleSupported","hour12","newDateUTC","fullYear","month","day","hour","minute","second","millisecond","utcDate","Date","setUTCFullYear","setUTCHours","tzTokenizeDate","newDateUTC","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","patterns","timezone","timezoneZ","timezoneHH","timezoneHHMM","tzParseTimezone","timezoneString","date","isUtcDate","token","exec","hours","absoluteOffset","parseInt","validateTimezone","NaN","minutes","Math","abs","isValidTimezoneIANAString","Date","now","utcDate","toUtcDate","offset","calcOffset","fixedOffset","fixOffset","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","tokens","asUTC","getTime","asTS","over","localTS","utcGuess","o2","o3","max","validIANATimezoneCache","timeZoneString","Intl","DateTimeFormat","undefined","timeZone","error","tzIntlTimeZoneName","tzParseTimezone","MILLISECONDS_IN_MINUTE","formatters","X","date","token","options","timezoneOffset","getTimeZoneOffset","timeZone","formatTimezoneWithOptionalMinutes","formatTimezone","x","O","formatTimezoneShort","z","originalDate","timeZoneOffset","getTimezoneOffset","Number","isNaN","RangeError","addLeadingZeros","number","targetLength","sign","output","Math","abs","toString","length","offset","delimiter","absOffset","hours","floor","minutes","String","getTimezoneOffsetInMilliseconds","date","utcDate","Date","UTC","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","tzPattern","getTimezoneOffsetInMilliseconds","tzParseTimezone","tzPattern","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","DEFAULT_ADDITIONAL_DIGITS","patterns","dateTimePattern","datePattern","plainTime","YY","YYY","YYYY","YYYYY","MM","DDD","MMDD","Www","WwwD","HH","HHMM","HHMMSS","timeZone","toDate","argument","options","arguments","length","TypeError","Date","NaN","additionalDigits","Number","RangeError","Object","prototype","toString","call","getTime","dateStrings","splitDateString","year","restDateString","parseYear","date","parseDate","isNaN","timestamp","time","offset","parseTime","dateString","parts","exec","timeString","token","replace","trim","patternYYY","patternYYYYY","yearString","parseInt","slice","centuryString","month","week","setUTCFullYear","validateDate","dayOfYear","validateDayOfYearDate","day","validateWeekDate","dayOfISOWeekYear","dayOfWeek","hours","minutes","parseFloat","validateTime","seconds","isoWeekYear","fourthOfJanuaryDay","getUTCDay","diff","setUTCDate","getUTCDate","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","isLeapYearIndex","isLeapYear","format","dateFnsFormat","formatters","toDate","tzFormattingTokensRegExp","date","formatStr","options","String","matches","match","d","originalDate","reduce","result","token","pos","indexOf","precededByQuotedSection","replaced","replace","substring","tzParseTimezone","toDate","toZonedTime","date","timeZone","options","offsetMilliseconds","d","Date","getTime","resultDate","setFullYear","getUTCFullYear","getUTCMonth","getUTCDate","setHours","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","format","toZonedTime","formatInTimeZone","date","timeZone","formatStr","options","originalDate","formatRegExp","warning","process","env","NODE_ENV","window","document","type","errors","console","warn","ASYNC_VALIDATOR_NO_WARNING","every","e","convertFieldsError","length","fields","forEach","error","field","push","format","template","_len","arguments","args","Array","_key","i","len","apply","str","replace","x","String","Number","JSON","stringify","_","isNativeStringType","isEmptyValue","value","undefined","isArray","asyncParallelArray","arr","func","callback","results","total","arrLength","count","a","asyncSerialArray","index","next","original","flattenObjArr","objArr","ret","Object","keys","k","AsyncValidationError","_Error","_inheritsLoose","_this","call","_wrapNativeSuper","Error","asyncMap","option","source","first","_pending","Promise","resolve","reject","flattenArr","pending","firstFields","objArrKeys","objArrLength","key","indexOf","isErrorObj","obj","message","getValue","path","v","complementError","rule","oe","fieldValue","fullFields","fullField","deepMerge","target","s","hasOwnProperty","_extends","required$1","required","options","messages","whitespace","test","urlReg","getUrlRegex","word","b","includeBoundaries","v4","v6seg","v6","trim","v46Exact","RegExp","v4exact","v6exact","ip","exact","protocol","auth","ipv4","ipv6","host","domain","tld","port","regex","pattern$2","email","hex","types","integer","number","parseInt","float","array","regexp","date","getTime","getMonth","getYear","isNaN","object","method","match","url","pattern","type$1","custom","ruleType","range","min","max","spRegexp","val","num","ENUM$1","enumerable$1","enumerable","ENUM","join","pattern$1","lastIndex","mismatch","_pattern","rules","string","validate","_boolean","boolean","floatFn","dateObject","Date","any","validators","newMessages","parse","invalid","clone","cloned","Schema","descriptor","_messages","define","name","item","source_","o","oc","_this2","complete","add","_errors","concat","series","z","r","transform","validator","getValidationMethod","getType","errorFields","data","doIt","deep","defaultField","addFullField","schema","cb","errorList","suppressWarning","filledErrors","map","fieldsSchema","paredFieldsSchema","fieldSchema","fieldSchemaList","bind","errs","finalErrors","res","asyncValidator","suppressValidatorError","setTimeout","then","messageIndex","splice","register"],"sources":["../node_modules/.pnpm/@css-render+plugin-bem@0.15.14_css-render@0.15.14/node_modules/@css-render/plugin-bem/esm/index.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/parse.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/utils.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/render.js","../node_modules/.pnpm/@emotion+hash@0.8.0/node_modules/@emotion/hash/dist/hash.browser.esm.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/mount.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/c.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/CssRender.js","../node_modules/.pnpm/css-render@0.15.14/node_modules/css-render/esm/exists.js","../src/_utils/cssr/index.ts","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/animation/next-frame-once.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/get-scroll-parent.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/unwrap-element.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/happens-in.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/dom/get-precise-event-target.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/css/responsive.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/css/index.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/color/colors.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/color/convert.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/color/index.js","../node_modules/.pnpm/seemly@0.3.10/node_modules/seemly/es/misc/index.js","../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/utils.js","../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/traps.js","../node_modules/.pnpm/evtd@0.2.4/node_modules/evtd/es/delegate.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-false-until-truthy.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-memo.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/utils.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/on-fonts-ready.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-click-position.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-clicked.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-os-theme.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-merged-state.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/life-cycle/use-is-mounted.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-compitable.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-is-ios.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-breakpoints.js","../node_modules/.pnpm/vooks@0.2.12_vue@3.5.41_typescript@6.0.3_/node_modules/vooks/es/use-keyboard.js","../src/_utils/vue/create-injection-key.ts","../src/_internal/select-menu/src/interface.ts","../src/drawer/src/interface.ts","../src/modal/src/interface.ts","../src/popover/src/interface.ts","../src/_utils/composable/use-adjusted-to.ts","../src/_utils/composable/use-collection.ts","../src/_utils/composable/use-deferred-true.ts","../src/_utils/env/is-browser.ts","../src/_utils/composable/use-houdini.ts","../src/_utils/composable/use-is-composing.ts","../src/_utils/composable/use-lock-html-scroll.ts","../src/_utils/composable/use-reactivated.ts","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/shared/v-node.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/binder/src/utils.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/binder/src/Binder.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/binder/src/Target.js","../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.41_typescript@6.0.3_/node_modules/vdirs/es/mousemoveoutside.js","../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.41_typescript@6.0.3_/node_modules/vdirs/es/clickoutside.js","../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.41_typescript@6.0.3_/node_modules/vdirs/es/utils.js","../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.41_typescript@6.0.3_/node_modules/vdirs/es/zindexable/z-index-manager.js","../node_modules/.pnpm/vdirs@0.1.8_vue@3.5.41_typescript@6.0.3_/node_modules/vdirs/es/zindexable/index.js","../node_modules/.pnpm/@css-render+vue3-ssr@0.15.14_vue@3.5.41_typescript@6.0.3_/node_modules/@css-render/vue3-ssr/esm/index.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/shared/warn.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/shared/cssr.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/shared/finweck-tree.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/shared/resolve-to.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/lazy-teleport/src/index.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/binder/src/get-placement-style.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/binder/src/Follower.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/resize-observer/src/delegate.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/resize-observer/src/VResizeObserver.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/config.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/context.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/xScroll.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualListRow.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/virtual-list/src/VirtualList.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/x-scroll/src/index.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/overflow/src/index.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/focus-trap/src/utils.js","../node_modules/.pnpm/vueuc@0.4.66_vue@3.5.41_typescript@6.0.3_/node_modules/vueuc/es/focus-trap/src/index.js","../src/_utils/composable/use-resize.ts","../src/_utils/css/color-to-class.ts","../src/_utils/css/format-length.ts","../src/_utils/css/rtl-inset.ts","../src/_utils/dom/download.ts","../src/_utils/dom/is-document.ts","../src/_utils/env/is-jsdom.ts","../src/_utils/event/index.ts","../src/_utils/naive/attribute.ts","../src/_utils/naive/prop.ts","../src/_utils/naive/value.ts","../src/_utils/naive/warn.ts","../src/_utils/vue/call.ts","../src/_utils/vue/create-data-key.ts","../src/_utils/vue/create-ref-setter.ts","../src/_utils/vue/flatten.ts","../src/_utils/vue/get-first-slot-vnode.ts","../src/_utils/vue/get-slot.ts","../src/_utils/vue/get-v-node-children.ts","../src/_utils/vue/is-node-v-show-false.ts","../src/_utils/vue/keep.ts","../src/_utils/vue/keysOf.ts","../src/_utils/vue/merge-handlers.ts","../src/_utils/vue/omit.ts","../src/_utils/vue/render.ts","../src/_utils/vue/resolve-slot.ts","../src/_utils/vue/wrapper.tsx","../src/config-provider/src/context.ts","../src/_mixins/use-config.ts","../src/_mixins/use-css-vars-class.ts","../src/_mixins/use-form-item.ts","../src/_mixins/use-hljs.ts","../src/locales/common/afZA.ts","../src/locales/common/amET.ts","../src/locales/common/arDZ.ts","../src/locales/common/azAZ.ts","../src/locales/common/beBY.ts","../src/locales/common/bgBG.ts","../src/locales/common/bnBD.ts","../src/locales/common/caES.ts","../src/locales/common/csCZ.ts","../src/locales/common/daDK.ts","../src/locales/common/deDE.ts","../src/locales/common/elGR.ts","../src/locales/common/enGB.ts","../src/locales/common/enUS.ts","../src/locales/common/eo.ts","../src/locales/common/esAR.ts","../src/locales/common/esES.ts","../src/locales/common/etEE.ts","../src/locales/common/euES.ts","../src/locales/common/faIR.ts","../src/locales/common/fiFI.ts","../src/locales/common/filPH.ts","../src/locales/common/frFR.ts","../src/locales/common/glES.ts","../src/locales/common/guIN.ts","../src/locales/common/heIL.ts","../src/locales/common/hiIN.ts","../src/locales/common/hrHR.ts","../src/locales/common/huHU.ts","../src/locales/common/hyAM.ts","../src/locales/common/idID.ts","../src/locales/common/isIS.ts","../src/locales/common/itIT.ts","../src/locales/common/jaJP.ts","../src/locales/common/kaGE.ts","../src/locales/common/kkKZ.ts","../src/locales/common/kmKH.ts","../src/locales/common/knIN.ts","../src/locales/common/koKR.ts","../src/locales/common/kyKG.ts","../src/locales/common/loLA.ts","../src/locales/common/ltLT.ts","../src/locales/common/lvLV.ts","../src/locales/common/mkMK.ts","../src/locales/common/mlIN.ts","../src/locales/common/mnMN.ts","../src/locales/common/mrIN.ts","../src/locales/common/msMY.ts","../src/locales/common/myMM.ts","../src/locales/common/nbNO.ts","../src/locales/common/neNP.ts","../src/locales/common/nlNL.ts","../src/locales/common/nnNO.ts","../src/locales/common/paIN.ts","../src/locales/common/plPL.ts","../src/locales/common/ptBR.ts","../src/locales/common/ptPT.ts","../src/locales/common/rmCH.ts","../src/locales/common/roRO.ts","../src/locales/common/ruRU.ts","../src/locales/common/siLK.ts","../src/locales/common/skSK.ts","../src/locales/common/slSI.ts","../src/locales/common/sqAL.ts","../src/locales/common/srRS.ts","../src/locales/common/svSE.ts","../src/locales/common/swKE.ts","../src/locales/common/taIN.ts","../src/locales/common/teIN.ts","../src/locales/common/thTH.ts","../src/locales/common/trTR.ts","../src/locales/common/ugCN.ts","../src/locales/common/ukUA.ts","../src/locales/common/urPK.ts","../src/locales/common/uzUZ.ts","../src/locales/common/viVN.ts","../src/locales/common/zhCN.ts","../src/locales/common/zhTW.ts","../src/locales/common/zuZA.ts","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildFormatLongFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildLocalizeFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/af.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ar-DZ.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/az.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constants.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/constructFrom.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/normalizeDates.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/defaultOptions.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/toDate.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/be.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bg.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/bn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ca.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/cs.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/da.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/de.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/el.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-GB/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-GB.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-IN/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-IN.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-US.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-ZA/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/en-ZA.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eo.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/es.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/et.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/eu.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fa-IR.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fi.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/fr.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gl.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/gu.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/he.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hi.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hr.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hu.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/hy.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/id.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/is.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/it.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ja.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ka.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kk.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/km.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/kn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ko.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lt.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/lv.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mk.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/mn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ms.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nb.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nl.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/nn.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pl.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/pt-BR.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ro.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ru.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sk.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sl.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sq.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sr.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/sv.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ta.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/te.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/th.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/tr.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/ug.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uk.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/uz.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/vi.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-CN.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW/_lib/formatDistance.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW/_lib/formatLong.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW/_lib/formatRelative.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW/_lib/localize.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW/_lib/match.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/locale/zh-TW.js","../src/locales/date/afZA.ts","../src/locales/date/amET.ts","../src/locales/date/arDZ.ts","../src/locales/date/azAZ.ts","../src/locales/date/beBY.ts","../src/locales/date/bgBG.ts","../src/locales/date/bnBD.ts","../src/locales/date/caES.ts","../src/locales/date/csCZ.ts","../src/locales/date/daDK.ts","../src/locales/date/deDE.ts","../src/locales/date/elGR.ts","../src/locales/date/enGB.ts","../src/locales/date/enUS.ts","../src/locales/date/eo.ts","../src/locales/date/esAR.ts","../src/locales/date/esES.ts","../src/locales/date/etEE.ts","../src/locales/date/euES.ts","../src/locales/date/faIR.ts","../src/locales/date/fiFI.ts","../src/locales/date/filPH.ts","../src/locales/date/frFR.ts","../src/locales/date/glES.ts","../src/locales/date/guIN.ts","../src/locales/date/heIL.ts","../src/locales/date/hiIN.ts","../src/locales/date/hrHR.ts","../src/locales/date/huHU.ts","../src/locales/date/hyAM.ts","../src/locales/date/idID.ts","../src/locales/date/isIS.ts","../src/locales/date/itIT.ts","../src/locales/date/jaJP.ts","../src/locales/date/kaGE.ts","../src/locales/date/kkKZ.ts","../src/locales/date/kmKH.ts","../src/locales/date/knIN.ts","../src/locales/date/koKR.ts","../src/locales/date/kyKG.ts","../src/locales/date/loLA.ts","../src/locales/date/ltLT.ts","../src/locales/date/lvLV.ts","../src/locales/date/mkMK.ts","../src/locales/date/mlIN.ts","../src/locales/date/mnMN.ts","../src/locales/date/mrIN.ts","../src/locales/date/msMY.ts","../src/locales/date/myMM.ts","../src/locales/date/nbNO.ts","../src/locales/date/neNP.ts","../src/locales/date/nlNL.ts","../src/locales/date/nnNO.ts","../src/locales/date/paIN.ts","../src/locales/date/plPL.ts","../src/locales/date/ptBR.ts","../src/locales/date/ptPT.ts","../src/locales/date/rmCH.ts","../src/locales/date/roRO.ts","../src/locales/date/ruRU.ts","../src/locales/date/siLK.ts","../src/locales/date/skSK.ts","../src/locales/date/slSI.ts","../src/locales/date/sqAL.ts","../src/locales/date/srRS.ts","../src/locales/date/svSE.ts","../src/locales/date/swKE.ts","../src/locales/date/taIN.ts","../src/locales/date/teIN.ts","../src/locales/date/thTH.ts","../src/locales/date/trTR.ts","../src/locales/date/ugCN.ts","../src/locales/date/ukUA.ts","../src/locales/date/urPK.ts","../src/locales/date/uzUZ.ts","../src/locales/date/viVN.ts","../src/locales/date/zhCN.ts","../src/locales/date/zhTW.ts","../src/locales/date/zuZA.ts","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_root.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toFinite.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toInteger.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/identity.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_apply.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/constant.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/eq.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isLength.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Map.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/memoize.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toString.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/get.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isPlainObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseSlice.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_castSlice.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hasUnicode.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_asciiToArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_unicodeToArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stringToArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createCaseFirst.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/upperFirst.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/capitalize.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayReduce.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyOf.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_deburrLetter.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/deburr.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_asciiWords.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hasUnicodeWord.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_unicodeWords.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/words.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createCompounder.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/camelCase.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createRound.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Set.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isMap.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isSet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseProperty.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/property.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_arrayAggregator.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseForOwn.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createBaseEach.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseEach.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseAggregator.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_createAggregator.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/now.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/debounce.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseMap.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/map.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/groupBy.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseGt.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/kebabCase.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/mapValues.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/_baseExtremum.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/maxBy.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/merge.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/round.js","../node_modules/.pnpm/lodash-es@4.18.1/node_modules/lodash-es/throttle.js","../src/locales/utils/index.ts","../src/_mixins/use-locale.ts","../src/_mixins/common.ts","../src/_mixins/use-rtl.ts","../src/_styles/common/_common.ts","../src/_styles/global/index.cssr.ts","../src/_mixins/use-style.ts","../src/_mixins/use-theme.ts","../src/affix/src/styles/index.cssr.ts","../src/affix/src/utils.ts","../../../../../../vue-jsx-vapor/vdom","../src/affix/src/Affix.tsx","../src/_internal/icon/src/styles/index.cssr.ts","../src/_internal/icon/src/Icon.tsx","../src/_internal/icon-switch-transition/src/IconSwitchTransition.tsx","../src/_internal/icons/Add.tsx","../src/_internal/icons/ArrowBack.tsx","../src/_internal/icons/ArrowDown.tsx","../src/_internal/icons/ArrowUp.tsx","../src/_internal/icons/replaceable.tsx","../src/_internal/icons/Attach.tsx","../src/_internal/icons/Backward.tsx","../src/_internal/icons/Cancel.tsx","../src/_internal/icons/Checkmark.tsx","../src/_internal/icons/ChevronDown.tsx","../src/_internal/icons/ChevronDownFilled.tsx","../src/_internal/icons/ChevronLeft.tsx","../src/_internal/icons/ChevronRight.tsx","../src/_internal/icons/Clear.tsx","../src/_internal/icons/Close.tsx","../src/_internal/icons/Date.tsx","../src/_internal/icons/Download.tsx","../src/_internal/icons/Empty.tsx","../src/_internal/icons/Error.tsx","../src/_internal/icons/Eye.tsx","../src/_internal/icons/EyeOff.tsx","../src/_internal/icons/FastBackward.tsx","../src/_internal/icons/FastForward.tsx","../src/_internal/icons/Filter.tsx","../src/_internal/icons/Forward.tsx","../src/_internal/icons/Info.tsx","../src/_internal/icons/More.tsx","../src/_internal/icons/Remove.tsx","../src/_internal/icons/ResizeSmall.tsx","../src/_internal/icons/Retry.tsx","../src/_internal/icons/RotateClockwise.tsx","../src/_internal/icons/RotateCounterclockwise.tsx","../src/_internal/icons/Search.tsx","../src/_internal/icons/Success.tsx","../src/_internal/icons/Switcher.tsx","../src/_internal/icons/Time.tsx","../src/_internal/icons/To.tsx","../src/_internal/icons/Trash.tsx","../src/_internal/icons/Warning.tsx","../src/_internal/icons/ZoomIn.tsx","../src/_internal/icons/ZoomOut.tsx","../src/_styles/transitions/icon-switch.cssr.ts","../src/_internal/clear/src/styles/index.cssr.ts","../src/_internal/clear/src/Clear.tsx","../src/_internal/close/src/styles/index.cssr.ts","../src/_internal/close/src/Close.tsx","../src/_internal/fade-in-expand-transition/src/FadeInExpandTransition.ts","../src/_internal/focus-detector/src/FocusDetector.tsx","../src/_internal/focus-detector/index.tsx","../src/_internal/loading/src/styles/index.cssr.ts","../src/_internal/loading/src/Loading.tsx","../src/_styles/transitions/fade-in.cssr.ts","../src/_internal/menu-mask/src/styles/index.cssr.ts","../src/_internal/menu-mask/src/MenuMask.tsx","../src/_styles/common/dark.ts","../src/_styles/common/light.ts","../src/_internal/scrollbar/styles/common.ts","../src/_internal/scrollbar/styles/light.ts","../src/_internal/scrollbar/styles/dark.ts","../src/_internal/scrollbar/src/styles/rtl.cssr.ts","../src/_internal/scrollbar/styles/rtl.ts","../src/_internal/scrollbar/src/styles/index.cssr.ts","../src/_internal/scrollbar/src/Scrollbar.tsx","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/utils.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/check.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/path.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/move.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/flatten.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/contains.js","../node_modules/.pnpm/treemate@0.3.11/node_modules/treemate/es/create.js","../src/empty/styles/_common.ts","../src/empty/styles/light.ts","../src/empty/styles/dark.ts","../src/empty/src/styles/index.cssr.ts","../src/empty/src/Empty.tsx","../src/_internal/select-menu/styles/_common.ts","../src/_internal/select-menu/styles/light.ts","../src/_internal/select-menu/styles/dark.ts","../src/_internal/select-menu/src/styles/rtl.cssr.ts","../src/_internal/select-menu/styles/rtl.ts","../src/_internal/select-menu/src/SelectGroupHeader.tsx","../src/_internal/select-menu/src/SelectOption.tsx","../src/_styles/transitions/fade-in-scale-up.cssr.ts","../src/_internal/select-menu/src/styles/index.cssr.ts","../src/_internal/select-menu/src/SelectMenu.tsx","../src/popover/styles/_common.ts","../src/popover/styles/light.ts","../src/popover/styles/dark.ts","../src/popover/src/styles/rtl.cssr.ts","../src/popover/styles/rtl.ts","../src/popover/src/styles/index.cssr.ts","../src/popover/src/PopoverBody.tsx","../src/popover/src/Popover.tsx","../src/tag/styles/_common.ts","../src/tag/styles/dark.ts","../src/tag/styles/light.ts","../src/tag/src/styles/rtl.cssr.ts","../src/tag/styles/rtl.ts","../src/tag/src/common-props.ts","../src/tag/src/styles/index.cssr.ts","../src/tag/src/Tag.tsx","../src/_internal/suffix/src/Suffix.tsx","../src/_internal/selection/styles/_common.ts","../src/_internal/selection/styles/dark.ts","../src/_internal/selection/styles/light.ts","../src/_internal/selection/src/styles/rtl.cssr.ts","../src/_internal/selection/styles/rtl.ts","../src/_internal/selection/src/styles/index.cssr.ts","../src/_internal/selection/src/Selection.tsx","../src/_internal/slot-machine/src/SlotMachineNumber.tsx","../src/_styles/transitions/fade-in-width-expand.cssr.ts","../src/_styles/transitions/fade-up-width-expand.cssr.ts","../src/_internal/slot-machine/src/styles/index.cssr.ts","../src/_internal/slot-machine/src/SlotMachine.tsx","../src/_internal/wave/src/styles/index.cssr.ts","../src/_internal/wave/src/Wave.tsx","../src/alert/styles/_common.ts","../src/alert/styles/dark.ts","../src/alert/styles/light.ts","../src/alert/src/styles/rtl.cssr.ts","../src/alert/styles/rtl.ts","../src/_styles/transitions/fade-in-height-expand.cssr.ts","../src/alert/src/styles/index.cssr.ts","../src/alert/src/Alert.tsx","../src/anchor/styles/_common.ts","../src/anchor/styles/light.ts","../src/anchor/styles/dark.ts","../src/anchor/src/Link.tsx","../src/anchor/src/utils.ts","../src/anchor/src/BaseAnchor.tsx","../src/anchor/src/styles/index.cssr.ts","../src/anchor/src/AnchorAdapter.tsx","../src/_utils/env/browser.ts","../src/input/styles/_common.ts","../src/input/styles/dark.ts","../src/input/styles/light.ts","../src/input/src/styles/rtl.cssr.ts","../src/input/styles/rtl.ts","../src/input/src/interface.ts","../src/input/src/styles/input.cssr.ts","../src/input/src/utils.ts","../src/input/src/WordCount.tsx","../src/input/src/Input.tsx","../src/input/src/styles/input-group.cssr.ts","../src/input/src/InputGroup.tsx","../src/input/src/styles/input-group-label.cssr.ts","../src/input/src/InputGroupLabel.tsx","../src/select/src/utils.ts","../src/auto-complete/styles/light.ts","../src/auto-complete/styles/dark.ts","../src/auto-complete/src/styles/index.cssr.ts","../src/auto-complete/src/utils.ts","../src/auto-complete/src/AutoComplete.tsx","../src/_utils/env/is-native-lazy-load.ts","../src/image/src/utils.ts","../src/avatar/styles/light.ts","../src/avatar/styles/dark.ts","../src/avatar/src/context.ts","../src/avatar/src/styles/index.cssr.ts","../src/avatar/src/Avatar.tsx","../src/avatar-group/styles/light.ts","../src/avatar-group/styles/dark.ts","../src/avatar-group/src/styles/avatar-group-rtl.cssr.ts","../src/avatar-group/styles/rtl.ts","../src/avatar-group/src/styles/avatar-group.cssr.ts","../src/avatar-group/src/AvatarGroup.tsx","../src/back-top/styles/_common.ts","../src/back-top/styles/dark.ts","../src/back-top/styles/light.ts","../src/back-top/src/BackTopIcon.tsx","../src/back-top/src/styles/index.cssr.ts","../src/back-top/src/BackTop.tsx","../src/badge/styles/dark.ts","../src/badge/styles/light.ts","../src/badge/src/styles/rtl.cssr.ts","../src/badge/styles/rtl.ts","../src/badge/src/styles/index.cssr.ts","../src/badge/src/Badge.tsx","../src/breadcrumb/styles/_common.ts","../src/breadcrumb/styles/light.ts","../src/breadcrumb/styles/dark.ts","../src/breadcrumb/src/styles/index.cssr.ts","../src/breadcrumb/src/Breadcrumb.tsx","../src/_utils/composable/use-browser-location.ts","../src/breadcrumb/src/BreadcrumbItem.tsx","../src/_utils/color/index.ts","../src/button-group/src/context.ts","../src/button/styles/_common.ts","../src/button/styles/light.ts","../src/button/styles/dark.ts","../src/button/src/styles/rtl.cssr.ts","../src/button/styles/rtl.ts","../src/button/src/styles/index.cssr.ts","../src/button/src/Button.tsx","../src/button-group/src/styles/index.cssr.ts","../src/button-group/src/ButtonGroup.tsx","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addDays.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addMonths.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/differenceInCalendarDays.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfISOWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addQuarters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/addYears.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/compareAsc.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isDate.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isValid.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getQuarter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/getRoundingMethod.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/normalizeInterval.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/eachDayOfInterval.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfQuarter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfMonth.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/endOfWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDayOfYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfWeekYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/addLeadingZeros.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/lightFormatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/formatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/format/longFormatters.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/_lib/protectedTokens.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/format.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/formatDistanceStrict.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/fromUnixTime.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDate.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDaysInMonth.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getDefaultOptions.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getHours.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getISODay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getMilliseconds.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getMinutes.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getMonth.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getSeconds.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getTime.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/getYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/transpose.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/Setter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/EraParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/constants.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/utils.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/YearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/QuarterParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/MonthParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalWeekParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setISOWeek.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOWeekParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DateParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayOfYearParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setDay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/LocalDayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setISODay.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISODayParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/AMPMParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/DayPeriodParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/MinuteParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/SecondParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse/_lib/parsers.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parse.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfHour.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfMinute.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameMonth.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameQuarter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/startOfSecond.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isSameYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/isWithinInterval.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/parseISO.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setMonth.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/set.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setHours.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setMinutes.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setQuarter.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setSeconds.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/setYear.js","../node_modules/.pnpm/date-fns@4.4.0/node_modules/date-fns/subYears.js","../src/date-picker/src/utils.ts","../src/calendar/styles/_common.ts","../src/calendar/styles/light.ts","../src/calendar/styles/dark.ts","../src/calendar/src/styles/index.cssr.ts","../src/calendar/src/Calendar.tsx","../src/card/styles/_common.ts","../src/card/styles/light.ts","../src/card/styles/dark.ts","../src/card/src/styles/rtl.cssr.ts","../src/card/styles/rtl.ts","../src/card/src/styles/index.cssr.ts","../src/card/src/Card.tsx","../src/carousel/styles/light.ts","../src/carousel/styles/dark.ts","../src/carousel/src/CarouselContext.ts","../src/carousel/src/CarouselArrow.tsx","../src/carousel/src/CarouselDots.tsx","../src/carousel/src/CarouselItem.tsx","../src/carousel/src/styles/index.cssr.ts","../src/carousel/src/utils/duplicatedLogic.ts","../src/carousel/src/utils/event.ts","../src/carousel/src/utils/index.ts","../src/carousel/src/Carousel.tsx","../src/checkbox/styles/_common.ts","../src/checkbox/styles/light.ts","../src/checkbox/styles/dark.ts","../src/checkbox/src/styles/rtl.cssr.ts","../src/checkbox/styles/rtl.ts","../src/cascader/styles/light.ts","../src/cascader/styles/dark.ts","../src/checkbox/src/CheckboxGroup.tsx","../src/checkbox/src/CheckMark.tsx","../src/checkbox/src/LineMark.tsx","../src/checkbox/src/styles/index.cssr.ts","../src/checkbox/src/Checkbox.tsx","../src/cascader/src/interface.ts","../src/cascader/src/CascaderOption.tsx","../src/cascader/src/CascaderSubmenu.tsx","../src/cascader/src/CascaderMenu.tsx","../src/cascader/src/utils.ts","../src/cascader/src/CascaderSelectMenu.tsx","../src/cascader/src/styles/index.cssr.ts","../src/cascader/src/Cascader.tsx","../src/code/styles/dark.ts","../src/code/styles/light.ts","../src/code/src/styles/index.cssr.ts","../src/code/src/Code.tsx","../src/collapse/styles/light.ts","../src/collapse/styles/dark.ts","../src/collapse/src/styles/rtl.cssr.ts","../src/collapse/styles/rtl.ts","../src/collapse/src/styles/index.cssr.ts","../src/collapse/src/Collapse.tsx","../src/collapse/src/CollapseItemContent.tsx","../src/collapse/src/CollapseItem.tsx","../src/collapse-transition/styles/light.ts","../src/collapse-transition/styles/dark.ts","../src/collapse-transition/src/styles/rtl.cssr.ts","../src/collapse-transition/styles/rtl.ts","../src/collapse-transition/src/styles/index.cssr.ts","../src/collapse-transition/src/CollapseTransition.tsx","../src/color-picker/styles/light.ts","../src/color-picker/styles/dark.ts","../src/color-picker/src/utils.ts","../src/color-picker/src/AlphaSlider.tsx","../src/color-picker/src/context.ts","../src/color-picker/src/ColorInputUnit.tsx","../src/color-picker/src/ColorInput.tsx","../src/color-picker/src/ColorPickerSwatches.tsx","../src/color-picker/src/ColorPickerTrigger.tsx","../src/color-picker/src/ColorPreview.tsx","../src/color-picker/src/HueSlider.tsx","../src/color-picker/src/Pallete.tsx","../src/color-picker/src/styles/index.cssr.ts","../src/color-picker/src/ColorPicker.tsx","../src/config-provider/src/ConfigProvider.ts","../src/countdown/src/Countdown.tsx","../src/popselect/styles/dark.ts","../src/popselect/styles/light.ts","../src/popselect/src/interface.ts","../src/popselect/src/styles/index.cssr.ts","../src/popselect/src/PopselectPanel.tsx","../src/popselect/src/Popselect.tsx","../src/select/styles/light.ts","../src/select/styles/dark.ts","../src/select/styles/rtl.ts","../src/select/src/styles/index.cssr.ts","../src/select/src/Select.tsx","../src/pagination/styles/_common.ts","../src/pagination/styles/light.ts","../src/pagination/styles/dark.ts","../src/pagination/src/styles/rtl.cssr.ts","../src/pagination/styles/rtl.ts","../src/pagination/src/styles/index.cssr.ts","../src/pagination/src/utils.ts","../src/pagination/src/Pagination.tsx","../src/dropdown/styles/_common.ts","../src/dropdown/styles/light.ts","../src/dropdown/styles/dark.ts","../src/tooltip/styles/_common.ts","../src/tooltip/styles/dark.ts","../src/tooltip/styles/light.ts","../src/ellipsis/styles/dark.ts","../src/ellipsis/styles/light.ts","../src/radio/styles/_common.ts","../src/radio/styles/dark.ts","../src/radio/styles/light.ts","../src/radio/src/styles/rtl.cssr.ts","../src/radio/styles/rtl.ts","../src/data-table/styles/_common.ts","../src/data-table/styles/light.ts","../src/data-table/styles/dark.ts","../src/data-table/src/styles/rtl.cssr.ts","../src/data-table/styles/rtl.ts","../src/data-table/src/interface.ts","../src/data-table/src/utils.ts","../src/data-table/src/TableParts/BodyCheckbox.tsx","../src/radio/src/styles/radio.cssr.ts","../src/radio/src/use-radio.ts","../src/radio/src/Radio.tsx","../src/radio/src/RadioButton.tsx","../src/radio/src/styles/radio-group.cssr.ts","../src/radio/src/RadioGroup.tsx","../src/data-table/src/TableParts/BodyRadio.tsx","../src/tooltip/src/Tooltip.ts","../src/ellipsis/src/styles/index.cssr.ts","../src/ellipsis/src/Ellipsis.tsx","../src/ellipsis/src/PerformantEllipsis.tsx","../src/data-table/src/TableParts/Cell.tsx","../src/data-table/src/TableParts/ExpandTrigger.tsx","../src/data-table/src/HeaderButton/FilterMenu.tsx","../src/data-table/src/HeaderButton/RenderFilter.ts","../src/data-table/src/HeaderButton/FilterButton.tsx","../src/data-table/src/HeaderButton/ResizeButton.tsx","../src/data-table/src/HeaderButton/RenderSorter.ts","../src/data-table/src/HeaderButton/SortButton.tsx","../src/dropdown/src/context.ts","../src/dropdown/src/DropdownDivider.tsx","../src/dropdown/src/DropdownGroupHeader.tsx","../src/icon/styles/light.ts","../src/icon/styles/dark.ts","../src/icon/src/styles/index.cssr.ts","../src/icon/src/Icon.ts","../src/dropdown/src/utils.ts","../src/dropdown/src/DropdownOption.tsx","../src/dropdown/src/DropdownGroup.tsx","../src/dropdown/src/DropdownRenderOption.tsx","../src/dropdown/src/DropdownMenu.tsx","../src/dropdown/src/styles/index.cssr.ts","../src/dropdown/src/Dropdown.tsx","../src/data-table/src/TableParts/SelectionMenu.tsx","../src/data-table/src/TableParts/Header.tsx","../src/data-table/src/TableParts/Body.tsx","../src/data-table/src/MainTable.tsx","../src/data-table/src/styles/index.cssr.ts","../src/data-table/src/use-check.ts","../src/data-table/src/use-expand.ts","../src/data-table/src/use-group-header.ts","../src/data-table/src/use-resizable.ts","../src/data-table/src/use-scroll.ts","../src/data-table/src/use-sorter.ts","../src/data-table/src/use-table-data.ts","../src/data-table/src/DataTable.tsx","../src/time-picker/styles/_common.ts","../src/time-picker/styles/light.ts","../src/time-picker/styles/dark.ts","../src/date-picker/styles/_common.ts","../src/date-picker/styles/light.ts","../src/date-picker/styles/dark.ts","../src/date-picker/src/interface.ts","../src/date-picker/src/panel/use-panel-common.ts","../src/date-picker/src/panel/use-calendar.ts","../src/date-picker/src/panel/month.tsx","../src/date-picker/src/panel/panelHeader.tsx","../src/date-picker/src/panel/date.tsx","../src/date-picker/src/panel/use-dual-calendar.ts","../src/date-picker/src/panel/daterange.tsx","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/tzIntlTimeZoneName/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/tzTokenizeDate/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/newDateUTC/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/tzParseTimezone/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/format/formatters/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/_lib/tzPattern/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/toDate/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/format/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/toZonedTime/index.js","../node_modules/.pnpm/date-fns-tz@3.2.0_date-fns@4.4.0/node_modules/date-fns-tz/dist/esm/formatInTimeZone/index.js","../src/time-picker/src/interface.ts","../src/time-picker/src/PanelCol.tsx","../src/time-picker/src/utils.ts","../src/time-picker/src/Panel.tsx","../src/time-picker/src/styles/index.cssr.ts","../src/time-picker/src/TimePicker.tsx","../src/date-picker/src/panel/datetime.tsx","../src/date-picker/src/panel/datetimerange.tsx","../src/date-picker/src/panel/monthrange.tsx","../src/date-picker/src/props.ts","../src/date-picker/src/styles/index.cssr.ts","../src/date-picker/src/validation-utils.ts","../src/date-picker/src/DatePicker.tsx","../src/descriptions/styles/_common.ts","../src/descriptions/styles/light.ts","../src/descriptions/styles/dark.ts","../src/descriptions/src/styles/index.cssr.ts","../src/descriptions/src/utils.ts","../src/descriptions/src/Descriptions.tsx","../src/descriptions/src/DescriptionsItem.ts","../src/dialog/src/context.ts","../src/dialog/src/composables.ts","../src/dialog/styles/_common.ts","../src/dialog/styles/light.ts","../src/dialog/styles/dark.ts","../src/dialog/src/styles/rtl.cssr.ts","../src/dialog/styles/rtl.ts","../src/dialog/src/dialogProps.ts","../src/dialog/src/styles/index.cssr.ts","../src/dialog/src/Dialog.tsx","../src/modal/styles/light.ts","../src/modal/styles/dark.ts","../src/modal/src/context.ts","../src/modal/src/composables.ts","../src/modal/src/presetProps.ts","../src/modal/src/BodyWrapper.tsx","../src/modal/src/styles/index.cssr.ts","../src/modal/src/Modal.tsx","../src/dialog/src/DialogEnvironment.tsx","../src/dialog/src/DialogProvider.ts","../src/loading-bar/src/context.ts","../src/loading-bar/styles/dark.ts","../src/loading-bar/styles/light.ts","../src/loading-bar/src/styles/index.cssr.ts","../src/loading-bar/src/LoadingBar.tsx","../src/loading-bar/src/LoadingBarProvider.tsx","../src/loading-bar/src/use-loading-bar.ts","../src/message/src/context.ts","../src/message/styles/_common.ts","../src/message/styles/light.ts","../src/message/styles/dark.ts","../src/message/src/styles/rtl.cssr.ts","../src/message/styles/rtl.ts","../src/message/src/message-props.ts","../src/message/src/styles/index.cssr.ts","../src/message/src/Message.tsx","../src/message/src/MessageEnvironment.tsx","../src/message/src/MessageProvider.tsx","../src/message/src/use-message.ts","../src/modal/src/ModalEnvironment.tsx","../src/modal/src/ModalProvider.ts","../src/notification/styles/_common.ts","../src/notification/styles/light.ts","../src/notification/styles/dark.ts","../src/notification/src/styles/rtl.cssr.ts","../src/notification/styles/rtl.ts","../src/notification/src/context.ts","../src/notification/src/NotificationContainer.tsx","../src/notification/src/Notification.tsx","../src/notification/src/NotificationEnvironment.tsx","../src/notification/src/styles/index.cssr.ts","../src/notification/src/NotificationProvider.tsx","../src/notification/src/use-notification.ts","../src/discrete/src/InjectionExtractor.tsx","../src/discrete/src/discreteApp.ts","../src/discrete/src/discrete.ts","../src/divider/styles/light.ts","../src/divider/styles/dark.ts","../src/divider/src/styles/index.cssr.ts","../src/divider/src/Divider.tsx","../src/drawer/styles/light.ts","../src/drawer/styles/dark.ts","../src/drawer/src/styles/rtl.cssr.ts","../src/drawer/styles/rtl.ts","../src/drawer/src/DrawerBodyWrapper.tsx","../src/_styles/transitions/slide-in-from-bottom.ts","../src/_styles/transitions/slide-in-from-left.ts","../src/_styles/transitions/slide-in-from-right.ts","../src/_styles/transitions/slide-in-from-top.ts","../src/drawer/src/styles/index.cssr.ts","../src/drawer/src/Drawer.tsx","../src/drawer/src/DrawerContent.tsx","../src/dynamic-input/styles/_common.ts","../src/dynamic-input/styles/dark.ts","../src/dynamic-input/styles/light.ts","../src/button-group/src/styles/rtl.cssr.ts","../src/button-group/styles/rtl.ts","../src/input-number/src/styles/rtl.cssr.ts","../src/input-number/styles/rtl.ts","../src/dynamic-input/src/styles/rtl.cssr.ts","../src/dynamic-input/styles/rtl.ts","../src/dynamic-input/src/interface.ts","../src/dynamic-input/src/InputPreset.tsx","../src/dynamic-input/src/PairPreset.tsx","../src/dynamic-input/src/styles/index.cssr.ts","../src/dynamic-input/src/DynamicInput.tsx","../src/space/styles/_common.ts","../src/space/styles/dark.ts","../src/space/styles/light.ts","../src/space/src/styles/rtl.cssr.ts","../src/space/styles/rtl.ts","../src/space/src/utils.ts","../src/space/src/Space.tsx","../src/dynamic-tags/styles/dark.ts","../src/dynamic-tags/styles/light.ts","../src/dynamic-tags/src/styles/index.cssr.ts","../src/dynamic-tags/src/DynamicTags.tsx","../src/element/styles/dark.ts","../src/element/styles/light.ts","../src/element/src/Element.ts","../src/equation/src/Equation.tsx","../src/flex/styles/_common.ts","../src/flex/styles/dark.ts","../src/flex/styles/light.ts","../src/flex/src/styles/rtl.cssr.ts","../src/flex/styles/rtl.ts","../src/flex/src/Flex.tsx","../src/button-group/styles/dark.ts","../src/button-group/styles/light.ts","../src/form/styles/_common.ts","../src/form/styles/light.ts","../src/form/styles/dark.ts","../src/gradient-text/styles/dark.ts","../src/gradient-text/styles/light.ts","../src/input-number/styles/dark.ts","../src/input-number/styles/light.ts","../src/input-otp/styles/light.ts","../src/input-otp/styles/dark.ts","../src/input-otp/src/styles/input-otp-rtl.cssr.ts","../src/input-otp/styles/rtl.ts","../src/layout/styles/dark.ts","../src/layout/styles/light.ts","../src/legacy-grid/styles/dark.ts","../src/legacy-grid/styles/light.ts","../src/legacy-grid/src/styles/rtl.cssr.ts","../src/legacy-grid/styles/rtl.ts","../src/list/styles/light.ts","../src/list/styles/dark.ts","../src/list/src/styles/rtl.cssr.ts","../src/list/styles/rtl.ts","../src/log/styles/dark.ts","../src/log/styles/light.ts","../src/mention/styles/dark.ts","../src/mention/styles/light.ts","../src/menu/styles/light.ts","../src/menu/styles/dark.ts","../src/page-header/styles/_common.ts","../src/page-header/styles/light.ts","../src/page-header/styles/dark.ts","../src/page-header/src/styles/rtl.cssr.ts","../src/page-header/styles/rtl.ts","../src/popconfirm/styles/_common.ts","../src/popconfirm/styles/light.ts","../src/popconfirm/styles/dark.ts","../src/progress/styles/light.ts","../src/progress/styles/dark.ts","../src/rate/styles/dark.ts","../src/rate/styles/light.ts","../src/result/styles/_common.ts","../src/result/styles/light.ts","../src/result/styles/dark.ts","../src/slider/styles/_common.ts","../src/slider/styles/dark.ts","../src/slider/styles/light.ts","../src/spin/styles/light.ts","../src/spin/styles/dark.ts","../src/statistic/styles/light.ts","../src/statistic/styles/dark.ts","../src/statistic/src/styles/rtl.cssr.ts","../src/statistic/styles/rtl.ts","../src/steps/styles/_common.ts","../src/steps/styles/light.ts","../src/steps/styles/dark.ts","../src/steps/src/styles/rtl.cssr.ts","../src/steps/styles/rtl.ts","../src/switch/styles/_common.ts","../src/switch/styles/dark.ts","../src/switch/styles/light.ts","../src/table/styles/_common.ts","../src/table/styles/light.ts","../src/table/styles/dark.ts","../src/table/src/styles/rtl.cssr.ts","../src/table/styles/rtl.ts","../src/tabs/styles/_common.ts","../src/tabs/styles/light.ts","../src/tabs/styles/dark.ts","../src/tabs/src/styles/rtl.cssr.ts","../src/tabs/styles/rtl.ts","../src/thing/styles/light.ts","../src/thing/styles/dark.ts","../src/thing/src/styles/rtl.cssr.ts","../src/thing/styles/rtl.ts","../src/timeline/styles/_common.ts","../src/timeline/styles/dark.ts","../src/timeline/styles/light.ts","../src/transfer/styles/_common.ts","../src/transfer/styles/dark.ts","../src/transfer/styles/light.ts","../src/tree/styles/light.ts","../src/tree/styles/dark.ts","../src/tree/src/styles/rtl.cssr.ts","../src/tree/styles/rtl.ts","../src/tree-select/styles/dark.ts","../src/tree-select/styles/light.ts","../src/tree-select/styles/rtl.ts","../src/typography/styles/_common.ts","../src/typography/styles/light.ts","../src/typography/styles/dark.ts","../src/upload/styles/light.ts","../src/upload/styles/dark.ts","../src/upload/src/styles/rtl.cssr.ts","../src/upload/styles/rtl.ts","../src/watermark/styles/dark.ts","../src/watermark/styles/light.ts","../src/float-button-group/styles/light.ts","../src/float-button-group/src/styles/index.cssr.ts","../src/float-button-group/src/FloatButtonGroup.tsx","../src/float-button/styles/dark.ts","../src/float-button/styles/light.ts","../src/float-button/src/styles/index.cssr.ts","../src/float-button/src/FloatButton.tsx","../src/form/src/context.ts","../src/form/src/styles/form.cssr.ts","../src/form/src/Form.tsx","../../../src/util.ts","../../../src/rule/required.ts","../../../src/rule/whitespace.ts","../../../src/rule/url.ts","../../../src/rule/type.ts","../../../src/rule/range.ts","../../../src/rule/enum.ts","../../../src/rule/pattern.ts","../../../src/rule/index.ts","../../../src/validator/string.ts","../../../src/validator/method.ts","../../../src/validator/number.ts","../../../src/validator/boolean.ts","../../../src/validator/regexp.ts","../../../src/validator/integer.ts","../../../src/validator/float.ts","../../../src/validator/array.ts","../../../src/validator/object.ts","../../../src/validator/enum.ts","../../../src/validator/pattern.ts","../../../src/validator/date.ts","../../../src/validator/required.ts","../../../src/validator/type.ts","../../../src/validator/any.ts","../../../src/validator/index.ts","../../../src/messages.ts","../../../src/index.ts","../src/_styles/transitions/fade-down.cssr.ts","../src/form/src/styles/form-item.cssr.ts","../src/form/src/utils.ts","../src/form/src/FormItem.tsx","../src/legacy-grid/src/styles/index.cssr.ts","../src/legacy-grid/src/Row.tsx","../src/legacy-grid/src/Col.tsx","../src/form/src/FormItemCol.ts","../src/grid/src/config.ts","../src/grid/src/GridItem.tsx","../src/form/src/FormItemGridItem.ts","../src/form/src/FormItemRow.ts","../src/global-style/src/GlobalStyle.ts","../src/gradient-text/src/styles/index.cssr.ts","../src/gradient-text/src/GradientText.tsx","../src/config-provider/src/config.ts","../src/grid/src/Grid.tsx","../src/heatmap/styles/light.ts","../src/heatmap/src/animationStyle.ts","../src/heatmap/src/ColorIndicator.tsx","../src/heatmap/src/Rect.tsx","../src/heatmap/src/styles/index.cssr.ts","../src/heatmap/src/theme.ts","../src/heatmap/src/utils/index.ts","../src/heatmap/src/Heatmap.tsx","../src/highlight/src/utils.ts","../src/highlight/src/Highlight.tsx","../src/icon-wrapper/styles/light.ts","../src/icon-wrapper/styles/dark.ts","../src/icon-wrapper/src/styles/index.cssr.ts","../src/icon-wrapper/src/IconWrapper.tsx","../src/image/styles/dark.ts","../src/image/styles/light.ts","../src/image/src/icons.tsx","../src/image/src/interface.ts","../src/image/src/styles/index.cssr.ts","../src/image/src/ImagePreview.tsx","../src/image/src/ImageGroup.tsx","../src/image/src/Image.tsx","../src/infinite-scroll/src/InfiniteScroll.tsx","../src/input-number/src/styles/input-number.cssr.ts","../src/input-number/src/utils.ts","../src/input-number/src/InputNumber.tsx","../src/input-otp/src/styles/index.cssr.ts","../src/input-otp/src/InputOtp.tsx","../src/layout/src/interface.ts","../src/layout/src/styles/layout.cssr.ts","../src/layout/src/Layout.tsx","../src/layout/src/LayoutContent.tsx","../src/layout/src/styles/layout-footer.cssr.ts","../src/layout/src/LayoutFooter.tsx","../src/layout/src/styles/layout-header.cssr.ts","../src/layout/src/LayoutHeader.tsx","../src/layout/src/styles/layout-sider.cssr.ts","../src/layout/src/ToggleBar.tsx","../src/layout/src/ToggleButton.tsx","../src/layout/src/LayoutSider.tsx","../src/legacy-transfer/styles/_common.ts","../src/legacy-transfer/styles/dark.ts","../src/legacy-transfer/styles/light.ts","../src/legacy-transfer/src/interface.ts","../src/legacy-transfer/src/styles/index.cssr.ts","../src/legacy-transfer/src/TransferFilter.tsx","../src/legacy-transfer/src/TransferHeader.tsx","../src/legacy-transfer/src/TransferListItem.tsx","../src/legacy-transfer/src/TransferList.tsx","../src/legacy-transfer/src/use-transfer-data.ts","../src/legacy-transfer/src/Transfer.tsx","../src/list/src/styles/index.cssr.ts","../src/list/src/List.tsx","../src/list/src/ListItem.tsx","../src/log/src/context.ts","../src/log/src/LogLine.tsx","../src/log/src/LogLoader.tsx","../src/log/src/styles/index.cssr.ts","../src/log/src/Log.tsx","../src/marquee/styles/light.ts","../src/marquee/styles/dark.ts","../src/marquee/src/props.ts","../src/marquee/src/styles/index.cssr.ts","../src/marquee/src/Marquee.tsx","../src/mention/src/styles/index.cssr.ts","../src/mention/src/utils.ts","../src/mention/src/Mention.tsx","../src/menu/src/context.ts","../src/menu/src/styles/index.cssr.ts","../src/menu/src/MenuOptionContent.tsx","../src/menu/src/use-menu-child.ts","../src/menu/src/use-menu-child-props.ts","../src/menu/src/MenuDivider.tsx","../src/menu/src/MenuOption.tsx","../src/menu/src/MenuOptionGroup.tsx","../src/menu/src/utils.tsx","../src/menu/src/Submenu.tsx","../src/menu/src/Menu.tsx","../src/number-animation/src/utils.ts","../src/number-animation/src/NumberAnimation.tsx","../src/page-header/src/styles/index.cssr.ts","../src/page-header/src/PageHeader.tsx","../src/popconfirm/src/interface.ts","../src/popconfirm/src/PopconfirmPanel.tsx","../src/popconfirm/src/styles/index.cssr.ts","../src/popconfirm/src/Popconfirm.tsx","../src/progress/src/Circle.tsx","../src/progress/src/Line.tsx","../src/progress/src/MultipleCircle.tsx","../src/progress/src/styles/index.cssr.ts","../src/progress/src/Progress.tsx","../src/qr-code/styles/dark.ts","../src/qr-code/styles/light.ts","../src/qr-code/src/qrcodegen.ts","../src/qr-code/src/styles/index.cssr.ts","../src/qr-code/src/QrCode.tsx","../src/rate/src/StarIcon.tsx","../src/rate/src/styles/index.cssr.ts","../src/rate/src/Rate.tsx","../src/result/src/403.tsx","../src/result/src/404.tsx","../src/result/src/418.tsx","../src/result/src/500.tsx","../src/result/src/styles/index.cssr.ts","../src/result/src/Result.tsx","../src/scrollbar/src/Scrollbar.tsx","../src/skeleton/styles/dark.ts","../src/skeleton/styles/light.ts","../src/skeleton/src/styles/index.cssr.ts","../src/skeleton/src/Skeleton.tsx","../src/slider/src/styles/index.cssr.ts","../src/slider/src/utils.ts","../src/slider/src/Slider.tsx","../src/spin/src/styles/index.cssr.ts","../src/spin/src/Spin.tsx","../src/split/styles/dark.ts","../src/split/styles/light.ts","../src/split/src/styles/index.cssr.ts","../src/split/src/Split.tsx","../src/statistic/src/styles/index.cssr.ts","../src/statistic/src/Statistic.tsx","../src/steps/src/styles/index.cssr.ts","../src/steps/src/Steps.tsx","../src/steps/src/Step.tsx","../src/switch/src/styles/index.cssr.ts","../src/switch/src/Switch.tsx","../src/table/src/styles/index.cssr.ts","../src/table/src/Table.tsx","../src/table/src/Tbody.tsx","../src/table/src/Td.tsx","../src/table/src/Th.tsx","../src/table/src/Thead.tsx","../src/table/src/Tr.tsx","../src/tabs/src/interface.ts","../src/tabs/src/TabPane.tsx","../src/tabs/src/Tab.tsx","../src/tabs/src/styles/index.cssr.ts","../src/tabs/src/TabsButton.tsx","../src/tabs/src/Tabs.tsx","../src/thing/src/styles/index.cssr.ts","../src/thing/src/Thing.tsx","../src/time/src/Time.ts","../src/timeline/src/styles/index.cssr.ts","../src/timeline/src/Timeline.tsx","../src/timeline/src/TimelineItem.tsx","../src/transfer/src/interface.ts","../src/transfer/src/styles/index.cssr.ts","../src/transfer/src/TransferFilter.tsx","../src/transfer/src/TransferHeader.tsx","../src/transfer/src/TransferListItem.tsx","../src/transfer/src/TransferList.tsx","../src/transfer/src/use-transfer-data.ts","../src/transfer/src/Transfer.tsx","../src/tree-select/src/interface.ts","../src/tree/src/dnd.tsx","../src/tree/src/interface.ts","../src/tree/src/keyboard.tsx","../src/tree/src/TreeNodeCheckbox.tsx","../src/tree/src/TreeNodeContent.tsx","../src/tree/src/TreeNodeSwitcher.tsx","../src/tree/src/utils.ts","../src/tree/src/TreeNode.tsx","../src/tree/src/MotionWrapper.tsx","../src/tree/src/styles/index.cssr.ts","../src/tree/src/Tree.tsx","../src/tree-select/src/styles/index.cssr.ts","../src/tree-select/src/utils.ts","../src/tree-select/src/TreeSelect.tsx","../src/typography/src/styles/a.cssr.ts","../src/typography/src/a.tsx","../src/typography/src/styles/blockquote.cssr.ts","../src/typography/src/blockquote.tsx","../src/typography/src/styles/header.cssr.ts","../src/typography/src/create-header.ts","../src/typography/src/headers.ts","../src/typography/src/styles/hr.cssr.ts","../src/typography/src/hr.tsx","../src/typography/src/li.tsx","../src/typography/src/styles/list.cssr.ts","../src/typography/src/ol.tsx","../src/typography/src/styles/p.cssr.ts","../src/typography/src/p.tsx","../src/typography/src/styles/text.cssr.ts","../src/typography/src/text.tsx","../src/typography/src/ul.tsx","../src/upload/src/interface.ts","../src/upload/src/styles/index.cssr.ts","../src/upload/src/UploadDragger.tsx","../src/upload/src/icons.tsx","../src/upload/src/UploadProgress.tsx","../src/upload/src/utils.ts","../src/upload/src/UploadFile.tsx","../src/upload/src/UploadTrigger.tsx","../src/upload/src/UploadFileList.tsx","../src/upload/src/Upload.tsx","../src/virtual-list/src/VirtualList.tsx","../src/watermark/src/styles/index.cssr.ts","../src/watermark/src/Watermark.tsx","../src/components.ts","../src/composables/use-theme-vars.ts","../src/version.ts","../src/create.ts","../src/preset.ts","../src/equation/styles/light.ts","../src/equation/styles/dark.ts","../src/float-button-group/styles/dark.ts","../src/heatmap/styles/dark.ts","../src/themes/light.ts","../src/theme-editor/src/MaximizeIcon.tsx","../src/theme-editor/src/MinimizeIcon.tsx","../src/theme-editor/src/ThemeEditor.tsx","../src/themes/dark.ts","../src/themes/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/restrict-template-expressions */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nfunction plugin(options) {\n    let _bPrefix = '.';\n    let _ePrefix = '__';\n    let _mPrefix = '--';\n    let c;\n    if (options) {\n        let t = options.blockPrefix;\n        if (t) {\n            _bPrefix = t;\n        }\n        t = options.elementPrefix;\n        if (t) {\n            _ePrefix = t;\n        }\n        t = options.modifierPrefix;\n        if (t) {\n            _mPrefix = t;\n        }\n    }\n    const _plugin = {\n        install(instance) {\n            c = instance.c;\n            const ctx = instance.context;\n            ctx.bem = {};\n            ctx.bem.b = null;\n            ctx.bem.els = null;\n        }\n    };\n    function b(arg) {\n        let memorizedB;\n        let memorizedE;\n        return {\n            before(ctx) {\n                memorizedB = ctx.bem.b;\n                memorizedE = ctx.bem.els;\n                ctx.bem.els = null;\n            },\n            after(ctx) {\n                ctx.bem.b = memorizedB;\n                ctx.bem.els = memorizedE;\n            },\n            $({ context, props }) {\n                arg = typeof arg === 'string' ? arg : arg({ context, props });\n                context.bem.b = arg;\n                return `${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}`;\n            }\n        };\n    }\n    function e(arg) {\n        let memorizedE;\n        return {\n            before(ctx) {\n                memorizedE = ctx.bem.els;\n            },\n            after(ctx) {\n                ctx.bem.els = memorizedE;\n            },\n            $({ context, props }) {\n                arg = typeof arg === 'string' ? arg : arg({ context, props });\n                context.bem.els = arg.split(',').map(v => v.trim());\n                return context.bem.els\n                    .map(el => `${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${_ePrefix}${el}`).join(', ');\n            }\n        };\n    }\n    function m(arg) {\n        return {\n            $({ context, props }) {\n                arg = typeof arg === 'string' ? arg : arg({ context, props });\n                const modifiers = arg.split(',').map(v => v.trim());\n                function elementToSelector(el) {\n                    return modifiers.map(modifier => `&${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${el !== undefined ? `${_ePrefix}${el}` : ''}${_mPrefix}${modifier}`).join(', ');\n                }\n                const els = context.bem.els;\n                if (els !== null) {\n                    if (process.env.NODE_ENV !== 'production' && els.length >= 2) {\n                        throw Error(`[css-render/plugin-bem]: m(${arg}) is invalid, using modifier inside multiple elements is not allowed`);\n                    }\n                    return elementToSelector(els[0]);\n                }\n                else {\n                    return elementToSelector();\n                }\n            }\n        };\n    }\n    function notM(arg) {\n        return {\n            $({ context, props }) {\n                arg = typeof arg === 'string' ? arg : arg({ context, props });\n                const els = context.bem.els;\n                if (process.env.NODE_ENV !== 'production' && els !== null && els.length >= 2) {\n                    throw Error(`[css-render/plugin-bem]: notM(${arg}) is invalid, using modifier inside multiple elements is not allowed`);\n                }\n                return `&:not(${(props === null || props === void 0 ? void 0 : props.bPrefix) || _bPrefix}${context.bem.b}${(els !== null && els.length > 0) ? `${_ePrefix}${els[0]}` : ''}${_mPrefix}${arg})`;\n            }\n        };\n    }\n    const cB = ((...args) => c(b(args[0]), args[1], args[2]));\n    const cE = ((...args) => c(e(args[0]), args[1], args[2]));\n    const cM = ((...args) => c(m(args[0]), args[1], args[2]));\n    const cNotM = ((...args) => c(notM(args[0]), args[1], args[2]));\n    Object.assign(_plugin, {\n        cB, cE, cM, cNotM\n    });\n    return _plugin;\n}\nexport { plugin };\nexport default plugin;\n","function ampCount(selector) {\n    let cnt = 0;\n    for (let i = 0; i < selector.length; ++i) {\n        if (selector[i] === '&')\n            ++cnt;\n    }\n    return cnt;\n}\n/**\n * Don't just use ',' to separate css selector. For example:\n * x:(a, b) {} will be split into 'x:(a' and 'b)', which is not expected.\n * Make sure comma doesn't exist inside parentheses.\n */\nconst separatorRegex = /\\s*,(?![^(]*\\))\\s*/g;\nconst extraSpaceRegex = /\\s+/g;\n/**\n * selector must includes '&'\n * selector is trimmed\n * every part of amp is trimmed\n */\nfunction resolveSelectorWithAmp(amp, selector) {\n    const nextAmp = [];\n    selector.split(separatorRegex).forEach(partialSelector => {\n        let round = ampCount(partialSelector);\n        // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n        if (!round) {\n            amp.forEach(partialAmp => {\n                nextAmp.push(\n                // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n                (partialAmp && partialAmp + ' ') + partialSelector);\n            });\n            return;\n        }\n        else if (round === 1) {\n            amp.forEach(partialAmp => {\n                nextAmp.push(partialSelector.replace('&', partialAmp));\n            });\n            return;\n        }\n        let partialNextAmp = [\n            partialSelector\n        ];\n        // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n        while (round--) {\n            const nextPartialNextAmp = [];\n            partialNextAmp.forEach(selectorItr => {\n                amp.forEach(partialAmp => {\n                    nextPartialNextAmp.push(selectorItr.replace('&', partialAmp));\n                });\n            });\n            partialNextAmp = nextPartialNextAmp;\n        }\n        partialNextAmp.forEach(part => nextAmp.push(part));\n    });\n    return nextAmp;\n}\n/**\n * selector mustn't includes '&'\n * selector is trimmed\n */\nfunction resolveSelector(amp, selector) {\n    const nextAmp = [];\n    selector.split(separatorRegex).forEach(partialSelector => {\n        amp.forEach(partialAmp => {\n            // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            nextAmp.push(((partialAmp && partialAmp + ' ') + partialSelector));\n        });\n    });\n    return nextAmp;\n}\nexport function parseSelectorPath(selectorPaths) {\n    let amp = [''];\n    selectorPaths.forEach(selector => {\n        // eslint-disable-next-line\n        selector = selector && selector.trim();\n        if (\n        // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n        !selector) {\n            /**\n             * if it's a empty selector, do nothing\n             */\n            return;\n        }\n        // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n        if (selector.includes('&')) {\n            amp = resolveSelectorWithAmp(amp, selector);\n        }\n        else {\n            amp = resolveSelector(amp, selector);\n        }\n    });\n    return amp.join(', ').replace(extraSpaceRegex, ' ');\n}\n","export function removeElement(el) {\n    /* istanbul ignore if */\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (!el)\n        return;\n    const parentElement = el.parentElement;\n    /* istanbul ignore else */\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (parentElement)\n        parentElement.removeChild(el);\n}\nexport function queryElement(id, parent) {\n    return (parent !== null && parent !== void 0 ? parent : document.head).querySelector(`style[cssr-id=\"${id}\"]`);\n}\nexport function createElement(id) {\n    const el = document.createElement('style');\n    el.setAttribute('cssr-id', id);\n    return el;\n}\nexport function isMediaOrSupports(selector) {\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (!selector)\n        return false;\n    return /^\\s*@(s|m)/.test(selector);\n}\n","import { parseSelectorPath } from './parse';\nimport { isMediaOrSupports } from './utils';\nconst kebabRegex = /[A-Z]/g;\nfunction kebabCase(pattern) {\n    return pattern.replace(kebabRegex, match => '-' + match.toLowerCase());\n}\n/** TODO: refine it to solve nested object */\nfunction unwrapProperty(prop, indent = '  ') {\n    if (typeof prop === 'object' && prop !== null) {\n        return (' {\\n' +\n            Object.entries(prop).map(v => {\n                return indent + `  ${kebabCase(v[0])}: ${v[1]};`;\n            }).join('\\n') +\n            '\\n' + indent + '}');\n    }\n    return `: ${prop};`;\n}\n/** unwrap properties */\nfunction unwrapProperties(props, instance, params) {\n    if (typeof props === 'function') {\n        return props({\n            context: instance.context,\n            props: params\n        });\n    }\n    return props;\n}\nfunction createStyle(selector, props, instance, params) {\n    if (!props)\n        return '';\n    // eslint-disable-next-line\n    const unwrappedProps = unwrapProperties(props, instance, params);\n    if (!unwrappedProps)\n        return '';\n    if (typeof unwrappedProps === 'string') {\n        return `${selector} {\\n${unwrappedProps}\\n}`;\n    }\n    const propertyNames = Object.keys(unwrappedProps);\n    if (propertyNames.length === 0) {\n        if (instance.config.keepEmptyBlock)\n            return selector + ' {\\n}';\n        return '';\n    }\n    const statements = selector\n        ? [\n            selector + ' {'\n        ]\n        : [];\n    propertyNames.forEach(propertyName => {\n        const property = unwrappedProps[propertyName];\n        if (propertyName === 'raw') {\n            statements.push('\\n' + property + '\\n');\n            return;\n        }\n        propertyName = kebabCase(propertyName);\n        if (property !== null && property !== undefined) {\n            statements.push(`  ${propertyName}${unwrapProperty(property)}`);\n        }\n    });\n    if (selector) {\n        statements.push('}');\n    }\n    return statements.join('\\n');\n}\nfunction loopCNodeListWithCallback(children, options, callback) {\n    /* istanbul ignore if */\n    if (!children)\n        return;\n    children.forEach(child => {\n        if (Array.isArray(child)) {\n            loopCNodeListWithCallback(child, options, callback);\n        }\n        else if (typeof child === 'function') {\n            const grandChildren = child(options);\n            if (Array.isArray(grandChildren)) {\n                loopCNodeListWithCallback(grandChildren, options, callback);\n            }\n            else if (grandChildren) {\n                callback(grandChildren);\n            }\n        }\n        else if (child) {\n            callback(child);\n        }\n    });\n}\nfunction traverseCNode(node, selectorPaths, styles, instance, params) {\n    const $ = node.$;\n    let blockSelector = '';\n    if (!$ || typeof $ === 'string') {\n        if (isMediaOrSupports($)) {\n            blockSelector = $;\n        }\n        else {\n            // as a string selector\n            selectorPaths.push($);\n        }\n    }\n    else if (typeof $ === 'function') {\n        const selector = $({\n            context: instance.context,\n            props: params\n        });\n        if (isMediaOrSupports(selector)) {\n            blockSelector = selector;\n        }\n        else {\n            // as a lazy selector\n            selectorPaths.push(selector);\n        }\n    }\n    else { // as a option selector\n        if ($.before)\n            $.before(instance.context);\n        if (!$.$ || typeof $.$ === 'string') {\n            if (isMediaOrSupports($.$)) {\n                blockSelector = $.$;\n            }\n            else {\n                // as a string selector\n                selectorPaths.push($.$);\n            }\n        }\n        else /* istanbul ignore else */ if ($.$) {\n            const selector = $.$({\n                context: instance.context,\n                props: params\n            });\n            if (isMediaOrSupports(selector)) {\n                blockSelector = selector;\n            }\n            else {\n                // as a lazy selector\n                selectorPaths.push(selector);\n            }\n        }\n    }\n    const selector = parseSelectorPath(selectorPaths);\n    const style = createStyle(selector, node.props, instance, params);\n    if (blockSelector) {\n        styles.push(`${blockSelector} {`);\n    }\n    else if (style.length) {\n        styles.push(style);\n    }\n    if (node.children) {\n        loopCNodeListWithCallback(node.children, {\n            context: instance.context,\n            props: params\n        }, childNode => {\n            if (typeof childNode === 'string') {\n                const style = createStyle(selector, { raw: childNode }, instance, params);\n                styles.push(style);\n            }\n            else {\n                traverseCNode(childNode, selectorPaths, styles, instance, params);\n            }\n        });\n    }\n    selectorPaths.pop();\n    if (blockSelector) {\n        styles.push('}');\n    }\n    if ($ && $.after)\n        $.after(instance.context);\n}\nexport function render(node, instance, props) {\n    const styles = [];\n    traverseCNode(node, [], styles, instance, props);\n    return styles.join('\\n\\n');\n}\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n  // 'm' and 'r' are mixing constants generated offline.\n  // They're not really 'magic', they just happen to work well.\n  // const m = 0x5bd1e995;\n  // const r = 24;\n  // Initialize the hash\n  var h = 0; // Mix 4 bytes at a time into the hash\n\n  var k,\n      i = 0,\n      len = str.length;\n\n  for (; len >= 4; ++i, len -= 4) {\n    k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n    k =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n    k ^=\n    /* k >>> r: */\n    k >>> 24;\n    h =\n    /* Math.imul(k, m): */\n    (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n    /* Math.imul(h, m): */\n    (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Handle the last few bytes of the input array\n\n\n  switch (len) {\n    case 3:\n      h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n    case 2:\n      h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n    case 1:\n      h ^= str.charCodeAt(i) & 0xff;\n      h =\n      /* Math.imul(h, m): */\n      (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  } // Do a few final mixes of the hash to ensure the last few\n  // bytes are well-incorporated.\n\n\n  h ^= h >>> 13;\n  h =\n  /* Math.imul(h, m): */\n  (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n  return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;\n","/* eslint-disable @typescript-eslint/prefer-ts-expect-error */\n/* eslint-disable @typescript-eslint/strict-boolean-expressions */\nimport hash from './hash';\nimport { createElement, queryElement, removeElement } from './utils';\nif (typeof window !== 'undefined') {\n    window.__cssrContext = {};\n}\nexport function unmount(instance, node, id, parent) {\n    const { els } = node;\n    // If id is undefined, unmount all styles\n    if (id === undefined) {\n        els.forEach(removeElement);\n        node.els = [];\n    }\n    else {\n        const target = queryElement(id, parent);\n        // eslint-disable-next-line\n        if (target && els.includes(target)) {\n            removeElement(target);\n            node.els = els.filter((el) => el !== target);\n        }\n    }\n}\nfunction addElementToList(els, target) {\n    els.push(target);\n}\nfunction mount(instance, node, id, props, head, force, anchorMetaName, parent, ssrAdapter\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n) {\n    let style;\n    if (id === undefined) {\n        style = node.render(props);\n        id = hash(style);\n    }\n    if (ssrAdapter) {\n        ssrAdapter.adapter(id, style !== null && style !== void 0 ? style : node.render(props));\n        return;\n    }\n    if (parent === undefined) {\n        parent = document.head;\n    }\n    const queriedTarget = queryElement(id, parent);\n    if (queriedTarget !== null && !force) {\n        return queriedTarget;\n    }\n    const target = queriedTarget !== null && queriedTarget !== void 0 ? queriedTarget : createElement(id);\n    if (style === undefined)\n        style = node.render(props);\n    target.textContent = style;\n    if (queriedTarget !== null)\n        return queriedTarget;\n    if (anchorMetaName) {\n        const anchorMetaEl = parent.querySelector(`meta[name=\"${anchorMetaName}\"]`);\n        if (anchorMetaEl) {\n            parent.insertBefore(target, anchorMetaEl);\n            addElementToList(node.els, target);\n            return target;\n        }\n    }\n    if (head) {\n        parent.insertBefore(target, parent.querySelector('style, link'));\n    }\n    else {\n        parent.appendChild(target);\n    }\n    addElementToList(node.els, target);\n    return target;\n}\nexport { mount };\n","import { render } from './render';\nimport { mount, unmount } from './mount';\nfunction wrappedRender(props) {\n    return render(this, this.instance, props);\n}\n// do not guard node calling, it should throw an error.\nfunction wrappedMount(options = {}\n// eslint-disable-next-line @typescript-eslint/no-invalid-void-type\n) {\n    const { id, ssr, props, head = false, force = false, anchorMetaName, parent } = options;\n    const targetElement = mount(this.instance, this, id, props, head, force, anchorMetaName, parent, ssr);\n    return targetElement;\n}\nfunction wrappedUnmount(options = {}) {\n    /* istanbul ignore next */\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    const { id, parent } = options;\n    unmount(this.instance, this, id, parent);\n}\nconst createCNode = function (instance, $, props, children) {\n    return {\n        instance,\n        $,\n        props,\n        children,\n        els: [],\n        render: wrappedRender,\n        mount: wrappedMount,\n        unmount: wrappedUnmount\n    };\n};\nexport const c = function (instance, $, props, children) {\n    if (Array.isArray($)) {\n        return createCNode(instance, { $: null }, null, $);\n    }\n    else if (Array.isArray(props)) {\n        return createCNode(instance, $, null, props);\n    }\n    else if (Array.isArray(children)) {\n        return createCNode(instance, $, props, children);\n    }\n    else {\n        return createCNode(instance, $, props, null);\n    }\n};\n","import { c } from './c';\nimport { queryElement } from './utils';\nexport function CssRender(config = {}) {\n    const cssr = {\n        c: ((...args) => c(cssr, ...args)),\n        use: (plugin, ...args) => plugin.install(cssr, ...args),\n        find: queryElement,\n        context: {},\n        config\n    };\n    return cssr;\n}\n","import { queryElement } from './utils';\nexport function exists(id, ssr) {\n    if (id === undefined)\n        return false;\n    if (ssr) {\n        const { context: { ids } } = ssr;\n        return ids.has(id);\n    }\n    return queryElement(id) !== null;\n}\n","import type { CNode, CProperties } from 'css-render'\nimport { plugin as BemPlugin } from '@css-render/plugin-bem'\nimport { CssRender } from 'css-render'\n\nconst namespace = 'n'\nconst prefix = `.${namespace}-`\nconst elementPrefix = '__'\nconst modifierPrefix = '--'\n\nconst cssr = CssRender()\nconst plugin = BemPlugin({\n  blockPrefix: prefix,\n  elementPrefix,\n  modifierPrefix\n})\ncssr.use(plugin)\nconst { c, find } = cssr\nconst { cB, cE, cM, cNotM } = plugin\n\nfunction insideModal(style: CNode): CNode {\n  return c(\n    ({ props: { bPrefix } }) =>\n      `${bPrefix || prefix}modal, ${bPrefix || prefix}drawer`,\n    [style]\n  )\n}\n\nfunction insidePopover(style: CNode): CNode {\n  return c(({ props: { bPrefix } }) => `${bPrefix || prefix}popover`, [style])\n}\n\nfunction asModal(style: CProperties): CNode {\n  return c(({ props: { bPrefix } }) => `&${bPrefix || prefix}modal`, style)\n}\n\n// child block\nconst cCB: typeof cB = ((...args: any[]) => {\n  return c('>', [(cB as any)(...args)])\n}) as any\n\nfunction createKey<P extends string, S extends string>(\n  prefix: P,\n  suffix: S\n): S extends 'default' ? P : `${P}${Capitalize<S>}` {\n  return (prefix\n    + (suffix === 'default'\n      ? ''\n      : suffix.replace(/^[a-z]/, startChar =>\n          startChar.toUpperCase()))) as any\n}\n\nexport {\n  asModal,\n  c,\n  cB,\n  cCB,\n  cE,\n  cM,\n  cNotM,\n  createKey,\n  find,\n  insideModal,\n  insidePopover,\n  namespace,\n  prefix\n}\n","let onceCbs = [];\nconst paramsMap = new WeakMap();\nfunction flushOnceCallbacks() {\n    onceCbs.forEach((cb) => cb(...paramsMap.get(cb)));\n    onceCbs = [];\n}\nfunction beforeNextFrameOnce(cb, ...params) {\n    paramsMap.set(cb, params);\n    if (onceCbs.includes(cb))\n        return;\n    onceCbs.push(cb) === 1 && requestAnimationFrame(flushOnceCallbacks);\n}\nexport { beforeNextFrameOnce };\n","function getParentNode(node) {\n    // document type\n    if (node.nodeType === 9) {\n        return null;\n    }\n    return node.parentNode;\n}\nexport function getScrollParent(node) {\n    if (node === null)\n        return null;\n    const parentNode = getParentNode(node);\n    if (parentNode === null) {\n        return null;\n    }\n    // Document\n    if (parentNode.nodeType === 9) {\n        return document.documentElement;\n    }\n    // Element\n    if (parentNode.nodeType === 1) {\n        // Firefox want us to check `-x` and `-y` variations as well\n        const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n        if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n            return parentNode;\n        }\n    }\n    return getScrollParent(parentNode);\n}\n","function unwrapElement(target) {\n    if (typeof target === 'string')\n        return document.querySelector(target);\n    if (typeof target === 'function')\n        return target();\n    return target;\n}\nexport { unwrapElement };\n","export function happensIn(e, dataSetPropName) {\n    let { target } = e;\n    while (target) {\n        if (target.dataset) {\n            if (target.dataset[dataSetPropName] !== undefined)\n                return true;\n        }\n        target = target.parentElement;\n    }\n    return false;\n}\n","export function getPreciseEventTarget(event) {\n    return event.composedPath()[0] || null;\n}\n","export function parseResponsiveProp(reponsiveProp) {\n    if (typeof reponsiveProp === \"number\") {\n        return {\n            '': reponsiveProp.toString()\n        };\n    }\n    const params = {};\n    reponsiveProp.split(/ +/).forEach((pairLiteral) => {\n        if (pairLiteral === '')\n            return;\n        const [prefix, value] = pairLiteral.split(':');\n        if (value === undefined) {\n            params[''] = prefix;\n        }\n        else {\n            params[prefix] = value;\n        }\n    });\n    return params;\n}\nfunction parseResponsivePropValue(reponsiveProp, activeKeyOrSize) {\n    var _a;\n    if (reponsiveProp === undefined || reponsiveProp === null)\n        return undefined;\n    const classObj = parseResponsiveProp(reponsiveProp);\n    if (activeKeyOrSize === undefined)\n        return classObj[''];\n    if (typeof activeKeyOrSize === 'string') {\n        return (_a = classObj[activeKeyOrSize]) !== null && _a !== void 0 ? _a : classObj[''];\n    }\n    else if (Array.isArray(activeKeyOrSize)) {\n        for (let i = activeKeyOrSize.length - 1; i >= 0; --i) {\n            const key = activeKeyOrSize[i];\n            if (key in classObj)\n                return classObj[key];\n        }\n        return classObj[''];\n    }\n    else {\n        // Here we suppose all the keys are number formatted\n        let activeValue = undefined;\n        let activeKey = -1;\n        Object.keys(classObj).forEach((key) => {\n            const keyAsNum = Number(key);\n            if (!Number.isNaN(keyAsNum) &&\n                activeKeyOrSize >= keyAsNum &&\n                keyAsNum >= activeKey) {\n                activeKey = keyAsNum;\n                activeValue = classObj[key];\n            }\n        });\n        return activeValue;\n    }\n}\nexport { parseResponsivePropValue };\n","export function depx(value) {\n    if (typeof value === 'string') {\n        if (value.endsWith('px')) {\n            return Number(value.slice(0, value.length - 2));\n        }\n        return Number(value);\n    }\n    return value;\n}\nfunction pxfy(value) {\n    if (value === undefined || value === null)\n        return undefined;\n    if (typeof value === 'number')\n        return `${value}px`;\n    if (value.endsWith('px'))\n        return value;\n    return `${value}px`;\n}\nexport { pxfy };\nfunction getMargin(value, position) {\n    const parts = value.trim().split(/\\s+/g);\n    const margin = {\n        top: parts[0]\n    };\n    switch (parts.length) {\n        case 1:\n            margin.right = parts[0];\n            margin.bottom = parts[0];\n            margin.left = parts[0];\n            break;\n        case 2:\n            margin.right = parts[1];\n            margin.left = parts[1];\n            margin.bottom = parts[0];\n            break;\n        case 3:\n            margin.right = parts[1];\n            margin.bottom = parts[2];\n            margin.left = parts[1];\n            break;\n        case 4:\n            margin.right = parts[1];\n            margin.bottom = parts[2];\n            margin.left = parts[3];\n            break;\n        default:\n            throw new Error('[seemly/getMargin]:' + value + ' is not a valid value.');\n    }\n    if (position === undefined)\n        return margin;\n    return margin[position];\n}\nfunction getGap(value, orient) {\n    const [rowGap, colGap] = value.split(' ');\n    if (!orient)\n        return {\n            row: rowGap,\n            col: colGap || rowGap\n        };\n    return orient === 'row' ? rowGap : colGap;\n}\nexport { getMargin, getMargin as getPadding, getGap };\nexport { parseResponsiveProp, parseResponsivePropValue } from './responsive';\n","// src: https://www.w3schools.com/colors/colors_names.asp\nexport default {\n    aliceblue: \"#F0F8FF\",\n    antiquewhite: \"#FAEBD7\",\n    aqua: \"#0FF\",\n    aquamarine: \"#7FFFD4\",\n    azure: \"#F0FFFF\",\n    beige: \"#F5F5DC\",\n    bisque: \"#FFE4C4\",\n    black: \"#000\",\n    blanchedalmond: \"#FFEBCD\",\n    blue: \"#00F\",\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: \"#0FF\",\n    darkblue: \"#00008B\",\n    darkcyan: \"#008B8B\",\n    darkgoldenrod: \"#B8860B\",\n    darkgray: \"#A9A9A9\",\n    darkgrey: \"#A9A9A9\",\n    darkgreen: \"#006400\",\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: \"#F0F\",\n    gainsboro: \"#DCDCDC\",\n    ghostwhite: \"#F8F8FF\",\n    gold: \"#FFD700\",\n    goldenrod: \"#DAA520\",\n    gray: \"#808080\",\n    grey: \"#808080\",\n    green: \"#008000\",\n    greenyellow: \"#ADFF2F\",\n    honeydew: \"#F0FFF0\",\n    hotpink: \"#FF69B4\",\n    indianred: \"#CD5C5C\",\n    indigo: \"#4B0082\",\n    ivory: \"#FFFFF0\",\n    khaki: \"#F0E68C\",\n    lavender: \"#E6E6FA\",\n    lavenderblush: \"#FFF0F5\",\n    lawngreen: \"#7CFC00\",\n    lemonchiffon: \"#FFFACD\",\n    lightblue: \"#ADD8E6\",\n    lightcoral: \"#F08080\",\n    lightcyan: \"#E0FFFF\",\n    lightgoldenrodyellow: \"#FAFAD2\",\n    lightgray: \"#D3D3D3\",\n    lightgrey: \"#D3D3D3\",\n    lightgreen: \"#90EE90\",\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: \"#0F0\",\n    limegreen: \"#32CD32\",\n    linen: \"#FAF0E6\",\n    magenta: \"#F0F\",\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: \"#F00\",\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: \"#FFF\",\n    whitesmoke: \"#F5F5F5\",\n    yellow: \"#FF0\",\n    yellowgreen: \"#9ACD32\",\n    transparent: \"#0000\"\n};\n","// All the algorithms credit to https://stackoverflow.com/questions/36721830/convert-hsl-to-rgb-and-hex/54014428#54014428\n// original author: Kamil Kiełczewski\n/**\n * @param h 360\n * @param s 100\n * @param l 100\n * @returns [h, s, v] 360, 100, 100\n */\nexport function hsl2hsv(h, s, l) {\n    s /= 100;\n    l /= 100;\n    const v = s * Math.min(l, 1 - l) + l;\n    return [h, v ? (2 - (2 * l) / v) * 100 : 0, v * 100];\n}\n/**\n * @param h 360\n * @param s 100\n * @param v 100\n * @returns [h, s, l] 360, 100, 100\n */\nexport function hsv2hsl(h, s, v) {\n    s /= 100;\n    v /= 100;\n    const l = v - (v * s) / 2;\n    const m = Math.min(l, 1 - l);\n    return [h, m ? ((v - l) / m) * 100 : 0, l * 100];\n}\n/**\n * @param h 360\n * @param s 100\n * @param v 100\n * @returns [r, g, b] 255, 255, 255\n */\nexport function hsv2rgb(h, s, v) {\n    s /= 100;\n    v /= 100;\n    let f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n    return [f(5) * 255, f(3) * 255, f(1) * 255];\n}\n/**\n * @param r 255\n * @param g 255\n * @param b 255\n * @returns [360, 100, 100]\n */\nexport function rgb2hsv(r, g, b) {\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    let v = Math.max(r, g, b), c = v - Math.min(r, g, b);\n    let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);\n    return [60 * (h < 0 ? h + 6 : h), v && (c / v) * 100, v * 100];\n}\n/**\n * @param r 255\n * @param g 255\n * @param b 255\n * @returns [360, 100, 100]\n */\nexport function rgb2hsl(r, g, b) {\n    r /= 255;\n    g /= 255;\n    b /= 255;\n    let v = Math.max(r, g, b), c = v - Math.min(r, g, b), f = 1 - Math.abs(v + v - c - 1);\n    let h = c && (v == r ? (g - b) / c : v == g ? 2 + (b - r) / c : 4 + (r - g) / c);\n    return [60 * (h < 0 ? h + 6 : h), f ? (c / f) * 100 : 0, (v + v - c) * 50];\n}\n/**\n * @param h 360\n * @param s 100\n * @param l 100\n * @returns [255, 255, 255]\n */\nexport function hsl2rgb(h, s, l) {\n    s /= 100;\n    l /= 100;\n    let a = s * Math.min(l, 1 - l);\n    let f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n    return [f(0) * 255, f(8) * 255, f(4) * 255];\n}\n","import colors from './colors';\nimport { hsl2rgb, hsv2rgb } from './convert';\nconst prefix = '^\\\\s*';\nconst suffix = '\\\\s*$';\nconst percent = '\\\\s*((\\\\.\\\\d+)|(\\\\d+(\\\\.\\\\d*)?))%\\\\s*'; // 4 offset\nconst float = '\\\\s*((\\\\.\\\\d+)|(\\\\d+(\\\\.\\\\d*)?))\\\\s*'; // 4 offset\nconst hex = '([0-9A-Fa-f])';\nconst dhex = '([0-9A-Fa-f]{2})';\nconst hslRegex = new RegExp(`${prefix}hsl\\\\s*\\\\(${float},${percent},${percent}\\\\)${suffix}`);\nconst hsvRegex = new RegExp(`${prefix}hsv\\\\s*\\\\(${float},${percent},${percent}\\\\)${suffix}`);\nconst hslaRegex = new RegExp(`${prefix}hsla\\\\s*\\\\(${float},${percent},${percent},${float}\\\\)${suffix}`);\nconst hsvaRegex = new RegExp(`${prefix}hsva\\\\s*\\\\(${float},${percent},${percent},${float}\\\\)${suffix}`);\nconst rgbRegex = new RegExp(`${prefix}rgb\\\\s*\\\\(${float},${float},${float}\\\\)${suffix}`);\nconst rgbaRegex = new RegExp(`${prefix}rgba\\\\s*\\\\(${float},${float},${float},${float}\\\\)${suffix}`);\nconst sHexRegex = new RegExp(`${prefix}#${hex}${hex}${hex}${suffix}`);\nconst hexRegex = new RegExp(`${prefix}#${dhex}${dhex}${dhex}${suffix}`);\nconst sHexaRegex = new RegExp(`${prefix}#${hex}${hex}${hex}${hex}${suffix}`);\nconst hexaRegex = new RegExp(`${prefix}#${dhex}${dhex}${dhex}${dhex}${suffix}`);\nfunction parseHex(value) {\n    return parseInt(value, 16);\n}\n/**\n * Convert color string to hsla array\n * @param color format like hsl(180, 100%, 100%), hsla(180, 100%, 100%, 1)\n * @returns\n */\nexport function hsla(color) {\n    try {\n        let i;\n        if ((i = hslaRegex.exec(color))) {\n            return [\n                roundDeg(i[1]),\n                roundPercent(i[5]),\n                roundPercent(i[9]),\n                roundAlpha(i[13])\n            ];\n        }\n        else if ((i = hslRegex.exec(color))) {\n            return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1];\n        }\n        throw new Error(`[seemly/hsla]: Invalid color value ${color}.`);\n    }\n    catch (e) {\n        throw e;\n    }\n}\n/**\n * Convert color string to hsva array\n * @param color format like hsv(180, 100%, 100%), hsva(180, 100%, 100%, 1)\n * @returns\n */\nexport function hsva(color) {\n    try {\n        let i;\n        if ((i = hsvaRegex.exec(color))) {\n            return [\n                roundDeg(i[1]),\n                roundPercent(i[5]),\n                roundPercent(i[9]),\n                roundAlpha(i[13])\n            ];\n        }\n        else if ((i = hsvRegex.exec(color))) {\n            return [roundDeg(i[1]), roundPercent(i[5]), roundPercent(i[9]), 1];\n        }\n        throw new Error(`[seemly/hsva]: Invalid color value ${color}.`);\n    }\n    catch (e) {\n        throw e;\n    }\n}\n/**\n * Convert color string to rgba array.\n * @param color format like #000[0], #000000[00], rgb(0, 0, 0),\n * rgba(0, 0, 0, 0), hsl(a) color, hsv(a) color and color keywords and\n * transparent\n * @returns\n */\nexport function rgba(color) {\n    try {\n        let i;\n        if ((i = hexRegex.exec(color))) {\n            return [parseHex(i[1]), parseHex(i[2]), parseHex(i[3]), 1];\n        }\n        else if ((i = rgbRegex.exec(color))) {\n            return [roundChannel(i[1]), roundChannel(i[5]), roundChannel(i[9]), 1];\n        }\n        else if ((i = rgbaRegex.exec(color))) {\n            return [\n                roundChannel(i[1]),\n                roundChannel(i[5]),\n                roundChannel(i[9]),\n                roundAlpha(i[13])\n            ];\n        }\n        else if ((i = sHexRegex.exec(color))) {\n            return [\n                parseHex(i[1] + i[1]),\n                parseHex(i[2] + i[2]),\n                parseHex(i[3] + i[3]),\n                1\n            ];\n        }\n        else if ((i = hexaRegex.exec(color))) {\n            return [\n                parseHex(i[1]),\n                parseHex(i[2]),\n                parseHex(i[3]),\n                roundAlpha(parseHex(i[4]) / 255)\n            ];\n        }\n        else if ((i = sHexaRegex.exec(color))) {\n            return [\n                parseHex(i[1] + i[1]),\n                parseHex(i[2] + i[2]),\n                parseHex(i[3] + i[3]),\n                roundAlpha(parseHex(i[4] + i[4]) / 255)\n            ];\n        }\n        else if (color in colors) {\n            return rgba(colors[color]);\n        }\n        else if (hslRegex.test(color) || hslaRegex.test(color)) {\n            const [h, s, l, a] = hsla(color);\n            return [...hsl2rgb(h, s, l), a];\n        }\n        else if (hsvRegex.test(color) || hsvaRegex.test(color)) {\n            const [h, s, v, a] = hsva(color);\n            return [...hsv2rgb(h, s, v), a];\n        }\n        throw new Error(`[seemly/rgba]: Invalid color value ${color}.`);\n    }\n    catch (e) {\n        throw e;\n    }\n}\nfunction normalizeAlpha(alphaValue) {\n    return alphaValue > 1 ? 1 : alphaValue < 0 ? 0 : alphaValue;\n}\nfunction stringifyRgb(r, g, b) {\n    return `rgb(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)})`;\n}\nfunction stringifyRgba(r, g, b, a) {\n    return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${normalizeAlpha(a)})`;\n}\nfunction compositeChannel(v1, a1, v2, a2, a) {\n    return roundChannel((v1 * a1 * (1 - a2) + v2 * a2) / a);\n}\nexport function composite(background, overlay) {\n    if (!Array.isArray(background))\n        background = rgba(background);\n    if (!Array.isArray(overlay))\n        overlay = rgba(overlay);\n    const a1 = background[3];\n    const a2 = overlay[3];\n    const alpha = roundAlpha(a1 + a2 - a1 * a2);\n    return stringifyRgba(compositeChannel(background[0], a1, overlay[0], a2, alpha), compositeChannel(background[1], a1, overlay[1], a2, alpha), compositeChannel(background[2], a1, overlay[2], a2, alpha), alpha);\n}\nexport function changeColor(base, options) {\n    const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base);\n    if (typeof options.alpha === 'number') {\n        return stringifyRgba(r, g, b, options.alpha);\n    }\n    return stringifyRgba(r, g, b, a);\n}\nexport function scaleColor(base, options) {\n    const [r, g, b, a = 1] = Array.isArray(base) ? base : rgba(base);\n    const { lightness = 1, alpha = 1 } = options;\n    return toRgbaString([r * lightness, g * lightness, b * lightness, a * alpha]);\n}\nexport function getAlpha(base) {\n    var _a;\n    const alpha = (_a = (Array.isArray(base) ? base : rgba(base))[3]) !== null && _a !== void 0 ? _a : 1;\n    return alpha;\n}\nexport function getAlphaString(base) {\n    return `${getAlpha(base)}`;\n}\nexport function roundAlpha(value) {\n    const v = Math.round(Number(value) * 100) / 100;\n    if (v > 1)\n        return 1;\n    if (v < 0)\n        return 0;\n    return v;\n}\nexport function roundDeg(value) {\n    const v = Math.round(Number(value));\n    if (v >= 360)\n        return 0;\n    if (v < 0)\n        return 0;\n    return v;\n}\nexport function roundChannel(value) {\n    const v = Math.round(Number(value));\n    if (v > 255)\n        return 255;\n    if (v < 0)\n        return 0;\n    return v;\n}\nexport function roundPercent(value) {\n    const v = Math.round(Number(value));\n    if (v > 100)\n        return 100;\n    if (v < 0)\n        return 0;\n    return v;\n}\nexport function toRgbString(base) {\n    const [r, g, b] = Array.isArray(base) ? base : rgba(base);\n    return stringifyRgb(r, g, b);\n}\nexport function toRgbaString(base) {\n    const [r, g, b] = base;\n    if (3 in base) {\n        return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, ${roundAlpha(base[3])})`;\n    }\n    return `rgba(${roundChannel(r)}, ${roundChannel(g)}, ${roundChannel(b)}, 1)`;\n}\nexport function toHsvString(base) {\n    return `hsv(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`;\n}\nexport function toHsvaString(base) {\n    const [h, s, v] = base;\n    if (3 in base) {\n        return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, ${roundAlpha(base[3])})`;\n    }\n    return `hsva(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(v)}%, 1)`;\n}\nexport function toHslString(base) {\n    return `hsl(${roundDeg(base[0])}, ${roundPercent(base[1])}%, ${roundPercent(base[2])}%)`;\n}\nexport function toHslaString(base) {\n    const [h, s, l] = base;\n    if (3 in base) {\n        return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, ${roundAlpha(base[3])})`;\n    }\n    return `hsla(${roundDeg(h)}, ${roundPercent(s)}%, ${roundPercent(l)}%, 1)`;\n}\n/**\n *\n * @param base [255, 255, 255, 255], [255, 255, 255], any hex string\n * @returns\n */\nexport function toHexaString(base) {\n    if (typeof base === 'string') {\n        let i;\n        if (i = hexRegex.exec(base)) {\n            return `${i[0]}FF`;\n        }\n        else if (i = hexaRegex.exec(base)) {\n            return i[0];\n        }\n        else if (i = sHexRegex.exec(base)) {\n            return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}FF`;\n        }\n        else if (i = sHexaRegex.exec(base)) {\n            return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}${i[4]}${i[4]}`;\n        }\n        throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`);\n    }\n    const hex = `#${base\n        .slice(0, 3)\n        .map((unit) => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0'))\n        .join('')}`;\n    const a = base.length === 3\n        ? 'FF'\n        : roundChannel(base[3] * 255)\n            .toString(16)\n            .padStart(2, '0')\n            .toUpperCase();\n    return hex + a;\n}\n/**\n *\n * @param base [255, 255, 255, 255], [255, 255, 255], any hex string\n * @returns\n */\nexport function toHexString(base) {\n    if (typeof base === 'string') {\n        let i;\n        if (i = hexRegex.exec(base)) {\n            return i[0];\n        }\n        else if (i = hexaRegex.exec(base)) {\n            return i[0].slice(0, 7);\n        }\n        else if (i = (sHexRegex.exec(base) || sHexaRegex.exec(base))) {\n            return `#${i[1]}${i[1]}${i[2]}${i[2]}${i[3]}${i[3]}`;\n        }\n        throw new Error(`[seemly/toHexString]: Invalid hex value ${base}.`);\n    }\n    return `#${base\n        .slice(0, 3)\n        .map((unit) => roundChannel(unit).toString(16).toUpperCase().padStart(2, '0'))\n        .join('')}`;\n}\nexport { hsl2hsv, hsv2hsl, hsv2rgb, rgb2hsv, rgb2hsl, hsl2rgb } from './convert';\n","export function createId(length = 8) {\n    return Math.random()\n        .toString(16)\n        .slice(2, 2 + length);\n}\nexport function repeat(count, v) {\n    const ret = [];\n    for (let i = 0; i < count; ++i) {\n        ret.push(v);\n    }\n    return ret;\n}\nfunction indexMap(count, createValue) {\n    const ret = [];\n    if (!createValue) {\n        for (let i = 0; i < count; ++i) {\n            ret.push(i);\n        }\n        return ret;\n    }\n    for (let i = 0; i < count; ++i) {\n        ret.push(createValue(i));\n    }\n    return ret;\n}\nexport { indexMap };\nexport async function sleep(ms) {\n    return new Promise(resolve => {\n        setTimeout(resolve, ms);\n    });\n}\n","export function getEventTarget(e) {\n    const path = e.composedPath();\n    return path[0];\n}\n","import { on, off } from './delegate';\nimport { getEventTarget } from './utils';\nconst traps = {\n    mousemoveoutside: new WeakMap(),\n    clickoutside: new WeakMap()\n};\nfunction createTrapHandler(name, el, originalHandler) {\n    if (name === 'mousemoveoutside') {\n        const moveHandler = (e) => {\n            if (el.contains(getEventTarget(e)))\n                return;\n            originalHandler(e);\n        };\n        return {\n            mousemove: moveHandler,\n            touchstart: moveHandler\n        };\n    }\n    else if (name === 'clickoutside') {\n        let mouseDownOutside = false;\n        const downHandler = (e) => {\n            mouseDownOutside = !el.contains(getEventTarget(e));\n        };\n        const upHanlder = (e) => {\n            if (!mouseDownOutside)\n                return;\n            if (el.contains(getEventTarget(e)))\n                return;\n            originalHandler(e);\n        };\n        return {\n            mousedown: downHandler,\n            mouseup: upHanlder,\n            touchstart: downHandler,\n            touchend: upHanlder\n        };\n    }\n    console.error(\n    // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n    `[evtd/create-trap-handler]: name \\`${name}\\` is invalid. This could be a bug of evtd.`);\n    return {};\n}\nfunction ensureTrapHandlers(name, el, handler) {\n    const handlers = traps[name];\n    let elHandlers = handlers.get(el);\n    if (elHandlers === undefined) {\n        handlers.set(el, (elHandlers = new WeakMap()));\n    }\n    let trapHandler = elHandlers.get(handler);\n    if (trapHandler === undefined) {\n        elHandlers.set(handler, (trapHandler = createTrapHandler(name, el, handler)));\n    }\n    return trapHandler;\n}\nfunction trapOn(name, el, handler, options) {\n    if (name === 'mousemoveoutside' || name === 'clickoutside') {\n        const trapHandlers = ensureTrapHandlers(name, el, handler);\n        Object.keys(trapHandlers).forEach((key) => {\n            on(key, document, trapHandlers[key], options);\n        });\n        return true;\n    }\n    return false;\n}\nfunction trapOff(name, el, handler, options) {\n    if (name === 'mousemoveoutside' || name === 'clickoutside') {\n        const trapHandlers = ensureTrapHandlers(name, el, handler);\n        Object.keys(trapHandlers).forEach((key) => {\n            off(key, document, trapHandlers[key], options);\n        });\n        return true;\n    }\n    return false;\n}\nexport { trapOff, trapOn };\n","import { trapOn, trapOff } from './traps';\nimport { getEventTarget } from './utils';\n// currently `once` and `passive` is not supported\nfunction createDelegate() {\n    if (typeof window === 'undefined') {\n        return {\n            on: () => { },\n            off: () => { }\n        };\n    }\n    const propagationStopped = new WeakMap();\n    const immediatePropagationStopped = new WeakMap();\n    function trackPropagation() {\n        propagationStopped.set(this, true);\n    }\n    function trackImmediate() {\n        propagationStopped.set(this, true);\n        immediatePropagationStopped.set(this, true);\n    }\n    function spy(event, propName, fn) {\n        const source = event[propName];\n        event[propName] = function () {\n            fn.apply(event, arguments);\n            return source.apply(event, arguments);\n        };\n        return event;\n    }\n    function unspy(event, propName) {\n        event[propName] = Event.prototype[propName];\n    }\n    const currentTargets = new WeakMap();\n    const currentTargetDescriptor = Object.getOwnPropertyDescriptor(Event.prototype, 'currentTarget');\n    function getCurrentTarget() {\n        var _a;\n        return (_a = currentTargets.get(this)) !== null && _a !== void 0 ? _a : null;\n    }\n    function defineCurrentTarget(event, getter) {\n        if (currentTargetDescriptor === undefined)\n            return;\n        Object.defineProperty(event, 'currentTarget', {\n            configurable: true,\n            enumerable: true,\n            get: getter !== null && getter !== void 0 ? getter : currentTargetDescriptor.get\n        });\n    }\n    const phaseToTypeToElToHandlers = {\n        bubble: {},\n        capture: {}\n    };\n    const typeToWindowEventHandlers = {};\n    function createUnifiedHandler() {\n        const delegeteHandler = function (e) {\n            const { type, eventPhase, bubbles } = e;\n            const target = getEventTarget(e);\n            if (eventPhase === 2)\n                return;\n            const phase = eventPhase === 1 ? 'capture' : 'bubble';\n            let cursor = target;\n            const path = [];\n            // collecting bubble path\n            while (true) {\n                if (cursor === null)\n                    cursor = window;\n                path.push(cursor);\n                if (cursor === window) {\n                    break;\n                }\n                // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n                cursor = (cursor.parentNode || null);\n            }\n            const captureElToHandlers = phaseToTypeToElToHandlers.capture[type];\n            const bubbleElToHandlers = phaseToTypeToElToHandlers.bubble[type];\n            spy(e, 'stopPropagation', trackPropagation);\n            spy(e, 'stopImmediatePropagation', trackImmediate);\n            defineCurrentTarget(e, getCurrentTarget);\n            if (phase === 'capture') {\n                if (captureElToHandlers === undefined)\n                    return;\n                // capture\n                for (let i = path.length - 1; i >= 0; --i) {\n                    if (propagationStopped.has(e))\n                        break;\n                    const target = path[i];\n                    const handlers = captureElToHandlers.get(target);\n                    if (handlers !== undefined) {\n                        currentTargets.set(e, target);\n                        for (const handler of handlers) {\n                            if (immediatePropagationStopped.has(e))\n                                break;\n                            handler(e);\n                        }\n                    }\n                    if (i === 0 && !bubbles && bubbleElToHandlers !== undefined) {\n                        const bubbleHandlers = bubbleElToHandlers.get(target);\n                        if (bubbleHandlers !== undefined) {\n                            for (const handler of bubbleHandlers) {\n                                if (immediatePropagationStopped.has(e))\n                                    break;\n                                handler(e);\n                            }\n                        }\n                    }\n                }\n            }\n            else if (phase === 'bubble') {\n                if (bubbleElToHandlers === undefined)\n                    return;\n                // bubble\n                for (let i = 0; i < path.length; ++i) {\n                    if (propagationStopped.has(e))\n                        break;\n                    const target = path[i];\n                    const handlers = bubbleElToHandlers.get(target);\n                    if (handlers !== undefined) {\n                        currentTargets.set(e, target);\n                        for (const handler of handlers) {\n                            if (immediatePropagationStopped.has(e))\n                                break;\n                            handler(e);\n                        }\n                    }\n                }\n            }\n            unspy(e, 'stopPropagation');\n            unspy(e, 'stopImmediatePropagation');\n            defineCurrentTarget(e);\n        };\n        delegeteHandler.displayName = 'evtdUnifiedHandler';\n        return delegeteHandler;\n    }\n    function createUnifiedWindowEventHandler() {\n        const delegateHandler = function (e) {\n            const { type, eventPhase } = e;\n            if (eventPhase !== 2)\n                return;\n            const handlers = typeToWindowEventHandlers[type];\n            if (handlers === undefined)\n                return;\n            handlers.forEach((handler) => handler(e));\n        };\n        delegateHandler.displayName = 'evtdUnifiedWindowEventHandler';\n        return delegateHandler;\n    }\n    const unifiedHandler = createUnifiedHandler();\n    const unfiendWindowEventHandler = createUnifiedWindowEventHandler();\n    function ensureElToHandlers(phase, type) {\n        const phaseHandlers = phaseToTypeToElToHandlers[phase];\n        if (phaseHandlers[type] === undefined) {\n            phaseHandlers[type] = new Map();\n            window.addEventListener(type, unifiedHandler, phase === 'capture');\n        }\n        return phaseHandlers[type];\n    }\n    function ensureWindowEventHandlers(type) {\n        const windowEventHandlers = typeToWindowEventHandlers[type];\n        if (windowEventHandlers === undefined) {\n            typeToWindowEventHandlers[type] = new Set();\n            window.addEventListener(type, unfiendWindowEventHandler);\n        }\n        return typeToWindowEventHandlers[type];\n    }\n    function ensureHandlers(elToHandlers, el) {\n        let elHandlers = elToHandlers.get(el);\n        if (elHandlers === undefined) {\n            elToHandlers.set(el, (elHandlers = new Set()));\n        }\n        return elHandlers;\n    }\n    function handlerExist(el, phase, type, handler) {\n        const elToHandlers = phaseToTypeToElToHandlers[phase][type];\n        // phase ${type} event has handlers\n        if (elToHandlers !== undefined) {\n            const handlers = elToHandlers.get(el);\n            // phase using el with ${type} event has handlers\n            if (handlers !== undefined) {\n                if (handlers.has(handler))\n                    return true;\n            }\n        }\n        return false;\n    }\n    function windowEventHandlerExist(type, handler) {\n        const handlers = typeToWindowEventHandlers[type];\n        if (handlers !== undefined) {\n            if (handlers.has(handler)) {\n                return true;\n            }\n        }\n        return false;\n    }\n    function on(type, el, handler, options) {\n        let mergedHandler;\n        if (typeof options === 'object' && options.once === true) {\n            mergedHandler = (e) => {\n                off(type, el, mergedHandler, options);\n                handler(e);\n            };\n        }\n        else {\n            mergedHandler = handler;\n        }\n        const trapped = trapOn(type, el, mergedHandler, options);\n        if (trapped)\n            return;\n        const phase = options === true ||\n            (typeof options === 'object' && options.capture === true)\n            ? 'capture'\n            : 'bubble';\n        const elToHandlers = ensureElToHandlers(phase, type);\n        const handlers = ensureHandlers(elToHandlers, el);\n        if (!handlers.has(mergedHandler))\n            handlers.add(mergedHandler);\n        if (el === window) {\n            const windowEventHandlers = ensureWindowEventHandlers(type);\n            if (!windowEventHandlers.has(mergedHandler)) {\n                windowEventHandlers.add(mergedHandler);\n            }\n        }\n    }\n    function off(type, el, handler, options) {\n        const trapped = trapOff(type, el, handler, options);\n        if (trapped)\n            return;\n        const capture = options === true ||\n            (typeof options === 'object' && options.capture === true);\n        const phase = capture ? 'capture' : 'bubble';\n        const elToHandlers = ensureElToHandlers(phase, type);\n        const handlers = ensureHandlers(elToHandlers, el);\n        if (el === window) {\n            const mirrorPhase = capture ? 'bubble' : 'capture';\n            if (!handlerExist(el, mirrorPhase, type, handler) &&\n                windowEventHandlerExist(type, handler)) {\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                const windowEventHandlers = typeToWindowEventHandlers[type];\n                windowEventHandlers.delete(handler);\n                if (windowEventHandlers.size === 0) {\n                    window.removeEventListener(type, unfiendWindowEventHandler);\n                    typeToWindowEventHandlers[type] = undefined;\n                }\n            }\n        }\n        if (handlers.has(handler))\n            handlers.delete(handler);\n        if (handlers.size === 0) {\n            elToHandlers.delete(el);\n        }\n        if (elToHandlers.size === 0) {\n            window.removeEventListener(type, unifiedHandler, phase === 'capture');\n            phaseToTypeToElToHandlers[phase][type] = undefined;\n        }\n    }\n    return {\n        on: on,\n        off: off\n    };\n}\nconst { on, off } = createDelegate();\nexport { on, off };\n","import { ref, readonly, watch } from 'vue';\nexport default function useFalseUntilTruthy(originalRef) {\n    const currentRef = ref(!!originalRef.value);\n    if (currentRef.value)\n        return readonly(currentRef);\n    const stop = watch(originalRef, (value) => {\n        if (value) {\n            currentRef.value = true;\n            stop();\n        }\n    });\n    return readonly(currentRef);\n}\n","import { computed, ref, watch } from 'vue';\nfunction useMemo(getterOrOptions) {\n    const computedValueRef = computed(getterOrOptions);\n    // Maybe it's not possible to lazy evaluate the value, since we can't make\n    // render phase capture the deps behind useMemo\n    const valueRef = ref(computedValueRef.value);\n    watch(computedValueRef, (value) => {\n        valueRef.value = value;\n    });\n    if (typeof getterOrOptions === 'function') {\n        return valueRef;\n    }\n    else {\n        return {\n            __v_isRef: true,\n            get value() {\n                return valueRef.value;\n            },\n            set value(v) {\n                getterOrOptions.set(v);\n            }\n        };\n    }\n}\nexport default useMemo;\n","import { getCurrentInstance } from 'vue';\nexport function hasInstance() {\n    return getCurrentInstance() !== null;\n}\nexport const isBrowser = typeof window !== 'undefined';\n","import { onMounted, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nlet fontsReady;\nlet isFontReady;\nconst init = () => {\n    var _a, _b;\n    fontsReady = isBrowser ? (_b = (_a = document) === null || _a === void 0 ? void 0 : _a.fonts) === null || _b === void 0 ? void 0 : _b.ready : undefined;\n    isFontReady = false;\n    /* istanbul ignore if */\n    if (fontsReady !== undefined) {\n        void fontsReady.then(() => {\n            isFontReady = true;\n        });\n    }\n    else {\n        isFontReady = true;\n    }\n};\ninit();\n// For testing\nexport { init };\n/**\n * Call callback on fontsReady is resolved. If fontsReady is already resolved,\n * callback won't be called.\n */\nexport default function onFontsReady(cb) {\n    /* istanbul ignore next */\n    if (isFontReady)\n        return;\n    let deactivated = false;\n    onMounted(() => {\n        /* istanbul ignore next */\n        if (!isFontReady) {\n            fontsReady === null || fontsReady === void 0 ? void 0 : fontsReady.then(() => {\n                if (deactivated)\n                    return;\n                cb();\n            });\n        }\n    });\n    onBeforeUnmount(() => {\n        deactivated = true;\n    });\n}\n","import { ref, readonly, onBeforeMount, onBeforeUnmount } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance, isBrowser } from './utils';\nconst mousePositionRef = ref(null);\nfunction clickHandler(e) {\n    if (e.clientX > 0 || e.clientY > 0) {\n        mousePositionRef.value = {\n            x: e.clientX,\n            y: e.clientY\n        };\n    }\n    else {\n        // x = 0 & y = 0\n        const { target } = e;\n        if (target instanceof Element) {\n            const { left, top, width, height } = target.getBoundingClientRect();\n            if (left > 0 || top > 0) {\n                // impossible to be triggered by real click\n                mousePositionRef.value = {\n                    x: left + width / 2,\n                    y: top + height / 2\n                };\n            }\n            else {\n                mousePositionRef.value = { x: 0, y: 0 };\n            }\n        }\n        else {\n            mousePositionRef.value = null;\n        }\n    }\n}\nlet usedCount = 0;\nlet managable = true;\nexport default function useClickPosition() {\n    if (!isBrowser)\n        return readonly(ref(null));\n    if (usedCount === 0)\n        on('click', document, clickHandler, true);\n    const setup = () => {\n        usedCount += 1;\n    };\n    if (managable && (managable = hasInstance())) {\n        onBeforeMount(setup);\n        onBeforeUnmount(() => {\n            usedCount -= 1;\n            if (usedCount === 0)\n                off('click', document, clickHandler, true);\n        });\n    }\n    else {\n        setup();\n    }\n    return readonly(mousePositionRef);\n}\n","import { onBeforeMount, onBeforeUnmount, ref, readonly } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance, isBrowser } from './utils';\nconst clickedTimeRef = ref(undefined);\nlet usedCount = 0;\nfunction handleClick() {\n    clickedTimeRef.value = Date.now();\n}\nlet managable = true;\nexport default function useClicked(timeout) {\n    if (!isBrowser)\n        return readonly(ref(false));\n    const clickedRef = ref(false);\n    let timerId = null;\n    function clearTimer() {\n        if (timerId !== null)\n            window.clearTimeout(timerId);\n    }\n    function clickedHandler() {\n        clearTimer();\n        clickedRef.value = true;\n        timerId = window.setTimeout(() => {\n            clickedRef.value = false;\n        }, timeout);\n    }\n    if (usedCount === 0) {\n        on('click', window, handleClick, true);\n    }\n    const setup = () => {\n        usedCount += 1;\n        on('click', window, clickedHandler, true);\n    };\n    if (managable && (managable = hasInstance())) {\n        onBeforeMount(setup);\n        onBeforeUnmount(() => {\n            usedCount -= 1;\n            if (usedCount === 0) {\n                off('click', window, handleClick, true);\n            }\n            off('click', window, clickedHandler, true);\n            clearTimer();\n        });\n    }\n    else {\n        setup();\n    }\n    return readonly(clickedRef);\n}\n","/* eslint-disable @typescript-eslint/strict-boolean-expressions */\n/* eslint-disable @typescript-eslint/no-non-null-assertion */\nimport { ref, readonly, onBeforeMount, onBeforeUnmount } from 'vue';\nimport { hasInstance } from './utils';\nlet usedCount = 0;\n// Mql means media query list\nconst supportMatchMedia = typeof window !== 'undefined' && window.matchMedia !== undefined;\nconst osTheme = ref(null);\nlet darkMql;\nlet lightMql;\nfunction handleDarkMqlChange(e) {\n    if (e.matches) {\n        osTheme.value = 'dark';\n    }\n}\nfunction handleLightMqlChange(e) {\n    if (e.matches) {\n        osTheme.value = 'light';\n    }\n}\nfunction init() {\n    darkMql = window.matchMedia('(prefers-color-scheme: dark)');\n    lightMql = window.matchMedia('(prefers-color-scheme: light)');\n    if (darkMql.matches) {\n        osTheme.value = 'dark';\n    }\n    else if (lightMql.matches) {\n        osTheme.value = 'light';\n    }\n    else {\n        osTheme.value = null;\n    }\n    if (darkMql.addEventListener) {\n        darkMql.addEventListener('change', handleDarkMqlChange);\n        lightMql.addEventListener('change', handleLightMqlChange);\n    }\n    else if (darkMql.addListener) {\n        darkMql.addListener(handleDarkMqlChange);\n        lightMql.addListener(handleLightMqlChange);\n    }\n}\nfunction clean() {\n    if ('removeEventListener' in darkMql) {\n        darkMql.removeEventListener('change', handleDarkMqlChange);\n        lightMql.removeEventListener('change', handleLightMqlChange);\n    }\n    else if ('removeListener' in darkMql) {\n        darkMql.removeListener(handleDarkMqlChange);\n        lightMql.removeListener(handleLightMqlChange);\n    }\n    darkMql = undefined;\n    lightMql = undefined;\n}\nlet managable = true;\nexport default function useOsTheme() {\n    /* istanbul ignore next */\n    if (process.env.NODE_ENV !== 'test' && !supportMatchMedia) {\n        return readonly(osTheme);\n    }\n    if (process.env.NODE_ENV === 'test' && window.matchMedia === undefined) {\n        return readonly(osTheme);\n    }\n    if (usedCount === 0)\n        init();\n    if (managable && (managable = hasInstance())) {\n        onBeforeMount(() => {\n            usedCount += 1;\n        });\n        onBeforeUnmount(() => {\n            usedCount -= 1;\n            if (usedCount === 0)\n                clean();\n        });\n    }\n    return readonly(osTheme);\n}\n","import { watch, computed } from 'vue';\nexport default function useMergedState(controlledStateRef, uncontrolledStateRef) {\n    watch(controlledStateRef, value => {\n        if (value !== undefined) {\n            uncontrolledStateRef.value = value;\n        }\n    });\n    return computed(() => {\n        if (controlledStateRef.value === undefined) {\n            return uncontrolledStateRef.value;\n        }\n        return controlledStateRef.value;\n    });\n}\n","import { ref, onMounted, readonly } from 'vue';\nexport default function isMounted() {\n    const isMounted = ref(false);\n    onMounted(() => { isMounted.value = true; });\n    return readonly(isMounted);\n}\n","import { computed } from 'vue';\nexport default function useCompitable(reactive, keys) {\n    // @ts-expect-error\n    return computed(() => {\n        for (const key of keys) {\n            if (reactive[key] !== undefined)\n                return reactive[key];\n        }\n        return reactive[keys[keys.length - 1]];\n    });\n}\n","export const isIos = (typeof window === 'undefined'\n    ? false\n    : /iPad|iPhone|iPod/.test(navigator.platform) ||\n        (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    !window.MSStream;\nexport default function useIsIos() {\n    return isIos;\n}\n","/* eslint-disable @typescript-eslint/consistent-type-assertions */\nimport { ref, computed, onBeforeUnmount } from 'vue';\nimport { isBrowser } from './utils';\nexport const defaultBreakpointOptions = {\n    // mobile\n    // 0 ~ 640 doesn't mean it should display well in all the range,\n    // but means you should treat it like a mobile phone.)\n    xs: 0,\n    s: 640,\n    m: 1024,\n    l: 1280,\n    xl: 1536,\n    '2xl': 1920 // normal desktop display\n};\nfunction createMediaQuery(screenWidth) {\n    return `(min-width: ${screenWidth}px)`;\n}\nconst mqlMap = {};\nfunction useBreakpoints(screens = defaultBreakpointOptions) {\n    if (!isBrowser)\n        return computed(() => []);\n    // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n    if (typeof window.matchMedia !== 'function')\n        return computed(() => []);\n    const breakpointStatusRef = ref({});\n    const breakpoints = Object.keys(screens);\n    const updateBreakpoints = (e, breakpointName) => {\n        if (e.matches)\n            breakpointStatusRef.value[breakpointName] = true;\n        else\n            breakpointStatusRef.value[breakpointName] = false;\n    };\n    breakpoints.forEach((key) => {\n        const breakpointValue = screens[key];\n        let mql;\n        let cbs;\n        if (mqlMap[breakpointValue] === undefined) {\n            mql = window.matchMedia(createMediaQuery(breakpointValue));\n            // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            if (mql.addEventListener) {\n                mql.addEventListener('change', (e) => {\n                    cbs.forEach((cb) => {\n                        cb(e, key);\n                    });\n                });\n                // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions\n            }\n            else if (mql.addListener) {\n                mql.addListener((e) => {\n                    cbs.forEach((cb) => {\n                        cb(e, key);\n                    });\n                });\n            }\n            cbs = new Set();\n            mqlMap[breakpointValue] = {\n                mql,\n                cbs\n            };\n        }\n        else {\n            mql = mqlMap[breakpointValue].mql;\n            cbs = mqlMap[breakpointValue].cbs;\n        }\n        cbs.add(updateBreakpoints);\n        if (mql.matches) {\n            cbs.forEach((cb) => {\n                cb(mql, key);\n            });\n        }\n    });\n    onBeforeUnmount(() => {\n        breakpoints.forEach((breakpoint) => {\n            const { cbs } = mqlMap[screens[breakpoint]];\n            if (cbs.has(updateBreakpoints)) {\n                cbs.delete(updateBreakpoints);\n            }\n        });\n    });\n    return computed(() => {\n        const { value } = breakpointStatusRef;\n        return breakpoints.filter((key) => value[key]);\n    });\n}\nexport default useBreakpoints;\n","import { onBeforeMount, onBeforeUnmount, reactive, readonly, watch } from 'vue';\nimport { on, off } from 'evtd';\nimport { hasInstance } from './utils';\nexport default function useKeyboard(options = {}, enabledRef) {\n    const state = reactive({\n        ctrl: false,\n        command: false,\n        win: false,\n        shift: false,\n        tab: false\n    });\n    const { keydown, keyup } = options;\n    const keydownHandler = (e) => {\n        switch (e.key) {\n            case 'Control':\n                state.ctrl = true;\n                break;\n            case 'Meta':\n                state.command = true;\n                state.win = true;\n                break;\n            case 'Shift':\n                state.shift = true;\n                break;\n            case 'Tab':\n                state.tab = true;\n                break;\n        }\n        if (keydown !== undefined) {\n            Object.keys(keydown).forEach(key => {\n                if (key !== e.key)\n                    return;\n                const handler = keydown[key];\n                if (typeof handler === 'function') {\n                    handler(e);\n                }\n                else {\n                    const { stop = false, prevent = false } = handler;\n                    if (stop)\n                        e.stopPropagation();\n                    if (prevent)\n                        e.preventDefault();\n                    handler.handler(e);\n                }\n            });\n        }\n    };\n    const keyupHandler = (e) => {\n        switch (e.key) {\n            case 'Control':\n                state.ctrl = false;\n                break;\n            case 'Meta':\n                state.command = false;\n                state.win = false;\n                break;\n            case 'Shift':\n                state.shift = false;\n                break;\n            case 'Tab':\n                state.tab = false;\n                break;\n        }\n        if (keyup !== undefined) {\n            Object.keys(keyup).forEach(key => {\n                if (key !== e.key)\n                    return;\n                const handler = keyup[key];\n                if (typeof handler === 'function') {\n                    handler(e);\n                }\n                else {\n                    const { stop = false, prevent = false } = handler;\n                    if (stop)\n                        e.stopPropagation();\n                    if (prevent)\n                        e.preventDefault();\n                    handler.handler(e);\n                }\n            });\n        }\n    };\n    const setup = () => {\n        if (enabledRef === undefined || enabledRef.value) {\n            on('keydown', document, keydownHandler);\n            on('keyup', document, keyupHandler);\n        }\n        if (enabledRef !== undefined) {\n            watch(enabledRef, value => {\n                if (value) {\n                    on('keydown', document, keydownHandler);\n                    on('keyup', document, keyupHandler);\n                }\n                else {\n                    off('keydown', document, keydownHandler);\n                    off('keyup', document, keyupHandler);\n                }\n            });\n        }\n    };\n    if (hasInstance()) {\n        onBeforeMount(setup);\n        onBeforeUnmount(() => {\n            if (enabledRef === undefined || enabledRef.value) {\n                off('keydown', document, keydownHandler);\n                off('keyup', document, keyupHandler);\n            }\n        });\n    }\n    else {\n        setup();\n    }\n    return readonly(state);\n}\n","import type { InjectionKey } from 'vue'\n\nexport function createInjectionKey<T>(key: string): InjectionKey<T> {\n  return key as any\n}\n","import type { TreeNode } from 'treemate'\nimport type { HTMLAttributes, Ref, UnwrapRef, VNode, VNodeChild } from 'vue'\nimport type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption\n} from '../../../select/src/interface'\nimport { createInjectionKey } from '../../../_utils/vue/create-injection-key'\n\nexport type Size = 'tiny' | 'small' | 'medium' | 'large' | 'huge'\n\nexport type RenderLabel = (\n  option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption,\n  selected: boolean\n) => VNodeChild\n\nexport type RenderLabelImpl = (\n  option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption,\n  selected: boolean\n) => VNodeChild\n\nexport type RenderOption = (info: {\n  node: VNode\n  option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption\n  selected: boolean\n}) => VNodeChild\n\nexport type RenderOptionImpl = (info: {\n  node: VNode\n  option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption\n  selected: boolean\n}) => VNodeChild\n\nexport type NodeProps = (\n  option: SelectBaseOption | SelectGroupOption\n) => HTMLAttributes & Record<string, unknown>\n\nexport interface InternalSelectMenuInjection {\n  handleOptionMouseEnter: (\n    e: MouseEvent,\n    tmNode: TreeNode<SelectBaseOption>\n  ) => void\n  handleOptionClick: (e: MouseEvent, tmNode: TreeNode<SelectBaseOption>) => void\n  showCheckmarkRef: Ref<boolean>\n  valueSetRef: Ref<Set<number | string>>\n  pendingTmNodeRef: Ref<TreeNode<SelectBaseOption> | null>\n  multipleRef: Ref<boolean>\n  valueRef: Ref<string | number | Array<string | number> | null>\n  renderLabelRef: Ref<RenderLabel | undefined>\n  renderOptionRef: Ref<RenderOption | undefined>\n  labelFieldRef: Ref<string>\n  valueFieldRef: Ref<string>\n  nodePropsRef: Ref<NodeProps | undefined>\n}\n\nexport interface InternalExposedProps {\n  selfRef: Ref<HTMLElement | null>\n  getPendingTmNode: () => TreeNode<SelectBaseOption> | null\n  prev: () => void\n  next: () => void\n}\n\nexport const internalSelectionMenuInjectionKey\n  = createInjectionKey<InternalSelectMenuInjection>('n-internal-select-menu')\n\nexport const internalSelectionMenuBodyInjectionKey = createInjectionKey<\n  Ref<HTMLElement | null>\n>('n-internal-select-menu-body')\n\nexport type InternalSelectMenuRef = UnwrapRef<InternalExposedProps>\n","import type { Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { DrawerTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils/vue/create-injection-key'\n\nexport type DrawerBodyInjection = Ref<HTMLElement | null> | null\nexport const drawerBodyInjectionKey\n  = createInjectionKey<DrawerBodyInjection>('n-drawer-body')\n\nexport interface DrawerInjection {\n  isMountedRef: Ref<boolean>\n  mergedThemeRef: Ref<MergedTheme<DrawerTheme>>\n  mergedClsPrefixRef: Ref<string>\n  doUpdateShow: (show: boolean) => void\n  doUpdateWidth: (value: number) => void\n  doUpdateHeight: (value: number) => void\n}\nexport const drawerInjectionKey\n  = createInjectionKey<DrawerInjection>('n-drawer')\n","import type { ComponentPublicInstance, Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { ModalTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils/vue/create-injection-key'\n\nexport type ModalBodyInjection = Ref<\n  HTMLElement | ComponentPublicInstance | null\n> | null\n\nexport const modalBodyInjectionKey\n  = createInjectionKey<ModalBodyInjection>('n-modal-body')\n\nexport interface ModalProviderInjection {\n  clickedRef: Ref<boolean>\n  clickedPositionRef: Ref<{ x: number, y: number } | null>\n}\n\nexport const modalProviderInjectionKey\n  = createInjectionKey<ModalProviderInjection>('n-modal-provider')\n\nexport interface ModalInjection {\n  getMousePosition: () => {\n    x: number\n    y: number\n  } | null\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<ModalTheme>>\n  isMountedRef: Ref<boolean>\n  appearRef: Ref<boolean | undefined>\n  transformOriginRef: Ref<'mouse' | 'center'>\n}\n\nexport const modalInjectionKey = createInjectionKey<ModalInjection>('n-modal')\n\nexport interface ModalDraggableOptions {\n  /**\n   * If set to 'none', the modal's position will not be bounded to the window.\n   */\n  bounds?: 'none'\n}\n","import type { CSSProperties, Ref, VNode } from 'vue'\nimport { createInjectionKey } from '../../_utils/vue/create-injection-key'\n\nexport type PopoverTrigger = 'click' | 'hover' | 'focus' | 'manual'\n\nexport interface PopoverInst {\n  syncPosition: () => void\n  setShow: (value: boolean) => void\n}\n\nexport type InternalPopoverInst = PopoverInst & {\n  getMergedShow: () => boolean\n}\n\nexport type PopoverBodyInjection = Ref<HTMLElement | null> | null\n\nexport const popoverBodyInjectionKey\n  = createInjectionKey<PopoverBodyInjection>('n-popover-body')\n\nexport type InternalRenderBody = (\n  className: any,\n  ref: Ref<HTMLElement | null>,\n  style: CSSProperties[],\n  onMouseenter: (e: MouseEvent) => void,\n  onMouseleave: (e: MouseEvent) => void\n) => VNode\n","import type { ComponentPublicInstance, ComputedRef, PropType } from 'vue'\nimport { off, on } from 'evtd'\nimport { useMemo } from 'vooks'\nimport { inject, onBeforeUnmount, onMounted, ref } from 'vue'\nimport { internalSelectionMenuBodyInjectionKey } from '../../_internal/select-menu/src/interface'\nimport { drawerBodyInjectionKey } from '../../drawer/src/interface'\nimport { modalBodyInjectionKey } from '../../modal/src/interface'\nimport { popoverBodyInjectionKey } from '../../popover/src/interface'\n\ninterface UseAdjustedToProps {\n  to?: string | HTMLElement | boolean\n  [key: string]: unknown\n}\n\nconst teleportDisabled = '__disabled__'\nfunction useAdjustedTo(\n  props: UseAdjustedToProps\n): ComputedRef<HTMLElement | string> {\n  const modal = inject(modalBodyInjectionKey, null)\n  const drawer = inject(drawerBodyInjectionKey, null)\n  const popover = inject(popoverBodyInjectionKey, null)\n  const selectMenu = inject(internalSelectionMenuBodyInjectionKey, null)\n\n  const fullscreenElementRef = ref<null | Element>()\n  if (typeof document !== 'undefined') {\n    fullscreenElementRef.value = document.fullscreenElement\n    const handleFullscreenChange = (): void => {\n      fullscreenElementRef.value = document.fullscreenElement\n    }\n    onMounted(() => {\n      on('fullscreenchange', document, handleFullscreenChange)\n    })\n    onBeforeUnmount(() => {\n      off('fullscreenchange', document, handleFullscreenChange)\n    })\n  }\n\n  return useMemo(() => {\n    const { to } = props\n    if (to !== undefined) {\n      if (to === false)\n        return teleportDisabled\n      if (to === true)\n        return fullscreenElementRef.value || 'body'\n      return to\n    }\n    if (modal?.value) {\n      return (modal.value as ComponentPublicInstance).$el ?? modal.value\n    }\n    if (drawer?.value)\n      return drawer.value\n    if (popover?.value)\n      return popover.value\n    if (selectMenu?.value)\n      return selectMenu.value\n    return to ?? (fullscreenElementRef.value || 'body')\n  })\n}\n\n// teleport disabled key\nuseAdjustedTo.tdkey = teleportDisabled\nuseAdjustedTo.propTo = {\n  type: [String, Object, Boolean] as PropType<HTMLElement | string | boolean>,\n  default: undefined\n}\n\nexport { useAdjustedTo }\n","import type { InjectionKey, Ref } from 'vue'\nimport {\n  getCurrentInstance,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  watch\n} from 'vue'\n\n// injection.collection {\n//   key1: [insta, instb]\n//   key2: [instc]\n// }\nexport function useInjectionInstanceCollection(\n  injectionName: string | InjectionKey<unknown>,\n  collectionKey: string,\n  registerKeyRef: Ref<string | undefined>\n): void {\n  const injection = inject<Record<string, Record<string, any>> | null>(\n    injectionName,\n    null\n  )\n  if (injection === null)\n    return\n  const vm = getCurrentInstance()?.proxy\n  watch(registerKeyRef, registerInstance)\n  registerInstance(registerKeyRef.value)\n  onBeforeUnmount(() => {\n    registerInstance(undefined, registerKeyRef.value)\n  })\n  function registerInstance(key?: string, oldKey?: string): void {\n    if (!injection)\n      return\n    const collection = injection[collectionKey]\n    if (oldKey !== undefined)\n      removeInstance(collection, oldKey)\n    if (key !== undefined)\n      addInstance(collection, key)\n  }\n  function removeInstance(\n    collection: Record<string, any[]>,\n    key: string\n  ): void {\n    if (!collection[key])\n      collection[key] = []\n    collection[key].splice(\n      collection[key].findIndex(instance => instance === vm),\n      1\n    )\n  }\n  function addInstance(collection: Record<string, any[]>, key: string): void {\n    if (!collection[key])\n      collection[key] = []\n    if (!~collection[key].findIndex(instance => instance === vm)) {\n      collection[key].push(vm)\n    }\n  }\n}\n\n// injection.collection {\n//   key1: [insta.value, instb.value]\n//   key2: [instc.value]\n// }\nexport function useInjectionCollection(\n  injectionName: string | InjectionKey<unknown>,\n  collectionKey: string,\n  valueRef: Ref<any>\n): void {\n  const injection = inject<Record<any, any[]> | null>(injectionName, null)\n  if (injection === null)\n    return\n  if (!(collectionKey in injection)) {\n    injection[collectionKey] = []\n  }\n  injection[collectionKey].push(valueRef.value)\n  watch(valueRef, (value, prevValue) => {\n    const collectionArray = injection[collectionKey]\n    const index = collectionArray.findIndex(\n      collectionValue => collectionValue === prevValue\n    )\n    if (~index)\n      collectionArray.splice(index, 1)\n    collectionArray.push(value)\n  })\n  onBeforeUnmount(() => {\n    const collectionArray = injection[collectionKey]\n    const index = collectionArray.findIndex(\n      collectionValue => collectionValue === valueRef.value\n    )\n    if (~index)\n      collectionArray.splice(index, 1)\n  })\n}\n\n// injection.collection {\n//   key1: [insta.$el, instb.$el]\n//   key2: [instc.$el]\n// }\nexport function useInjectionElementCollection(\n  injectionName: string | InjectionKey<unknown>,\n  collectionKey: string,\n  getElement: () => HTMLElement | null\n): void {\n  const injection = inject<Record<string, HTMLElement[]> | null>(\n    injectionName,\n    null\n  )\n  if (injection === null)\n    return\n  if (!(collectionKey in injection)) {\n    injection[collectionKey] = []\n  }\n  onMounted(() => {\n    const el = getElement()\n    if (!el)\n      return\n    injection[collectionKey].push(el)\n  })\n  onBeforeUnmount(() => {\n    const collectionArray = injection[collectionKey]\n    const element = getElement()\n    const index = collectionArray.findIndex(\n      collectionElement => collectionElement === element\n    )\n    if (~index)\n      collectionArray.splice(index, 1)\n  })\n}\n","import type { Ref } from 'vue'\nimport { ref, watch } from 'vue'\n\nexport function useDeferredTrue(\n  valueRef: Ref<any>,\n  delay: number,\n  shouldDelayRef: Ref<boolean>\n): Ref<boolean> {\n  if (!delay)\n    return valueRef\n  const delayedRef = ref(valueRef.value)\n  let timerId: number | null = null\n  watch(valueRef, (value) => {\n    if (timerId !== null)\n      window.clearTimeout(timerId)\n    if (value === true) {\n      if (shouldDelayRef && !shouldDelayRef.value) {\n        delayedRef.value = true\n      }\n      else {\n        timerId = window.setTimeout(() => {\n          delayedRef.value = true\n        }, delay)\n      }\n    }\n    else {\n      delayedRef.value = false\n    }\n  })\n  return delayedRef\n}\n","export const isBrowser\n  = typeof document !== 'undefined' && typeof window !== 'undefined'\n","import { isBrowser } from '../env/is-browser'\n\nlet houdiniRegistered = false\n\nexport function useHoudini(): void {\n  if (!isBrowser)\n    return\n  if (!window.CSS)\n    return\n  if (!houdiniRegistered) {\n    houdiniRegistered = true\n    if ('registerProperty' in window?.CSS) {\n      try {\n        ;(CSS as any).registerProperty({\n          name: '--n-color-start',\n          syntax: '<color>',\n          inherits: false,\n          initialValue: '#0000'\n        })\n        ;(CSS as any).registerProperty({\n          name: '--n-color-end',\n          syntax: '<color>',\n          inherits: false,\n          initialValue: '#0000'\n        })\n      }\n      catch {}\n    }\n  }\n}\n","import type { Ref } from 'vue'\nimport { onBeforeMount, onBeforeUnmount, ref } from 'vue'\nimport { isBrowser } from '../env/is-browser'\n\nconst isComposingRef = ref(false)\nfunction compositionStartHandler(): void {\n  isComposingRef.value = true\n}\nfunction compositionEndHandler(): void {\n  isComposingRef.value = false\n}\nlet mountedCount = 0\n\nexport function useIsComposing(): Ref<boolean> {\n  if (isBrowser) {\n    onBeforeMount(() => {\n      if (!mountedCount) {\n        window.addEventListener('compositionstart', compositionStartHandler)\n        window.addEventListener('compositionend', compositionEndHandler)\n      }\n      mountedCount++\n    })\n    onBeforeUnmount(() => {\n      if (mountedCount <= 1) {\n        window.removeEventListener('compositionstart', compositionStartHandler)\n        window.removeEventListener('compositionend', compositionEndHandler)\n        mountedCount = 0\n      }\n      else {\n        mountedCount--\n      }\n    })\n  }\n  return isComposingRef\n}\n","import type { Ref, WatchStopHandle } from 'vue'\nimport { onBeforeUnmount, onMounted, ref, watch } from 'vue'\n\nlet lockCount = 0\nlet originalMarginRight: string = ''\nlet originalOverflow: string = ''\nlet originalOverflowX: string = ''\nlet originalOverflowY: string = ''\nexport const lockHtmlScrollRightCompensationRef = ref('0px')\n\nexport function useLockHtmlScroll(lockRef: Ref<boolean>): void {\n  // not browser\n  if (typeof document === 'undefined')\n    return\n  const el = document.documentElement\n  let watchStopHandle: WatchStopHandle | undefined\n  let activated = false\n  const unlock = (): void => {\n    el.style.marginRight = originalMarginRight\n    el.style.overflow = originalOverflow\n    el.style.overflowX = originalOverflowX\n    el.style.overflowY = originalOverflowY\n    lockHtmlScrollRightCompensationRef.value = '0px'\n  }\n  onMounted(() => {\n    watchStopHandle = watch(\n      lockRef,\n      (value) => {\n        if (value) {\n          if (!lockCount) {\n            const scrollbarWidth = window.innerWidth - el.offsetWidth\n            if (scrollbarWidth > 0) {\n              originalMarginRight = el.style.marginRight\n              el.style.marginRight = `${scrollbarWidth}px`\n              lockHtmlScrollRightCompensationRef.value = `${scrollbarWidth}px`\n            }\n            originalOverflow = el.style.overflow\n            originalOverflowX = el.style.overflowX\n            originalOverflowY = el.style.overflowY\n            el.style.overflow = 'hidden'\n            el.style.overflowX = 'hidden'\n            el.style.overflowY = 'hidden'\n          }\n          activated = true\n          lockCount++\n        }\n        else {\n          lockCount--\n          if (!lockCount) {\n            unlock()\n          }\n          activated = false\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n  })\n  onBeforeUnmount(() => {\n    watchStopHandle?.()\n    if (activated) {\n      lockCount--\n      if (!lockCount) {\n        unlock()\n      }\n      activated = false\n    }\n  })\n}\n","import { onActivated, onDeactivated } from 'vue'\n\nexport function useReactivated(callback: () => void): {\n  isDeactivated: boolean\n} {\n  const isDeactivatedRef = { isDeactivated: false }\n  let activateStateInitialized = false\n  onActivated(() => {\n    isDeactivatedRef.isDeactivated = false\n    if (!activateStateInitialized) {\n      activateStateInitialized = true\n      return\n    }\n    callback()\n  })\n  onDeactivated(() => {\n    isDeactivatedRef.isDeactivated = true\n    if (!activateStateInitialized) {\n      activateStateInitialized = true\n    }\n  })\n  return isDeactivatedRef\n}\n","import { Fragment, createTextVNode, Comment } from 'vue';\nexport function getSlot(scope, slots, slotName = 'default') {\n    const slot = slots[slotName];\n    if (slot === undefined) {\n        throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`);\n    }\n    return slot();\n}\n// o(n) flatten\nexport function flatten(vNodes, filterCommentNode = true, result = []) {\n    vNodes.forEach((vNode) => {\n        if (vNode === null)\n            return;\n        if (typeof vNode !== 'object') {\n            if (typeof vNode === 'string' || typeof vNode === 'number') {\n                result.push(createTextVNode(String(vNode)));\n            }\n            return;\n        }\n        if (Array.isArray(vNode)) {\n            flatten(vNode, filterCommentNode, result);\n            return;\n        }\n        if (vNode.type === Fragment) {\n            if (vNode.children === null)\n                return;\n            if (Array.isArray(vNode.children)) {\n                flatten(vNode.children, filterCommentNode, result);\n            }\n            // rawSlot\n        }\n        else if (vNode.type !== Comment || !filterCommentNode) {\n            result.push(vNode);\n        }\n    });\n    return result;\n}\nexport function getFirstVNode(scope, slots, slotName = 'default') {\n    const slot = slots[slotName];\n    if (slot === undefined) {\n        throw new Error(`[vueuc/${scope}]: slot[${slotName}] is empty.`);\n    }\n    const content = flatten(slot());\n    // vue will normalize the slot, so slot must be an array\n    if (content.length === 1) {\n        return content[0];\n    }\n    else {\n        throw new Error(`[vueuc/${scope}]: slot[${slotName}] should have exactly one child.`);\n    }\n}\n","let viewMeasurer = null;\nexport function ensureViewBoundingRect() {\n    if (viewMeasurer === null) {\n        viewMeasurer = document.getElementById('v-binder-view-measurer');\n        if (viewMeasurer === null) {\n            viewMeasurer = document.createElement('div');\n            viewMeasurer.id = 'v-binder-view-measurer';\n            const { style } = viewMeasurer;\n            style.position = 'fixed';\n            style.left = '0';\n            style.right = '0';\n            style.top = '0';\n            style.bottom = '0';\n            style.pointerEvents = 'none';\n            style.visibility = 'hidden';\n            document.body.appendChild(viewMeasurer);\n        }\n    }\n    return viewMeasurer.getBoundingClientRect();\n}\nexport function getPointRect(x, y) {\n    const viewRect = ensureViewBoundingRect();\n    return {\n        top: y,\n        left: x,\n        height: 0,\n        width: 0,\n        right: viewRect.width - x,\n        bottom: viewRect.height - y\n    };\n}\nexport function getRect(el) {\n    const elRect = el.getBoundingClientRect();\n    const viewRect = ensureViewBoundingRect();\n    return {\n        left: elRect.left - viewRect.left,\n        top: elRect.top - viewRect.top,\n        bottom: viewRect.height + viewRect.top - elRect.bottom,\n        right: viewRect.width + viewRect.left - elRect.right,\n        width: elRect.width,\n        height: elRect.height\n    };\n}\nexport function getParentNode(node) {\n    // document type\n    if (node.nodeType === 9) {\n        return null;\n    }\n    return node.parentNode;\n}\nexport function getScrollParent(node) {\n    if (node === null)\n        return null;\n    const parentNode = getParentNode(node);\n    if (parentNode === null) {\n        return null;\n    }\n    // Document\n    if (parentNode.nodeType === 9) {\n        return document;\n    }\n    // Element\n    if (parentNode.nodeType === 1) {\n        // Firefox want us to check `-x` and `-y` variations as well\n        const { overflow, overflowX, overflowY } = getComputedStyle(parentNode);\n        if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n            return parentNode;\n        }\n    }\n    return getScrollParent(parentNode);\n}\n","import { defineComponent, provide, ref, inject, getCurrentInstance, onBeforeUnmount } from 'vue';\nimport { beforeNextFrameOnce } from 'seemly';\nimport { on, off } from 'evtd';\nimport { getSlot } from '../../shared/v-node';\nimport { getScrollParent } from './utils';\nconst Binder = defineComponent({\n    name: 'Binder',\n    props: {\n        syncTargetWithParent: Boolean,\n        syncTarget: {\n            type: Boolean,\n            default: true\n        }\n    },\n    setup(props) {\n        var _a;\n        provide('VBinder', (_a = getCurrentInstance()) === null || _a === void 0 ? void 0 : _a.proxy);\n        const VBinder = inject('VBinder', null);\n        const targetRef = ref(null);\n        /**\n         * If there's no nested vbinder, we can simply set the target ref.\n         *\n         * However, when it comes to:\n         * <VBinder> <- syncTarget = false\n         *\n         *              Should hold target DOM ref, but can't get it directly from\n         *              its VTarget. So if there are nested VBinder, we should:\n         *              1. Stop setting target DOM from level-1 VTarget\n         *              2. Set target DOM from level-2 VTarget\n         *              For (1), we need `syncTarget` to `false`\n         *              For (2), we need to set `syncTargetWithParent` to `true` on\n         *              level-2 VBinder\n         *   <VTarget>\n         *     <VBinder> <- syncTargetWithParent = true\n         *       <VTarget>target</VTarget>\n         *     </VBinder>\n         *     <VFollower>\n         *       content1\n         *     </VFollower>\n         *   </VTarget>\n         *   <VFollower>\n         *     content2\n         *   </VFollower>\n         * </VBinder>\n         */\n        const setTargetRef = (el) => {\n            targetRef.value = el;\n            if (VBinder && props.syncTargetWithParent) {\n                VBinder.setTargetRef(el);\n            }\n        };\n        // scroll related\n        let scrollableNodes = [];\n        const ensureScrollListener = () => {\n            let cursor = targetRef.value;\n            while (true) {\n                cursor = getScrollParent(cursor);\n                if (cursor === null)\n                    break;\n                scrollableNodes.push(cursor);\n            }\n            for (const el of scrollableNodes) {\n                on('scroll', el, onScroll, true);\n            }\n        };\n        const removeScrollListeners = () => {\n            for (const el of scrollableNodes) {\n                off('scroll', el, onScroll, true);\n            }\n            scrollableNodes = [];\n        };\n        const followerScrollListeners = new Set();\n        const addScrollListener = (listener) => {\n            if (followerScrollListeners.size === 0) {\n                ensureScrollListener();\n            }\n            if (!followerScrollListeners.has(listener)) {\n                followerScrollListeners.add(listener);\n            }\n        };\n        const removeScrollListener = (listener) => {\n            if (followerScrollListeners.has(listener)) {\n                followerScrollListeners.delete(listener);\n            }\n            if (followerScrollListeners.size === 0) {\n                removeScrollListeners();\n            }\n        };\n        const onScroll = () => {\n            beforeNextFrameOnce(onScrollRaf);\n        };\n        const onScrollRaf = () => {\n            followerScrollListeners.forEach((listener) => listener());\n        };\n        // resize related\n        const followerResizeListeners = new Set();\n        const addResizeListener = (listener) => {\n            if (followerResizeListeners.size === 0) {\n                on('resize', window, onResize);\n            }\n            if (!followerResizeListeners.has(listener)) {\n                followerResizeListeners.add(listener);\n            }\n        };\n        const removeResizeListener = (listener) => {\n            if (followerResizeListeners.has(listener)) {\n                followerResizeListeners.delete(listener);\n            }\n            if (followerResizeListeners.size === 0) {\n                off('resize', window, onResize);\n            }\n        };\n        const onResize = () => {\n            followerResizeListeners.forEach((listener) => listener());\n        };\n        onBeforeUnmount(() => {\n            off('resize', window, onResize);\n            removeScrollListeners();\n        });\n        return {\n            targetRef,\n            setTargetRef,\n            addScrollListener,\n            removeScrollListener,\n            addResizeListener,\n            removeResizeListener\n        };\n    },\n    render() {\n        return getSlot('binder', this.$slots);\n    }\n});\nexport default Binder;\n","import { defineComponent, inject, withDirectives } from 'vue';\nimport { getFirstVNode } from '../../shared/v-node';\nexport default defineComponent({\n    name: 'Target',\n    setup() {\n        const { setTargetRef, syncTarget } = inject('VBinder');\n        const setTargetDirective = {\n            mounted: setTargetRef,\n            updated: setTargetRef\n        };\n        return {\n            syncTarget,\n            setTargetDirective\n        };\n    },\n    render() {\n        const { syncTarget, setTargetDirective } = this;\n        /**\n         * If you are using VBinder as a child of VBinder, the children wouldn't be\n         * a valid DOM or component that can be attached to by directive.\n         * So we won't sync target on those kind of situation and control the\n         * target sync logic manually.\n         */\n        if (syncTarget) {\n            return withDirectives(getFirstVNode('follower', this.$slots), [\n                [setTargetDirective]\n            ]);\n        }\n        return getFirstVNode('follower', this.$slots);\n    }\n});\n","import { on, off } from 'evtd';\nconst ctxKey = '@@mmoContext';\nconst mousemoveoutside = {\n    mounted(el, { value }) {\n        el[ctxKey] = {\n            handler: undefined\n        };\n        if (typeof value === 'function') {\n            el[ctxKey].handler = value;\n            on('mousemoveoutside', el, value);\n        }\n    },\n    updated(el, { value }) {\n        const ctx = el[ctxKey];\n        if (typeof value === 'function') {\n            if (ctx.handler) {\n                if (ctx.handler !== value) {\n                    off('mousemoveoutside', el, ctx.handler);\n                    ctx.handler = value;\n                    on('mousemoveoutside', el, value);\n                }\n            }\n            else {\n                el[ctxKey].handler = value;\n                on('mousemoveoutside', el, value);\n            }\n        }\n        else {\n            if (ctx.handler) {\n                off('mousemoveoutside', el, ctx.handler);\n                ctx.handler = undefined;\n            }\n        }\n    },\n    unmounted(el) {\n        const { handler } = el[ctxKey];\n        if (handler) {\n            off('mousemoveoutside', el, handler);\n        }\n        el[ctxKey].handler = undefined;\n    }\n};\nexport default mousemoveoutside;\n","import { on, off } from 'evtd';\nconst ctxKey = '@@coContext';\nconst clickoutside = {\n    mounted(el, { value, modifiers }) {\n        el[ctxKey] = {\n            handler: undefined\n        };\n        if (typeof value === 'function') {\n            el[ctxKey].handler = value;\n            on('clickoutside', el, value, {\n                capture: modifiers.capture\n            });\n        }\n    },\n    updated(el, { value, modifiers }) {\n        const ctx = el[ctxKey];\n        if (typeof value === 'function') {\n            if (ctx.handler) {\n                if (ctx.handler !== value) {\n                    off('clickoutside', el, ctx.handler, {\n                        capture: modifiers.capture\n                    });\n                    ctx.handler = value;\n                    on('clickoutside', el, value, {\n                        capture: modifiers.capture\n                    });\n                }\n            }\n            else {\n                el[ctxKey].handler = value;\n                on('clickoutside', el, value, {\n                    capture: modifiers.capture\n                });\n            }\n        }\n        else {\n            if (ctx.handler) {\n                off('clickoutside', el, ctx.handler, {\n                    capture: modifiers.capture\n                });\n                ctx.handler = undefined;\n            }\n        }\n    },\n    unmounted(el, { modifiers }) {\n        const { handler } = el[ctxKey];\n        if (handler) {\n            off('clickoutside', el, handler, {\n                capture: modifiers.capture\n            });\n        }\n        el[ctxKey].handler = undefined;\n    }\n};\nexport default clickoutside;\n","const warnedMessages = new Set();\nexport function warnOnce(location, message) {\n    const mergedMessage = `[vdirs/${location}]: ${message}`;\n    if (warnedMessages.has(mergedMessage))\n        return;\n    warnedMessages.add(mergedMessage);\n}\nexport function warn(location, message) {\n    console.error(`[vdirs/${location}]: ${message}`);\n}\n","import { warn } from '../utils';\nclass ZIndexManager {\n    constructor() {\n        this.elementZIndex = new Map();\n        this.nextZIndex = 2000;\n    }\n    get elementCount() {\n        return this.elementZIndex.size;\n    }\n    ensureZIndex(el, zIndex) {\n        const { elementZIndex } = this;\n        if (zIndex !== undefined) {\n            el.style.zIndex = `${zIndex}`;\n            elementZIndex.delete(el);\n            return;\n        }\n        const { nextZIndex } = this;\n        if (elementZIndex.has(el)) {\n            const currentZIndex = elementZIndex.get(el);\n            if (currentZIndex + 1 === this.nextZIndex)\n                return;\n        }\n        el.style.zIndex = `${nextZIndex}`;\n        elementZIndex.set(el, nextZIndex);\n        this.nextZIndex = nextZIndex + 1;\n        this.squashState();\n    }\n    unregister(el, zIndex) {\n        const { elementZIndex } = this;\n        if (elementZIndex.has(el)) {\n            elementZIndex.delete(el);\n        }\n        else if (zIndex === undefined) {\n            warn('z-index-manager/unregister-element', 'Element not found when unregistering.');\n        }\n        this.squashState();\n    }\n    squashState() {\n        const { elementCount } = this;\n        if (!elementCount) {\n            this.nextZIndex = 2000;\n        }\n        if (this.nextZIndex - elementCount > 2500)\n            this.rearrange();\n    }\n    rearrange() {\n        const elementZIndexPair = Array.from(this.elementZIndex.entries());\n        elementZIndexPair.sort((pair1, pair2) => {\n            return pair1[1] - pair2[1];\n        });\n        this.nextZIndex = 2000;\n        elementZIndexPair.forEach((pair) => {\n            const el = pair[0];\n            const zIndex = this.nextZIndex++;\n            if (`${zIndex}` !== el.style.zIndex)\n                el.style.zIndex = `${zIndex}`;\n        });\n    }\n}\nexport default new ZIndexManager();\n","import zIndexManager from './z-index-manager';\nconst ctx = '@@ziContext';\n// We don't expect manually bound zindex should be changed\nconst zindexable = {\n    mounted(el, bindings) {\n        const { value = {} } = bindings;\n        const { zIndex, enabled } = value;\n        el[ctx] = {\n            enabled: !!enabled,\n            initialized: false\n        };\n        if (enabled) {\n            zIndexManager.ensureZIndex(el, zIndex);\n            el[ctx].initialized = true;\n        }\n    },\n    updated(el, bindings) {\n        const { value = {} } = bindings;\n        const { zIndex, enabled } = value;\n        const cachedEnabled = el[ctx].enabled;\n        if (enabled && !cachedEnabled) {\n            zIndexManager.ensureZIndex(el, zIndex);\n            el[ctx].initialized = true;\n        }\n        el[ctx].enabled = !!enabled;\n    },\n    unmounted(el, bindings) {\n        if (!el[ctx].initialized)\n            return;\n        const { value = {} } = bindings;\n        const { zIndex } = value;\n        zIndexManager.unregister(el, zIndex);\n    }\n};\nexport default zindexable;\n","import { inject } from 'vue';\nconst ssrContextKey = '@css-render/vue3-ssr';\nfunction createStyleString(id, style) {\n    return `<style cssr-id=\"${id}\">\\n${style}\\n</style>`;\n}\nfunction ssrAdapter(id, style, ssrContext) {\n    const { styles, ids } = ssrContext;\n    // we need to impl other options to make it behaves the same as the client side\n    if (ids.has(id))\n        return;\n    if (styles !== null) {\n        ids.add(id);\n        styles.push(createStyleString(id, style));\n    }\n}\nconst isBrowser = typeof document !== 'undefined';\nexport function useSsrAdapter() {\n    if (isBrowser)\n        return undefined;\n    const context = inject(ssrContextKey, null);\n    if (context === null)\n        return undefined;\n    return {\n        adapter: (id, style) => ssrAdapter(id, style, context),\n        context\n    };\n}\nexport function setup(app) {\n    const styles = [];\n    const ssrContext = {\n        styles,\n        ids: new Set()\n    };\n    app.provide(ssrContextKey, ssrContext);\n    return {\n        collect() {\n            const res = styles.join('\\n');\n            styles.length = 0;\n            return res;\n        }\n    };\n}\n","export function warn(location, message) {\n    console.error(`[vueuc/${location}]: ${message}`);\n}\n","import { CssRender } from 'css-render';\nconst { c } = CssRender();\nexport { c };\nexport const cssrAnchorMetaName = 'vueuc-style';\n","function lowBit(n) {\n    return n & -n;\n}\nexport class FinweckTree {\n    /**\n     * @param l length of the array\n     * @param min min value of the array\n     */\n    constructor(l, min) {\n        this.l = l;\n        this.min = min;\n        const ft = new Array(l + 1);\n        for (let i = 0; i < l + 1; ++i) {\n            ft[i] = 0;\n        }\n        this.ft = ft;\n    }\n    /**\n     * Add arr[i] by n, start from 0\n     * @param i the index of the element to be added\n     * @param n the value to be added\n     */\n    add(i, n) {\n        if (n === 0)\n            return;\n        const { l, ft } = this;\n        i += 1;\n        while (i <= l) {\n            ft[i] += n;\n            i += lowBit(i);\n        }\n    }\n    /**\n     * Get the value of index i\n     * @param i index\n     * @returns value of the index\n     */\n    get(i) {\n        return this.sum(i + 1) - this.sum(i);\n    }\n    /**\n     * Get the sum of first i elements\n     * @param i count of head elements to be added\n     * @returns the sum of first i elements\n     */\n    sum(i) {\n        if (i === undefined)\n            i = this.l;\n        if (i <= 0)\n            return 0;\n        const { ft, min, l } = this;\n        if (i > l)\n            throw new Error('[FinweckTree.sum]: `i` is larger than length.');\n        let ret = i * min;\n        while (i > 0) {\n            ret += ft[i];\n            i -= lowBit(i);\n        }\n        return ret;\n    }\n    /**\n     * Get the largest count of head elements whose sum are <= threshold\n     * @param threshold\n     * @returns the largest count of head elements whose sum are <= threshold\n     */\n    getBound(threshold) {\n        let l = 0;\n        let r = this.l;\n        while (r > l) {\n            const m = Math.floor((l + r) / 2);\n            const sumM = this.sum(m);\n            if (sumM > threshold) {\n                r = m;\n                continue;\n            }\n            else if (sumM < threshold) {\n                if (l === m) {\n                    if (this.sum(l + 1) <= threshold)\n                        return l + 1;\n                    return m;\n                }\n                l = m;\n            }\n            else {\n                return m;\n            }\n        }\n        return l;\n    }\n}\n","export function resolveTo(selector) {\n    var _a;\n    if (typeof selector === 'string') {\n        return document.querySelector(selector);\n    }\n    return (_a = selector()) !== null && _a !== void 0 ? _a : null;\n}\n","import { Teleport, h, toRef, computed, defineComponent } from 'vue';\nimport { useFalseUntilTruthy } from 'vooks';\nimport { getSlot } from '../../shared/v-node';\nexport default defineComponent({\n    name: 'LazyTeleport',\n    props: {\n        to: {\n            type: [String, Object],\n            default: undefined\n        },\n        disabled: Boolean,\n        show: {\n            type: Boolean,\n            required: true\n        }\n    },\n    setup(props) {\n        return {\n            showTeleport: useFalseUntilTruthy(toRef(props, 'show')),\n            mergedTo: computed(() => {\n                const { to } = props;\n                return to !== null && to !== void 0 ? to : 'body';\n            })\n        };\n    },\n    render() {\n        return this.showTeleport\n            ? this.disabled\n                ? getSlot('lazy-teleport', this.$slots)\n                : h(Teleport, {\n                    disabled: this.disabled,\n                    to: this.mergedTo\n                }, getSlot('lazy-teleport', this.$slots))\n            : null;\n    }\n});\n","const oppositionPositions = {\n    top: 'bottom',\n    bottom: 'top',\n    left: 'right',\n    right: 'left'\n};\nconst oppositeAligns = {\n    start: 'end',\n    center: 'center',\n    end: 'start'\n};\nconst propToCompare = {\n    top: 'height',\n    bottom: 'height',\n    left: 'width',\n    right: 'width'\n};\nconst transformOrigins = {\n    'bottom-start': 'top left',\n    bottom: 'top center',\n    'bottom-end': 'top right',\n    'top-start': 'bottom left',\n    top: 'bottom center',\n    'top-end': 'bottom right',\n    'right-start': 'top left',\n    right: 'center left',\n    'right-end': 'bottom left',\n    'left-start': 'top right',\n    left: 'center right',\n    'left-end': 'bottom right'\n};\nconst overlapTransformOrigin = {\n    'bottom-start': 'bottom left',\n    bottom: 'bottom center',\n    'bottom-end': 'bottom right',\n    'top-start': 'top left',\n    top: 'top center',\n    'top-end': 'top right',\n    'right-start': 'top right',\n    right: 'center right',\n    'right-end': 'bottom right',\n    'left-start': 'top left',\n    left: 'center left',\n    'left-end': 'bottom left'\n};\nconst oppositeAlignCssPositionProps = {\n    'bottom-start': 'right',\n    'bottom-end': 'left',\n    'top-start': 'right',\n    'top-end': 'left',\n    'right-start': 'bottom',\n    'right-end': 'top',\n    'left-start': 'bottom',\n    'left-end': 'top'\n};\nconst keepOffsetDirection = {\n    top: true, // top++\n    bottom: false, // top--\n    left: true, // left++\n    right: false // left--\n};\nconst cssPositionToOppositeAlign = {\n    top: 'end',\n    bottom: 'start',\n    left: 'end',\n    right: 'start'\n};\nexport function getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, shift, flip, overlap) {\n    if (!flip || overlap) {\n        return { placement: placement, top: 0, left: 0 };\n    }\n    const [position, align] = placement.split('-');\n    let properAlign = align !== null && align !== void 0 ? align : 'center';\n    let properOffset = {\n        top: 0,\n        left: 0\n    };\n    const deriveOffset = (oppositeAlignCssSizeProp, alignCssPositionProp, offsetVertically) => {\n        let left = 0;\n        let top = 0;\n        const diff = followerRect[oppositeAlignCssSizeProp] -\n            targetRect[alignCssPositionProp] -\n            targetRect[oppositeAlignCssSizeProp];\n        if (diff > 0 && shift) {\n            if (offsetVertically) {\n                //       screen border\n                // |-----------------------------------------|\n                // |                    | f  |               |\n                // |                    | o  |               |\n                // |                    | l  |               |\n                // |                    | l  |----           |\n                // |                    | o  |tar |          |\n                // |                    | w  |get |          |\n                // |                    | e  |    |          |\n                // |                    | r  |----           |\n                // |                     ----                |\n                // |-----------------------------------------|\n                top = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n            }\n            else {\n                //       screen border\n                // |----------------------------------------|\n                // |                                        |\n                // |          ----------                    |\n                // |          | target |                    |\n                // |       ----------------------------------\n                // |       |       follower                 |\n                // |       ----------------------------------\n                // |                                        |\n                // |----------------------------------------|\n                left = keepOffsetDirection[alignCssPositionProp] ? diff : -diff;\n            }\n        }\n        return {\n            left,\n            top\n        };\n    };\n    const offsetVertically = position === 'left' || position === 'right';\n    // choose proper placement for non-center align\n    if (properAlign !== 'center') {\n        const oppositeAlignCssPositionProp = oppositeAlignCssPositionProps[placement];\n        const currentAlignCssPositionProp = oppositionPositions[oppositeAlignCssPositionProp];\n        const oppositeAlignCssSizeProp = propToCompare[oppositeAlignCssPositionProp];\n        // if follower rect is larger than target rect in align direction\n        // ----------[ target ]---------|\n        // ----------[     follower     ]\n        if (followerRect[oppositeAlignCssSizeProp] >\n            targetRect[oppositeAlignCssSizeProp]) {\n            if (\n            // current space is not enough\n            // ----------[ target ]---------|\n            // -------[     follower        ]\n            targetRect[oppositeAlignCssPositionProp] +\n                targetRect[oppositeAlignCssSizeProp] <\n                followerRect[oppositeAlignCssSizeProp]) {\n                const followerOverTargetSize = (followerRect[oppositeAlignCssSizeProp] -\n                    targetRect[oppositeAlignCssSizeProp]) /\n                    2;\n                if (targetRect[oppositeAlignCssPositionProp] < followerOverTargetSize ||\n                    targetRect[currentAlignCssPositionProp] < followerOverTargetSize) {\n                    // opposite align has larger space\n                    // -------[ target ]-----------|\n                    // -------[     follower     ]-|\n                    if (targetRect[oppositeAlignCssPositionProp] <\n                        targetRect[currentAlignCssPositionProp]) {\n                        properAlign = oppositeAligns[align];\n                        properOffset = deriveOffset(oppositeAlignCssSizeProp, currentAlignCssPositionProp, offsetVertically);\n                    }\n                    else {\n                        // ----------------[ target ]----|\n                        // --------[   follower     ]----|\n                        properOffset = deriveOffset(oppositeAlignCssSizeProp, oppositeAlignCssPositionProp, offsetVertically);\n                    }\n                }\n                else {\n                    // 'center' align is better\n                    // ------------[ target ]--------|\n                    // -------[       follower    ]--|\n                    properAlign = 'center';\n                }\n            }\n        }\n        else if (followerRect[oppositeAlignCssSizeProp] <\n            targetRect[oppositeAlignCssSizeProp]) {\n            // TODO: maybe center is better\n            if (targetRect[currentAlignCssPositionProp] < 0 &&\n                // opposite align has larger space\n                // ------------[   target   ]\n                // ----------------[follower]\n                targetRect[oppositeAlignCssPositionProp] >\n                    targetRect[currentAlignCssPositionProp]) {\n                properAlign = oppositeAligns[align];\n            }\n        }\n    }\n    else {\n        const possibleAlternativeAlignCssPositionProp1 = position === 'bottom' || position === 'top' ? 'left' : 'top';\n        const possibleAlternativeAlignCssPositionProp2 = oppositionPositions[possibleAlternativeAlignCssPositionProp1];\n        const alternativeAlignCssSizeProp = propToCompare[possibleAlternativeAlignCssPositionProp1];\n        const followerOverTargetSize = (followerRect[alternativeAlignCssSizeProp] -\n            targetRect[alternativeAlignCssSizeProp]) /\n            2;\n        if (\n        // center is not enough\n        // ----------- [ target ]--|\n        // -------[     follower     ]\n        targetRect[possibleAlternativeAlignCssPositionProp1] <\n            followerOverTargetSize ||\n            targetRect[possibleAlternativeAlignCssPositionProp2] <\n                followerOverTargetSize) {\n            // alternative 2 position's space is larger\n            if (targetRect[possibleAlternativeAlignCssPositionProp1] >\n                targetRect[possibleAlternativeAlignCssPositionProp2]) {\n                properAlign =\n                    cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp1];\n                properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp1, offsetVertically);\n            }\n            else {\n                // alternative 1 position's space is larger\n                properAlign =\n                    cssPositionToOppositeAlign[possibleAlternativeAlignCssPositionProp2];\n                properOffset = deriveOffset(alternativeAlignCssSizeProp, possibleAlternativeAlignCssPositionProp2, offsetVertically);\n            }\n        }\n    }\n    let properPosition = position;\n    if (\n    // space is not enough\n    targetRect[position] < followerRect[propToCompare[position]] &&\n        // opposite position's space is larger\n        targetRect[position] < targetRect[oppositionPositions[position]]) {\n        properPosition = oppositionPositions[position];\n    }\n    return {\n        placement: properAlign !== 'center'\n            ? `${properPosition}-${properAlign}`\n            : properPosition,\n        left: properOffset.left,\n        top: properOffset.top\n    };\n}\nexport function getProperTransformOrigin(placement, overlap) {\n    if (overlap)\n        return overlapTransformOrigin[placement];\n    return transformOrigins[placement];\n}\n// ------------\n// |  offset  |\n// |          |\n// | [target] |\n// |          |\n// ------------\n// TODO: refactor it to remove dup logic\nexport function getOffset(placement, offsetRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap) {\n    if (overlap) {\n        switch (placement) {\n            case 'bottom-start':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n                    transform: 'translateY(-100%)'\n                };\n            case 'bottom-end':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n                    transform: 'translateX(-100%) translateY(-100%)'\n                };\n            case 'top-start':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n                    transform: ''\n                };\n            case 'top-end':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n                    transform: 'translateX(-100%)'\n                };\n            case 'right-start':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n                    transform: 'translateX(-100%)'\n                };\n            case 'right-end':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n                    transform: 'translateX(-100%) translateY(-100%)'\n                };\n            case 'left-start':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n                    transform: ''\n                };\n            case 'left-end':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n                    transform: 'translateY(-100%)'\n                };\n            case 'top':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n                    transform: 'translateX(-50%)'\n                };\n            case 'right':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width)}px`,\n                    transform: 'translateX(-100%) translateY(-50%)'\n                };\n            case 'left':\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height / 2)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left)}px`,\n                    transform: 'translateY(-50%)'\n                };\n            case 'bottom':\n            default:\n                return {\n                    top: `${Math.round(targetRect.top - offsetRect.top + targetRect.height)}px`,\n                    left: `${Math.round(targetRect.left - offsetRect.left + targetRect.width / 2)}px`,\n                    transform: 'translateX(-50%) translateY(-100%)'\n                };\n        }\n    }\n    switch (placement) {\n        case 'bottom-start':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n                transform: ''\n            };\n        case 'bottom-end':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateX(-100%)'\n            };\n        case 'top-start':\n            return {\n                top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n                transform: 'translateY(-100%)'\n            };\n        case 'top-end':\n            return {\n                top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateX(-100%) translateY(-100%)'\n            };\n        case 'right-start':\n            return {\n                top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: ''\n            };\n        case 'right-end':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateY(-100%)'\n            };\n        case 'left-start':\n            return {\n                top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n                transform: 'translateX(-100%)'\n            };\n        case 'left-end':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n                transform: 'translateX(-100%) translateY(-100%)'\n            };\n        case 'top':\n            return {\n                top: `${Math.round(targetRect.top - offsetRect.top + offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width / 2 +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateY(-100%) translateX(-50%)'\n            };\n        case 'right':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height / 2 +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateY(-50%)'\n            };\n        case 'left':\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height / 2 +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left - offsetRect.left + offsetLeftToStandardPlacement)}px`,\n                transform: 'translateY(-50%) translateX(-100%)'\n            };\n        case 'bottom':\n        default:\n            return {\n                top: `${Math.round(targetRect.top -\n                    offsetRect.top +\n                    targetRect.height +\n                    offsetTopToStandardPlacement)}px`,\n                left: `${Math.round(targetRect.left -\n                    offsetRect.left +\n                    targetRect.width / 2 +\n                    offsetLeftToStandardPlacement)}px`,\n                transform: 'translateX(-50%)'\n            };\n    }\n}\n","import { h, defineComponent, inject, nextTick, watch, toRef, ref, onMounted, onBeforeUnmount, withDirectives } from 'vue';\nimport { zindexable } from 'vdirs';\nimport { useMemo, useIsMounted, onFontsReady } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nimport LazyTeleport from '../../lazy-teleport/src/index';\nimport { getPlacementAndOffsetOfFollower, getProperTransformOrigin, getOffset } from './get-placement-style';\nimport { getPointRect, getRect } from './utils';\nconst style = c([\n    c('.v-binder-follower-container', {\n        position: 'absolute',\n        left: '0',\n        right: '0',\n        top: '0',\n        height: '0',\n        pointerEvents: 'none',\n        zIndex: 'auto'\n    }),\n    c('.v-binder-follower-content', {\n        position: 'absolute',\n        zIndex: 'auto'\n    }, [\n        c('> *', {\n            pointerEvents: 'all'\n        })\n    ])\n]);\nexport default defineComponent({\n    name: 'Follower',\n    inheritAttrs: false,\n    props: {\n        show: Boolean,\n        enabled: {\n            type: Boolean,\n            default: undefined\n        },\n        placement: {\n            type: String,\n            default: 'bottom'\n        },\n        syncTrigger: {\n            type: Array,\n            default: ['resize', 'scroll']\n        },\n        to: [String, Object],\n        flip: {\n            type: Boolean,\n            default: true\n        },\n        internalShift: Boolean,\n        x: Number,\n        y: Number,\n        width: String,\n        minWidth: String,\n        containerClass: String,\n        teleportDisabled: Boolean,\n        zindexable: {\n            type: Boolean,\n            default: true\n        },\n        zIndex: Number,\n        overlap: Boolean\n    },\n    setup(props) {\n        const VBinder = inject('VBinder');\n        const mergedEnabledRef = useMemo(() => {\n            return props.enabled !== undefined ? props.enabled : props.show;\n        });\n        const followerRef = ref(null);\n        const offsetContainerRef = ref(null);\n        const ensureListeners = () => {\n            const { syncTrigger } = props;\n            if (syncTrigger.includes('scroll')) {\n                VBinder.addScrollListener(syncPosition);\n            }\n            if (syncTrigger.includes('resize')) {\n                VBinder.addResizeListener(syncPosition);\n            }\n        };\n        const removeListeners = () => {\n            VBinder.removeScrollListener(syncPosition);\n            VBinder.removeResizeListener(syncPosition);\n        };\n        onMounted(() => {\n            if (mergedEnabledRef.value) {\n                syncPosition();\n                ensureListeners();\n            }\n        });\n        const ssrAdapter = useSsrAdapter();\n        style.mount({\n            id: 'vueuc/binder',\n            head: true,\n            anchorMetaName: cssrAnchorMetaName,\n            ssr: ssrAdapter\n        });\n        onBeforeUnmount(() => {\n            removeListeners();\n        });\n        onFontsReady(() => {\n            if (mergedEnabledRef.value) {\n                syncPosition();\n            }\n        });\n        const syncPosition = () => {\n            if (!mergedEnabledRef.value) {\n                return;\n            }\n            const follower = followerRef.value;\n            // sometimes watched props change before its dom is ready\n            // for example: show=false, x=undefined, y=undefined\n            //              show=true,  x=0,         y=0\n            // will cause error\n            // I may optimize the watch start point later\n            if (follower === null)\n                return;\n            const target = VBinder.targetRef;\n            const { x, y, overlap } = props;\n            const targetRect = x !== undefined && y !== undefined\n                ? getPointRect(x, y)\n                : getRect(target);\n            follower.style.setProperty('--v-target-width', `${Math.round(targetRect.width)}px`);\n            follower.style.setProperty('--v-target-height', `${Math.round(targetRect.height)}px`);\n            const { width, minWidth, placement, internalShift, flip } = props;\n            follower.setAttribute('v-placement', placement);\n            if (overlap) {\n                follower.setAttribute('v-overlap', '');\n            }\n            else {\n                follower.removeAttribute('v-overlap');\n            }\n            const { style } = follower;\n            if (width === 'target') {\n                style.width = `${targetRect.width}px`;\n            }\n            else if (width !== undefined) {\n                style.width = width;\n            }\n            else {\n                style.width = '';\n            }\n            if (minWidth === 'target') {\n                style.minWidth = `${targetRect.width}px`;\n            }\n            else if (minWidth !== undefined) {\n                style.minWidth = minWidth;\n            }\n            else {\n                style.minWidth = '';\n            }\n            const followerRect = getRect(follower);\n            const offsetContainerRect = getRect(offsetContainerRef.value);\n            const { left: offsetLeftToStandardPlacement, top: offsetTopToStandardPlacement, placement: properPlacement } = getPlacementAndOffsetOfFollower(placement, targetRect, followerRect, internalShift, flip, overlap);\n            const properTransformOrigin = getProperTransformOrigin(properPlacement, overlap);\n            const { left, top, transform } = getOffset(properPlacement, offsetContainerRect, targetRect, offsetTopToStandardPlacement, offsetLeftToStandardPlacement, overlap);\n            // we assume that the content size doesn't change after flip,\n            // nor we need to make sync logic more complex\n            follower.setAttribute('v-placement', properPlacement);\n            follower.style.setProperty('--v-offset-left', `${Math.round(offsetLeftToStandardPlacement)}px`);\n            follower.style.setProperty('--v-offset-top', `${Math.round(offsetTopToStandardPlacement)}px`);\n            follower.style.transform = `translateX(${left}) translateY(${top}) ${transform}`;\n            follower.style.setProperty('--v-transform-origin', properTransformOrigin);\n            follower.style.transformOrigin = properTransformOrigin;\n        };\n        watch(mergedEnabledRef, (value) => {\n            if (value) {\n                ensureListeners();\n                syncOnNextTick();\n            }\n            else {\n                removeListeners();\n            }\n        });\n        const syncOnNextTick = () => {\n            nextTick()\n                .then(syncPosition)\n                .catch((e) => console.error(e));\n        };\n        [\n            'placement',\n            'x',\n            'y',\n            'internalShift',\n            'flip',\n            'width',\n            'overlap',\n            'minWidth'\n        ].forEach((prop) => {\n            watch(toRef(props, prop), syncPosition);\n        });\n        ['teleportDisabled'].forEach((prop) => {\n            watch(toRef(props, prop), syncOnNextTick);\n        });\n        watch(toRef(props, 'syncTrigger'), (value) => {\n            if (!value.includes('resize')) {\n                VBinder.removeResizeListener(syncPosition);\n            }\n            else {\n                VBinder.addResizeListener(syncPosition);\n            }\n            if (!value.includes('scroll')) {\n                VBinder.removeScrollListener(syncPosition);\n            }\n            else {\n                VBinder.addScrollListener(syncPosition);\n            }\n        });\n        const isMountedRef = useIsMounted();\n        const mergedToRef = useMemo(() => {\n            const { to } = props;\n            if (to !== undefined)\n                return to;\n            if (isMountedRef.value) {\n                // TODO: find proper container\n                return undefined;\n            }\n            return undefined;\n        });\n        return {\n            VBinder,\n            mergedEnabled: mergedEnabledRef,\n            offsetContainerRef,\n            followerRef,\n            mergedTo: mergedToRef,\n            syncPosition\n        };\n    },\n    render() {\n        return h(LazyTeleport, {\n            show: this.show,\n            to: this.mergedTo,\n            disabled: this.teleportDisabled\n        }, {\n            default: () => {\n                var _a, _b;\n                const vNode = h('div', {\n                    class: ['v-binder-follower-container', this.containerClass],\n                    ref: 'offsetContainerRef'\n                }, [\n                    h('div', {\n                        class: 'v-binder-follower-content',\n                        ref: 'followerRef'\n                    }, (_b = (_a = this.$slots).default) === null || _b === void 0 ? void 0 : _b.call(_a))\n                ]);\n                if (this.zindexable) {\n                    return withDirectives(vNode, [\n                        [\n                            zindexable,\n                            {\n                                enabled: this.mergedEnabled,\n                                zIndex: this.zIndex\n                            }\n                        ]\n                    ]);\n                }\n                return vNode;\n            }\n        });\n    }\n});\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n    return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n    return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n    var event;\n    if (typeof ErrorEvent === 'function') {\n        event = new ErrorEvent('error', {\n            message: msg\n        });\n    }\n    else {\n        event = document.createEvent('Event');\n        event.initEvent('error', false, false);\n        event.message = msg;\n    }\n    window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n    ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n    ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n    ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n    function ResizeObserverSize(inlineSize, blockSize) {\n        this.inlineSize = inlineSize;\n        this.blockSize = blockSize;\n        freeze(this);\n    }\n    return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n    function DOMRectReadOnly(x, y, width, height) {\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n        this.top = this.y;\n        this.left = this.x;\n        this.bottom = this.top + this.height;\n        this.right = this.left + this.width;\n        return freeze(this);\n    }\n    DOMRectReadOnly.prototype.toJSON = function () {\n        var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n        return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n    };\n    DOMRectReadOnly.fromRect = function (rectangle) {\n        return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n    };\n    return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n    if (isSVG(target)) {\n        var _a = target.getBBox(), width = _a.width, height = _a.height;\n        return !width && !height;\n    }\n    var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n    return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n    var _a;\n    if (obj instanceof Element) {\n        return true;\n    }\n    var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n    return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n    switch (target.tagName) {\n        case 'INPUT':\n            if (target.type !== 'image') {\n                break;\n            }\n        case 'VIDEO':\n        case 'AUDIO':\n        case 'EMBED':\n        case 'OBJECT':\n        case 'CANVAS':\n        case 'IFRAME':\n        case 'IMG':\n            return true;\n    }\n    return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n    if (inlineSize === void 0) { inlineSize = 0; }\n    if (blockSize === void 0) { blockSize = 0; }\n    if (switchSizes === void 0) { switchSizes = false; }\n    return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n    devicePixelContentBoxSize: size(),\n    borderBoxSize: size(),\n    contentBoxSize: size(),\n    contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n    if (forceRecalculation === void 0) { forceRecalculation = false; }\n    if (cache.has(target) && !forceRecalculation) {\n        return cache.get(target);\n    }\n    if (isHidden(target)) {\n        cache.set(target, zeroBoxes);\n        return zeroBoxes;\n    }\n    var cs = getComputedStyle(target);\n    var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n    var removePadding = !IE && cs.boxSizing === 'border-box';\n    var switchSizes = verticalRegexp.test(cs.writingMode || '');\n    var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n    var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n    var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n    var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n    var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n    var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n    var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n    var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n    var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n    var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n    var horizontalPadding = paddingLeft + paddingRight;\n    var verticalPadding = paddingTop + paddingBottom;\n    var horizontalBorderArea = borderLeft + borderRight;\n    var verticalBorderArea = borderTop + borderBottom;\n    var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n    var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n    var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n    var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n    var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n    var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n    var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n    var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n    var boxes = freeze({\n        devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n        borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n        contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n        contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n    });\n    cache.set(target, boxes);\n    return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n    var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n    switch (observedBox) {\n        case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n            return devicePixelContentBoxSize;\n        case ResizeObserverBoxOptions.BORDER_BOX:\n            return borderBoxSize;\n        default:\n            return contentBoxSize;\n    }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n    function ResizeObserverEntry(target) {\n        var boxes = calculateBoxSizes(target);\n        this.target = target;\n        this.contentRect = boxes.contentRect;\n        this.borderBoxSize = freeze([boxes.borderBoxSize]);\n        this.contentBoxSize = freeze([boxes.contentBoxSize]);\n        this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n    }\n    return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n    if (isHidden(node)) {\n        return Infinity;\n    }\n    var depth = 0;\n    var parent = node.parentNode;\n    while (parent) {\n        depth += 1;\n        parent = parent.parentNode;\n    }\n    return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n    var shallowestDepth = Infinity;\n    var callbacks = [];\n    resizeObservers.forEach(function processObserver(ro) {\n        if (ro.activeTargets.length === 0) {\n            return;\n        }\n        var entries = [];\n        ro.activeTargets.forEach(function processTarget(ot) {\n            var entry = new ResizeObserverEntry(ot.target);\n            var targetDepth = calculateDepthForNode(ot.target);\n            entries.push(entry);\n            ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n            if (targetDepth < shallowestDepth) {\n                shallowestDepth = targetDepth;\n            }\n        });\n        callbacks.push(function resizeObserverCallback() {\n            ro.callback.call(ro.observer, entries, ro.observer);\n        });\n        ro.activeTargets.splice(0, ro.activeTargets.length);\n    });\n    for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n        var callback = callbacks_1[_i];\n        callback();\n    }\n    return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n    resizeObservers.forEach(function processObserver(ro) {\n        ro.activeTargets.splice(0, ro.activeTargets.length);\n        ro.skippedTargets.splice(0, ro.skippedTargets.length);\n        ro.observationTargets.forEach(function processTarget(ot) {\n            if (ot.isActive()) {\n                if (calculateDepthForNode(ot.target) > depth) {\n                    ro.activeTargets.push(ot);\n                }\n                else {\n                    ro.skippedTargets.push(ot);\n                }\n            }\n        });\n    });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n    var depth = 0;\n    gatherActiveObservationsAtDepth(depth);\n    while (hasActiveObservations()) {\n        depth = broadcastActiveObservations();\n        gatherActiveObservationsAtDepth(depth);\n    }\n    if (hasSkippedObservations()) {\n        deliverResizeLoopError();\n    }\n    return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n    if (!trigger) {\n        var toggle_1 = 0;\n        var el_1 = document.createTextNode('');\n        var config = { characterData: true };\n        new MutationObserver(function () { return notify(); }).observe(el_1, config);\n        trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n    }\n    callbacks.push(callback);\n    trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n    queueMicroTask(function ResizeObserver() {\n        requestAnimationFrame(cb);\n    });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n    'resize',\n    'load',\n    'transitionend',\n    'animationend',\n    'animationstart',\n    'animationiteration',\n    'keyup',\n    'keydown',\n    'mouseup',\n    'mousedown',\n    'mouseover',\n    'mouseout',\n    'blur',\n    'focus'\n];\nvar time = function (timeout) {\n    if (timeout === void 0) { timeout = 0; }\n    return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n    function Scheduler() {\n        var _this = this;\n        this.stopped = true;\n        this.listener = function () { return _this.schedule(); };\n    }\n    Scheduler.prototype.run = function (timeout) {\n        var _this = this;\n        if (timeout === void 0) { timeout = CATCH_PERIOD; }\n        if (scheduled) {\n            return;\n        }\n        scheduled = true;\n        var until = time(timeout);\n        queueResizeObserver(function () {\n            var elementsHaveResized = false;\n            try {\n                elementsHaveResized = process();\n            }\n            finally {\n                scheduled = false;\n                timeout = until - time();\n                if (!isWatching()) {\n                    return;\n                }\n                if (elementsHaveResized) {\n                    _this.run(1000);\n                }\n                else if (timeout > 0) {\n                    _this.run(timeout);\n                }\n                else {\n                    _this.start();\n                }\n            }\n        });\n    };\n    Scheduler.prototype.schedule = function () {\n        this.stop();\n        this.run();\n    };\n    Scheduler.prototype.observe = function () {\n        var _this = this;\n        var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n        document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n    };\n    Scheduler.prototype.start = function () {\n        var _this = this;\n        if (this.stopped) {\n            this.stopped = false;\n            this.observer = new MutationObserver(this.listener);\n            this.observe();\n            events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n        }\n    };\n    Scheduler.prototype.stop = function () {\n        var _this = this;\n        if (!this.stopped) {\n            this.observer && this.observer.disconnect();\n            events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n            this.stopped = true;\n        }\n    };\n    return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n    !watching && n > 0 && scheduler.start();\n    watching += n;\n    !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n    return !isSVG(target)\n        && !isReplacedElement(target)\n        && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n    function ResizeObservation(target, observedBox) {\n        this.target = target;\n        this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n        this.lastReportedSize = {\n            inlineSize: 0,\n            blockSize: 0\n        };\n    }\n    ResizeObservation.prototype.isActive = function () {\n        var size = calculateBoxSize(this.target, this.observedBox, true);\n        if (skipNotifyOnElement(this.target)) {\n            this.lastReportedSize = size;\n        }\n        if (this.lastReportedSize.inlineSize !== size.inlineSize\n            || this.lastReportedSize.blockSize !== size.blockSize) {\n            return true;\n        }\n        return false;\n    };\n    return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n    function ResizeObserverDetail(resizeObserver, callback) {\n        this.activeTargets = [];\n        this.skippedTargets = [];\n        this.observationTargets = [];\n        this.observer = resizeObserver;\n        this.callback = callback;\n    }\n    return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n    for (var i = 0; i < observationTargets.length; i += 1) {\n        if (observationTargets[i].target === target) {\n            return i;\n        }\n    }\n    return -1;\n};\nvar ResizeObserverController = (function () {\n    function ResizeObserverController() {\n    }\n    ResizeObserverController.connect = function (resizeObserver, callback) {\n        var detail = new ResizeObserverDetail(resizeObserver, callback);\n        observerMap.set(resizeObserver, detail);\n    };\n    ResizeObserverController.observe = function (resizeObserver, target, options) {\n        var detail = observerMap.get(resizeObserver);\n        var firstObservation = detail.observationTargets.length === 0;\n        if (getObservationIndex(detail.observationTargets, target) < 0) {\n            firstObservation && resizeObservers.push(detail);\n            detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n            updateCount(1);\n            scheduler.schedule();\n        }\n    };\n    ResizeObserverController.unobserve = function (resizeObserver, target) {\n        var detail = observerMap.get(resizeObserver);\n        var index = getObservationIndex(detail.observationTargets, target);\n        var lastObservation = detail.observationTargets.length === 1;\n        if (index >= 0) {\n            lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n            detail.observationTargets.splice(index, 1);\n            updateCount(-1);\n        }\n    };\n    ResizeObserverController.disconnect = function (resizeObserver) {\n        var _this = this;\n        var detail = observerMap.get(resizeObserver);\n        detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n        detail.activeTargets.splice(0, detail.activeTargets.length);\n    };\n    return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n    function ResizeObserver(callback) {\n        if (arguments.length === 0) {\n            throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n        }\n        if (typeof callback !== 'function') {\n            throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n        }\n        ResizeObserverController.connect(this, callback);\n    }\n    ResizeObserver.prototype.observe = function (target, options) {\n        if (arguments.length === 0) {\n            throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n        }\n        if (!isElement(target)) {\n            throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n        }\n        ResizeObserverController.observe(this, target, options);\n    };\n    ResizeObserver.prototype.unobserve = function (target) {\n        if (arguments.length === 0) {\n            throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n        }\n        if (!isElement(target)) {\n            throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n        }\n        ResizeObserverController.unobserve(this, target);\n    };\n    ResizeObserver.prototype.disconnect = function () {\n        ResizeObserverController.disconnect(this);\n    };\n    ResizeObserver.toString = function () {\n        return 'function ResizeObserver () { [polyfill code] }';\n    };\n    return ResizeObserver;\n}());\nexport { ResizeObserver };\n","import { ResizeObserver as PolyfillResizeObserver } from '@juggle/resize-observer';\nclass ResizeObserverDelegate {\n    constructor() {\n        this.handleResize = this.handleResize.bind(this);\n        this.observer = new ((typeof window !== 'undefined' &&\n            window.ResizeObserver) ||\n            PolyfillResizeObserver)(this.handleResize);\n        this.elHandlersMap = new Map();\n    }\n    handleResize(entries) {\n        for (const entry of entries) {\n            const handler = this.elHandlersMap.get(entry.target);\n            if (handler !== undefined) {\n                handler(entry);\n            }\n        }\n    }\n    registerHandler(el, handler) {\n        this.elHandlersMap.set(el, handler);\n        this.observer.observe(el);\n    }\n    unregisterHandler(el) {\n        if (!this.elHandlersMap.has(el)) {\n            return;\n        }\n        this.elHandlersMap.delete(el);\n        this.observer.unobserve(el);\n    }\n}\nexport default new ResizeObserverDelegate();\n","import { defineComponent, renderSlot, getCurrentInstance, onMounted, onBeforeUnmount } from 'vue';\nimport delegate from './delegate';\nimport { warn } from '../../shared';\nexport default defineComponent({\n    name: 'ResizeObserver',\n    props: {\n        onResize: Function\n    },\n    setup(props) {\n        let registered = false;\n        const proxy = getCurrentInstance().proxy;\n        function handleResize(entry) {\n            const { onResize } = props;\n            if (onResize !== undefined)\n                onResize(entry);\n        }\n        onMounted(() => {\n            const el = proxy.$el;\n            if (el === undefined) {\n                warn('resize-observer', '$el does not exist.');\n                return;\n            }\n            if (el.nextElementSibling !== el.nextSibling) {\n                if (el.nodeType === 3 && el.nodeValue !== '') {\n                    warn('resize-observer', '$el can not be observed (it may be a text node).');\n                    return;\n                }\n            }\n            if (el.nextElementSibling !== null) {\n                delegate.registerHandler(el.nextElementSibling, handleResize);\n                registered = true;\n            }\n        });\n        onBeforeUnmount(() => {\n            if (registered) {\n                delegate.unregisterHandler(proxy.$el.nextElementSibling);\n            }\n        });\n    },\n    render() {\n        return renderSlot(this.$slots, 'default');\n    }\n});\n","let maybeTouch;\nexport function ensureMaybeTouch() {\n    if (typeof document === 'undefined')\n        return false;\n    if (maybeTouch === undefined) {\n        if ('matchMedia' in window) {\n            maybeTouch = window.matchMedia('(pointer:coarse)').matches;\n        }\n        else {\n            maybeTouch = false;\n        }\n    }\n    return maybeTouch;\n}\nlet wheelScale;\nexport function ensureWheelScale() {\n    if (typeof document === 'undefined')\n        return 1;\n    if (wheelScale === undefined) {\n        wheelScale = 'chrome' in window ? window.devicePixelRatio : 1;\n    }\n    return wheelScale;\n}\n","export const xScrollInjextionKey = 'VVirtualListXScroll';\n","import { computed, provide, ref } from 'vue';\nimport { useMemo } from 'vooks';\nimport { FinweckTree } from '../../shared';\nimport { xScrollInjextionKey } from './context';\nexport function setupXScroll({ columnsRef, renderColRef, renderItemWithColsRef }) {\n    const listWidthRef = ref(0);\n    const scrollLeftRef = ref(0);\n    const xFinweckTreeRef = computed(() => {\n        const columns = columnsRef.value;\n        if (columns.length === 0) {\n            return null;\n        }\n        const ft = new FinweckTree(columns.length, 0);\n        columns.forEach((column, index) => {\n            ft.add(index, column.width);\n        });\n        return ft;\n    });\n    const startIndexRef = useMemo(() => {\n        const xFinweckTree = xFinweckTreeRef.value;\n        if (xFinweckTree !== null) {\n            return Math.max(xFinweckTree.getBound(scrollLeftRef.value) - 1, 0);\n        }\n        else {\n            return 0;\n        }\n    });\n    const getLeft = (index) => {\n        const xFinweckTree = xFinweckTreeRef.value;\n        if (xFinweckTree !== null) {\n            return xFinweckTree.sum(index);\n        }\n        else {\n            return 0;\n        }\n    };\n    const endIndexRef = useMemo(() => {\n        const xFinweckTree = xFinweckTreeRef.value;\n        if (xFinweckTree !== null) {\n            return Math.min(xFinweckTree.getBound(scrollLeftRef.value + listWidthRef.value) + 1, columnsRef.value.length - 1);\n        }\n        else {\n            return 0;\n        }\n    });\n    provide(xScrollInjextionKey, {\n        startIndexRef,\n        endIndexRef,\n        columnsRef,\n        renderColRef,\n        renderItemWithColsRef,\n        getLeft\n    });\n    return {\n        listWidthRef,\n        scrollLeftRef\n    };\n}\n","import { defineComponent, inject } from 'vue';\nimport { xScrollInjextionKey } from './context';\nexport const VirtualListRow = defineComponent({\n    name: 'VirtualListRow',\n    props: {\n        index: { type: Number, required: true },\n        item: {\n            type: Object,\n            required: true\n        }\n    },\n    setup() {\n        const { startIndexRef, endIndexRef, columnsRef, getLeft, renderColRef, renderItemWithColsRef } = inject(xScrollInjextionKey);\n        return {\n            startIndex: startIndexRef,\n            endIndex: endIndexRef,\n            columns: columnsRef,\n            renderCol: renderColRef,\n            renderItemWithCols: renderItemWithColsRef,\n            getLeft\n        };\n    },\n    render() {\n        const { startIndex, endIndex, columns, renderCol, renderItemWithCols, getLeft, item } = this;\n        if (renderItemWithCols != null) {\n            return renderItemWithCols({\n                itemIndex: this.index,\n                startColIndex: startIndex,\n                endColIndex: endIndex,\n                allColumns: columns,\n                item,\n                getLeft\n            });\n        }\n        if (renderCol != null) {\n            const items = [];\n            for (let i = startIndex; i <= endIndex; ++i) {\n                const column = columns[i];\n                items.push(renderCol({ column, left: getLeft(i), item }));\n            }\n            return items;\n        }\n        return null;\n    }\n});\n","import { mergeProps, computed, defineComponent, ref, onMounted, h, onActivated, onDeactivated, toRef } from 'vue';\nimport { beforeNextFrameOnce, depx, pxfy } from 'seemly';\nimport { useMemo } from 'vooks';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport VResizeObserver from '../../resize-observer/src/VResizeObserver';\nimport { c, cssrAnchorMetaName, FinweckTree } from '../../shared';\nimport { ensureMaybeTouch, ensureWheelScale } from './config';\nimport { setupXScroll } from './xScroll';\nimport { VirtualListRow } from './VirtualListRow';\nconst styles = c('.v-vl', {\n    maxHeight: 'inherit',\n    height: '100%',\n    overflow: 'auto',\n    minWidth: '1px' // a zero width container won't be scrollable\n}, [\n    c('&:not(.v-vl--show-scrollbar)', {\n        scrollbarWidth: 'none'\n    }, [\n        c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', {\n            width: 0,\n            height: 0,\n            display: 'none'\n        })\n    ])\n]);\nexport default defineComponent({\n    name: 'VirtualList',\n    inheritAttrs: false,\n    props: {\n        showScrollbar: {\n            type: Boolean,\n            default: true\n        },\n        columns: {\n            type: Array,\n            default: () => []\n        },\n        renderCol: Function,\n        renderItemWithCols: Function,\n        items: {\n            type: Array,\n            default: () => []\n        },\n        // it is suppose to be the min height\n        itemSize: {\n            type: Number,\n            required: true\n        },\n        itemResizable: Boolean,\n        itemsStyle: [String, Object],\n        visibleItemsTag: {\n            type: [String, Object],\n            default: 'div'\n        },\n        visibleItemsProps: Object,\n        ignoreItemResize: Boolean,\n        onScroll: Function,\n        onWheel: Function,\n        onResize: Function,\n        defaultScrollKey: [Number, String],\n        defaultScrollIndex: Number,\n        keyField: {\n            type: String,\n            default: 'key'\n        },\n        // Whether it is a good API?\n        // ResizeObserver + footer & header is not enough.\n        // Too complex for simple case\n        paddingTop: {\n            type: [Number, String],\n            default: 0\n        },\n        paddingBottom: {\n            type: [Number, String],\n            default: 0\n        }\n    },\n    setup(props) {\n        const ssrAdapter = useSsrAdapter();\n        styles.mount({\n            id: 'vueuc/virtual-list',\n            head: true,\n            anchorMetaName: cssrAnchorMetaName,\n            ssr: ssrAdapter\n        });\n        onMounted(() => {\n            const { defaultScrollIndex, defaultScrollKey } = props;\n            if (defaultScrollIndex !== undefined && defaultScrollIndex !== null) {\n                scrollTo({ index: defaultScrollIndex });\n            }\n            else if (defaultScrollKey !== undefined && defaultScrollKey !== null) {\n                scrollTo({ key: defaultScrollKey });\n            }\n        });\n        let isDeactivated = false;\n        let activateStateInitialized = false;\n        onActivated(() => {\n            isDeactivated = false;\n            if (!activateStateInitialized) {\n                activateStateInitialized = true;\n                return;\n            }\n            // remount\n            scrollTo({ top: scrollTopRef.value, left: scrollLeftRef.value });\n        });\n        onDeactivated(() => {\n            isDeactivated = true;\n            if (!activateStateInitialized) {\n                activateStateInitialized = true;\n            }\n        });\n        const totalWidthRef = useMemo(() => {\n            if (props.renderCol == null && props.renderItemWithCols == null) {\n                return undefined;\n            }\n            if (props.columns.length === 0)\n                return undefined;\n            let width = 0;\n            props.columns.forEach((column) => {\n                width += column.width;\n            });\n            return width;\n        });\n        const keyIndexMapRef = computed(() => {\n            const map = new Map();\n            const { keyField } = props;\n            props.items.forEach((item, index) => {\n                map.set(item[keyField], index);\n            });\n            return map;\n        });\n        const { scrollLeftRef, listWidthRef } = setupXScroll({\n            columnsRef: toRef(props, 'columns'),\n            renderColRef: toRef(props, 'renderCol'),\n            renderItemWithColsRef: toRef(props, 'renderItemWithCols')\n        });\n        const listElRef = ref(null);\n        const listHeightRef = ref(undefined);\n        const keyToHeightOffset = new Map();\n        const finweckTreeRef = computed(() => {\n            const { items, itemSize, keyField } = props;\n            const ft = new FinweckTree(items.length, itemSize);\n            items.forEach((item, index) => {\n                const key = item[keyField];\n                const heightOffset = keyToHeightOffset.get(key);\n                if (heightOffset !== undefined) {\n                    ft.add(index, heightOffset);\n                }\n            });\n            return ft;\n        });\n        const finweckTreeUpdateTrigger = ref(0);\n        const scrollTopRef = ref(0);\n        const startIndexRef = useMemo(() => {\n            return Math.max(finweckTreeRef.value.getBound(scrollTopRef.value - depx(props.paddingTop)) - 1, 0);\n        });\n        const viewportItemsRef = computed(() => {\n            const { value: listHeight } = listHeightRef;\n            if (listHeight === undefined)\n                return [];\n            const { items, itemSize } = props;\n            const startIndex = startIndexRef.value;\n            const endIndex = Math.min(startIndex + Math.ceil(listHeight / itemSize + 1), items.length - 1);\n            const viewportItems = [];\n            for (let i = startIndex; i <= endIndex; ++i) {\n                viewportItems.push(items[i]);\n            }\n            return viewportItems;\n        });\n        const scrollTo = (options, y) => {\n            if (typeof options === 'number') {\n                scrollToPosition(options, y, 'auto');\n                return;\n            }\n            const { left, top, index, key, position, behavior, debounce = true } = options;\n            if (left !== undefined || top !== undefined) {\n                scrollToPosition(left, top, behavior);\n            }\n            else if (index !== undefined) {\n                scrollToIndex(index, behavior, debounce);\n            }\n            else if (key !== undefined) {\n                const toIndex = keyIndexMapRef.value.get(key);\n                if (toIndex !== undefined)\n                    scrollToIndex(toIndex, behavior, debounce);\n            }\n            else if (position === 'bottom') {\n                scrollToPosition(0, Number.MAX_SAFE_INTEGER, behavior);\n            }\n            else if (position === 'top') {\n                scrollToPosition(0, 0, behavior);\n            }\n        };\n        let anchorIndex;\n        let anchorTimerId = null;\n        function scrollToIndex(index, behavior, debounce) {\n            const listEl = listElRef.value;\n            if (listEl == null)\n                return;\n            const { value: ft } = finweckTreeRef;\n            const targetTop = ft.sum(index) + depx(props.paddingTop);\n            if (!debounce) {\n                listEl.scrollTo({\n                    left: 0,\n                    top: targetTop,\n                    behavior\n                });\n            }\n            else {\n                anchorIndex = index;\n                if (anchorTimerId !== null) {\n                    window.clearTimeout(anchorTimerId);\n                }\n                anchorTimerId = window.setTimeout(() => {\n                    anchorIndex = undefined;\n                    anchorTimerId = null;\n                }, 16); // use 0 ms may be ealier than resize callback...\n                const { scrollTop, offsetHeight } = listEl;\n                if (targetTop > scrollTop) {\n                    const itemSize = ft.get(index);\n                    if (targetTop + itemSize <= scrollTop + offsetHeight) {\n                        // do nothing\n                    }\n                    else {\n                        listEl.scrollTo({\n                            left: 0,\n                            top: targetTop + itemSize - offsetHeight,\n                            behavior\n                        });\n                    }\n                }\n                else {\n                    listEl.scrollTo({\n                        left: 0,\n                        top: targetTop,\n                        behavior\n                    });\n                }\n            }\n        }\n        function scrollToPosition(left, top, behavior) {\n            const listEl = listElRef.value;\n            if (listEl == null)\n                return;\n            listEl.scrollTo({\n                left,\n                top,\n                behavior\n            });\n        }\n        function handleItemResize(key, entry) {\n            var _a, _b;\n            var _c;\n            if (isDeactivated)\n                return;\n            if (props.ignoreItemResize)\n                return;\n            if (isHideByVShow(entry.target))\n                return;\n            const { value: ft } = finweckTreeRef;\n            const index = keyIndexMapRef.value.get(key);\n            const previousHeight = ft.get(index);\n            const height = (_c = (_b = (_a = entry.borderBoxSize) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.blockSize) !== null && _c !== void 0 ? _c : entry.contentRect.height;\n            if (height === previousHeight)\n                return;\n            // height offset based on itemSize\n            // used when rebuild the finweck tree\n            const offset = height - props.itemSize;\n            if (offset === 0) {\n                keyToHeightOffset.delete(key);\n            }\n            else {\n                keyToHeightOffset.set(key, height - props.itemSize);\n            }\n            // delta height based on finweck tree data\n            const delta = height - previousHeight;\n            if (delta === 0)\n                return;\n            ft.add(index, delta);\n            const listEl = listElRef.value;\n            if (listEl != null) {\n                if (anchorIndex === undefined) {\n                    const previousHeightSum = ft.sum(index);\n                    if (listEl.scrollTop > previousHeightSum) {\n                        listEl.scrollBy(0, delta);\n                    }\n                }\n                else {\n                    if (index < anchorIndex) {\n                        listEl.scrollBy(0, delta);\n                    }\n                    else if (index === anchorIndex) {\n                        const previousHeightSum = ft.sum(index);\n                        if (height + previousHeightSum >\n                            // Note, listEl shouldn't have border, nor offsetHeight won't be\n                            // correct\n                            listEl.scrollTop + listEl.offsetHeight) {\n                            listEl.scrollBy(0, delta);\n                        }\n                    }\n                }\n                syncViewport();\n            }\n            finweckTreeUpdateTrigger.value++;\n        }\n        const mayUseWheel = !ensureMaybeTouch();\n        let wheelCatched = false;\n        function handleListScroll(e) {\n            var _a;\n            (_a = props.onScroll) === null || _a === void 0 ? void 0 : _a.call(props, e);\n            if (!mayUseWheel || !wheelCatched) {\n                syncViewport();\n            }\n        }\n        function handleListWheel(e) {\n            var _a;\n            (_a = props.onWheel) === null || _a === void 0 ? void 0 : _a.call(props, e);\n            if (mayUseWheel) {\n                const listEl = listElRef.value;\n                if (listEl != null) {\n                    if (e.deltaX === 0) {\n                        if (listEl.scrollTop === 0 && e.deltaY <= 0) {\n                            return;\n                        }\n                        if (listEl.scrollTop + listEl.offsetHeight >= listEl.scrollHeight &&\n                            e.deltaY >= 0) {\n                            return;\n                        }\n                    }\n                    e.preventDefault();\n                    listEl.scrollTop += e.deltaY / ensureWheelScale();\n                    listEl.scrollLeft += e.deltaX / ensureWheelScale();\n                    syncViewport();\n                    wheelCatched = true;\n                    beforeNextFrameOnce(() => {\n                        wheelCatched = false;\n                    });\n                }\n            }\n        }\n        function handleListResize(entry) {\n            if (isDeactivated)\n                return;\n            // List is HTMLElement\n            if (isHideByVShow(entry.target))\n                return;\n            // If height is same, return\n            if (props.renderCol == null && props.renderItemWithCols == null) {\n                if (entry.contentRect.height === listHeightRef.value)\n                    return;\n            }\n            else {\n                if (entry.contentRect.height === listHeightRef.value &&\n                    entry.contentRect.width === listWidthRef.value) {\n                    return;\n                }\n            }\n            listHeightRef.value = entry.contentRect.height;\n            listWidthRef.value = entry.contentRect.width;\n            const { onResize } = props;\n            if (onResize !== undefined)\n                onResize(entry);\n        }\n        function syncViewport() {\n            const { value: listEl } = listElRef;\n            // sometime ref el can be null\n            // https://github.com/TuSimple/naive-ui/issues/811\n            if (listEl == null)\n                return;\n            scrollTopRef.value = listEl.scrollTop;\n            scrollLeftRef.value = listEl.scrollLeft;\n        }\n        function isHideByVShow(el) {\n            let cursor = el;\n            while (cursor !== null) {\n                if (cursor.style.display === 'none')\n                    return true;\n                cursor = cursor.parentElement;\n            }\n            return false;\n        }\n        return {\n            listHeight: listHeightRef,\n            listStyle: {\n                overflow: 'auto'\n            },\n            keyToIndex: keyIndexMapRef,\n            itemsStyle: computed(() => {\n                const { itemResizable } = props;\n                const height = pxfy(finweckTreeRef.value.sum());\n                void finweckTreeUpdateTrigger.value;\n                return [\n                    props.itemsStyle,\n                    {\n                        boxSizing: 'content-box',\n                        width: pxfy(totalWidthRef.value),\n                        height: itemResizable ? '' : height,\n                        minHeight: itemResizable ? height : '',\n                        paddingTop: pxfy(props.paddingTop),\n                        paddingBottom: pxfy(props.paddingBottom)\n                    }\n                ];\n            }),\n            visibleItemsStyle: computed(() => {\n                void finweckTreeUpdateTrigger.value;\n                return {\n                    transform: `translateY(${pxfy(finweckTreeRef.value.sum(startIndexRef.value))})`\n                };\n            }),\n            viewportItems: viewportItemsRef,\n            listElRef,\n            itemsElRef: ref(null),\n            scrollTo,\n            handleListResize,\n            handleListScroll,\n            handleListWheel,\n            handleItemResize\n        };\n    },\n    render() {\n        const { itemResizable, keyField, keyToIndex, visibleItemsTag } = this;\n        return h(VResizeObserver, {\n            onResize: this.handleListResize\n        }, {\n            default: () => {\n                var _a, _b;\n                return h('div', mergeProps(this.$attrs, {\n                    class: ['v-vl', this.showScrollbar && 'v-vl--show-scrollbar'],\n                    onScroll: this.handleListScroll,\n                    onWheel: this.handleListWheel,\n                    ref: 'listElRef'\n                }), [\n                    this.items.length !== 0\n                        ? h('div', {\n                            ref: 'itemsElRef',\n                            class: 'v-vl-items',\n                            style: this.itemsStyle\n                        }, [\n                            h(visibleItemsTag, Object.assign({\n                                class: 'v-vl-visible-items',\n                                style: this.visibleItemsStyle\n                            }, this.visibleItemsProps), {\n                                default: () => {\n                                    const { renderCol, renderItemWithCols } = this;\n                                    return this.viewportItems.map((item) => {\n                                        const key = item[keyField];\n                                        const index = keyToIndex.get(key);\n                                        const renderedCols = renderCol != null\n                                            ? h(VirtualListRow, {\n                                                index,\n                                                item\n                                            })\n                                            : undefined;\n                                        const renderedItemWithCols = renderItemWithCols != null\n                                            ? h(VirtualListRow, {\n                                                index,\n                                                item\n                                            })\n                                            : undefined;\n                                        const itemVNode = this.$slots.default({\n                                            item,\n                                            renderedCols,\n                                            renderedItemWithCols,\n                                            index\n                                        })[0];\n                                        if (itemResizable) {\n                                            return h(VResizeObserver, {\n                                                key,\n                                                onResize: (entry) => this.handleItemResize(key, entry)\n                                            }, {\n                                                default: () => itemVNode\n                                            });\n                                        }\n                                        itemVNode.key = key;\n                                        return itemVNode;\n                                    });\n                                }\n                            })\n                        ])\n                        : (_b = (_a = this.$slots).empty) === null || _b === void 0 ? void 0 : _b.call(_a)\n                ]);\n            }\n        });\n    }\n});\n","import { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { defineComponent, h, ref } from 'vue';\nimport { c, cssrAnchorMetaName } from '../../shared';\nconst styles = c('.v-x-scroll', {\n    overflow: 'auto',\n    scrollbarWidth: 'none'\n}, [\n    c('&::-webkit-scrollbar', {\n        width: 0,\n        height: 0\n    })\n]);\nexport default defineComponent({\n    name: 'XScroll',\n    props: {\n        disabled: Boolean,\n        onScroll: Function\n    },\n    setup() {\n        const selfRef = ref(null);\n        function handleWheel(e) {\n            const preventYWheel = e.currentTarget.offsetWidth <\n                e.currentTarget.scrollWidth;\n            if (!preventYWheel || e.deltaY === 0)\n                return;\n            e.currentTarget.scrollLeft += e.deltaY + e.deltaX;\n            e.preventDefault();\n        }\n        const ssrAdapter = useSsrAdapter();\n        styles.mount({\n            id: 'vueuc/x-scroll',\n            head: true,\n            anchorMetaName: cssrAnchorMetaName,\n            ssr: ssrAdapter\n        });\n        const exposedMethods = {\n            scrollTo(...args) {\n                var _a;\n                (_a = selfRef.value) === null || _a === void 0 ? void 0 : _a.scrollTo(...args);\n            }\n        };\n        return Object.assign({ selfRef,\n            handleWheel }, exposedMethods);\n    },\n    render() {\n        return h('div', {\n            ref: 'selfRef',\n            onScroll: this.onScroll,\n            onWheel: this.disabled ? undefined : this.handleWheel,\n            class: 'v-x-scroll'\n        }, this.$slots);\n    }\n});\n","import { defineComponent, renderSlot, h, onMounted, ref, nextTick } from 'vue';\nimport { useSsrAdapter } from '@css-render/vue3-ssr';\nimport { c, cssrAnchorMetaName } from '../../shared';\nconst hiddenAttr = 'v-hidden';\nconst style = c('[v-hidden]', {\n    display: 'none!important'\n});\nexport default defineComponent({\n    name: 'Overflow',\n    props: {\n        getCounter: Function,\n        getTail: Function,\n        updateCounter: Function,\n        onUpdateCount: Function,\n        onUpdateOverflow: Function\n    },\n    setup(props, { slots }) {\n        const selfRef = ref(null);\n        const counterRef = ref(null);\n        function deriveCounter(options) {\n            const { value: self } = selfRef;\n            const { getCounter, getTail } = props;\n            let counter;\n            if (getCounter !== undefined)\n                counter = getCounter();\n            else {\n                counter = counterRef.value;\n            }\n            if (!self || !counter)\n                return;\n            if (counter.hasAttribute(hiddenAttr)) {\n                counter.removeAttribute(hiddenAttr);\n            }\n            const { children } = self;\n            if (options.showAllItemsBeforeCalculate) {\n                for (const child of children) {\n                    if (child.hasAttribute(hiddenAttr)) {\n                        child.removeAttribute(hiddenAttr);\n                    }\n                }\n            }\n            const containerWidth = self.offsetWidth;\n            const childWidths = [];\n            const tail = slots.tail ? getTail === null || getTail === void 0 ? void 0 : getTail() : null;\n            let childWidthSum = tail ? tail.offsetWidth : 0;\n            let overflow = false;\n            const len = self.children.length - (slots.tail ? 1 : 0);\n            for (let i = 0; i < len - 1; ++i) {\n                if (i < 0)\n                    continue;\n                const child = children[i];\n                if (overflow) {\n                    if (!child.hasAttribute(hiddenAttr)) {\n                        child.setAttribute(hiddenAttr, '');\n                    }\n                    continue;\n                }\n                else if (child.hasAttribute(hiddenAttr)) {\n                    child.removeAttribute(hiddenAttr);\n                }\n                const childWidth = child.offsetWidth;\n                childWidthSum += childWidth;\n                childWidths[i] = childWidth;\n                if (childWidthSum > containerWidth) {\n                    const { updateCounter } = props;\n                    for (let j = i; j >= 0; --j) {\n                        const restCount = len - 1 - j;\n                        if (updateCounter !== undefined) {\n                            updateCounter(restCount);\n                        }\n                        else {\n                            counter.textContent = `${restCount}`;\n                        }\n                        const counterWidth = counter.offsetWidth;\n                        childWidthSum -= childWidths[j];\n                        if (childWidthSum + counterWidth <= containerWidth || j === 0) {\n                            overflow = true;\n                            i = j - 1;\n                            if (tail) {\n                                // tail too long or 1st element too long\n                                // we only consider tail now\n                                if (i === -1) {\n                                    tail.style.maxWidth = `${containerWidth - counterWidth}px`;\n                                    tail.style.boxSizing = 'border-box';\n                                }\n                                else {\n                                    tail.style.maxWidth = '';\n                                }\n                            }\n                            const { onUpdateCount } = props;\n                            if (onUpdateCount)\n                                onUpdateCount(restCount);\n                            break;\n                        }\n                    }\n                }\n            }\n            const { onUpdateOverflow } = props;\n            if (!overflow) {\n                if (onUpdateOverflow !== undefined) {\n                    onUpdateOverflow(false);\n                }\n                counter.setAttribute(hiddenAttr, '');\n            }\n            else {\n                if (onUpdateOverflow !== undefined) {\n                    onUpdateOverflow(true);\n                }\n            }\n        }\n        const ssrAdapter = useSsrAdapter();\n        style.mount({\n            id: 'vueuc/overflow',\n            head: true,\n            anchorMetaName: cssrAnchorMetaName,\n            ssr: ssrAdapter\n        });\n        onMounted(() => deriveCounter({\n            showAllItemsBeforeCalculate: false\n        }));\n        // besides onMounted, other case should be manually triggered, or we shoud watch items\n        return {\n            selfRef,\n            counterRef,\n            sync: deriveCounter\n        };\n    },\n    render() {\n        const { $slots } = this;\n        nextTick(() => this.sync({\n            showAllItemsBeforeCalculate: false\n        }));\n        // It shouldn't have border\n        return h('div', {\n            class: 'v-overflow',\n            ref: 'selfRef'\n        }, [\n            renderSlot($slots, 'default'),\n            // $slots.counter should only has 1 element\n            $slots.counter\n                ? $slots.counter()\n                : h('span', {\n                    style: {\n                        display: 'inline-block'\n                    },\n                    ref: 'counterRef'\n                }),\n            // $slots.tail should only has 1 element\n            $slots.tail ? $slots.tail() : null\n        ]);\n    }\n});\n","// ref https://www.w3.org/TR/wai-aria-practices-1.1/examples/dialog-modal/js/dialog.js\nfunction isHTMLElement(node) {\n    return node instanceof HTMLElement;\n}\nexport function focusFirstDescendant(node) {\n    for (let i = 0; i < node.childNodes.length; i++) {\n        const child = node.childNodes[i];\n        if (isHTMLElement(child)) {\n            if (attemptFocus(child) || focusFirstDescendant(child)) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\nexport function focusLastDescendant(element) {\n    for (let i = element.childNodes.length - 1; i >= 0; i--) {\n        const child = element.childNodes[i];\n        if (isHTMLElement(child)) {\n            if (attemptFocus(child) || focusLastDescendant(child)) {\n                return true;\n            }\n        }\n    }\n    return false;\n}\nfunction attemptFocus(element) {\n    if (!isFocusable(element)) {\n        return false;\n    }\n    try {\n        element.focus({ preventScroll: true });\n    }\n    catch (_a) { }\n    return document.activeElement === element;\n}\nfunction isFocusable(element) {\n    if (element.tabIndex > 0 ||\n        (element.tabIndex === 0 && element.getAttribute('tabIndex') !== null)) {\n        return true;\n    }\n    if (element.getAttribute('disabled')) {\n        return false;\n    }\n    switch (element.nodeName) {\n        case 'A':\n            return (!!element.href &&\n                element.rel !== 'ignore');\n        case 'INPUT':\n            return (element.type !== 'hidden' &&\n                element.type !== 'file');\n        case 'SELECT':\n        case 'TEXTAREA':\n            return true;\n        default:\n            return false;\n    }\n}\n","import { h, defineComponent, ref, Fragment, onMounted, onBeforeUnmount, watch } from 'vue';\nimport { createId, getPreciseEventTarget } from 'seemly';\nimport { on, off } from 'evtd';\nimport { focusFirstDescendant, focusLastDescendant } from './utils';\nimport { resolveTo } from '../../shared';\nlet stack = [];\nexport const FocusTrap = defineComponent({\n    name: 'FocusTrap',\n    props: {\n        disabled: Boolean,\n        active: Boolean,\n        autoFocus: {\n            type: Boolean,\n            default: true\n        },\n        onEsc: Function,\n        initialFocusTo: [String, Function],\n        finalFocusTo: [String, Function],\n        returnFocusOnDeactivated: {\n            type: Boolean,\n            default: true\n        }\n    },\n    setup(props) {\n        const id = createId();\n        const focusableStartRef = ref(null);\n        const focusableEndRef = ref(null);\n        let activated = false;\n        let ignoreInternalFocusChange = false;\n        const lastFocusedElement = typeof document === 'undefined' ? null : document.activeElement;\n        function isCurrentActive() {\n            const currentActiveId = stack[stack.length - 1];\n            return currentActiveId === id;\n        }\n        function handleDocumentKeydown(e) {\n            var _a;\n            if (e.code === 'Escape') {\n                if (isCurrentActive()) {\n                    (_a = props.onEsc) === null || _a === void 0 ? void 0 : _a.call(props, e);\n                }\n            }\n        }\n        onMounted(() => {\n            watch(() => props.active, (value) => {\n                if (value) {\n                    activate();\n                    on('keydown', document, handleDocumentKeydown);\n                }\n                else {\n                    off('keydown', document, handleDocumentKeydown);\n                    if (activated) {\n                        deactivate();\n                    }\n                }\n            }, {\n                immediate: true\n            });\n        });\n        onBeforeUnmount(() => {\n            off('keydown', document, handleDocumentKeydown);\n            if (activated)\n                deactivate();\n        });\n        function handleDocumentFocus(e) {\n            if (ignoreInternalFocusChange)\n                return;\n            if (isCurrentActive()) {\n                const mainEl = getMainEl();\n                if (mainEl === null)\n                    return;\n                if (mainEl.contains(getPreciseEventTarget(e)))\n                    return;\n                // I don't handle shift + tab status since it's too tricky to handle\n                // Not impossible but I need to sleep\n                resetFocusTo('first');\n            }\n        }\n        function getMainEl() {\n            const focusableStartEl = focusableStartRef.value;\n            if (focusableStartEl === null)\n                return null;\n            let mainEl = focusableStartEl;\n            while (true) {\n                mainEl = mainEl.nextSibling;\n                if (mainEl === null)\n                    break;\n                if (mainEl instanceof Element && mainEl.tagName === 'DIV') {\n                    break;\n                }\n            }\n            return mainEl;\n        }\n        function activate() {\n            var _a;\n            if (props.disabled)\n                return;\n            stack.push(id);\n            if (props.autoFocus) {\n                const { initialFocusTo } = props;\n                if (initialFocusTo === undefined) {\n                    resetFocusTo('first');\n                }\n                else {\n                    (_a = resolveTo(initialFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n                }\n            }\n            activated = true;\n            document.addEventListener('focus', handleDocumentFocus, true);\n        }\n        function deactivate() {\n            var _a;\n            if (props.disabled)\n                return;\n            document.removeEventListener('focus', handleDocumentFocus, true);\n            stack = stack.filter((idInStack) => idInStack !== id);\n            if (isCurrentActive())\n                return;\n            const { finalFocusTo } = props;\n            if (finalFocusTo !== undefined) {\n                (_a = resolveTo(finalFocusTo)) === null || _a === void 0 ? void 0 : _a.focus({ preventScroll: true });\n            }\n            else if (props.returnFocusOnDeactivated) {\n                if (lastFocusedElement instanceof HTMLElement) {\n                    ignoreInternalFocusChange = true;\n                    lastFocusedElement.focus({ preventScroll: true });\n                    ignoreInternalFocusChange = false;\n                }\n            }\n        }\n        function resetFocusTo(target) {\n            if (!isCurrentActive())\n                return;\n            if (props.active) {\n                const focusableStartEl = focusableStartRef.value;\n                const focusableEndEl = focusableEndRef.value;\n                if (focusableStartEl !== null && focusableEndEl !== null) {\n                    const mainEl = getMainEl();\n                    if (mainEl == null || mainEl === focusableEndEl) {\n                        ignoreInternalFocusChange = true;\n                        focusableStartEl.focus({ preventScroll: true });\n                        ignoreInternalFocusChange = false;\n                        return;\n                    }\n                    ignoreInternalFocusChange = true;\n                    const focused = target === 'first'\n                        ? focusFirstDescendant(mainEl)\n                        : focusLastDescendant(mainEl);\n                    ignoreInternalFocusChange = false;\n                    if (!focused) {\n                        ignoreInternalFocusChange = true;\n                        focusableStartEl.focus({ preventScroll: true });\n                        ignoreInternalFocusChange = false;\n                    }\n                }\n            }\n        }\n        function handleStartFocus(e) {\n            if (ignoreInternalFocusChange)\n                return;\n            const mainEl = getMainEl();\n            if (mainEl === null)\n                return;\n            if (e.relatedTarget !== null && mainEl.contains(e.relatedTarget)) {\n                // if it comes from inner, focus last\n                resetFocusTo('last');\n            }\n            else {\n                // otherwise focus first\n                resetFocusTo('first');\n            }\n        }\n        function handleEndFocus(e) {\n            if (ignoreInternalFocusChange)\n                return;\n            if (e.relatedTarget !== null &&\n                e.relatedTarget === focusableStartRef.value) {\n                // if it comes from first, focus last\n                resetFocusTo('last');\n            }\n            else {\n                // otherwise focus first\n                resetFocusTo('first');\n            }\n        }\n        return {\n            focusableStartRef,\n            focusableEndRef,\n            focusableStyle: 'position: absolute; height: 0; width: 0;',\n            handleStartFocus,\n            handleEndFocus\n        };\n    },\n    render() {\n        const { default: defaultSlot } = this.$slots;\n        if (defaultSlot === undefined)\n            return null;\n        if (this.disabled)\n            return defaultSlot();\n        const { active, focusableStyle } = this;\n        return h(Fragment, null, [\n            h('div', {\n                'aria-hidden': 'true',\n                tabindex: active ? '0' : '-1',\n                ref: 'focusableStartRef',\n                style: focusableStyle,\n                onFocus: this.handleStartFocus\n            }),\n            defaultSlot(),\n            h('div', {\n                'aria-hidden': 'true',\n                style: focusableStyle,\n                ref: 'focusableEndRef',\n                tabindex: active ? '0' : '-1',\n                onFocus: this.handleEndFocus\n            })\n        ]);\n    }\n});\n","import type { Ref } from 'vue'\nimport { onBeforeUnmount, onMounted, watch } from 'vue'\nimport { resizeObserverManager } from 'vueuc'\n\nexport function useOnResize(\n  elRef: Ref<HTMLElement | null>,\n  onResize: (() => void) | undefined\n): void {\n  // it needn't be reactive since it's for internal usage\n  if (onResize) {\n    onMounted(() => {\n      const { value: el } = elRef\n      if (el) {\n        resizeObserverManager.registerHandler(el, onResize)\n      }\n    })\n\n    // avoid memory leak\n    watch(\n      elRef,\n      (_, oldEl) => {\n        if (oldEl) {\n          resizeObserverManager.unregisterHandler(oldEl)\n        }\n      },\n      {\n        deep: false\n      }\n    )\n\n    onBeforeUnmount(() => {\n      const { value: el } = elRef\n      if (el) {\n        resizeObserverManager.unregisterHandler(el)\n      }\n    })\n  }\n}\n","export function color2Class(color: string): string {\n  return color.replace(/#|\\(|\\)|,|\\s|\\./g, '_')\n}\n","const pureNumberRegex = /^(\\d|\\.)+$/\nconst numberRegex = /(\\d|\\.)+/\n\ninterface FormatLengthOptions {\n  c?: number\n  offset?: number\n  attachPx?: boolean\n}\n\nexport function formatLength<\n  T extends number | string | null | undefined | any\n>(\n  length: T,\n  { c = 1, offset = 0, attachPx = true }: FormatLengthOptions = {}\n): T extends null\n  ? null\n  : T extends undefined\n    ? undefined\n    : T extends string | number\n      ? string\n      : T {\n  if (typeof length === 'number') {\n    const result = (length + offset) * c\n    if (result === 0)\n      return '0' as any\n    return `${result}px` as any\n  }\n  else if (typeof length === 'string') {\n    if (pureNumberRegex.test(length)) {\n      const result = (Number(length) + offset) * c\n      if (attachPx) {\n        if (result === 0)\n          return '0' as any\n        return `${result}px` as any\n      }\n      else {\n        return `${result}` as any\n      }\n    }\n    else {\n      const result = numberRegex.exec(length)\n      if (!result)\n        return length as any\n      return length.replace(\n        numberRegex,\n        String((Number(result[0]) + offset) * c)\n      ) as any\n    }\n  }\n  return length as any\n}\n","import { getPadding } from 'seemly'\n\nexport function rtlInset(inset: string): string {\n  const { left, right, top, bottom } = getPadding(inset)\n  return `${top} ${left} ${bottom} ${right}`\n}\n","export function download(url: string | null, name: string | undefined): void {\n  if (!url)\n    return\n  const a = document.createElement('a')\n  a.href = url\n  if (name !== undefined) {\n    a.download = name\n  }\n  document.body.appendChild(a)\n  a.click()\n  document.body.removeChild(a)\n}\n\nexport function publicDownload(url: string, name: string | undefined): void {\n  download(url, name)\n}\n","export function isDocument(node: Node): node is Document {\n  return node.nodeName === '#document'\n}\n","let _isJsdom: boolean | undefined\n\nexport function isJsdom(): boolean {\n  if (_isJsdom === undefined) {\n    _isJsdom\n      = navigator.userAgent.includes('Node.js')\n        || navigator.userAgent.includes('jsdom')\n  }\n  return _isJsdom\n}\n","const eventSet = new WeakSet<Event>()\n\nexport function markEventEffectPerformed(event: Event): void {\n  eventSet.add(event)\n}\n\nexport function eventEffectNotPerformed(event: Event): boolean {\n  return !eventSet.has(event)\n}\n","import type { HTMLAttributes } from 'vue'\n\nexport function getTitleAttribute(value: unknown): HTMLAttributes['title'] {\n  switch (typeof value) {\n    case 'string':\n      // The empty string should also be reset to undefined.\n      return value || undefined\n    case 'number':\n      return String(value)\n    default:\n      return undefined\n  }\n}\n","const smallerSizeMap = {\n  tiny: 'mini',\n  small: 'tiny',\n  medium: 'small',\n  large: 'medium',\n  huge: 'large'\n} as const\n\nconst largerSizeMap = {\n  tiny: 'small',\n  small: 'medium',\n  medium: 'large',\n  large: 'huge'\n} as const\n\ntype SmallerSizeMap = typeof smallerSizeMap\ntype SmallerSize = keyof SmallerSizeMap\n\ntype LargerSizeMap = typeof largerSizeMap\ntype LargerSize = keyof LargerSizeMap\n\nexport function largerSize<T extends LargerSize>(size: T): LargerSizeMap[T] {\n  const result = largerSizeMap[size]\n\n  if (result === undefined) {\n    throw new Error(`${size} has no larger size.`)\n  }\n\n  return result\n}\n\nexport function smallerSize<T extends SmallerSize>(size: T): SmallerSizeMap[T] {\n  const result = smallerSizeMap[size]\n\n  if (result === undefined) {\n    throw new Error(`${size} has no smaller size.`)\n  }\n\n  return result\n}\n","export function isArrayShallowEqual<T extends Array<any>>(\n  array1: T | null,\n  array2: T | null\n): boolean {\n  if (array1 === null && array2 === null)\n    return true\n  if (array1 === null || array2 === null)\n    return false\n  if (array1.length === array2.length) {\n    for (let i = 0; i < array1.length; ++i) {\n      if (array1[i] !== array2[i]) {\n        return false\n      }\n    }\n    return true\n  }\n  return false\n}\n","const warnedMessages = new Set()\n\nexport function warnOnce(location: string, message: string): void {\n  const mergedMessage = `[naive/${location}]: ${message}`\n  if (warnedMessages.has(mergedMessage))\n    return\n  warnedMessages.add(mergedMessage)\n  console.error(mergedMessage)\n}\n\nexport function warn(location: string, message: string): void {\n  console.error(`[naive/${location}]: ${message}`)\n}\n\nexport function error(location: string, message: string, error: unknown): void {\n  console.error(`[naive/${location}]: ${message}`, error)\n}\n\nexport function throwError(location: string, message: string): never {\n  throw new Error(`[naive/${location}]: ${message}`)\n}\n","type AnyFunction = (...args: any[]) => any\n\nfunction call(funcs: MaybeArray<() => void>): void\nfunction call<A1>(funcs: MaybeArray<(a1: A1) => void>, a1: A1): void\nfunction call<A1, A2>(\n  funcs: MaybeArray<(a1: A1, a2: A2) => void>,\n  a1: A1,\n  a2: A2\n): void\nfunction call<A1, A2, A3>(\n  funcs: MaybeArray<(a1: A1, a2: A2, a3: A3) => void>,\n  a1: A1,\n  a2: A2,\n  a3: A3\n): void\nfunction call<A1, A2, A3, A4>(\n  funcs: MaybeArray<(a1: A1, a2: A2, a3: A3, a4: A4) => void>,\n  a1: A1,\n  a2: A2,\n  a3: A3,\n  a4: A4\n): void\nfunction call<A extends any[]>(\n  funcs: AnyFunction[] | AnyFunction,\n  ...args: A\n): void {\n  if (Array.isArray(funcs)) {\n    funcs.forEach(func => (call as any)(func, ...args))\n  }\n  else {\n    return funcs(...args)\n  }\n}\n\nexport { call }\n\nexport type MaybeArray<T> = T | T[]\n","export function createDataKey(key: string | number): string {\n  return typeof key === 'string' ? `s-${key}` : `n-${key}`\n}\n","import type { Ref } from 'vue'\n\nexport function createRefSetter(ref: Ref<HTMLElement | null>): any {\n  return (inst: { $el: HTMLElement | null } | null) => {\n    if (inst) {\n      ref.value = inst.$el\n    }\n    else {\n      ref.value = null\n    }\n  }\n}\n","import type { VNode, VNodeChild } from 'vue'\nimport { Comment, createTextVNode, Fragment } from 'vue'\n\n// o(n) flatten\nexport function flatten(\n  vNodes: VNodeChild[],\n  filterCommentNode: boolean = true,\n  result: VNode[] = []\n): VNode[] {\n  vNodes.forEach((vNode) => {\n    if (vNode === null)\n      return\n    if (typeof vNode !== 'object') {\n      if (typeof vNode === 'string' || typeof vNode === 'number') {\n        result.push(createTextVNode(String(vNode)))\n      }\n      return\n    }\n    if (Array.isArray(vNode)) {\n      flatten(vNode, filterCommentNode, result)\n      return\n    }\n    if (vNode.type === Fragment) {\n      if (vNode.children === null)\n        return\n      if (Array.isArray(vNode.children)) {\n        flatten(vNode.children, filterCommentNode, result)\n      }\n      // rawSlot\n    }\n    else {\n      if (vNode.type === Comment && filterCommentNode)\n        return\n      result.push(vNode)\n    }\n  })\n  return result\n}\n","import type { Slots, VNode } from 'vue'\nimport { warn } from '../naive'\nimport { flatten } from './flatten'\n\nexport function getFirstSlotVNode(\n  slots: Slots,\n  slotName = 'default',\n  props: unknown = undefined\n): VNode | null {\n  const slot = slots[slotName]\n  if (!slot) {\n    warn('getFirstSlotVNode', `slot[${slotName}] is empty`)\n    return null\n  }\n  const slotContent = flatten(slot(props))\n  // vue will normalize the slot, so slot must be an array\n  if (slotContent.length === 1) {\n    return slotContent[0]\n  }\n  else {\n    warn('getFirstSlotVNode', `slot[${slotName}] should have exactly one child`)\n    return null\n  }\n}\n\nexport function getFirstSlotVNodeWithTypedProps<T>(\n  slotName: string,\n  slot: ((props: T) => VNode[]) | undefined,\n  props: T\n): VNode | null {\n  if (!slot) {\n    return null\n  }\n  const slotContent = flatten(slot(props))\n  // vue will normalize the slot, so slot must be an array\n  if (slotContent.length === 1) {\n    return slotContent[0]\n  }\n  else {\n    warn('getFirstSlotVNode', `slot[${slotName}] should have exactly one child`)\n    return null\n  }\n}\n","import type { ComponentPublicInstance, VNodeChild } from 'vue'\n\nexport function getSlot(\n  instance: ComponentPublicInstance,\n  slotName = 'default',\n  fallback: VNodeChild[] = []\n): VNodeChild[] {\n  const slots = instance.$slots\n  const slot = slots[slotName]\n  if (slot === undefined)\n    return fallback\n  return slot()\n}\n","import type { VNode } from 'vue'\n\nexport function getVNodeChildren(\n  vNode: VNode,\n  slotName = 'default',\n  fallback: VNode[] = []\n): VNode[] {\n  const { children } = vNode\n  if (\n    children !== null\n    && typeof children === 'object'\n    && !Array.isArray(children)\n  ) {\n    const slot = children[slotName]\n    if (typeof slot === 'function') {\n      return slot()\n    }\n  }\n  return fallback\n}\n","import type { VNode } from 'vue'\nimport { vShow } from 'vue'\n\nexport function isNodeVShowFalse(vNode: VNode): boolean {\n  const showDir = vNode.dirs?.find(({ dir }) => dir === vShow)\n  return !!(showDir && showDir.value === false)\n}\n","export function keep<T, K, R>(\n  object: T,\n  keys: K[] = [],\n  rest?: R\n): Pick<T, K & keyof T> & R {\n  const keepedObject: any = {}\n  keys.forEach((key) => {\n    keepedObject[key] = (object as any)[key]\n  })\n  return Object.assign(keepedObject, rest)\n}\n","export function keysOf<T extends Record<string, unknown>>(\n  obj: T\n): Array<keyof T> {\n  return Object.keys(obj) as any\n}\n","export function mergeEventHandlers<T>(\n  handlers: Array<undefined | ((e: T) => void)>\n): undefined | ((e: T) => void) {\n  const filteredHandlers = handlers.filter(handler => handler !== undefined)\n  if (filteredHandlers.length === 0)\n    return undefined\n  if (filteredHandlers.length === 1)\n    return filteredHandlers[0]\n  return (e) => {\n    handlers.forEach((handler) => {\n      if (handler) {\n        handler(e)\n      }\n    })\n  }\n}\n","export function omit<T, K extends keyof T, R extends Record<string, any>>(\n  object: T,\n  keys: K[] = [],\n  rest?: R\n): Omit<T, K> & (R extends undefined ? Record<string, unknown> : R) {\n  const omitedObject: any = {}\n  const originalKeys = Object.getOwnPropertyNames(object)\n  originalKeys.forEach((originalKey) => {\n    if (!(keys as string[]).includes(originalKey)) {\n      omitedObject[originalKey] = object[originalKey as keyof T]\n    }\n  })\n  return Object.assign(omitedObject, rest)\n}\n","import type { VNodeChild } from 'vue'\nimport { createTextVNode } from 'vue'\n\nexport function render<T extends any[]>(\n  r:\n    | string\n    | number\n    | undefined\n    | null\n    | ((...args: [...T]) => VNodeChild)\n    | unknown,\n  ...args: [...T]\n): VNodeChild {\n  if (typeof r === 'function') {\n    return r(...args)\n  }\n  else if (typeof r === 'string') {\n    return createTextVNode(r)\n  }\n  else if (typeof r === 'number') {\n    return createTextVNode(String(r))\n  }\n  else {\n    return null\n  }\n}\n","import type { Slot, VNodeArrayChildren, VNodeChild } from 'vue'\nimport { Comment, Fragment, isVNode } from 'vue'\n\nexport function ensureValidVNode(\n  vnodes: VNodeArrayChildren\n): VNodeArrayChildren | null {\n  return vnodes.some((child) => {\n    if (!isVNode(child)) {\n      return true\n    }\n    if (child.type === Comment) {\n      return false\n    }\n    if (\n      child.type === Fragment\n      && !ensureValidVNode(child.children as VNodeArrayChildren)\n    ) {\n      return false\n    }\n    return true\n  })\n    ? vnodes\n    : null\n}\n\n/**\n * We shouldn't use the following functions with slot flags `_: 1, 2, 3`\n */\nexport function resolveSlot(\n  slot: Slot | undefined,\n  fallback: () => VNodeArrayChildren\n): VNodeArrayChildren {\n  return (slot && ensureValidVNode(slot())) || fallback()\n}\n\nexport function resolveSlotWithTypedProps<T>(\n  slot: Slot<T> | undefined,\n  props: T,\n  fallback: (props: T) => VNodeArrayChildren\n): VNodeArrayChildren {\n  return (slot && ensureValidVNode(slot(props))) || fallback(props)\n}\n\n/**\n * Resolve slot with wrapper if content exists, no fallback\n */\nexport function resolveWrappedSlot(\n  slot: Slot | undefined,\n  wrapper: (children: VNodeArrayChildren | null) => VNodeChild\n): VNodeChild {\n  const children = slot && ensureValidVNode(slot())\n  return wrapper(children || null)\n}\n\n/*\n * Resolve slot with wrapper if content exists, no fallback\n */\nexport function resolveWrappedSlotWithProps(\n  slot: Slot | undefined,\n  props: any,\n  wrapper: (children: VNodeArrayChildren | null) => VNodeChild\n): VNodeChild {\n  const children = slot && ensureValidVNode(slot(props))\n  return wrapper(children || null)\n}\n\nexport function isSlotEmpty(slot: Slot | undefined): boolean {\n  return !(slot && ensureValidVNode(slot()))\n}\n","import { defineComponent } from 'vue'\n\nexport const Wrapper = defineComponent({\n  render() {\n    return this.$slots.default?.()\n  }\n})\n","import type { ConfigProviderInjection } from './internal-interface'\nimport { createInjectionKey } from '../../_utils'\n\nexport const configProviderInjectionKey\n  = createInjectionKey<ConfigProviderInjection>('n-config-provider')\n","import type { ComputedRef, Ref } from 'vue'\nimport type {\n  Breakpoints,\n  GlobalComponentConfig,\n  RtlEnabledState\n} from '../config-provider/src/internal-interface'\nimport { computed, inject, shallowRef } from 'vue'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\n\ntype UseConfigProps = Readonly<{\n  bordered?: boolean\n  [key: string]: unknown\n}>\n\nexport const defaultClsPrefix = 'n'\n\nexport default function useConfig(\n  props: UseConfigProps = {},\n  options: {\n    defaultBordered?: boolean\n  } = {\n    defaultBordered: true\n  }\n): {\n  inlineThemeDisabled: boolean | undefined\n  mergedRtlRef: Ref<RtlEnabledState | undefined> | undefined\n  mergedBorderedRef: ComputedRef<boolean>\n  mergedClsPrefixRef: Ref<string>\n  mergedBreakpointsRef: Ref<Breakpoints> | undefined\n  mergedComponentPropsRef: Ref<GlobalComponentConfig | undefined> | undefined\n  namespaceRef: ComputedRef<string | undefined>\n} {\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  return {\n    // NConfigProvider,\n    inlineThemeDisabled: NConfigProvider?.inlineThemeDisabled,\n    mergedRtlRef: NConfigProvider?.mergedRtlRef,\n    mergedComponentPropsRef: NConfigProvider?.mergedComponentPropsRef,\n    mergedBreakpointsRef: NConfigProvider?.mergedBreakpointsRef,\n    mergedBorderedRef: computed(() => {\n      const { bordered } = props\n      if (bordered !== undefined)\n        return bordered\n      return (\n        NConfigProvider?.mergedBorderedRef.value\n        ?? options.defaultBordered\n        ?? true\n      )\n    }),\n    mergedClsPrefixRef: NConfigProvider\n      ? NConfigProvider.mergedClsPrefixRef\n      : shallowRef(defaultClsPrefix),\n    namespaceRef: computed(() => NConfigProvider?.mergedNamespaceRef.value)\n  }\n}\n\nexport function useMergedClsPrefix(): Ref<string> {\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  return NConfigProvider\n    ? NConfigProvider.mergedClsPrefixRef\n    : shallowRef(defaultClsPrefix)\n}\n","import type { ComputedRef, Ref } from 'vue'\nimport { useSsrAdapter } from '@css-render/vue3-ssr'\nimport { hash } from 'css-render'\nimport { inject, ref, watchEffect } from 'vue'\nimport { throwError } from '../_utils'\nimport { c } from '../_utils/cssr'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\n\nexport function useThemeClass(\n  componentName: string,\n  hashRef: Ref<string> | undefined,\n  cssVarsRef: ComputedRef<Record<string, string>> | undefined,\n  props: { themeOverrides?: unknown, builtinThemeOverrides?: unknown }\n): {\n  themeClass: Ref<string>\n  onRender: () => void\n} {\n  if (!cssVarsRef)\n    throwError('useThemeClass', 'cssVarsRef is not passed')\n\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n\n  const mergedThemeHashRef = NConfigProvider?.mergedThemeHashRef\n  const styleMountTarget = NConfigProvider?.styleMountTarget\n\n  const themeClassRef = ref('')\n\n  const ssrAdapter = useSsrAdapter()\n\n  let renderCallback: (() => void) | undefined\n\n  const hashClassPrefix = `__${componentName}`\n  const mountStyle = (): void => {\n    let finalThemeHash = hashClassPrefix\n    const hashValue = hashRef ? hashRef.value : undefined\n    const themeHash = mergedThemeHashRef?.value\n    if (themeHash)\n      finalThemeHash += `-${themeHash}`\n    if (hashValue)\n      finalThemeHash += `-${hashValue}`\n    const { themeOverrides, builtinThemeOverrides } = props\n    if (themeOverrides) {\n      finalThemeHash += `-${hash(JSON.stringify(themeOverrides))}`\n    }\n    if (builtinThemeOverrides) {\n      finalThemeHash += `-${hash(JSON.stringify(builtinThemeOverrides))}`\n    }\n    themeClassRef.value = finalThemeHash\n    renderCallback = () => {\n      const cssVars = cssVarsRef.value\n      let style = ''\n      for (const key in cssVars) {\n        style += `${key}: ${cssVars[key]};`\n      }\n      c(`.${finalThemeHash}`, style).mount({\n        id: finalThemeHash,\n        ssr: ssrAdapter,\n        parent: styleMountTarget\n      })\n      renderCallback = undefined\n    }\n  }\n\n  watchEffect(() => {\n    mountStyle()\n  })\n\n  return {\n    themeClass: themeClassRef,\n    onRender: () => {\n      renderCallback?.()\n    }\n  }\n}\n","import type { ComputedRef, Ref } from 'vue'\nimport type {\n  FormItemSize,\n  FormValidationStatus\n} from '../form/src/public-types'\nimport { computed, inject, onBeforeUnmount, provide } from 'vue'\nimport { createInjectionKey } from '../_utils'\n\ntype AllowedSize = 'tiny' | 'small' | 'medium' | 'large' | 'huge' | number\n\nexport interface FormItemInjection {\n  path: Ref<string | undefined>\n  disabled: Ref<boolean>\n  mergedSize: ComputedRef<FormItemSize>\n  mergedValidationStatus: ComputedRef<FormValidationStatus | undefined>\n  restoreValidation: () => void\n  handleContentBlur: () => void\n  handleContentFocus: () => void\n  handleContentInput: () => void\n  handleContentChange: () => void\n}\n\nexport const formItemInjectionKey\n  = createInjectionKey<FormItemInjection | null>('n-form-item')\n\ninterface UseFormItemOptions<T> {\n  defaultSize?: FormItemSize\n  mergedSize?: (formItem: FormItemInjection | null) => T\n  mergedDisabled?: (formItem: FormItemInjection | null) => boolean\n}\n\ninterface UseFormItemProps<T> {\n  size?: T\n  disabled?: boolean\n  status?: FormValidationStatus\n}\n\nexport interface UseFormItem<T> {\n  mergedSizeRef: ComputedRef<T>\n  mergedDisabledRef: ComputedRef<boolean>\n  mergedStatusRef: ComputedRef<FormValidationStatus | undefined>\n  nTriggerFormBlur: () => void\n  nTriggerFormChange: () => void\n  nTriggerFormFocus: () => void\n  nTriggerFormInput: () => void\n}\n\nexport default function useFormItem<T extends AllowedSize = FormItemSize>(\n  props: UseFormItemProps<T>,\n  {\n    defaultSize = 'medium',\n    mergedSize,\n    mergedDisabled\n  }: UseFormItemOptions<T> = {}\n): UseFormItem<T> {\n  const NFormItem = inject(formItemInjectionKey, null)\n  provide(formItemInjectionKey, null)\n  const mergedSizeRef = computed(\n    mergedSize\n      ? () => mergedSize(NFormItem)\n      : () => {\n          const { size } = props\n          if (size)\n            return size\n          if (NFormItem) {\n            const { mergedSize } = NFormItem\n            if (mergedSize.value !== undefined) {\n              return mergedSize.value as T\n            }\n          }\n          return defaultSize as T\n        }\n  )\n  const mergedDisabledRef = computed(\n    mergedDisabled\n      ? () => mergedDisabled(NFormItem)\n      : () => {\n          const { disabled } = props\n          if (disabled !== undefined) {\n            return disabled\n          }\n          if (NFormItem) {\n            return NFormItem.disabled.value\n          }\n          return false\n        }\n  )\n  const mergedStatusRef = computed<FormValidationStatus | undefined>(() => {\n    const { status } = props\n    if (status)\n      return status\n    return NFormItem?.mergedValidationStatus.value\n  })\n  onBeforeUnmount(() => {\n    if (NFormItem) {\n      NFormItem.restoreValidation()\n    }\n  })\n  return {\n    mergedSizeRef,\n    mergedDisabledRef,\n    mergedStatusRef,\n    nTriggerFormBlur() {\n      if (NFormItem) {\n        NFormItem.handleContentBlur()\n      }\n    },\n    nTriggerFormChange() {\n      if (NFormItem) {\n        NFormItem.handleContentChange()\n      }\n    },\n    nTriggerFormFocus() {\n      if (NFormItem) {\n        NFormItem.handleContentFocus()\n      }\n    },\n    nTriggerFormInput() {\n      if (NFormItem) {\n        NFormItem.handleContentInput()\n      }\n    }\n  }\n}\n","import type { HLJSApi } from 'highlight.js'\nimport type { ComputedRef, Ref } from 'vue'\nimport { computed, inject, watchEffect } from 'vue'\nimport { warn } from '../_utils'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\n\ninterface UseHljsProps {\n  hljs?: unknown\n  [key: string]: unknown\n}\n\nexport interface Hljs {\n  highlight: HLJSApi['highlight']\n  getLanguage: HLJSApi['getLanguage']\n}\nexport default function useHljs(\n  props: UseHljsProps,\n  shouldHighlightRef?: Ref<boolean>\n): ComputedRef<Hljs | undefined> {\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  if (__DEV__) {\n    const warnHljs = (): void => {\n      if (!props.hljs && !NConfigProvider?.mergedHljsRef.value) {\n        warn('code', 'hljs is not set.')\n      }\n    }\n    if (!shouldHighlightRef) {\n      warnHljs()\n    }\n    else {\n      watchEffect(() => {\n        if (shouldHighlightRef.value) {\n          warnHljs()\n        }\n      })\n    }\n  }\n  return computed(() => {\n    return (props.hljs as any) || NConfigProvider?.mergedHljsRef.value\n  })\n}\n","import type { NLocale } from './enUS'\n\nconst afZA: NLocale = {\n  name: 'af-ZA',\n  global: {\n    undo: 'Ontdoen',\n    redo: 'Herdoen',\n    confirm: 'Bevestig',\n    clear: 'Maak skoon'\n  },\n  Popconfirm: {\n    positiveText: 'Bevestig',\n    negativeText: 'Kanselleer'\n  },\n  Cascader: {\n    placeholder: 'Kies asseblief',\n    loading: 'Laai tans',\n    loadingRequiredMessage: (label: string): string =>\n      `Laai asseblief al ${label} se afstammelinge voordat u dit kies.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Maak skoon',\n    now: 'Nou',\n    confirm: 'Bevestig',\n    selectTime: 'Kies tyd',\n    selectDate: 'Kies datum',\n    datePlaceholder: 'Kies datum',\n    datetimePlaceholder: 'Kies datum en tyd',\n    monthPlaceholder: 'Kies maand',\n    yearPlaceholder: 'Kies jaar',\n    quarterPlaceholder: 'Kies kwartaal',\n    weekPlaceholder: 'Kies week',\n    startDatePlaceholder: 'Begindatum',\n    endDatePlaceholder: 'Einddatum',\n    startDatetimePlaceholder: 'Begin datum en tyd',\n    endDatetimePlaceholder: 'Eind datum en tyd',\n    startMonthPlaceholder: 'Beginmaand',\n    endMonthPlaceholder: 'Eindmaand',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Vandag'\n  },\n  DataTable: {\n    checkTableAll: 'Kies alles in die tabel',\n    uncheckTableAll: 'Ontkies alles in die tabel',\n    confirm: 'Bevestig',\n    clear: 'Maak skoon'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Bron',\n    targetTitle: 'Teiken'\n  },\n  Transfer: {\n    selectAll: 'Kies alles',\n    unselectAll: 'Ontkies alles',\n    clearAll: 'Maak skoon',\n    total: (num: number): string => `Totaal ${num} items`,\n    selected: (num: number): string => `${num} items gekies`\n  },\n  Empty: {\n    description: 'Geen data'\n  },\n  Select: {\n    placeholder: 'Kies asseblief'\n  },\n  TimePicker: {\n    placeholder: 'Kies tyd',\n    positiveText: 'OK',\n    negativeText: 'Kanselleer',\n    now: 'Nou',\n    clear: 'Maak skoon'\n  },\n  Pagination: {\n    goto: 'Gaan na',\n    selectionSuffix: 'bladsy'\n  },\n  DynamicTags: {\n    add: 'Voeg by'\n  },\n  Log: {\n    loading: 'Laai tans'\n  },\n  Input: {\n    placeholder: 'Voer asseblief in'\n  },\n  InputNumber: {\n    placeholder: 'Voer asseblief in'\n  },\n  DynamicInput: {\n    create: 'Skep'\n  },\n  ThemeEditor: {\n    title: 'Tema-redigeerder',\n    clearAllVars: 'Vee alle veranderlikes uit',\n    clearSearch: 'Maak soektog skoon',\n    filterCompName: 'Filter komponentnaam',\n    filterVarName: 'Filter veranderlikenaam',\n    import: 'Voer in',\n    export: 'Voer uit',\n    restore: 'Herstel na verstek'\n  },\n  Image: {\n    tipPrevious: 'Vorige prent (←)',\n    tipNext: 'Volgende prent (→)',\n    tipCounterclockwise: 'Teen die kloksgewys',\n    tipClockwise: 'Kloksgewys',\n    tipZoomOut: 'Zoem uit',\n    tipZoomIn: 'Zoem in',\n    tipDownload: 'Aflaai',\n    tipClose: 'Sluit (Esc)',\n    tipOriginalSize: 'Zoem na oorspronklike grootte'\n  },\n  Heatmap: {\n    less: 'minder',\n    more: 'meer',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default afZA\n","import type { NLocale } from './enUS'\n\nconst amET: NLocale = {\n  name: 'am-ET',\n  global: {\n    undo: 'ቀልብስ',\n    redo: 'ድገም',\n    confirm: 'አረጋግጥ',\n    clear: 'አጽዳ'\n  },\n  Popconfirm: {\n    positiveText: 'አረጋግጥ',\n    negativeText: 'ሰርዝ'\n  },\n  Cascader: {\n    placeholder: 'እባክዎ ይምረጡ',\n    loading: 'በመጫን ላይ',\n    loadingRequiredMessage: (label: string): string =>\n      `ከመምረጥዎ በፊት የ${label}ን ሁሉንም ልጆች ይጫኑ።`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'አጽዳ',\n    now: 'አሁን',\n    confirm: 'አረጋግጥ',\n    selectTime: 'ሰዓት ይምረጡ',\n    selectDate: 'ቀን ይምረጡ',\n    datePlaceholder: 'ቀን ይምረጡ',\n    datetimePlaceholder: 'ቀን እና ሰዓት ይምረጡ',\n    monthPlaceholder: 'ወር ይምረጡ',\n    yearPlaceholder: 'ዓመት ይምረጡ',\n    quarterPlaceholder: 'ሩብ ዓመት ይምረጡ',\n    weekPlaceholder: 'ሳምንት ይምረጡ',\n    startDatePlaceholder: 'መጀመሪያ ቀን',\n    endDatePlaceholder: 'መጨረሻ ቀን',\n    startDatetimePlaceholder: 'መጀመሪያ ቀን እና ሰዓት',\n    endDatetimePlaceholder: 'መጨረሻ ቀን እና ሰዓት',\n    startMonthPlaceholder: 'መጀመሪያ ወር',\n    endMonthPlaceholder: 'መጨረሻ ወር',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ዛሬ'\n  },\n  DataTable: {\n    checkTableAll: 'በሰንጠረዡ ሁሉንም ምረጥ',\n    uncheckTableAll: 'በሰንጠረዡ ሁሉንም አንሳ',\n    confirm: 'አረጋግጥ',\n    clear: 'አጽዳ'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ምንጭ',\n    targetTitle: 'መድረሻ'\n  },\n  Transfer: {\n    selectAll: 'ሁሉንም ምረጥ',\n    unselectAll: 'ሁሉንም አንሳ',\n    clearAll: 'አጽዳ',\n    total: (num: number): string => `በጠቅላላ ${num} ንጥሎች`,\n    selected: (num: number): string => `${num} ንጥሎች ተመርጠዋል`\n  },\n  Empty: {\n    description: 'መረጃ የለም'\n  },\n  Select: {\n    placeholder: 'እባክዎ ይምረጡ'\n  },\n  TimePicker: {\n    placeholder: 'ሰዓት ይምረጡ',\n    positiveText: 'እሺ',\n    negativeText: 'ሰርዝ',\n    now: 'አሁን',\n    clear: 'አጽዳ'\n  },\n  Pagination: {\n    goto: 'ሂድ ወደ',\n    selectionSuffix: 'ገጽ'\n  },\n  DynamicTags: {\n    add: 'ጨምር'\n  },\n  Log: {\n    loading: 'በመጫን ላይ'\n  },\n  Input: {\n    placeholder: 'እባክዎ ያስገቡ'\n  },\n  InputNumber: {\n    placeholder: 'እባክዎ ያስገቡ'\n  },\n  DynamicInput: {\n    create: 'ፍጠር'\n  },\n  ThemeEditor: {\n    title: 'የገጽታ አርታኢ',\n    clearAllVars: 'ሁሉንም ተለዋዋጮች አጽዳ',\n    clearSearch: 'ፍለጋን አጽዳ',\n    filterCompName: 'የአካል ስም አጣራ',\n    filterVarName: 'የተለዋዋጭ ስም አጣራ',\n    import: 'አስመጣ',\n    export: 'ወደ ውጭ ላክ',\n    restore: 'ወደ ነባሪ መልስ'\n  },\n  Image: {\n    tipPrevious: 'ቀዳሚ ምስል (←)',\n    tipNext: 'ቀጣይ ምስል (→)',\n    tipCounterclockwise: 'ከሰዓት በተቃራኒ',\n    tipClockwise: 'ከሰዓት አቅጣጫ',\n    tipZoomOut: 'አሳንስ',\n    tipZoomIn: 'አጉላ',\n    tipDownload: 'አውርድ',\n    tipClose: 'ዝጋ (Esc)',\n    tipOriginalSize: 'ወደ ኦሪጂናል መጠን አጉላ'\n  },\n  Heatmap: {\n    less: 'ያነሰ',\n    more: 'ተጨማሪ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default amET\n","import type { NLocale } from './enUS'\n\nconst arDZ: NLocale = {\n  name: 'ar-DZ',\n  global: {\n    undo: 'تراجع',\n    redo: 'إعادة',\n    confirm: 'تأكيد',\n    clear: 'مسح'\n  },\n  Popconfirm: {\n    positiveText: 'تأكيد',\n    negativeText: 'إلغاء'\n  },\n  Cascader: {\n    placeholder: 'يرجى التحديد',\n    loading: 'جاري التحميل',\n    loadingRequiredMessage: (label: string): string =>\n      `يرجى تحميل جميع الـ ${label} الفرعية قبل التحقق منها.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'مسح',\n    now: 'الآن',\n    confirm: 'تأكيد',\n    selectTime: 'إختيار الوقت',\n    selectDate: 'إختيار التاريخ',\n    datePlaceholder: 'إختيار التاريخ',\n    datetimePlaceholder: 'إختيار التاريخ والوقت',\n    monthPlaceholder: 'إختيار الشهر',\n    yearPlaceholder: 'إختيار السنة',\n    quarterPlaceholder: 'إختيار الربع',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'تاريخ البدء',\n    endDatePlaceholder: 'تاريخ الإنتهاء',\n    startDatetimePlaceholder: 'تاريخ ووقت البدء',\n    endDatetimePlaceholder: 'تاريخ ووقت الإنتهاء',\n    startMonthPlaceholder: 'شهر البدء',\n    endMonthPlaceholder: 'شهر الإنتهاء',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'اليوم'\n  },\n  DataTable: {\n    checkTableAll: 'تحديد كل العناصر في الجدول',\n    uncheckTableAll: 'إلغاء تحديد كل العناصر في الجدول',\n    confirm: 'تأكيد',\n    clear: 'مسح'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'المصدر',\n    targetTitle: 'الهدف'\n  },\n  Transfer: {\n    selectAll: 'تحديد الكل',\n    unselectAll: 'إلغاء تحديد الكل',\n    clearAll: 'مسح',\n    total: (num: number): string => `إجمالي ${num} عنصر`,\n    selected: (num: number): string => `${num} عنصر محدد`\n  },\n  Empty: {\n    description: 'لا توجد بيانات'\n  },\n  Select: {\n    placeholder: 'يرجى الإختيار'\n  },\n  TimePicker: {\n    placeholder: 'إختيار الوقت',\n    positiveText: 'تأكيد',\n    negativeText: 'إلغاء',\n    now: 'الآن',\n    clear: 'مسح'\n  },\n  Pagination: {\n    goto: 'إذهب إلى',\n    selectionSuffix: 'صفحة'\n  },\n  DynamicTags: {\n    add: 'إضافة'\n  },\n  Log: {\n    loading: 'جاري التحميل'\n  },\n  Input: {\n    placeholder: 'يرجى الإدخال'\n  },\n  InputNumber: {\n    placeholder: 'يرجى الإدخال'\n  },\n  DynamicInput: {\n    create: 'إنشاء'\n  },\n  ThemeEditor: {\n    title: 'محرر النمط',\n    clearAllVars: 'مسح جميع المتغيرات',\n    clearSearch: 'مسح البحث',\n    filterCompName: 'تصفية إسم المكون',\n    filterVarName: 'تصفية إسم المتغير',\n    import: 'إستيراد',\n    export: 'تصدير',\n    restore: 'إعادة تعيين إلى الإفتراضي'\n  },\n  Image: {\n    tipPrevious: '(→) الصورة السابقة',\n    tipNext: '(←) الصورة التالية',\n    tipCounterclockwise: 'عكس عقارب الساعة',\n    tipClockwise: 'إتجاه عقارب الساعة',\n    tipZoomOut: 'تكبير',\n    tipZoomIn: 'تصغير',\n    tipDownload: 'للتحميل',\n    tipClose: 'إغلاق (Esc زر)',\n    tipOriginalSize: 'تكبير إلى الحجم الأصلي'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default arDZ\n","import type { NLocale } from './enUS'\n\nconst azAZ: NLocale = {\n  name: 'az-AZ',\n  global: {\n    undo: 'Geri al',\n    redo: 'Təkrar et',\n    confirm: 'Təsdiqlə',\n    clear: 'Təmizlə'\n  },\n  Popconfirm: {\n    positiveText: 'Təsdiqlə',\n    negativeText: 'İmtina et'\n  },\n  Cascader: {\n    placeholder: 'Zəhmət olmasa, seçin',\n    loading: 'Yüklənir',\n    loadingRequiredMessage: label =>\n      `Zəhmət olmasa, yoxlamadan əvvəl bütün ${label}ləri yükləyin.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'dd MMMM yyyy',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Təmizlə',\n    now: 'İndi',\n    confirm: 'Təsdiqlə',\n    selectTime: 'Vaxtı seçin',\n    selectDate: 'Tarixi seçin',\n    datePlaceholder: 'Tarixi seç',\n    datetimePlaceholder: 'Tarix və vaxtı seçin',\n    monthPlaceholder: 'Ayi seçin',\n    yearPlaceholder: 'İli seçin',\n    quarterPlaceholder: 'Rübu seçin',\n    weekPlaceholder: 'Həftəni seçin',\n    startDatePlaceholder: 'Başlanğıc tarixi',\n    endDatePlaceholder: 'Son tarix',\n    startDatetimePlaceholder: 'Başlanğıc tarixi və vaxtı',\n    endDatetimePlaceholder: 'Bitiş tarixi və vaxtı',\n    startMonthPlaceholder: 'Başlanğıc ayı',\n    endMonthPlaceholder: 'Son ay',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Bu gün'\n  },\n  DataTable: {\n    checkTableAll: 'Bütün cədvəli seç',\n    uncheckTableAll: 'Cədvəldəki bütün seçimləri ləğv et',\n    confirm: 'Təsdiqlə',\n    clear: 'Təmizlə'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Mənbə',\n    targetTitle: 'Hədəf'\n  },\n  Transfer: {\n    selectAll: 'Hamısını seç',\n    unselectAll: 'Hamısını ləğv et',\n    clearAll: 'Təmizlə',\n    total: num => `Cəmi ${num} maddə`,\n    selected: num => `${num} maddə seçildi`\n  },\n  Empty: {\n    description: 'Məlumat yoxdur'\n  },\n  Select: {\n    placeholder: 'Zəhmət olmasa, seçin'\n  },\n  TimePicker: {\n    placeholder: 'Vaxtı seçin',\n    positiveText: 'Təsdiqlə',\n    negativeText: 'İmtina et',\n    now: 'İndi',\n    clear: 'Təmizlə'\n  },\n  Pagination: {\n    goto: 'Get',\n    selectionSuffix: 'səhifə'\n  },\n  DynamicTags: {\n    add: 'Əlavə et'\n  },\n  Log: {\n    loading: 'Yüklənir'\n  },\n  Input: {\n    placeholder: 'Zəhmət olmasa, daxil edin'\n  },\n  InputNumber: {\n    placeholder: 'Zəhmət olmasa, daxil edin'\n  },\n  DynamicInput: {\n    create: 'Yarat'\n  },\n  ThemeEditor: {\n    title: 'Tema redaktoru',\n    clearAllVars: 'Bütün dəyişənləri təmizlə',\n    clearSearch: 'Axtarışı təmizlə',\n    filterCompName: 'Komponent adını filtrlə',\n    filterVarName: 'Dəyişən adını filtrlə',\n    import: 'İdxal et',\n    export: 'İxrac et',\n    restore: 'Varsayılanı bərpa et'\n  },\n  Image: {\n    tipPrevious: 'Əvvəlki şəkil (←)',\n    tipNext: 'Növbəti şəkil (→)',\n    tipCounterclockwise: 'Saat əqrəbinin əksinə',\n    tipClockwise: 'Saat əqrəbinin istiqamətində',\n    tipZoomOut: 'Uzaqlaşdır',\n    tipZoomIn: 'Yaxınlaşdır',\n    tipDownload: 'Yüklə',\n    tipClose: 'Bağla (Esc)',\n    tipOriginalSize: 'Orijinal ölçüyə yaxınlaşdır'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default azAZ\n","import type { NLocale } from './enUS'\n\nconst beBY: NLocale = {\n  name: 'be-BY',\n  global: {\n    undo: 'Адмяніць',\n    redo: 'Паўтарыць',\n    confirm: 'Пацвердзіць',\n    clear: 'Ачысціць'\n  },\n  Popconfirm: {\n    positiveText: 'Пацвердзіць',\n    negativeText: 'Скасаваць'\n  },\n  Cascader: {\n    placeholder: 'Калі ласка, выберыце',\n    loading: 'Загрузка',\n    loadingRequiredMessage: (label: string): string =>\n      `Загрузіце ўсе нашчадкі ${label} перад выбарам.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Ачысціць',\n    now: 'Зараз',\n    confirm: 'Пацвердзіць',\n    selectTime: 'Выбраць час',\n    selectDate: 'Выбраць дату',\n    datePlaceholder: 'Выбраць дату',\n    datetimePlaceholder: 'Выбраць дату і час',\n    monthPlaceholder: 'Выбраць месяц',\n    yearPlaceholder: 'Выбраць год',\n    quarterPlaceholder: 'Выбраць квартал',\n    weekPlaceholder: 'Выбраць тыдзень',\n    startDatePlaceholder: 'Дата пачатку',\n    endDatePlaceholder: 'Дата заканчэння',\n    startDatetimePlaceholder: 'Дата і час пачатку',\n    endDatetimePlaceholder: 'Дата і час заканчэння',\n    startMonthPlaceholder: 'Месяц пачатку',\n    endMonthPlaceholder: 'Месяц заканчэння',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Сёння'\n  },\n  DataTable: {\n    checkTableAll: 'Выбраць усё ў табліцы',\n    uncheckTableAll: 'Зняць выбар з усяго ў табліцы',\n    confirm: 'Пацвердзіць',\n    clear: 'Ачысціць'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Крыніца',\n    targetTitle: 'Прызначэнне'\n  },\n  Transfer: {\n    selectAll: 'Выбраць усё',\n    unselectAll: 'Зняць выбар',\n    clearAll: 'Ачысціць',\n    total: (num: number): string => `Усяго ${num} элементаў`,\n    selected: (num: number): string => `Выбрана ${num} элементаў`\n  },\n  Empty: {\n    description: 'Няма даных'\n  },\n  Select: {\n    placeholder: 'Калі ласка, выберыце'\n  },\n  TimePicker: {\n    placeholder: 'Выбраць час',\n    positiveText: 'ОК',\n    negativeText: 'Скасаваць',\n    now: 'Зараз',\n    clear: 'Ачысціць'\n  },\n  Pagination: {\n    goto: 'Перайсці да',\n    selectionSuffix: 'старонка'\n  },\n  DynamicTags: {\n    add: 'Дадаць'\n  },\n  Log: {\n    loading: 'Загрузка'\n  },\n  Input: {\n    placeholder: 'Калі ласка, увядзіце'\n  },\n  InputNumber: {\n    placeholder: 'Калі ласка, увядзіце'\n  },\n  DynamicInput: {\n    create: 'Стварыць'\n  },\n  ThemeEditor: {\n    title: 'Рэдактар тэмы',\n    clearAllVars: 'Ачысціць усе зменныя',\n    clearSearch: 'Ачысціць пошук',\n    filterCompName: 'Фільтр назвы кампанента',\n    filterVarName: 'Фільтр назвы зменнай',\n    import: 'Імпартаваць',\n    export: 'Экспартаваць',\n    restore: 'Скінуць да прадвызначаных'\n  },\n  Image: {\n    tipPrevious: 'Папярэдняя выява (←)',\n    tipNext: 'Наступная выява (→)',\n    tipCounterclockwise: 'Супраць гадзіннікавай стрэлкі',\n    tipClockwise: 'Па гадзіннікавай стрэлцы',\n    tipZoomOut: 'Паменшыць',\n    tipZoomIn: 'Павялічыць',\n    tipDownload: 'Спампаваць',\n    tipClose: 'Закрыць (Esc)',\n    tipOriginalSize: 'Маштаб да зыходнага памеру'\n  },\n  Heatmap: {\n    less: 'менш',\n    more: 'больш',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default beBY\n","import type { NLocale } from './enUS'\n\nconst bgBG: NLocale = {\n  name: 'bg-BG',\n  global: {\n    undo: 'Отмени',\n    redo: 'Повтори',\n    confirm: 'Потвърди',\n    clear: 'Изчисти'\n  },\n  Popconfirm: {\n    positiveText: 'Потвърди',\n    negativeText: 'Отказ'\n  },\n  Cascader: {\n    placeholder: 'Моля, изберете',\n    loading: 'Зареждане',\n    loadingRequiredMessage: (label: string): string =>\n      `Моля, заредете всички наследници на ${label} преди да го изберете.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Изчисти',\n    now: 'Сега',\n    confirm: 'Потвърди',\n    selectTime: 'Изберете час',\n    selectDate: 'Изберете дата',\n    datePlaceholder: 'Изберете дата',\n    datetimePlaceholder: 'Изберете дата и час',\n    monthPlaceholder: 'Изберете месец',\n    yearPlaceholder: 'Изберете година',\n    quarterPlaceholder: 'Изберете тримесечие',\n    weekPlaceholder: 'Изберете седмица',\n    startDatePlaceholder: 'Начална дата',\n    endDatePlaceholder: 'Крайна дата',\n    startDatetimePlaceholder: 'Начална дата и час',\n    endDatetimePlaceholder: 'Крайна дата и час',\n    startMonthPlaceholder: 'Начален месец',\n    endMonthPlaceholder: 'Краен месец',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Днес'\n  },\n  DataTable: {\n    checkTableAll: 'Избери всички в таблицата',\n    uncheckTableAll: 'Отмени избора в таблицата',\n    confirm: 'Потвърди',\n    clear: 'Изчисти'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Източник',\n    targetTitle: 'Цел'\n  },\n  Transfer: {\n    selectAll: 'Избери всички',\n    unselectAll: 'Отмени всички',\n    clearAll: 'Изчисти',\n    total: (num: number): string => `Общо ${num} елемента`,\n    selected: (num: number): string => `Избрани ${num} елемента`\n  },\n  Empty: {\n    description: 'Няма данни'\n  },\n  Select: {\n    placeholder: 'Моля, изберете'\n  },\n  TimePicker: {\n    placeholder: 'Изберете час',\n    positiveText: 'ОК',\n    negativeText: 'Отказ',\n    now: 'Сега',\n    clear: 'Изчисти'\n  },\n  Pagination: {\n    goto: 'Към',\n    selectionSuffix: 'страница'\n  },\n  DynamicTags: {\n    add: 'Добави'\n  },\n  Log: {\n    loading: 'Зареждане'\n  },\n  Input: {\n    placeholder: 'Моля, въведете'\n  },\n  InputNumber: {\n    placeholder: 'Моля, въведете'\n  },\n  DynamicInput: {\n    create: 'Създай'\n  },\n  ThemeEditor: {\n    title: 'Редактор на тема',\n    clearAllVars: 'Изчисти всички променливи',\n    clearSearch: 'Изчисти търсенето',\n    filterCompName: 'Филтър по име на компонент',\n    filterVarName: 'Филтър по име на променлива',\n    import: 'Импортиране',\n    export: 'Експортиране',\n    restore: 'Възстанови по подразбиране'\n  },\n  Image: {\n    tipPrevious: 'Предишно изображение (←)',\n    tipNext: 'Следващо изображение (→)',\n    tipCounterclockwise: 'Обратно на часовниковата стрелка',\n    tipClockwise: 'По часовниковата стрелка',\n    tipZoomOut: 'Намали',\n    tipZoomIn: 'Увеличи',\n    tipDownload: 'Изтегли',\n    tipClose: 'Затвори (Esc)',\n    tipOriginalSize: 'Мащаб към оригинален размер'\n  },\n  Heatmap: {\n    less: 'по-малко',\n    more: 'повече',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default bgBG\n","import type { NLocale } from './enUS'\n\nconst bnBD: NLocale = {\n  name: 'bn-BD',\n  global: {\n    undo: 'পূর্বাবস্থায় ফিরুন',\n    redo: 'আবার করুন',\n    confirm: 'নিশ্চিত করুন',\n    clear: 'মুছুন'\n  },\n  Popconfirm: {\n    positiveText: 'নিশ্চিত করুন',\n    negativeText: 'বাতিল'\n  },\n  Cascader: {\n    placeholder: 'অনুগ্রহ করে নির্বাচন করুন',\n    loading: 'লোড হচ্ছে',\n    loadingRequiredMessage: (label: string): string =>\n      `নির্বাচনের আগে ${label}-এর সব অন্তর্ভুক্ত আইটেম লোড করুন।`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'মুছুন',\n    now: 'এখন',\n    confirm: 'নিশ্চিত করুন',\n    selectTime: 'সময় নির্বাচন করুন',\n    selectDate: 'তারিখ নির্বাচন করুন',\n    datePlaceholder: 'তারিখ নির্বাচন করুন',\n    datetimePlaceholder: 'তারিখ ও সময় নির্বাচন করুন',\n    monthPlaceholder: 'মাস নির্বাচন করুন',\n    yearPlaceholder: 'বছর নির্বাচন করুন',\n    quarterPlaceholder: 'ত্রৈমাসিক নির্বাচন করুন',\n    weekPlaceholder: 'সপ্তাহ নির্বাচন করুন',\n    startDatePlaceholder: 'শুরুর তারিখ',\n    endDatePlaceholder: 'শেষ তারিখ',\n    startDatetimePlaceholder: 'শুরুর তারিখ ও সময়',\n    endDatetimePlaceholder: 'শেষ তারিখ ও সময়',\n    startMonthPlaceholder: 'শুরুর মাস',\n    endMonthPlaceholder: 'শেষ মাস',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'আজ'\n  },\n  DataTable: {\n    checkTableAll: 'সারণির সব নির্বাচন করুন',\n    uncheckTableAll: 'সারণির সব নির্বাচন তুলে দিন',\n    confirm: 'নিশ্চিত করুন',\n    clear: 'মুছুন'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'উৎস',\n    targetTitle: 'গন্তব্য'\n  },\n  Transfer: {\n    selectAll: 'সব নির্বাচন করুন',\n    unselectAll: 'সব নির্বাচন তুলে দিন',\n    clearAll: 'মুছুন',\n    total: (num: number): string => `মোট ${num}টি আইটেম`,\n    selected: (num: number): string => `${num}টি আইটেম নির্বাচিত`\n  },\n  Empty: {\n    description: 'কোনো তথ্য নেই'\n  },\n  Select: {\n    placeholder: 'অনুগ্রহ করে নির্বাচন করুন'\n  },\n  TimePicker: {\n    placeholder: 'সময় নির্বাচন করুন',\n    positiveText: 'ঠিক আছে',\n    negativeText: 'বাতিল',\n    now: 'এখন',\n    clear: 'মুছুন'\n  },\n  Pagination: {\n    goto: 'যান',\n    selectionSuffix: 'পৃষ্ঠা'\n  },\n  DynamicTags: {\n    add: 'যোগ করুন'\n  },\n  Log: {\n    loading: 'লোড হচ্ছে'\n  },\n  Input: {\n    placeholder: 'অনুগ্রহ করে লিখুন'\n  },\n  InputNumber: {\n    placeholder: 'অনুগ্রহ করে লিখুন'\n  },\n  DynamicInput: {\n    create: 'তৈরি করুন'\n  },\n  ThemeEditor: {\n    title: 'থিম সম্পাদক',\n    clearAllVars: 'সব ভেরিয়েবল মুছুন',\n    clearSearch: 'অনুসন্ধান মুছুন',\n    filterCompName: 'কম্পোনেন্টের নাম ফিল্টার',\n    filterVarName: 'ভেরিয়েবলের নাম ফিল্টার',\n    import: 'আমদানি',\n    export: 'রপ্তানি',\n    restore: 'ডিফল্টে ফিরুন'\n  },\n  Image: {\n    tipPrevious: 'আগের ছবি (←)',\n    tipNext: 'পরের ছবি (→)',\n    tipCounterclockwise: 'বাম দিকে ঘোরান',\n    tipClockwise: 'ডান দিকে ঘোরান',\n    tipZoomOut: 'ছোট করুন',\n    tipZoomIn: 'বড় করুন',\n    tipDownload: 'ডাউনলোড',\n    tipClose: 'বন্ধ (Esc)',\n    tipOriginalSize: 'মূল আকারে জুম করুন'\n  },\n  Heatmap: {\n    less: 'কম',\n    more: 'বেশি',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default bnBD\n","import type { NLocale } from './enUS'\n\nconst caES: NLocale = {\n  name: 'ca-ES',\n  global: {\n    undo: 'Desfer',\n    redo: 'Refer',\n    confirm: 'Confirmar',\n    clear: 'Esborrar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancel·lar'\n  },\n  Cascader: {\n    placeholder: 'Seleccioneu',\n    loading: 'S\\'està carregant',\n    loadingRequiredMessage: (label: string): string =>\n      `Carregueu tots els descendents de ${label} abans de seleccionar-lo.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Esborrar',\n    now: 'Ara',\n    confirm: 'Confirmar',\n    selectTime: 'Seleccionar hora',\n    selectDate: 'Seleccionar data',\n    datePlaceholder: 'Seleccionar data',\n    datetimePlaceholder: 'Seleccionar data i hora',\n    monthPlaceholder: 'Seleccionar mes',\n    yearPlaceholder: 'Seleccionar any',\n    quarterPlaceholder: 'Seleccionar trimestre',\n    weekPlaceholder: 'Seleccionar setmana',\n    startDatePlaceholder: 'Data d\\'inici',\n    endDatePlaceholder: 'Data de fi',\n    startDatetimePlaceholder: 'Data i hora d\\'inici',\n    endDatetimePlaceholder: 'Data i hora de fi',\n    startMonthPlaceholder: 'Mes d\\'inici',\n    endMonthPlaceholder: 'Mes de fi',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Avui'\n  },\n  DataTable: {\n    checkTableAll: 'Seleccionar-ho tot a la taula',\n    uncheckTableAll: 'Desseleccionar-ho tot a la taula',\n    confirm: 'Confirmar',\n    clear: 'Esborrar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Origen',\n    targetTitle: 'Destinació'\n  },\n  Transfer: {\n    selectAll: 'Seleccionar-ho tot',\n    unselectAll: 'Desseleccionar-ho tot',\n    clearAll: 'Esborrar',\n    total: (num: number): string => `Total ${num} elements`,\n    selected: (num: number): string => `${num} elements seleccionats`\n  },\n  Empty: {\n    description: 'Sense dades'\n  },\n  Select: {\n    placeholder: 'Seleccioneu'\n  },\n  TimePicker: {\n    placeholder: 'Seleccionar hora',\n    positiveText: 'D\\'acord',\n    negativeText: 'Cancel·lar',\n    now: 'Ara',\n    clear: 'Esborrar'\n  },\n  Pagination: {\n    goto: 'Anar a',\n    selectionSuffix: 'pàgina'\n  },\n  DynamicTags: {\n    add: 'Afegir'\n  },\n  Log: {\n    loading: 'S\\'està carregant'\n  },\n  Input: {\n    placeholder: 'Introduïu'\n  },\n  InputNumber: {\n    placeholder: 'Introduïu'\n  },\n  DynamicInput: {\n    create: 'Crear'\n  },\n  ThemeEditor: {\n    title: 'Editor de tema',\n    clearAllVars: 'Esborrar totes les variables',\n    clearSearch: 'Esborrar la cerca',\n    filterCompName: 'Filtrar nom del component',\n    filterVarName: 'Filtrar nom de la variable',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restaurar els valors per defecte'\n  },\n  Image: {\n    tipPrevious: 'Imatge anterior (←)',\n    tipNext: 'Imatge següent (→)',\n    tipCounterclockwise: 'Sentit antihorari',\n    tipClockwise: 'Sentit horari',\n    tipZoomOut: 'Allunyar',\n    tipZoomIn: 'Acostar',\n    tipDownload: 'Baixar',\n    tipClose: 'Tancar (Esc)',\n    tipOriginalSize: 'Zoom a la mida original'\n  },\n  Heatmap: {\n    less: 'menys',\n    more: 'més',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default caES\n","import type { NLocale } from './enUS'\n\nconst csCZ: NLocale = {\n  name: 'cs-CZ',\n  global: {\n    undo: 'Zpět',\n    redo: 'Obnovit',\n    confirm: 'Potvrdit',\n    clear: 'Vyčistit'\n  },\n  Popconfirm: {\n    positiveText: 'Potvrdit',\n    negativeText: 'Zrušit'\n  },\n  Cascader: {\n    placeholder: 'Prosím vyberte',\n    loading: 'Načítání',\n    loadingRequiredMessage: (label: string): string =>\n      `Prosím načtěte před kontrolou všechny potomky pro ${label}.`\n  },\n  Time: {\n    dateFormat: 'd-M-yyyy',\n    dateTimeFormat: 'd-M-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'EEEE',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MMM-yyyy',\n    dateFormat: 'd-M-yyyy',\n    dateTimeFormat: 'd-M-yyyy HH:mm:ss',\n    quarterFormat: 'qqq-yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'Vyčistit',\n    now: 'Teď',\n    confirm: 'Potvrdit',\n    selectTime: 'Vybrat čas',\n    selectDate: 'Vybrat datum',\n    datePlaceholder: 'Vyberte čas',\n    datetimePlaceholder: 'Vyberte datum a čas',\n    monthPlaceholder: 'Vyberte měsíc',\n    yearPlaceholder: 'Vyberte rok',\n    quarterPlaceholder: 'Vyberte čtvrtletí',\n    weekPlaceholder: 'Vyberte týden',\n    startDatePlaceholder: 'Datum začátku',\n    endDatePlaceholder: 'Datum ukončení',\n    startDatetimePlaceholder: 'Datum a čas začátku',\n    endDatetimePlaceholder: 'Datum a čas ukončení ',\n    startMonthPlaceholder: 'Začátek měsíce',\n    endMonthPlaceholder: 'Konec měsíce',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Dnes'\n  },\n  DataTable: {\n    checkTableAll: 'Vybrat vše v tabulce',\n    uncheckTableAll: 'Zrušit výběr všeho v tabulce ',\n    confirm: 'Potvrdit',\n    clear: 'Vyčistit'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Zdroj',\n    targetTitle: 'Cíl'\n  },\n  Transfer: {\n    selectAll: 'Vybrat vše',\n    unselectAll: 'Odznačit vše',\n    clearAll: 'Vyčistit',\n    total: (num: number): string => `Celkem ${num} položek`,\n    selected: (num: number): string => `${num} položek vybráno`\n  },\n  Empty: {\n    description: 'Žádná data'\n  },\n  Select: {\n    placeholder: 'Prosím vyberte'\n  },\n  TimePicker: {\n    placeholder: 'Vybrat čas',\n    positiveText: 'OK',\n    negativeText: 'Zrušit',\n    now: 'Teď',\n    clear: 'Vyčistit'\n  },\n  Pagination: {\n    goto: 'Jít na',\n    selectionSuffix: 'Strana'\n  },\n  DynamicTags: {\n    add: 'Přidat'\n  },\n  Log: {\n    loading: 'Načítání'\n  },\n  Input: {\n    placeholder: 'Zadejte'\n  },\n  InputNumber: {\n    placeholder: 'Zadejte'\n  },\n  DynamicInput: {\n    create: 'Vytvořit'\n  },\n  ThemeEditor: {\n    title: 'Editor témat',\n    clearAllVars: 'Vymazat všechny proměnné',\n    clearSearch: 'Vymazat vyhledávání',\n    filterCompName: 'Filtrovat název komponenty',\n    filterVarName: 'Filztrovat název proměnné',\n    import: 'Importovat',\n    export: 'Exportovat',\n    restore: 'Obnovit původní nastavení'\n  },\n  Image: {\n    tipPrevious: 'Předchozí obrázek (←)',\n    tipNext: 'Další obrázek (→)',\n    tipCounterclockwise: 'Proti směru hodinových ručiček',\n    tipClockwise: 'Ve směru hodinových ručiček',\n    tipZoomOut: 'Oddálit',\n    tipZoomIn: 'Přiblížit',\n    tipDownload: 'Stáhnout',\n    tipClose: 'Zavřít (Esc)',\n    tipOriginalSize: 'Přiblížit na původní velikost'\n  },\n  Heatmap: {\n    less: 'méně',\n    more: 'více',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default csCZ\n","import type { NLocale } from 'naive-ui'\n\nconst daDK: NLocale = {\n  name: 'da-DK',\n  global: {\n    undo: 'Fortryd',\n    redo: 'Gentag',\n    confirm: 'Bekræft',\n    clear: 'Ryd'\n  },\n  Popconfirm: {\n    positiveText: 'Bekræft',\n    negativeText: 'Annuller'\n  },\n  Cascader: {\n    placeholder: 'Vælg venligst',\n    loading: 'Indlæser',\n    loadingRequiredMessage: (label: string): string =>\n      `Indlæs venligst alle underpunkter til ${label} før du vælger punktet.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Ryd',\n    now: 'Nu',\n    confirm: 'Bekræft',\n    selectTime: 'Vælg tid',\n    selectDate: 'Vælg dato',\n    datePlaceholder: 'Vælg dato',\n    datetimePlaceholder: 'Vælg dato og tid',\n    monthPlaceholder: 'Vælg måned',\n    yearPlaceholder: 'Vælg år',\n    quarterPlaceholder: 'Vælg kvartal',\n    weekPlaceholder: 'Vælg uge',\n    startDatePlaceholder: 'Startdato',\n    endDatePlaceholder: 'Slutdato',\n    startDatetimePlaceholder: 'Startdato og -tid',\n    endDatetimePlaceholder: 'Slutdato og -tid',\n    startMonthPlaceholder: 'Startmåned',\n    endMonthPlaceholder: 'Slutmåned',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'I dag'\n  },\n  DataTable: {\n    checkTableAll: 'Vælg alle',\n    uncheckTableAll: 'Vælg ingen',\n    confirm: 'Bekræft',\n    clear: 'Ryd'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Kilde',\n    targetTitle: 'Mål'\n  },\n  Transfer: {\n    selectAll: 'Vælg alle',\n    unselectAll: 'Vælg ingen',\n    clearAll: 'Ryd',\n    total: (num: number): string => `I alt ${num} rækker`,\n    selected: (num: number): string => `${num} rækker valgt`\n  },\n  Empty: {\n    description: 'Ingen data'\n  },\n  Select: {\n    placeholder: 'Vælg venligst'\n  },\n  TimePicker: {\n    placeholder: 'Vælg tid',\n    positiveText: 'OK',\n    negativeText: 'Annuller',\n    now: 'Nu',\n    clear: 'Ryd'\n  },\n  Pagination: {\n    goto: 'Gå til',\n    selectionSuffix: 'side'\n  },\n  DynamicTags: {\n    add: 'Tilføj'\n  },\n  Log: {\n    loading: 'Indlæser'\n  },\n  Input: {\n    placeholder: 'Udfyld venligst'\n  },\n  InputNumber: {\n    placeholder: 'Udfyld venligst'\n  },\n  DynamicInput: {\n    create: 'Opret'\n  },\n  ThemeEditor: {\n    title: 'Temaværktøj',\n    clearAllVars: 'Nulstil alle variabler',\n    clearSearch: 'Ryd søgning',\n    filterCompName: 'Filtrer efter komponentnavn',\n    filterVarName: 'Filtrer efter variabelnavn',\n    import: 'Importér',\n    export: 'Eksportér',\n    restore: 'Nulstil til oprindelige valg'\n  },\n  Image: {\n    tipPrevious: 'Forrige billede (←)',\n    tipNext: 'Næste billede (→)',\n    tipCounterclockwise: 'Mod uret',\n    tipClockwise: 'Med uret',\n    tipZoomOut: 'Zoom ud',\n    tipZoomIn: 'Zoom ind',\n    tipDownload: 'Download',\n    tipClose: 'Luk (Esc)',\n    tipOriginalSize: 'Zoom til oprindelig størrelse'\n  },\n  Heatmap: {\n    less: 'mindre',\n    more: 'mere',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eee'\n  }\n}\n\nexport default daDK\n","import type { NLocale } from './enUS'\n\nconst deDE: NLocale = {\n  name: 'de-DE',\n  global: {\n    undo: 'Rückgängig',\n    redo: 'Wiederholen',\n    confirm: 'Bestätigen',\n    clear: 'Löschen'\n  },\n  Popconfirm: {\n    positiveText: 'Bestätigen',\n    negativeText: 'Abbrechen'\n  },\n  Cascader: {\n    placeholder: 'Bitte auswählen',\n    loading: 'Wird geladen',\n    loadingRequiredMessage: (label: string): string =>\n      `Bitte laden Sie alle Unterpunkte von ${label}, bevor Sie es auswählen.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Löschen',\n    now: 'Jetzt',\n    confirm: 'Bestätigen',\n    selectTime: 'Uhrzeit auswählen',\n    selectDate: 'Datum auswählen',\n    datePlaceholder: 'Datum auswählen',\n    datetimePlaceholder: 'Datum und Uhrzeit auswählen',\n    monthPlaceholder: 'Monat auswählen',\n    yearPlaceholder: 'Jahr auswählen',\n    quarterPlaceholder: 'Quartal auswählen',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Anfangsdatum',\n    endDatePlaceholder: 'Enddatum',\n    startDatetimePlaceholder: 'Anfangsdatum und Uhrzeit',\n    endDatetimePlaceholder: 'Enddatum und Uhrzeit',\n    startMonthPlaceholder: 'Anfangsmonat',\n    endMonthPlaceholder: 'Endmonat',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Heute'\n  },\n  DataTable: {\n    checkTableAll: 'Alles auswählen',\n    uncheckTableAll: 'Auswahl aufheben',\n    confirm: 'Bestätigen',\n    clear: 'Löschen'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Quelle',\n    targetTitle: 'Ziel'\n  },\n  Transfer: {\n    selectAll: 'Alle auswählen',\n    unselectAll: 'Alle abwählen',\n    clearAll: 'Leeren',\n    total: (num: number): string => `Insgesamt ${num} Einträge`,\n    selected: (num: number): string => `${num} Einträge ausgewählt`\n  },\n  Empty: {\n    description: 'Keine Daten'\n  },\n  Select: {\n    placeholder: 'Bitte auswählen'\n  },\n  TimePicker: {\n    placeholder: 'Uhrzeit auswählen',\n    positiveText: 'OK',\n    negativeText: 'Abbrechen',\n    now: 'Jetzt',\n    clear: 'Löschen'\n  },\n  Pagination: {\n    goto: 'Gehe zu',\n    selectionSuffix: 'Seite'\n  },\n  DynamicTags: {\n    add: 'Hinzufügen'\n  },\n  Log: {\n    loading: 'Wird geladen'\n  },\n  Input: {\n    placeholder: 'Bitte ausfüllen'\n  },\n  InputNumber: {\n    placeholder: 'Bitte ausfüllen'\n  },\n  DynamicInput: {\n    create: 'Erstellen'\n  },\n  ThemeEditor: {\n    title: 'Theme Editor',\n    clearAllVars: 'Alle Variablen löschen',\n    clearSearch: 'Suche löschen',\n    filterCompName: 'Filter Komponentenname',\n    filterVarName: 'Filter Variablenname',\n    import: 'Importieren',\n    export: 'Exportieren',\n    restore: 'Auf Standard zurücksetzen'\n  },\n  Image: {\n    tipPrevious: 'Vorheriges Bild (←)',\n    tipNext: 'Nächstes Bild (→)',\n    tipCounterclockwise: 'Gegen Uhrzeigersinn',\n    tipClockwise: 'Uhrzeigersinn',\n    tipZoomOut: 'Rauszoomen',\n    tipZoomIn: 'Reinzoomen',\n    tipDownload: 'Download',\n    tipClose: 'Schließen (Esc)',\n    tipOriginalSize: 'Zoom zurücksetzen'\n  },\n  Heatmap: {\n    less: 'weniger',\n    more: 'mehr',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default deDE\n","import type { NLocale } from './enUS'\n\nconst elGR: NLocale = {\n  name: 'el-GR',\n  global: {\n    undo: 'Αναίρεση',\n    redo: 'Επανάληψη',\n    confirm: 'Επιβεβαίωση',\n    clear: 'Καθαρισμός'\n  },\n  Popconfirm: {\n    positiveText: 'Επιβεβαίωση',\n    negativeText: 'Ακύρωση'\n  },\n  Cascader: {\n    placeholder: 'Παρακαλώ επιλέξτε',\n    loading: 'Φόρτωση',\n    loadingRequiredMessage: (label: string): string =>\n      `Φορτώστε όλους τους απογόνους του ${label} πριν τον επιλέξετε.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Καθαρισμός',\n    now: 'Τώρα',\n    confirm: 'Επιβεβαίωση',\n    selectTime: 'Επιλογή ώρας',\n    selectDate: 'Επιλογή ημερομηνίας',\n    datePlaceholder: 'Επιλογή ημερομηνίας',\n    datetimePlaceholder: 'Επιλογή ημερομηνίας και ώρας',\n    monthPlaceholder: 'Επιλογή μήνα',\n    yearPlaceholder: 'Επιλογή έτους',\n    quarterPlaceholder: 'Επιλογή τριμήνου',\n    weekPlaceholder: 'Επιλογή εβδομάδας',\n    startDatePlaceholder: 'Ημερομηνία έναρξης',\n    endDatePlaceholder: 'Ημερομηνία λήξης',\n    startDatetimePlaceholder: 'Ημερομηνία και ώρα έναρξης',\n    endDatetimePlaceholder: 'Ημερομηνία και ώρα λήξης',\n    startMonthPlaceholder: 'Μήνας έναρξης',\n    endMonthPlaceholder: 'Μήνας λήξης',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Σήμερα'\n  },\n  DataTable: {\n    checkTableAll: 'Επιλογή όλων στον πίνακα',\n    uncheckTableAll: 'Αποεπιλογή όλων στον πίνακα',\n    confirm: 'Επιβεβαίωση',\n    clear: 'Καθαρισμός'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Πηγή',\n    targetTitle: 'Προορισμός'\n  },\n  Transfer: {\n    selectAll: 'Επιλογή όλων',\n    unselectAll: 'Αποεπιλογή όλων',\n    clearAll: 'Καθαρισμός',\n    total: (num: number): string => `Σύνολο ${num} στοιχείων`,\n    selected: (num: number): string => `Επιλέχθηκαν ${num} στοιχεία`\n  },\n  Empty: {\n    description: 'Δεν υπάρχουν δεδομένα'\n  },\n  Select: {\n    placeholder: 'Παρακαλώ επιλέξτε'\n  },\n  TimePicker: {\n    placeholder: 'Επιλογή ώρας',\n    positiveText: 'OK',\n    negativeText: 'Ακύρωση',\n    now: 'Τώρα',\n    clear: 'Καθαρισμός'\n  },\n  Pagination: {\n    goto: 'Μετάβαση σε',\n    selectionSuffix: 'σελίδα'\n  },\n  DynamicTags: {\n    add: 'Προσθήκη'\n  },\n  Log: {\n    loading: 'Φόρτωση'\n  },\n  Input: {\n    placeholder: 'Παρακαλώ εισαγάγετε'\n  },\n  InputNumber: {\n    placeholder: 'Παρακαλώ εισαγάγετε'\n  },\n  DynamicInput: {\n    create: 'Δημιουργία'\n  },\n  ThemeEditor: {\n    title: 'Επεξεργαστής θέματος',\n    clearAllVars: 'Καθαρισμός όλων των μεταβλητών',\n    clearSearch: 'Καθαρισμός αναζήτησης',\n    filterCompName: 'Φίλτρο ονόματος στοιχείου',\n    filterVarName: 'Φίλτρο ονόματος μεταβλητής',\n    import: 'Εισαγωγή',\n    export: 'Εξαγωγή',\n    restore: 'Επαναφορά προεπιλογών'\n  },\n  Image: {\n    tipPrevious: 'Προηγούμενη εικόνα (←)',\n    tipNext: 'Επόμενη εικόνα (→)',\n    tipCounterclockwise: 'Αντίστροφα των δεικτών',\n    tipClockwise: 'Με τους δείκτες του ρολογιού',\n    tipZoomOut: 'Σμίκρυνση',\n    tipZoomIn: 'Μεγέθυνση',\n    tipDownload: 'Λήψη',\n    tipClose: 'Κλείσιμο (Esc)',\n    tipOriginalSize: 'Ζουμ στο αρχικό μέγεθος'\n  },\n  Heatmap: {\n    less: 'λιγότερο',\n    more: 'περισσότερο',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default elGR\n","import type { NLocale } from './enUS'\n\nconst enGB: NLocale = {\n  name: 'en-GB',\n  global: {\n    undo: 'Undo',\n    redo: 'Redo',\n    confirm: 'Confirm',\n    clear: 'Clear'\n  },\n  Popconfirm: {\n    positiveText: 'Confirm',\n    negativeText: 'Cancel'\n  },\n  Cascader: {\n    placeholder: 'Please Select',\n    loading: 'Loading',\n    loadingRequiredMessage: (label: string): string =>\n      `Please load all ${label}'s descendants before checking it.`\n  },\n  Time: {\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy/MM',\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Clear',\n    now: 'Now',\n    confirm: 'Confirm',\n    selectTime: 'Select Time',\n    selectDate: 'Select Date',\n    datePlaceholder: 'Select Date',\n    datetimePlaceholder: 'Select Date and Time',\n    monthPlaceholder: 'Select Month',\n    yearPlaceholder: 'Select Year',\n    quarterPlaceholder: 'Select Quarter',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Start Date',\n    endDatePlaceholder: 'End Date',\n    startDatetimePlaceholder: 'Start Date and Time',\n    endDatetimePlaceholder: 'End Date and Time',\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Today'\n  },\n  DataTable: {\n    checkTableAll: 'Select all in the table',\n    uncheckTableAll: 'Unselect all in the table',\n    confirm: 'Confirm',\n    clear: 'Clear'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Source',\n    targetTitle: 'Target'\n  },\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'No Data'\n  },\n  Select: {\n    placeholder: 'Please Select'\n  },\n  TimePicker: {\n    placeholder: 'Select Time',\n    positiveText: 'OK',\n    negativeText: 'Cancel',\n    now: 'Now',\n    clear: 'Clear'\n  },\n  Pagination: {\n    goto: 'Goto',\n    selectionSuffix: 'page'\n  },\n  DynamicTags: {\n    add: 'Add'\n  },\n  Log: {\n    loading: 'Loading'\n  },\n  Input: {\n    placeholder: 'Please Input'\n  },\n  InputNumber: {\n    placeholder: 'Please Input'\n  },\n  DynamicInput: {\n    create: 'Create'\n  },\n  ThemeEditor: {\n    title: 'Theme Editor',\n    clearAllVars: 'Clear All Variables',\n    clearSearch: 'Clear Search',\n    filterCompName: 'Filter Component Name',\n    filterVarName: 'Filter Variable Name',\n    import: 'Import',\n    export: 'Export',\n    restore: 'Reset to Default'\n  },\n  Image: {\n    tipPrevious: 'Previous picture (←)',\n    tipNext: 'Next picture (→)',\n    tipCounterclockwise: 'Counterclockwise',\n    tipClockwise: 'Clockwise',\n    tipZoomOut: 'Zoom out',\n    tipZoomIn: 'Zoom in',\n    tipDownload: 'Download',\n    tipClose: 'Close (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eee'\n  }\n}\n\nexport default enGB\n","const enUS = {\n  name: 'en-US',\n  global: {\n    undo: 'Undo',\n    redo: 'Redo',\n    confirm: 'Confirm',\n    clear: 'Clear'\n  },\n  Popconfirm: {\n    positiveText: 'Confirm',\n    negativeText: 'Cancel'\n  },\n  Cascader: {\n    placeholder: 'Please Select',\n    loading: 'Loading',\n    loadingRequiredMessage: (label: string): string =>\n      `Please load all ${label}'s descendants before checking it.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Clear',\n    now: 'Now',\n    confirm: 'Confirm',\n    selectTime: 'Select Time',\n    selectDate: 'Select Date',\n    datePlaceholder: 'Select Date',\n    datetimePlaceholder: 'Select Date and Time',\n    monthPlaceholder: 'Select Month',\n    yearPlaceholder: 'Select Year',\n    quarterPlaceholder: 'Select Quarter',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Start Date',\n    endDatePlaceholder: 'End Date',\n    startDatetimePlaceholder: 'Start Date and Time',\n    endDatetimePlaceholder: 'End Date and Time',\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Today'\n  },\n  DataTable: {\n    checkTableAll: 'Select all in the table',\n    uncheckTableAll: 'Unselect all in the table',\n    confirm: 'Confirm',\n    clear: 'Clear'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Source',\n    targetTitle: 'Target'\n  },\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'No Data'\n  },\n  Select: {\n    placeholder: 'Please Select'\n  },\n  TimePicker: {\n    placeholder: 'Select Time',\n    positiveText: 'OK',\n    negativeText: 'Cancel',\n    now: 'Now',\n    clear: 'Clear'\n  },\n  Pagination: {\n    goto: 'Goto',\n    selectionSuffix: 'page'\n  },\n  DynamicTags: {\n    add: 'Add'\n  },\n  Log: {\n    loading: 'Loading'\n  },\n  Input: {\n    placeholder: 'Please Input'\n  },\n  InputNumber: {\n    placeholder: 'Please Input'\n  },\n  DynamicInput: {\n    create: 'Create'\n  },\n  ThemeEditor: {\n    title: 'Theme Editor',\n    clearAllVars: 'Clear All Variables',\n    clearSearch: 'Clear Search',\n    filterCompName: 'Filter Component Name',\n    filterVarName: 'Filter Variable Name',\n    import: 'Import',\n    export: 'Export',\n    restore: 'Reset to Default'\n  },\n  Image: {\n    tipPrevious: 'Previous picture (←)',\n    tipNext: 'Next picture (→)',\n    tipCounterclockwise: 'Counterclockwise',\n    tipClockwise: 'Clockwise',\n    tipZoomOut: 'Zoom out',\n    tipZoomIn: 'Zoom in',\n    tipDownload: 'Download',\n    tipClose: 'Close (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eee'\n  }\n}\n\nexport type NLocale = typeof enUS\nexport default enUS\n","import type { NLocale } from './enUS'\n\nconst eo: NLocale = {\n  name: 'eo',\n  global: {\n    undo: 'Malfari',\n    redo: 'Refari',\n    confirm: 'Konfirmi',\n    clear: 'Malplenigi'\n  },\n  Popconfirm: {\n    positiveText: 'Konfirmi',\n    negativeText: 'Nuligi'\n  },\n  Cascader: {\n    placeholder: 'Bonvolu elekti',\n    loading: 'Ŝargiĝo',\n    loadingRequiredMessage: (label: string): string =>\n      `Bonvolu ŝargi ĉiujn idojn de ${label} antaŭ ol elekti ĝin.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Malplenigi',\n    now: 'Nun',\n    confirm: 'Konfirmi',\n    selectTime: 'Elekti tempon',\n    selectDate: 'Elekti daton',\n    datePlaceholder: 'Elekti daton',\n    datetimePlaceholder: 'Elekti daton kaj tempon',\n    monthPlaceholder: 'Elekti monaton',\n    yearPlaceholder: 'Elekti jaron',\n    quarterPlaceholder: 'Elekti jarkvaronon',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Komenca dato',\n    endDatePlaceholder: 'Fina dato',\n    startDatetimePlaceholder: 'Komencaj dato kaj tempo',\n    endDatetimePlaceholder: 'Finaj dato kaj tempo',\n    // FIXME: translation needed\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hodiaŭ'\n  },\n  DataTable: {\n    checkTableAll: 'Elekti ĉiujn en la tabelo',\n    uncheckTableAll: 'Malelekti ĉiujn en la tabelo',\n    confirm: 'Konfirmi',\n    clear: 'Malplenigi'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Source',\n    targetTitle: 'Target'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'Neniu datumo'\n  },\n  Select: {\n    placeholder: 'Bonvolu elekti'\n  },\n  TimePicker: {\n    placeholder: 'Elekti tempon',\n    positiveText: 'Bone',\n    negativeText: 'Nuligi',\n    now: 'Nun',\n    clear: 'Malplenigi'\n  },\n  Pagination: {\n    goto: 'Iri al',\n    selectionSuffix: 'paĝo'\n  },\n  DynamicTags: {\n    add: 'Aldoni'\n  },\n  Log: {\n    loading: 'Ŝargado'\n  },\n  Input: {\n    placeholder: 'Bonvolu entajpi'\n  },\n  InputNumber: {\n    placeholder: 'Bonvolu entajpi'\n  },\n  DynamicInput: {\n    create: 'Krei'\n  },\n  ThemeEditor: {\n    title: 'Etosredaktilo',\n    clearAllVars: 'Malplenigi ĉiujn variablojn',\n    clearSearch: 'Malplenigi serĉon',\n    filterCompName: 'Filtri nomojn de komponaĵoj',\n    filterVarName: 'Filtri nomojn de variabloj',\n    import: 'Importi',\n    export: 'Eksporti',\n    restore: 'Restarigi defaŭltajn valorojn'\n  },\n  Image: {\n    tipPrevious: 'Antaŭa bildo (←)',\n    tipNext: 'Sekva bildo (→)',\n    tipCounterclockwise: 'Maldekstrume',\n    tipClockwise: 'Dekstrume',\n    tipZoomOut: 'Malzomi',\n    tipZoomIn: 'Zomi',\n    tipDownload: 'Elŝuti',\n    tipClose: 'Fermi (Esc)',\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default eo\n","import type { NLocale } from './enUS'\n\nconst esAR: NLocale = {\n  name: 'es-AR',\n  global: {\n    undo: 'Deshacer',\n    redo: 'Rehacer',\n    confirm: 'Confirmar',\n    clear: 'Borrar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancelar'\n  },\n  Cascader: {\n    placeholder: 'Seleccionar por favor',\n    loading: 'Cargando',\n    loadingRequiredMessage: (label: string): string =>\n      `Por favor, cargue los descendientes de ${label} antes de marcarlo.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Borrar',\n    now: 'Ahora',\n    confirm: 'Confirmar',\n    selectTime: 'Seleccionar hora',\n    selectDate: 'Seleccionar fecha',\n    datePlaceholder: 'Seleccionar fecha',\n    datetimePlaceholder: 'Seleccionar fecha y hora',\n    monthPlaceholder: 'Seleccionar mes',\n    yearPlaceholder: 'Seleccionar año',\n    quarterPlaceholder: 'Seleccionar Trimestre',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Fecha de inicio',\n    endDatePlaceholder: 'Fecha final',\n    startDatetimePlaceholder: 'Fecha y hora de inicio',\n    endDatetimePlaceholder: 'Fecha y hora final',\n    monthBeforeYear: true,\n    // FIXME: translation needed\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    // 0 is Monday / 0 es Lunes\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hoy'\n  },\n  DataTable: {\n    checkTableAll: 'Seleccionar todo de la tabla',\n    uncheckTableAll: 'Deseleccionar todo de la tabla',\n    confirm: 'Confirmar',\n    clear: 'Limpiar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Fuente',\n    targetTitle: 'Objetivo'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'Sin datos'\n  },\n  Select: {\n    placeholder: 'Seleccionar por favor'\n  },\n  TimePicker: {\n    placeholder: 'Seleccionar hora',\n    positiveText: 'OK',\n    negativeText: 'Cancelar',\n    now: 'Ahora',\n    clear: 'Borrar'\n  },\n  Pagination: {\n    goto: 'Ir a',\n    selectionSuffix: 'página'\n  },\n  DynamicTags: {\n    add: 'Agregar'\n  },\n  Log: {\n    loading: 'Cargando'\n  },\n  Input: {\n    placeholder: 'Ingrese datos por favor'\n  },\n  InputNumber: {\n    placeholder: 'Ingrese datos por favor'\n  },\n  DynamicInput: {\n    create: 'Crear'\n  },\n  ThemeEditor: {\n    title: 'Editor de Tema',\n    clearAllVars: 'Limpiar todas las variables',\n    clearSearch: 'Limpiar búsqueda',\n    filterCompName: 'Filtro para nombre del componente',\n    filterVarName: 'Filtro para nombre de la variable',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restablecer los valores por defecto'\n  },\n  Image: {\n    tipPrevious: 'Imagen anterior (←)',\n    tipNext: 'Siguiente imagen (→)',\n    tipCounterclockwise: 'Sentido antihorario',\n    tipClockwise: 'Sentido horario',\n    tipZoomOut: 'Alejar',\n    tipZoomIn: 'Acercar',\n    tipDownload: 'Descargar',\n    tipClose: 'Cerrar (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'menos',\n    more: 'más',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default esAR\n","import type { NLocale } from './enUS'\n\nconst esES: NLocale = {\n  name: 'es-ES',\n  global: {\n    undo: 'Deshacer',\n    redo: 'Rehacer',\n    confirm: 'Confirmar',\n    clear: 'Borrar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancelar'\n  },\n  Cascader: {\n    placeholder: 'Seleccione',\n    loading: 'Cargando',\n    loadingRequiredMessage: (label: string): string =>\n      `Cargue todos los descendientes de ${label} antes de seleccionarlo.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Borrar',\n    now: 'Ahora',\n    confirm: 'Confirmar',\n    selectTime: 'Seleccionar hora',\n    selectDate: 'Seleccionar fecha',\n    datePlaceholder: 'Seleccionar fecha',\n    datetimePlaceholder: 'Seleccionar fecha y hora',\n    monthPlaceholder: 'Seleccionar mes',\n    yearPlaceholder: 'Seleccionar año',\n    quarterPlaceholder: 'Seleccionar trimestre',\n    weekPlaceholder: 'Seleccionar semana',\n    startDatePlaceholder: 'Fecha de inicio',\n    endDatePlaceholder: 'Fecha de fin',\n    startDatetimePlaceholder: 'Fecha y hora de inicio',\n    endDatetimePlaceholder: 'Fecha y hora de fin',\n    startMonthPlaceholder: 'Mes de inicio',\n    endMonthPlaceholder: 'Mes de fin',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hoy'\n  },\n  DataTable: {\n    checkTableAll: 'Seleccionar todo en la tabla',\n    uncheckTableAll: 'Deseleccionar todo en la tabla',\n    confirm: 'Confirmar',\n    clear: 'Borrar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Origen',\n    targetTitle: 'Destino'\n  },\n  Transfer: {\n    selectAll: 'Seleccionar todo',\n    unselectAll: 'Deseleccionar todo',\n    clearAll: 'Borrar',\n    total: (num: number): string => `Total ${num} elementos`,\n    selected: (num: number): string => `${num} elementos seleccionados`\n  },\n  Empty: {\n    description: 'Sin datos'\n  },\n  Select: {\n    placeholder: 'Seleccione'\n  },\n  TimePicker: {\n    placeholder: 'Seleccionar hora',\n    positiveText: 'Aceptar',\n    negativeText: 'Cancelar',\n    now: 'Ahora',\n    clear: 'Borrar'\n  },\n  Pagination: {\n    goto: 'Ir a',\n    selectionSuffix: 'página'\n  },\n  DynamicTags: {\n    add: 'Añadir'\n  },\n  Log: {\n    loading: 'Cargando'\n  },\n  Input: {\n    placeholder: 'Introduzca'\n  },\n  InputNumber: {\n    placeholder: 'Introduzca'\n  },\n  DynamicInput: {\n    create: 'Crear'\n  },\n  ThemeEditor: {\n    title: 'Editor de tema',\n    clearAllVars: 'Borrar todas las variables',\n    clearSearch: 'Borrar búsqueda',\n    filterCompName: 'Filtrar nombre del componente',\n    filterVarName: 'Filtrar nombre de la variable',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restablecer valores predeterminados'\n  },\n  Image: {\n    tipPrevious: 'Imagen anterior (←)',\n    tipNext: 'Imagen siguiente (→)',\n    tipCounterclockwise: 'Sentido antihorario',\n    tipClockwise: 'Sentido horario',\n    tipZoomOut: 'Alejar',\n    tipZoomIn: 'Acercar',\n    tipDownload: 'Descargar',\n    tipClose: 'Cerrar (Esc)',\n    tipOriginalSize: 'Zoom al tamaño original'\n  },\n  Heatmap: {\n    less: 'menos',\n    more: 'más',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default esES\n","import type { NLocale } from './enUS'\n\nconst etEE: NLocale = {\n  name: 'et-EE',\n  global: {\n    undo: 'Võta tagasi',\n    redo: 'Rakenda uuesti',\n    confirm: 'Kinnita',\n    clear: 'Tühjenda'\n  },\n  Popconfirm: {\n    positiveText: 'Kinnita',\n    negativeText: 'Katkesta'\n  },\n  Cascader: {\n    placeholder: 'Vali',\n    loading: 'Laeb',\n    loadingRequiredMessage: (label: string): string =>\n      `Enne kontrollimist pead elemendi ${label} kõik alamad laadima.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Tühjenda',\n    now: 'Nüüd',\n    confirm: 'Kinnita',\n    selectTime: 'Vali aeg',\n    selectDate: 'Vali kuupäev',\n    datePlaceholder: 'Vali kuupäev',\n    datetimePlaceholder: 'Vali aeg ja kuupäev',\n    monthPlaceholder: 'Vali kuu',\n    yearPlaceholder: 'Vali aasta',\n    quarterPlaceholder: 'Vali kvartal',\n    weekPlaceholder: 'Vali nädal',\n    startDatePlaceholder: 'Alguskpv',\n    endDatePlaceholder: 'Lõppkpv',\n    startDatetimePlaceholder: 'Alguskpv ja -aeg',\n    endDatetimePlaceholder: 'Lõppkpv ja -aeg',\n    startMonthPlaceholder: 'Alguskuu',\n    endMonthPlaceholder: 'Lõppkuu',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Täna'\n  },\n  DataTable: {\n    checkTableAll: 'Vali tabelis kõik',\n    uncheckTableAll: 'Tühista tabeli valik',\n    confirm: 'Kinnita',\n    clear: 'Tühjenda'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Kust',\n    targetTitle: 'Kuhu'\n  },\n  Transfer: {\n    selectAll: 'Vali kõik',\n    unselectAll: 'Tühista valik',\n    clearAll: 'Tühjenda',\n    total: (num: number): string => `Kokku ${num} rida`,\n    selected: (num: number): string => `${num} rida valitud`\n  },\n  Empty: {\n    description: 'Andmeid pole'\n  },\n  Select: {\n    placeholder: 'Vali'\n  },\n  TimePicker: {\n    placeholder: 'Vali aeg',\n    positiveText: 'OK',\n    negativeText: 'Katkesta',\n    now: 'Nüüd',\n    clear: 'Tühjenda'\n  },\n  Pagination: {\n    goto: 'Mine',\n    selectionSuffix: 'lk'\n  },\n  DynamicTags: {\n    add: 'Lisa'\n  },\n  Log: {\n    loading: 'Laeb'\n  },\n  Input: {\n    placeholder: 'Sisesta'\n  },\n  InputNumber: {\n    placeholder: 'Sisesta'\n  },\n  DynamicInput: {\n    create: 'Loo'\n  },\n  ThemeEditor: {\n    title: 'Teemaredaktor',\n    clearAllVars: 'Tühjenda kõik muutujad',\n    clearSearch: 'Tühjenda otsing',\n    filterCompName: 'Filter komponendi nimega',\n    filterVarName: 'Filter muutuja nimega',\n    import: 'Import',\n    export: 'Eksport',\n    restore: 'Taasta originaal'\n  },\n  Image: {\n    tipPrevious: 'Eelmine pilt (←)',\n    tipNext: 'Järgmine pilt (→)',\n    tipCounterclockwise: 'Vastupäeva',\n    tipClockwise: 'Päripäeva',\n    tipZoomOut: 'Suumi välja',\n    tipZoomIn: 'Suumi sisse',\n    tipDownload: 'Lae alla',\n    tipClose: 'Sulge (Esc)',\n    tipOriginalSize: 'Algsuurus'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default etEE\n","import type { NLocale } from './enUS'\n\nconst euES: NLocale = {\n  name: 'eu-ES',\n  global: {\n    undo: 'Desegin',\n    redo: 'Berregin',\n    confirm: 'Berretsi',\n    clear: 'Garbitu'\n  },\n  Popconfirm: {\n    positiveText: 'Berretsi',\n    negativeText: 'Utzi'\n  },\n  Cascader: {\n    placeholder: 'Hautatu',\n    loading: 'Kargatzen',\n    loadingRequiredMessage: (label: string): string =>\n      `Kargatu ${label}(r)en ondorengo guztiak hautatu aurretik.`\n  },\n  Time: {\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy/MM',\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Garbitu',\n    now: 'Orain',\n    confirm: 'Berretsi',\n    selectTime: 'Hautatu ordua',\n    selectDate: 'Hautatu data',\n    datePlaceholder: 'Hautatu data',\n    datetimePlaceholder: 'Hautatu data eta ordua',\n    monthPlaceholder: 'Hautatu hilabetea',\n    yearPlaceholder: 'Hautatu urtea',\n    quarterPlaceholder: 'Hautatu hiruhilekoa',\n    weekPlaceholder: 'Hautatu astea',\n    startDatePlaceholder: 'Hasiera-data',\n    endDatePlaceholder: 'Amaiera-data',\n    startDatetimePlaceholder: 'Hasiera-data eta ordua',\n    endDatetimePlaceholder: 'Amaiera-data eta ordua',\n    startMonthPlaceholder: 'Hasiera-hilabetea',\n    endMonthPlaceholder: 'Amaiera-hilabetea',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Gaur'\n  },\n  DataTable: {\n    checkTableAll: 'Hautatu taulako dena',\n    uncheckTableAll: 'Desautatu taulako dena',\n    confirm: 'Berretsi',\n    clear: 'Garbitu'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Iturburua',\n    targetTitle: 'Helburua'\n  },\n  Transfer: {\n    selectAll: 'Hautatu dena',\n    unselectAll: 'Desautatu dena',\n    clearAll: 'Garbitu',\n    total: (num: number): string => `Guztira ${num} elementu`,\n    selected: (num: number): string => `${num} elementu hautatuta`\n  },\n  Empty: {\n    description: 'Ez dago daturik'\n  },\n  Select: {\n    placeholder: 'Hautatu'\n  },\n  TimePicker: {\n    placeholder: 'Hautatu ordua',\n    positiveText: 'Ados',\n    negativeText: 'Utzi',\n    now: 'Orain',\n    clear: 'Garbitu'\n  },\n  Pagination: {\n    goto: 'Joan hona',\n    selectionSuffix: 'orrialde'\n  },\n  DynamicTags: {\n    add: 'Gehitu'\n  },\n  Log: {\n    loading: 'Kargatzen'\n  },\n  Input: {\n    placeholder: 'Idatzi'\n  },\n  InputNumber: {\n    placeholder: 'Idatzi'\n  },\n  DynamicInput: {\n    create: 'Sortu'\n  },\n  ThemeEditor: {\n    title: 'Gai-editorea',\n    clearAllVars: 'Garbitu aldagai guztiak',\n    clearSearch: 'Garbitu bilaketa',\n    filterCompName: 'Iragazi osagaiaren izena',\n    filterVarName: 'Iragazi aldagaiaren izena',\n    import: 'Inportatu',\n    export: 'Esportatu',\n    restore: 'Berrezarri lehenetsiak'\n  },\n  Image: {\n    tipPrevious: 'Aurreko irudia (←)',\n    tipNext: 'Hurrengo irudia (→)',\n    tipCounterclockwise: 'Erlojuaren aurka',\n    tipClockwise: 'Erlojuaren noranzkoan',\n    tipZoomOut: 'Urrundu',\n    tipZoomIn: 'Hurbildu',\n    tipDownload: 'Deskargatu',\n    tipClose: 'Itxi (Esc)',\n    tipOriginalSize: 'Jatorrizko tamainara zooma'\n  },\n  Heatmap: {\n    less: 'gutxiago',\n    more: 'gehiago',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default euES\n","import type { NLocale } from './enUS'\n\nconst faIR: NLocale = {\n  name: 'fa-IR',\n  global: {\n    undo: 'لغو انجام شده',\n    redo: 'انجام دوباره',\n    confirm: 'تأیید',\n    clear: 'پاک کردن'\n  },\n  Popconfirm: {\n    positiveText: 'تأیید',\n    negativeText: 'لغو'\n  },\n  Cascader: {\n    placeholder: 'لطفا انتخاب کنید',\n    loading: 'بارگذاری',\n    loadingRequiredMessage: (label: string): string =>\n      `پس از بارگیری کامل زیرمجموعه های ${label} می توانید انتخاب کنید `\n  },\n  Time: {\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd، H:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy سال',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'yyyy/MM/dd',\n    dateTimeFormat: 'yyyy/MM/dd HH:mm:ss',\n    quarterFormat: 'سه ماهه yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'پاک کردن',\n    now: 'اکنون',\n    confirm: 'تأیید',\n    selectTime: 'انتخاب زمان',\n    selectDate: 'انتخاب تاریخ',\n    datePlaceholder: 'انتخاب تاریخ',\n    datetimePlaceholder: 'انتخاب تاریخ و زمان',\n    monthPlaceholder: 'انتخاب ماه',\n    yearPlaceholder: 'انتخاب سال',\n    quarterPlaceholder: 'انتخاب سه‌ماهه',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'تاریخ شروع',\n    endDatePlaceholder: 'تاریخ پایان',\n    startDatetimePlaceholder: 'زمان شروع',\n    endDatetimePlaceholder: 'زمان پایان',\n    startMonthPlaceholder: 'ماه شروع',\n    endMonthPlaceholder: 'ماه پایان',\n    monthBeforeYear: false,\n    firstDayOfWeek: 6,\n    today: 'امروز'\n  },\n  DataTable: {\n    checkTableAll: 'انتخاب همه داده‌های جدول',\n    uncheckTableAll: 'عدم انتخاب همه داده‌های جدول',\n    confirm: 'تأیید',\n    clear: 'تنظیم مجدد'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'آیتم منبع',\n    targetTitle: 'آیتم مقصد'\n  },\n  Transfer: {\n    selectAll: 'انتخاب همه',\n    clearAll: 'حذف همه',\n    unselectAll: 'عدم انتخاب همه',\n    total: (num: number): string => `کل ${num} مورد`,\n    selected: (num: number): string => `انتخاب شده ${num} مورد`\n  },\n  Empty: {\n    description: 'اطلاعاتی وجود ندارد'\n  },\n  Select: {\n    placeholder: 'لطفاً انتخاب کنید'\n  },\n  TimePicker: {\n    placeholder: 'لطفاً زمان مورد نظر را انتخاب کنید',\n    positiveText: 'تأیید',\n    negativeText: 'لغو',\n    now: 'همین الان',\n    clear: 'پاک کردن'\n  },\n  Pagination: {\n    goto: 'رفتن به صفحه',\n    selectionSuffix: 'صفحه'\n  },\n  DynamicTags: {\n    add: 'افزودن'\n  },\n  Log: {\n    loading: 'در حال بارگذاری'\n  },\n  Input: {\n    placeholder: 'لطفاً وارد کنید'\n  },\n  InputNumber: {\n    placeholder: 'لطفاً وارد کنید'\n  },\n  DynamicInput: {\n    create: 'افزودن'\n  },\n  ThemeEditor: {\n    title: 'ویرایشگر پوسته',\n    clearAllVars: 'پاک کردن همه متغیرها',\n    clearSearch: 'پاک کردن جستجو',\n    filterCompName: 'فیلتر نام کامپوننت',\n    filterVarName: 'فیلتر نام متغیر',\n    import: 'ورود',\n    export: 'خروج',\n    restore: 'بازگردانی به حالت پیش‌فرض'\n  },\n  Image: {\n    tipPrevious: 'تصویر قبلی (←)',\n    tipNext: 'تصویر بعدی (→)',\n    tipCounterclockwise: 'چرخش به سمت چپ',\n    tipClockwise: 'چرخش به سمت راست',\n    tipZoomOut: 'کوچک نمایی تصویر',\n    tipZoomIn: 'بزرگ نمایی تصویر',\n    tipDownload: 'بارگیری',\n    tipClose: 'بستن (Esc)',\n    tipOriginalSize: 'اندازه اصلی تصویر'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default faIR\n","import type { NLocale } from './enUS'\n\nconst fiFI: NLocale = {\n  name: 'fi-FI',\n  global: {\n    undo: 'Kumoa',\n    redo: 'Tee uudelleen',\n    confirm: 'Vahvista',\n    clear: 'Tyhjennä'\n  },\n  Popconfirm: {\n    positiveText: 'Vahvista',\n    negativeText: 'Peruuta'\n  },\n  Cascader: {\n    placeholder: 'Valitse',\n    loading: 'Ladataan',\n    loadingRequiredMessage: (label: string): string =>\n      `Lataa kaikki kohteen ${label} alikohteet ennen valintaa.`\n  },\n  Time: {\n    dateFormat: 'd.M.yyyy',\n    dateTimeFormat: 'd.M.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'M.yyyy',\n    dateFormat: 'd.M.yyyy',\n    dateTimeFormat: 'd.M.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Tyhjennä',\n    now: 'Nyt',\n    confirm: 'Vahvista',\n    selectTime: 'Valitse aika',\n    selectDate: 'Valitse päivämäärä',\n    datePlaceholder: 'Valitse päivämäärä',\n    datetimePlaceholder: 'Valitse päivämäärä ja aika',\n    monthPlaceholder: 'Valitse kuukausi',\n    yearPlaceholder: 'Valitse vuosi',\n    quarterPlaceholder: 'Valitse vuosineljännes',\n    weekPlaceholder: 'Valitse viikko',\n    startDatePlaceholder: 'Alkamispäivä',\n    endDatePlaceholder: 'Päättymispäivä',\n    startDatetimePlaceholder: 'Alkamisajankohta',\n    endDatetimePlaceholder: 'Päättymisajankohta',\n    startMonthPlaceholder: 'Alkukuukausi',\n    endMonthPlaceholder: 'Päättymiskuukausi',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Tänään'\n  },\n  DataTable: {\n    checkTableAll: 'Valitse kaikki taulukosta',\n    uncheckTableAll: 'Poista taulukon valinnat',\n    confirm: 'Vahvista',\n    clear: 'Tyhjennä'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Lähde',\n    targetTitle: 'Kohde'\n  },\n  Transfer: {\n    selectAll: 'Valitse kaikki',\n    unselectAll: 'Poista kaikki valinnat',\n    clearAll: 'Tyhjennä',\n    total: (num: number): string => `Yhteensä ${num} kohdetta`,\n    selected: (num: number): string => `${num} kohdetta valittu`\n  },\n  Empty: {\n    description: 'Ei tietoja'\n  },\n  Select: {\n    placeholder: 'Valitse'\n  },\n  TimePicker: {\n    placeholder: 'Valitse aika',\n    positiveText: 'OK',\n    negativeText: 'Peruuta',\n    now: 'Nyt',\n    clear: 'Tyhjennä'\n  },\n  Pagination: {\n    goto: 'Siirry',\n    selectionSuffix: 'sivu'\n  },\n  DynamicTags: {\n    add: 'Lisää'\n  },\n  Log: {\n    loading: 'Ladataan'\n  },\n  Input: {\n    placeholder: 'Kirjoita'\n  },\n  InputNumber: {\n    placeholder: 'Kirjoita'\n  },\n  DynamicInput: {\n    create: 'Luo'\n  },\n  ThemeEditor: {\n    title: 'Teemaeditori',\n    clearAllVars: 'Tyhjennä kaikki muuttujat',\n    clearSearch: 'Tyhjennä haku',\n    filterCompName: 'Suodata komponentin nimi',\n    filterVarName: 'Suodata muuttujan nimi',\n    import: 'Tuo',\n    export: 'Vie',\n    restore: 'Palauta oletukset'\n  },\n  Image: {\n    tipPrevious: 'Edellinen kuva (←)',\n    tipNext: 'Seuraava kuva (→)',\n    tipCounterclockwise: 'Vastapäivään',\n    tipClockwise: 'Myötäpäivään',\n    tipZoomOut: 'Loitonna',\n    tipZoomIn: 'Lähennä',\n    tipDownload: 'Lataa',\n    tipClose: 'Sulje (Esc)',\n    tipOriginalSize: 'Zoomaa alkuperäiseen kokoon'\n  },\n  Heatmap: {\n    less: 'vähemmän',\n    more: 'enemmän',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default fiFI\n","import type { NLocale } from './enUS'\n\nconst filPH: NLocale = {\n  name: 'fil-PH',\n  global: {\n    undo: 'I-undo',\n    redo: 'I-redo',\n    confirm: 'Kumpirmahin',\n    clear: 'I-clear'\n  },\n  Popconfirm: {\n    positiveText: 'Kumpirmahin',\n    negativeText: 'Kanselahin'\n  },\n  Cascader: {\n    placeholder: 'Mangyaring pumili',\n    loading: 'Naglo-load',\n    loadingRequiredMessage: (label: string): string =>\n      `I-load muna ang lahat ng descendant ng ${label} bago ito piliin.`\n  },\n  Time: {\n    dateFormat: 'MM/dd/yyyy',\n    dateTimeFormat: 'MM/dd/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'MM/dd/yyyy',\n    dateTimeFormat: 'MM/dd/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'I-clear',\n    now: 'Ngayon',\n    confirm: 'Kumpirmahin',\n    selectTime: 'Pumili ng oras',\n    selectDate: 'Pumili ng petsa',\n    datePlaceholder: 'Pumili ng petsa',\n    datetimePlaceholder: 'Pumili ng petsa at oras',\n    monthPlaceholder: 'Pumili ng buwan',\n    yearPlaceholder: 'Pumili ng taon',\n    quarterPlaceholder: 'Pumili ng quarter',\n    weekPlaceholder: 'Pumili ng linggo',\n    startDatePlaceholder: 'Petsa ng simula',\n    endDatePlaceholder: 'Petsa ng tapos',\n    startDatetimePlaceholder: 'Petsa at oras ng simula',\n    endDatetimePlaceholder: 'Petsa at oras ng tapos',\n    startMonthPlaceholder: 'Buwan ng simula',\n    endMonthPlaceholder: 'Buwan ng tapos',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Ngayong araw'\n  },\n  DataTable: {\n    checkTableAll: 'Piliin lahat sa talahanayan',\n    uncheckTableAll: 'Alisin ang lahat ng seleksyon sa talahanayan',\n    confirm: 'Kumpirmahin',\n    clear: 'I-clear'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Pinagmulan',\n    targetTitle: 'Destinasyon'\n  },\n  Transfer: {\n    selectAll: 'Piliin lahat',\n    unselectAll: 'Alisin ang lahat ng seleksyon',\n    clearAll: 'I-clear',\n    total: (num: number): string => `Kabuuan ${num} item`,\n    selected: (num: number): string => `${num} item ang napili`\n  },\n  Empty: {\n    description: 'Walang data'\n  },\n  Select: {\n    placeholder: 'Mangyaring pumili'\n  },\n  TimePicker: {\n    placeholder: 'Pumili ng oras',\n    positiveText: 'OK',\n    negativeText: 'Kanselahin',\n    now: 'Ngayon',\n    clear: 'I-clear'\n  },\n  Pagination: {\n    goto: 'Pumunta sa',\n    selectionSuffix: 'pahina'\n  },\n  DynamicTags: {\n    add: 'Idagdag'\n  },\n  Log: {\n    loading: 'Naglo-load'\n  },\n  Input: {\n    placeholder: 'Mangyaring maglagay'\n  },\n  InputNumber: {\n    placeholder: 'Mangyaring maglagay'\n  },\n  DynamicInput: {\n    create: 'Lumikha'\n  },\n  ThemeEditor: {\n    title: 'Theme Editor',\n    clearAllVars: 'I-clear ang lahat ng variable',\n    clearSearch: 'I-clear ang paghahanap',\n    filterCompName: 'I-filter ang pangalan ng component',\n    filterVarName: 'I-filter ang pangalan ng variable',\n    import: 'I-import',\n    export: 'I-export',\n    restore: 'Ibalik sa default'\n  },\n  Image: {\n    tipPrevious: 'Nakaraang larawan (←)',\n    tipNext: 'Susunod na larawan (→)',\n    tipCounterclockwise: 'Pakaliwa',\n    tipClockwise: 'Pakanan',\n    tipZoomOut: 'Liitan',\n    tipZoomIn: 'Palakihin',\n    tipDownload: 'I-download',\n    tipClose: 'Isara (Esc)',\n    tipOriginalSize: 'I-zoom sa orihinal na sukat'\n  },\n  Heatmap: {\n    less: 'mas kaunti',\n    more: 'mas marami',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default filPH\n","import type { NLocale } from './enUS'\n\nconst frFR: NLocale = {\n  name: 'fr-FR',\n  global: {\n    undo: 'Défaire',\n    redo: 'Refaire',\n    confirm: 'Confirmer',\n    clear: 'Effacer'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmer',\n    negativeText: 'Annuler'\n  },\n  Cascader: {\n    placeholder: 'Sélectionner',\n    loading: 'Chargement',\n    loadingRequiredMessage: (label: string): string =>\n      `Charger tous les enfants de ${label} avant de le sélectionner`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'qqq yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'Effacer',\n    now: 'Maintenant',\n    confirm: 'Confirmer',\n    selectTime: 'Sélectionner l\\'heure',\n    selectDate: 'Sélectionner la date',\n    datePlaceholder: 'Sélectionner la date',\n    datetimePlaceholder: 'Sélectionner la date et l\\'heure',\n    monthPlaceholder: 'Sélectionner le mois',\n    yearPlaceholder: 'Sélectionner l\\'année',\n    quarterPlaceholder: 'Sélectionner le trimestre',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Date de début',\n    endDatePlaceholder: 'Date de fin',\n    startDatetimePlaceholder: 'Date et heure de début',\n    endDatetimePlaceholder: 'Date et heure de fin',\n    startMonthPlaceholder: 'Mois de début',\n    endMonthPlaceholder: 'Mois de fin',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0,\n    today: 'Aujourd\\'hui'\n  },\n  DataTable: {\n    checkTableAll: 'Sélectionner tout',\n    uncheckTableAll: 'Désélectionner tout',\n    confirm: 'Confirmer',\n    clear: 'Effacer'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Source',\n    targetTitle: 'Cible'\n  },\n  Transfer: {\n    selectAll: 'Sélectionner tout',\n    unselectAll: 'Désélectionner tout',\n    clearAll: 'Effacer',\n    total: (num: number): string => `Total ${num} éléments`,\n    selected: (num: number): string => `${num} éléments sélectionnés`\n  },\n  Empty: {\n    description: 'Aucune donnée'\n  },\n  Select: {\n    placeholder: 'Sélectionner'\n  },\n  TimePicker: {\n    placeholder: 'Sélectionner l\\'heure',\n    positiveText: 'OK',\n    negativeText: 'Annuler',\n    now: 'Maintenant',\n    clear: 'Effacer'\n  },\n  Pagination: {\n    goto: 'Aller à',\n    selectionSuffix: 'page'\n  },\n  DynamicTags: {\n    add: 'Ajouter'\n  },\n  Log: {\n    loading: 'Chargement'\n  },\n  Input: {\n    placeholder: 'Saisir'\n  },\n  InputNumber: {\n    placeholder: 'Saisir'\n  },\n  DynamicInput: {\n    create: 'Créer'\n  },\n  ThemeEditor: {\n    title: 'Éditeur de thème',\n    clearAllVars: 'Effacer toutes les variables',\n    clearSearch: 'Effacer la recherche',\n    filterCompName: 'Filtrer par nom de composant',\n    filterVarName: 'Filtrer par nom de variable',\n    import: 'Importer',\n    export: 'Exporter',\n    restore: 'Réinitialiser'\n  },\n  Image: {\n    tipPrevious: 'Image précédente (←)',\n    tipNext: 'Image suivante (→)',\n    tipCounterclockwise: 'Sens antihoraire',\n    tipClockwise: 'Sens horaire',\n    tipZoomOut: 'Dézoomer',\n    tipZoomIn: 'Zoomer',\n    tipDownload: 'Descargar',\n    tipClose: 'Fermer (Échap.)',\n    tipOriginalSize: 'Zoom à la taille originale'\n  },\n  Heatmap: {\n    less: 'moins',\n    more: 'plus',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default frFR\n","import type { NLocale } from './enUS'\n\nconst glES: NLocale = {\n  name: 'gl-ES',\n  global: {\n    undo: 'Desfacer',\n    redo: 'Refacer',\n    confirm: 'Confirmar',\n    clear: 'Borrar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancelar'\n  },\n  Cascader: {\n    placeholder: 'Seleccione',\n    loading: 'Cargando',\n    loadingRequiredMessage: (label: string): string =>\n      `Cargue todos os descendentes de ${label} antes de seleccionalo.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Borrar',\n    now: 'Agora',\n    confirm: 'Confirmar',\n    selectTime: 'Seleccionar hora',\n    selectDate: 'Seleccionar data',\n    datePlaceholder: 'Seleccionar data',\n    datetimePlaceholder: 'Seleccionar data e hora',\n    monthPlaceholder: 'Seleccionar mes',\n    yearPlaceholder: 'Seleccionar ano',\n    quarterPlaceholder: 'Seleccionar trimestre',\n    weekPlaceholder: 'Seleccionar semana',\n    startDatePlaceholder: 'Data de inicio',\n    endDatePlaceholder: 'Data de fin',\n    startDatetimePlaceholder: 'Data e hora de inicio',\n    endDatetimePlaceholder: 'Data e hora de fin',\n    startMonthPlaceholder: 'Mes de inicio',\n    endMonthPlaceholder: 'Mes de fin',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hoxe'\n  },\n  DataTable: {\n    checkTableAll: 'Seleccionar todo na táboa',\n    uncheckTableAll: 'Deseleccionar todo na táboa',\n    confirm: 'Confirmar',\n    clear: 'Borrar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Orixe',\n    targetTitle: 'Destino'\n  },\n  Transfer: {\n    selectAll: 'Seleccionar todo',\n    unselectAll: 'Deseleccionar todo',\n    clearAll: 'Borrar',\n    total: (num: number): string => `Total ${num} elementos`,\n    selected: (num: number): string => `${num} elementos seleccionados`\n  },\n  Empty: {\n    description: 'Sen datos'\n  },\n  Select: {\n    placeholder: 'Seleccione'\n  },\n  TimePicker: {\n    placeholder: 'Seleccionar hora',\n    positiveText: 'Aceptar',\n    negativeText: 'Cancelar',\n    now: 'Agora',\n    clear: 'Borrar'\n  },\n  Pagination: {\n    goto: 'Ir a',\n    selectionSuffix: 'páxina'\n  },\n  DynamicTags: {\n    add: 'Engadir'\n  },\n  Log: {\n    loading: 'Cargando'\n  },\n  Input: {\n    placeholder: 'Introduza'\n  },\n  InputNumber: {\n    placeholder: 'Introduza'\n  },\n  DynamicInput: {\n    create: 'Crear'\n  },\n  ThemeEditor: {\n    title: 'Editor de tema',\n    clearAllVars: 'Borrar todas as variables',\n    clearSearch: 'Borrar a busca',\n    filterCompName: 'Filtrar nome do compoñente',\n    filterVarName: 'Filtrar nome da variable',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restablecer os valores predeterminados'\n  },\n  Image: {\n    tipPrevious: 'Imaxe anterior (←)',\n    tipNext: 'Imaxe seguinte (→)',\n    tipCounterclockwise: 'Sentido antihorario',\n    tipClockwise: 'Sentido horario',\n    tipZoomOut: 'Afastar',\n    tipZoomIn: 'Achegar',\n    tipDownload: 'Descargar',\n    tipClose: 'Pechar (Esc)',\n    tipOriginalSize: 'Zoom ao tamaño orixinal'\n  },\n  Heatmap: {\n    less: 'menos',\n    more: 'máis',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default glES\n","import type { NLocale } from './enUS'\n\nconst guIN: NLocale = {\n  name: 'gu-IN',\n  global: {\n    undo: 'પૂર્વવત કરો',\n    redo: 'ફરીથી કરો',\n    confirm: 'પુષ્ટિ કરો',\n    clear: 'સાફ કરો'\n  },\n  Popconfirm: {\n    positiveText: 'પુષ્ટિ કરો',\n    negativeText: 'રદ કરો'\n  },\n  Cascader: {\n    placeholder: 'કૃપા કરીને પસંદ કરો',\n    loading: 'લોડ થઈ રહ્યું છે',\n    loadingRequiredMessage: (label: string): string =>\n      `કૃપા કરીને તપાસતા પહેલાં ${label}ના બધા વંશજો લોડ કરો.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'સાફ કરો',\n    now: 'હમણાં',\n    confirm: 'પુષ્ટિ કરો',\n    selectTime: 'સમય પસંદ કરો',\n    selectDate: 'તારીખ પસંદ કરો',\n    datePlaceholder: 'તારીખ પસંદ કરો',\n    datetimePlaceholder: 'તારીખ અને સમય પસંદ કરો',\n    monthPlaceholder: 'મહિનો પસંદ કરો',\n    yearPlaceholder: 'વર્ષ પસંદ કરો',\n    quarterPlaceholder: 'ત્રિમાસિક પસંદ કરો',\n    weekPlaceholder: 'અઠવાડિયું પસંદ કરો',\n    startDatePlaceholder: 'પ્રારંભ તારીખ',\n    endDatePlaceholder: 'સમાપ્તિ તારીખ',\n    startDatetimePlaceholder: 'પ્રારંભ તારીખ અને સમય',\n    endDatetimePlaceholder: 'સમાપ્તિ તારીખ અને સમય',\n    startMonthPlaceholder: 'પ્રારંભ મહિનો',\n    endMonthPlaceholder: 'સમાપ્તિ મહિનો',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'આજે'\n  },\n  DataTable: {\n    checkTableAll: 'કોષ્ટકમાં બધું પસંદ કરો',\n    uncheckTableAll: 'કોષ્ટકમાં બધી પસંદગી દૂર કરો',\n    confirm: 'પુષ્ટિ કરો',\n    clear: 'સાફ કરો'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'સ્ત્રોત',\n    targetTitle: 'લક્ષ્ય'\n  },\n  Transfer: {\n    selectAll: 'બધું પસંદ કરો',\n    unselectAll: 'બધી પસંદગી દૂર કરો',\n    clearAll: 'સાફ કરો',\n    total: (num: number): string => `કુલ ${num} આઇટમ`,\n    selected: (num: number): string => `${num} આઇટમ પસંદ થયેલ`\n  },\n  Empty: {\n    description: 'કોઈ ડેટા નથી'\n  },\n  Select: {\n    placeholder: 'કૃપા કરીને પસંદ કરો'\n  },\n  TimePicker: {\n    placeholder: 'સમય પસંદ કરો',\n    positiveText: 'ઠીક છે',\n    negativeText: 'રદ કરો',\n    now: 'હમણાં',\n    clear: 'સાફ કરો'\n  },\n  Pagination: {\n    goto: 'જાઓ',\n    selectionSuffix: 'પૃષ્ઠ'\n  },\n  DynamicTags: {\n    add: 'ઉમેરો'\n  },\n  Log: {\n    loading: 'લોડ થઈ રહ્યું છે'\n  },\n  Input: {\n    placeholder: 'કૃપા કરીને દાખલ કરો'\n  },\n  InputNumber: {\n    placeholder: 'કૃપા કરીને દાખલ કરો'\n  },\n  DynamicInput: {\n    create: 'બનાવો'\n  },\n  ThemeEditor: {\n    title: 'થીમ સંપાદક',\n    clearAllVars: 'બધા ચલ સાફ કરો',\n    clearSearch: 'શોધ સાફ કરો',\n    filterCompName: 'ઘટકનું નામ ફિલ્ટર કરો',\n    filterVarName: 'ચલનું નામ ફિલ્ટર કરો',\n    import: 'આયાત',\n    export: 'નિકાસ',\n    restore: 'ડિફોલ્ટ પર પુનઃસેટ કરો'\n  },\n  Image: {\n    tipPrevious: 'પાછલી તસવીર (←)',\n    tipNext: 'આગલી તસવીર (→)',\n    tipCounterclockwise: 'ઘડિયાળની વિરુદ્ધ દિશામાં',\n    tipClockwise: 'ઘડિયાળની દિશામાં',\n    tipZoomOut: 'નાનું કરો',\n    tipZoomIn: 'મોટું કરો',\n    tipDownload: 'ડાઉનલોડ',\n    tipClose: 'બંધ કરો (Esc)',\n    tipOriginalSize: 'મૂળ કદ પર ઝૂમ કરો'\n  },\n  Heatmap: {\n    less: 'ઓછું',\n    more: 'વધુ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default guIN\n","import type { NLocale } from './enUS'\n\nconst heIL: NLocale = {\n  name: 'he-IL',\n  global: {\n    undo: 'בטל',\n    redo: 'בצע שוב',\n    confirm: 'אישור',\n    clear: 'נקה'\n  },\n  Popconfirm: {\n    positiveText: 'אישור',\n    negativeText: 'ביטול'\n  },\n  Cascader: {\n    placeholder: 'נא לבחור',\n    loading: 'טוען',\n    loadingRequiredMessage: (label: string): string =>\n      `יש לטעון את כל הצאצאים של ${label} לפני הבחירה.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'נקה',\n    now: 'עכשיו',\n    confirm: 'אישור',\n    selectTime: 'בחירת שעה',\n    selectDate: 'בחירת תאריך',\n    datePlaceholder: 'בחירת תאריך',\n    datetimePlaceholder: 'בחירת תאריך ושעה',\n    monthPlaceholder: 'בחירת חודש',\n    yearPlaceholder: 'בחירת שנה',\n    quarterPlaceholder: 'בחירת רבעון',\n    weekPlaceholder: 'בחירת שבוע',\n    startDatePlaceholder: 'תאריך התחלה',\n    endDatePlaceholder: 'תאריך סיום',\n    startDatetimePlaceholder: 'תאריך ושעת התחלה',\n    endDatetimePlaceholder: 'תאריך ושעת סיום',\n    startMonthPlaceholder: 'חודש התחלה',\n    endMonthPlaceholder: 'חודש סיום',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'היום'\n  },\n  DataTable: {\n    checkTableAll: 'בחר הכול בטבלה',\n    uncheckTableAll: 'בטל בחירה בטבלה',\n    confirm: 'אישור',\n    clear: 'נקה'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'מקור',\n    targetTitle: 'יעד'\n  },\n  Transfer: {\n    selectAll: 'בחר הכול',\n    unselectAll: 'בטל בחירה',\n    clearAll: 'נקה',\n    total: (num: number): string => `סה״כ ${num} פריטים`,\n    selected: (num: number): string => `נבחרו ${num} פריטים`\n  },\n  Empty: {\n    description: 'אין נתונים'\n  },\n  Select: {\n    placeholder: 'נא לבחור'\n  },\n  TimePicker: {\n    placeholder: 'בחירת שעה',\n    positiveText: 'אישור',\n    negativeText: 'ביטול',\n    now: 'עכשיו',\n    clear: 'נקה'\n  },\n  Pagination: {\n    goto: 'עבור אל',\n    selectionSuffix: 'עמוד'\n  },\n  DynamicTags: {\n    add: 'הוסף'\n  },\n  Log: {\n    loading: 'טוען'\n  },\n  Input: {\n    placeholder: 'נא להזין'\n  },\n  InputNumber: {\n    placeholder: 'נא להזין'\n  },\n  DynamicInput: {\n    create: 'צור'\n  },\n  ThemeEditor: {\n    title: 'עורך ערכת נושא',\n    clearAllVars: 'נקה את כל המשתנים',\n    clearSearch: 'נקה חיפוש',\n    filterCompName: 'סינון שם רכיב',\n    filterVarName: 'סינון שם משתנה',\n    import: 'ייבוא',\n    export: 'ייצוא',\n    restore: 'איפוס לברירת מחדל'\n  },\n  Image: {\n    tipPrevious: 'תמונה קודמת (←)',\n    tipNext: 'תמונה הבאה (→)',\n    tipCounterclockwise: 'נגד כיוון השעון',\n    tipClockwise: 'עם כיוון השעון',\n    tipZoomOut: 'הקטן',\n    tipZoomIn: 'הגדל',\n    tipDownload: 'הורדה',\n    tipClose: 'סגור (Esc)',\n    tipOriginalSize: 'זום לגודל המקורי'\n  },\n  Heatmap: {\n    less: 'פחות',\n    more: 'יותר',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default heIL\n","import type { NLocale } from './enUS'\n\nconst hiIN: NLocale = {\n  name: 'hi-IN',\n  global: {\n    undo: 'पूर्ववत करें',\n    redo: 'पुनः करें',\n    confirm: 'पुष्टि करें',\n    clear: 'साफ़ करें'\n  },\n  Popconfirm: {\n    positiveText: 'पुष्टि करें',\n    negativeText: 'रद्द करें'\n  },\n  Cascader: {\n    placeholder: 'कृपया चुनें',\n    loading: 'लोड हो रहा है',\n    loadingRequiredMessage: (label: string): string =>\n      `कृपया जाँचने से पहले ${label} के सभी वंशजों को लोड करें।`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'साफ़ करें',\n    now: 'अभी',\n    confirm: 'पुष्टि करें',\n    selectTime: 'समय चुनें',\n    selectDate: 'तारीख चुनें',\n    datePlaceholder: 'तारीख चुनें',\n    datetimePlaceholder: 'तारीख और समय चुनें',\n    monthPlaceholder: 'महीना चुनें',\n    yearPlaceholder: 'वर्ष चुनें',\n    quarterPlaceholder: 'तिमाही चुनें',\n    weekPlaceholder: 'सप्ताह चुनें',\n    startDatePlaceholder: 'आरंभ तारीख',\n    endDatePlaceholder: 'समाप्ति तारीख',\n    startDatetimePlaceholder: 'आरंभ तारीख और समय',\n    endDatetimePlaceholder: 'समाप्ति तारीख और समय',\n    startMonthPlaceholder: 'आरंभ महीना',\n    endMonthPlaceholder: 'समाप्ति महीना',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'आज'\n  },\n  DataTable: {\n    checkTableAll: 'तालिका में सभी चुनें',\n    uncheckTableAll: 'तालिका में सभी चयन हटाएँ',\n    confirm: 'पुष्टि करें',\n    clear: 'साफ़ करें'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'स्रोत',\n    targetTitle: 'लक्ष्य'\n  },\n  Transfer: {\n    selectAll: 'सभी चुनें',\n    unselectAll: 'सभी चयन हटाएँ',\n    clearAll: 'साफ़ करें',\n    total: (num: number): string => `कुल ${num} आइटम`,\n    selected: (num: number): string => `${num} आइटम चयनित`\n  },\n  Empty: {\n    description: 'कोई डेटा नहीं'\n  },\n  Select: {\n    placeholder: 'कृपया चुनें'\n  },\n  TimePicker: {\n    placeholder: 'समय चुनें',\n    positiveText: 'ठीक है',\n    negativeText: 'रद्द करें',\n    now: 'अभी',\n    clear: 'साफ़ करें'\n  },\n  Pagination: {\n    goto: 'जाएँ',\n    selectionSuffix: 'पृष्ठ'\n  },\n  DynamicTags: {\n    add: 'जोड़ें'\n  },\n  Log: {\n    loading: 'लोड हो रहा है'\n  },\n  Input: {\n    placeholder: 'कृपया दर्ज करें'\n  },\n  InputNumber: {\n    placeholder: 'कृपया दर्ज करें'\n  },\n  DynamicInput: {\n    create: 'बनाएँ'\n  },\n  ThemeEditor: {\n    title: 'थीम संपादक',\n    clearAllVars: 'सभी चर साफ़ करें',\n    clearSearch: 'खोज साफ़ करें',\n    filterCompName: 'घटक नाम फ़िल्टर करें',\n    filterVarName: 'चर नाम फ़िल्टर करें',\n    import: 'आयात',\n    export: 'निर्यात',\n    restore: 'डिफ़ॉल्ट पर रीसेट करें'\n  },\n  Image: {\n    tipPrevious: 'पिछली तस्वीर (←)',\n    tipNext: 'अगली तस्वीर (→)',\n    tipCounterclockwise: 'वामावर्त',\n    tipClockwise: 'दक्षिणावर्त',\n    tipZoomOut: 'छोटा करें',\n    tipZoomIn: 'बड़ा करें',\n    tipDownload: 'डाउनलोड',\n    tipClose: 'बंद करें (Esc)',\n    tipOriginalSize: 'मूल आकार पर ज़ूम करें'\n  },\n  Heatmap: {\n    less: 'कम',\n    more: 'अधिक',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default hiIN\n","import type { NLocale } from './enUS'\n\nconst hrHR: NLocale = {\n  name: 'hr-HR',\n  global: {\n    undo: 'Poništi',\n    redo: 'Ponovi',\n    confirm: 'Potvrdi',\n    clear: 'Očisti'\n  },\n  Popconfirm: {\n    positiveText: 'Potvrdi',\n    negativeText: 'Odustani'\n  },\n  Cascader: {\n    placeholder: 'Odaberite',\n    loading: 'Učitavanje',\n    loadingRequiredMessage: (label: string): string =>\n      `Učitajte sve potomke stavke ${label} prije odabira.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy.',\n    dateTimeFormat: 'dd.MM.yyyy. HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy.',\n    dateFormat: 'dd.MM.yyyy.',\n    dateTimeFormat: 'dd.MM.yyyy. HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Očisti',\n    now: 'Sada',\n    confirm: 'Potvrdi',\n    selectTime: 'Odaberite vrijeme',\n    selectDate: 'Odaberite datum',\n    datePlaceholder: 'Odaberite datum',\n    datetimePlaceholder: 'Odaberite datum i vrijeme',\n    monthPlaceholder: 'Odaberite mjesec',\n    yearPlaceholder: 'Odaberite godinu',\n    quarterPlaceholder: 'Odaberite kvartal',\n    weekPlaceholder: 'Odaberite tjedan',\n    startDatePlaceholder: 'Datum početka',\n    endDatePlaceholder: 'Datum završetka',\n    startDatetimePlaceholder: 'Datum i vrijeme početka',\n    endDatetimePlaceholder: 'Datum i vrijeme završetka',\n    startMonthPlaceholder: 'Mjesec početka',\n    endMonthPlaceholder: 'Mjesec završetka',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Danas'\n  },\n  DataTable: {\n    checkTableAll: 'Odaberi sve u tablici',\n    uncheckTableAll: 'Poništi odabir u tablici',\n    confirm: 'Potvrdi',\n    clear: 'Očisti'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Izvor',\n    targetTitle: 'Odredište'\n  },\n  Transfer: {\n    selectAll: 'Odaberi sve',\n    unselectAll: 'Poništi odabir',\n    clearAll: 'Očisti',\n    total: (num: number): string => `Ukupno ${num} stavki`,\n    selected: (num: number): string => `Odabrano ${num} stavki`\n  },\n  Empty: {\n    description: 'Nema podataka'\n  },\n  Select: {\n    placeholder: 'Odaberite'\n  },\n  TimePicker: {\n    placeholder: 'Odaberite vrijeme',\n    positiveText: 'U redu',\n    negativeText: 'Odustani',\n    now: 'Sada',\n    clear: 'Očisti'\n  },\n  Pagination: {\n    goto: 'Idi na',\n    selectionSuffix: 'stranica'\n  },\n  DynamicTags: {\n    add: 'Dodaj'\n  },\n  Log: {\n    loading: 'Učitavanje'\n  },\n  Input: {\n    placeholder: 'Unesite'\n  },\n  InputNumber: {\n    placeholder: 'Unesite'\n  },\n  DynamicInput: {\n    create: 'Stvori'\n  },\n  ThemeEditor: {\n    title: 'Uređivač teme',\n    clearAllVars: 'Očisti sve varijable',\n    clearSearch: 'Očisti pretraživanje',\n    filterCompName: 'Filtriraj naziv komponente',\n    filterVarName: 'Filtriraj naziv varijable',\n    import: 'Uvezi',\n    export: 'Izvezi',\n    restore: 'Vrati na zadano'\n  },\n  Image: {\n    tipPrevious: 'Prethodna slika (←)',\n    tipNext: 'Sljedeća slika (→)',\n    tipCounterclockwise: 'Suprotno od kazaljke na satu',\n    tipClockwise: 'U smjeru kazaljke na satu',\n    tipZoomOut: 'Umanji',\n    tipZoomIn: 'Uvećaj',\n    tipDownload: 'Preuzmi',\n    tipClose: 'Zatvori (Esc)',\n    tipOriginalSize: 'Zumiraj na izvornu veličinu'\n  },\n  Heatmap: {\n    less: 'manje',\n    more: 'više',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default hrHR\n","import type { NLocale } from './enUS'\n\nconst huHU: NLocale = {\n  name: 'hu-HU',\n  global: {\n    undo: 'Visszavonás',\n    redo: 'Ismétlés',\n    confirm: 'Megerősítés',\n    clear: 'Törlés'\n  },\n  Popconfirm: {\n    positiveText: 'Megerősítés',\n    negativeText: 'Mégse'\n  },\n  Cascader: {\n    placeholder: 'Kérjük, válasszon',\n    loading: 'Betöltés',\n    loadingRequiredMessage: (label: string): string =>\n      `A kiválasztás előtt töltse be a(z) ${label} összes utódját.`\n  },\n  Time: {\n    dateFormat: 'yyyy.MM.dd.',\n    dateTimeFormat: 'yyyy.MM.dd. HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy.MM.',\n    dateFormat: 'yyyy.MM.dd.',\n    dateTimeFormat: 'yyyy.MM.dd. HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Törlés',\n    now: 'Most',\n    confirm: 'Megerősítés',\n    selectTime: 'Időpont kiválasztása',\n    selectDate: 'Dátum kiválasztása',\n    datePlaceholder: 'Dátum kiválasztása',\n    datetimePlaceholder: 'Dátum és idő kiválasztása',\n    monthPlaceholder: 'Hónap kiválasztása',\n    yearPlaceholder: 'Év kiválasztása',\n    quarterPlaceholder: 'Negyedév kiválasztása',\n    weekPlaceholder: 'Hét kiválasztása',\n    startDatePlaceholder: 'Kezdő dátum',\n    endDatePlaceholder: 'Záró dátum',\n    startDatetimePlaceholder: 'Kezdő dátum és idő',\n    endDatetimePlaceholder: 'Záró dátum és idő',\n    startMonthPlaceholder: 'Kezdő hónap',\n    endMonthPlaceholder: 'Záró hónap',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Ma'\n  },\n  DataTable: {\n    checkTableAll: 'Összes kijelölése a táblázatban',\n    uncheckTableAll: 'Kijelölés törlése a táblázatban',\n    confirm: 'Megerősítés',\n    clear: 'Törlés'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Forrás',\n    targetTitle: 'Cél'\n  },\n  Transfer: {\n    selectAll: 'Összes kijelölése',\n    unselectAll: 'Kijelölés törlése',\n    clearAll: 'Törlés',\n    total: (num: number): string => `Összesen ${num} elem`,\n    selected: (num: number): string => `${num} elem kiválasztva`\n  },\n  Empty: {\n    description: 'Nincs adat'\n  },\n  Select: {\n    placeholder: 'Kérjük, válasszon'\n  },\n  TimePicker: {\n    placeholder: 'Időpont kiválasztása',\n    positiveText: 'OK',\n    negativeText: 'Mégse',\n    now: 'Most',\n    clear: 'Törlés'\n  },\n  Pagination: {\n    goto: 'Ugrás',\n    selectionSuffix: 'oldal'\n  },\n  DynamicTags: {\n    add: 'Hozzáadás'\n  },\n  Log: {\n    loading: 'Betöltés'\n  },\n  Input: {\n    placeholder: 'Kérjük, adja meg'\n  },\n  InputNumber: {\n    placeholder: 'Kérjük, adja meg'\n  },\n  DynamicInput: {\n    create: 'Létrehozás'\n  },\n  ThemeEditor: {\n    title: 'Témaszerkesztő',\n    clearAllVars: 'Összes változó törlése',\n    clearSearch: 'Keresés törlése',\n    filterCompName: 'Komponensnév szűrése',\n    filterVarName: 'Változónév szűrése',\n    import: 'Importálás',\n    export: 'Exportálás',\n    restore: 'Alapértelmezés visszaállítása'\n  },\n  Image: {\n    tipPrevious: 'Előző kép (←)',\n    tipNext: 'Következő kép (→)',\n    tipCounterclockwise: 'Óramutatóval ellentétesen',\n    tipClockwise: 'Óramutató szerint',\n    tipZoomOut: 'Kicsinyítés',\n    tipZoomIn: 'Nagyítás',\n    tipDownload: 'Letöltés',\n    tipClose: 'Bezárás (Esc)',\n    tipOriginalSize: 'Eredeti méretre nagyítás'\n  },\n  Heatmap: {\n    less: 'kevesebb',\n    more: 'több',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default huHU\n","import type { NLocale } from './enUS'\n\nconst hyAM: NLocale = {\n  name: 'hy-AM',\n  global: {\n    undo: 'Հետարկել',\n    redo: 'Կրկնել',\n    confirm: 'Հաստատել',\n    clear: 'Մաքրել'\n  },\n  Popconfirm: {\n    positiveText: 'Հաստատել',\n    negativeText: 'Չեղարկել'\n  },\n  Cascader: {\n    placeholder: 'Խնդրում ենք ընտրել',\n    loading: 'Բեռնում',\n    loadingRequiredMessage: (label: string): string =>\n      `Ընտրելուց առաջ բեռնեք ${label}-ի բոլոր ժառանգներին։`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Մաքրել',\n    now: 'Հիմա',\n    confirm: 'Հաստատել',\n    selectTime: 'Ընտրել ժամը',\n    selectDate: 'Ընտրել ամսաթիվը',\n    datePlaceholder: 'Ընտրել ամսաթիվը',\n    datetimePlaceholder: 'Ընտրել ամսաթիվը և ժամը',\n    monthPlaceholder: 'Ընտրել ամիսը',\n    yearPlaceholder: 'Ընտրել տարին',\n    quarterPlaceholder: 'Ընտրել եռամսյակը',\n    weekPlaceholder: 'Ընտրել շաբաթը',\n    startDatePlaceholder: 'Սկզբի ամսաթիվ',\n    endDatePlaceholder: 'Ավարտի ամսաթիվ',\n    startDatetimePlaceholder: 'Սկզբի ամսաթիվ և ժամ',\n    endDatetimePlaceholder: 'Ավարտի ամսաթիվ և ժամ',\n    startMonthPlaceholder: 'Սկզբի ամիս',\n    endMonthPlaceholder: 'Ավարտի ամիս',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Այսօր'\n  },\n  DataTable: {\n    checkTableAll: 'Ընտրել աղյուսակի բոլորը',\n    uncheckTableAll: 'Ապաընտրել աղյուսակի բոլորը',\n    confirm: 'Հաստատել',\n    clear: 'Մաքրել'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Աղբյուր',\n    targetTitle: 'Նպատակ'\n  },\n  Transfer: {\n    selectAll: 'Ընտրել բոլորը',\n    unselectAll: 'Ապաընտրել բոլորը',\n    clearAll: 'Մաքրել',\n    total: (num: number): string => `Ընդամենը ${num} տարր`,\n    selected: (num: number): string => `Ընտրված է ${num} տարր`\n  },\n  Empty: {\n    description: 'Տվյալներ չկան'\n  },\n  Select: {\n    placeholder: 'Խնդրում ենք ընտրել'\n  },\n  TimePicker: {\n    placeholder: 'Ընտրել ժամը',\n    positiveText: 'Լավ',\n    negativeText: 'Չեղարկել',\n    now: 'Հիմա',\n    clear: 'Մաքրել'\n  },\n  Pagination: {\n    goto: 'Անցնել',\n    selectionSuffix: 'էջ'\n  },\n  DynamicTags: {\n    add: 'Ավելացնել'\n  },\n  Log: {\n    loading: 'Բեռնում'\n  },\n  Input: {\n    placeholder: 'Խնդրում ենք մուտքագրել'\n  },\n  InputNumber: {\n    placeholder: 'Խնդրում ենք մուտքագրել'\n  },\n  DynamicInput: {\n    create: 'Ստեղծել'\n  },\n  ThemeEditor: {\n    title: 'Թեմայի խմբագիր',\n    clearAllVars: 'Մաքրել բոլոր փոփոխականները',\n    clearSearch: 'Մաքրել որոնումը',\n    filterCompName: 'Զտել բաղադրիչի անունը',\n    filterVarName: 'Զտել փոփոխականի անունը',\n    import: 'Ներմուծել',\n    export: 'Արտահանել',\n    restore: 'Վերականգնել լռելյայնը'\n  },\n  Image: {\n    tipPrevious: 'Նախորդ նկար (←)',\n    tipNext: 'Հաջորդ նկար (→)',\n    tipCounterclockwise: 'Ժամացույցի սլաքին հակառակ',\n    tipClockwise: 'Ժամացույցի սլաքի ուղղությամբ',\n    tipZoomOut: 'Փոքրացնել',\n    tipZoomIn: 'Մեծացնել',\n    tipDownload: 'Ներբեռնել',\n    tipClose: 'Փակել (Esc)',\n    tipOriginalSize: 'Մեծացնել սկզբնական չափին'\n  },\n  Heatmap: {\n    less: 'պակաս',\n    more: 'ավելի',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default hyAM\n","import type { NLocale } from './enUS'\n\nconst idID: NLocale = {\n  name: 'id-ID',\n  global: {\n    undo: 'Membatalkan',\n    redo: 'Mem-perbarui',\n    confirm: 'Setuju',\n    clear: 'Bersihkan'\n  },\n  Popconfirm: {\n    positiveText: 'Setuju',\n    negativeText: 'Batalkan'\n  },\n  Cascader: {\n    placeholder: 'Mohon Pilih',\n    loading: 'Memuat',\n    loadingRequiredMessage: (label: string): string =>\n      `Mohon muat semua ${label} sebelum memeriksa.`\n  },\n  Time: {\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Bersihkan',\n    now: 'Sekarang',\n    confirm: 'Setuju',\n    selectTime: 'Pilih Waktu',\n    selectDate: 'Pilih Tanggal',\n    datePlaceholder: 'Pilih Tanggal',\n    datetimePlaceholder: 'Pilih Tanggal dan Waktu',\n    monthPlaceholder: 'Pilih Bulan',\n    // FIXME: translation needed\n    yearPlaceholder: 'Pilih tahun',\n    quarterPlaceholder: 'Pilih perempat tahun',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Tanggal Mulai',\n    endDatePlaceholder: 'Tanggal Selesai',\n    startDatetimePlaceholder: 'Tanggal dan Waktu Mulai',\n    endDatetimePlaceholder: 'Tanggal dan Waktu Selesai',\n    // FIXME: translation needed\n    startMonthPlaceholder: 'Awal bulan',\n    endMonthPlaceholder: 'Akhir bulan',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hari ini'\n  },\n  DataTable: {\n    checkTableAll: 'Pilih semua pada tabel',\n    uncheckTableAll: 'Batalkan pilihan semua',\n    confirm: 'Setuju',\n    clear: 'Bersihkan'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Sumber',\n    targetTitle: 'Tujuan'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Pilih semua',\n    unselectAll: 'Batalkan pilihan',\n    clearAll: 'Bersihkan',\n    total: (num: number): string => `Total ${num} item`,\n    selected: (num: number): string => `${num} item dipilih`\n  },\n  Empty: {\n    description: 'Tidak ada data'\n  },\n  Select: {\n    placeholder: 'Mohon Pilih'\n  },\n  TimePicker: {\n    placeholder: 'Pilih Waktu',\n    positiveText: 'OK',\n    negativeText: 'Batalkan',\n    now: 'Sekarang',\n    clear: 'Bersihkan'\n  },\n  Pagination: {\n    goto: 'Ke',\n    selectionSuffix: 'halaman'\n  },\n  DynamicTags: {\n    add: 'Tambah'\n  },\n  Log: {\n    loading: 'Memuat'\n  },\n  Input: {\n    placeholder: 'Mohon isi'\n  },\n  InputNumber: {\n    placeholder: 'Mohon isi'\n  },\n  DynamicInput: {\n    create: 'Buat baru'\n  },\n  ThemeEditor: {\n    title: 'Pengaturan Tema',\n    clearAllVars: 'Bersihkan semua variabel',\n    clearSearch: 'Bersihkan pencarian',\n    filterCompName: 'Saring nama komponen',\n    filterVarName: 'Saring nama variabel',\n    import: 'Impor',\n    export: 'Ekspor',\n    restore: 'Setel ulang ke awal'\n  },\n  Image: {\n    tipPrevious: 'Gambar sebelumnya (←)',\n    tipNext: 'Gambar berikutnya (→)',\n    tipCounterclockwise: 'Berlawanan arah jarum jam',\n    tipClockwise: 'Searah jarum jam',\n    tipZoomOut: 'Zoom out',\n    tipZoomIn: 'Zoom in',\n    tipDownload: 'Download',\n    tipClose: 'Tutup (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom ke ukuran asli'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default idID\n","import type { NLocale } from './enUS'\n\nconst isIS: NLocale = {\n  name: 'is-IS',\n  global: {\n    undo: 'Afturkalla',\n    redo: 'Endurtaka',\n    confirm: 'Staðfesta',\n    clear: 'Hreinsa'\n  },\n  Popconfirm: {\n    positiveText: 'Staðfesta',\n    negativeText: 'Hætta við'\n  },\n  Cascader: {\n    placeholder: 'Vinsamlegast veldu',\n    loading: 'Hleð',\n    loadingRequiredMessage: (label: string): string =>\n      `Hladdu öllum afkomendum ${label} áður en þú velur.`\n  },\n  Time: {\n    dateFormat: 'd.M.yyyy',\n    dateTimeFormat: 'd.M.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'M.yyyy',\n    dateFormat: 'd.M.yyyy',\n    dateTimeFormat: 'd.M.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Hreinsa',\n    now: 'Núna',\n    confirm: 'Staðfesta',\n    selectTime: 'Veldu tíma',\n    selectDate: 'Veldu dagsetningu',\n    datePlaceholder: 'Veldu dagsetningu',\n    datetimePlaceholder: 'Veldu dagsetningu og tíma',\n    monthPlaceholder: 'Veldu mánuð',\n    yearPlaceholder: 'Veldu ár',\n    quarterPlaceholder: 'Veldu ársfjórðung',\n    weekPlaceholder: 'Veldu viku',\n    startDatePlaceholder: 'Upphafsdagur',\n    endDatePlaceholder: 'Lokadagur',\n    startDatetimePlaceholder: 'Upphafsdagur og tími',\n    endDatetimePlaceholder: 'Lokadagur og tími',\n    startMonthPlaceholder: 'Upphafsmánuður',\n    endMonthPlaceholder: 'Lokamánuður',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Í dag'\n  },\n  DataTable: {\n    checkTableAll: 'Velja allt í töflunni',\n    uncheckTableAll: 'Afvelja allt í töflunni',\n    confirm: 'Staðfesta',\n    clear: 'Hreinsa'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Uppruni',\n    targetTitle: 'Áfangastaður'\n  },\n  Transfer: {\n    selectAll: 'Velja allt',\n    unselectAll: 'Afvelja allt',\n    clearAll: 'Hreinsa',\n    total: (num: number): string => `Samtals ${num} atriði`,\n    selected: (num: number): string => `${num} atriði valin`\n  },\n  Empty: {\n    description: 'Engin gögn'\n  },\n  Select: {\n    placeholder: 'Vinsamlegast veldu'\n  },\n  TimePicker: {\n    placeholder: 'Veldu tíma',\n    positiveText: 'Í lagi',\n    negativeText: 'Hætta við',\n    now: 'Núna',\n    clear: 'Hreinsa'\n  },\n  Pagination: {\n    goto: 'Fara á',\n    selectionSuffix: 'síða'\n  },\n  DynamicTags: {\n    add: 'Bæta við'\n  },\n  Log: {\n    loading: 'Hleð'\n  },\n  Input: {\n    placeholder: 'Vinsamlegast sláðu inn'\n  },\n  InputNumber: {\n    placeholder: 'Vinsamlegast sláðu inn'\n  },\n  DynamicInput: {\n    create: 'Búa til'\n  },\n  ThemeEditor: {\n    title: 'Þema ritstjóri',\n    clearAllVars: 'Hreinsa allar breytur',\n    clearSearch: 'Hreinsa leit',\n    filterCompName: 'Sía heiti íhlutar',\n    filterVarName: 'Sía heiti breytu',\n    import: 'Flytja inn',\n    export: 'Flytja út',\n    restore: 'Endurstilla á sjálfgefið'\n  },\n  Image: {\n    tipPrevious: 'Fyrri mynd (←)',\n    tipNext: 'Næsta mynd (→)',\n    tipCounterclockwise: 'Rangsælis',\n    tipClockwise: 'Réttsælis',\n    tipZoomOut: 'Minnka',\n    tipZoomIn: 'Stækka',\n    tipDownload: 'Sækja',\n    tipClose: 'Loka (Esc)',\n    tipOriginalSize: 'Aðdráttur í upprunalega stærð'\n  },\n  Heatmap: {\n    less: 'minna',\n    more: 'meira',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default isIS\n","import type { NLocale } from './enUS'\n\nconst itIT: NLocale = {\n  name: 'it-IT',\n  global: {\n    undo: 'Annulla',\n    redo: 'Ripeti',\n    confirm: 'Conferma',\n    clear: 'Cancella'\n  },\n  Popconfirm: {\n    positiveText: 'Conferma',\n    negativeText: 'Annulla'\n  },\n  Cascader: {\n    placeholder: 'Si prega di selezionare',\n    loading: 'Caricamento',\n    loadingRequiredMessage: (label: string): string =>\n      `Carica tutti i discendenti di ${label} prima di controllarlo.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Cancella',\n    now: 'Adesso',\n    confirm: 'Conferma',\n    selectTime: 'Seleziona ora',\n    selectDate: 'Seleziona data',\n    datePlaceholder: 'Seleziona data',\n    datetimePlaceholder: 'Seleziona data e ora',\n    monthPlaceholder: 'Seleziona mese',\n    yearPlaceholder: 'Seleziona anno',\n    quarterPlaceholder: 'Seleziona trimestre',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Data inizio',\n    endDatePlaceholder: 'Data fine',\n    startDatetimePlaceholder: 'Data e ora di inizio',\n    endDatetimePlaceholder: 'Data e ora di fine',\n    startMonthPlaceholder: 'Mese di inizio',\n    endMonthPlaceholder: 'Mese di fine',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Oggi'\n  },\n  DataTable: {\n    checkTableAll: 'Seleziona tutto nella tabella',\n    uncheckTableAll: 'Deseleziona tutto nella tabella',\n    confirm: 'Conferma',\n    clear: 'Cancella'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Fonte',\n    targetTitle: 'Destinazione'\n  },\n  Transfer: {\n    selectAll: 'Seleziona tutto',\n    unselectAll: 'Deseleziona tutto',\n    clearAll: 'Pulisci',\n    total: (num: number): string => {\n      if (num !== 1)\n        return `${num} elementi in totale`\n      return '1 elemento in totale'\n    },\n    selected: (num: number): string => {\n      if (num !== 1)\n        return `${num} elementi selezionati`\n      return '1 elemento selezionato'\n    }\n  },\n  Empty: {\n    description: 'Nessun Dato'\n  },\n  Select: {\n    placeholder: 'Si prega di selezionare'\n  },\n  TimePicker: {\n    placeholder: 'Seleziona ora',\n    positiveText: 'OK',\n    negativeText: 'Annulla',\n    now: 'Ora',\n    clear: 'Cancella'\n  },\n  Pagination: {\n    goto: 'Vai a',\n    selectionSuffix: 'per pagina'\n  },\n  DynamicTags: {\n    add: 'Aggiungi'\n  },\n  Log: {\n    loading: 'Caricamento'\n  },\n  Input: {\n    placeholder: 'Si prega di inserire'\n  },\n  InputNumber: {\n    placeholder: 'Si prega di inserire'\n  },\n  DynamicInput: {\n    create: 'Crea'\n  },\n  ThemeEditor: {\n    title: 'Editor Tema',\n    clearAllVars: 'Cancella tutte le variabili',\n    clearSearch: 'Cancella ricerca',\n    filterCompName: 'Filtra componenti',\n    filterVarName: 'Filtra variabili',\n    import: 'Importa',\n    export: 'Esporta',\n    restore: 'Ripristina'\n  },\n  Image: {\n    tipPrevious: 'Immagine precedente (←)',\n    tipNext: 'Immagine successiva (→)',\n    tipCounterclockwise: 'Ruota a sinistra',\n    tipClockwise: 'Ruota a destra',\n    tipZoomOut: 'Ingrandisci',\n    tipZoomIn: 'Riduci',\n    tipDownload: 'Download',\n    tipClose: 'Chiudi (Esc)',\n    tipOriginalSize: 'Torna alla dimensione originale'\n  },\n  Heatmap: {\n    less: 'meno',\n    more: 'più',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default itIT\n","import type { NLocale } from './enUS'\n\nconst jaJP: NLocale = {\n  name: 'ja-JP',\n  global: {\n    undo: '元に戻す',\n    redo: 'やり直す',\n    confirm: 'OK',\n    clear: 'クリア'\n  },\n  Popconfirm: {\n    positiveText: 'OK',\n    negativeText: 'キャンセル'\n  },\n  Cascader: {\n    placeholder: '選択してください',\n    loading: 'ロード中',\n    loadingRequiredMessage: (label: string): string =>\n      `すべての ${label} サブノードをロードしてから選択できます。`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy年',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'クリア',\n    now: '現在',\n    confirm: 'OK',\n    selectTime: '時間を選択',\n    selectDate: '日付を選択',\n    datePlaceholder: '日付を選択',\n    datetimePlaceholder: '選択',\n    monthPlaceholder: '月を選択',\n    yearPlaceholder: '年を選択',\n    quarterPlaceholder: '四半期を選択',\n    weekPlaceholder: '週を選択',\n    startDatePlaceholder: '開始日',\n    endDatePlaceholder: '終了日',\n    startDatetimePlaceholder: '開始時間',\n    endDatetimePlaceholder: '終了時間',\n    startMonthPlaceholder: '開始月',\n    endMonthPlaceholder: '終了月',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0,\n    today: '今日'\n  },\n  DataTable: {\n    checkTableAll: '全選択',\n    uncheckTableAll: '全選択取消',\n    confirm: 'OK',\n    clear: 'リセット'\n  },\n  LegacyTransfer: {\n    sourceTitle: '元',\n    targetTitle: '先'\n  },\n  Transfer: {\n    selectAll: '全選択',\n    unselectAll: '全選択取消',\n    clearAll: 'リセット',\n    total: (num: number): string => `合計 ${num} 項目`,\n    selected: (num: number): string => `${num} 個の項目を選択`\n  },\n  Empty: {\n    description: 'データなし'\n  },\n  Select: {\n    placeholder: '選択してください'\n  },\n  TimePicker: {\n    placeholder: '選択してください',\n    positiveText: 'OK',\n    negativeText: 'キャンセル',\n    now: '現在',\n    clear: 'クリア'\n  },\n  Pagination: {\n    goto: 'ページジャンプ',\n    selectionSuffix: 'ページ'\n  },\n  DynamicTags: {\n    add: '追加'\n  },\n  Log: {\n    loading: 'ロード中'\n  },\n  Input: {\n    placeholder: '入力してください'\n  },\n  InputNumber: {\n    placeholder: '入力してください'\n  },\n  DynamicInput: {\n    create: '追加'\n  },\n  ThemeEditor: {\n    title: 'テーマエディタ',\n    clearAllVars: '全件変数クリア',\n    clearSearch: '検索クリア',\n    filterCompName: 'コンポネント名をフィルタ',\n    filterVarName: '変数をフィルタ',\n    import: 'インポート',\n    export: 'エクスポート',\n    restore: 'デフォルト'\n  },\n  Image: {\n    tipPrevious: '前の画像 (←)',\n    tipNext: '次の画像 (→)',\n    tipCounterclockwise: '左に回転',\n    tipClockwise: '右に回転',\n    tipZoomOut: '縮小',\n    tipZoomIn: '拡大',\n    tipDownload: 'ダウンロード',\n    tipClose: '閉じる (Esc)',\n    tipOriginalSize: '元のサイズに戻す'\n  },\n  Heatmap: {\n    less: '少',\n    more: '多',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default jaJP\n","import type { NLocale } from './enUS'\n\nconst kaGE: NLocale = {\n  name: 'ka-GE',\n  global: {\n    undo: 'გაუქმება',\n    redo: 'გამეორება',\n    confirm: 'დადასტურება',\n    clear: 'გასუფთავება'\n  },\n  Popconfirm: {\n    positiveText: 'დადასტურება',\n    negativeText: 'გაუქმება'\n  },\n  Cascader: {\n    placeholder: 'გთხოვთ აირჩიოთ',\n    loading: 'იტვირთება',\n    loadingRequiredMessage: (label: string): string =>\n      `არჩევამდე ჩატვირთეთ ${label}-ის ყველა შთამომავალი.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'გასუფთავება',\n    now: 'ახლა',\n    confirm: 'დადასტურება',\n    selectTime: 'აირჩიეთ დრო',\n    selectDate: 'აირჩიეთ თარიღი',\n    datePlaceholder: 'აირჩიეთ თარიღი',\n    datetimePlaceholder: 'აირჩიეთ თარიღი და დრო',\n    monthPlaceholder: 'აირჩიეთ თვე',\n    yearPlaceholder: 'აირჩიეთ წელი',\n    quarterPlaceholder: 'აირჩიეთ კვარტალი',\n    weekPlaceholder: 'აირჩიეთ კვირა',\n    startDatePlaceholder: 'დაწყების თარიღი',\n    endDatePlaceholder: 'დამთავრების თარიღი',\n    startDatetimePlaceholder: 'დაწყების თარიღი და დრო',\n    endDatetimePlaceholder: 'დამთავრების თარიღი და დრო',\n    startMonthPlaceholder: 'დაწყების თვე',\n    endMonthPlaceholder: 'დამთავრების თვე',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'დღეს'\n  },\n  DataTable: {\n    checkTableAll: 'ცხრილში ყველას არჩევა',\n    uncheckTableAll: 'ცხრილში არჩევის მოხსნა',\n    confirm: 'დადასტურება',\n    clear: 'გასუფთავება'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'წყარო',\n    targetTitle: 'დანიშნულება'\n  },\n  Transfer: {\n    selectAll: 'ყველას არჩევა',\n    unselectAll: 'არჩევის მოხსნა',\n    clearAll: 'გასუფთავება',\n    total: (num: number): string => `სულ ${num} ელემენტი`,\n    selected: (num: number): string => `არჩეულია ${num} ელემენტი`\n  },\n  Empty: {\n    description: 'მონაცემები არ არის'\n  },\n  Select: {\n    placeholder: 'გთხოვთ აირჩიოთ'\n  },\n  TimePicker: {\n    placeholder: 'აირჩიეთ დრო',\n    positiveText: 'კარგი',\n    negativeText: 'გაუქმება',\n    now: 'ახლა',\n    clear: 'გასუფთავება'\n  },\n  Pagination: {\n    goto: 'გადასვლა',\n    selectionSuffix: 'გვერდი'\n  },\n  DynamicTags: {\n    add: 'დამატება'\n  },\n  Log: {\n    loading: 'იტვირთება'\n  },\n  Input: {\n    placeholder: 'გთხოვთ შეიყვანოთ'\n  },\n  InputNumber: {\n    placeholder: 'გთხოვთ შეიყვანოთ'\n  },\n  DynamicInput: {\n    create: 'შექმნა'\n  },\n  ThemeEditor: {\n    title: 'თემის რედაქტორი',\n    clearAllVars: 'ყველა ცვლადის გასუფთავება',\n    clearSearch: 'ძიების გასუფთავება',\n    filterCompName: 'კომპონენტის სახელის გაფილტვრა',\n    filterVarName: 'ცვლადის სახელის გაფილტვრა',\n    import: 'იმპორტი',\n    export: 'ექსპორტი',\n    restore: 'ნაგულისხმევზე დაბრუნება'\n  },\n  Image: {\n    tipPrevious: 'წინა სურათი (←)',\n    tipNext: 'შემდეგი სურათი (→)',\n    tipCounterclockwise: 'საათის ისრის საწინააღმდეგოდ',\n    tipClockwise: 'საათის ისრის მიმართულებით',\n    tipZoomOut: 'დაპატარავება',\n    tipZoomIn: 'გადიდება',\n    tipDownload: 'ჩამოტვირთვა',\n    tipClose: 'დახურვა (Esc)',\n    tipOriginalSize: 'ორიგინალ ზომამდე გადიდება'\n  },\n  Heatmap: {\n    less: 'ნაკლები',\n    more: 'მეტი',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default kaGE\n","import type { NLocale } from './enUS'\n\nconst kkKZ: NLocale = {\n  name: 'kk-KZ',\n  global: {\n    undo: 'Болдырмау',\n    redo: 'Қайталау',\n    confirm: 'Растау',\n    clear: 'Тазалау'\n  },\n  Popconfirm: {\n    positiveText: 'Растау',\n    negativeText: 'Бас тарту'\n  },\n  Cascader: {\n    placeholder: 'Таңдаңыз',\n    loading: 'Жүктелуде',\n    loadingRequiredMessage: (label: string): string =>\n      `${label} барлық еншілерін белгілеуден бұрын жүктеңіз.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Тазалау',\n    now: 'Қазір',\n    confirm: 'Растау',\n    selectTime: 'Уақытты таңдау',\n    selectDate: 'Күнді таңдау',\n    datePlaceholder: 'Күнді таңдау',\n    datetimePlaceholder: 'Күн мен уақытты таңдау',\n    monthPlaceholder: 'Айды таңдау',\n    yearPlaceholder: 'Жылды таңдау',\n    quarterPlaceholder: 'Тоқсанды таңдау',\n    weekPlaceholder: 'Аптаны таңдау',\n    startDatePlaceholder: 'Басталу күні',\n    endDatePlaceholder: 'Аяқталу күні',\n    startDatetimePlaceholder: 'Басталу күні мен уақыты',\n    endDatetimePlaceholder: 'Аяқталу күні мен уақыты',\n    startMonthPlaceholder: 'Басталу айы',\n    endMonthPlaceholder: 'Аяқталу айы',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Бүгін'\n  },\n  DataTable: {\n    checkTableAll: 'Кестедегі барлығын таңдау',\n    uncheckTableAll: 'Кестедегі таңдауды алу',\n    confirm: 'Растау',\n    clear: 'Тазалау'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Көз',\n    targetTitle: 'Мақсат'\n  },\n  Transfer: {\n    selectAll: 'Барлығын таңдау',\n    unselectAll: 'Таңдауды алу',\n    clearAll: 'Тазалау',\n    total: (num: number): string => `Барлығы ${num} элемент`,\n    selected: (num: number): string => `${num} элемент таңдалды`\n  },\n  Empty: {\n    description: 'Дерек жоқ'\n  },\n  Select: {\n    placeholder: 'Таңдаңыз'\n  },\n  TimePicker: {\n    placeholder: 'Уақытты таңдау',\n    positiveText: 'OK',\n    negativeText: 'Бас тарту',\n    now: 'Қазір',\n    clear: 'Тазалау'\n  },\n  Pagination: {\n    goto: 'Өту',\n    selectionSuffix: 'бет'\n  },\n  DynamicTags: {\n    add: 'Қосу'\n  },\n  Log: {\n    loading: 'Жүктелуде'\n  },\n  Input: {\n    placeholder: 'Енгізіңіз'\n  },\n  InputNumber: {\n    placeholder: 'Енгізіңіз'\n  },\n  DynamicInput: {\n    create: 'Жасау'\n  },\n  ThemeEditor: {\n    title: 'Тақырып редакторы',\n    clearAllVars: 'Барлық айнымалыларды тазалау',\n    clearSearch: 'Іздеуді тазалау',\n    filterCompName: 'Компонент атауын сүзу',\n    filterVarName: 'Айнымалы атауын сүзу',\n    import: 'Импорттау',\n    export: 'Экспорттау',\n    restore: 'Әдепкіге қайтару'\n  },\n  Image: {\n    tipPrevious: 'Алдыңғы сурет (←)',\n    tipNext: 'Келесі сурет (→)',\n    tipCounterclockwise: 'Сағат тіліне қарсы',\n    tipClockwise: 'Сағат тілімен',\n    tipZoomOut: 'Кішірейту',\n    tipZoomIn: 'Үлкейту',\n    tipDownload: 'Жүктеп алу',\n    tipClose: 'Жабу (Esc)',\n    tipOriginalSize: 'Бастапқы өлшемге масштабтау'\n  },\n  Heatmap: {\n    less: 'аз',\n    more: 'көп',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default kkKZ\n","import type { NLocale } from './enUS'\n\nconst kmKH: NLocale = {\n  name: 'km-KH',\n  global: {\n    undo: 'បោះបង់',\n    redo: 'ធ្វើឡើងវិញ',\n    confirm: 'បញ្ជាក់',\n    clear: 'ច្បាស់'\n  },\n  Popconfirm: {\n    positiveText: 'បញ្ជាក់',\n    negativeText: 'បោះបង់'\n  },\n  Cascader: {\n    placeholder: 'សូមជ្រើសរើស',\n    loading: 'ការផ្ទុក',\n    loadingRequiredMessage: (label: string): string =>\n      `អាចជ្រើសរើសបានតែបន្ទាប់ពីផ្ទុកថ្នាំងកូន  ${label} ទាំងអស់។`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyyឆ្នាំ',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-wសប្តាហ៍',\n    clear: 'ច្បាស់',\n    now: 'ឥឡូវនេះ',\n    confirm: 'បញ្ជាក់',\n    selectTime: 'ជ្រើសរើសកាលបរិច្ឆេទ',\n    selectDate: 'ជ្រើសរើសកាលបរិច្ឆេទ',\n    datePlaceholder: 'ជ្រើសរើសកាលបរិច្ឆេទ',\n    datetimePlaceholder: 'ជ្រើសរើសពេលវេលាកាលបរិច្ឆេទ',\n    monthPlaceholder: 'ជ្រើសរើសខែ',\n    yearPlaceholder: 'ជ្រើសរើសឆ្នាំ',\n    quarterPlaceholder: 'ជ្រើសរើសត្រីមាស',\n    weekPlaceholder: 'ជ្រើសរើសសប្តាហ៍',\n    startDatePlaceholder: 'កាលបរិច្ឆេទចាប់ផ្តើម',\n    endDatePlaceholder: 'កាលបរិច្ឆេទបញ្ចប់',\n    startDatetimePlaceholder: 'កាលបរិច្ឆេទចាប់ផ្តើម',\n    endDatetimePlaceholder: 'កាលបរិច្ឆេទបញ្ចប់',\n    startMonthPlaceholder: 'ខែចាប់ផ្តើម',\n    endMonthPlaceholder: 'ចុងខែ',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0,\n    today: 'ថ្ងៃនេះ'\n  },\n  DataTable: {\n    checkTableAll: 'ជ្រើសរើសទិន្នន័យតារាងទាំងអស់។',\n    uncheckTableAll: 'ដកការជ្រើសរើសទិន្នន័យតារាងទាំងអស់។',\n    confirm: 'បញ្ជាក់',\n    clear: 'កំណត់ឡើងវិញ'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ធាតុប្រភព',\n    targetTitle: 'ធាតុគោលដៅ'\n  },\n  Transfer: {\n    selectAll: 'ជ្រើសរើសទាំងអស់។',\n    clearAll: 'ច្បាស់',\n    unselectAll: 'ដកការជ្រើសរើសទាំងអស់។',\n    total: (num: number): string => `ទូទៅ ${num} ធាតុ`,\n    selected: (num: number): string => `បានជ្រើសរើស ${num} ធាតុ`\n  },\n  Empty: {\n    description: 'គ្មានទិន្នន័យ'\n  },\n  Select: {\n    placeholder: 'សូមជ្រើសរើស'\n  },\n  TimePicker: {\n    placeholder: 'សូមជ្រើសរើសពេលវេលាមួយ។',\n    positiveText: 'បញ្ជាក់',\n    negativeText: 'បោះបង់',\n    now: 'ឥឡូវនេះ',\n    clear: 'ច្បាស់'\n  },\n  Pagination: {\n    goto: 'លោតទៅ',\n    selectionSuffix: 'ទំព័រ'\n  },\n  DynamicTags: {\n    add: 'បន្ថែមទៅ'\n  },\n  Log: {\n    loading: 'ការផ្ទុក'\n  },\n  Input: {\n    placeholder: 'សូមបញ្ចូល'\n  },\n  InputNumber: {\n    placeholder: 'សូមបញ្ចូល'\n  },\n  DynamicInput: {\n    create: 'បន្ថែមទៅ'\n  },\n  ThemeEditor: {\n    title: 'កម្មវិធីនិពន្ធប្រធានបទ',\n    clearAllVars: 'សម្អាតអថេរទាំងអស់។',\n    clearSearch: 'ជម្រះការស្វែងរក',\n    filterCompName: 'តម្រងឈ្មោះសមាសភាគ',\n    filterVarName: 'ត្រងឈ្មោះអថេរ',\n    import: 'នាំចូល',\n    export: 'នាំចេញ',\n    restore: 'ស្តារលំនាំដើម'\n  },\n  Image: {\n    tipPrevious: 'រូបភាពមុន។（←）',\n    tipNext: 'បន្ទាប់（→）',\n    tipCounterclockwise: 'បង្វិលឆ្វេង',\n    tipClockwise: 'បង្វិលស្តាំ',\n    tipZoomOut: 'បង្រួម ',\n    tipZoomIn: 'ពង្រីក',\n    tipDownload: 'ទាញយក',\n    tipClose: 'ការបិទ（Esc）',\n    tipOriginalSize: 'ធ្វើមាត្រដ្ឋានទៅទំហំដើម'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default kmKH\n","import type { NLocale } from './enUS'\n\nconst knIN: NLocale = {\n  name: 'kn-IN',\n  global: {\n    undo: 'ಹಿಂಪಡೆಯಿರಿ',\n    redo: 'ಮತ್ತೆ ಮಾಡಿ',\n    confirm: 'ದೃಢೀಕರಿಸಿ',\n    clear: 'ತೆರವುಗೊಳಿಸಿ'\n  },\n  Popconfirm: {\n    positiveText: 'ದೃಢೀಕರಿಸಿ',\n    negativeText: 'ರದ್ದುಪಡಿಸಿ'\n  },\n  Cascader: {\n    placeholder: 'ದಯವಿಟ್ಟು ಆಯ್ಕೆಮಾಡಿ',\n    loading: 'ಲೋಡ್ ಆಗುತ್ತಿದೆ',\n    loadingRequiredMessage: (label: string): string =>\n      `ಪರಿಶೀಲಿಸುವ ಮೊದಲು ${label} ನ ಎಲ್ಲಾ ವಂಶಜರನ್ನು ಲೋಡ್ ಮಾಡಿ.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'ತೆರವುಗೊಳಿಸಿ',\n    now: 'ಈಗ',\n    confirm: 'ದೃಢೀಕರಿಸಿ',\n    selectTime: 'ಸಮಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    selectDate: 'ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    datePlaceholder: 'ದಿನಾಂಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    datetimePlaceholder: 'ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    monthPlaceholder: 'ತಿಂಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    yearPlaceholder: 'ವರ್ಷವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    quarterPlaceholder: 'ತ್ರೈಮಾಸಿಕವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    weekPlaceholder: 'ವಾರವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    startDatePlaceholder: 'ಪ್ರಾರಂಭ ದಿನಾಂಕ',\n    endDatePlaceholder: 'ಅಂತಿಮ ದಿನಾಂಕ',\n    startDatetimePlaceholder: 'ಪ್ರಾರಂಭ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ',\n    endDatetimePlaceholder: 'ಅಂತಿಮ ದಿನಾಂಕ ಮತ್ತು ಸಮಯ',\n    startMonthPlaceholder: 'ಪ್ರಾರಂಭ ತಿಂಗಳು',\n    endMonthPlaceholder: 'ಅಂತಿಮ ತಿಂಗಳು',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ಇಂದು'\n  },\n  DataTable: {\n    checkTableAll: 'ಕೋಷ್ಟಕದಲ್ಲಿರುವ ಎಲ್ಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    uncheckTableAll: 'ಕೋಷ್ಟಕದಲ್ಲಿರುವ ಎಲ್ಲ ಆಯ್ಕೆಯನ್ನು ತೆಗೆಯಿರಿ',\n    confirm: 'ದೃಢೀಕರಿಸಿ',\n    clear: 'ತೆರವುಗೊಳಿಸಿ'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ಮೂಲ',\n    targetTitle: 'ಗುರಿ'\n  },\n  Transfer: {\n    selectAll: 'ಎಲ್ಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    unselectAll: 'ಎಲ್ಲ ಆಯ್ಕೆಯನ್ನು ತೆಗೆಯಿರಿ',\n    clearAll: 'ತೆರವುಗೊಳಿಸಿ',\n    total: (num: number): string => `ಒಟ್ಟು ${num} ಐಟಂಗಳು`,\n    selected: (num: number): string => `${num} ಐಟಂಗಳು ಆಯ್ಕೆಯಾಗಿವೆ`\n  },\n  Empty: {\n    description: 'ಡೇಟಾ ಇಲ್ಲ'\n  },\n  Select: {\n    placeholder: 'ದಯವಿಟ್ಟು ಆಯ್ಕೆಮಾಡಿ'\n  },\n  TimePicker: {\n    placeholder: 'ಸಮಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ',\n    positiveText: 'ಸರಿ',\n    negativeText: 'ರದ್ದುಪಡಿಸಿ',\n    now: 'ಈಗ',\n    clear: 'ತೆರವುಗೊಳಿಸಿ'\n  },\n  Pagination: {\n    goto: 'ಇಲ್ಲಿಗೆ ಹೋಗಿ',\n    selectionSuffix: 'ಪುಟ'\n  },\n  DynamicTags: {\n    add: 'ಸೇರಿಸಿ'\n  },\n  Log: {\n    loading: 'ಲೋಡ್ ಆಗುತ್ತಿದೆ'\n  },\n  Input: {\n    placeholder: 'ದಯವಿಟ್ಟು ನಮೂದಿಸಿ'\n  },\n  InputNumber: {\n    placeholder: 'ದಯವಿಟ್ಟು ನಮೂದಿಸಿ'\n  },\n  DynamicInput: {\n    create: 'ರಚಿಸಿ'\n  },\n  ThemeEditor: {\n    title: 'ಥೀಮ್ ಸಂಪಾದಕ',\n    clearAllVars: 'ಎಲ್ಲಾ ವೇರಿಯಬಲ್‌ಗಳನ್ನು ತೆರವುಗೊಳಿಸಿ',\n    clearSearch: 'ಹುಡುಕಾಟವನ್ನು ತೆರವುಗೊಳಿಸಿ',\n    filterCompName: 'ಘಟಕದ ಹೆಸರನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ',\n    filterVarName: 'ವೇರಿಯಬಲ್ ಹೆಸರನ್ನು ಫಿಲ್ಟರ್ ಮಾಡಿ',\n    import: 'ಆಮದು',\n    export: 'ರಫ್ತು',\n    restore: 'ಡೀಫಾಲ್ಟ್‌ಗೆ ಮರುಹೊಂದಿಸಿ'\n  },\n  Image: {\n    tipPrevious: 'ಹಿಂದಿನ ಚಿತ್ರ (←)',\n    tipNext: 'ಮುಂದಿನ ಚಿತ್ರ (→)',\n    tipCounterclockwise: 'ಎದುರು ಗಡಿಯಾರ ದಿಕ್ಕು',\n    tipClockwise: 'ಗಡಿಯಾರ ದಿಕ್ಕು',\n    tipZoomOut: 'ಕುಗ್ಗಿಸಿ',\n    tipZoomIn: 'ಹಿಗ್ಗಿಸಿ',\n    tipDownload: 'ಡೌನ್‌ಲೋಡ್',\n    tipClose: 'ಮುಚ್ಚಿ (Esc)',\n    tipOriginalSize: 'ಮೂಲ ಗಾತ್ರಕ್ಕೆ ಝೂಮ್ ಮಾಡಿ'\n  },\n  Heatmap: {\n    less: 'ಕಡಿಮೆ',\n    more: 'ಹೆಚ್ಚು',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default knIN\n","import type { NLocale } from './enUS'\n\nconst koKR: NLocale = {\n  name: 'ko-KR',\n  global: {\n    undo: '실행 취소',\n    redo: '다시 실행',\n    confirm: '확인',\n    clear: '지우기'\n  },\n  Popconfirm: {\n    positiveText: '확인',\n    negativeText: '취소'\n  },\n  Cascader: {\n    placeholder: '선택해 주세요',\n    loading: '불러오는 중',\n    loadingRequiredMessage: (label: string): string =>\n      `${label}의 모든 하위 항목을 불러온 뒤에 선택할 수 있습니다.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy년',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: '지우기',\n    now: '현재',\n    confirm: '확인',\n    selectTime: '시간 선택',\n    selectDate: '날짜 선택',\n    datePlaceholder: '날짜 선택',\n    datetimePlaceholder: '날짜 및 시간 선택',\n    monthPlaceholder: '월 선택',\n    yearPlaceholder: '년 선택',\n    quarterPlaceholder: '분기 선택',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: '시작 날짜',\n    endDatePlaceholder: '종료 날짜',\n    startDatetimePlaceholder: '시작 날짜 및 시간',\n    endDatetimePlaceholder: '종료 날짜 및 시간',\n    // FIXME: translation needed\n    startMonthPlaceholder: '시작 월',\n    endMonthPlaceholder: '종료 월',\n    monthBeforeYear: false,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: '오늘'\n  },\n  DataTable: {\n    checkTableAll: '모두 선택',\n    uncheckTableAll: '모두 선택 해제',\n    confirm: '확인',\n    clear: '지우기'\n  },\n  LegacyTransfer: {\n    sourceTitle: '원본',\n    targetTitle: '타깃'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: '전체 선택',\n    unselectAll: '전체 해제',\n    clearAll: '전체 삭제',\n    total: (num: number): string => `총 ${num} 개`,\n    selected: (num: number): string => `${num} 개 선택`\n  },\n  Empty: {\n    description: '데이터 없음'\n  },\n  Select: {\n    placeholder: '선택해 주세요'\n  },\n  TimePicker: {\n    placeholder: '시간 선택',\n    positiveText: '확인',\n    negativeText: '취소',\n    now: '현재 시간',\n    clear: '지우기'\n  },\n  Pagination: {\n    goto: '이동',\n    selectionSuffix: '페이지'\n  },\n  DynamicTags: {\n    add: '추가'\n  },\n  Log: {\n    loading: '불러오는 중'\n  },\n  Input: {\n    placeholder: '입력해 주세요'\n  },\n  InputNumber: {\n    placeholder: '입력해 주세요'\n  },\n  DynamicInput: {\n    create: '추가'\n  },\n  ThemeEditor: {\n    title: '테마 편집기',\n    clearAllVars: '모든 변수 지우기',\n    clearSearch: '검색 지우기',\n    filterCompName: '구성 요소 이름 필터',\n    filterVarName: '변수 이름 필터',\n    import: '가져오기',\n    export: '내보내기',\n    restore: '기본으로 재설정'\n  },\n  Image: {\n    tipPrevious: '이전 (←)',\n    tipNext: '다음 (→)',\n    tipCounterclockwise: '시계 반대 방향으로 회전',\n    tipClockwise: '시계 방향으로 회전',\n    tipZoomOut: '축소',\n    tipZoomIn: '확대',\n    tipDownload: '다운로드',\n    tipClose: '닫기 (Esc)',\n    // TODO: translation\n    tipOriginalSize: '원본 크기로 확대'\n  },\n  Heatmap: {\n    less: '적음',\n    more: '많음',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default koKR\n","import type { NLocale } from './enUS'\n\nconst kyKG: NLocale = {\n  name: 'ky-KG',\n  global: {\n    undo: 'Жокко чыгаруу',\n    redo: 'Кайталоо',\n    confirm: 'Ырастоо',\n    clear: 'Тазалоо'\n  },\n  Popconfirm: {\n    positiveText: 'Ырастоо',\n    negativeText: 'Жокко чыгаруу'\n  },\n  Cascader: {\n    placeholder: 'Тандаңыз',\n    loading: 'Жүктөлүүдө',\n    loadingRequiredMessage: (label: string): string =>\n      `${label} бардык тукумдарын тандоодон мурун жүктөңүз.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Тазалоо',\n    now: 'Азыр',\n    confirm: 'Ырастоо',\n    selectTime: 'Убакытты тандаңыз',\n    selectDate: 'Күнү тандаңыз',\n    datePlaceholder: 'Күнү тандаңыз',\n    datetimePlaceholder: 'Күнү жана убакытты тандаңыз',\n    monthPlaceholder: 'Айды тандаңыз',\n    yearPlaceholder: 'Жылды тандаңыз',\n    quarterPlaceholder: 'Чейректи тандаңыз',\n    weekPlaceholder: 'Аптаны тандаңыз',\n    startDatePlaceholder: 'Башталуу күнү',\n    endDatePlaceholder: 'Аяктоо күнү',\n    startDatetimePlaceholder: 'Башталуу күнү жана убакыты',\n    endDatetimePlaceholder: 'Аяктоо күнү жана убакыты',\n    startMonthPlaceholder: 'Башталуу айы',\n    endMonthPlaceholder: 'Аяктоо айы',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Бүгүн'\n  },\n  DataTable: {\n    checkTableAll: 'Таблицадагы баарын тандоо',\n    uncheckTableAll: 'Таблицадагы тандоону алуу',\n    confirm: 'Ырастоо',\n    clear: 'Тазалоо'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Булагы',\n    targetTitle: 'Максат'\n  },\n  Transfer: {\n    selectAll: 'Баарын тандоо',\n    unselectAll: 'Тандоону алуу',\n    clearAll: 'Тазалоо',\n    total: (num: number): string => `Жалпы ${num} элемент`,\n    selected: (num: number): string => `${num} элемент тандалды`\n  },\n  Empty: {\n    description: 'Маалымат жок'\n  },\n  Select: {\n    placeholder: 'Тандаңыз'\n  },\n  TimePicker: {\n    placeholder: 'Убакытты тандаңыз',\n    positiveText: 'OK',\n    negativeText: 'Жокко чыгаруу',\n    now: 'Азыр',\n    clear: 'Тазалоо'\n  },\n  Pagination: {\n    goto: 'Өтүү',\n    selectionSuffix: 'бет'\n  },\n  DynamicTags: {\n    add: 'Кошуу'\n  },\n  Log: {\n    loading: 'Жүктөлүүдө'\n  },\n  Input: {\n    placeholder: 'Киргизиңиз'\n  },\n  InputNumber: {\n    placeholder: 'Киргизиңиз'\n  },\n  DynamicInput: {\n    create: 'Түзүү'\n  },\n  ThemeEditor: {\n    title: 'Тема редактору',\n    clearAllVars: 'Бардык өзгөрмөлөрдү тазалоо',\n    clearSearch: 'Издөөнү тазалоо',\n    filterCompName: 'Компонент атын чыпкалоо',\n    filterVarName: 'Өзгөрмө атын чыпкалоо',\n    import: 'Импорттоо',\n    export: 'Экспорттоо',\n    restore: 'Баштапкы абалга кайтаруу'\n  },\n  Image: {\n    tipPrevious: 'Мурунку сүрөт (←)',\n    tipNext: 'Кийинки сүрөт (→)',\n    tipCounterclockwise: 'Саат жебесине каршы',\n    tipClockwise: 'Саат жебеси боюнча',\n    tipZoomOut: 'Кичирейтүү',\n    tipZoomIn: 'Чоңойтуу',\n    tipDownload: 'Жүктөп алуу',\n    tipClose: 'Жабуу (Esc)',\n    tipOriginalSize: 'Баштапкы өлчөмгө чоңойтуу'\n  },\n  Heatmap: {\n    less: 'аз',\n    more: 'көп',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default kyKG\n","import type { NLocale } from './enUS'\n\nconst loLA: NLocale = {\n  name: 'lo-LA',\n  global: {\n    undo: 'ຍົກເລີກການເຮັດ',\n    redo: 'ເຮັດຊ້ຳ',\n    confirm: 'ຢືນຢັນ',\n    clear: 'ລ້າງ'\n  },\n  Popconfirm: {\n    positiveText: 'ຢືນຢັນ',\n    negativeText: 'ຍົກເລີກ'\n  },\n  Cascader: {\n    placeholder: 'ກະລຸນາເລືອກ',\n    loading: 'ກຳລັງໂຫຼດ',\n    loadingRequiredMessage: (label: string): string =>\n      `ກະລຸນາໂຫຼດລູກຫຼານທັງໝົດຂອງ ${label} ກ່ອນທີ່ຈະເລືອກ`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'ລ້າງ',\n    now: 'ຕອນນີ້',\n    confirm: 'ຢືນຢັນ',\n    selectTime: 'ເລືອກເວລາ',\n    selectDate: 'ເລືອກວັນທີ',\n    datePlaceholder: 'ເລືອກວັນທີ',\n    datetimePlaceholder: 'ເລືອກວັນທີ ແລະ ເວລາ',\n    monthPlaceholder: 'ເລືອກເດືອນ',\n    yearPlaceholder: 'ເລືອກປີ',\n    quarterPlaceholder: 'ເລືອກໄຕມາດ',\n    weekPlaceholder: 'ເລືອກອາທິດ',\n    startDatePlaceholder: 'ວັນທີເລີ່ມຕົ້ນ',\n    endDatePlaceholder: 'ວັນທີສິ້ນສຸດ',\n    startDatetimePlaceholder: 'ວັນທີ ແລະ ເວລາເລີ່ມຕົ້ນ',\n    endDatetimePlaceholder: 'ວັນທີ ແລະ ເວລາສິ້ນສຸດ',\n    startMonthPlaceholder: 'ເດືອນເລີ່ມຕົ້ນ',\n    endMonthPlaceholder: 'ເດືອນສິ້ນສຸດ',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ມື້ນີ້'\n  },\n  DataTable: {\n    checkTableAll: 'ເລືອກທັງໝົດໃນຕາຕະລາງ',\n    uncheckTableAll: 'ຍົກເລີກການເລືອກທັງໝົດໃນຕາຕະລາງ',\n    confirm: 'ຢືນຢັນ',\n    clear: 'ລ້າງ'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ແຫຼ່ງຂໍ້ມູນ',\n    targetTitle: 'ເປົ້າໝາຍ'\n  },\n  Transfer: {\n    selectAll: 'ເລືອກທັງໝົດ',\n    unselectAll: 'ຍົກເລີກການເລືອກທັງໝົດ',\n    clearAll: 'ລ້າງ',\n    total: (num: number): string => `ທັງໝົດ ${num} ລາຍການ`,\n    selected: (num: number): string => `ເລືອກແລ້ວ ${num} ລາຍການ`\n  },\n  Empty: {\n    description: 'ບໍ່ມີຂໍ້ມູນ'\n  },\n  Select: {\n    placeholder: 'ກະລຸນາເລືອກ'\n  },\n  TimePicker: {\n    placeholder: 'ເລືອກເວລາ',\n    positiveText: 'ຕົກລົງ',\n    negativeText: 'ຍົກເລີກ',\n    now: 'ຕອນນີ້',\n    clear: 'ລ້າງ'\n  },\n  Pagination: {\n    goto: 'ໄປຫາ',\n    selectionSuffix: 'ໜ້າ'\n  },\n  DynamicTags: {\n    add: 'ເພີ່ມ'\n  },\n  Log: {\n    loading: 'ກຳລັງໂຫຼດ'\n  },\n  Input: {\n    placeholder: 'ກະລຸນາປ້ອນ'\n  },\n  InputNumber: {\n    placeholder: 'ກະລຸນາປ້ອນ'\n  },\n  DynamicInput: {\n    create: 'ສ້າງ'\n  },\n  ThemeEditor: {\n    title: 'ຕົວແກ້ໄຂຮູບແບບ',\n    clearAllVars: 'ລ້າງຕົວແປທັງໝົດ',\n    clearSearch: 'ລ້າງການຄົ້ນຫາ',\n    filterCompName: 'ກັ່ນຕອງຊື່ສ່ວນປະກອບ',\n    filterVarName: 'ກັ່ນຕອງຊື່ຕົວແປ',\n    import: 'ນຳເຂົ້າ',\n    export: 'ສົ່ງອອກ',\n    restore: 'ກັບຄືນສູ່ຄ່າເລີ່ມຕົ້ນ'\n  },\n  Image: {\n    tipPrevious: 'ຮູບກ່ອນໜ້າ (←)',\n    tipNext: 'ຮູບຕໍ່ໄປ (→)',\n    tipCounterclockwise: 'ທວນເຂັມໂມງ',\n    tipClockwise: 'ຕາມເຂັມໂມງ',\n    tipZoomOut: 'ຊູມອອກ',\n    tipZoomIn: 'ຊູມເຂົ້າ',\n    tipDownload: 'ດາວໂຫຼດ',\n    tipClose: 'ປິດ (Esc)',\n    tipOriginalSize: 'ຊູມເປັນຂະໜາດຕົ້ນສະບັບ'\n  },\n  Heatmap: {\n    less: 'ນ້ອຍ',\n    more: 'ຫຼາຍ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default loLA\n","import type { NLocale } from './enUS'\n\nconst ltLT: NLocale = {\n  name: 'lt-LT',\n  global: {\n    undo: 'Atšaukti',\n    redo: 'Grąžinti',\n    confirm: 'Patvirtinti',\n    clear: 'Išvalyti'\n  },\n  Popconfirm: {\n    positiveText: 'Patvirtinti',\n    negativeText: 'Atšaukti'\n  },\n  Cascader: {\n    placeholder: 'Pasirinkite',\n    loading: 'Įkeliama',\n    loadingRequiredMessage: (label: string): string =>\n      `Prieš pažymėdami įkelkite visus ${label} palikuonis.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Išvalyti',\n    now: 'Dabar',\n    confirm: 'Patvirtinti',\n    selectTime: 'Pasirinkite laiką',\n    selectDate: 'Pasirinkite datą',\n    datePlaceholder: 'Pasirinkite datą',\n    datetimePlaceholder: 'Pasirinkite datą ir laiką',\n    monthPlaceholder: 'Pasirinkite mėnesį',\n    yearPlaceholder: 'Pasirinkite metus',\n    quarterPlaceholder: 'Pasirinkite ketvirtį',\n    weekPlaceholder: 'Pasirinkite savaitę',\n    startDatePlaceholder: 'Pradžios data',\n    endDatePlaceholder: 'Pabaigos data',\n    startDatetimePlaceholder: 'Pradžios data ir laikas',\n    endDatetimePlaceholder: 'Pabaigos data ir laikas',\n    startMonthPlaceholder: 'Pradžios mėnuo',\n    endMonthPlaceholder: 'Pabaigos mėnuo',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Šiandien'\n  },\n  DataTable: {\n    checkTableAll: 'Pasirinkti viską lentelėje',\n    uncheckTableAll: 'Panaikinti lentelės žymėjimą',\n    confirm: 'Patvirtinti',\n    clear: 'Išvalyti'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Šaltinis',\n    targetTitle: 'Tikslas'\n  },\n  Transfer: {\n    selectAll: 'Pasirinkti viską',\n    unselectAll: 'Panaikinti visą žymėjimą',\n    clearAll: 'Išvalyti',\n    total: (num: number): string => `Iš viso ${num} elementų`,\n    selected: (num: number): string => `Pasirinkta ${num} elementų`\n  },\n  Empty: {\n    description: 'Nėra duomenų'\n  },\n  Select: {\n    placeholder: 'Pasirinkite'\n  },\n  TimePicker: {\n    placeholder: 'Pasirinkite laiką',\n    positiveText: 'Gerai',\n    negativeText: 'Atšaukti',\n    now: 'Dabar',\n    clear: 'Išvalyti'\n  },\n  Pagination: {\n    goto: 'Eiti į',\n    selectionSuffix: 'puslapis'\n  },\n  DynamicTags: {\n    add: 'Pridėti'\n  },\n  Log: {\n    loading: 'Įkeliama'\n  },\n  Input: {\n    placeholder: 'Įveskite'\n  },\n  InputNumber: {\n    placeholder: 'Įveskite'\n  },\n  DynamicInput: {\n    create: 'Sukurti'\n  },\n  ThemeEditor: {\n    title: 'Temos rengyklė',\n    clearAllVars: 'Išvalyti visus kintamuosius',\n    clearSearch: 'Išvalyti paiešką',\n    filterCompName: 'Filtruoti komponento pavadinimą',\n    filterVarName: 'Filtruoti kintamojo pavadinimą',\n    import: 'Importuoti',\n    export: 'Eksportuoti',\n    restore: 'Atkurti numatytąsias'\n  },\n  Image: {\n    tipPrevious: 'Ankstesnis paveikslėlis (←)',\n    tipNext: 'Kitas paveikslėlis (→)',\n    tipCounterclockwise: 'Prieš laikrodžio rodyklę',\n    tipClockwise: 'Pagal laikrodžio rodyklę',\n    tipZoomOut: 'Sumažinti',\n    tipZoomIn: 'Padidinti',\n    tipDownload: 'Atsisiųsti',\n    tipClose: 'Uždaryti (Esc)',\n    tipOriginalSize: 'Mastelis į pradinį dydį'\n  },\n  Heatmap: {\n    less: 'mažiau',\n    more: 'daugiau',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ltLT\n","import type { NLocale } from './enUS'\n\nconst lvLV: NLocale = {\n  name: 'lv-LV',\n  global: {\n    undo: 'Atsaukt',\n    redo: 'Atcelt atsaukšanu',\n    confirm: 'Apstiprināt',\n    clear: 'Notīrīt'\n  },\n  Popconfirm: {\n    positiveText: 'Apstiprināt',\n    negativeText: 'Atcelt'\n  },\n  Cascader: {\n    placeholder: 'Lūdzu, atlasiet',\n    loading: 'Ielādē',\n    loadingRequiredMessage: (label: string): string =>\n      `Pirms atlases ielādējiet visus ${label} pēctečus.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Notīrīt',\n    now: 'Tagad',\n    confirm: 'Apstiprināt',\n    selectTime: 'Atlasīt laiku',\n    selectDate: 'Atlasīt datumu',\n    datePlaceholder: 'Atlasīt datumu',\n    datetimePlaceholder: 'Atlasīt datumu un laiku',\n    monthPlaceholder: 'Atlasīt mēnesi',\n    yearPlaceholder: 'Atlasīt gadu',\n    quarterPlaceholder: 'Atlasīt ceturksni',\n    weekPlaceholder: 'Atlasīt nedēļu',\n    startDatePlaceholder: 'Sākuma datums',\n    endDatePlaceholder: 'Beigu datums',\n    startDatetimePlaceholder: 'Sākuma datums un laiks',\n    endDatetimePlaceholder: 'Beigu datums un laiks',\n    startMonthPlaceholder: 'Sākuma mēnesis',\n    endMonthPlaceholder: 'Beigu mēnesis',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Šodien'\n  },\n  DataTable: {\n    checkTableAll: 'Atlasīt visu tabulā',\n    uncheckTableAll: 'Noņemt atlasi tabulā',\n    confirm: 'Apstiprināt',\n    clear: 'Notīrīt'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Avots',\n    targetTitle: 'Mērķis'\n  },\n  Transfer: {\n    selectAll: 'Atlasīt visu',\n    unselectAll: 'Noņemt atlasi',\n    clearAll: 'Notīrīt',\n    total: (num: number): string => `Kopā ${num} vienumi`,\n    selected: (num: number): string => `Atlasīti ${num} vienumi`\n  },\n  Empty: {\n    description: 'Nav datu'\n  },\n  Select: {\n    placeholder: 'Lūdzu, atlasiet'\n  },\n  TimePicker: {\n    placeholder: 'Atlasīt laiku',\n    positiveText: 'Labi',\n    negativeText: 'Atcelt',\n    now: 'Tagad',\n    clear: 'Notīrīt'\n  },\n  Pagination: {\n    goto: 'Doties uz',\n    selectionSuffix: 'lapa'\n  },\n  DynamicTags: {\n    add: 'Pievienot'\n  },\n  Log: {\n    loading: 'Ielādē'\n  },\n  Input: {\n    placeholder: 'Lūdzu, ievadiet'\n  },\n  InputNumber: {\n    placeholder: 'Lūdzu, ievadiet'\n  },\n  DynamicInput: {\n    create: 'Izveidot'\n  },\n  ThemeEditor: {\n    title: 'Tēmas redaktors',\n    clearAllVars: 'Notīrīt visus mainīgos',\n    clearSearch: 'Notīrīt meklēšanu',\n    filterCompName: 'Filtrēt komponenta nosaukumu',\n    filterVarName: 'Filtrēt mainīgā nosaukumu',\n    import: 'Importēt',\n    export: 'Eksportēt',\n    restore: 'Atiestatīt uz noklusējumu'\n  },\n  Image: {\n    tipPrevious: 'Iepriekšējais attēls (←)',\n    tipNext: 'Nākamais attēls (→)',\n    tipCounterclockwise: 'Pretēji pulksteņrādītāja virzienam',\n    tipClockwise: 'Pulksteņrādītāja virzienā',\n    tipZoomOut: 'Attālināt',\n    tipZoomIn: 'Pietuvināt',\n    tipDownload: 'Lejupielādēt',\n    tipClose: 'Aizvērt (Esc)',\n    tipOriginalSize: 'Tālummaiņa līdz sākotnējam izmēram'\n  },\n  Heatmap: {\n    less: 'mazāk',\n    more: 'vairāk',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default lvLV\n","import type { NLocale } from './enUS'\n\nconst mkMK: NLocale = {\n  name: 'mk-MK',\n  global: {\n    undo: 'Врати',\n    redo: 'Повтори',\n    confirm: 'Потврди',\n    clear: 'Исчисти'\n  },\n  Popconfirm: {\n    positiveText: 'Потврди',\n    negativeText: 'Откажи'\n  },\n  Cascader: {\n    placeholder: 'Изберете',\n    loading: 'Се вчитува',\n    loadingRequiredMessage: (label: string): string =>\n      `Вчитајте ги сите потомци на ${label} пред да го изберете.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Исчисти',\n    now: 'Сега',\n    confirm: 'Потврди',\n    selectTime: 'Изберете време',\n    selectDate: 'Изберете датум',\n    datePlaceholder: 'Изберете датум',\n    datetimePlaceholder: 'Изберете датум и време',\n    monthPlaceholder: 'Изберете месец',\n    yearPlaceholder: 'Изберете година',\n    quarterPlaceholder: 'Изберете квартал',\n    weekPlaceholder: 'Изберете недела',\n    startDatePlaceholder: 'Почетен датум',\n    endDatePlaceholder: 'Краен датум',\n    startDatetimePlaceholder: 'Почетен датум и време',\n    endDatetimePlaceholder: 'Краен датум и време',\n    startMonthPlaceholder: 'Почетен месец',\n    endMonthPlaceholder: 'Краен месец',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Денес'\n  },\n  DataTable: {\n    checkTableAll: 'Избери сè во табелата',\n    uncheckTableAll: 'Отштиклирај сè во табелата',\n    confirm: 'Потврди',\n    clear: 'Исчисти'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Извор',\n    targetTitle: 'Одредиште'\n  },\n  Transfer: {\n    selectAll: 'Избери сè',\n    unselectAll: 'Отштиклирај сè',\n    clearAll: 'Исчисти',\n    total: (num: number): string => `Вкупно ${num} ставки`,\n    selected: (num: number): string => `Избрани се ${num} ставки`\n  },\n  Empty: {\n    description: 'Нема податоци'\n  },\n  Select: {\n    placeholder: 'Изберете'\n  },\n  TimePicker: {\n    placeholder: 'Изберете време',\n    positiveText: 'ОК',\n    negativeText: 'Откажи',\n    now: 'Сега',\n    clear: 'Исчисти'\n  },\n  Pagination: {\n    goto: 'Оди на',\n    selectionSuffix: 'страница'\n  },\n  DynamicTags: {\n    add: 'Додај'\n  },\n  Log: {\n    loading: 'Се вчитува'\n  },\n  Input: {\n    placeholder: 'Внесете'\n  },\n  InputNumber: {\n    placeholder: 'Внесете'\n  },\n  DynamicInput: {\n    create: 'Создај'\n  },\n  ThemeEditor: {\n    title: 'Уредувач на тема',\n    clearAllVars: 'Исчисти ги сите променливи',\n    clearSearch: 'Исчисти го пребарувањето',\n    filterCompName: 'Филтрирај име на компонента',\n    filterVarName: 'Филтрирај име на променлива',\n    import: 'Увези',\n    export: 'Извези',\n    restore: 'Врати на стандардно'\n  },\n  Image: {\n    tipPrevious: 'Претходна слика (←)',\n    tipNext: 'Следна слика (→)',\n    tipCounterclockwise: 'Спротивно од стрелките на часовникот',\n    tipClockwise: 'Во насока на стрелките на часовникот',\n    tipZoomOut: 'Намали',\n    tipZoomIn: 'Зголеми',\n    tipDownload: 'Преземи',\n    tipClose: 'Затвори (Esc)',\n    tipOriginalSize: 'Зум до оригинална големина'\n  },\n  Heatmap: {\n    less: 'помалку',\n    more: 'повеќе',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default mkMK\n","import type { NLocale } from './enUS'\n\nconst mlIN: NLocale = {\n  name: 'ml-IN',\n  global: {\n    undo: 'പഴയപടിയാക്കുക',\n    redo: 'വീണ്ടും ചെയ്യുക',\n    confirm: 'സ്ഥിരീകരിക്കുക',\n    clear: 'മായ്ക്കുക'\n  },\n  Popconfirm: {\n    positiveText: 'സ്ഥിരീകരിക്കുക',\n    negativeText: 'റദ്ദാക്കുക'\n  },\n  Cascader: {\n    placeholder: 'ദയവായി തിരഞ്ഞെടുക്കുക',\n    loading: 'ലോഡ് ചെയ്യുന്നു',\n    loadingRequiredMessage: (label: string): string =>\n      `പരിശോധിക്കുന്നതിന് മുമ്പ് ${label} ന്റെ എല്ലാ സന്തതികളെയും ലೋಡ് ചെയ്യുക.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'മായ്ക്കുക',\n    now: 'ഇപ്പോൾ',\n    confirm: 'സ്ഥിരീകരിക്കുക',\n    selectTime: 'സമയം തിരഞ്ഞെടുക്കുക',\n    selectDate: 'തീയതി തിരഞ്ഞെടുക്കുക',\n    datePlaceholder: 'തീയതി തിരഞ്ഞെടുക്കുക',\n    datetimePlaceholder: 'തീയതിയും സമയവും തിരഞ്ഞെടുക്കുക',\n    monthPlaceholder: 'മാസം തിരഞ്ഞെടുക്കുക',\n    yearPlaceholder: 'വർഷം തിരഞ്ഞെടുക്കുക',\n    quarterPlaceholder: 'ത്രൈമാസം തിരഞ്ഞെടുക്കുക',\n    weekPlaceholder: 'ആഴ്ച തിരഞ്ഞെടുക്കുക',\n    startDatePlaceholder: 'ആരംഭ തീയതി',\n    endDatePlaceholder: 'അവസാന തീയതി',\n    startDatetimePlaceholder: 'ആരംഭ തീയതിയും സമയവും',\n    endDatetimePlaceholder: 'അവസാന തീയതിയും സമയവും',\n    startMonthPlaceholder: 'ആരംഭ മാസം',\n    endMonthPlaceholder: 'അവസാന മാസം',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ഇന്ന്'\n  },\n  DataTable: {\n    checkTableAll: 'പട്ടികയിലെ എല്ലാം തിരഞ്ഞെടുക്കുക',\n    uncheckTableAll: 'പട്ടികയിലെ എല്ലാ തിരഞ്ഞെടുപ്പും നീക്കം ചെയ്യുക',\n    confirm: 'സ്ഥിരീകരിക്കുക',\n    clear: 'മായ്ക്കുക'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ഉറവിടം',\n    targetTitle: 'ലക്ഷ്യം'\n  },\n  Transfer: {\n    selectAll: 'എല്ലാം തിരഞ്ഞെടുക്കുക',\n    unselectAll: 'എല്ലാ തിരഞ്ഞെടുപ്പും നീക്കം ചെയ്യുക',\n    clearAll: 'മായ്ക്കുക',\n    total: (num: number): string => `ആകെ ${num} ഇനങ്ങൾ`,\n    selected: (num: number): string => `${num} ഇനങ്ങൾ തിരഞ്ഞെടുത്തു`\n  },\n  Empty: {\n    description: 'ഡാറ്റയില്ല'\n  },\n  Select: {\n    placeholder: 'ദയവായി തിരഞ്ഞെടുക്കുക'\n  },\n  TimePicker: {\n    placeholder: 'സമയം തിരഞ്ഞെടുക്കുക',\n    positiveText: 'ശരി',\n    negativeText: 'റദ്ദാക്കുക',\n    now: 'ഇപ്പോൾ',\n    clear: 'മായ്ക്കുക'\n  },\n  Pagination: {\n    goto: 'ഇവിടേക്ക് പോകുക',\n    selectionSuffix: 'പേജ്'\n  },\n  DynamicTags: {\n    add: 'ചേർക്കുക'\n  },\n  Log: {\n    loading: 'ലോഡ് ചെയ്യുന്നു'\n  },\n  Input: {\n    placeholder: 'ദയവായി നൽകുക'\n  },\n  InputNumber: {\n    placeholder: 'ദയവായി നൽകുക'\n  },\n  DynamicInput: {\n    create: 'സൃഷ്ടിക്കുക'\n  },\n  ThemeEditor: {\n    title: 'തീം എഡിറ്റർ',\n    clearAllVars: 'എല്ലാ വേരിയബിളുകളും മായ്ക്കുക',\n    clearSearch: 'തിരയൽ മായ്ക്കുക',\n    filterCompName: 'ഘടകത്തിന്റെ പേര് ഫിൽട്ടർ ചെയ്യുക',\n    filterVarName: 'വേരിയബിളിന്റെ പേര് ഫിൽട്ടർ ചെയ്യുക',\n    import: 'ഇറക്കുമതി',\n    export: 'കയറ്റുമതി',\n    restore: 'ഡിഫോൾട്ടിലേക്ക് പുനഃസജ്ജമാക്കുക'\n  },\n  Image: {\n    tipPrevious: 'മുമ്പത്തെ ചിത്രം (←)',\n    tipNext: 'അടുത്ത ചിത്രം (→)',\n    tipCounterclockwise: 'ഘടികാരദിശയ്ക്ക് വിപരീതമായി',\n    tipClockwise: 'ഘടികാരദിശയിൽ',\n    tipZoomOut: 'ചെറുതാക്കുക',\n    tipZoomIn: 'വലുതാക്കുക',\n    tipDownload: 'ഡൗൺലോഡ്',\n    tipClose: 'അടയ്ക്കുക (Esc)',\n    tipOriginalSize: 'യഥാർത്ഥ വലുപ്പത്തിലേക്ക് സൂം ചെയ്യുക'\n  },\n  Heatmap: {\n    less: 'കുറവ്',\n    more: 'കൂടുതൽ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default mlIN\n","import type { NLocale } from './enUS'\n\nconst mnMN: NLocale = {\n  name: 'mn-MN',\n  global: {\n    undo: 'Буцаах',\n    redo: 'Дахин хийх',\n    confirm: 'Батлах',\n    clear: 'Цэвэрлэх'\n  },\n  Popconfirm: {\n    positiveText: 'Батлах',\n    negativeText: 'Цуцлах'\n  },\n  Cascader: {\n    placeholder: 'Сонгоно уу',\n    loading: 'Ачаалж байна',\n    loadingRequiredMessage: (label: string): string =>\n      `${label}-н бүх дэд зүйлийг сонгохоосоо өмнө ачаална уу.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Цэвэрлэх',\n    now: 'Одоо',\n    confirm: 'Батлах',\n    selectTime: 'Цаг сонгох',\n    selectDate: 'Огноо сонгох',\n    datePlaceholder: 'Огноо сонгох',\n    datetimePlaceholder: 'Огноо ба цаг сонгох',\n    monthPlaceholder: 'Сар сонгох',\n    yearPlaceholder: 'Жил сонгох',\n    quarterPlaceholder: 'Улирал сонгох',\n    weekPlaceholder: 'Долоо хоног сонгох',\n    startDatePlaceholder: 'Эхлэх огноо',\n    endDatePlaceholder: 'Дуусах огноо',\n    startDatetimePlaceholder: 'Эхлэх огноо ба цаг',\n    endDatetimePlaceholder: 'Дуусах огноо ба цаг',\n    startMonthPlaceholder: 'Эхлэх сар',\n    endMonthPlaceholder: 'Дуусах сар',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Өнөөдөр'\n  },\n  DataTable: {\n    checkTableAll: 'Хүснэгтийн бүгдийг сонгох',\n    uncheckTableAll: 'Хүснэгтийн сонголтыг цэвэрлэх',\n    confirm: 'Батлах',\n    clear: 'Цэвэрлэх'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Эх сурвалж',\n    targetTitle: 'Очих газар'\n  },\n  Transfer: {\n    selectAll: 'Бүгдийг сонгох',\n    unselectAll: 'Сонголтыг цэвэрлэх',\n    clearAll: 'Цэвэрлэх',\n    total: (num: number): string => `Нийт ${num} зүйл`,\n    selected: (num: number): string => `${num} зүйл сонгосон`\n  },\n  Empty: {\n    description: 'Өгөгдөл байхгүй'\n  },\n  Select: {\n    placeholder: 'Сонгоно уу'\n  },\n  TimePicker: {\n    placeholder: 'Цаг сонгох',\n    positiveText: 'ОК',\n    negativeText: 'Цуцлах',\n    now: 'Одоо',\n    clear: 'Цэвэрлэх'\n  },\n  Pagination: {\n    goto: 'Очих',\n    selectionSuffix: 'хуудас'\n  },\n  DynamicTags: {\n    add: 'Нэмэх'\n  },\n  Log: {\n    loading: 'Ачаалж байна'\n  },\n  Input: {\n    placeholder: 'Оруулна уу'\n  },\n  InputNumber: {\n    placeholder: 'Оруулна уу'\n  },\n  DynamicInput: {\n    create: 'Үүсгэх'\n  },\n  ThemeEditor: {\n    title: 'Загвар засварлагч',\n    clearAllVars: 'Бүх хувьсагчийг цэвэрлэх',\n    clearSearch: 'Хайлтыг цэвэрлэх',\n    filterCompName: 'Компонентын нэрээр шүүх',\n    filterVarName: 'Хувьсагчийн нэрээр шүүх',\n    import: 'Импортлох',\n    export: 'Экспортлох',\n    restore: 'Анхдагч руу сэргээх'\n  },\n  Image: {\n    tipPrevious: 'Өмнөх зураг (←)',\n    tipNext: 'Дараагийн зураг (→)',\n    tipCounterclockwise: 'Цагийн зүүний эсрэг',\n    tipClockwise: 'Цагийн зүүний дагуу',\n    tipZoomOut: 'Жижигрүүлэх',\n    tipZoomIn: 'Томруулах',\n    tipDownload: 'Татах',\n    tipClose: 'Хаах (Esc)',\n    tipOriginalSize: 'Жинхэнэ хэмжээнд томруулах'\n  },\n  Heatmap: {\n    less: 'бага',\n    more: 'их',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default mnMN\n","import type { NLocale } from './enUS'\n\nconst mrIN: NLocale = {\n  name: 'mr-IN',\n  global: {\n    undo: 'पूर्ववत करा',\n    redo: 'पुन्हा करा',\n    confirm: 'पुष्टी करा',\n    clear: 'साफ करा'\n  },\n  Popconfirm: {\n    positiveText: 'पुष्टी करा',\n    negativeText: 'रद्द करा'\n  },\n  Cascader: {\n    placeholder: 'कृपया निवडा',\n    loading: 'लोड होत आहे',\n    loadingRequiredMessage: (label: string): string =>\n      `कृपया तपासण्यापूर्वी ${label}चे सर्व वंशज लोड करा.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'साफ करा',\n    now: 'आता',\n    confirm: 'पुष्टी करा',\n    selectTime: 'वेळ निवडा',\n    selectDate: 'दिनांक निवडा',\n    datePlaceholder: 'दिनांक निवडा',\n    datetimePlaceholder: 'दिनांक आणि वेळ निवडा',\n    monthPlaceholder: 'महिना निवडा',\n    yearPlaceholder: 'वर्ष निवडा',\n    quarterPlaceholder: 'तिमाही निवडा',\n    weekPlaceholder: 'आठवडा निवडा',\n    startDatePlaceholder: 'प्रारंभ दिनांक',\n    endDatePlaceholder: 'समाप्ती दिनांक',\n    startDatetimePlaceholder: 'प्रारंभ दिनांक आणि वेळ',\n    endDatetimePlaceholder: 'समाप्ती दिनांक आणि वेळ',\n    startMonthPlaceholder: 'प्रारंभ महिना',\n    endMonthPlaceholder: 'समाप्ती महिना',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'आज'\n  },\n  DataTable: {\n    checkTableAll: 'तक्त्यातील सर्व निवडा',\n    uncheckTableAll: 'तक्त्यातील सर्व निवड रद्द करा',\n    confirm: 'पुष्टी करा',\n    clear: 'साफ करा'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'स्रोत',\n    targetTitle: 'लक्ष्य'\n  },\n  Transfer: {\n    selectAll: 'सर्व निवडा',\n    unselectAll: 'सर्व निवड रद्द करा',\n    clearAll: 'साफ करा',\n    total: (num: number): string => `एकूण ${num} आयटम`,\n    selected: (num: number): string => `${num} आयटम निवडले`\n  },\n  Empty: {\n    description: 'डेटा नाही'\n  },\n  Select: {\n    placeholder: 'कृपया निवडा'\n  },\n  TimePicker: {\n    placeholder: 'वेळ निवडा',\n    positiveText: 'ठीक आहे',\n    negativeText: 'रद्द करा',\n    now: 'आता',\n    clear: 'साफ करा'\n  },\n  Pagination: {\n    goto: 'जा',\n    selectionSuffix: 'पृष्ठ'\n  },\n  DynamicTags: {\n    add: 'जोडा'\n  },\n  Log: {\n    loading: 'लोड होत आहे'\n  },\n  Input: {\n    placeholder: 'कृपया प्रविष्ट करा'\n  },\n  InputNumber: {\n    placeholder: 'कृपया प्रविष्ट करा'\n  },\n  DynamicInput: {\n    create: 'तयार करा'\n  },\n  ThemeEditor: {\n    title: 'थीम संपादक',\n    clearAllVars: 'सर्व चल साफ करा',\n    clearSearch: 'शोध साफ करा',\n    filterCompName: 'घटक नाव फिल्टर करा',\n    filterVarName: 'चल नाव फिल्टर करा',\n    import: 'आयात',\n    export: 'निर्यात',\n    restore: 'डीफॉल्टवर रीसेट करा'\n  },\n  Image: {\n    tipPrevious: 'मागील चित्र (←)',\n    tipNext: 'पुढील चित्र (→)',\n    tipCounterclockwise: 'घड्याळाच्या विरुद्ध दिशेने',\n    tipClockwise: 'घड्याळाच्या दिशेने',\n    tipZoomOut: 'लहान करा',\n    tipZoomIn: 'मोठे करा',\n    tipDownload: 'डाउनलोड',\n    tipClose: 'बंद करा (Esc)',\n    tipOriginalSize: 'मूळ आकारावर झूम करा'\n  },\n  Heatmap: {\n    less: 'कमी',\n    more: 'अधिक',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default mrIN\n","import type { NLocale } from './enUS'\n\nconst msMY: NLocale = {\n  name: 'ms-MY',\n  global: {\n    undo: 'Buat asal',\n    redo: 'Buat semula',\n    confirm: 'Sahkan',\n    clear: 'Kosongkan'\n  },\n  Popconfirm: {\n    positiveText: 'Sahkan',\n    negativeText: 'Batal'\n  },\n  Cascader: {\n    placeholder: 'Sila pilih',\n    loading: 'Memuatkan',\n    loadingRequiredMessage: (label: string): string =>\n      `Sila muatkan semua turunan ${label} sebelum menandainya.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Kosongkan',\n    now: 'Sekarang',\n    confirm: 'Sahkan',\n    selectTime: 'Pilih masa',\n    selectDate: 'Pilih tarikh',\n    datePlaceholder: 'Pilih tarikh',\n    datetimePlaceholder: 'Pilih tarikh dan masa',\n    monthPlaceholder: 'Pilih bulan',\n    yearPlaceholder: 'Pilih tahun',\n    quarterPlaceholder: 'Pilih suku tahun',\n    weekPlaceholder: 'Pilih minggu',\n    startDatePlaceholder: 'Tarikh mula',\n    endDatePlaceholder: 'Tarikh tamat',\n    startDatetimePlaceholder: 'Tarikh dan masa mula',\n    endDatetimePlaceholder: 'Tarikh dan masa tamat',\n    startMonthPlaceholder: 'Bulan mula',\n    endMonthPlaceholder: 'Bulan tamat',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hari ini'\n  },\n  DataTable: {\n    checkTableAll: 'Pilih semua dalam jadual',\n    uncheckTableAll: 'Nyahpilih semua dalam jadual',\n    confirm: 'Sahkan',\n    clear: 'Kosongkan'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Sumber',\n    targetTitle: 'Sasaran'\n  },\n  Transfer: {\n    selectAll: 'Pilih semua',\n    unselectAll: 'Nyahpilih semua',\n    clearAll: 'Kosongkan',\n    total: (num: number): string => `Jumlah ${num} item`,\n    selected: (num: number): string => `${num} item dipilih`\n  },\n  Empty: {\n    description: 'Tiada data'\n  },\n  Select: {\n    placeholder: 'Sila pilih'\n  },\n  TimePicker: {\n    placeholder: 'Pilih masa',\n    positiveText: 'OK',\n    negativeText: 'Batal',\n    now: 'Sekarang',\n    clear: 'Kosongkan'\n  },\n  Pagination: {\n    goto: 'Pergi ke',\n    selectionSuffix: 'halaman'\n  },\n  DynamicTags: {\n    add: 'Tambah'\n  },\n  Log: {\n    loading: 'Memuatkan'\n  },\n  Input: {\n    placeholder: 'Sila masukkan'\n  },\n  InputNumber: {\n    placeholder: 'Sila masukkan'\n  },\n  DynamicInput: {\n    create: 'Cipta'\n  },\n  ThemeEditor: {\n    title: 'Editor tema',\n    clearAllVars: 'Kosongkan semua pemboleh ubah',\n    clearSearch: 'Kosongkan carian',\n    filterCompName: 'Tapis nama komponen',\n    filterVarName: 'Tapis nama pemboleh ubah',\n    import: 'Import',\n    export: 'Eksport',\n    restore: 'Set semula kepada lalai'\n  },\n  Image: {\n    tipPrevious: 'Gambar sebelumnya (←)',\n    tipNext: 'Gambar seterusnya (→)',\n    tipCounterclockwise: 'Lawan jam',\n    tipClockwise: 'Mengikut jam',\n    tipZoomOut: 'Zum keluar',\n    tipZoomIn: 'Zum masuk',\n    tipDownload: 'Muat turun',\n    tipClose: 'Tutup (Esc)',\n    tipOriginalSize: 'Zum ke saiz asal'\n  },\n  Heatmap: {\n    less: 'kurang',\n    more: 'lebih',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default msMY\n","import type { NLocale } from './enUS'\n\nconst myMM: NLocale = {\n  name: 'my-MM',\n  global: {\n    undo: 'ပြာန်ဆုတ်',\n    redo: 'ပြာန်လုပ်',\n    confirm: 'အတညီပြု',\n    clear: 'ရှိင်းလိင်း'\n  },\n  Popconfirm: {\n    positiveText: 'အတညီပြု',\n    negativeText: 'ပယ်ဖျက်'\n  },\n  Cascader: {\n    placeholder: 'ကြေးဇူပြု၍ ရွေးချယ်ပာ',\n    loading: 'တိင်နေသည်',\n    loadingRequiredMessage: (label: string): string =>\n      `စိစ်စေးမည့်မီ ${label} ၏ အောက်အဆင့်အားလုံးကို တိင်ပာ`\n  },\n  Time: {\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'ရှိင်းလိင်း',\n    now: 'ယခု',\n    confirm: 'အတညီပြု',\n    selectTime: 'အချိန်ရွေးပာ',\n    selectDate: 'ရက်စွဲရွေးပာ',\n    datePlaceholder: 'ရက်စွဲရွေးပာ',\n    datetimePlaceholder: 'ရက်စွဲနှင် အချိန်ရွေးပာ',\n    monthPlaceholder: 'လ ရွေးပာ',\n    yearPlaceholder: 'နှစ် ရွေးပာ',\n    quarterPlaceholder: 'သုးလပတ် ရွေးပာ',\n    weekPlaceholder: 'အပတ် ရွေးပာ',\n    startDatePlaceholder: 'စတိန်ရက်စွဲ',\n    endDatePlaceholder: 'ပြီးဆုးရက်စွဲ',\n    startDatetimePlaceholder: 'စတိန်ရက်စွဲနှင် အချိန်',\n    endDatetimePlaceholder: 'ပြီးဆုးရက်စွဲနှင် အချိန်',\n    startMonthPlaceholder: 'စတိန်လ',\n    endMonthPlaceholder: 'ပြီးဆုးလ',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ယနေ့'\n  },\n  DataTable: {\n    checkTableAll: 'ဇယားရှိ အားလုံးကို ရွေးပာ',\n    uncheckTableAll: 'ဇယားရှိ အားလုံးကို ဖြုတ်ပာ',\n    confirm: 'အတညီပြု',\n    clear: 'ရှိင်းလိင်း'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ရိင်းမြိစ်',\n    targetTitle: 'ပိစ်မှတ်'\n  },\n  Transfer: {\n    selectAll: 'အားလုံးရွေးပာ',\n    unselectAll: 'အားလုံးဖြုတ်ပာ',\n    clearAll: 'ရှိင်းလိင်း',\n    total: (num: number): string => `စုစုပောင်း ${num} ခု`,\n    selected: (num: number): string => `${num} ခု ရွေးထားသည်`\n  },\n  Empty: {\n    description: 'ဒေတာမရှိပာ'\n  },\n  Select: {\n    placeholder: 'ကြေးဇူပြု၍ ရွေးချယ်ပာ'\n  },\n  TimePicker: {\n    placeholder: 'အချိန်ရွေးပာ',\n    positiveText: 'ကောင်းပြီ',\n    negativeText: 'ပယ်ဖျက်',\n    now: 'ယခု',\n    clear: 'ရှိင်းလိင်း'\n  },\n  Pagination: {\n    goto: 'သွားရန်',\n    selectionSuffix: 'စာမျက်နှာ'\n  },\n  DynamicTags: {\n    add: 'ထည့်ပာ'\n  },\n  Log: {\n    loading: 'တိင်နေသည်'\n  },\n  Input: {\n    placeholder: 'ကြေးဇူပြု၍ ရိုက်ထည့်ပာ'\n  },\n  InputNumber: {\n    placeholder: 'ကြေးဇူပြု၍ ရိုက်ထည့်ပာ'\n  },\n  DynamicInput: {\n    create: 'ဖန်တီးပာ'\n  },\n  ThemeEditor: {\n    title: 'အပြိင်အဆိင် တည်းဖြတ်ကိရိယာ',\n    clearAllVars: 'ကိန်းရှင်အားလုံး ရှိင်းလိင်းပာ',\n    clearSearch: 'ရှာဖွေမှု ရှိင်းလိင်းပာ',\n    filterCompName: 'အစိတ်အပိုင်းအမည် စိစ်ထုတ်ပာ',\n    filterVarName: 'ကိန်းရှင်အမည် စိစ်ထုတ်ပာ',\n    import: 'တိင်သွိင်းပာ',\n    export: 'ထုတ်ယူပာ',\n    restore: 'မူလအတိုင်း ပြာန်ထားပာ'\n  },\n  Image: {\n    tipPrevious: 'ယခိန်ပုံ (←)',\n    tipNext: 'နောက်ပုံ (→)',\n    tipCounterclockwise: 'လက်ဝဲရိစ်',\n    tipClockwise: 'လက်ယာရိစ်',\n    tipZoomOut: 'ချုံ့ပာ',\n    tipZoomIn: 'ချဲ့ပာ',\n    tipDownload: 'ဒောင်းလုဒ်',\n    tipClose: 'ပိတ်ပာ (Esc)',\n    tipOriginalSize: 'မူလအရွယ်အစားသို့ ချဲ့ပာ'\n  },\n  Heatmap: {\n    less: 'နည်း',\n    more: 'များ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default myMM\n","import type { NLocale } from './enUS'\n\nconst nbNO: NLocale = {\n  name: 'nb-NO',\n  global: {\n    undo: 'Angre',\n    redo: 'Utfør likevel',\n    confirm: 'Bekreft',\n    clear: 'Tøm'\n  },\n  Popconfirm: {\n    positiveText: 'Bekreft',\n    negativeText: 'Avbryt'\n  },\n  Cascader: {\n    placeholder: 'Vennligst velg',\n    loading: 'Laster',\n    loadingRequiredMessage: (label: string): string =>\n      `Vennligst last alle underpunkter av ${label} før du velger oppføringen.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Tøm',\n    now: 'Nå',\n    confirm: 'Bekreft',\n    selectTime: 'Velg tid',\n    selectDate: 'Velg dato',\n    datePlaceholder: 'Velg dato',\n    datetimePlaceholder: 'Velg dato og tid',\n    monthPlaceholder: 'Velg måned',\n    yearPlaceholder: 'Velg år',\n    quarterPlaceholder: 'Velg kvartal',\n    weekPlaceholder: 'Velg uke',\n    startDatePlaceholder: 'Startdato',\n    endDatePlaceholder: 'Sluttdato',\n    startDatetimePlaceholder: 'Startdato og -tid',\n    endDatetimePlaceholder: 'Sluttdato og -tid',\n    startMonthPlaceholder: 'Startmåned',\n    endMonthPlaceholder: 'Sluttmåned',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'I dag'\n  },\n  DataTable: {\n    checkTableAll: 'Velg alt',\n    uncheckTableAll: 'Velg ingenting',\n    confirm: 'Bekreft',\n    clear: 'Tøm'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Kilde',\n    targetTitle: 'Mål'\n  },\n  Transfer: {\n    selectAll: 'Velg alle',\n    unselectAll: 'Fjern alle',\n    clearAll: 'Tøm',\n    total: (num: number): string => `Totalt ${num} elementer`,\n    selected: (num: number): string => `${num} elementer valgt`\n  },\n  Empty: {\n    description: 'Ingen data'\n  },\n  Select: {\n    placeholder: 'Vennligst velg'\n  },\n  TimePicker: {\n    placeholder: 'Velg tid',\n    positiveText: 'OK',\n    negativeText: 'Avbryt',\n    now: 'Nå',\n    clear: 'Tøm'\n  },\n  Pagination: {\n    goto: 'Gå til',\n    selectionSuffix: 'side'\n  },\n  DynamicTags: {\n    add: 'Legg til'\n  },\n  Log: {\n    loading: 'Laster'\n  },\n  Input: {\n    placeholder: 'Vennligst fyll ut'\n  },\n  InputNumber: {\n    placeholder: 'Vennligst fyll ut'\n  },\n  DynamicInput: {\n    create: 'Opprett'\n  },\n  ThemeEditor: {\n    title: 'Temaredigerer',\n    clearAllVars: 'Nullstill alle variabler',\n    clearSearch: 'Tøm søk',\n    filterCompName: 'Filtrer etter komponentnavn',\n    filterVarName: 'Filtrer etter variabelnavn',\n    import: 'Importer',\n    export: 'Eksporter',\n    restore: 'Nullstill til standardvalg'\n  },\n  Image: {\n    tipPrevious: 'Forrige bilde (←)',\n    tipNext: 'Neste bilde (→)',\n    tipCounterclockwise: 'Mot klokken',\n    tipClockwise: 'Med klokken',\n    tipZoomOut: 'Zoom ut',\n    tipZoomIn: 'Zoom inn',\n    tipDownload: 'Last ned',\n    tipClose: 'Lukk (Esc)',\n    tipOriginalSize: 'Zoom til opprinnelig størrelse'\n  },\n  Heatmap: {\n    less: 'mindre',\n    more: 'mer',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default nbNO\n","import type { NLocale } from './enUS'\n\nconst neNP: NLocale = {\n  name: 'ne-NP',\n  global: {\n    undo: 'पूर्वावस्थामा फर्काउनुहोस्',\n    redo: 'दोहोर्याउनुहोस्',\n    confirm: 'पुष्टि गर्नुहोस्',\n    clear: 'खाली गर्नुहोस्'\n  },\n  Popconfirm: {\n    positiveText: 'पुष्टि गर्नुहोस्',\n    negativeText: 'रद्द गर्नुहोस्'\n  },\n  Cascader: {\n    placeholder: 'कृपया चयन गर्नुहोस्',\n    loading: 'लोड हुँदैछ',\n    loadingRequiredMessage: (label: string): string =>\n      `कृपया जाँच्नुअघि ${label} का सबै वंशजहरू लोड गर्नुहोस्।`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'खाली गर्नुहोस्',\n    now: 'अहिले',\n    confirm: 'पुष्टि गर्नुहोस्',\n    selectTime: 'समय चयन गर्नुहोस्',\n    selectDate: 'मिति चयन गर्नुहोस्',\n    datePlaceholder: 'मिति चयन गर्नुहोस्',\n    datetimePlaceholder: 'मिति र समय चयन गर्नुहोस्',\n    monthPlaceholder: 'महिना चयन गर्नुहोस्',\n    yearPlaceholder: 'वर्ष चयन गर्नुहोस्',\n    quarterPlaceholder: 'त्रैमासिक चयन गर्नुहोस्',\n    weekPlaceholder: 'हप्ता चयन गर्नुहोस्',\n    startDatePlaceholder: 'सुरु मिति',\n    endDatePlaceholder: 'अन्त्य मिति',\n    startDatetimePlaceholder: 'सुरु मिति र समय',\n    endDatetimePlaceholder: 'अन्त्य मिति र समय',\n    startMonthPlaceholder: 'सुरु महिना',\n    endMonthPlaceholder: 'अन्त्य महिना',\n    monthBeforeYear: false,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'आज'\n  },\n  DataTable: {\n    checkTableAll: 'तालिकामा सबै चयन गर्नुहोस्',\n    uncheckTableAll: 'तालिकामा सबै चयन हटाउनुहोस्',\n    confirm: 'पुष्टि गर्नुहोस्',\n    clear: 'खाली गर्नुहोस्'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'स्रोत',\n    targetTitle: 'लक्ष्य'\n  },\n  Transfer: {\n    selectAll: 'सबै चयन गर्नुहोस्',\n    unselectAll: 'सबै चयन हटाउनुहोस्',\n    clearAll: 'खाली गर्नुहोस्',\n    total: (num: number): string => `जम्मा ${num} वस्तुहरू`,\n    selected: (num: number): string => `${num} वस्तु चयन गरियो`\n  },\n  Empty: {\n    description: 'कुनै डेटा छैन'\n  },\n  Select: {\n    placeholder: 'कृपया चयन गर्नुहोस्'\n  },\n  TimePicker: {\n    placeholder: 'समय चयन गर्नुहोस्',\n    positiveText: 'ठिक छ',\n    negativeText: 'रद्द गर्नुहोस्',\n    now: 'अहिले',\n    clear: 'खाली गर्नुहोस्'\n  },\n  Pagination: {\n    goto: 'जानुहोस्',\n    selectionSuffix: 'पृष्ठ'\n  },\n  DynamicTags: {\n    add: 'थप्नुहोस्'\n  },\n  Log: {\n    loading: 'लोड हुँदैछ'\n  },\n  Input: {\n    placeholder: 'कृपया प्रविष्ट गर्नुहोस्'\n  },\n  InputNumber: {\n    placeholder: 'कृपया प्रविष्ट गर्नुहोस्'\n  },\n  DynamicInput: {\n    create: 'सिर्जना गर्नुहोस्'\n  },\n  ThemeEditor: {\n    title: 'थिम सम्पादक',\n    clearAllVars: 'सबै चर खाली गर्नुहोस्',\n    clearSearch: 'खोज खाली गर्नुहोस्',\n    filterCompName: 'कम्पोनेन्ट नाम फिल्टर गर्नुहोस्',\n    filterVarName: 'चर नाम फिल्टर गर्नुहोस्',\n    import: 'आयात',\n    export: 'निर्यात',\n    restore: 'पूर्वनिर्धारितमा रिसेट गर्नुहोस्'\n  },\n  Image: {\n    tipPrevious: 'अघिल्लो तस्बिर (←)',\n    tipNext: 'अर्को तस्बिर (→)',\n    tipCounterclockwise: 'घडीको विपरीत दिशा',\n    tipClockwise: 'घडीको दिशा',\n    tipZoomOut: 'सानो पार्नुहोस्',\n    tipZoomIn: 'ठूलो पार्नुहोस्',\n    tipDownload: 'डाउनलोड',\n    tipClose: 'बन्द गर्नुहोस् (Esc)',\n    tipOriginalSize: 'मूल आकारमा जुम गर्नुहोस्'\n  },\n  Heatmap: {\n    less: 'कम',\n    more: 'बढी',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default neNP\n","import type { NLocale } from './enUS'\n\nconst nlNL: NLocale = {\n  name: 'nl-NL',\n  global: {\n    undo: 'Ongedaan Maken',\n    redo: 'Opnieuw Doen',\n    confirm: 'Bevestig',\n    clear: 'Wis'\n  },\n  Popconfirm: {\n    positiveText: 'Bevestig',\n    negativeText: 'Annuleer'\n  },\n  Cascader: {\n    placeholder: 'Selecteer a.u.b.',\n    loading: 'Laden',\n    loadingRequiredMessage: (label: string): string =>\n      `Laad alle afstammelingen van ${label} alvorens het te selecteren.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'qqq yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'Wis',\n    now: 'Nu',\n    confirm: 'Bevestig',\n    selectTime: 'Selecteer Uur',\n    selectDate: 'Selecteer Datum',\n    datePlaceholder: 'Selecteer Datum',\n    datetimePlaceholder: 'Selecteer Dag en Uur',\n    monthPlaceholder: 'Selecteer Maand',\n    yearPlaceholder: 'Selecteer Jaar',\n    quarterPlaceholder: 'Selecteer Kwartaal',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Begindatum',\n    endDatePlaceholder: 'Einddatum',\n    startDatetimePlaceholder: 'Begindatum en Uur',\n    endDatetimePlaceholder: 'Einddatum en Uur',\n    startMonthPlaceholder: 'Begin Maand',\n    endMonthPlaceholder: 'Eind Maand',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Vandaag'\n  },\n  DataTable: {\n    checkTableAll: 'Selecteer alles in de tabel',\n    uncheckTableAll: 'Alles in de tabel deselecteren',\n    confirm: 'Bevestig',\n    clear: 'Wis'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Bron',\n    targetTitle: 'Doel'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'Geen Data'\n  },\n  Select: {\n    placeholder: 'Selecteer a.u.b.'\n  },\n  TimePicker: {\n    placeholder: 'Selecteer Uur',\n    positiveText: 'OK',\n    negativeText: 'Annuleer',\n    now: 'Nu',\n    clear: 'Wis'\n  },\n  Pagination: {\n    goto: 'Ga naar',\n    selectionSuffix: 'pagina'\n  },\n  DynamicTags: {\n    add: 'Toevoegen'\n  },\n  Log: {\n    loading: 'Laden'\n  },\n  Input: {\n    placeholder: 'Invoeren a.u.b.'\n  },\n  InputNumber: {\n    placeholder: 'Invoeren a.u.b.'\n  },\n  DynamicInput: {\n    create: 'Creëer'\n  },\n  ThemeEditor: {\n    title: 'Thema Bewerker',\n    clearAllVars: 'Wis Alle Variabelen',\n    clearSearch: 'Wis Zoekopdracht',\n    filterCompName: 'Filter Componentsnaam',\n    filterVarName: 'Filter Variablenaam',\n    import: 'Importen',\n    export: 'Exporteren',\n    restore: 'Reset naar Standaard'\n  },\n  Image: {\n    tipPrevious: 'Vorige afbeelding (←)',\n    tipNext: 'Volgende afbeelding (→)',\n    tipCounterclockwise: 'Tegen de klok in',\n    tipClockwise: 'Met de klok mee',\n    tipZoomOut: 'Uitzoomen',\n    tipZoomIn: 'Inzoomen',\n    tipDownload: 'Download',\n    tipClose: 'Sluiten (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'minder',\n    more: 'meer',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default nlNL\n","import type { NLocale } from './enUS'\n\nconst nnNO: NLocale = {\n  name: 'nn-NO',\n  global: {\n    undo: 'Angre',\n    redo: 'Utfør likevel',\n    confirm: 'Stadfest',\n    clear: 'Tøm'\n  },\n  Popconfirm: {\n    positiveText: 'Stadfest',\n    negativeText: 'Avbryt'\n  },\n  Cascader: {\n    placeholder: 'Vel',\n    loading: 'Lastar',\n    loadingRequiredMessage: (label: string): string =>\n      `Last alle underpunkt av ${label} før du vel oppføringa.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Tøm',\n    now: 'No',\n    confirm: 'Stadfest',\n    selectTime: 'Vel tid',\n    selectDate: 'Vel dato',\n    datePlaceholder: 'Vel dato',\n    datetimePlaceholder: 'Vel dato og tid',\n    monthPlaceholder: 'Vel månad',\n    yearPlaceholder: 'Vel år',\n    quarterPlaceholder: 'Vel kvartal',\n    weekPlaceholder: 'Vel veke',\n    startDatePlaceholder: 'Startdato',\n    endDatePlaceholder: 'Sluttdato',\n    startDatetimePlaceholder: 'Startdato og -tid',\n    endDatetimePlaceholder: 'Sluttdato og -tid',\n    startMonthPlaceholder: 'Startmånad',\n    endMonthPlaceholder: 'Sluttmånad',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'I dag'\n  },\n  DataTable: {\n    checkTableAll: 'Vel alt',\n    uncheckTableAll: 'Vel ingenting',\n    confirm: 'Stadfest',\n    clear: 'Tøm'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Kjelde',\n    targetTitle: 'Mål'\n  },\n  Transfer: {\n    selectAll: 'Vel alle',\n    unselectAll: 'Fjern alle',\n    clearAll: 'Tøm',\n    total: (num: number): string => `Totalt ${num} element`,\n    selected: (num: number): string => `${num} element valt`\n  },\n  Empty: {\n    description: 'Ingen data'\n  },\n  Select: {\n    placeholder: 'Vel'\n  },\n  TimePicker: {\n    placeholder: 'Vel tid',\n    positiveText: 'OK',\n    negativeText: 'Avbryt',\n    now: 'No',\n    clear: 'Tøm'\n  },\n  Pagination: {\n    goto: 'Gå til',\n    selectionSuffix: 'side'\n  },\n  DynamicTags: {\n    add: 'Legg til'\n  },\n  Log: {\n    loading: 'Lastar'\n  },\n  Input: {\n    placeholder: 'Fyll ut'\n  },\n  InputNumber: {\n    placeholder: 'Fyll ut'\n  },\n  DynamicInput: {\n    create: 'Opprett'\n  },\n  ThemeEditor: {\n    title: 'Temaredigerar',\n    clearAllVars: 'Nullstill alle variablar',\n    clearSearch: 'Tøm søk',\n    filterCompName: 'Filtrer etter komponentnamn',\n    filterVarName: 'Filtrer etter variabelnamn',\n    import: 'Importer',\n    export: 'Eksporter',\n    restore: 'Nullstill til standardval'\n  },\n  Image: {\n    tipPrevious: 'Førre bilete (←)',\n    tipNext: 'Neste bilete (→)',\n    tipCounterclockwise: 'Mot klokka',\n    tipClockwise: 'Med klokka',\n    tipZoomOut: 'Zoom ut',\n    tipZoomIn: 'Zoom inn',\n    tipDownload: 'Last ned',\n    tipClose: 'Lukk (Esc)',\n    tipOriginalSize: 'Zoom til opphavleg storleik'\n  },\n  Heatmap: {\n    less: 'mindre',\n    more: 'meir',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default nnNO\n","import type { NLocale } from './enUS'\n\nconst paIN: NLocale = {\n  name: 'pa-IN',\n  global: {\n    undo: 'ਅਣਕੀਤਾ',\n    redo: 'ਮੁੜ ਕਰੋ',\n    confirm: 'ਪੁਸ਼ਟੀ ਕਰੋ',\n    clear: 'ਸਾਫ਼ ਕਰੋ'\n  },\n  Popconfirm: {\n    positiveText: 'ਪੁਸ਼ਟੀ ਕਰੋ',\n    negativeText: 'ਰੱਦ ਕਰੋ'\n  },\n  Cascader: {\n    placeholder: 'ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ',\n    loading: 'ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ',\n    loadingRequiredMessage: (label: string): string =>\n      `ਕਿਰਪਾ ਕਰਕੇ ਚੈੱਕ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ${label} ਦੀਆਂ ਸਾਰੀਆਂ ਸੰਤਾਨਾਂ ਲੋਡ ਕਰੋ।`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'ਸਾਫ਼ ਕਰੋ',\n    now: 'ਹੁਣ',\n    confirm: 'ਪੁਸ਼ਟੀ ਕਰੋ',\n    selectTime: 'ਸਮਾਂ ਚੁਣੋ',\n    selectDate: 'ਤਾਰੀਖ ਚੁਣੋ',\n    datePlaceholder: 'ਤਾਰੀਖ ਚੁਣੋ',\n    datetimePlaceholder: 'ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ ਚੁਣੋ',\n    monthPlaceholder: 'ਮਹੀਨਾ ਚੁਣੋ',\n    yearPlaceholder: 'ਸਾਲ ਚੁਣੋ',\n    quarterPlaceholder: 'ਤਿਮਾਹੀ ਚੁਣੋ',\n    weekPlaceholder: 'ਹਫ਼ਤਾ ਚੁਣੋ',\n    startDatePlaceholder: 'ਸ਼ੁਰੂਆਤੀ ਤਾਰੀਖ',\n    endDatePlaceholder: 'ਅੰਤਮ ਤਾਰੀਖ',\n    startDatetimePlaceholder: 'ਸ਼ੁਰੂਆਤੀ ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ',\n    endDatetimePlaceholder: 'ਅੰਤਮ ਤਾਰੀਖ ਅਤੇ ਸਮਾਂ',\n    startMonthPlaceholder: 'ਸ਼ੁਰੂਆਤੀ ਮਹੀਨਾ',\n    endMonthPlaceholder: 'ਅੰਤਮ ਮਹੀਨਾ',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ਅੱਜ'\n  },\n  DataTable: {\n    checkTableAll: 'ਸਾਰਣੀ ਵਿੱਚ ਸਭ ਚੁਣੋ',\n    uncheckTableAll: 'ਸਾਰਣੀ ਵਿੱਚ ਸਭ ਅਣਚੁਣੇ ਕਰੋ',\n    confirm: 'ਪੁਸ਼ਟੀ ਕਰੋ',\n    clear: 'ਸਾਫ਼ ਕਰੋ'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ਸਰੋਤ',\n    targetTitle: 'ਟੀਚਾ'\n  },\n  Transfer: {\n    selectAll: 'ਸਭ ਚੁਣੋ',\n    unselectAll: 'ਸਭ ਅਣਚੁਣੇ ਕਰੋ',\n    clearAll: 'ਸਾਫ਼ ਕਰੋ',\n    total: (num: number): string => `ਕੁੱਲ ${num} ਆਈਟਮਾਂ`,\n    selected: (num: number): string => `${num} ਆਈਟਮਾਂ ਚੁਣੀਆਂ`\n  },\n  Empty: {\n    description: 'ਕੋਈ ਡਾਟਾ ਨਹੀਂ'\n  },\n  Select: {\n    placeholder: 'ਕਿਰਪਾ ਕਰਕੇ ਚੁਣੋ'\n  },\n  TimePicker: {\n    placeholder: 'ਸਮਾਂ ਚੁਣੋ',\n    positiveText: 'ਠੀਕ ਹੈ',\n    negativeText: 'ਰੱਦ ਕਰੋ',\n    now: 'ਹੁਣ',\n    clear: 'ਸਾਫ਼ ਕਰੋ'\n  },\n  Pagination: {\n    goto: 'ਜਾਓ',\n    selectionSuffix: 'ਪੰਨਾ'\n  },\n  DynamicTags: {\n    add: 'ਜੋੜੋ'\n  },\n  Log: {\n    loading: 'ਲੋਡ ਹੋ ਰਿਹਾ ਹੈ'\n  },\n  Input: {\n    placeholder: 'ਕਿਰਪਾ ਕਰਕੇ ਦਰਜ ਕਰੋ'\n  },\n  InputNumber: {\n    placeholder: 'ਕਿਰਪਾ ਕਰਕੇ ਦਰਜ ਕਰੋ'\n  },\n  DynamicInput: {\n    create: 'ਬਣਾਓ'\n  },\n  ThemeEditor: {\n    title: 'ਥੀਮ ਸੰਪਾਦਕ',\n    clearAllVars: 'ਸਾਰੇ ਚਰ ਸਾਫ਼ ਕਰੋ',\n    clearSearch: 'ਖੋਜ ਸਾਫ਼ ਕਰੋ',\n    filterCompName: 'ਭਾਗ ਦਾ ਨਾਮ ਛਾਣੋ',\n    filterVarName: 'ਚਰ ਦਾ ਨਾਮ ਛਾਣੋ',\n    import: 'ਆਯਾਤ',\n    export: 'ਨਿਰਯਾਤ',\n    restore: 'ਮੂਲ ਉੱਤੇ ਰੀਸੈੱਟ ਕਰੋ'\n  },\n  Image: {\n    tipPrevious: 'ਪਿਛਲੀ ਤਸਵੀਰ (←)',\n    tipNext: 'ਅਗਲੀ ਤਸਵੀਰ (→)',\n    tipCounterclockwise: 'ਘੜੀ ਦੀ ਉਲਟ ਦਿਸ਼ਾ',\n    tipClockwise: 'ਘੜੀ ਦੀ ਦਿਸ਼ਾ',\n    tipZoomOut: 'ਛੋਟਾ ਕਰੋ',\n    tipZoomIn: 'ਵੱਡਾ ਕਰੋ',\n    tipDownload: 'ਡਾਊਨਲੋਡ',\n    tipClose: 'ਬੰਦ ਕਰੋ (Esc)',\n    tipOriginalSize: 'ਅਸਲ ਆਕਾਰ ਉੱਤੇ ਜ਼ੂਮ ਕਰੋ'\n  },\n  Heatmap: {\n    less: 'ਘੱਟ',\n    more: 'ਵੱਧ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default paIN\n","import type { NLocale } from './enUS'\n\nconst plPL: NLocale = {\n  name: 'pl-PL',\n  global: {\n    undo: 'Cofnij',\n    redo: 'Ponów',\n    confirm: 'Potwierdź',\n    clear: 'Wyczyść'\n  },\n  Popconfirm: {\n    positiveText: 'Potwierdź',\n    negativeText: 'Anuluj'\n  },\n  Cascader: {\n    placeholder: 'Wybierz',\n    loading: 'Ładowanie',\n    loadingRequiredMessage: (label: string): string =>\n      `Proszę załadować wszystkie ${label}'s elementy przed sprawdzeniem.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Wyczyść',\n    now: 'Teraz',\n    confirm: 'Potwierdź',\n    selectTime: 'Wybierz czas',\n    selectDate: 'Wybierz datę',\n    datePlaceholder: 'Wybierz datę',\n    datetimePlaceholder: 'Wybierz datę i czas',\n    monthPlaceholder: 'Wybierz miesiąc',\n    yearPlaceholder: 'Wybierz rok',\n    quarterPlaceholder: 'Wybierz kwartał',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Data rozpoczęcia',\n    endDatePlaceholder: 'Data zakończenia',\n    startDatetimePlaceholder: 'Data i godzina rozpoczęcia',\n    endDatetimePlaceholder: 'Data i godzina zakończenia',\n    // FIXME: translation needed\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6,\n    today: 'Dziś'\n  },\n  DataTable: {\n    checkTableAll: 'Zaznacz wszystkie w tabeli',\n    uncheckTableAll: 'Odznacz wszystkie w tabeli',\n    confirm: 'Potwierdź',\n    clear: 'Wyczyść'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Źródło',\n    targetTitle: 'Cel'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'Brak danych'\n  },\n  Select: {\n    placeholder: 'Wybierz'\n  },\n  TimePicker: {\n    placeholder: 'Wybierz czas',\n    positiveText: 'Potwierdź',\n    negativeText: 'Anuluj',\n    now: 'Teraz',\n    clear: 'Wyczyść'\n  },\n  Pagination: {\n    goto: 'Idź do',\n    selectionSuffix: 'strona'\n  },\n  DynamicTags: {\n    add: 'Dodaj'\n  },\n  Log: {\n    loading: 'Ładowanie'\n  },\n  Input: {\n    placeholder: 'Wprowadź dane'\n  },\n  InputNumber: {\n    placeholder: 'Wprowadź dane'\n  },\n  DynamicInput: {\n    create: 'Utwórz'\n  },\n  ThemeEditor: {\n    title: 'Edytor motywów',\n    clearAllVars: 'Wyczyść wszystkie zmienne',\n    clearSearch: 'Wyczyść wyszukiwanie',\n    filterCompName: 'Nazwa komponentu filtra',\n    filterVarName: 'Nazwa zmiennej filtra',\n    import: 'Importuj',\n    export: 'Eksportuj',\n    restore: 'Przywróć ustawienia domyślne'\n  },\n  Image: {\n    tipPrevious: 'Poprzednie zdjęcie (←)',\n    tipNext: 'Następne zdjęcie (→)',\n    tipCounterclockwise: 'Przeciwnie do ruchu wskazówek zegara',\n    tipClockwise: 'Zgodnie z ruchem wskazówek zegara',\n    tipZoomOut: 'Powiększ',\n    tipZoomIn: 'Pomniejsz',\n    tipDownload: 'Pobierz',\n    tipClose: 'Zamknij (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'mniej',\n    more: 'więcej',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default plPL\n","import type { NLocale } from './enUS'\n\nconst ptBR: NLocale = {\n  name: 'pt-BR',\n  global: {\n    undo: 'Desfazer',\n    redo: 'Refazer',\n    confirm: 'Confirmar',\n    clear: 'Limpar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancelar'\n  },\n  Cascader: {\n    placeholder: 'Por favor selecione',\n    loading: 'Carregando',\n    loadingRequiredMessage: (label: string): string =>\n      `Carregue todos os descendentes de ${label} antes de verificar.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy/MM',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy/qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Limpar',\n    now: 'Agora',\n    confirm: 'Confirmar',\n    selectTime: 'Selecione a hora',\n    selectDate: 'Selecione a data',\n    datePlaceholder: 'Selecione a data',\n    datetimePlaceholder: 'Selecione a data e hora',\n    monthPlaceholder: 'Selecione o mês',\n    yearPlaceholder: 'Selecione o ano',\n    quarterPlaceholder: 'Selecione o trimestre',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Selecione a data de início',\n    endDatePlaceholder: 'Selecione a data de término',\n    startDatetimePlaceholder: 'Selecione a data e hora de início',\n    endDatetimePlaceholder: 'Selecione a data e hora de término',\n    startMonthPlaceholder: 'Selecione o mês de início',\n    endMonthPlaceholder: 'Selecione o mês de término',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hoje'\n  },\n  DataTable: {\n    checkTableAll: 'Selecionar todos na tabela',\n    uncheckTableAll: 'Desmarcar todos na tabela',\n    confirm: 'Confirmar',\n    clear: 'Limpar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Origem',\n    targetTitle: 'Destino'\n  },\n  Transfer: {\n    selectAll: 'Selecionar todos',\n    unselectAll: 'Desmarcar todos',\n    clearAll: 'Limpar',\n    total: (num: number): string => `Total ${num} itens`,\n    selected: (num: number): string => `${num} itens selecionados`\n  },\n  Empty: {\n    description: 'Não há dados'\n  },\n  Select: {\n    placeholder: 'Por favor selecione'\n  },\n  TimePicker: {\n    placeholder: 'Selecione a hora',\n    positiveText: 'OK',\n    negativeText: 'Cancelar',\n    now: 'Agora',\n    clear: 'Limpar'\n  },\n  Pagination: {\n    goto: 'Ir para',\n    selectionSuffix: 'página'\n  },\n  DynamicTags: {\n    add: 'Adicionar'\n  },\n  Log: {\n    loading: 'Carregando'\n  },\n  Input: {\n    placeholder: 'Por favor digite'\n  },\n  InputNumber: {\n    placeholder: 'Por favor digite'\n  },\n  DynamicInput: {\n    create: 'Criar'\n  },\n  ThemeEditor: {\n    title: 'Editor de temas',\n    clearAllVars: 'Limpar todas as variáveis',\n    clearSearch: 'Limpar pesquisa',\n    filterCompName: 'Filtrar nome do componente',\n    filterVarName: 'Filtrar nome da variável',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restaurar'\n  },\n  Image: {\n    tipPrevious: 'Foto anterior (←)',\n    tipNext: 'Próxima foto (→)',\n    tipCounterclockwise: 'Sentido anti-horário',\n    tipClockwise: 'Sentido horário',\n    tipZoomOut: 'Reduzir o zoom',\n    tipZoomIn: 'Aumentar o zoom',\n    tipDownload: 'Download',\n    tipClose: 'Fechar (Esc)',\n    tipOriginalSize: 'Exibir no tamanho original'\n  },\n  Heatmap: {\n    less: 'menos',\n    more: 'mais',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ptBR\n","import type { NLocale } from './enUS'\n\nconst ptPT: NLocale = {\n  name: 'pt-PT',\n  global: {\n    undo: 'Anular',\n    redo: 'Refazer',\n    confirm: 'Confirmar',\n    clear: 'Limpar'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmar',\n    negativeText: 'Cancelar'\n  },\n  Cascader: {\n    placeholder: 'Selecione',\n    loading: 'A carregar',\n    loadingRequiredMessage: (label: string): string =>\n      `Carregue todos os descendentes de ${label} antes de o selecionar.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Limpar',\n    now: 'Agora',\n    confirm: 'Confirmar',\n    selectTime: 'Selecionar hora',\n    selectDate: 'Selecionar data',\n    datePlaceholder: 'Selecionar data',\n    datetimePlaceholder: 'Selecionar data e hora',\n    monthPlaceholder: 'Selecionar mês',\n    yearPlaceholder: 'Selecionar ano',\n    quarterPlaceholder: 'Selecionar trimestre',\n    weekPlaceholder: 'Selecionar semana',\n    startDatePlaceholder: 'Data de início',\n    endDatePlaceholder: 'Data de fim',\n    startDatetimePlaceholder: 'Data e hora de início',\n    endDatetimePlaceholder: 'Data e hora de fim',\n    startMonthPlaceholder: 'Mês de início',\n    endMonthPlaceholder: 'Mês de fim',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hoje'\n  },\n  DataTable: {\n    checkTableAll: 'Selecionar tudo na tabela',\n    uncheckTableAll: 'Desmarcar tudo na tabela',\n    confirm: 'Confirmar',\n    clear: 'Limpar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Origem',\n    targetTitle: 'Destino'\n  },\n  Transfer: {\n    selectAll: 'Selecionar tudo',\n    unselectAll: 'Desmarcar tudo',\n    clearAll: 'Limpar',\n    total: (num: number): string => `Total de ${num} itens`,\n    selected: (num: number): string => `${num} itens selecionados`\n  },\n  Empty: {\n    description: 'Sem dados'\n  },\n  Select: {\n    placeholder: 'Selecione'\n  },\n  TimePicker: {\n    placeholder: 'Selecionar hora',\n    positiveText: 'OK',\n    negativeText: 'Cancelar',\n    now: 'Agora',\n    clear: 'Limpar'\n  },\n  Pagination: {\n    goto: 'Ir para',\n    selectionSuffix: 'página'\n  },\n  DynamicTags: {\n    add: 'Adicionar'\n  },\n  Log: {\n    loading: 'A carregar'\n  },\n  Input: {\n    placeholder: 'Introduza'\n  },\n  InputNumber: {\n    placeholder: 'Introduza'\n  },\n  DynamicInput: {\n    create: 'Criar'\n  },\n  ThemeEditor: {\n    title: 'Editor de tema',\n    clearAllVars: 'Limpar todas as variáveis',\n    clearSearch: 'Limpar pesquisa',\n    filterCompName: 'Filtrar nome do componente',\n    filterVarName: 'Filtrar nome da variável',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Repor predefinições'\n  },\n  Image: {\n    tipPrevious: 'Imagem anterior (←)',\n    tipNext: 'Imagem seguinte (→)',\n    tipCounterclockwise: 'Sentido anti-horário',\n    tipClockwise: 'Sentido horário',\n    tipZoomOut: 'Reduzir',\n    tipZoomIn: 'Ampliar',\n    tipDownload: 'Descarregar',\n    tipClose: 'Fechar (Esc)',\n    tipOriginalSize: 'Zoom para o tamanho original'\n  },\n  Heatmap: {\n    less: 'menos',\n    more: 'mais',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ptPT\n","import type { NLocale } from './enUS'\n\nconst rmCH: NLocale = {\n  name: 'rm-CH',\n  global: {\n    undo: 'Distornar',\n    redo: 'Repeter',\n    confirm: 'Confermar',\n    clear: 'Stizzar'\n  },\n  Popconfirm: {\n    positiveText: 'Confermar',\n    negativeText: 'Interrumper'\n  },\n  Cascader: {\n    placeholder: 'Tscherni per plaschair',\n    loading: 'Chargiar',\n    loadingRequiredMessage: (label: string): string =>\n      `Chargiai tut ils descendents da ${label} avant da tscherner.`\n  },\n  Time: {\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'dd-MM-yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Stizzar',\n    now: 'Ussa',\n    confirm: 'Confermar',\n    selectTime: 'Tscherni l\\'ura',\n    selectDate: 'Tscherni la data',\n    datePlaceholder: 'Tscherni la data',\n    datetimePlaceholder: 'Tscherni la data e l\\'ura',\n    monthPlaceholder: 'Tscherni il mais',\n    yearPlaceholder: 'Tscherni l\\'onn',\n    quarterPlaceholder: 'Tscherni il quartal',\n    weekPlaceholder: 'Tscherni l\\'emna',\n    startDatePlaceholder: 'Data da cumenzament',\n    endDatePlaceholder: 'Data da finiziun',\n    startDatetimePlaceholder: 'Data ed ura da cumenzament',\n    endDatetimePlaceholder: 'Data ed ura da finiziun',\n    startMonthPlaceholder: 'Mais da cumenzament',\n    endMonthPlaceholder: 'Mais da finiziun',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Oz'\n  },\n  DataTable: {\n    checkTableAll: 'Tscherni tut en la tabella',\n    uncheckTableAll: 'Destscherni tut en la tabella',\n    confirm: 'Confermar',\n    clear: 'Stizzar'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Funtauna',\n    targetTitle: 'Destinaziun'\n  },\n  Transfer: {\n    selectAll: 'Tscherni tut',\n    unselectAll: 'Destscherni tut',\n    clearAll: 'Stizzar',\n    total: (num: number): string => `Total ${num} elements`,\n    selected: (num: number): string => `${num} elements tschernids`\n  },\n  Empty: {\n    description: 'Naginas datas'\n  },\n  Select: {\n    placeholder: 'Tscherni per plaschair'\n  },\n  TimePicker: {\n    placeholder: 'Tscherni l\\'ura',\n    positiveText: 'OK',\n    negativeText: 'Interrumper',\n    now: 'Ussa',\n    clear: 'Stizzar'\n  },\n  Pagination: {\n    goto: 'Ir a',\n    selectionSuffix: 'pagina'\n  },\n  DynamicTags: {\n    add: 'Agiuntar'\n  },\n  Log: {\n    loading: 'Chargiar'\n  },\n  Input: {\n    placeholder: 'Endatai per plaschair'\n  },\n  InputNumber: {\n    placeholder: 'Endatai per plaschair'\n  },\n  DynamicInput: {\n    create: 'Crear'\n  },\n  ThemeEditor: {\n    title: 'Editur da tema',\n    clearAllVars: 'Stizzar tut las variablas',\n    clearSearch: 'Stizzar la tschertga',\n    filterCompName: 'Filtrar il num dal component',\n    filterVarName: 'Filtrar il num da la variabla',\n    import: 'Importar',\n    export: 'Exportar',\n    restore: 'Restaurar il standard'\n  },\n  Image: {\n    tipPrevious: 'Maletg precedent (←)',\n    tipNext: 'Maletg proxim (→)',\n    tipCounterclockwise: 'En contra dal sens da l\\'ura',\n    tipClockwise: 'En il sens da l\\'ura',\n    tipZoomOut: 'Empitschnir',\n    tipZoomIn: 'Engrondir',\n    tipDownload: 'Telechargiar',\n    tipClose: 'Serrar (Esc)',\n    tipOriginalSize: 'Zoom a la grondezza originala'\n  },\n  Heatmap: {\n    less: 'damain',\n    more: 'dapli',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default rmCH\n","import type { NLocale } from './enUS'\n\nconst roRO: NLocale = {\n  name: 'ro-RO',\n  global: {\n    undo: 'Anulează',\n    redo: 'Refă',\n    confirm: 'Confirmă',\n    clear: 'Șterge'\n  },\n  Popconfirm: {\n    positiveText: 'Confirmă',\n    negativeText: 'Anulează'\n  },\n  Cascader: {\n    placeholder: 'Selectați',\n    loading: 'Se încarcă',\n    loadingRequiredMessage: (label: string): string =>\n      `Încărcați toți descendenții lui ${label} înainte de a-l selecta.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Șterge',\n    now: 'Acum',\n    confirm: 'Confirmă',\n    selectTime: 'Selectați ora',\n    selectDate: 'Selectați data',\n    datePlaceholder: 'Selectați data',\n    datetimePlaceholder: 'Selectați data și ora',\n    monthPlaceholder: 'Selectați luna',\n    yearPlaceholder: 'Selectați anul',\n    quarterPlaceholder: 'Selectați trimestrul',\n    weekPlaceholder: 'Selectați săptămâna',\n    startDatePlaceholder: 'Data de început',\n    endDatePlaceholder: 'Data de sfârșit',\n    startDatetimePlaceholder: 'Data și ora de început',\n    endDatetimePlaceholder: 'Data și ora de sfârșit',\n    startMonthPlaceholder: 'Luna de început',\n    endMonthPlaceholder: 'Luna de sfârșit',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Astăzi'\n  },\n  DataTable: {\n    checkTableAll: 'Selectează tot din tabel',\n    uncheckTableAll: 'Deselectează tot din tabel',\n    confirm: 'Confirmă',\n    clear: 'Șterge'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Sursă',\n    targetTitle: 'Destinație'\n  },\n  Transfer: {\n    selectAll: 'Selectează tot',\n    unselectAll: 'Deselectează tot',\n    clearAll: 'Șterge',\n    total: (num: number): string => `Total ${num} elemente`,\n    selected: (num: number): string => `${num} elemente selectate`\n  },\n  Empty: {\n    description: 'Nu există date'\n  },\n  Select: {\n    placeholder: 'Selectați'\n  },\n  TimePicker: {\n    placeholder: 'Selectați ora',\n    positiveText: 'OK',\n    negativeText: 'Anulează',\n    now: 'Acum',\n    clear: 'Șterge'\n  },\n  Pagination: {\n    goto: 'Mergi la',\n    selectionSuffix: 'pagină'\n  },\n  DynamicTags: {\n    add: 'Adaugă'\n  },\n  Log: {\n    loading: 'Se încarcă'\n  },\n  Input: {\n    placeholder: 'Introduceți'\n  },\n  InputNumber: {\n    placeholder: 'Introduceți'\n  },\n  DynamicInput: {\n    create: 'Creează'\n  },\n  ThemeEditor: {\n    title: 'Editor de temă',\n    clearAllVars: 'Șterge toate variabilele',\n    clearSearch: 'Șterge căutarea',\n    filterCompName: 'Filtrează numele componentei',\n    filterVarName: 'Filtrează numele variabilei',\n    import: 'Importă',\n    export: 'Exportă',\n    restore: 'Restabilește valorile implicite'\n  },\n  Image: {\n    tipPrevious: 'Imaginea anterioară (←)',\n    tipNext: 'Imaginea următoare (→)',\n    tipCounterclockwise: 'Sens antiorar',\n    tipClockwise: 'Sens orar',\n    tipZoomOut: 'Micșorează',\n    tipZoomIn: 'Mărește',\n    tipDownload: 'Descarcă',\n    tipClose: 'Închide (Esc)',\n    tipOriginalSize: 'Zoom la dimensiunea originală'\n  },\n  Heatmap: {\n    less: 'mai puțin',\n    more: 'mai mult',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default roRO\n","import type { NLocale } from './enUS'\n\nconst ruRu: NLocale = {\n  name: 'ru-RU',\n  global: {\n    undo: 'Отменить',\n    redo: 'Вернуть',\n    confirm: 'Подтвердить',\n    clear: 'Очистить'\n  },\n  Popconfirm: {\n    positiveText: 'Подтвердить',\n    negativeText: 'Отмена'\n  },\n  Cascader: {\n    placeholder: 'Выбрать',\n    loading: 'Загрузка',\n    loadingRequiredMessage: (label: string): string =>\n      `Загрузите все дочерние узлы ${label} прежде чем они станут необязательными`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Очистить',\n    now: 'Сейчас',\n    confirm: 'Подтвердить',\n    selectTime: 'Выбрать время',\n    selectDate: 'Выбрать дату',\n    datePlaceholder: 'Выбрать дату',\n    datetimePlaceholder: 'Выбрать дату и время',\n    monthPlaceholder: 'Выберите месяц',\n    yearPlaceholder: 'Выберите год',\n    quarterPlaceholder: 'Выберите квартал',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Дата начала',\n    endDatePlaceholder: 'Дата окончания',\n    startDatetimePlaceholder: 'Дата и время начала',\n    endDatetimePlaceholder: 'Дата и время окончания',\n    startMonthPlaceholder: 'Начало месяца',\n    endMonthPlaceholder: 'Конец месяца',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Сегодня'\n  },\n  DataTable: {\n    checkTableAll: 'Выбрать все в таблице',\n    uncheckTableAll: 'Отменить все в таблице',\n    confirm: 'Подтвердить',\n    clear: 'Очистить'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Источник',\n    targetTitle: 'Назначение'\n  },\n  Transfer: {\n    selectAll: 'Выбрать все',\n    unselectAll: 'Снять все',\n    clearAll: 'Очистить',\n    total: (num: number): string => `Всего ${num} элементов`,\n    selected: (num: number): string => `${num} выбрано элементов`\n  },\n  Empty: {\n    description: 'Нет данных'\n  },\n  Select: {\n    placeholder: 'Выбрать'\n  },\n  TimePicker: {\n    placeholder: 'Выбрать время',\n    positiveText: 'OK',\n    negativeText: 'Отменить',\n    now: 'Сейчас',\n    clear: 'Очистить'\n  },\n  Pagination: {\n    goto: 'Перейти',\n    selectionSuffix: 'страница'\n  },\n  DynamicTags: {\n    add: 'Добавить'\n  },\n  Log: {\n    loading: 'Загрузка'\n  },\n  Input: {\n    placeholder: 'Ввести'\n  },\n  InputNumber: {\n    placeholder: 'Ввести'\n  },\n  DynamicInput: {\n    create: 'Создать'\n  },\n  ThemeEditor: {\n    title: 'Редактор темы',\n    clearAllVars: 'Очистить все',\n    clearSearch: 'Очистить поиск',\n    filterCompName: 'Фильтровать по имени компонента',\n    filterVarName: 'Фильтровать имена переменных',\n    import: 'Импорт',\n    export: 'Экспорт',\n    restore: 'Сбросить'\n  },\n  Image: {\n    tipPrevious: 'Предыдущее изображение (←)',\n    tipNext: 'Следующее изображение (→)',\n    tipCounterclockwise: 'Против часовой стрелки',\n    tipClockwise: 'По часовой стрелке',\n    tipZoomOut: 'Отдалить',\n    tipZoomIn: 'Приблизить',\n    tipDownload: 'Скачать',\n    tipClose: 'Закрыть (Esc)',\n    tipOriginalSize: 'Вернуть исходный размер'\n  },\n  Heatmap: {\n    less: 'меньше',\n    more: 'больше',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ruRu\n","import type { NLocale } from './enUS'\n\nconst siLK: NLocale = {\n  name: 'si-LK',\n  global: {\n    undo: 'අහෝසි කරන්න',\n    redo: 'නැවත කරන්න',\n    confirm: 'තහවුරු කරන්න',\n    clear: 'හිස් කරන්න'\n  },\n  Popconfirm: {\n    positiveText: 'තහවුරු කරන්න',\n    negativeText: 'අවලංගු කරන්න'\n  },\n  Cascader: {\n    placeholder: 'කරුණාකර තෝරන්න',\n    loading: 'පූරණය වෙමින්',\n    loadingRequiredMessage: (label: string): string =>\n      `කරුණාකර එය සලකුණු කිරීමට පෙර ${label} හි සියලු පරම්පරාවන් පූරණය කරන්න.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'හිස් කරන්න',\n    now: 'දැන්',\n    confirm: 'තහවුරු කරන්න',\n    selectTime: 'වේලාව තෝරන්න',\n    selectDate: 'දිනය තෝරන්න',\n    datePlaceholder: 'දිනය තෝරන්න',\n    datetimePlaceholder: 'දිනය සහ වේලාව තෝරන්න',\n    monthPlaceholder: 'මාසය තෝරන්න',\n    yearPlaceholder: 'වර්ෂය තෝරන්න',\n    quarterPlaceholder: 'කාර්තුව තෝරන්න',\n    weekPlaceholder: 'සතිය තෝරන්න',\n    startDatePlaceholder: 'ආරම්භක දිනය',\n    endDatePlaceholder: 'අවසන් දිනය',\n    startDatetimePlaceholder: 'ආරම්භක දිනය සහ වේලාව',\n    endDatetimePlaceholder: 'අවසන් දිනය සහ වේලාව',\n    startMonthPlaceholder: 'ආරම්භක මාසය',\n    endMonthPlaceholder: 'අවසන් මාසය',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'අද'\n  },\n  DataTable: {\n    checkTableAll: 'වගුවේ සියල්ල තෝරන්න',\n    uncheckTableAll: 'වගුවේ සියල්ල තේරීම ඉවත් කරන්න',\n    confirm: 'තහවුරු කරන්න',\n    clear: 'හිස් කරන්න'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'මූලාශ්‍රය',\n    targetTitle: 'ඉලක්කය'\n  },\n  Transfer: {\n    selectAll: 'සියල්ල තෝරන්න',\n    unselectAll: 'සියල්ල තේරීම ඉවත් කරන්න',\n    clearAll: 'හිස් කරන්න',\n    total: (num: number): string => `මුළු ${num} අයිතම`,\n    selected: (num: number): string => `${num} අයිතම තෝරා ඇත`\n  },\n  Empty: {\n    description: 'දත්ත නැත'\n  },\n  Select: {\n    placeholder: 'කරුණාකර තෝරන්න'\n  },\n  TimePicker: {\n    placeholder: 'වේලාව තෝරන්න',\n    positiveText: 'හරි',\n    negativeText: 'අවලංගු කරන්න',\n    now: 'දැන්',\n    clear: 'හිස් කරන්න'\n  },\n  Pagination: {\n    goto: 'යන්න',\n    selectionSuffix: 'පිටුව'\n  },\n  DynamicTags: {\n    add: 'එක් කරන්න'\n  },\n  Log: {\n    loading: 'පූරණය වෙමින්'\n  },\n  Input: {\n    placeholder: 'කරුණාකර ඇතුළත් කරන්න'\n  },\n  InputNumber: {\n    placeholder: 'කරුණාකර ඇතුළත් කරන්න'\n  },\n  DynamicInput: {\n    create: 'සාදන්න'\n  },\n  ThemeEditor: {\n    title: 'තේමා සංස්කාරකය',\n    clearAllVars: 'සියලු විචල්‍යයන් හිස් කරන්න',\n    clearSearch: 'සෙවීම හිස් කරන්න',\n    filterCompName: 'සංරචක නාමය පෙරහන් කරන්න',\n    filterVarName: 'විචල්‍ය නාමය පෙරහන් කරන්න',\n    import: 'ආනයනය',\n    export: 'අපනයනය',\n    restore: 'පෙරනිමියට යළි සකසන්න'\n  },\n  Image: {\n    tipPrevious: 'පෙර පින්තූරය (←)',\n    tipNext: 'ඊළඟ පින්තූරය (→)',\n    tipCounterclockwise: 'ඔරලෝසුවට විරුද්ධව',\n    tipClockwise: 'ඔරලෝසුව අනුව',\n    tipZoomOut: 'කුඩා කරන්න',\n    tipZoomIn: 'විශාල කරන්න',\n    tipDownload: 'බාගන්න',\n    tipClose: 'වසන්න (Esc)',\n    tipOriginalSize: 'මුල් ප්‍රමාණයට විශාලනය කරන්න'\n  },\n  Heatmap: {\n    less: 'අඩු',\n    more: 'වැඩි',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default siLK\n","import type { NLocale } from './enUS'\n\nconst skSK: NLocale = {\n  name: 'sk-SK',\n  global: {\n    undo: 'Späť',\n    redo: 'Obnoviť',\n    confirm: 'Potvrdiť',\n    clear: 'Vyčistiť'\n  },\n  Popconfirm: {\n    positiveText: 'Potvrdiť',\n    negativeText: 'Zrušiť'\n  },\n  Cascader: {\n    placeholder: 'Prosím vyberte',\n    loading: 'Načítavanie',\n    loadingRequiredMessage: (label: string): string =>\n      `Prosím načítajte všetkých ${label} potomkov pred kontrolou.`\n  },\n  Time: {\n    dateFormat: 'd-M-yyyy',\n    dateTimeFormat: 'd-M-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'EEEE',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MMM-yyyy',\n    dateFormat: 'd-M-yyyy',\n    dateTimeFormat: 'd-M-yyyy HH:mm:ss',\n    quarterFormat: 'qqq-yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'Vyčistiť',\n    now: 'Teraz',\n    confirm: 'Potvrdiť',\n    selectTime: 'Vybrať čas',\n    selectDate: 'Vybrať dátum',\n    datePlaceholder: 'Vyberte čas',\n    datetimePlaceholder: 'Vyberte dátum a čas',\n    monthPlaceholder: 'Vyberte mesiac',\n    yearPlaceholder: 'Vyberte rok',\n    quarterPlaceholder: 'Vyberte štvrťrok',\n    weekPlaceholder: 'Vyberte týždeň',\n    startDatePlaceholder: 'Dátum začiatku',\n    endDatePlaceholder: 'Dátum ukončenia',\n    startDatetimePlaceholder: 'Dátum a čas začiatku',\n    endDatetimePlaceholder: 'Dátum a čas ukončenia ',\n    startMonthPlaceholder: 'Začiatok mesiaca',\n    endMonthPlaceholder: 'Koniec mesiaca',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Dnes'\n  },\n  DataTable: {\n    checkTableAll: 'Vybrať všetko v tabuľke',\n    uncheckTableAll: 'Zrušiť výber všetkého v tabuľke ',\n    confirm: 'Potvrdiť',\n    clear: 'Vyčistiť'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Zdroj',\n    targetTitle: 'Cieľ'\n  },\n  Transfer: {\n    selectAll: 'Vybrať všetko',\n    unselectAll: 'odznačiť všetko',\n    clearAll: 'Vyčistiť',\n    total: (num: number): string => `Celkom ${num} položiek`,\n    selected: (num: number): string => `Vybratých ${num} položiek`\n  },\n  Empty: {\n    description: 'Žiadne dáta'\n  },\n  Select: {\n    placeholder: 'Prosím vyberte'\n  },\n  TimePicker: {\n    placeholder: 'Vybrať čas',\n    positiveText: 'OK',\n    negativeText: 'Zrušiť',\n    now: 'Teraz',\n    clear: 'Vyčistiť'\n  },\n  Pagination: {\n    goto: 'Ísť na',\n    selectionSuffix: 'Strana'\n  },\n  DynamicTags: {\n    add: 'Pridať'\n  },\n  Log: {\n    loading: 'Načítavanie'\n  },\n  Input: {\n    placeholder: 'Zadajte'\n  },\n  InputNumber: {\n    placeholder: 'Zadajte'\n  },\n  DynamicInput: {\n    create: 'Vytvoriť'\n  },\n  ThemeEditor: {\n    title: 'Editor tém',\n    clearAllVars: 'Vymazať všetky premenné',\n    clearSearch: 'Vymazať vyhľadávanie',\n    filterCompName: 'Filtrovať názov komponentu',\n    filterVarName: 'Filtrovať názov premennej',\n    import: 'Importovať',\n    export: 'Exportovať',\n    restore: 'Obnoviť pôvodné nastavenia'\n  },\n  Image: {\n    tipPrevious: 'Predchádzajúci obrázok (←)',\n    tipNext: 'Ďalší obrázok (→)',\n    tipCounterclockwise: 'Proti smeru hodinových ručičiek',\n    tipClockwise: 'V smere hodinových ručičiek',\n    tipZoomOut: 'Oddialiť',\n    tipZoomIn: 'Priblížiť',\n    tipDownload: 'Sťahovať',\n    tipClose: 'Zavrieť (Esc)',\n    tipOriginalSize: 'Priblížiť na pôvodnú veľkosť'\n  },\n  Heatmap: {\n    less: 'menej',\n    more: 'viac',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default skSK\n","import type { NLocale } from './enUS'\n\nconst slSI: NLocale = {\n  name: 'sl-SI',\n  global: {\n    undo: 'Razveljavi',\n    redo: 'Uveljavi',\n    confirm: 'Potrdi',\n    clear: 'Počisti'\n  },\n  Popconfirm: {\n    positiveText: 'Potrdi',\n    negativeText: 'Prekliči'\n  },\n  Cascader: {\n    placeholder: 'Izberite',\n    loading: 'Nalaganje',\n    loadingRequiredMessage: (label: string): string =>\n      `Pred izbiro naložite vse potomce elementa ${label}.`\n  },\n  Time: {\n    dateFormat: 'd. M. yyyy',\n    dateTimeFormat: 'd. M. yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'M. yyyy',\n    dateFormat: 'd. M. yyyy',\n    dateTimeFormat: 'd. M. yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Počisti',\n    now: 'Zdaj',\n    confirm: 'Potrdi',\n    selectTime: 'Izberite čas',\n    selectDate: 'Izberite datum',\n    datePlaceholder: 'Izberite datum',\n    datetimePlaceholder: 'Izberite datum in čas',\n    monthPlaceholder: 'Izberite mesec',\n    yearPlaceholder: 'Izberite leto',\n    quarterPlaceholder: 'Izberite četrtletje',\n    weekPlaceholder: 'Izberite teden',\n    startDatePlaceholder: 'Začetni datum',\n    endDatePlaceholder: 'Končni datum',\n    startDatetimePlaceholder: 'Začetni datum in čas',\n    endDatetimePlaceholder: 'Končni datum in čas',\n    startMonthPlaceholder: 'Začetni mesec',\n    endMonthPlaceholder: 'Končni mesec',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Danes'\n  },\n  DataTable: {\n    checkTableAll: 'Izberi vse v tabeli',\n    uncheckTableAll: 'Počisti izbor v tabeli',\n    confirm: 'Potrdi',\n    clear: 'Počisti'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Vir',\n    targetTitle: 'Cilj'\n  },\n  Transfer: {\n    selectAll: 'Izberi vse',\n    unselectAll: 'Počisti izbor',\n    clearAll: 'Počisti',\n    total: (num: number): string => `Skupaj ${num} elementov`,\n    selected: (num: number): string => `Izbranih ${num} elementov`\n  },\n  Empty: {\n    description: 'Ni podatkov'\n  },\n  Select: {\n    placeholder: 'Izberite'\n  },\n  TimePicker: {\n    placeholder: 'Izberite čas',\n    positiveText: 'V redu',\n    negativeText: 'Prekliči',\n    now: 'Zdaj',\n    clear: 'Počisti'\n  },\n  Pagination: {\n    goto: 'Pojdi na',\n    selectionSuffix: 'stran'\n  },\n  DynamicTags: {\n    add: 'Dodaj'\n  },\n  Log: {\n    loading: 'Nalaganje'\n  },\n  Input: {\n    placeholder: 'Vnesite'\n  },\n  InputNumber: {\n    placeholder: 'Vnesite'\n  },\n  DynamicInput: {\n    create: 'Ustvari'\n  },\n  ThemeEditor: {\n    title: 'Urejevalnik teme',\n    clearAllVars: 'Počisti vse spremenljivke',\n    clearSearch: 'Počisti iskanje',\n    filterCompName: 'Filtriraj ime komponente',\n    filterVarName: 'Filtriraj ime spremenljivke',\n    import: 'Uvozi',\n    export: 'Izvozi',\n    restore: 'Obnovi privzeto'\n  },\n  Image: {\n    tipPrevious: 'Prejšnja slika (←)',\n    tipNext: 'Naslednja slika (→)',\n    tipCounterclockwise: 'V nasprotni smeri urinega kazalca',\n    tipClockwise: 'V smeri urinega kazalca',\n    tipZoomOut: 'Pomanjšaj',\n    tipZoomIn: 'Povečaj',\n    tipDownload: 'Prenesi',\n    tipClose: 'Zapri (Esc)',\n    tipOriginalSize: 'Povečava na izvirno velikost'\n  },\n  Heatmap: {\n    less: 'manj',\n    more: 'več',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default slSI\n","import type { NLocale } from './enUS'\n\nconst sqAL: NLocale = {\n  name: 'sq-AL',\n  global: {\n    undo: 'Zhbëj',\n    redo: 'Ribëj',\n    confirm: 'Konfirmo',\n    clear: 'Pastro'\n  },\n  Popconfirm: {\n    positiveText: 'Konfirmo',\n    negativeText: 'Anulo'\n  },\n  Cascader: {\n    placeholder: 'Ju lutemi zgjidhni',\n    loading: 'Duke u ngarkuar',\n    loadingRequiredMessage: (label: string): string =>\n      `Ngarkoni të gjithë pasardhësit e ${label} para se ta zgjidhni.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy',\n    dateFormat: 'dd.MM.yyyy',\n    dateTimeFormat: 'dd.MM.yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Pastro',\n    now: 'Tani',\n    confirm: 'Konfirmo',\n    selectTime: 'Zgjidhni orën',\n    selectDate: 'Zgjidhni datën',\n    datePlaceholder: 'Zgjidhni datën',\n    datetimePlaceholder: 'Zgjidhni datën dhe orën',\n    monthPlaceholder: 'Zgjidhni muajin',\n    yearPlaceholder: 'Zgjidhni vitin',\n    quarterPlaceholder: 'Zgjidhni tremujorin',\n    weekPlaceholder: 'Zgjidhni javën',\n    startDatePlaceholder: 'Data e fillimit',\n    endDatePlaceholder: 'Data e mbarimit',\n    startDatetimePlaceholder: 'Data dhe ora e fillimit',\n    endDatetimePlaceholder: 'Data dhe ora e mbarimit',\n    startMonthPlaceholder: 'Muaji i fillimit',\n    endMonthPlaceholder: 'Muaji i mbarimit',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Sot'\n  },\n  DataTable: {\n    checkTableAll: 'Zgjidh të gjitha në tabelë',\n    uncheckTableAll: 'Hiq zgjedhjen në tabelë',\n    confirm: 'Konfirmo',\n    clear: 'Pastro'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Burimi',\n    targetTitle: 'Destinacioni'\n  },\n  Transfer: {\n    selectAll: 'Zgjidh të gjitha',\n    unselectAll: 'Hiq të gjitha',\n    clearAll: 'Pastro',\n    total: (num: number): string => `Gjithsej ${num} elemente`,\n    selected: (num: number): string => `${num} elemente të zgjedhura`\n  },\n  Empty: {\n    description: 'Nuk ka të dhëna'\n  },\n  Select: {\n    placeholder: 'Ju lutemi zgjidhni'\n  },\n  TimePicker: {\n    placeholder: 'Zgjidhni orën',\n    positiveText: 'OK',\n    negativeText: 'Anulo',\n    now: 'Tani',\n    clear: 'Pastro'\n  },\n  Pagination: {\n    goto: 'Shko te',\n    selectionSuffix: 'faqe'\n  },\n  DynamicTags: {\n    add: 'Shto'\n  },\n  Log: {\n    loading: 'Duke u ngarkuar'\n  },\n  Input: {\n    placeholder: 'Ju lutemi shkruani'\n  },\n  InputNumber: {\n    placeholder: 'Ju lutemi shkruani'\n  },\n  DynamicInput: {\n    create: 'Krijo'\n  },\n  ThemeEditor: {\n    title: 'Redaktuesi i temës',\n    clearAllVars: 'Pastro të gjitha variablat',\n    clearSearch: 'Pastro kërkimin',\n    filterCompName: 'Filtro emrin e komponentit',\n    filterVarName: 'Filtro emrin e variablit',\n    import: 'Importo',\n    export: 'Eksporto',\n    restore: 'Rikthe në parazgjedhje'\n  },\n  Image: {\n    tipPrevious: 'Imazhi i mëparshëm (←)',\n    tipNext: 'Imazhi tjetër (→)',\n    tipCounterclockwise: 'Kundër akrepave të orës',\n    tipClockwise: 'Në drejtim të akrepave të orës',\n    tipZoomOut: 'Zvogëlo',\n    tipZoomIn: 'Zmadho',\n    tipDownload: 'Shkarko',\n    tipClose: 'Mbyll (Esc)',\n    tipOriginalSize: 'Zmadho në madhësinë origjinale'\n  },\n  Heatmap: {\n    less: 'më pak',\n    more: 'më shumë',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default sqAL\n","import type { NLocale } from './enUS'\n\nconst srRS: NLocale = {\n  name: 'sr-RS',\n  global: {\n    undo: 'Опозови',\n    redo: 'Понови',\n    confirm: 'Потврди',\n    clear: 'Очисти'\n  },\n  Popconfirm: {\n    positiveText: 'Потврди',\n    negativeText: 'Откажи'\n  },\n  Cascader: {\n    placeholder: 'Изаберите',\n    loading: 'Учитавање',\n    loadingRequiredMessage: (label: string): string =>\n      `Учитајте све потомке ставке ${label} пре избора.`\n  },\n  Time: {\n    dateFormat: 'dd.MM.yyyy.',\n    dateTimeFormat: 'dd.MM.yyyy. HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM.yyyy.',\n    dateFormat: 'dd.MM.yyyy.',\n    dateTimeFormat: 'dd.MM.yyyy. HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Очисти',\n    now: 'Сада',\n    confirm: 'Потврди',\n    selectTime: 'Изаберите време',\n    selectDate: 'Изаберите датум',\n    datePlaceholder: 'Изаберите датум',\n    datetimePlaceholder: 'Изаберите датум и време',\n    monthPlaceholder: 'Изаберите месец',\n    yearPlaceholder: 'Изаберите годину',\n    quarterPlaceholder: 'Изаберите квартал',\n    weekPlaceholder: 'Изаберите седмицу',\n    startDatePlaceholder: 'Датум почетка',\n    endDatePlaceholder: 'Датум завршетка',\n    startDatetimePlaceholder: 'Датум и време почетка',\n    endDatetimePlaceholder: 'Датум и време завршетка',\n    startMonthPlaceholder: 'Месец почетка',\n    endMonthPlaceholder: 'Месец завршетка',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Данас'\n  },\n  DataTable: {\n    checkTableAll: 'Изабери све у табели',\n    uncheckTableAll: 'Поништи избор у табели',\n    confirm: 'Потврди',\n    clear: 'Очисти'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Извор',\n    targetTitle: 'Одредиште'\n  },\n  Transfer: {\n    selectAll: 'Изабери све',\n    unselectAll: 'Поништи избор',\n    clearAll: 'Очисти',\n    total: (num: number): string => `Укупно ${num} ставки`,\n    selected: (num: number): string => `Изабрано ${num} ставки`\n  },\n  Empty: {\n    description: 'Нема података'\n  },\n  Select: {\n    placeholder: 'Изаберите'\n  },\n  TimePicker: {\n    placeholder: 'Изаберите време',\n    positiveText: 'У реду',\n    negativeText: 'Откажи',\n    now: 'Сада',\n    clear: 'Очисти'\n  },\n  Pagination: {\n    goto: 'Иди на',\n    selectionSuffix: 'страница'\n  },\n  DynamicTags: {\n    add: 'Додај'\n  },\n  Log: {\n    loading: 'Учитавање'\n  },\n  Input: {\n    placeholder: 'Унесите'\n  },\n  InputNumber: {\n    placeholder: 'Унесите'\n  },\n  DynamicInput: {\n    create: 'Направи'\n  },\n  ThemeEditor: {\n    title: 'Уређивач теме',\n    clearAllVars: 'Очисти све променљиве',\n    clearSearch: 'Очисти претрагу',\n    filterCompName: 'Филтрирај назив компоненте',\n    filterVarName: 'Филтрирај назив променљиве',\n    import: 'Увези',\n    export: 'Извези',\n    restore: 'Врати на подразумевано'\n  },\n  Image: {\n    tipPrevious: 'Претходна слика (←)',\n    tipNext: 'Следећа слика (→)',\n    tipCounterclockwise: 'Супротно од казаљке на сату',\n    tipClockwise: 'У смеру казаљке на сату',\n    tipZoomOut: 'Умањи',\n    tipZoomIn: 'Увећај',\n    tipDownload: 'Преузми',\n    tipClose: 'Затвори (Esc)',\n    tipOriginalSize: 'Зумирај на оригиналну величину'\n  },\n  Heatmap: {\n    less: 'мање',\n    more: 'више',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default srRS\n","import type { NLocale } from './enUS'\n\nconst svSE: NLocale = {\n  name: 'sv-SE',\n  global: {\n    undo: 'Ångra',\n    redo: 'Gör om',\n    confirm: 'Bekräfta',\n    clear: 'Rensa'\n  },\n  Popconfirm: {\n    positiveText: 'Bekräfta',\n    negativeText: 'Avbryt'\n  },\n  Cascader: {\n    placeholder: 'Vänligen välj',\n    loading: 'Laddar',\n    loadingRequiredMessage: (label: string): string =>\n      `Vänligen ladda alla underpunkter till ${label} innan du väljer punkten.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Rensa',\n    now: 'Nu',\n    confirm: 'Bekräfta',\n    selectTime: 'Välj tid',\n    selectDate: 'Välj datum',\n    datePlaceholder: 'Välj datum',\n    datetimePlaceholder: 'Välj datum och tid',\n    monthPlaceholder: 'Välj månad',\n    yearPlaceholder: 'Välj år',\n    quarterPlaceholder: 'Välj kvartal',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Startdatum',\n    endDatePlaceholder: 'Slutdatum',\n    startDatetimePlaceholder: 'Startdatum och -tid',\n    endDatetimePlaceholder: 'Slutdatum och -tid',\n    startMonthPlaceholder: 'Startmånad',\n    endMonthPlaceholder: 'Slutmånad',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'I dag'\n  },\n  DataTable: {\n    checkTableAll: 'Välj allt',\n    uncheckTableAll: 'Välj inget',\n    confirm: 'Bekräfta',\n    clear: 'Rensa'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Källa',\n    targetTitle: 'Mål'\n  },\n  Transfer: {\n    selectAll: 'Välj allt',\n    unselectAll: 'Välj inget',\n    clearAll: 'Rensa',\n    total: (num: number): string => `Totalt ${num} rader`,\n    selected: (num: number): string => `${num} rader valda`\n  },\n  Empty: {\n    description: 'Ingen data'\n  },\n  Select: {\n    placeholder: 'Vänligen välj'\n  },\n  TimePicker: {\n    placeholder: 'Välj tid',\n    positiveText: 'OK',\n    negativeText: 'Avbryt',\n    now: 'Nu',\n    clear: 'Rensa'\n  },\n  Pagination: {\n    goto: 'Gå till',\n    selectionSuffix: 'sida'\n  },\n  DynamicTags: {\n    add: 'Lägg till'\n  },\n  Log: {\n    loading: 'Laddar'\n  },\n  Input: {\n    placeholder: 'Vänligen fyll i'\n  },\n  InputNumber: {\n    placeholder: 'Vänligen fyll i'\n  },\n  DynamicInput: {\n    create: 'Skapa'\n  },\n  ThemeEditor: {\n    title: 'Temaverktyg',\n    clearAllVars: 'Nollställ alla variabler',\n    clearSearch: 'Rensa sökning',\n    filterCompName: 'Filtrera efter komponentnamn',\n    filterVarName: 'Filtrera efter variabelnamn',\n    import: 'Importera',\n    export: 'Exportera',\n    restore: 'Nollställ till ursprungsval'\n  },\n  Image: {\n    tipPrevious: 'Förgående bild (←)',\n    tipNext: 'Nästa bild (→)',\n    tipCounterclockwise: 'Moturs',\n    tipClockwise: 'Medurs',\n    tipZoomOut: 'Zooma ut',\n    tipZoomIn: 'Zooma in',\n    tipDownload: 'Ladda ned',\n    tipClose: 'Stäng (Esc)',\n    tipOriginalSize: 'Zooma till ursprunglig storlek'\n  },\n  Heatmap: {\n    less: 'mindre',\n    more: 'mer',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default svSE\n","import type { NLocale } from './enUS'\n\nconst swKE: NLocale = {\n  name: 'sw-KE',\n  global: {\n    undo: 'Tendua',\n    redo: 'Rudia',\n    confirm: 'Thibitisha',\n    clear: 'Futa'\n  },\n  Popconfirm: {\n    positiveText: 'Thibitisha',\n    negativeText: 'Ghairi'\n  },\n  Cascader: {\n    placeholder: 'Tafadhali chagua',\n    loading: 'Inapakia',\n    loadingRequiredMessage: (label: string): string =>\n      `Tafadhali pakia vizazi vyote vya ${label} kabla ya kukichagua.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Futa',\n    now: 'Sasa',\n    confirm: 'Thibitisha',\n    selectTime: 'Chagua saa',\n    selectDate: 'Chagua tarehe',\n    datePlaceholder: 'Chagua tarehe',\n    datetimePlaceholder: 'Chagua tarehe na saa',\n    monthPlaceholder: 'Chagua mwezi',\n    yearPlaceholder: 'Chagua mwaka',\n    quarterPlaceholder: 'Chagua robo',\n    weekPlaceholder: 'Chagua wiki',\n    startDatePlaceholder: 'Tarehe ya kuanza',\n    endDatePlaceholder: 'Tarehe ya kumaliza',\n    startDatetimePlaceholder: 'Tarehe na saa ya kuanza',\n    endDatetimePlaceholder: 'Tarehe na saa ya kumaliza',\n    startMonthPlaceholder: 'Mwezi wa kuanza',\n    endMonthPlaceholder: 'Mwezi wa kumaliza',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Leo'\n  },\n  DataTable: {\n    checkTableAll: 'Chagua yote kwenye jedwali',\n    uncheckTableAll: 'Ondoa uteuzi wote kwenye jedwali',\n    confirm: 'Thibitisha',\n    clear: 'Futa'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Chanzo',\n    targetTitle: 'Lengo'\n  },\n  Transfer: {\n    selectAll: 'Chagua yote',\n    unselectAll: 'Ondoa uteuzi wote',\n    clearAll: 'Futa',\n    total: (num: number): string => `Jumla ya vipengee ${num}`,\n    selected: (num: number): string => `Vipengee ${num} vimechaguliwa`\n  },\n  Empty: {\n    description: 'Hakuna data'\n  },\n  Select: {\n    placeholder: 'Tafadhali chagua'\n  },\n  TimePicker: {\n    placeholder: 'Chagua saa',\n    positiveText: 'Sawa',\n    negativeText: 'Ghairi',\n    now: 'Sasa',\n    clear: 'Futa'\n  },\n  Pagination: {\n    goto: 'Nenda',\n    selectionSuffix: 'ukurasa'\n  },\n  DynamicTags: {\n    add: 'Ongeza'\n  },\n  Log: {\n    loading: 'Inapakia'\n  },\n  Input: {\n    placeholder: 'Tafadhali ingiza'\n  },\n  InputNumber: {\n    placeholder: 'Tafadhali ingiza'\n  },\n  DynamicInput: {\n    create: 'Unda'\n  },\n  ThemeEditor: {\n    title: 'Kihariri cha mandhari',\n    clearAllVars: 'Futa vigezo vyote',\n    clearSearch: 'Futa utafutaji',\n    filterCompName: 'Chuja jina la kijenzi',\n    filterVarName: 'Chuja jina la kigezo',\n    import: 'Leta',\n    export: 'Hamisha',\n    restore: 'Rejesha chaguo-msingi'\n  },\n  Image: {\n    tipPrevious: 'Picha iliyotangulia (←)',\n    tipNext: 'Picha inayofuata (→)',\n    tipCounterclockwise: 'Kinyume cha saa',\n    tipClockwise: 'Saa',\n    tipZoomOut: 'Punguza',\n    tipZoomIn: 'Kuza',\n    tipDownload: 'Pakua',\n    tipClose: 'Funga (Esc)',\n    tipOriginalSize: 'Kuza kwa ukubwa asilia'\n  },\n  Heatmap: {\n    less: 'chache',\n    more: 'zaidi',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default swKE\n","import type { NLocale } from './enUS'\n\nconst taIN: NLocale = {\n  name: 'ta-IN',\n  global: {\n    undo: 'செயல்தவிர்',\n    redo: 'மீண்டும் செய்',\n    confirm: 'உறுதிப்படுத்து',\n    clear: 'அழி'\n  },\n  Popconfirm: {\n    positiveText: 'உறுதிப்படுத்து',\n    negativeText: 'ரத்துசெய்'\n  },\n  Cascader: {\n    placeholder: 'தயவுசெய்து தேர்ந்தெடுக்கவும்',\n    loading: 'ஏற்றுகிறது',\n    loadingRequiredMessage: (label: string): string =>\n      `சரிபார்ப்பதற்கு முன் ${label} இன் அனைத்து வழித்தோன்றல்களையும் ஏற்றவும்.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'அழி',\n    now: 'இப்போது',\n    confirm: 'உறுதிப்படுத்து',\n    selectTime: 'நேரத்தைத் தேர்ந்தெடுக்கவும்',\n    selectDate: 'தேதியைத் தேர்ந்தெடுக்கவும்',\n    datePlaceholder: 'தேதியைத் தேர்ந்தெடுக்கவும்',\n    datetimePlaceholder: 'தேதி மற்றும் நேரத்தைத் தேர்ந்தெடுக்கவும்',\n    monthPlaceholder: 'மாதத்தைத் தேர்ந்தெடுக்கவும்',\n    yearPlaceholder: 'ஆண்டைத் தேர்ந்தெடுக்கவும்',\n    quarterPlaceholder: 'காலாண்டைத் தேர்ந்தெடுக்கவும்',\n    weekPlaceholder: 'வாரத்தைத் தேர்ந்தெடுக்கவும்',\n    startDatePlaceholder: 'தொடக்கத் தேதி',\n    endDatePlaceholder: 'முடிவுத் தேதி',\n    startDatetimePlaceholder: 'தொடக்கத் தேதி மற்றும் நேரம்',\n    endDatetimePlaceholder: 'முடிவுத் தேதி மற்றும் நேரம்',\n    startMonthPlaceholder: 'தொடக்க மாதம்',\n    endMonthPlaceholder: 'முடிவு மாதம்',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'இன்று'\n  },\n  DataTable: {\n    checkTableAll: 'அட்டவணையில் உள்ள அனைத்தையும் தேர்ந்தெடு',\n    uncheckTableAll: 'அட்டவணையில் உள்ள அனைத்துத் தேர்வையும் நீக்கு',\n    confirm: 'உறுதிப்படுத்து',\n    clear: 'அழி'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'மூலம்',\n    targetTitle: 'இலக்கு'\n  },\n  Transfer: {\n    selectAll: 'அனைத்தையும் தேர்ந்தெடு',\n    unselectAll: 'அனைத்துத் தேர்வையும் நீக்கு',\n    clearAll: 'அழி',\n    total: (num: number): string => `மொத்தம் ${num} உருப்படிகள்`,\n    selected: (num: number): string => `${num} உருப்படிகள் தேர்ந்தெடுக்கப்பட்டன`\n  },\n  Empty: {\n    description: 'தரவு இல்லை'\n  },\n  Select: {\n    placeholder: 'தயவுசெய்து தேர்ந்தெடுக்கவும்'\n  },\n  TimePicker: {\n    placeholder: 'நேரத்தைத் தேர்ந்தெடுக்கவும்',\n    positiveText: 'சரி',\n    negativeText: 'ரத்துசெய்',\n    now: 'இப்போது',\n    clear: 'அழி'\n  },\n  Pagination: {\n    goto: 'செல்',\n    selectionSuffix: 'பக்கம்'\n  },\n  DynamicTags: {\n    add: 'சேர்'\n  },\n  Log: {\n    loading: 'ஏற்றுகிறது'\n  },\n  Input: {\n    placeholder: 'தயவுசெய்து உள்ளிடவும்'\n  },\n  InputNumber: {\n    placeholder: 'தயவுசெய்து உள்ளிடவும்'\n  },\n  DynamicInput: {\n    create: 'உருவாக்கு'\n  },\n  ThemeEditor: {\n    title: 'தீம் தொகுப்பான்',\n    clearAllVars: 'அனைத்து மாறிகளையும் அழி',\n    clearSearch: 'தேடலை அழி',\n    filterCompName: 'கூறு பெயரை வடிகட்டு',\n    filterVarName: 'மாறி பெயரை வடிகட்டு',\n    import: 'இறக்குமதி',\n    export: 'ஏற்றுமதி',\n    restore: 'இயல்புநிலைக்கு மீட்டமை'\n  },\n  Image: {\n    tipPrevious: 'முந்தைய படம் (←)',\n    tipNext: 'அடுத்த படம் (→)',\n    tipCounterclockwise: 'கடிகார திசைக்கு எதிராக',\n    tipClockwise: 'கடிகார திசையில்',\n    tipZoomOut: 'சிறிதாக்கு',\n    tipZoomIn: 'பெரிதாக்கு',\n    tipDownload: 'பதிவிறக்கு',\n    tipClose: 'மூடு (Esc)',\n    tipOriginalSize: 'அசல் அளவிற்கு பெரிதாக்கு'\n  },\n  Heatmap: {\n    less: 'குறைவு',\n    more: 'அதிகம்',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default taIN\n","import type { NLocale } from './enUS'\n\nconst teIN: NLocale = {\n  name: 'te-IN',\n  global: {\n    undo: 'వెనక్కి తీసుకోండి',\n    redo: 'మళ్లీ చేయండಿ',\n    confirm: 'నిర్ధారించండి',\n    clear: 'క్లియర్ చేయండಿ'\n  },\n  Popconfirm: {\n    positiveText: 'నిర్ధారించండి',\n    negativeText: 'రద్దు చేయండಿ'\n  },\n  Cascader: {\n    placeholder: 'దయచేసి ఎంచుకోండಿ',\n    loading: 'లోడ్ అవుతోంది',\n    loadingRequiredMessage: (label: string): string =>\n      `చెక్ చేయడానికి ముందు ${label} యొక్క అన్ని వారసులను లోడ್ చేయండಿ.`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'క్లియర్ చేయండి',\n    now: 'ఇప్పుడు',\n    confirm: 'నిర్ధారించండి',\n    selectTime: 'సమయాన్ని ఎంచుకోండి',\n    selectDate: 'తేదీని ఎంచుకోండి',\n    datePlaceholder: 'తేదీని ఎంచుకోండి',\n    datetimePlaceholder: 'తేదీ మరియు సమయాన్ని ఎంచుకోండಿ',\n    monthPlaceholder: 'నెలను ఎంచుకోండి',\n    yearPlaceholder: 'సంవత్సరాన్ని ఎంచుకోండి',\n    quarterPlaceholder: 'త్రైమాసికాన్ని ఎంచుకోండಿ',\n    weekPlaceholder: 'వారాన్ని ఎంచుకోండಿ',\n    startDatePlaceholder: 'ప్రారంభ తేదీ',\n    endDatePlaceholder: 'ముగింపు తేదీ',\n    startDatetimePlaceholder: 'ప్రారంభ తేదీ మరియు సమయం',\n    endDatetimePlaceholder: 'ముగింపు తేదీ మరియు సమయం',\n    startMonthPlaceholder: 'ప్రారంభ నెల',\n    endMonthPlaceholder: 'ముగింపు నెల',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'ఈరోజు'\n  },\n  DataTable: {\n    checkTableAll: 'పట్టికలోని అన్నింటినీ ఎంచుకోండి',\n    uncheckTableAll: 'పట్టికలోని అన్ని ఎంపికలను తీసివేయండి',\n    confirm: 'నిర్ధారించండి',\n    clear: 'క్లియర్ చేయండి'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'మూలం',\n    targetTitle: 'లక్ష్యం'\n  },\n  Transfer: {\n    selectAll: 'అన్నీ ఎంచుకోండి',\n    unselectAll: 'అన్ని ఎంపికలను తీసివేయండి',\n    clearAll: 'క్లియర్ చేయండి',\n    total: (num: number): string => `మొత్తం ${num} అంశాలు`,\n    selected: (num: number): string => `${num} అంశాలు ఎంచుకోబడ్డాయి`\n  },\n  Empty: {\n    description: 'డేటా లేదు'\n  },\n  Select: {\n    placeholder: 'దయచేసి ఎంచుకోండಿ'\n  },\n  TimePicker: {\n    placeholder: 'సమయాన్ని ఎంచుకోండి',\n    positiveText: 'సరే',\n    negativeText: 'రద్దు చేయండಿ',\n    now: 'ఇప్పుడు',\n    clear: 'క్లియర్ చేయండಿ'\n  },\n  Pagination: {\n    goto: 'ఇక్కడికి వెళ్ళండి',\n    selectionSuffix: 'పేజీ'\n  },\n  DynamicTags: {\n    add: 'జోడించండి'\n  },\n  Log: {\n    loading: 'లోడ్ అవుతోంది'\n  },\n  Input: {\n    placeholder: 'దయచేసి నమోదు చేయండి'\n  },\n  InputNumber: {\n    placeholder: 'దయచేసి నమోదు చేయండి'\n  },\n  DynamicInput: {\n    create: 'సృష్టించండి'\n  },\n  ThemeEditor: {\n    title: 'థీమ్ ఎడిటర్',\n    clearAllVars: 'అన్ని వేరియబుల్స్‌ను క్లియర్ చేయండి',\n    clearSearch: 'శోధనను క్లియర్ చేయండి',\n    filterCompName: 'కాంపోనెంట్ పేరును ఫిల్టర్ చేయండి',\n    filterVarName: 'వేరియబుల్ పేరును ఫిల్టర్ చేయండి',\n    import: 'దిగుమతి',\n    export: 'ఎగుమతి',\n    restore: 'డిఫాల్ట్‌కు రీసెట్ చేయండి'\n  },\n  Image: {\n    tipPrevious: 'మునుపటి చిత్రం (←)',\n    tipNext: 'తదుపరి చిత్రం (→)',\n    tipCounterclockwise: 'గడియార దిశకు వ్యతిరేకంగా',\n    tipClockwise: 'గడియార దిశలో',\n    tipZoomOut: 'చిన్నది చేయండి',\n    tipZoomIn: 'పెద్దది చేయండి',\n    tipDownload: 'డౌన్‌లోడ్',\n    tipClose: 'మూసివేయండి (Esc)',\n    tipOriginalSize: 'అసలు పరిమాణానికి జూమ్ చేయండి'\n  },\n  Heatmap: {\n    less: 'తక్కువ',\n    more: 'ఎక్కువ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default teIN\n","import type { NLocale } from './enUS'\n\nconst thTH: NLocale = {\n  name: 'thTH',\n  global: {\n    undo: 'เลิกทำ',\n    redo: 'ทำซ้ำ',\n    confirm: 'ยืนยัน',\n    clear: 'ล้าง'\n  },\n  Popconfirm: {\n    positiveText: 'ยืนยัน',\n    negativeText: 'ยกเลิก'\n  },\n  Cascader: {\n    placeholder: 'กรุณาเลือก',\n    loading: 'กำลังโหลด',\n    loadingRequiredMessage: (label: string): string =>\n      `Please load all ${label}'s descendants before checking it.`\n  },\n  Time: {\n    dateFormat: 'dd-MMMM-yyyy',\n    dateTimeFormat: 'dd-MMMM-yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'dd/MMMM/yyyy',\n    dateTimeFormat: 'dd/MMMM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'ล้าง',\n    now: 'วันนี้',\n    confirm: 'ยืนยัน',\n    selectTime: 'เวลา',\n    selectDate: 'วันที่',\n    datePlaceholder: 'วันที่',\n    datetimePlaceholder: 'เวลา-วันที่',\n    monthPlaceholder: 'เดือน',\n    yearPlaceholder: 'ปี',\n    quarterPlaceholder: 'ไตรมาส',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'วันที่เริ่มต้น',\n    endDatePlaceholder: 'วันที่สิ้นสุด',\n    startDatetimePlaceholder: 'วันที่เริ่มต้นและสิ้นสุด',\n    endDatetimePlaceholder: 'วันที่สิ้นสุดและเวลา',\n    // FIXME: translation needed\n    startMonthPlaceholder: 'Start Month',\n    endMonthPlaceholder: 'End Month',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'วันนี้'\n  },\n  DataTable: {\n    checkTableAll: 'เลือกทั้งหมด',\n    uncheckTableAll: 'ไม่เลือกทั้งหมด',\n    confirm: 'ยืนยัน',\n    clear: 'ล้างข้อมูล'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Source',\n    targetTitle: 'Target'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'ไม่มีข้อมูล'\n  },\n  Select: {\n    placeholder: 'กรุณาเลือก'\n  },\n  TimePicker: {\n    placeholder: 'เวลา',\n    positiveText: 'ตกลง',\n    negativeText: 'ยกเลิก',\n    now: 'วันนี้',\n    clear: 'ล้าง'\n  },\n  Pagination: {\n    goto: 'ไปยัง',\n    selectionSuffix: 'หน้า'\n  },\n  DynamicTags: {\n    add: 'เพิ่ม'\n  },\n  Log: {\n    loading: 'กำลังโหลด'\n  },\n  Input: {\n    placeholder: 'กรุณากรอก'\n  },\n  InputNumber: {\n    placeholder: 'กรุณากรอก'\n  },\n  DynamicInput: {\n    create: 'สร้าง'\n  },\n  ThemeEditor: {\n    title: 'แก้ไขธีม',\n    clearAllVars: 'ล้างข้อมูลตัวแปร',\n    clearSearch: 'ล้างข้อมูลค้นหา',\n    filterCompName: 'กรองโดยชื่อ Component',\n    filterVarName: 'กรองโดยชื่อตัวแปร',\n    import: 'นำเข้า',\n    export: 'ส่งออก',\n    restore: 'รีเซ็ต'\n  },\n  // TODO: translation\n  Image: {\n    tipPrevious: 'ก่อนหน้า (←)',\n    tipNext: 'ถัดไป (→)',\n    tipCounterclockwise: 'หมุน (↺)',\n    tipClockwise: 'หมุน (↻)',\n    tipZoomOut: 'ซูมออก',\n    tipZoomIn: 'ซูมเข้า',\n    tipDownload: 'ดาวน์โหลด',\n    tipClose: 'ปิด (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Zoom to original size'\n  },\n  Heatmap: {\n    less: 'น้อย',\n    more: 'มาก',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default thTH\n","import type { NLocale } from './enUS'\n\nconst trTR: NLocale = {\n  name: 'tr-TR',\n  global: {\n    undo: 'Vazgeç',\n    redo: 'Tekrar Dene',\n    confirm: 'Kabul Et',\n    clear: 'Temizle'\n  },\n  Popconfirm: {\n    positiveText: 'Kabul Et',\n    negativeText: 'İptal'\n  },\n  Cascader: {\n    placeholder: 'Lütfen Seçin',\n    loading: 'Yükleniyor',\n    loadingRequiredMessage: (label: string): string =>\n      `Lütfen kontrol etmeden önce tüm ${label}ları yükleyin.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Temizle',\n    now: 'Şimdi',\n    confirm: 'Onayla',\n    selectTime: 'Saat Seçin',\n    selectDate: 'Tarih Seçin',\n    datePlaceholder: 'Tarih Seç',\n    datetimePlaceholder: 'Tarih ve Saat Seçin',\n    monthPlaceholder: 'Ay Seçin',\n    yearPlaceholder: 'Yıl Seçin',\n    quarterPlaceholder: 'Mevsim Seçin',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Başlangıç Tarihi',\n    endDatePlaceholder: 'Bitiş Tarihi',\n    startDatetimePlaceholder: 'Başlangıç Tarih ve Saati',\n    endDatetimePlaceholder: 'Bitiş Tarihi ve Saati',\n    startMonthPlaceholder: 'Başlangıç Ayı',\n    endMonthPlaceholder: 'Bitiş Ayı',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Bugün'\n  },\n  DataTable: {\n    checkTableAll: 'Tüm Tabloyu Seç',\n    uncheckTableAll: 'Tablodaki tüm seçimleri kaldır',\n    confirm: 'Onayla',\n    clear: 'Temizle'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Kaynak',\n    targetTitle: 'Hedef'\n  },\n  Transfer: {\n    selectAll: 'Tümünü Seç',\n    unselectAll: 'Tüm Seçimi Kaldır',\n    clearAll: 'Temizle',\n    total: (num: number): string => `Toplam ${num} öğe`,\n    selected: (num: number): string => `${num} öğe Seçili`\n  },\n  Empty: {\n    description: 'Veri Yok'\n  },\n  Select: {\n    placeholder: 'Lütfen seçin'\n  },\n  TimePicker: {\n    placeholder: 'Saat Seç',\n    positiveText: 'Tamam',\n    negativeText: 'İptal',\n    now: 'Şimdi',\n    clear: 'Temizle'\n  },\n  Pagination: {\n    goto: 'git',\n    selectionSuffix: 'sayfa'\n  },\n  DynamicTags: {\n    add: 'Ekle'\n  },\n  Log: {\n    loading: 'Yükleniyor'\n  },\n  Input: {\n    placeholder: 'Lütfen Girin'\n  },\n  InputNumber: {\n    placeholder: 'Lütfen Girin'\n  },\n  DynamicInput: {\n    create: 'Oluştur'\n  },\n  ThemeEditor: {\n    title: 'Tema Editörü',\n    clearAllVars: 'Tüm Değişkenleri Temizle',\n    clearSearch: 'Aramayı Temizle',\n    filterCompName: 'Bileşen Adını Filtrele',\n    filterVarName: 'Değişken Adını Filtrele',\n    import: 'Ekle',\n    export: 'Çıkar',\n    restore: 'Varsayılana sıfırla'\n  },\n  Image: {\n    tipPrevious: 'Önceki resim (←)',\n    tipNext: 'Sonraki resim (→)',\n    tipCounterclockwise: 'saat yönünün tersine',\n    tipClockwise: 'saat yönününe',\n    tipZoomOut: 'Uzaklaştır',\n    tipZoomIn: 'Yakınlaştır',\n    tipDownload: 'indir',\n    tipClose: 'Kapat (Esc)',\n    // TODO: translation\n    tipOriginalSize: 'Orijinal boyuta yakınlaştır'\n  },\n  Heatmap: {\n    less: 'az',\n    more: 'çok',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default trTR\n","import type { NLocale } from './enUS'\n\nconst ugCN: NLocale = {\n  name: 'ug-CN',\n  global: {\n    undo: 'قالدۇرۇش',\n    redo: 'قايتا',\n    confirm: 'جەزملەش',\n    clear: 'تازلاش'\n  },\n  Popconfirm: {\n    positiveText: 'جەزملەش',\n    negativeText: 'بىكار قىلىش'\n  },\n  Cascader: {\n    placeholder: 'تاللاڭ',\n    loading: 'يۈكلەۋاتىدۇ',\n    loadingRequiredMessage: (label: string): string =>\n      `جەمئى ${label} تۈگۈننى يۈكلەپ بولغاندىن كېيىن تاللىغىلى بولىدۇ`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy-يىل',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-wھەپتە',\n    clear: 'تازلاش',\n    now: 'مۇشۇ ۋاقىت',\n    confirm: 'جەزملەش',\n    selectTime: 'ۋاقىت تاللاڭ',\n    selectDate: 'چىسلا تاللاڭ',\n    datePlaceholder: 'چىسلا تاللاڭ',\n    datetimePlaceholder: 'چىسلا ۋاقىت تاللاڭ',\n    monthPlaceholder: 'ئاي تاللاڭ',\n    yearPlaceholder: 'يىل تاللاڭ',\n    quarterPlaceholder: 'پەسىل تاللاڭ',\n    weekPlaceholder: 'ھەپتە تاللاڭ',\n    startDatePlaceholder: 'باشلىنىش ۋاقتى',\n    endDatePlaceholder: 'ئاخىرلىشىش ۋاقتى',\n    startDatetimePlaceholder: 'باشلىندىغان چىسلا ۋاقىت',\n    endDatetimePlaceholder: 'ئاخىرلىشىدىغان چىسلا ۋاقىت',\n    startMonthPlaceholder: 'باشلىندىغان ئاي',\n    endMonthPlaceholder: 'ئاخىرلىشىدىغان ئاي',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0,\n    today: 'بۈگۈن'\n  },\n  DataTable: {\n    checkTableAll: 'ھەممە ئۇچۇرنى تاللاش',\n    uncheckTableAll: 'تاللاشنى بىكار قىلىش',\n    confirm: 'جەزملەش',\n    clear: 'تازلاش'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ئەسلى تۈر',\n    targetTitle: 'نىشان تۈر'\n  },\n  Transfer: {\n    selectAll: 'ھەممىنى تاللاش',\n    clearAll: 'تازلاش',\n    unselectAll: 'ھەممىنى بىكار قىلىش',\n    total: (num: number): string => `جەمئى ${num} تۈر`,\n    selected: (num: number): string => `${num} تۈر تاللاندى`\n  },\n  Empty: {\n    description: 'ئۇچۇر يوق'\n  },\n  Select: {\n    placeholder: 'تاللاڭ'\n  },\n  TimePicker: {\n    placeholder: 'ۋاقىت تاللاڭ',\n    positiveText: 'جەزملەش',\n    negativeText: 'بىكار قىلىش',\n    now: 'مۇشۇ ۋاقىت',\n    clear: 'تازلاش'\n  },\n  Pagination: {\n    goto: 'ئاتلاش',\n    selectionSuffix: 'بەت'\n  },\n  DynamicTags: {\n    add: 'قوشۇش'\n  },\n  Log: {\n    loading: 'يۈكلەۋاتىدۇ'\n  },\n  Input: {\n    placeholder: 'كىرگۈزۈڭ'\n  },\n  InputNumber: {\n    placeholder: 'كىرگۈزۈڭ'\n  },\n  DynamicInput: {\n    create: 'قوشۇش'\n  },\n  ThemeEditor: {\n    title: 'ئۇسلوب تەھرىرلىگۈچ',\n    clearAllVars: 'ھەممە پارامىتىرنى تازلاش',\n    clearSearch: 'ئىزدەشنى تازلاش',\n    filterCompName: 'ۋىجىت ئىسمىنى فىلتىرلاش',\n    filterVarName: 'پارامىتېرنى فىلتىرلاش',\n    import: 'ئەكىرىش',\n    export: 'چىقىرىش',\n    restore: 'ئەسلىگە قايتۇرۇش'\n  },\n  Image: {\n    tipPrevious: '（←）ئالدىنقىسى',\n    tipNext: 'كېيىنكىسى（→）',\n    tipCounterclockwise: 'سولغا چۆرۈش',\n    tipClockwise: 'ئوڭغا چۆرۈش',\n    tipZoomOut: 'كىچىكلىتىش',\n    tipZoomIn: 'چوڭايتىش',\n    tipDownload: 'چۈشۈرۈش',\n    tipClose: 'تاقاش（Esc）',\n    tipOriginalSize: 'ئەسلىگە قايتۇرۇش'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ugCN\n","import type { NLocale } from './enUS'\n\nconst ukUA: NLocale = {\n  name: 'uk-UA',\n  global: {\n    undo: 'Відмінити',\n    redo: 'Повторити',\n    confirm: 'Підтвердити',\n    clear: 'Стерти'\n  },\n  Popconfirm: {\n    positiveText: 'Підтвердити',\n    negativeText: 'Скасувати'\n  },\n  Cascader: {\n    placeholder: 'Обрати',\n    loading: 'Завантаження',\n    loadingRequiredMessage: (label: string): string =>\n      `Завантажте всі дочірні вузли ${label} перед перевіркою`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Стерти',\n    now: 'Зараз',\n    confirm: 'Підтвердити',\n    selectTime: 'Обрати час',\n    selectDate: 'Обрати дату',\n    datePlaceholder: 'Обрати дату',\n    datetimePlaceholder: 'Обрати дату і час',\n    monthPlaceholder: 'Оберіть місяць',\n    yearPlaceholder: 'Оберіть рік',\n    quarterPlaceholder: 'Оберіть квартал',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Дата початку',\n    endDatePlaceholder: 'Дата завершення',\n    startDatetimePlaceholder: 'Дата і час початку',\n    endDatetimePlaceholder: 'Дата і час завершення',\n    startMonthPlaceholder: 'Перший місяць',\n    endMonthPlaceholder: 'Останній місяць',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Сьогодні'\n  },\n  DataTable: {\n    checkTableAll: 'Обрати все в таблиці',\n    uncheckTableAll: 'Скасувати вибір усього в таблиці',\n    confirm: 'Підтвердити',\n    clear: 'Стерти'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Джерело',\n    targetTitle: 'Ціль'\n  },\n  // TODO: translation\n  Transfer: {\n    selectAll: 'Select all',\n    unselectAll: 'Unselect all',\n    clearAll: 'Clear',\n    total: (num: number): string => `Total ${num} items`,\n    selected: (num: number): string => `${num} items selected`\n  },\n  Empty: {\n    description: 'Немає даних'\n  },\n  Select: {\n    placeholder: 'Обрати'\n  },\n  TimePicker: {\n    placeholder: 'Обрати час',\n    positiveText: 'OK',\n    negativeText: 'Скасувати',\n    now: 'Зараз',\n    clear: 'Стерти'\n  },\n  Pagination: {\n    goto: 'Перейти',\n    selectionSuffix: 'сторінка'\n  },\n  DynamicTags: {\n    add: 'Додати'\n  },\n  Log: {\n    loading: 'Завантаження'\n  },\n  Input: {\n    placeholder: 'Ввести'\n  },\n  InputNumber: {\n    placeholder: 'Ввести'\n  },\n  DynamicInput: {\n    create: 'Створити'\n  },\n  ThemeEditor: {\n    title: 'Редактор теми',\n    clearAllVars: 'Стерти все',\n    clearSearch: 'Очистити пошук',\n    filterCompName: 'Фільтрувати за іменем компонента',\n    filterVarName: 'Фільтрувати імена змінних',\n    import: 'Імпорт',\n    export: 'Експорт',\n    restore: 'Скинути'\n  },\n  Image: {\n    tipPrevious: 'Попереднє зображення (←)',\n    tipNext: 'Наступне зображення (→)',\n    tipCounterclockwise: 'Проти годинникової стрілки',\n    tipClockwise: 'За годинниковою стрілкою',\n    tipZoomOut: 'Віддалити',\n    tipZoomIn: 'Наблизити',\n    tipDownload: 'звантажити',\n    tipClose: 'Закрити (Esc)',\n    tipOriginalSize: 'Масштабувати до оригінального розміру'\n  },\n  Heatmap: {\n    less: 'менше',\n    more: 'більше',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default ukUA\n","import type { NLocale } from './enUS'\n\nconst urPK: NLocale = {\n  name: 'ur-PK',\n  global: {\n    undo: 'کالعدم',\n    redo: 'دوبارہ کریں',\n    confirm: 'تصدیق',\n    clear: 'صاف کریں'\n  },\n  Popconfirm: {\n    positiveText: 'تصدیق',\n    negativeText: 'منسوخ'\n  },\n  Cascader: {\n    placeholder: 'براہ کرم منتخب کریں',\n    loading: 'لوڈ ہو رہا ہے',\n    loadingRequiredMessage: (label: string): string =>\n      `براہ کرم نشان زد کرنے سے پہلے ${label} کی تمام ذیلی شاخیں لوڈ کریں۔`\n  },\n  Time: {\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM/yyyy',\n    dateFormat: 'dd/MM/yyyy',\n    dateTimeFormat: 'dd/MM/yyyy HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'صاف کریں',\n    now: 'ابھی',\n    confirm: 'تصدیق',\n    selectTime: 'وقت منتخب کریں',\n    selectDate: 'تاریخ منتخب کریں',\n    datePlaceholder: 'تاریخ منتخب کریں',\n    datetimePlaceholder: 'تاریخ اور وقت منتخب کریں',\n    monthPlaceholder: 'مہینہ منتخب کریں',\n    yearPlaceholder: 'سال منتخب کریں',\n    quarterPlaceholder: 'سہ ماہی منتخب کریں',\n    weekPlaceholder: 'ہفتہ منتخب کریں',\n    startDatePlaceholder: 'شروع کی تاریخ',\n    endDatePlaceholder: 'اختتام کی تاریخ',\n    startDatetimePlaceholder: 'شروع کی تاریخ اور وقت',\n    endDatetimePlaceholder: 'اختتام کی تاریخ اور وقت',\n    startMonthPlaceholder: 'شروع کا مہینہ',\n    endMonthPlaceholder: 'اختتام کا مہینہ',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'آج'\n  },\n  DataTable: {\n    checkTableAll: 'جدول میں سب منتخب کریں',\n    uncheckTableAll: 'جدول میں سب غیر منتخب کریں',\n    confirm: 'تصدیق',\n    clear: 'صاف کریں'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'ماخذ',\n    targetTitle: 'ہدف'\n  },\n  Transfer: {\n    selectAll: 'سب منتخب کریں',\n    unselectAll: 'سب غیر منتخب کریں',\n    clearAll: 'صاف کریں',\n    total: (num: number): string => `کل ${num} آئٹمز`,\n    selected: (num: number): string => `${num} آئٹمز منتخب`\n  },\n  Empty: {\n    description: 'کوئی ڈیٹا نہیں'\n  },\n  Select: {\n    placeholder: 'براہ کرم منتخب کریں'\n  },\n  TimePicker: {\n    placeholder: 'وقت منتخب کریں',\n    positiveText: 'ٹھیک ہے',\n    negativeText: 'منسوخ',\n    now: 'ابھی',\n    clear: 'صاف کریں'\n  },\n  Pagination: {\n    goto: 'جائیں',\n    selectionSuffix: 'صفحہ'\n  },\n  DynamicTags: {\n    add: 'شامل کریں'\n  },\n  Log: {\n    loading: 'لوڈ ہو رہا ہے'\n  },\n  Input: {\n    placeholder: 'براہ کرم درج کریں'\n  },\n  InputNumber: {\n    placeholder: 'براہ کرم درج کریں'\n  },\n  DynamicInput: {\n    create: 'بنائیں'\n  },\n  ThemeEditor: {\n    title: 'تھیم ایڈیٹر',\n    clearAllVars: 'تمام متغیرات صاف کریں',\n    clearSearch: 'تلاش صاف کریں',\n    filterCompName: 'جزو کا نام فلٹر کریں',\n    filterVarName: 'متغیر کا نام فلٹر کریں',\n    import: 'درآمد',\n    export: 'برآمد',\n    restore: 'طے شدہ پر بحال کریں'\n  },\n  Image: {\n    tipPrevious: 'پچھلی تصویر (←)',\n    tipNext: 'اگلی تصویر (→)',\n    tipCounterclockwise: 'گھڑی کی مخالف سمت',\n    tipClockwise: 'گھڑی کی سمت',\n    tipZoomOut: 'چھوٹا کریں',\n    tipZoomIn: 'بڑا کریں',\n    tipDownload: 'ڈاؤن لوڈ',\n    tipClose: 'بند کریں (Esc)',\n    tipOriginalSize: 'اصل سائز پر زوم کریں'\n  },\n  Heatmap: {\n    less: 'کم',\n    more: 'زیادہ',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default urPK\n","import type { NLocale } from './enUS'\n\nconst uzUZ: NLocale = {\n  name: 'uz-UZ',\n  global: {\n    undo: 'Bekor qilish',\n    redo: 'Qaytadan amalga oshirish',\n    confirm: 'Tasdiqlash',\n    clear: 'Tozalash'\n  },\n  Popconfirm: {\n    positiveText: 'Tasdiqlash',\n    negativeText: 'Bekor qilish'\n  },\n  Cascader: {\n    placeholder: 'Tanlash',\n    loading: 'Yuklanmoqda',\n    loadingRequiredMessage: (label: string): string =>\n      `${label} ning barcha farzand elementlarini yuklang, keyin ularga to'liq ruxsat bering`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Tozalash',\n    now: 'Hozir',\n    confirm: 'Tasdiqlash',\n    selectTime: 'Vaqtni tanlash',\n    selectDate: 'Sana tanlash',\n    datePlaceholder: 'Sana tanlash',\n    datetimePlaceholder: 'Sana va vaqtni tanlash',\n    monthPlaceholder: 'Oy tanlash',\n    yearPlaceholder: 'Yil tanlash',\n    quarterPlaceholder: 'Chet tanlash',\n    weekPlaceholder: 'Hafta tanlash',\n    startDatePlaceholder: 'Boshlang`ich sana',\n    endDatePlaceholder: 'Tugash sanasi',\n    startDatetimePlaceholder: 'Boshlang`ich sana va vaqti',\n    endDatetimePlaceholder: 'Tugash sanasi va vaqti',\n    startMonthPlaceholder: 'Boshlang`ich oy',\n    endMonthPlaceholder: 'Oxirgi oy',\n    monthBeforeYear: true,\n    firstDayOfWeek: 1 as 0 | 1 | 2 | 3 | 4 | 5 | 6, // in Uzbekistan monday\n    today: 'Bugun'\n  },\n  DataTable: {\n    checkTableAll: 'Jadvaldagi barchasini tanlash',\n    uncheckTableAll: 'Jadvaldagi barchasini bekor qilish',\n    confirm: 'Tasdiqlash',\n    clear: 'Tozalash'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Manba',\n    targetTitle: 'Mansub'\n  },\n  Transfer: {\n    selectAll: 'Barchasini tanlash',\n    unselectAll: 'Barchasini bekor qilish',\n    clearAll: 'Tozalash',\n    total: (num: number): string => `Jami ${num} ta`,\n    selected: (num: number): string => `Tanlandi ${num} ta`\n  },\n  Empty: {\n    description: 'Ma`lumotlar yo`q'\n  },\n  Select: {\n    placeholder: 'Tanlash'\n  },\n  TimePicker: {\n    placeholder: 'Vaqtni tanlash',\n    positiveText: 'OK',\n    negativeText: 'Bekor qilish',\n    now: 'Hozir',\n    clear: 'Tozalash'\n  },\n  Pagination: {\n    goto: 'O`tish',\n    selectionSuffix: 'sahifa'\n  },\n  DynamicTags: {\n    add: 'Qo`shish'\n  },\n  Log: {\n    loading: 'Yuklanmoqda'\n  },\n  Input: {\n    placeholder: 'Kiriting'\n  },\n  InputNumber: {\n    placeholder: 'Kiriting'\n  },\n  DynamicInput: {\n    create: 'Yaratish'\n  },\n  ThemeEditor: {\n    title: 'Mavzu muharriri',\n    clearAllVars: 'Barchasini tozalash',\n    clearSearch: 'Qidiruvni tozalash',\n    filterCompName: 'Komponent nomi bo`yicha filtr',\n    filterVarName: 'O`zgaruvchi nomlarini filtrlash',\n    import: 'Import qilish',\n    export: 'Eksport qilish',\n    restore: 'Qayta tiklash'\n  },\n  Image: {\n    tipPrevious: 'Oldingi rasm (←)',\n    tipNext: 'Keyingi rasm (→)',\n    tipCounterclockwise: 'Soat yonida',\n    tipClockwise: 'Soat bo`yicha',\n    tipZoomOut: 'Yaqinlash',\n    tipZoomIn: 'Uzoq qilish',\n    tipDownload: 'Yuklab olish',\n    tipClose: 'Yopish (Esc)',\n    tipOriginalSize: 'Asl o`lchamga qaytish'\n  },\n  Heatmap: {\n    less: 'less',\n    more: 'more',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default uzUZ\n","import type { NLocale } from './enUS'\n\nconst viVN: NLocale = {\n  name: 'vi-VN',\n  global: {\n    undo: 'Hoàn tác',\n    redo: 'Làm lại',\n    confirm: 'Xác nhận',\n    clear: 'xóa'\n  },\n  Popconfirm: {\n    positiveText: 'Xác nhận',\n    negativeText: 'Hủy'\n  },\n  Cascader: {\n    placeholder: 'Vui lòng chọn',\n    loading: 'Đang tải',\n    loadingRequiredMessage: (label: string): string =>\n      `Vui lòng tải tất cả thông tin con của ${label} trước.`\n  },\n  Time: {\n    dateFormat: '',\n    dateTimeFormat: 'HH:mm:ss dd-MM-yyyy'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'MM-yyyy',\n    dateFormat: 'dd-MM-yyyy',\n    dateTimeFormat: 'HH:mm:ss dd-MM-yyyy',\n    quarterFormat: 'qqq-yyyy',\n    weekFormat: 'YYYY-w',\n    clear: 'Xóa',\n    now: 'Hôm nay',\n    confirm: 'Xác nhận',\n    selectTime: 'Chọn giờ',\n    selectDate: 'Chọn ngày',\n    datePlaceholder: 'Chọn ngày',\n    datetimePlaceholder: 'Chọn ngày giờ',\n    monthPlaceholder: 'Chọn tháng',\n    yearPlaceholder: 'Chọn năm',\n    quarterPlaceholder: 'Chọn quý',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: 'Ngày bắt đầu',\n    endDatePlaceholder: 'Ngày kết thúc',\n    startDatetimePlaceholder: 'Thời gian bắt đầu',\n    endDatetimePlaceholder: 'Thời gian kết thúc',\n    startMonthPlaceholder: 'Tháng bắt đầu',\n    endMonthPlaceholder: 'Tháng kết thúc',\n    monthBeforeYear: true,\n    firstDayOfWeek: 0 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Hôm nay'\n  },\n  DataTable: {\n    checkTableAll: 'Chọn tất cả có trong bảng',\n    uncheckTableAll: 'Bỏ chọn tất cả có trong bảng',\n    confirm: 'Xác nhận',\n    clear: 'Xóa'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Nguồn',\n    targetTitle: 'Đích'\n  },\n  Transfer: {\n    selectAll: 'Chọn tất cả',\n    unselectAll: 'Bỏ chọn tất cả',\n    clearAll: 'Xoá tất cả',\n    total: (num: number): string => `Tổng cộng ${num} mục`,\n    selected: (num: number): string => `${num} mục được chọn`\n  },\n  Empty: {\n    description: 'Không có dữ liệu'\n  },\n  Select: {\n    placeholder: 'Vui lòng chọn'\n  },\n  TimePicker: {\n    placeholder: 'Chọn thời gian',\n    positiveText: 'OK',\n    negativeText: 'Hủy',\n    now: 'Hiện tại',\n    clear: 'Xóa'\n  },\n  Pagination: {\n    goto: 'Đi đến trang',\n    selectionSuffix: 'trang'\n  },\n  DynamicTags: {\n    add: 'Thêm'\n  },\n  Log: {\n    loading: 'Đang tải'\n  },\n  Input: {\n    placeholder: 'Vui lòng nhập'\n  },\n  InputNumber: {\n    placeholder: 'Vui lòng nhập'\n  },\n  DynamicInput: {\n    create: 'Tạo'\n  },\n  ThemeEditor: {\n    title: 'Tùy chỉnh giao diện',\n    clearAllVars: 'Xóa tất cả các biến',\n    clearSearch: 'Xóa tìm kiếm',\n    filterCompName: 'Lọc tên component',\n    filterVarName: 'Lọc tên biến',\n    import: 'Nhập',\n    export: 'Xuất',\n    restore: 'Đặt lại mặc định'\n  },\n  Image: {\n    tipPrevious: 'Hình trước (←)',\n    tipNext: 'Hình tiếp (→)',\n    tipCounterclockwise: 'Counterclockwise',\n    tipClockwise: 'Chiều kim đồng hồ',\n    tipZoomOut: 'Thu nhỏ',\n    tipZoomIn: 'Phóng to',\n    tipDownload: 'Tải về',\n    tipClose: 'Đóng (Esc)',\n    tipOriginalSize: 'Xem kích thước gốc'\n  },\n  Heatmap: {\n    less: 'ít',\n    more: 'nhiều',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default viVN\n","import type { NLocale } from './enUS'\n\nconst zhCN: NLocale = {\n  name: 'zh-CN',\n  global: {\n    undo: '撤销',\n    redo: '重做',\n    confirm: '确认',\n    clear: '清除'\n  },\n  Popconfirm: {\n    positiveText: '确认',\n    negativeText: '取消'\n  },\n  Cascader: {\n    placeholder: '请选择',\n    loading: '加载中',\n    loadingRequiredMessage: (label: string): string =>\n      `加载全部 ${label} 的子节点后才可选中`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy年',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w周',\n    clear: '清除',\n    now: '此刻',\n    confirm: '确认',\n    selectTime: '选择时间',\n    selectDate: '选择日期',\n    datePlaceholder: '选择日期',\n    datetimePlaceholder: '选择日期时间',\n    monthPlaceholder: '选择月份',\n    yearPlaceholder: '选择年份',\n    quarterPlaceholder: '选择季度',\n    weekPlaceholder: '选择周',\n    startDatePlaceholder: '开始日期',\n    endDatePlaceholder: '结束日期',\n    startDatetimePlaceholder: '开始日期时间',\n    endDatetimePlaceholder: '结束日期时间',\n    startMonthPlaceholder: '开始月份',\n    endMonthPlaceholder: '结束月份',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0,\n    today: '今天'\n  },\n  DataTable: {\n    checkTableAll: '选择全部表格数据',\n    uncheckTableAll: '取消选择全部表格数据',\n    confirm: '确认',\n    clear: '重置'\n  },\n  LegacyTransfer: {\n    sourceTitle: '源项',\n    targetTitle: '目标项'\n  },\n  Transfer: {\n    selectAll: '全选',\n    clearAll: '清除',\n    unselectAll: '取消全选',\n    total: (num: number): string => `共 ${num} 项`,\n    selected: (num: number): string => `已选 ${num} 项`\n  },\n  Empty: {\n    description: '无数据'\n  },\n  Select: {\n    placeholder: '请选择'\n  },\n  TimePicker: {\n    placeholder: '请选择时间',\n    positiveText: '确认',\n    negativeText: '取消',\n    now: '此刻',\n    clear: '清除'\n  },\n  Pagination: {\n    goto: '跳至',\n    selectionSuffix: '页'\n  },\n  DynamicTags: {\n    add: '添加'\n  },\n  Log: {\n    loading: '加载中'\n  },\n  Input: {\n    placeholder: '请输入'\n  },\n  InputNumber: {\n    placeholder: '请输入'\n  },\n  DynamicInput: {\n    create: '添加'\n  },\n  ThemeEditor: {\n    title: '主题编辑器',\n    clearAllVars: '清除全部变量',\n    clearSearch: '清除搜索',\n    filterCompName: '过滤组件名',\n    filterVarName: '过滤变量名',\n    import: '导入',\n    export: '导出',\n    restore: '恢复默认'\n  },\n  Image: {\n    tipPrevious: '上一张（←）',\n    tipNext: '下一张（→）',\n    tipCounterclockwise: '向左旋转',\n    tipClockwise: '向右旋转',\n    tipZoomOut: '缩小',\n    tipZoomIn: '放大',\n    tipDownload: '下载',\n    tipClose: '关闭（Esc）',\n    tipOriginalSize: '缩放到原始尺寸'\n  },\n  Heatmap: {\n    less: '少',\n    more: '多',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default zhCN\n","import type { NLocale } from './enUS'\n\nconst zhTW: NLocale = {\n  name: 'zh-TW',\n  global: {\n    undo: '復原',\n    redo: '重做',\n    confirm: '確定',\n    clear: '清除'\n  },\n  Popconfirm: {\n    positiveText: '確定',\n    negativeText: '取消'\n  },\n  Cascader: {\n    placeholder: '請選擇',\n    loading: '載入中',\n    loadingRequiredMessage: (label: string): string =>\n      `載入全部 ${label} 的子節點後才可選擇`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy 年',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: '清除',\n    now: '現在',\n    confirm: '確定',\n    selectTime: '選擇時間',\n    selectDate: '選擇日期',\n    datePlaceholder: '選擇日期',\n    datetimePlaceholder: '選擇日期時間',\n    monthPlaceholder: '選擇月份',\n    yearPlaceholder: '選擇年份',\n    quarterPlaceholder: '選擇季度',\n    weekPlaceholder: 'Select Week',\n    startDatePlaceholder: '開始日期',\n    endDatePlaceholder: '結束日期',\n    startDatetimePlaceholder: '開始日期時間',\n    endDatetimePlaceholder: '結束日期時間',\n    startMonthPlaceholder: '開始月份',\n    endMonthPlaceholder: '結束月份',\n    monthBeforeYear: false,\n    firstDayOfWeek: 0,\n    today: '今天'\n  },\n  DataTable: {\n    checkTableAll: '選擇全部表格資料',\n    uncheckTableAll: '取消選擇全部表格資料',\n    confirm: '確定',\n    clear: '重設'\n  },\n  LegacyTransfer: {\n    sourceTitle: '來源',\n    targetTitle: '目標'\n  },\n  Transfer: {\n    selectAll: '全選',\n    unselectAll: '取消全選',\n    clearAll: '清除全部',\n    total: (num: number): string => `共 ${num} 項`,\n    selected: (num: number): string => `已選 ${num} 項`\n  },\n  Empty: {\n    description: '無資料'\n  },\n  Select: {\n    placeholder: '請選擇'\n  },\n  TimePicker: {\n    placeholder: '請選擇時間',\n    positiveText: '確定',\n    negativeText: '取消',\n    now: '現在',\n    clear: '清除'\n  },\n  Pagination: {\n    goto: '跳至',\n    selectionSuffix: '頁'\n  },\n  DynamicTags: {\n    add: '新增'\n  },\n  Log: {\n    loading: '載入中'\n  },\n  Input: {\n    placeholder: '請輸入'\n  },\n  InputNumber: {\n    placeholder: '請輸入'\n  },\n  DynamicInput: {\n    create: '新增'\n  },\n  ThemeEditor: {\n    title: '主題編輯器',\n    clearAllVars: '清除全部變數',\n    clearSearch: '清除搜尋',\n    filterCompName: '過濾組件名稱',\n    filterVarName: '過濾變數名稱',\n    import: '匯入',\n    export: '匯出',\n    restore: '恢復預設'\n  },\n  Image: {\n    tipPrevious: '上一張（←）',\n    tipNext: '下一張（→）',\n    tipCounterclockwise: '向左旋轉',\n    tipClockwise: '向右旋轉',\n    tipZoomOut: '縮小',\n    tipZoomIn: '放大',\n    tipDownload: '下載',\n    tipClose: '關閉（Esc）',\n    tipOriginalSize: '縮放到原始尺寸'\n  },\n  Heatmap: {\n    less: '少',\n    more: '多',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default zhTW\n","import type { NLocale } from './enUS'\n\nconst zuZA: NLocale = {\n  name: 'zu-ZA',\n  global: {\n    undo: 'Hlehlisa',\n    redo: 'Phinda wenze',\n    confirm: 'Qinisekisa',\n    clear: 'Sula'\n  },\n  Popconfirm: {\n    positiveText: 'Qinisekisa',\n    negativeText: 'Khansela'\n  },\n  Cascader: {\n    placeholder: 'Sicela ukhethe',\n    loading: 'Iyalayisha',\n    loadingRequiredMessage: (label: string): string =>\n      `Sicela ulayishe zonke izizukulwane zika-${label} ngaphambi kokukhetha.`\n  },\n  Time: {\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss'\n  },\n  DatePicker: {\n    yearFormat: 'yyyy',\n    monthFormat: 'MMM',\n    dayFormat: 'eeeeee',\n    yearTypeFormat: 'yyyy',\n    monthTypeFormat: 'yyyy-MM',\n    dateFormat: 'yyyy-MM-dd',\n    dateTimeFormat: 'yyyy-MM-dd HH:mm:ss',\n    quarterFormat: 'yyyy-qqq',\n    weekFormat: 'YYYY-w',\n    clear: 'Sula',\n    now: 'Manje',\n    confirm: 'Qinisekisa',\n    selectTime: 'Khetha isikhathi',\n    selectDate: 'Khetha usuku',\n    datePlaceholder: 'Khetha usuku',\n    datetimePlaceholder: 'Khetha usuku nesikhathi',\n    monthPlaceholder: 'Khetha inyanga',\n    yearPlaceholder: 'Khetha unyaka',\n    quarterPlaceholder: 'Khetha ikota',\n    weekPlaceholder: 'Khetha isonto',\n    startDatePlaceholder: 'Usuku lokuqala',\n    endDatePlaceholder: 'Usuku lokugcina',\n    startDatetimePlaceholder: 'Usuku nesikhathi sokuqala',\n    endDatetimePlaceholder: 'Usuku nesikhathi sokugcina',\n    startMonthPlaceholder: 'Inyanga yokuqala',\n    endMonthPlaceholder: 'Inyanga yokugcina',\n    monthBeforeYear: true,\n    firstDayOfWeek: 6 as 0 | 1 | 2 | 3 | 4 | 5 | 6,\n    today: 'Namuhla'\n  },\n  DataTable: {\n    checkTableAll: 'Khetha konke etafuleni',\n    uncheckTableAll: 'Susa ukukhetha konke etafuleni',\n    confirm: 'Qinisekisa',\n    clear: 'Sula'\n  },\n  LegacyTransfer: {\n    sourceTitle: 'Umthombo',\n    targetTitle: 'Inhloso'\n  },\n  Transfer: {\n    selectAll: 'Khetha konke',\n    unselectAll: 'Susa ukukhetha konke',\n    clearAll: 'Sula',\n    total: (num: number): string => `Ingqikithi yezinto ezingu-${num}`,\n    selected: (num: number): string => `Kukhethwe izinto ezingu-${num}`\n  },\n  Empty: {\n    description: 'Ayikho idatha'\n  },\n  Select: {\n    placeholder: 'Sicela ukhethe'\n  },\n  TimePicker: {\n    placeholder: 'Khetha isikhathi',\n    positiveText: 'KULUNGILE',\n    negativeText: 'Khansela',\n    now: 'Manje',\n    clear: 'Sula'\n  },\n  Pagination: {\n    goto: 'Iya ku',\n    selectionSuffix: 'ikhasi'\n  },\n  DynamicTags: {\n    add: 'Engeza'\n  },\n  Log: {\n    loading: 'Iyalayisha'\n  },\n  Input: {\n    placeholder: 'Sicela ufake'\n  },\n  InputNumber: {\n    placeholder: 'Sicela ufake'\n  },\n  DynamicInput: {\n    create: 'Dala'\n  },\n  ThemeEditor: {\n    title: 'Umhleli wetimu',\n    clearAllVars: 'Sula zonke izinguquko',\n    clearSearch: 'Sula ukusesha',\n    filterCompName: 'Hlunga igama lengxenye',\n    filterVarName: 'Hlunga igama lenguquko',\n    import: 'Ngenisa',\n    export: 'Khipha',\n    restore: 'Buyisela okwakhona'\n  },\n  Image: {\n    tipPrevious: 'Isithombe sangaphambilini (←)',\n    tipNext: 'Isithombe esilandelayo (→)',\n    tipCounterclockwise: 'Ngokuphikisana newashi',\n    tipClockwise: 'Ngokulandela iwashi',\n    tipZoomOut: 'Nciphisa',\n    tipZoomIn: 'Khulisa',\n    tipDownload: 'Landa',\n    tipClose: 'Vala (Esc)',\n    tipOriginalSize: 'Sondeza kubukhulu boqobo'\n  },\n  Heatmap: {\n    less: 'kuncane',\n    more: 'kuningi',\n    monthFormat: 'MMM',\n    weekdayFormat: 'eeeeee'\n  }\n}\n\nexport default zuZA\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"minder as 'n sekonde\",\n    other: \"minder as {{count}} sekondes\",\n  },\n\n  xSeconds: {\n    one: \"1 sekonde\",\n    other: \"{{count}} sekondes\",\n  },\n\n  halfAMinute: \"'n halwe minuut\",\n\n  lessThanXMinutes: {\n    one: \"minder as 'n minuut\",\n    other: \"minder as {{count}} minute\",\n  },\n\n  xMinutes: {\n    one: \"'n minuut\",\n    other: \"{{count}} minute\",\n  },\n\n  aboutXHours: {\n    one: \"ongeveer 1 uur\",\n    other: \"ongeveer {{count}} ure\",\n  },\n\n  xHours: {\n    one: \"1 uur\",\n    other: \"{{count}} ure\",\n  },\n\n  xDays: {\n    one: \"1 dag\",\n    other: \"{{count}} dae\",\n  },\n\n  aboutXWeeks: {\n    one: \"ongeveer 1 week\",\n    other: \"ongeveer {{count}} weke\",\n  },\n\n  xWeeks: {\n    one: \"1 week\",\n    other: \"{{count}} weke\",\n  },\n\n  aboutXMonths: {\n    one: \"ongeveer 1 maand\",\n    other: \"ongeveer {{count}} maande\",\n  },\n\n  xMonths: {\n    one: \"1 maand\",\n    other: \"{{count}} maande\",\n  },\n\n  aboutXYears: {\n    one: \"ongeveer 1 jaar\",\n    other: \"ongeveer {{count}} jaar\",\n  },\n\n  xYears: {\n    one: \"1 jaar\",\n    other: \"{{count}} jaar\",\n  },\n\n  overXYears: {\n    one: \"meer as 1 jaar\",\n    other: \"meer as {{count}} jaar\",\n  },\n\n  almostXYears: {\n    one: \"byna 1 jaar\",\n    other: \"byna {{count}} jaar\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"oor \" + result;\n    } else {\n      return result + \" gelede\";\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, d MMMM yyyy\",\n  long: \"d MMMM yyyy\",\n  medium: \"d MMM yyyy\",\n  short: \"yyyy/MM/dd\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'om' {{time}}\",\n  long: \"{{date}} 'om' {{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: \"'verlede' eeee 'om' p\",\n  yesterday: \"'gister om' p\",\n  today: \"'vandag om' p\",\n  tomorrow: \"'môre om' p\",\n  nextWeek: \"eeee 'om' 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: [\"vC\", \"nC\"],\n  abbreviated: [\"vC\", \"nC\"],\n  wide: [\"voor Christus\", \"na Christus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\"1ste kwartaal\", \"2de kwartaal\", \"3de kwartaal\", \"4de kwartaal\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"Jan\",\n    \"Feb\",\n    \"Mrt\",\n    \"Apr\",\n    \"Mei\",\n    \"Jun\",\n    \"Jul\",\n    \"Aug\",\n    \"Sep\",\n    \"Okt\",\n    \"Nov\",\n    \"Des\",\n  ],\n\n  wide: [\n    \"Januarie\",\n    \"Februarie\",\n    \"Maart\",\n    \"April\",\n    \"Mei\",\n    \"Junie\",\n    \"Julie\",\n    \"Augustus\",\n    \"September\",\n    \"Oktober\",\n    \"November\",\n    \"Desember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"D\", \"W\", \"D\", \"V\", \"S\"],\n  short: [\"So\", \"Ma\", \"Di\", \"Wo\", \"Do\", \"Vr\", \"Sa\"],\n  abbreviated: [\"Son\", \"Maa\", \"Din\", \"Woe\", \"Don\", \"Vry\", \"Sat\"],\n  wide: [\n    \"Sondag\",\n    \"Maandag\",\n    \"Dinsdag\",\n    \"Woensdag\",\n    \"Donderdag\",\n    \"Vrydag\",\n    \"Saterdag\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"middaguur\",\n    morning: \"oggend\",\n    afternoon: \"middag\",\n    evening: \"laat middag\",\n    night: \"aand\",\n  },\n  abbreviated: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"middaguur\",\n    morning: \"oggend\",\n    afternoon: \"middag\",\n    evening: \"laat middag\",\n    night: \"aand\",\n  },\n  wide: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"middaguur\",\n    morning: \"oggend\",\n    afternoon: \"middag\",\n    evening: \"laat middag\",\n    night: \"aand\",\n  },\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"uur die middag\",\n    morning: \"uur die oggend\",\n    afternoon: \"uur die middag\",\n    evening: \"uur die aand\",\n    night: \"uur die aand\",\n  },\n  abbreviated: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"uur die middag\",\n    morning: \"uur die oggend\",\n    afternoon: \"uur die middag\",\n    evening: \"uur die aand\",\n    night: \"uur die aand\",\n  },\n  wide: {\n    am: \"vm\",\n    pm: \"nm\",\n    midnight: \"middernag\",\n    noon: \"uur die middag\",\n    morning: \"uur die oggend\",\n    afternoon: \"uur die middag\",\n    evening: \"uur die aand\",\n    night: \"uur die aand\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n  const number = Number(dirtyNumber);\n  const rem100 = number % 100;\n  if (rem100 < 20) {\n    switch (rem100) {\n      case 1:\n      case 8:\n        return number + \"ste\";\n      default:\n        return number + \"de\";\n    }\n  }\n  return number + \"ste\";\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+)(ste|de)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^([vn]\\.? ?C\\.?)/,\n  abbreviated: /^([vn]\\. ?C\\.?)/,\n  wide: /^((voor|na) Christus)/,\n};\nconst parseEraPatterns = {\n  any: [/^v/, /^n/],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^K[1234]/i,\n  wide: /^[1234](st|d)e kwartaal/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|Mrt|Apr|Mei|Jun|Jul|Aug|Sep|Okt|Nov|Dec)\\.?/i,\n  wide: /^(Januarie|Februarie|Maart|April|Mei|Junie|Julie|Augustus|September|Oktober|November|Desember)/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    /^Jan/i,\n    /^Feb/i,\n    /^Mrt/i,\n    /^Apr/i,\n    /^Mei/i,\n    /^Jun/i,\n    /^Jul/i,\n    /^Aug/i,\n    /^Sep/i,\n    /^Okt/i,\n    /^Nov/i,\n    /^Dec/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smdwv]/i,\n  short: /^(So|Ma|Di|Wo|Do|Vr|Sa)/i,\n  abbreviated: /^(Son|Maa|Din|Woe|Don|Vry|Sat)/i,\n  wide: /^(Sondag|Maandag|Dinsdag|Woensdag|Donderdag|Vrydag|Saterdag)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^S/i, /^M/i, /^D/i, /^W/i, /^D/i, /^V/i, /^S/i],\n  any: [/^So/i, /^Ma/i, /^Di/i, /^Wo/i, /^Do/i, /^Vr/i, /^Sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(vm|nm|middernag|(?:uur )?die (oggend|middag|aand))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^vm/i,\n    pm: /^nm/i,\n    midnight: /^middernag/i,\n    noon: /^middaguur/i,\n    morning: /oggend/i,\n    afternoon: /middag/i,\n    evening: /laat middag/i,\n    night: /aand/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 \"./af/_lib/formatDistance.js\";\nimport { formatLong } from \"./af/_lib/formatLong.js\";\nimport { formatRelative } from \"./af/_lib/formatRelative.js\";\nimport { localize } from \"./af/_lib/localize.js\";\nimport { match } from \"./af/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Afrikaans locale.\n * @language Afrikaans\n * @iso-639-2 afr\n * @author Marnus Weststrate [@marnusw](https://github.com/marnusw)\n */\nexport const af = {\n  code: \"af\",\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 af;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"أقل من ثانية واحدة\",\n    two: \"أقل من ثانتين\",\n    threeToTen: \"أقل من {{count}} ثواني\",\n    other: \"أقل من {{count}} ثانية\",\n  },\n\n  xSeconds: {\n    one: \"ثانية واحدة\",\n    two: \"ثانتين\",\n    threeToTen: \"{{count}} ثواني\",\n    other: \"{{count}} ثانية\",\n  },\n\n  halfAMinute: \"نصف دقيقة\",\n\n  lessThanXMinutes: {\n    one: \"أقل من دقيقة\",\n    two: \"أقل من دقيقتين\",\n    threeToTen: \"أقل من {{count}} دقائق\",\n    other: \"أقل من {{count}} دقيقة\",\n  },\n\n  xMinutes: {\n    one: \"دقيقة واحدة\",\n    two: \"دقيقتين\",\n    threeToTen: \"{{count}} دقائق\",\n    other: \"{{count}} دقيقة\",\n  },\n\n  aboutXHours: {\n    one: \"ساعة واحدة تقريباً\",\n    two: \"ساعتين تقريباً\",\n    threeToTen: \"{{count}} ساعات تقريباً\",\n    other: \"{{count}} ساعة تقريباً\",\n  },\n\n  xHours: {\n    one: \"ساعة واحدة\",\n    two: \"ساعتين\",\n    threeToTen: \"{{count}} ساعات\",\n    other: \"{{count}} ساعة\",\n  },\n\n  xDays: {\n    one: \"يوم واحد\",\n    two: \"يومين\",\n    threeToTen: \"{{count}} أيام\",\n    other: \"{{count}} يوم\",\n  },\n\n  aboutXWeeks: {\n    one: \"أسبوع واحد تقريباً\",\n    two: \"أسبوعين تقريباً\",\n    threeToTen: \"{{count}} أسابيع تقريباً\",\n    other: \"{{count}} أسبوع تقريباً\",\n  },\n\n  xWeeks: {\n    one: \"أسبوع واحد\",\n    two: \"أسبوعين\",\n    threeToTen: \"{{count}} أسابيع\",\n    other: \"{{count}} أسبوع\",\n  },\n\n  aboutXMonths: {\n    one: \"شهر واحد تقريباً\",\n    two: \"شهرين تقريباً\",\n    threeToTen: \"{{count}} أشهر تقريباً\",\n    other: \"{{count}} شهر تقريباً\",\n  },\n\n  xMonths: {\n    one: \"شهر واحد\",\n    two: \"شهرين\",\n    threeToTen: \"{{count}} أشهر\",\n    other: \"{{count}} شهر\",\n  },\n\n  aboutXYears: {\n    one: \"عام واحد تقريباً\",\n    two: \"عامين تقريباً\",\n    threeToTen: \"{{count}} أعوام تقريباً\",\n    other: \"{{count}} عام تقريباً\",\n  },\n\n  xYears: {\n    one: \"عام واحد\",\n    two: \"عامين\",\n    threeToTen: \"{{count}} أعوام\",\n    other: \"{{count}} عام\",\n  },\n\n  overXYears: {\n    one: \"أكثر من عام\",\n    two: \"أكثر من عامين\",\n    threeToTen: \"أكثر من {{count}} أعوام\",\n    other: \"أكثر من {{count}} عام\",\n  },\n\n  almostXYears: {\n    one: \"عام واحد تقريباً\",\n    two: \"عامين تقريباً\",\n    threeToTen: \"{{count}} أعوام تقريباً\",\n    other: \"{{count}} عام تقريباً\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  options = options || {};\n\n  const usageGroup = formatDistanceLocale[token];\n  let result;\n  if (typeof usageGroup === \"string\") {\n    result = usageGroup;\n  } else if (count === 1) {\n    result = usageGroup.one;\n  } else if (count === 2) {\n    result = usageGroup.two;\n  } else if (count <= 10) {\n    result = usageGroup.threeToTen.replace(\"{{count}}\", String(count));\n  } else {\n    result = usageGroup.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"في خلال \" + result;\n    } else {\n      return \"منذ \" + result;\n    }\n  }\n\n  return result;\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}} 'عند' {{time}}\",\n  long: \"{{date}} 'عند' {{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: \"'أخر' eeee 'عند' p\",\n  yesterday: \"'أمس عند' p\",\n  today: \"'اليوم عند' p\",\n  tomorrow: \"'غداً عند' p\",\n  nextWeek: \"eeee 'عند' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) => {\n  return formatRelativeLocale[token];\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ق\", \"ب\"],\n  abbreviated: [\"ق.م.\", \"ب.م.\"],\n  wide: [\"قبل الميلاد\", \"بعد الميلاد\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"ر1\", \"ر2\", \"ر3\", \"ر4\"],\n  wide: [\"الربع الأول\", \"الربع الثاني\", \"الربع الثالث\", \"الربع الرابع\"],\n};\n\nconst monthValues = {\n  narrow: [\"ج\", \"ف\", \"م\", \"أ\", \"م\", \"ج\", \"ج\", \"أ\", \"س\", \"أ\", \"ن\", \"د\"],\n  abbreviated: [\n    \"جانـ\",\n    \"فيفـ\",\n    \"مارس\",\n    \"أفريل\",\n    \"مايـ\",\n    \"جوانـ\",\n    \"جويـ\",\n    \"أوت\",\n    \"سبتـ\",\n    \"أكتـ\",\n    \"نوفـ\",\n    \"ديسـ\",\n  ],\n\n  wide: [\n    \"جانفي\",\n    \"فيفري\",\n    \"مارس\",\n    \"أفريل\",\n    \"ماي\",\n    \"جوان\",\n    \"جويلية\",\n    \"أوت\",\n    \"سبتمبر\",\n    \"أكتوبر\",\n    \"نوفمبر\",\n    \"ديسمبر\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"ح\", \"ن\", \"ث\", \"ر\", \"خ\", \"ج\", \"س\"],\n  short: [\"أحد\", \"اثنين\", \"ثلاثاء\", \"أربعاء\", \"خميس\", \"جمعة\", \"سبت\"],\n  abbreviated: [\"أحد\", \"اثنـ\", \"ثلا\", \"أربـ\", \"خميـ\", \"جمعة\", \"سبت\"],\n  wide: [\n    \"الأحد\",\n    \"الاثنين\",\n    \"الثلاثاء\",\n    \"الأربعاء\",\n    \"الخميس\",\n    \"الجمعة\",\n    \"السبت\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"ن\",\n    noon: \"ظ\",\n    morning: \"صباحاً\",\n    afternoon: \"بعد الظهر\",\n    evening: \"مساءاً\",\n    night: \"ليلاً\",\n  },\n  abbreviated: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"نصف الليل\",\n    noon: \"ظهر\",\n    morning: \"صباحاً\",\n    afternoon: \"بعد الظهر\",\n    evening: \"مساءاً\",\n    night: \"ليلاً\",\n  },\n  wide: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"نصف الليل\",\n    noon: \"ظهر\",\n    morning: \"صباحاً\",\n    afternoon: \"بعد الظهر\",\n    evening: \"مساءاً\",\n    night: \"ليلاً\",\n  },\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"ن\",\n    noon: \"ظ\",\n    morning: \"في الصباح\",\n    afternoon: \"بعد الظـهر\",\n    evening: \"في المساء\",\n    night: \"في الليل\",\n  },\n  abbreviated: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"نصف الليل\",\n    noon: \"ظهر\",\n    morning: \"في الصباح\",\n    afternoon: \"بعد الظهر\",\n    evening: \"في المساء\",\n    night: \"في الليل\",\n  },\n  wide: {\n    am: \"ص\",\n    pm: \"م\",\n    midnight: \"نصف الليل\",\n    noon: \"ظهر\",\n    morning: \"صباحاً\",\n    afternoon: \"بعد الظـهر\",\n    evening: \"في المساء\",\n    night: \"في الليل\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n  return String(dirtyNumber);\n};\n\nexport const localize = {\n  ordinalNumber: 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) => Number(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","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ق|ب)/i,\n  abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?م\\.?\\s?|a\\.?\\s?d\\.?|c\\.?\\s?)/i,\n  wide: /^(قبل الميلاد|قبل الميلاد|بعد الميلاد|بعد الميلاد)/i,\n};\nconst parseEraPatterns = {\n  any: [/^قبل/i, /^بعد/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^ر[1234]/i,\n  wide: /^الربع [1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[جفمأسند]/i,\n  abbreviated: /^(جان|فيف|مار|أفر|ماي|جوا|جوي|أوت|سبت|أكت|نوف|ديس)/i,\n  wide: /^(جانفي|فيفري|مارس|أفريل|ماي|جوان|جويلية|أوت|سبتمبر|أكتوبر|نوفمبر|ديسمبر)/i,\n};\n\nconst parseMonthPatterns = {\n  narrow: [\n    /^ج/i,\n    /^ف/i,\n    /^م/i,\n    /^أ/i,\n    /^م/i,\n    /^ج/i,\n    /^ج/i,\n    /^أ/i,\n    /^س/i,\n    /^أ/i,\n    /^ن/i,\n    /^د/i,\n  ],\n\n  any: [\n    /^جان/i,\n    /^فيف/i,\n    /^مار/i,\n    /^أفر/i,\n    /^ماي/i,\n    /^جوا/i,\n    /^جوي/i,\n    /^أوت/i,\n    /^سبت/i,\n    /^أكت/i,\n    /^نوف/i,\n    /^ديس/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[حنثرخجس]/i,\n  short: /^(أحد|اثنين|ثلاثاء|أربعاء|خميس|جمعة|سبت)/i,\n  abbreviated: /^(أحد|اثن|ثلا|أرب|خمي|جمعة|سبت)/i,\n  wide: /^(الأحد|الاثنين|الثلاثاء|الأربعاء|الخميس|الجمعة|السبت)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ح/i, /^ن/i, /^ث/i, /^ر/i, /^خ/i, /^ج/i, /^س/i],\n  wide: [\n    /^الأحد/i,\n    /^الاثنين/i,\n    /^الثلاثاء/i,\n    /^الأربعاء/i,\n    /^الخميس/i,\n    /^الجمعة/i,\n    /^السبت/i,\n  ],\n\n  any: [/^أح/i, /^اث/i, /^ث/i, /^أر/i, /^خ/i, /^ج/i, /^س/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) => Number(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 \"./ar-DZ/_lib/formatDistance.js\";\nimport { formatLong } from \"./ar-DZ/_lib/formatLong.js\";\nimport { formatRelative } from \"./ar-DZ/_lib/formatRelative.js\";\nimport { localize } from \"./ar-DZ/_lib/localize.js\";\nimport { match } from \"./ar-DZ/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Arabic locale (Algerian Arabic).\n * @language Algerian Arabic\n * @iso-639-2 ara\n * @author Badreddine Boumaza [@badre429](https://github.com/badre429)\n * @author Ahmed ElShahat [@elshahat](https://github.com/elshahat)\n */\nexport const arDZ = {\n  code: \"ar-DZ\",\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 arDZ;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"bir saniyədən az\",\n    other: \"{{count}} bir saniyədən az\",\n  },\n\n  xSeconds: {\n    one: \"1 saniyə\",\n    other: \"{{count}} saniyə\",\n  },\n\n  halfAMinute: \"yarım dəqiqə\",\n\n  lessThanXMinutes: {\n    one: \"bir dəqiqədən az\",\n    other: \"{{count}} bir dəqiqədən az\",\n  },\n\n  xMinutes: {\n    one: \"bir dəqiqə\",\n    other: \"{{count}} dəqiqə\",\n  },\n\n  aboutXHours: {\n    one: \"təxminən 1 saat\",\n    other: \"təxminən {{count}} saat\",\n  },\n\n  xHours: {\n    one: \"1 saat\",\n    other: \"{{count}} saat\",\n  },\n\n  xDays: {\n    one: \"1 gün\",\n    other: \"{{count}} gün\",\n  },\n\n  aboutXWeeks: {\n    one: \"təxminən 1 həftə\",\n    other: \"təxminən {{count}} həftə\",\n  },\n\n  xWeeks: {\n    one: \"1 həftə\",\n    other: \"{{count}} həftə\",\n  },\n\n  aboutXMonths: {\n    one: \"təxminən 1 ay\",\n    other: \"təxminən {{count}} ay\",\n  },\n\n  xMonths: {\n    one: \"1 ay\",\n    other: \"{{count}} ay\",\n  },\n\n  aboutXYears: {\n    one: \"təxminən 1 il\",\n    other: \"təxminən {{count}} il\",\n  },\n\n  xYears: {\n    one: \"1 il\",\n    other: \"{{count}} il\",\n  },\n\n  overXYears: {\n    one: \"1 ildən çox\",\n    other: \"{{count}} ildən çox\",\n  },\n\n  almostXYears: {\n    one: \"demək olar ki 1 il\",\n    other: \"demək olar ki {{count}} il\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" sonra\";\n    } else {\n      return result + \" əvvəl\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM y 'il'\",\n  long: \"do MMMM y 'il'\",\n  medium: \"d MMM y 'il'\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}} - 'də'\",\n  long: \"{{date}} {{time}} - 'də'\",\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: \"'sonuncu' eeee p -'də'\",\n  yesterday: \"'dünən' p -'də'\",\n  today: \"'bugün' p -'də'\",\n  tomorrow: \"'sabah' p -'də'\",\n  nextWeek: \"eeee p -'də'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"e.ə\", \"b.e\"],\n  abbreviated: [\"e.ə\", \"b.e\"],\n  wide: [\"eramızdan əvvəl\", \"bizim era\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\"1ci kvartal\", \"2ci kvartal\", \"3cü kvartal\", \"4cü kvartal\"],\n};\nconst monthValues = {\n  narrow: [\"Y\", \"F\", \"M\", \"A\", \"M\", \"İ\", \"İ\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"Yan\",\n    \"Fev\",\n    \"Mar\",\n    \"Apr\",\n    \"May\",\n    \"İyun\",\n    \"İyul\",\n    \"Avq\",\n    \"Sen\",\n    \"Okt\",\n    \"Noy\",\n    \"Dek\",\n  ],\n\n  wide: [\n    \"Yanvar\",\n    \"Fevral\",\n    \"Mart\",\n    \"Aprel\",\n    \"May\",\n    \"İyun\",\n    \"İyul\",\n    \"Avqust\",\n    \"Sentyabr\",\n    \"Oktyabr\",\n    \"Noyabr\",\n    \"Dekabr\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"B.\", \"B.e\", \"Ç.a\", \"Ç.\", \"C.a\", \"C.\", \"Ş.\"],\n  short: [\"B.\", \"B.e\", \"Ç.a\", \"Ç.\", \"C.a\", \"C.\", \"Ş.\"],\n  abbreviated: [\"Baz\", \"Baz.e\", \"Çər.a\", \"Çər\", \"Cüm.a\", \"Cüm\", \"Şə\"],\n  wide: [\n    \"Bazar\",\n    \"Bazar ertəsi\",\n    \"Çərşənbə axşamı\",\n    \"Çərşənbə\",\n    \"Cümə axşamı\",\n    \"Cümə\",\n    \"Şənbə\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"gecəyarı\",\n    noon: \"gün\",\n    morning: \"səhər\",\n    afternoon: \"gündüz\",\n    evening: \"axşam\",\n    night: \"gecə\",\n  },\n};\n\nconst suffixes = {\n  1: \"-inci\",\n  5: \"-inci\",\n  8: \"-inci\",\n  70: \"-inci\",\n  80: \"-inci\",\n  2: \"-nci\",\n  7: \"-nci\",\n  20: \"-nci\",\n  50: \"-nci\",\n  3: \"-üncü\",\n  4: \"-üncü\",\n  100: \"-üncü\",\n  6: \"-ncı\",\n  9: \"-uncu\",\n  10: \"-uncu\",\n  30: \"-uncu\",\n  60: \"-ıncı\",\n  90: \"-ıncı\",\n};\n\nconst getSuffix = (number) => {\n  if (number === 0) {\n    // special case for zero\n    return number + \"-ıncı\";\n  }\n\n  const a = number % 10;\n  const b = (number % 100) - a;\n  const c = number >= 100 ? 100 : null;\n\n  if (suffixes[a]) {\n    return suffixes[a];\n  } else if (suffixes[b]) {\n    return suffixes[b];\n  } else if (c !== null) {\n    return suffixes[c];\n  }\n  return \"\";\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  const suffix = getSuffix(number);\n\n  return number + suffix;\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?(ci|inci|nci|uncu|üncü|ncı))?/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: /^(bizim eradan əvvəl|bizim era)$/i,\n};\nconst parseEraPatterns = {\n  any: [/^b$/i, /^(a|c)$/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]$/i,\n  abbreviated: /^K[1234]$/i,\n  wide: /^[1234](ci)? kvartal$/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[(?-i)yfmaisond]$/i,\n  abbreviated: /^(Yan|Fev|Mar|Apr|May|İyun|İyul|Avq|Sen|Okt|Noy|Dek)$/i,\n  wide: /^(Yanvar|Fevral|Mart|Aprel|May|İyun|İyul|Avgust|Sentyabr|Oktyabr|Noyabr|Dekabr)$/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^[(?-i)y]$/i,\n    /^[(?-i)f]$/i,\n    /^[(?-i)m]$/i,\n    /^[(?-i)a]$/i,\n    /^[(?-i)m]$/i,\n    /^[(?-i)i]$/i,\n    /^[(?-i)i]$/i,\n    /^[(?-i)a]$/i,\n    /^[(?-i)s]$/i,\n    /^[(?-i)o]$/i,\n    /^[(?-i)n]$/i,\n    /^[(?-i)d]$/i,\n  ],\n\n  abbreviated: [\n    /^Yan$/i,\n    /^Fev$/i,\n    /^Mar$/i,\n    /^Apr$/i,\n    /^May$/i,\n    /^İyun$/i,\n    /^İyul$/i,\n    /^Avg$/i,\n    /^Sen$/i,\n    /^Okt$/i,\n    /^Noy$/i,\n    /^Dek$/i,\n  ],\n\n  wide: [\n    /^Yanvar$/i,\n    /^Fevral$/i,\n    /^Mart$/i,\n    /^Aprel$/i,\n    /^May$/i,\n    /^İyun$/i,\n    /^İyul$/i,\n    /^Avgust$/i,\n    /^Sentyabr$/i,\n    /^Oktyabr$/i,\n    /^Noyabr$/i,\n    /^Dekabr$/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(B\\.|B\\.e|Ç\\.a|Ç\\.|C\\.a|C\\.|Ş\\.)$/i,\n  short: /^(B\\.|B\\.e|Ç\\.a|Ç\\.|C\\.a|C\\.|Ş\\.)$/i,\n  abbreviated: /^(Baz\\.e|Çər|Çər\\.a|Cüm|Cüm\\.a|Şə)$/i,\n  wide: /^(Bazar|Bazar ertəsi|Çərşənbə axşamı|Çərşənbə|Cümə axşamı|Cümə|Şənbə)$/i,\n};\nconst parseDayPatterns = {\n  narrow: [\n    /^B\\.$/i,\n    /^B\\.e$/i,\n    /^Ç\\.a$/i,\n    /^Ç\\.$/i,\n    /^C\\.a$/i,\n    /^C\\.$/i,\n    /^Ş\\.$/i,\n  ],\n\n  abbreviated: [\n    /^Baz$/i,\n    /^Baz\\.e$/i,\n    /^Çər\\.a$/i,\n    /^Çər$/i,\n    /^Cüm\\.a$/i,\n    /^Cüm$/i,\n    /^Şə$/i,\n  ],\n\n  wide: [\n    /^Bazar$/i,\n    /^Bazar ertəsi$/i,\n    /^Çərşənbə axşamı$/i,\n    /^Çərşənbə$/i,\n    /^Cümə axşamı$/i,\n    /^Cümə$/i,\n    /^Şənbə$/i,\n  ],\n\n  any: [\n    /^B\\.$/i,\n    /^B\\.e$/i,\n    /^Ç\\.a$/i,\n    /^Ç\\.$/i,\n    /^C\\.a$/i,\n    /^C\\.$/i,\n    /^Ş\\.$/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i,\n  any: /^(am|pm|a\\.m\\.|p\\.m\\.|AM|PM|gecəyarı|gün|səhər|gündüz|axşam|gecə)$/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a$/i,\n    pm: /^p$/i,\n    midnight: /^gecəyarı$/i,\n    noon: /^gün$/i,\n    morning: /səhər$/i,\n    afternoon: /gündüz$/i,\n    evening: /axşam$/i,\n    night: /gecə$/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: \"narrow\",\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 \"./az/_lib/formatDistance.js\";\nimport { formatLong } from \"./az/_lib/formatLong.js\";\nimport { formatRelative } from \"./az/_lib/formatRelative.js\";\nimport { localize } from \"./az/_lib/localize.js\";\nimport { match } from \"./az/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Azerbaijani locale.\n * @language Azerbaijani\n * @iso-639-2 aze\n */\n\nexport const az = {\n  code: \"az\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default az;\n","function declension(scheme, count) {\n  // scheme for count=1 exists\n  if (scheme.one !== undefined && count === 1) {\n    return scheme.one;\n  }\n\n  const rem10 = count % 10;\n  const rem100 = count % 100;\n\n  // 1, 21, 31, ...\n  if (rem10 === 1 && rem100 !== 11) {\n    return scheme.singularNominative.replace(\"{{count}}\", String(count));\n\n    // 2, 3, 4, 22, 23, 24, 32 ...\n  } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n    return scheme.singularGenitive.replace(\"{{count}}\", String(count));\n\n    // 5, 6, 7, 8, 9, 10, 11, ...\n  } else {\n    return scheme.pluralGenitive.replace(\"{{count}}\", String(count));\n  }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n  return (count, options) => {\n    if (options && options.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        if (scheme.future) {\n          return declension(scheme.future, count);\n        } else {\n          return \"праз \" + declension(scheme.regular, count);\n        }\n      } else {\n        if (scheme.past) {\n          return declension(scheme.past, count);\n        } else {\n          return declension(scheme.regular, count) + \" таму\";\n        }\n      }\n    } else {\n      return declension(scheme.regular, count);\n    }\n  };\n}\n\nconst halfAMinute = (_, options) => {\n  if (options && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"праз паўхвіліны\";\n    } else {\n      return \"паўхвіліны таму\";\n    }\n  }\n\n  return \"паўхвіліны\";\n};\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: buildLocalizeTokenFn({\n    regular: {\n      one: \"менш за секунду\",\n      singularNominative: \"менш за {{count}} секунду\",\n      singularGenitive: \"менш за {{count}} секунды\",\n      pluralGenitive: \"менш за {{count}} секунд\",\n    },\n    future: {\n      one: \"менш, чым праз секунду\",\n      singularNominative: \"менш, чым праз {{count}} секунду\",\n      singularGenitive: \"менш, чым праз {{count}} секунды\",\n      pluralGenitive: \"менш, чым праз {{count}} секунд\",\n    },\n  }),\n\n  xSeconds: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} секунда\",\n      singularGenitive: \"{{count}} секунды\",\n      pluralGenitive: \"{{count}} секунд\",\n    },\n    past: {\n      singularNominative: \"{{count}} секунду таму\",\n      singularGenitive: \"{{count}} секунды таму\",\n      pluralGenitive: \"{{count}} секунд таму\",\n    },\n    future: {\n      singularNominative: \"праз {{count}} секунду\",\n      singularGenitive: \"праз {{count}} секунды\",\n      pluralGenitive: \"праз {{count}} секунд\",\n    },\n  }),\n\n  halfAMinute: halfAMinute,\n\n  lessThanXMinutes: buildLocalizeTokenFn({\n    regular: {\n      one: \"менш за хвіліну\",\n      singularNominative: \"менш за {{count}} хвіліну\",\n      singularGenitive: \"менш за {{count}} хвіліны\",\n      pluralGenitive: \"менш за {{count}} хвілін\",\n    },\n    future: {\n      one: \"менш, чым праз хвіліну\",\n      singularNominative: \"менш, чым праз {{count}} хвіліну\",\n      singularGenitive: \"менш, чым праз {{count}} хвіліны\",\n      pluralGenitive: \"менш, чым праз {{count}} хвілін\",\n    },\n  }),\n\n  xMinutes: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} хвіліна\",\n      singularGenitive: \"{{count}} хвіліны\",\n      pluralGenitive: \"{{count}} хвілін\",\n    },\n    past: {\n      singularNominative: \"{{count}} хвіліну таму\",\n      singularGenitive: \"{{count}} хвіліны таму\",\n      pluralGenitive: \"{{count}} хвілін таму\",\n    },\n    future: {\n      singularNominative: \"праз {{count}} хвіліну\",\n      singularGenitive: \"праз {{count}} хвіліны\",\n      pluralGenitive: \"праз {{count}} хвілін\",\n    },\n  }),\n\n  aboutXHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"каля {{count}} гадзіны\",\n      singularGenitive: \"каля {{count}} гадзін\",\n      pluralGenitive: \"каля {{count}} гадзін\",\n    },\n    future: {\n      singularNominative: \"прыблізна праз {{count}} гадзіну\",\n      singularGenitive: \"прыблізна праз {{count}} гадзіны\",\n      pluralGenitive: \"прыблізна праз {{count}} гадзін\",\n    },\n  }),\n\n  xHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} гадзіна\",\n      singularGenitive: \"{{count}} гадзіны\",\n      pluralGenitive: \"{{count}} гадзін\",\n    },\n    past: {\n      singularNominative: \"{{count}} гадзіну таму\",\n      singularGenitive: \"{{count}} гадзіны таму\",\n      pluralGenitive: \"{{count}} гадзін таму\",\n    },\n    future: {\n      singularNominative: \"праз {{count}} гадзіну\",\n      singularGenitive: \"праз {{count}} гадзіны\",\n      pluralGenitive: \"праз {{count}} гадзін\",\n    },\n  }),\n\n  xDays: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} дзень\",\n      singularGenitive: \"{{count}} дні\",\n      pluralGenitive: \"{{count}} дзён\",\n    },\n  }),\n\n  aboutXWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"каля {{count}} тыдні\",\n      singularGenitive: \"каля {{count}} тыдняў\",\n      pluralGenitive: \"каля {{count}} тыдняў\",\n    },\n    future: {\n      singularNominative: \"прыблізна праз {{count}} тыдзень\",\n      singularGenitive: \"прыблізна праз {{count}} тыдні\",\n      pluralGenitive: \"прыблізна праз {{count}} тыдняў\",\n    },\n  }),\n\n  xWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} тыдзень\",\n      singularGenitive: \"{{count}} тыдні\",\n      pluralGenitive: \"{{count}} тыдняў\",\n    },\n  }),\n\n  aboutXMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"каля {{count}} месяца\",\n      singularGenitive: \"каля {{count}} месяцаў\",\n      pluralGenitive: \"каля {{count}} месяцаў\",\n    },\n    future: {\n      singularNominative: \"прыблізна праз {{count}} месяц\",\n      singularGenitive: \"прыблізна праз {{count}} месяцы\",\n      pluralGenitive: \"прыблізна праз {{count}} месяцаў\",\n    },\n  }),\n\n  xMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} месяц\",\n      singularGenitive: \"{{count}} месяцы\",\n      pluralGenitive: \"{{count}} месяцаў\",\n    },\n  }),\n\n  aboutXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"каля {{count}} года\",\n      singularGenitive: \"каля {{count}} гадоў\",\n      pluralGenitive: \"каля {{count}} гадоў\",\n    },\n    future: {\n      singularNominative: \"прыблізна праз {{count}} год\",\n      singularGenitive: \"прыблізна праз {{count}} гады\",\n      pluralGenitive: \"прыблізна праз {{count}} гадоў\",\n    },\n  }),\n\n  xYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} год\",\n      singularGenitive: \"{{count}} гады\",\n      pluralGenitive: \"{{count}} гадоў\",\n    },\n  }),\n\n  overXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"больш за {{count}} год\",\n      singularGenitive: \"больш за {{count}} гады\",\n      pluralGenitive: \"больш за {{count}} гадоў\",\n    },\n    future: {\n      singularNominative: \"больш, чым праз {{count}} год\",\n      singularGenitive: \"больш, чым праз {{count}} гады\",\n      pluralGenitive: \"больш, чым праз {{count}} гадоў\",\n    },\n  }),\n\n  almostXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"амаль {{count}} год\",\n      singularGenitive: \"амаль {{count}} гады\",\n      pluralGenitive: \"амаль {{count}} гадоў\",\n    },\n    future: {\n      singularNominative: \"амаль праз {{count}} год\",\n      singularGenitive: \"амаль праз {{count}} гады\",\n      pluralGenitive: \"амаль праз {{count}} гадоў\",\n    },\n  }),\n};\n\nexport const formatDistance = (token, count, options) => {\n  options = options || {};\n  return formatDistanceLocale[token](count, options);\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM y 'г.'\",\n  long: \"d MMMM y 'г.'\",\n  medium: \"d MMM y 'г.'\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\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\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","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n  return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n  defaultOptions = newOptions;\n}\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 { 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 { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfWeek } from \"./startOfWeek.js\";\n\n/**\n * The {@link isSameWeek} function options.\n */\n\n/**\n * @name isSameWeek\n * @category Week Helpers\n * @summary Are the given dates in the same week (and month and year)?\n *\n * @description\n * Are the given dates in the same week (and month 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 week (and month and year)\n *\n * @example\n * // Are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4))\n * //=> true\n *\n * @example\n * // If week starts with Monday,\n * // are 31 August 2014 and 4 September 2014 in the same week?\n * const result = isSameWeek(new Date(2014, 7, 31), new Date(2014, 8, 4), {\n *   weekStartsOn: 1\n * })\n * //=> false\n *\n * @example\n * // Are 1 January 2014 and 1 January 2015 in the same week?\n * const result = isSameWeek(new Date(2014, 0, 1), new Date(2015, 0, 1))\n * //=> false\n */\nexport function isSameWeek(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = normalizeDates(\n    options?.in,\n    laterDate,\n    earlierDate,\n  );\n  return (\n    +startOfWeek(laterDate_, options) === +startOfWeek(earlierDate_, options)\n  );\n}\n\n// Fallback for modularized imports:\nexport default isSameWeek;\n","import { isSameWeek } from \"../../../isSameWeek.js\";\nimport { toDate } from \"../../../toDate.js\";\n\nconst accusativeWeekdays = [\n  \"нядзелю\",\n  \"панядзелак\",\n  \"аўторак\",\n  \"сераду\",\n  \"чацвер\",\n  \"пятніцу\",\n  \"суботу\",\n];\n\nfunction lastWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 5:\n    case 6:\n      return \"'у мінулую \" + weekday + \" а' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'у мінулы \" + weekday + \" а' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  return \"'у \" + weekday + \" а' p\";\n}\n\nfunction nextWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 5:\n    case 6:\n      return \"'у наступную \" + weekday + \" а' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'у наступны \" + weekday + \" а' p\";\n  }\n}\n\nconst lastWeekFormat = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return lastWeek(day);\n  }\n};\n\nconst nextWeekFormat = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return nextWeek(day);\n  }\n};\n\nconst formatRelativeLocale = {\n  lastWeek: lastWeekFormat,\n  yesterday: \"'учора а' p\",\n  today: \"'сёння а' p\",\n  tomorrow: \"'заўтра а' p\",\n  nextWeek: nextWeekFormat,\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"да н.э.\", \"н.э.\"],\n  abbreviated: [\"да н. э.\", \"н. э.\"],\n  wide: [\"да нашай эры\", \"нашай эры\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-ы кв.\", \"2-і кв.\", \"3-і кв.\", \"4-ы кв.\"],\n  wide: [\"1-ы квартал\", \"2-і квартал\", \"3-і квартал\", \"4-ы квартал\"],\n};\n\nconst monthValues = {\n  narrow: [\"С\", \"Л\", \"С\", \"К\", \"М\", \"Ч\", \"Л\", \"Ж\", \"В\", \"К\", \"Л\", \"С\"],\n  abbreviated: [\n    \"студз.\",\n    \"лют.\",\n    \"сак.\",\n    \"крас.\",\n    \"май\",\n    \"чэрв.\",\n    \"ліп.\",\n    \"жн.\",\n    \"вер.\",\n    \"кастр.\",\n    \"ліст.\",\n    \"снеж.\",\n  ],\n\n  wide: [\n    \"студзень\",\n    \"люты\",\n    \"сакавік\",\n    \"красавік\",\n    \"май\",\n    \"чэрвень\",\n    \"ліпень\",\n    \"жнівень\",\n    \"верасень\",\n    \"кастрычнік\",\n    \"лістапад\",\n    \"снежань\",\n  ],\n};\nconst formattingMonthValues = {\n  narrow: [\"С\", \"Л\", \"С\", \"К\", \"М\", \"Ч\", \"Л\", \"Ж\", \"В\", \"К\", \"Л\", \"С\"],\n  abbreviated: [\n    \"студз.\",\n    \"лют.\",\n    \"сак.\",\n    \"крас.\",\n    \"мая\",\n    \"чэрв.\",\n    \"ліп.\",\n    \"жн.\",\n    \"вер.\",\n    \"кастр.\",\n    \"ліст.\",\n    \"снеж.\",\n  ],\n\n  wide: [\n    \"студзеня\",\n    \"лютага\",\n    \"сакавіка\",\n    \"красавіка\",\n    \"мая\",\n    \"чэрвеня\",\n    \"ліпеня\",\n    \"жніўня\",\n    \"верасня\",\n    \"кастрычніка\",\n    \"лістапада\",\n    \"снежня\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"П\", \"А\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"нд\", \"пн\", \"аў\", \"ср\", \"чц\", \"пт\", \"сб\"],\n  abbreviated: [\"нядз\", \"пан\", \"аўт\", \"сер\", \"чац\", \"пят\", \"суб\"],\n  wide: [\n    \"нядзеля\",\n    \"панядзелак\",\n    \"аўторак\",\n    \"серада\",\n    \"чацвер\",\n    \"пятніца\",\n    \"субота\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўн.\",\n    noon: \"поўд.\",\n    morning: \"ран.\",\n    afternoon: \"дзень\",\n    evening: \"веч.\",\n    night: \"ноч\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўн.\",\n    noon: \"поўд.\",\n    morning: \"ран.\",\n    afternoon: \"дзень\",\n    evening: \"веч.\",\n    night: \"ноч\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўнач\",\n    noon: \"поўдзень\",\n    morning: \"раніца\",\n    afternoon: \"дзень\",\n    evening: \"вечар\",\n    night: \"ноч\",\n  },\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўн.\",\n    noon: \"поўд.\",\n    morning: \"ран.\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночы\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўн.\",\n    noon: \"поўд.\",\n    morning: \"ран.\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночы\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"поўнач\",\n    noon: \"поўдзень\",\n    morning: \"раніцы\",\n    afternoon: \"дня\",\n    evening: \"вечара\",\n    night: \"ночы\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const unit = String(options?.unit);\n  const number = Number(dirtyNumber);\n  let suffix;\n\n  /** Though it's an incorrect ordinal form of a date we use it here for consistency with other similar locales (ru, uk)\n   *  For date-month combinations should be used `d` formatter.\n   *  Correct:   `d MMMM` (4 верасня)\n   *  Incorrect: `do MMMM` (4-га верасня)\n   *\n   *  But following the consistency leads to mistakes for literal uses of `do` formatter (ordinal day of month).\n   *  So for phrase \"5th day of month\" (`do дзень месяца`)\n   *  library will produce:            `5-га дзень месяца`\n   *  but correct spelling should be:  `5-ы дзень месяца`\n   *\n   *  So I guess there should be a stand-alone and a formatting version of \"day of month\" formatters\n   */\n  if (unit === \"date\") {\n    suffix = \"-га\";\n  } else if (unit === \"hour\" || unit === \"minute\" || unit === \"second\") {\n    suffix = \"-я\";\n  } else {\n    suffix =\n      (number % 10 === 2 || number % 10 === 3) &&\n      number % 100 !== 12 &&\n      number % 100 !== 13\n        ? \"-і\"\n        : \"-ы\";\n  }\n\n  return number + suffix;\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"any\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern =\n  /^(\\d+)(-?(е|я|га|і|ы|ае|ая|яя|шы|гі|ці|ты|мы))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((да )?н\\.?\\s?э\\.?)/i,\n  abbreviated: /^((да )?н\\.?\\s?э\\.?)/i,\n  wide: /^(да нашай эры|нашай эры|наша эра)/i,\n};\nconst parseEraPatterns = {\n  any: [/^д/i, /^н/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?[ыі]?)? кв.?/i,\n  wide: /^[1234](-?[ыі]?)? квартал/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[слкмчжв]/i,\n  abbreviated:\n    /^(студз|лют|сак|крас|ма[йя]|чэрв|ліп|жн|вер|кастр|ліст|снеж)\\.?/i,\n  wide: /^(студзен[ья]|лют(ы|ага)|сакавіка?|красавіка?|ма[йя]|чэрвен[ья]|ліпен[ья]|жні(вень|ўня)|верас(ень|ня)|кастрычніка?|лістапада?|снеж(ань|ня))/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^с/i,\n    /^л/i,\n    /^с/i,\n    /^к/i,\n    /^м/i,\n    /^ч/i,\n    /^л/i,\n    /^ж/i,\n    /^в/i,\n    /^к/i,\n    /^л/i,\n    /^с/i,\n  ],\n\n  any: [\n    /^ст/i,\n    /^лю/i,\n    /^са/i,\n    /^кр/i,\n    /^ма/i,\n    /^ч/i,\n    /^ліп/i,\n    /^ж/i,\n    /^в/i,\n    /^ка/i,\n    /^ліс/i,\n    /^сн/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[нпасч]/i,\n  short: /^(нд|ня|пн|па|аў|ат|ср|се|чц|ча|пт|пя|сб|су)\\.?/i,\n  abbreviated: /^(нядз?|ндз|пнд|пан|аўт|срд|сер|чцв|чац|птн|пят|суб).?/i,\n  wide: /^(нядзел[яі]|панядзел(ак|ка)|аўтор(ак|ка)|серад[аы]|чацв(ер|ярга)|пятніц[аы]|субот[аы])/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^н/i, /^п/i, /^а/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n  any: [/^н/i, /^п[ан]/i, /^а/i, /^с[ер]/i, /^ч/i, /^п[ят]/i, /^с[уб]/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^([дп]п|поўн\\.?|поўд\\.?|ран\\.?|дзень|дня|веч\\.?|ночы?)/i,\n  abbreviated: /^([дп]п|поўн\\.?|поўд\\.?|ран\\.?|дзень|дня|веч\\.?|ночы?)/i,\n  wide: /^([дп]п|поўнач|поўдзень|раніц[аы]|дзень|дня|вечара?|ночы?)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^дп/i,\n    pm: /^пп/i,\n    midnight: /^поўн/i,\n    noon: /^поўд/i,\n    morning: /^р/i,\n    afternoon: /^д[зн]/i,\n    evening: /^в/i,\n    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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./be/_lib/formatDistance.js\";\nimport { formatLong } from \"./be/_lib/formatLong.js\";\nimport { formatRelative } from \"./be/_lib/formatRelative.js\";\nimport { localize } from \"./be/_lib/localize.js\";\nimport { match } from \"./be/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Belarusian locale.\n * @language Belarusian\n * @iso-639-2 bel\n * @author Kiryl Anokhin [@alyrik](https://github.com/alyrik)\n * @author Martin Wind [@arvigeus](https://github.com/mawi12345)\n */\nexport const be = {\n  code: \"be\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default be;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"по-малко от секунда\",\n    other: \"по-малко от {{count}} секунди\",\n  },\n\n  xSeconds: {\n    one: \"1 секунда\",\n    other: \"{{count}} секунди\",\n  },\n\n  halfAMinute: \"половин минута\",\n\n  lessThanXMinutes: {\n    one: \"по-малко от минута\",\n    other: \"по-малко от {{count}} минути\",\n  },\n\n  xMinutes: {\n    one: \"1 минута\",\n    other: \"{{count}} минути\",\n  },\n\n  aboutXHours: {\n    one: \"около час\",\n    other: \"около {{count}} часа\",\n  },\n\n  xHours: {\n    one: \"1 час\",\n    other: \"{{count}} часа\",\n  },\n\n  xDays: {\n    one: \"1 ден\",\n    other: \"{{count}} дни\",\n  },\n\n  aboutXWeeks: {\n    one: \"около седмица\",\n    other: \"около {{count}} седмици\",\n  },\n\n  xWeeks: {\n    one: \"1 седмица\",\n    other: \"{{count}} седмици\",\n  },\n\n  aboutXMonths: {\n    one: \"около месец\",\n    other: \"около {{count}} месеца\",\n  },\n\n  xMonths: {\n    one: \"1 месец\",\n    other: \"{{count}} месеца\",\n  },\n\n  aboutXYears: {\n    one: \"около година\",\n    other: \"около {{count}} години\",\n  },\n\n  xYears: {\n    one: \"1 година\",\n    other: \"{{count}} години\",\n  },\n\n  overXYears: {\n    one: \"над година\",\n    other: \"над {{count}} години\",\n  },\n\n  almostXYears: {\n    one: \"почти година\",\n    other: \"почти {{count}} години\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"след \" + result;\n    } else {\n      return \"преди \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, dd MMMM yyyy\",\n  long: \"dd MMMM yyyy\",\n  medium: \"dd MMM yyyy\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\nimport { toDate } from \"../../../toDate.js\";\n\n// Adapted from the `ru` translation\n\nconst weekdays = [\n  \"неделя\",\n  \"понеделник\",\n  \"вторник\",\n  \"сряда\",\n  \"четвъртък\",\n  \"петък\",\n  \"събота\",\n];\n\nfunction lastWeek(day) {\n  const weekday = weekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 6:\n      return \"'миналата \" + weekday + \" в' p\";\n    case 1:\n    case 2:\n    case 4:\n    case 5:\n      return \"'миналия \" + weekday + \" в' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = weekdays[day];\n\n  if (day === 2 /* Tue */) {\n    return \"'във \" + weekday + \" в' p\";\n  } else {\n    return \"'в \" + weekday + \" в' p\";\n  }\n}\n\nfunction nextWeek(day) {\n  const weekday = weekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 6:\n      return \"'следващата \" + weekday + \" в' p\";\n    case 1:\n    case 2:\n    case 4:\n    case 5:\n      return \"'следващия \" + weekday + \" в' p\";\n  }\n}\n\nconst lastWeekFormatToken = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return lastWeek(day);\n  }\n};\n\nconst nextWeekFormatToken = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return nextWeek(day);\n  }\n};\n\nconst formatRelativeLocale = {\n  lastWeek: lastWeekFormatToken,\n  yesterday: \"'вчера в' p\",\n  today: \"'днес в' p\",\n  tomorrow: \"'утре в' p\",\n  nextWeek: nextWeekFormatToken,\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"пр.н.е.\", \"н.е.\"],\n  abbreviated: [\"преди н. е.\", \"н. е.\"],\n  wide: [\"преди новата ера\", \"новата ера\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-во тримес.\", \"2-ро тримес.\", \"3-то тримес.\", \"4-то тримес.\"],\n\n  wide: [\n    \"1-во тримесечие\",\n    \"2-ро тримесечие\",\n    \"3-то тримесечие\",\n    \"4-то тримесечие\",\n  ],\n};\n\nconst monthValues = {\n  abbreviated: [\n    \"яну\",\n    \"фев\",\n    \"мар\",\n    \"апр\",\n    \"май\",\n    \"юни\",\n    \"юли\",\n    \"авг\",\n    \"сеп\",\n    \"окт\",\n    \"ное\",\n    \"дек\",\n  ],\n\n  wide: [\n    \"януари\",\n    \"февруари\",\n    \"март\",\n    \"април\",\n    \"май\",\n    \"юни\",\n    \"юли\",\n    \"август\",\n    \"септември\",\n    \"октомври\",\n    \"ноември\",\n    \"декември\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"нд\", \"пн\", \"вт\", \"ср\", \"чт\", \"пт\", \"сб\"],\n  abbreviated: [\"нед\", \"пон\", \"вто\", \"сря\", \"чет\", \"пет\", \"съб\"],\n  wide: [\n    \"неделя\",\n    \"понеделник\",\n    \"вторник\",\n    \"сряда\",\n    \"четвъртък\",\n    \"петък\",\n    \"събота\",\n  ],\n};\n\nconst dayPeriodValues = {\n  wide: {\n    am: \"преди обяд\",\n    pm: \"след обяд\",\n    midnight: \"в полунощ\",\n    noon: \"на обяд\",\n    morning: \"сутринта\",\n    afternoon: \"следобед\",\n    evening: \"вечерта\",\n    night: \"през нощта\",\n  },\n};\n\nfunction isFeminine(unit) {\n  return (\n    unit === \"year\" || unit === \"week\" || unit === \"minute\" || unit === \"second\"\n  );\n}\n\nfunction isNeuter(unit) {\n  return unit === \"quarter\";\n}\n\nfunction numberWithSuffix(number, unit, masculine, feminine, neuter) {\n  const suffix = isNeuter(unit)\n    ? neuter\n    : isFeminine(unit)\n      ? feminine\n      : masculine;\n  return number + \"-\" + suffix;\n}\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = options?.unit;\n\n  if (number === 0) {\n    return numberWithSuffix(0, unit, \"ев\", \"ева\", \"ево\");\n  } else if (number % 1000 === 0) {\n    return numberWithSuffix(number, unit, \"ен\", \"на\", \"но\");\n  } else if (number % 100 === 0) {\n    return numberWithSuffix(number, unit, \"тен\", \"тна\", \"тно\");\n  }\n\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return numberWithSuffix(number, unit, \"ви\", \"ва\", \"во\");\n      case 2:\n        return numberWithSuffix(number, unit, \"ри\", \"ра\", \"ро\");\n      case 7:\n      case 8:\n        return numberWithSuffix(number, unit, \"ми\", \"ма\", \"мо\");\n    }\n  }\n\n  return numberWithSuffix(number, unit, \"ти\", \"та\", \"то\");\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern =\n  /^(\\d+)(-?[врмт][аи]|-?т?(ен|на)|-?(ев|ева))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((пр)?н\\.?\\s?е\\.?)/i,\n  abbreviated: /^((пр)?н\\.?\\s?е\\.?)/i,\n  wide: /^(преди новата ера|новата ера|нова ера)/i,\n};\nconst parseEraPatterns = {\n  any: [/^п/i, /^н/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?[врт]?o?)? тримес.?/i,\n  wide: /^[1234](-?[врт]?о?)? тримесечие/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[нпвсч]/i,\n  short: /^(нд|пн|вт|ср|чт|пт|сб)/i,\n  abbreviated: /^(нед|пон|вто|сря|чет|пет|съб)/i,\n  wide: /^(неделя|понеделник|вторник|сряда|четвъртък|петък|събота)/i,\n};\n\nconst parseDayPatterns = {\n  narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n  any: [/^н[ед]/i, /^п[он]/i, /^вт/i, /^ср/i, /^ч[ет]/i, /^п[ет]/i, /^с[ъб]/i],\n};\n\nconst matchMonthPatterns = {\n  abbreviated: /^(яну|фев|мар|апр|май|юни|юли|авг|сеп|окт|ное|дек)/i,\n  wide: /^(януари|февруари|март|април|май|юни|юли|август|септември|октомври|ноември|декември)/i,\n};\n\nconst parseMonthPatterns = {\n  any: [\n    /^я/i,\n    /^ф/i,\n    /^мар/i,\n    /^ап/i,\n    /^май/i,\n    /^юн/i,\n    /^юл/i,\n    /^ав/i,\n    /^се/i,\n    /^окт/i,\n    /^но/i,\n    /^де/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(преди о|след о|в по|на о|през|веч|сут|следо)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^преди о/i,\n    pm: /^след о/i,\n    midnight: /^в пол/i,\n    noon: /^на об/i,\n    morning: /^сут/i,\n    afternoon: /^следо/i,\n    evening: /^веч/i,\n    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 \"./bg/_lib/formatDistance.js\";\nimport { formatLong } from \"./bg/_lib/formatLong.js\";\nimport { formatRelative } from \"./bg/_lib/formatRelative.js\";\nimport { localize } from \"./bg/_lib/localize.js\";\nimport { match } from \"./bg/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Bulgarian locale.\n * @language Bulgarian\n * @iso-639-2 bul\n * @author Nikolay Stoynov [@arvigeus](https://github.com/arvigeus)\n * @author Tsvetan Ovedenski [@fintara](https://github.com/fintara)\n */\nexport const bg = {\n  code: \"bg\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default bg;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst numberValues = {\n  locale: {\n    1: \"১\",\n    2: \"২\",\n    3: \"৩\",\n    4: \"৪\",\n    5: \"৫\",\n    6: \"৬\",\n    7: \"৭\",\n    8: \"৮\",\n    9: \"৯\",\n    0: \"০\",\n  },\n  number: {\n    \"১\": \"1\",\n    \"২\": \"2\",\n    \"৩\": \"3\",\n    \"৪\": \"4\",\n    \"৫\": \"5\",\n    \"৬\": \"6\",\n    \"৭\": \"7\",\n    \"৮\": \"8\",\n    \"৯\": \"9\",\n    \"০\": \"0\",\n  },\n};\n\nconst eraValues = {\n  narrow: [\"খ্রিঃপূঃ\", \"খ্রিঃ\"],\n  abbreviated: [\"খ্রিঃপূর্ব\", \"খ্রিঃ\"],\n  wide: [\"খ্রিস্টপূর্ব\", \"খ্রিস্টাব্দ\"],\n};\n\nconst quarterValues = {\n  narrow: [\"১\", \"২\", \"৩\", \"৪\"],\n  abbreviated: [\"১ত্রৈ\", \"২ত্রৈ\", \"৩ত্রৈ\", \"৪ত্রৈ\"],\n  wide: [\"১ম ত্রৈমাসিক\", \"২য় ত্রৈমাসিক\", \"৩য় ত্রৈমাসিক\", \"৪র্থ ত্রৈমাসিক\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"জানু\",\n    \"ফেব্রু\",\n    \"মার্চ\",\n    \"এপ্রিল\",\n    \"মে\",\n    \"জুন\",\n    \"জুলাই\",\n    \"আগস্ট\",\n    \"সেপ্ট\",\n    \"অক্টো\",\n    \"নভে\",\n    \"ডিসে\",\n  ],\n\n  abbreviated: [\n    \"জানু\",\n    \"ফেব্রু\",\n    \"মার্চ\",\n    \"এপ্রিল\",\n    \"মে\",\n    \"জুন\",\n    \"জুলাই\",\n    \"আগস্ট\",\n    \"সেপ্ট\",\n    \"অক্টো\",\n    \"নভে\",\n    \"ডিসে\",\n  ],\n\n  wide: [\n    \"জানুয়ারি\",\n    \"ফেব্রুয়ারি\",\n    \"মার্চ\",\n    \"এপ্রিল\",\n    \"মে\",\n    \"জুন\",\n    \"জুলাই\",\n    \"আগস্ট\",\n    \"সেপ্টেম্বর\",\n    \"অক্টোবর\",\n    \"নভেম্বর\",\n    \"ডিসেম্বর\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"র\", \"সো\", \"ম\", \"বু\", \"বৃ\", \"শু\", \"শ\"],\n  short: [\"রবি\", \"সোম\", \"মঙ্গল\", \"বুধ\", \"বৃহ\", \"শুক্র\", \"শনি\"],\n  abbreviated: [\"রবি\", \"সোম\", \"মঙ্গল\", \"বুধ\", \"বৃহ\", \"শুক্র\", \"শনি\"],\n  wide: [\n    \"রবিবার\",\n    \"সোমবার\",\n    \"মঙ্গলবার\",\n    \"বুধবার\",\n    \"বৃহস্পতিবার \",\n    \"শুক্রবার\",\n    \"শনিবার\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"পূ\",\n    pm: \"অপ\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n  abbreviated: {\n    am: \"পূর্বাহ্ন\",\n    pm: \"অপরাহ্ন\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n  wide: {\n    am: \"পূর্বাহ্ন\",\n    pm: \"অপরাহ্ন\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"পূ\",\n    pm: \"অপ\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n  abbreviated: {\n    am: \"পূর্বাহ্ন\",\n    pm: \"অপরাহ্ন\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n  wide: {\n    am: \"পূর্বাহ্ন\",\n    pm: \"অপরাহ্ন\",\n    midnight: \"মধ্যরাত\",\n    noon: \"মধ্যাহ্ন\",\n    morning: \"সকাল\",\n    afternoon: \"বিকাল\",\n    evening: \"সন্ধ্যা\",\n    night: \"রাত\",\n  },\n};\n\nfunction dateOrdinalNumber(number, localeNumber) {\n  if (number > 18 && number <= 31) {\n    return localeNumber + \"শে\";\n  } else {\n    switch (number) {\n      case 1:\n        return localeNumber + \"লা\";\n      case 2:\n      case 3:\n        return localeNumber + \"রা\";\n      case 4:\n        return localeNumber + \"ঠা\";\n      default:\n        return localeNumber + \"ই\";\n    }\n  }\n}\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const localeNumber = numberToLocale(number);\n  const unit = options?.unit;\n\n  if (unit === \"date\") {\n    return dateOrdinalNumber(number, localeNumber);\n  }\n  if (number > 10 || number === 0) return localeNumber + \"তম\";\n\n  const rem10 = number % 10;\n  switch (rem10) {\n    case 2:\n    case 3:\n      return localeNumber + \"য়\";\n    case 4:\n      return localeNumber + \"র্থ\";\n    case 6:\n      return localeNumber + \"ষ্ঠ\";\n    default:\n      return localeNumber + \"ম\";\n  }\n};\n\n// function localeToNumber(locale: string): number {\n//   const enNumber = locale.toString().replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n//     return numberValues.number[match as keyof typeof numberValues.number]\n//   })\n//   return Number(enNumber)\n// }\n\nexport function numberToLocale(enNumber) {\n  return enNumber.toString().replace(/\\d/g, function (match) {\n    return numberValues.locale[match];\n  });\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","import { numberToLocale } from \"./localize.js\";\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"প্রায় ১ সেকেন্ড\",\n    other: \"প্রায় {{count}} সেকেন্ড\",\n  },\n\n  xSeconds: {\n    one: \"১ সেকেন্ড\",\n    other: \"{{count}} সেকেন্ড\",\n  },\n\n  halfAMinute: \"আধ মিনিট\",\n\n  lessThanXMinutes: {\n    one: \"প্রায় ১ মিনিট\",\n    other: \"প্রায় {{count}} মিনিট\",\n  },\n\n  xMinutes: {\n    one: \"১ মিনিট\",\n    other: \"{{count}} মিনিট\",\n  },\n\n  aboutXHours: {\n    one: \"প্রায় ১ ঘন্টা\",\n    other: \"প্রায় {{count}} ঘন্টা\",\n  },\n\n  xHours: {\n    one: \"১ ঘন্টা\",\n    other: \"{{count}} ঘন্টা\",\n  },\n\n  xDays: {\n    one: \"১ দিন\",\n    other: \"{{count}} দিন\",\n  },\n\n  aboutXWeeks: {\n    one: \"প্রায় ১ সপ্তাহ\",\n    other: \"প্রায় {{count}} সপ্তাহ\",\n  },\n\n  xWeeks: {\n    one: \"১ সপ্তাহ\",\n    other: \"{{count}} সপ্তাহ\",\n  },\n\n  aboutXMonths: {\n    one: \"প্রায় ১ মাস\",\n    other: \"প্রায় {{count}} মাস\",\n  },\n\n  xMonths: {\n    one: \"১ মাস\",\n    other: \"{{count}} মাস\",\n  },\n\n  aboutXYears: {\n    one: \"প্রায় ১ বছর\",\n    other: \"প্রায় {{count}} বছর\",\n  },\n\n  xYears: {\n    one: \"১ বছর\",\n    other: \"{{count}} বছর\",\n  },\n\n  overXYears: {\n    one: \"১ বছরের বেশি\",\n    other: \"{{count}} বছরের বেশি\",\n  },\n\n  almostXYears: {\n    one: \"প্রায় ১ বছর\",\n    other: \"প্রায় {{count}} বছর\",\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}}\", numberToLocale(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" এর মধ্যে\";\n    } else {\n      return result + \" আগে\";\n    }\n  }\n\n  return result;\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}} {{time}} 'সময়'\",\n  long: \"{{date}} {{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: \"'গত' eeee 'সময়' p\",\n  yesterday: \"'গতকাল' 'সময়' p\",\n  today: \"'আজ' 'সময়' p\",\n  tomorrow: \"'আগামীকাল' 'সময়' p\",\n  nextWeek: \"eeee 'সময়' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(ম|য়|র্থ|ষ্ঠ|শে|ই|তম)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(খ্রিঃপূঃ|খ্রিঃ)/i,\n  abbreviated: /^(খ্রিঃপূর্ব|খ্রিঃ)/i,\n  wide: /^(খ্রিস্টপূর্ব|খ্রিস্টাব্দ)/i,\n};\nconst parseEraPatterns = {\n  narrow: [/^খ্রিঃপূঃ/i, /^খ্রিঃ/i],\n  abbreviated: [/^খ্রিঃপূর্ব/i, /^খ্রিঃ/i],\n  wide: [/^খ্রিস্টপূর্ব/i, /^খ্রিস্টাব্দ/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[১২৩৪]/i,\n  abbreviated: /^[১২৩৪]ত্রৈ/i,\n  wide: /^[১২৩৪](ম|য়|র্থ)? ত্রৈমাসিক/i,\n};\nconst parseQuarterPatterns = {\n  any: [/১/i, /২/i, /৩/i, /৪/i],\n};\n\nconst matchMonthPatterns = {\n  narrow:\n    /^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,\n  abbreviated:\n    /^(জানু|ফেব্রু|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্ট|অক্টো|নভে|ডিসে)/i,\n  wide: /^(জানুয়ারি|ফেব্রুয়ারি|মার্চ|এপ্রিল|মে|জুন|জুলাই|আগস্ট|সেপ্টেম্বর|অক্টোবর|নভেম্বর|ডিসেম্বর)/i,\n};\nconst parseMonthPatterns = {\n  any: [\n    /^জানু/i,\n    /^ফেব্রু/i,\n    /^মার্চ/i,\n    /^এপ্রিল/i,\n    /^মে/i,\n    /^জুন/i,\n    /^জুলাই/i,\n    /^আগস্ট/i,\n    /^সেপ্ট/i,\n    /^অক্টো/i,\n    /^নভে/i,\n    /^ডিসে/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(র|সো|ম|বু|বৃ|শু|শ)+/i,\n  short: /^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,\n  abbreviated: /^(রবি|সোম|মঙ্গল|বুধ|বৃহ|শুক্র|শনি)+/i,\n  wide: /^(রবিবার|সোমবার|মঙ্গলবার|বুধবার|বৃহস্পতিবার |শুক্রবার|শনিবার)+/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^র/i, /^সো/i, /^ম/i, /^বু/i, /^বৃ/i, /^শু/i, /^শ/i],\n  short: [/^রবি/i, /^সোম/i, /^মঙ্গল/i, /^বুধ/i, /^বৃহ/i, /^শুক্র/i, /^শনি/i],\n\n  abbreviated: [\n    /^রবি/i,\n    /^সোম/i,\n    /^মঙ্গল/i,\n    /^বুধ/i,\n    /^বৃহ/i,\n    /^শুক্র/i,\n    /^শনি/i,\n  ],\n\n  wide: [\n    /^রবিবার/i,\n    /^সোমবার/i,\n    /^মঙ্গলবার/i,\n    /^বুধবার/i,\n    /^বৃহস্পতিবার /i,\n    /^শুক্রবার/i,\n    /^শনিবার/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(পূ|অপ|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,\n  abbreviated: /^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,\n  wide: /^(পূর্বাহ্ন|অপরাহ্ন|মধ্যরাত|মধ্যাহ্ন|সকাল|বিকাল|সন্ধ্যা|রাত)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^পূ/i,\n    pm: /^অপ/i,\n    midnight: /^মধ্যরাত/i,\n    noon: /^মধ্যাহ্ন/i,\n    morning: /সকাল/i,\n    afternoon: /বিকাল/i,\n    evening: /সন্ধ্যা/i,\n    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: \"wide\",\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: \"wide\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./bn/_lib/formatDistance.js\";\nimport { formatLong } from \"./bn/_lib/formatLong.js\";\nimport { formatRelative } from \"./bn/_lib/formatRelative.js\";\nimport { localize } from \"./bn/_lib/localize.js\";\nimport { match } from \"./bn/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Bengali locale.\n * @language Bengali\n * @iso-639-2 ben\n * @author Touhidur Rahman [@touhidrahman](https://github.com/touhidrahman)\n * @author Farhad Yasir [@nutboltu](https://github.com/nutboltu)\n */\nexport const bn = {\n  code: \"bn\",\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 bn;\n","/**\n * Davant de les xifres que es diuen amb vocal inicial, 1 i 11, s'apostrofen els articles el i la i la preposició de igual que si estiguessin escrits amb lletres.\n *    l'1 de juliol ('l'u')\n *    l'11 de novembre ('l'onze')\n *    l'11a clàusula del contracte ('l'onzena')\n *    la contractació d'11 jugadors ('d'onze')\n *    l'aval d'11.000 socis ('d'onze mil')\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=apostrofaci%25F3+davant+xifres&action=Principal&method=detall_completa&numPagina=1&idHit=11236&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=11236&titol=apostrofaci%F3%20davant%20de%20xifres%20%2F%20apostrofaci%F3%20davant%20de%201%20i%2011&numeroResultat=1&clickLink=detall&tipusCerca=cerca.normes\n */\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"menys d'un segon\",\n    eleven: \"menys d'onze segons\",\n    other: \"menys de {{count}} segons\",\n  },\n\n  xSeconds: {\n    one: \"1 segon\",\n    other: \"{{count}} segons\",\n  },\n\n  halfAMinute: \"mig minut\",\n\n  lessThanXMinutes: {\n    one: \"menys d'un minut\",\n    eleven: \"menys d'onze minuts\",\n    other: \"menys de {{count}} minuts\",\n  },\n\n  xMinutes: {\n    one: \"1 minut\",\n    other: \"{{count}} minuts\",\n  },\n\n  aboutXHours: {\n    one: \"aproximadament una hora\",\n    other: \"aproximadament {{count}} hores\",\n  },\n\n  xHours: {\n    one: \"1 hora\",\n    other: \"{{count}} hores\",\n  },\n\n  xDays: {\n    one: \"1 dia\",\n    other: \"{{count}} dies\",\n  },\n\n  aboutXWeeks: {\n    one: \"aproximadament una setmana\",\n    other: \"aproximadament {{count}} setmanes\",\n  },\n\n  xWeeks: {\n    one: \"1 setmana\",\n    other: \"{{count}} setmanes\",\n  },\n\n  aboutXMonths: {\n    one: \"aproximadament un mes\",\n    other: \"aproximadament {{count}} mesos\",\n  },\n\n  xMonths: {\n    one: \"1 mes\",\n    other: \"{{count}} mesos\",\n  },\n\n  aboutXYears: {\n    one: \"aproximadament un any\",\n    other: \"aproximadament {{count}} anys\",\n  },\n\n  xYears: {\n    one: \"1 any\",\n    other: \"{{count}} anys\",\n  },\n\n  overXYears: {\n    one: \"més d'un any\",\n    eleven: \"més d'onze anys\",\n    other: \"més de {{count}} anys\",\n  },\n\n  almostXYears: {\n    one: \"gairebé un any\",\n    other: \"gairebé {{count}} anys\",\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 if (count === 11 && tokenValue.eleven) {\n    result = tokenValue.eleven;\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"en \" + result;\n    } else {\n      return \"fa \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d 'de' MMMM y\",\n  long: \"d 'de' MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'a les' {{time}}\",\n  long: \"{{date}} 'a les' {{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: \"'el' eeee 'passat a la' LT\",\n  yesterday: \"'ahir a la' p\",\n  today: \"'avui a la' p\",\n  tomorrow: \"'demà a la' p\",\n  nextWeek: \"eeee 'a la' p\",\n  other: \"P\",\n};\n\nconst formatRelativeLocalePlural = {\n  lastWeek: \"'el' eeee 'passat a les' p\",\n  yesterday: \"'ahir a les' p\",\n  today: \"'avui a les' p\",\n  tomorrow: \"'demà a les' p\",\n  nextWeek: \"eeee 'a les' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  if (date.getHours() !== 1) {\n    return formatRelativeLocalePlural[token];\n  }\n  return formatRelativeLocale[token];\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n/**\n * General information\n * Reference: https://aplicacions.llengua.gencat.cat\n * Reference: https://www.uoc.edu/portal/ca/servei-linguistic/convencions/abreviacions/simbols/simbols-habituals.html\n */\n\n/**\n * Abans de Crist: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abans+de+crist&action=Principal&method=detall_completa&numPagina=1&idHit=6876&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=6876&titol=abans%20de%20Crist%20(abreviatura)%20/%20abans%20de%20Crist%20(sigla)&numeroResultat=1&clickLink=detall&tipusCerca=cerca.fitxes\n * Desprest de Crist: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=despr%E9s+de+crist&action=Principal&method=detall_completa&numPagina=1&idHit=6879&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=6879&titol=despr%E9s%20de%20Crist%20(sigla)%20/%20despr%E9s%20de%20Crist%20(abreviatura)&numeroResultat=1&clickLink=detall&tipusCerca=cerca.fitxes\n */\nconst eraValues = {\n  narrow: [\"aC\", \"dC\"],\n  abbreviated: [\"a. de C.\", \"d. de C.\"],\n  wide: [\"abans de Crist\", \"després de Crist\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1r trimestre\", \"2n trimestre\", \"3r trimestre\", \"4t trimestre\"],\n};\n\n/**\n * Dins d'un text convé fer servir la forma sencera dels mesos, ja que sempre és més clar el mot sencer que l'abreviatura, encara que aquesta sigui força coneguda.\n * Cal reservar, doncs, les abreviatures per a les llistes o classificacions, els gràfics, les taules o quadres estadístics, els textos publicitaris, etc.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abreviacions+mesos&action=Principal&method=detall_completa&numPagina=1&idHit=8402&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=8402&titol=abreviatures%20dels%20mesos%20de%20l%27any&numeroResultat=5&clickLink=detall&tipusCerca=cerca.fitxes\n */\nconst monthValues = {\n  narrow: [\n    \"GN\",\n    \"FB\",\n    \"MÇ\",\n    \"AB\",\n    \"MG\",\n    \"JN\",\n    \"JL\",\n    \"AG\",\n    \"ST\",\n    \"OC\",\n    \"NV\",\n    \"DS\",\n  ],\n\n  /**\n   * Les abreviatures dels mesos de l'any es formen seguint una de les normes generals de formació d'abreviatures.\n   * S'escriu la primera síl·laba i les consonants de la síl·laba següent anteriors a la primera vocal.\n   * Els mesos de març, maig i juny no s'abreugen perquè són paraules d'una sola síl·laba.\n   */\n  abbreviated: [\n    \"gen.\",\n    \"febr.\",\n    \"març\",\n    \"abr.\",\n    \"maig\",\n    \"juny\",\n    \"jul.\",\n    \"ag.\",\n    \"set.\",\n    \"oct.\",\n    \"nov.\",\n    \"des.\",\n  ],\n\n  wide: [\n    \"gener\",\n    \"febrer\",\n    \"març\",\n    \"abril\",\n    \"maig\",\n    \"juny\",\n    \"juliol\",\n    \"agost\",\n    \"setembre\",\n    \"octubre\",\n    \"novembre\",\n    \"desembre\",\n  ],\n};\n\n/**\n * Les abreviatures dels dies de la setmana comencen totes amb la lletra d.\n * Tot seguit porten la consonant següent a la i, excepte en el cas de dimarts, dimecres i diumenge, en què aquesta consonant és la m i, per tant, hi podria haver confusió.\n * Per evitar-ho, s'ha substituït la m per una t (en el cas de dimarts), una c (en el cas de dimecres) i una g (en el cas de diumenge), respectivament.\n *\n * Seguint la norma general d'ús de les abreviatures, les dels dies de la setmana sempre porten punt final.\n * Igualment, van amb la primera lletra en majúscula quan la paraula sencera també hi aniria.\n * En canvi, van amb la primera lletra en minúscula quan la inicial de la paraula sencera també hi aniria.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?input_cercar=abreviatures+dies&action=Principal&method=detall_completa&numPagina=1&idHit=8387&database=FITXES_PUB&tipusFont=Fitxes%20de%20l%27Optimot&idFont=8387&titol=abreviatures%20dels%20dies%20de%20la%20setmana&numeroResultat=1&clickLink=detall&tipusCerca=cerca.tot\n */\nconst dayValues = {\n  narrow: [\"dg.\", \"dl.\", \"dt.\", \"dm.\", \"dj.\", \"dv.\", \"ds.\"],\n  short: [\"dg.\", \"dl.\", \"dt.\", \"dm.\", \"dj.\", \"dv.\", \"ds.\"],\n  abbreviated: [\"dg.\", \"dl.\", \"dt.\", \"dm.\", \"dj.\", \"dv.\", \"ds.\"],\n  wide: [\n    \"diumenge\",\n    \"dilluns\",\n    \"dimarts\",\n    \"dimecres\",\n    \"dijous\",\n    \"divendres\",\n    \"dissabte\",\n  ],\n};\n\n/**\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/index.html?action=Principal&method=detall&input_cercar=parts+del+dia&numPagina=1&database=FITXES_PUB&idFont=12801&idHit=12801&tipusFont=Fitxes+de+l%27Optimot&numeroResultat=1&databases_avansada=&categories_avansada=&clickLink=detall&titol=Nom+de+les+parts+del+dia&tematica=&tipusCerca=cerca.fitxes\n */\nconst dayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"mitjanit\",\n    noon: \"migdia\",\n    morning: \"matí\",\n    afternoon: \"tarda\",\n    evening: \"vespre\",\n    night: \"nit\",\n  },\n  abbreviated: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"mitjanit\",\n    noon: \"migdia\",\n    morning: \"matí\",\n    afternoon: \"tarda\",\n    evening: \"vespre\",\n    night: \"nit\",\n  },\n  wide: {\n    am: \"ante meridiem\",\n    pm: \"post meridiem\",\n    midnight: \"mitjanit\",\n    noon: \"migdia\",\n    morning: \"matí\",\n    afternoon: \"tarda\",\n    evening: \"vespre\",\n    night: \"nit\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"de la mitjanit\",\n    noon: \"del migdia\",\n    morning: \"del matí\",\n    afternoon: \"de la tarda\",\n    evening: \"del vespre\",\n    night: \"de la nit\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"de la mitjanit\",\n    noon: \"del migdia\",\n    morning: \"del matí\",\n    afternoon: \"de la tarda\",\n    evening: \"del vespre\",\n    night: \"de la nit\",\n  },\n  wide: {\n    am: \"ante meridiem\",\n    pm: \"post meridiem\",\n    midnight: \"de la mitjanit\",\n    noon: \"del migdia\",\n    morning: \"del matí\",\n    afternoon: \"de la tarda\",\n    evening: \"del vespre\",\n    night: \"de la nit\",\n  },\n};\n\n/**\n * Quan van en singular, els nombres ordinals es representen, en forma d’abreviatura, amb la xifra seguida de l’última lletra del mot desplegat.\n * És optatiu posar punt després de la lletra.\n *\n * Reference: https://aplicacions.llengua.gencat.cat/llc/AppJava/pdf/abrevia.pdf#page=18\n */\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + \"r\";\n      case 2:\n        return number + \"n\";\n      case 3:\n        return number + \"r\";\n      case 4:\n        return number + \"t\";\n    }\n  }\n  return number + \"è\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(è|r|n|r|t)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(aC|dC)/i,\n  abbreviated: /^(a. de C.|d. de C.)/i,\n  wide: /^(abans de Crist|despr[eé]s de Crist)/i,\n};\nconst parseEraPatterns = {\n  narrow: [/^aC/i, /^dC/i],\n  abbreviated: [/^(a. de C.)/i, /^(d. de C.)/i],\n  wide: [/^(abans de Crist)/i, /^(despr[eé]s de Crist)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](è|r|n|r|t)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(GN|FB|MÇ|AB|MG|JN|JL|AG|ST|OC|NV|DS)/i,\n  abbreviated:\n    /^(gen.|febr.|març|abr.|maig|juny|jul.|ag.|set.|oct.|nov.|des.)/i,\n  wide: /^(gener|febrer|març|abril|maig|juny|juliol|agost|setembre|octubre|novembre|desembre)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^GN/i,\n    /^FB/i,\n    /^MÇ/i,\n    /^AB/i,\n    /^MG/i,\n    /^JN/i,\n    /^JL/i,\n    /^AG/i,\n    /^ST/i,\n    /^OC/i,\n    /^NV/i,\n    /^DS/i,\n  ],\n\n  abbreviated: [\n    /^gen./i,\n    /^febr./i,\n    /^març/i,\n    /^abr./i,\n    /^maig/i,\n    /^juny/i,\n    /^jul./i,\n    /^ag./i,\n    /^set./i,\n    /^oct./i,\n    /^nov./i,\n    /^des./i,\n  ],\n\n  wide: [\n    /^gener/i,\n    /^febrer/i,\n    /^març/i,\n    /^abril/i,\n    /^maig/i,\n    /^juny/i,\n    /^juliol/i,\n    /^agost/i,\n    /^setembre/i,\n    /^octubre/i,\n    /^novembre/i,\n    /^desembre/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n  short: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n  abbreviated: /^(dg\\.|dl\\.|dt\\.|dm\\.|dj\\.|dv\\.|ds\\.)/i,\n  wide: /^(diumenge|dilluns|dimarts|dimecres|dijous|divendres|dissabte)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^dg./i, /^dl./i, /^dt./i, /^dm./i, /^dj./i, /^dv./i, /^ds./i],\n\n  abbreviated: [/^dg./i, /^dl./i, /^dt./i, /^dm./i, /^dj./i, /^dv./i, /^ds./i],\n\n  wide: [\n    /^diumenge/i,\n    /^dilluns/i,\n    /^dimarts/i,\n    /^dimecres/i,\n    /^dijous/i,\n    /^divendres/i,\n    /^disssabte/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|md|(del|de la) (matí|tarda|vespre|nit))/i,\n  abbreviated:\n    /^([ap]\\.?\\s?m\\.?|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i,\n  wide: /^(ante meridiem|post meridiem|mitjanit|migdia|(del|de la) (matí|tarda|vespre|nit))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mitjanit/i,\n    noon: /^migdia/i,\n    morning: /matí/i,\n    afternoon: /tarda/i,\n    evening: /vespre/i,\n    night: /nit/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: \"wide\",\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: \"wide\",\n  }),\n\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: \"wide\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./ca/_lib/formatDistance.js\";\nimport { formatLong } from \"./ca/_lib/formatLong.js\";\nimport { formatRelative } from \"./ca/_lib/formatRelative.js\";\nimport { localize } from \"./ca/_lib/localize.js\";\nimport { match } from \"./ca/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Catalan locale.\n * @language Catalan\n * @iso-639-2 cat\n * @author Guillermo Grau [@guigrpa](https://github.com/guigrpa)\n * @author Alex Vizcaino [@avizcaino](https://github.com/avizcaino)\n */\nexport const ca = {\n  code: \"ca\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ca;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      regular: \"méně než 1 sekunda\",\n      past: \"před méně než 1 sekundou\",\n      future: \"za méně než 1 sekundu\",\n    },\n    few: {\n      regular: \"méně než {{count}} sekundy\",\n      past: \"před méně než {{count}} sekundami\",\n      future: \"za méně než {{count}} sekundy\",\n    },\n    many: {\n      regular: \"méně než {{count}} sekund\",\n      past: \"před méně než {{count}} sekundami\",\n      future: \"za méně než {{count}} sekund\",\n    },\n  },\n\n  xSeconds: {\n    one: {\n      regular: \"1 sekunda\",\n      past: \"před 1 sekundou\",\n      future: \"za 1 sekundu\",\n    },\n    few: {\n      regular: \"{{count}} sekundy\",\n      past: \"před {{count}} sekundami\",\n      future: \"za {{count}} sekundy\",\n    },\n    many: {\n      regular: \"{{count}} sekund\",\n      past: \"před {{count}} sekundami\",\n      future: \"za {{count}} sekund\",\n    },\n  },\n\n  halfAMinute: {\n    type: \"other\",\n    other: {\n      regular: \"půl minuty\",\n      past: \"před půl minutou\",\n      future: \"za půl minuty\",\n    },\n  },\n\n  lessThanXMinutes: {\n    one: {\n      regular: \"méně než 1 minuta\",\n      past: \"před méně než 1 minutou\",\n      future: \"za méně než 1 minutu\",\n    },\n    few: {\n      regular: \"méně než {{count}} minuty\",\n      past: \"před méně než {{count}} minutami\",\n      future: \"za méně než {{count}} minuty\",\n    },\n    many: {\n      regular: \"méně než {{count}} minut\",\n      past: \"před méně než {{count}} minutami\",\n      future: \"za méně než {{count}} minut\",\n    },\n  },\n\n  xMinutes: {\n    one: {\n      regular: \"1 minuta\",\n      past: \"před 1 minutou\",\n      future: \"za 1 minutu\",\n    },\n    few: {\n      regular: \"{{count}} minuty\",\n      past: \"před {{count}} minutami\",\n      future: \"za {{count}} minuty\",\n    },\n    many: {\n      regular: \"{{count}} minut\",\n      past: \"před {{count}} minutami\",\n      future: \"za {{count}} minut\",\n    },\n  },\n\n  aboutXHours: {\n    one: {\n      regular: \"přibližně 1 hodina\",\n      past: \"přibližně před 1 hodinou\",\n      future: \"přibližně za 1 hodinu\",\n    },\n    few: {\n      regular: \"přibližně {{count}} hodiny\",\n      past: \"přibližně před {{count}} hodinami\",\n      future: \"přibližně za {{count}} hodiny\",\n    },\n    many: {\n      regular: \"přibližně {{count}} hodin\",\n      past: \"přibližně před {{count}} hodinami\",\n      future: \"přibližně za {{count}} hodin\",\n    },\n  },\n\n  xHours: {\n    one: {\n      regular: \"1 hodina\",\n      past: \"před 1 hodinou\",\n      future: \"za 1 hodinu\",\n    },\n    few: {\n      regular: \"{{count}} hodiny\",\n      past: \"před {{count}} hodinami\",\n      future: \"za {{count}} hodiny\",\n    },\n    many: {\n      regular: \"{{count}} hodin\",\n      past: \"před {{count}} hodinami\",\n      future: \"za {{count}} hodin\",\n    },\n  },\n\n  xDays: {\n    one: {\n      regular: \"1 den\",\n      past: \"před 1 dnem\",\n      future: \"za 1 den\",\n    },\n    few: {\n      regular: \"{{count}} dny\",\n      past: \"před {{count}} dny\",\n      future: \"za {{count}} dny\",\n    },\n    many: {\n      regular: \"{{count}} dní\",\n      past: \"před {{count}} dny\",\n      future: \"za {{count}} dní\",\n    },\n  },\n\n  aboutXWeeks: {\n    one: {\n      regular: \"přibližně 1 týden\",\n      past: \"přibližně před 1 týdnem\",\n      future: \"přibližně za 1 týden\",\n    },\n\n    few: {\n      regular: \"přibližně {{count}} týdny\",\n      past: \"přibližně před {{count}} týdny\",\n      future: \"přibližně za {{count}} týdny\",\n    },\n\n    many: {\n      regular: \"přibližně {{count}} týdnů\",\n      past: \"přibližně před {{count}} týdny\",\n      future: \"přibližně za {{count}} týdnů\",\n    },\n  },\n\n  xWeeks: {\n    one: {\n      regular: \"1 týden\",\n      past: \"před 1 týdnem\",\n      future: \"za 1 týden\",\n    },\n\n    few: {\n      regular: \"{{count}} týdny\",\n      past: \"před {{count}} týdny\",\n      future: \"za {{count}} týdny\",\n    },\n\n    many: {\n      regular: \"{{count}} týdnů\",\n      past: \"před {{count}} týdny\",\n      future: \"za {{count}} týdnů\",\n    },\n  },\n\n  aboutXMonths: {\n    one: {\n      regular: \"přibližně 1 měsíc\",\n      past: \"přibližně před 1 měsícem\",\n      future: \"přibližně za 1 měsíc\",\n    },\n\n    few: {\n      regular: \"přibližně {{count}} měsíce\",\n      past: \"přibližně před {{count}} měsíci\",\n      future: \"přibližně za {{count}} měsíce\",\n    },\n\n    many: {\n      regular: \"přibližně {{count}} měsíců\",\n      past: \"přibližně před {{count}} měsíci\",\n      future: \"přibližně za {{count}} měsíců\",\n    },\n  },\n\n  xMonths: {\n    one: {\n      regular: \"1 měsíc\",\n      past: \"před 1 měsícem\",\n      future: \"za 1 měsíc\",\n    },\n\n    few: {\n      regular: \"{{count}} měsíce\",\n      past: \"před {{count}} měsíci\",\n      future: \"za {{count}} měsíce\",\n    },\n\n    many: {\n      regular: \"{{count}} měsíců\",\n      past: \"před {{count}} měsíci\",\n      future: \"za {{count}} měsíců\",\n    },\n  },\n\n  aboutXYears: {\n    one: {\n      regular: \"přibližně 1 rok\",\n      past: \"přibližně před 1 rokem\",\n      future: \"přibližně za 1 rok\",\n    },\n    few: {\n      regular: \"přibližně {{count}} roky\",\n      past: \"přibližně před {{count}} roky\",\n      future: \"přibližně za {{count}} roky\",\n    },\n    many: {\n      regular: \"přibližně {{count}} roků\",\n      past: \"přibližně před {{count}} roky\",\n      future: \"přibližně za {{count}} roků\",\n    },\n  },\n\n  xYears: {\n    one: {\n      regular: \"1 rok\",\n      past: \"před 1 rokem\",\n      future: \"za 1 rok\",\n    },\n    few: {\n      regular: \"{{count}} roky\",\n      past: \"před {{count}} roky\",\n      future: \"za {{count}} roky\",\n    },\n    many: {\n      regular: \"{{count}} roků\",\n      past: \"před {{count}} roky\",\n      future: \"za {{count}} roků\",\n    },\n  },\n\n  overXYears: {\n    one: {\n      regular: \"více než 1 rok\",\n      past: \"před více než 1 rokem\",\n      future: \"za více než 1 rok\",\n    },\n    few: {\n      regular: \"více než {{count}} roky\",\n      past: \"před více než {{count}} roky\",\n      future: \"za více než {{count}} roky\",\n    },\n    many: {\n      regular: \"více než {{count}} roků\",\n      past: \"před více než {{count}} roky\",\n      future: \"za více než {{count}} roků\",\n    },\n  },\n\n  almostXYears: {\n    one: {\n      regular: \"skoro 1 rok\",\n      past: \"skoro před 1 rokem\",\n      future: \"skoro za 1 rok\",\n    },\n    few: {\n      regular: \"skoro {{count}} roky\",\n      past: \"skoro před {{count}} roky\",\n      future: \"skoro za {{count}} roky\",\n    },\n    many: {\n      regular: \"skoro {{count}} roků\",\n      past: \"skoro před {{count}} roky\",\n      future: \"skoro za {{count}} roků\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  let pluralResult;\n\n  const tokenValue = formatDistanceLocale[token];\n\n  // cs pluralization\n  if (tokenValue.type === \"other\") {\n    pluralResult = tokenValue.other;\n  } else if (count === 1) {\n    pluralResult = tokenValue.one;\n  } else if (count > 1 && count < 5) {\n    pluralResult = tokenValue.few;\n  } else {\n    pluralResult = tokenValue.many;\n  }\n\n  // times\n  const suffixExist = options?.addSuffix === true;\n  const comparison = options?.comparison;\n\n  let timeResult;\n  if (suffixExist && comparison === -1) {\n    timeResult = pluralResult.past;\n  } else if (suffixExist && comparison === 1) {\n    timeResult = pluralResult.future;\n  } else {\n    timeResult = pluralResult.regular;\n  }\n\n  return timeResult.replace(\"{{count}}\", String(count));\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d. MMMM yyyy\",\n  long: \"d. MMMM yyyy\",\n  medium: \"d. M. yyyy\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'v' {{time}}\",\n  long: \"{{date}} 'v' {{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 accusativeWeekdays = [\n  \"neděli\",\n  \"pondělí\",\n  \"úterý\",\n  \"středu\",\n  \"čtvrtek\",\n  \"pátek\",\n  \"sobotu\",\n];\n\nconst formatRelativeLocale = {\n  lastWeek: \"'poslední' eeee 've' p\",\n  yesterday: \"'včera v' p\",\n  today: \"'dnes v' p\",\n  tomorrow: \"'zítra v' p\",\n  nextWeek: (date) => {\n    const day = date.getDay();\n    return \"'v \" + accusativeWeekdays[day] + \" o' p\";\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"př. n. l.\", \"n. l.\"],\n  abbreviated: [\"př. n. l.\", \"n. l.\"],\n  wide: [\"před naším letopočtem\", \"našeho letopočtu\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1. čtvrtletí\", \"2. čtvrtletí\", \"3. čtvrtletí\", \"4. čtvrtletí\"],\n\n  wide: [\"1. čtvrtletí\", \"2. čtvrtletí\", \"3. čtvrtletí\", \"4. čtvrtletí\"],\n};\n\nconst monthValues = {\n  narrow: [\"L\", \"Ú\", \"B\", \"D\", \"K\", \"Č\", \"Č\", \"S\", \"Z\", \"Ř\", \"L\", \"P\"],\n  abbreviated: [\n    \"led\",\n    \"úno\",\n    \"bře\",\n    \"dub\",\n    \"kvě\",\n    \"čvn\",\n    \"čvc\",\n    \"srp\",\n    \"zář\",\n    \"říj\",\n    \"lis\",\n    \"pro\",\n  ],\n\n  wide: [\n    \"leden\",\n    \"únor\",\n    \"březen\",\n    \"duben\",\n    \"květen\",\n    \"červen\",\n    \"červenec\",\n    \"srpen\",\n    \"září\",\n    \"říjen\",\n    \"listopad\",\n    \"prosinec\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"L\", \"Ú\", \"B\", \"D\", \"K\", \"Č\", \"Č\", \"S\", \"Z\", \"Ř\", \"L\", \"P\"],\n  abbreviated: [\n    \"led\",\n    \"úno\",\n    \"bře\",\n    \"dub\",\n    \"kvě\",\n    \"čvn\",\n    \"čvc\",\n    \"srp\",\n    \"zář\",\n    \"říj\",\n    \"lis\",\n    \"pro\",\n  ],\n\n  wide: [\n    \"ledna\",\n    \"února\",\n    \"března\",\n    \"dubna\",\n    \"května\",\n    \"června\",\n    \"července\",\n    \"srpna\",\n    \"září\",\n    \"října\",\n    \"listopadu\",\n    \"prosince\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"ne\", \"po\", \"út\", \"st\", \"čt\", \"pá\", \"so\"],\n  short: [\"ne\", \"po\", \"út\", \"st\", \"čt\", \"pá\", \"so\"],\n  abbreviated: [\"ned\", \"pon\", \"úte\", \"stř\", \"čtv\", \"pát\", \"sob\"],\n  wide: [\"neděle\", \"pondělí\", \"úterý\", \"středa\", \"čtvrtek\", \"pátek\", \"sobota\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"dop.\",\n    pm: \"odp.\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n  abbreviated: {\n    am: \"dop.\",\n    pm: \"odp.\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n  wide: {\n    am: \"dopoledne\",\n    pm: \"odpoledne\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"dop.\",\n    pm: \"odp.\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n  abbreviated: {\n    am: \"dop.\",\n    pm: \"odp.\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n  wide: {\n    am: \"dopoledne\",\n    pm: \"odpoledne\",\n    midnight: \"půlnoc\",\n    noon: \"poledne\",\n    morning: \"ráno\",\n    afternoon: \"odpoledne\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(p[řr](\\.|ed) Kr\\.|p[řr](\\.|ed) n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n  abbreviated: /^(p[řr](\\.|ed) Kr\\.|p[řr](\\.|ed) n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n  wide: /^(p[řr](\\.|ed) Kristem|p[řr](\\.|ed) na[šs][íi]m letopo[čc]tem|po Kristu|na[šs]eho letopo[čc]tu)/i,\n};\n\nconst parseEraPatterns = {\n  any: [/^p[řr]/i, /^(po|n)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]\\. [čc]tvrtlet[íi]/i,\n  wide: /^[1234]\\. [čc]tvrtlet[íi]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[lúubdkčcszřrlp]/i,\n  abbreviated:\n    /^(led|[úu]no|b[řr]e|dub|kv[ěe]|[čc]vn|[čc]vc|srp|z[áa][řr]|[řr][íi]j|lis|pro)/i,\n  wide: /^(leden|ledna|[úu]nora?|b[řr]ezen|b[řr]ezna|duben|dubna|kv[ěe]ten|kv[ěe]tna|[čc]erven(ec|ce)?|[čc]ervna|srpen|srpna|z[áa][řr][íi]|[řr][íi]jen|[řr][íi]jna|listopad(a|u)?|prosinec|prosince)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^l/i,\n    /^[úu]/i,\n    /^b/i,\n    /^d/i,\n    /^k/i,\n    /^[čc]/i,\n    /^[čc]/i,\n    /^s/i,\n    /^z/i,\n    /^[řr]/i,\n    /^l/i,\n    /^p/i,\n  ],\n\n  any: [\n    /^led/i,\n    /^[úu]n/i,\n    /^b[řr]e/i,\n    /^dub/i,\n    /^kv[ěe]/i,\n    /^[čc]vn|[čc]erven(?!\\w)|[čc]ervna/i,\n    /^[čc]vc|[čc]erven(ec|ce)/i,\n    /^srp/i,\n    /^z[áa][řr]/i,\n    /^[řr][íi]j/i,\n    /^lis/i,\n    /^pro/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[npuúsčps]/i,\n  short: /^(ne|po|[úu]t|st|[čc]t|p[áa]|so)/i,\n  abbreviated: /^(ned|pon|[úu]te|st[rř]|[čc]tv|p[áa]t|sob)/i,\n  wide: /^(ned[ěe]le|pond[ěe]l[íi]|[úu]ter[ýy]|st[řr]eda|[čc]tvrtek|p[áa]tek|sobota)/i,\n};\n\nconst parseDayPatterns = {\n  narrow: [/^n/i, /^p/i, /^[úu]/i, /^s/i, /^[čc]/i, /^p/i, /^s/i],\n  any: [/^ne/i, /^po/i, /^[úu]t/i, /^st/i, /^[čc]t/i, /^p[áa]/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^dopoledne|dop\\.?|odpoledne|odp\\.?|p[ůu]lnoc|poledne|r[áa]no|odpoledne|ve[čc]er|(v )?noci?/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^dop/i,\n    pm: /^odp/i,\n    midnight: /^p[ůu]lnoc/i,\n    noon: /^poledne/i,\n    morning: /r[áa]no/i,\n    afternoon: /odpoledne/i,\n    evening: /ve[čc]er/i,\n    night: /noc/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 \"./cs/_lib/formatDistance.js\";\nimport { formatLong } from \"./cs/_lib/formatLong.js\";\nimport { formatRelative } from \"./cs/_lib/formatRelative.js\";\nimport { localize } from \"./cs/_lib/localize.js\";\nimport { match } from \"./cs/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Czech locale.\n * @language Czech\n * @iso-639-2 ces\n * @author David Rus [@davidrus](https://github.com/davidrus)\n * @author Pavel Hrách [@SilenY](https://github.com/SilenY)\n * @author Jozef Bíroš [@JozefBiros](https://github.com/JozefBiros)\n */\nexport const cs = {\n  code: \"cs\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default cs;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"mindre end ét sekund\",\n    other: \"mindre end {{count}} sekunder\",\n  },\n\n  xSeconds: {\n    one: \"1 sekund\",\n    other: \"{{count}} sekunder\",\n  },\n\n  halfAMinute: \"ét halvt minut\",\n\n  lessThanXMinutes: {\n    one: \"mindre end ét minut\",\n    other: \"mindre end {{count}} minutter\",\n  },\n\n  xMinutes: {\n    one: \"1 minut\",\n    other: \"{{count}} minutter\",\n  },\n\n  aboutXHours: {\n    one: \"cirka 1 time\",\n    other: \"cirka {{count}} timer\",\n  },\n\n  xHours: {\n    one: \"1 time\",\n    other: \"{{count}} timer\",\n  },\n\n  xDays: {\n    one: \"1 dag\",\n    other: \"{{count}} dage\",\n  },\n\n  aboutXWeeks: {\n    one: \"cirka 1 uge\",\n    other: \"cirka {{count}} uger\",\n  },\n\n  xWeeks: {\n    one: \"1 uge\",\n    other: \"{{count}} uger\",\n  },\n\n  aboutXMonths: {\n    one: \"cirka 1 måned\",\n    other: \"cirka {{count}} måneder\",\n  },\n\n  xMonths: {\n    one: \"1 måned\",\n    other: \"{{count}} måneder\",\n  },\n\n  aboutXYears: {\n    one: \"cirka 1 år\",\n    other: \"cirka {{count}} år\",\n  },\n\n  xYears: {\n    one: \"1 år\",\n    other: \"{{count}} år\",\n  },\n\n  overXYears: {\n    one: \"over 1 år\",\n    other: \"over {{count}} år\",\n  },\n\n  almostXYears: {\n    one: \"næsten 1 år\",\n    other: \"næsten {{count}} år\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"om \" + result;\n    } else {\n      return result + \" siden\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE 'den' d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kl'. {{time}}\",\n  long: \"{{date}} 'kl'. {{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: \"'sidste' eeee 'kl.' p\",\n  yesterday: \"'i går kl.' p\",\n  today: \"'i dag kl.' p\",\n  tomorrow: \"'i morgen kl.' p\",\n  nextWeek: \"'på' eeee 'kl.' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"fvt\", \"vt\"],\n  abbreviated: [\"f.v.t.\", \"v.t.\"],\n  wide: [\"før vesterlandsk tidsregning\", \"vesterlandsk tidsregning\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1. kvt.\", \"2. kvt.\", \"3. kvt.\", \"4. kvt.\"],\n  wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\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    \"maj\",\n    \"jun.\",\n    \"jul.\",\n    \"aug.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"januar\",\n    \"februar\",\n    \"marts\",\n    \"april\",\n    \"maj\",\n    \"juni\",\n    \"juli\",\n    \"august\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"december\",\n  ],\n};\n\n// Note that 'Days - abbreviated - Formatting' has periods at the end.\n// https://www.unicode.org/cldr/charts/32/summary/da.html#1760\n// This makes grammatical sense in danish, as most abbreviations have periods.\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n  short: [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"],\n  abbreviated: [\"søn.\", \"man.\", \"tir.\", \"ons.\", \"tor.\", \"fre.\", \"lør.\"],\n\n  wide: [\n    \"søndag\",\n    \"mandag\",\n    \"tirsdag\",\n    \"onsdag\",\n    \"torsdag\",\n    \"fredag\",\n    \"lørdag\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"morgen\",\n    afternoon: \"eftermiddag\",\n    evening: \"aften\",\n    night: \"nat\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"morgen\",\n    afternoon: \"eftermiddag\",\n    evening: \"aften\",\n    night: \"nat\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"morgen\",\n    afternoon: \"eftermiddag\",\n    evening: \"aften\",\n    night: \"nat\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"om morgenen\",\n    afternoon: \"om eftermiddagen\",\n    evening: \"om aftenen\",\n    night: \"om natten\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"om morgenen\",\n    afternoon: \"om eftermiddagen\",\n    evening: \"om aftenen\",\n    night: \"om natten\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnat\",\n    noon: \"middag\",\n    morning: \"om morgenen\",\n    afternoon: \"om eftermiddagen\",\n    evening: \"om aftenen\",\n    night: \"om natten\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(fKr|fvt|eKr|vt)/i,\n  abbreviated: /^(f\\.Kr\\.?|f\\.v\\.t\\.?|e\\.Kr\\.?|v\\.t\\.)/i,\n  wide: /^(f.Kr.|før vesterlandsk tidsregning|e.Kr.|vesterlandsk tidsregning)/i,\n};\nconst parseEraPatterns = {\n  any: [/^f/i, /^(v|e)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]. kvt\\./i,\n  wide: /^[1234]\\.? kvartal/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.|maj|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n  wide: /^(januar|februar|marts|april|maj|juni|juli|august|september|oktober|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    /^maj/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: /^[smtofl]/i,\n  short: /^(søn.|man.|tir.|ons.|tor.|fre.|lør.)/i,\n  abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n  wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^o/i, /^t/i, /^f/i, /^l/i],\n  any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnat|middag|(om) (morgenen|eftermiddagen|aftenen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /midnat/i,\n    noon: /middag/i,\n    morning: /morgen/i,\n    afternoon: /eftermiddag/i,\n    evening: /aften/i,\n    night: /nat/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 \"./da/_lib/formatDistance.js\";\nimport { formatLong } from \"./da/_lib/formatLong.js\";\nimport { formatRelative } from \"./da/_lib/formatRelative.js\";\nimport { localize } from \"./da/_lib/localize.js\";\nimport { match } from \"./da/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Danish locale.\n * @language Danish\n * @iso-639-2 dan\n * @author Mathias Wøbbe [@MathiasKandelborg](https://github.com/MathiasKandelborg)\n * @author Anders B. Hansen [@Andersbiha](https://github.com/Andersbiha)\n * @author [@kgram](https://github.com/kgram)\n * @author [@stefanbugge](https://github.com/stefanbugge)\n */\nexport const da = {\n  code: \"da\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default da;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    standalone: {\n      one: \"weniger als 1 Sekunde\",\n      other: \"weniger als {{count}} Sekunden\",\n    },\n    withPreposition: {\n      one: \"weniger als 1 Sekunde\",\n      other: \"weniger als {{count}} Sekunden\",\n    },\n  },\n\n  xSeconds: {\n    standalone: {\n      one: \"1 Sekunde\",\n      other: \"{{count}} Sekunden\",\n    },\n    withPreposition: {\n      one: \"1 Sekunde\",\n      other: \"{{count}} Sekunden\",\n    },\n  },\n\n  halfAMinute: {\n    standalone: \"eine halbe Minute\",\n    withPreposition: \"einer halben Minute\",\n  },\n\n  lessThanXMinutes: {\n    standalone: {\n      one: \"weniger als 1 Minute\",\n      other: \"weniger als {{count}} Minuten\",\n    },\n    withPreposition: {\n      one: \"weniger als 1 Minute\",\n      other: \"weniger als {{count}} Minuten\",\n    },\n  },\n\n  xMinutes: {\n    standalone: {\n      one: \"1 Minute\",\n      other: \"{{count}} Minuten\",\n    },\n    withPreposition: {\n      one: \"1 Minute\",\n      other: \"{{count}} Minuten\",\n    },\n  },\n\n  aboutXHours: {\n    standalone: {\n      one: \"etwa 1 Stunde\",\n      other: \"etwa {{count}} Stunden\",\n    },\n    withPreposition: {\n      one: \"etwa 1 Stunde\",\n      other: \"etwa {{count}} Stunden\",\n    },\n  },\n\n  xHours: {\n    standalone: {\n      one: \"1 Stunde\",\n      other: \"{{count}} Stunden\",\n    },\n    withPreposition: {\n      one: \"1 Stunde\",\n      other: \"{{count}} Stunden\",\n    },\n  },\n\n  xDays: {\n    standalone: {\n      one: \"1 Tag\",\n      other: \"{{count}} Tage\",\n    },\n    withPreposition: {\n      one: \"1 Tag\",\n      other: \"{{count}} Tagen\",\n    },\n  },\n\n  aboutXWeeks: {\n    standalone: {\n      one: \"etwa 1 Woche\",\n      other: \"etwa {{count}} Wochen\",\n    },\n    withPreposition: {\n      one: \"etwa 1 Woche\",\n      other: \"etwa {{count}} Wochen\",\n    },\n  },\n\n  xWeeks: {\n    standalone: {\n      one: \"1 Woche\",\n      other: \"{{count}} Wochen\",\n    },\n    withPreposition: {\n      one: \"1 Woche\",\n      other: \"{{count}} Wochen\",\n    },\n  },\n\n  aboutXMonths: {\n    standalone: {\n      one: \"etwa 1 Monat\",\n      other: \"etwa {{count}} Monate\",\n    },\n    withPreposition: {\n      one: \"etwa 1 Monat\",\n      other: \"etwa {{count}} Monaten\",\n    },\n  },\n\n  xMonths: {\n    standalone: {\n      one: \"1 Monat\",\n      other: \"{{count}} Monate\",\n    },\n    withPreposition: {\n      one: \"1 Monat\",\n      other: \"{{count}} Monaten\",\n    },\n  },\n\n  aboutXYears: {\n    standalone: {\n      one: \"etwa 1 Jahr\",\n      other: \"etwa {{count}} Jahre\",\n    },\n    withPreposition: {\n      one: \"etwa 1 Jahr\",\n      other: \"etwa {{count}} Jahren\",\n    },\n  },\n\n  xYears: {\n    standalone: {\n      one: \"1 Jahr\",\n      other: \"{{count}} Jahre\",\n    },\n    withPreposition: {\n      one: \"1 Jahr\",\n      other: \"{{count}} Jahren\",\n    },\n  },\n\n  overXYears: {\n    standalone: {\n      one: \"mehr als 1 Jahr\",\n      other: \"mehr als {{count}} Jahre\",\n    },\n    withPreposition: {\n      one: \"mehr als 1 Jahr\",\n      other: \"mehr als {{count}} Jahren\",\n    },\n  },\n\n  almostXYears: {\n    standalone: {\n      one: \"fast 1 Jahr\",\n      other: \"fast {{count}} Jahre\",\n    },\n    withPreposition: {\n      one: \"fast 1 Jahr\",\n      other: \"fast {{count}} Jahren\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  let result;\n\n  const tokenValue = options?.addSuffix\n    ? formatDistanceLocale[token].withPreposition\n    : formatDistanceLocale[token].standalone;\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"in \" + result;\n    } else {\n      return \"vor \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// DIN 5008: https://de.wikipedia.org/wiki/Datumsformat#DIN_5008\nconst dateFormats = {\n  full: \"EEEE, do MMMM y\", // Montag, 7. Januar 2018\n  long: \"do MMMM y\", // 7. Januar 2018\n  medium: \"do MMM y\", // 7. Jan. 2018\n  short: \"dd.MM.y\", // 07.01.2018\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'um' {{time}}\",\n  long: \"{{date}} 'um' {{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: \"'letzten' eeee 'um' p\",\n  yesterday: \"'gestern um' p\",\n  today: \"'heute um' p\",\n  tomorrow: \"'morgen um' p\",\n  nextWeek: \"eeee 'um' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"v.Chr.\", \"n.Chr.\"],\n  abbreviated: [\"v.Chr.\", \"n.Chr.\"],\n  wide: [\"vor Christus\", \"nach Christus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1. Quartal\", \"2. Quartal\", \"3. Quartal\", \"4. Quartal\"],\n};\n\n// Note: in German, 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    \"Mär\",\n    \"Apr\",\n    \"Mai\",\n    \"Jun\",\n    \"Jul\",\n    \"Aug\",\n    \"Sep\",\n    \"Okt\",\n    \"Nov\",\n    \"Dez\",\n  ],\n\n  wide: [\n    \"Januar\",\n    \"Februar\",\n    \"März\",\n    \"April\",\n    \"Mai\",\n    \"Juni\",\n    \"Juli\",\n    \"August\",\n    \"September\",\n    \"Oktober\",\n    \"November\",\n    \"Dezember\",\n  ],\n};\n\n// https://st.unicode.org/cldr-apps/v#/de/Gregorian/\nconst formattingMonthValues = {\n  narrow: monthValues.narrow,\n  abbreviated: [\n    \"Jan.\",\n    \"Feb.\",\n    \"März\",\n    \"Apr.\",\n    \"Mai\",\n    \"Juni\",\n    \"Juli\",\n    \"Aug.\",\n    \"Sep.\",\n    \"Okt.\",\n    \"Nov.\",\n    \"Dez.\",\n  ],\n\n  wide: monthValues.wide,\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"D\", \"M\", \"D\", \"F\", \"S\"],\n  short: [\"So\", \"Mo\", \"Di\", \"Mi\", \"Do\", \"Fr\", \"Sa\"],\n  abbreviated: [\"So.\", \"Mo.\", \"Di.\", \"Mi.\", \"Do.\", \"Fr.\", \"Sa.\"],\n  wide: [\n    \"Sonntag\",\n    \"Montag\",\n    \"Dienstag\",\n    \"Mittwoch\",\n    \"Donnerstag\",\n    \"Freitag\",\n    \"Samstag\",\n  ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/de.html#1881\nconst dayPeriodValues = {\n  narrow: {\n    am: \"vm.\",\n    pm: \"nm.\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"Morgen\",\n    afternoon: \"Nachm.\",\n    evening: \"Abend\",\n    night: \"Nacht\",\n  },\n  abbreviated: {\n    am: \"vorm.\",\n    pm: \"nachm.\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"Morgen\",\n    afternoon: \"Nachmittag\",\n    evening: \"Abend\",\n    night: \"Nacht\",\n  },\n  wide: {\n    am: \"vormittags\",\n    pm: \"nachmittags\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"Morgen\",\n    afternoon: \"Nachmittag\",\n    evening: \"Abend\",\n    night: \"Nacht\",\n  },\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"vm.\",\n    pm: \"nm.\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"morgens\",\n    afternoon: \"nachm.\",\n    evening: \"abends\",\n    night: \"nachts\",\n  },\n  abbreviated: {\n    am: \"vorm.\",\n    pm: \"nachm.\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"morgens\",\n    afternoon: \"nachmittags\",\n    evening: \"abends\",\n    night: \"nachts\",\n  },\n  wide: {\n    am: \"vormittags\",\n    pm: \"nachmittags\",\n    midnight: \"Mitternacht\",\n    noon: \"Mittag\",\n    morning: \"morgens\",\n    afternoon: \"nachmittags\",\n    evening: \"abends\",\n    night: \"nachts\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n  const number = Number(dirtyNumber);\n\n  return number + \".\";\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    formattingValues: formattingMonthValues,\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n  abbreviated: /^(v\\.? ?Chr\\.?|n\\.? ?Chr\\.?)/i,\n  wide: /^(vor Christus|vor unserer Zeitrechnung|nach Christus|unserer Zeitrechnung)/i,\n};\nconst parseEraPatterns = {\n  any: [/^v/i, /^n/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](\\.)? Quartal/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated:\n    /^(j[aä]n|feb|mär[z]?|apr|mai|jun[i]?|jul[i]?|aug|sep|okt|nov|dez)\\.?/i,\n  wide: /^(jänner|januar|februar|märz|april|mai|juni|juli|august|september|oktober|november|dezember)/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    /^j[aä]/i,\n    /^f/i,\n    /^mär/i,\n    /^ap/i,\n    /^mai/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: /^[smdmf]/i,\n  short: /^(so|mo|di|mi|do|fr|sa)/i,\n  abbreviated: /^(son?|mon?|die?|mit?|don?|fre?|sam?)\\.?/i,\n  wide: /^(sonntag|montag|dienstag|mittwoch|donnerstag|freitag|samstag)/i,\n};\nconst parseDayPatterns = {\n  any: [/^so/i, /^mo/i, /^di/i, /^mi/i, /^do/i, /^f/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(vm\\.?|nm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n  abbreviated:\n    /^(vorm\\.?|nachm\\.?|Mitternacht|Mittag|morgens|nachm\\.?|abends|nachts)/i,\n  wide: /^(vormittags|nachmittags|Mitternacht|Mittag|morgens|nachmittags|abends|nachts)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^v/i,\n    pm: /^n/i,\n    midnight: /^Mitte/i,\n    noon: /^Mitta/i,\n    morning: /morgens/i,\n    afternoon: /nachmittags/i, // will never be matched. Afternoon is matched by `pm`\n    evening: /abends/i,\n    night: /nachts/i, // will never be matched. Night is matched by `pm`\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: (value) => parseInt(value),\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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./de/_lib/formatDistance.js\";\nimport { formatLong } from \"./de/_lib/formatLong.js\";\nimport { formatRelative } from \"./de/_lib/formatRelative.js\";\nimport { localize } from \"./de/_lib/localize.js\";\nimport { match } from \"./de/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary German locale.\n * @language German\n * @iso-639-2 deu\n * @author Thomas Eilmsteiner [@DeMuu](https://github.com/DeMuu)\n * @author Asia [@asia-t](https://github.com/asia-t)\n * @author Van Vuong Ngo [@vanvuongngo](https://github.com/vanvuongngo)\n * @author RomanErnst [@pex](https://github.com/pex)\n * @author Philipp Keck [@Philipp91](https://github.com/Philipp91)\n */\nexport const de = {\n  code: \"de\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default de;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"λιγότερο από ένα δευτερόλεπτο\",\n    other: \"λιγότερο από {{count}} δευτερόλεπτα\",\n  },\n\n  xSeconds: {\n    one: \"1 δευτερόλεπτο\",\n    other: \"{{count}} δευτερόλεπτα\",\n  },\n\n  halfAMinute: \"μισό λεπτό\",\n\n  lessThanXMinutes: {\n    one: \"λιγότερο από ένα λεπτό\",\n    other: \"λιγότερο από {{count}} λεπτά\",\n  },\n\n  xMinutes: {\n    one: \"1 λεπτό\",\n    other: \"{{count}} λεπτά\",\n  },\n\n  aboutXHours: {\n    one: \"περίπου 1 ώρα\",\n    other: \"περίπου {{count}} ώρες\",\n  },\n\n  xHours: {\n    one: \"1 ώρα\",\n    other: \"{{count}} ώρες\",\n  },\n\n  xDays: {\n    one: \"1 ημέρα\",\n    other: \"{{count}} ημέρες\",\n  },\n\n  aboutXWeeks: {\n    one: \"περίπου 1 εβδομάδα\",\n    other: \"περίπου {{count}} εβδομάδες\",\n  },\n\n  xWeeks: {\n    one: \"1 εβδομάδα\",\n    other: \"{{count}} εβδομάδες\",\n  },\n\n  aboutXMonths: {\n    one: \"περίπου 1 μήνας\",\n    other: \"περίπου {{count}} μήνες\",\n  },\n\n  xMonths: {\n    one: \"1 μήνας\",\n    other: \"{{count}} μήνες\",\n  },\n\n  aboutXYears: {\n    one: \"περίπου 1 χρόνο\",\n    other: \"περίπου {{count}} χρόνια\",\n  },\n\n  xYears: {\n    one: \"1 χρόνο\",\n    other: \"{{count}} χρόνια\",\n  },\n\n  overXYears: {\n    one: \"πάνω από 1 χρόνο\",\n    other: \"πάνω από {{count}} χρόνια\",\n  },\n\n  almostXYears: {\n    one: \"περίπου 1 χρόνο\",\n    other: \"περίπου {{count}} χρόνια\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"σε \" + result;\n    } else {\n      return result + \" πριν\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM y\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"d/M/yy\",\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}} - {{time}}\",\n  long: \"{{date}} - {{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: (date) => {\n    switch (date.getDay()) {\n      case 6: //Σάββατο\n        return \"'το προηγούμενο' eeee 'στις' p\";\n      default:\n        return \"'την προηγούμενη' eeee 'στις' p\";\n    }\n  },\n  yesterday: \"'χθες στις' p\",\n  today: \"'σήμερα στις' p\",\n  tomorrow: \"'αύριο στις' p\",\n  nextWeek: \"eeee 'στις' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") return format(date);\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"πΧ\", \"μΧ\"],\n  abbreviated: [\"π.Χ.\", \"μ.Χ.\"],\n  wide: [\"προ Χριστού\", \"μετά Χριστόν\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Τ1\", \"Τ2\", \"Τ3\", \"Τ4\"],\n  wide: [\"1ο τρίμηνο\", \"2ο τρίμηνο\", \"3ο τρίμηνο\", \"4ο τρίμηνο\"],\n};\n\nconst monthValues = {\n  narrow: [\"Ι\", \"Φ\", \"Μ\", \"Α\", \"Μ\", \"Ι\", \"Ι\", \"Α\", \"Σ\", \"Ο\", \"Ν\", \"Δ\"],\n  abbreviated: [\n    \"Ιαν\",\n    \"Φεβ\",\n    \"Μάρ\",\n    \"Απρ\",\n    \"Μάι\",\n    \"Ιούν\",\n    \"Ιούλ\",\n    \"Αύγ\",\n    \"Σεπ\",\n    \"Οκτ\",\n    \"Νοέ\",\n    \"Δεκ\",\n  ],\n\n  wide: [\n    \"Ιανουάριος\",\n    \"Φεβρουάριος\",\n    \"Μάρτιος\",\n    \"Απρίλιος\",\n    \"Μάιος\",\n    \"Ιούνιος\",\n    \"Ιούλιος\",\n    \"Αύγουστος\",\n    \"Σεπτέμβριος\",\n    \"Οκτώβριος\",\n    \"Νοέμβριος\",\n    \"Δεκέμβριος\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"Ι\", \"Φ\", \"Μ\", \"Α\", \"Μ\", \"Ι\", \"Ι\", \"Α\", \"Σ\", \"Ο\", \"Ν\", \"Δ\"],\n  abbreviated: [\n    \"Ιαν\",\n    \"Φεβ\",\n    \"Μαρ\",\n    \"Απρ\",\n    \"Μαΐ\",\n    \"Ιουν\",\n    \"Ιουλ\",\n    \"Αυγ\",\n    \"Σεπ\",\n    \"Οκτ\",\n    \"Νοε\",\n    \"Δεκ\",\n  ],\n\n  wide: [\n    \"Ιανουαρίου\",\n    \"Φεβρουαρίου\",\n    \"Μαρτίου\",\n    \"Απριλίου\",\n    \"Μαΐου\",\n    \"Ιουνίου\",\n    \"Ιουλίου\",\n    \"Αυγούστου\",\n    \"Σεπτεμβρίου\",\n    \"Οκτωβρίου\",\n    \"Νοεμβρίου\",\n    \"Δεκεμβρίου\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Κ\", \"Δ\", \"T\", \"Τ\", \"Π\", \"Π\", \"Σ\"],\n  short: [\"Κυ\", \"Δε\", \"Τρ\", \"Τε\", \"Πέ\", \"Πα\", \"Σά\"],\n  abbreviated: [\"Κυρ\", \"Δευ\", \"Τρί\", \"Τετ\", \"Πέμ\", \"Παρ\", \"Σάβ\"],\n  wide: [\n    \"Κυριακή\",\n    \"Δευτέρα\",\n    \"Τρίτη\",\n    \"Τετάρτη\",\n    \"Πέμπτη\",\n    \"Παρασκευή\",\n    \"Σάββατο\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"πμ\",\n    pm: \"μμ\",\n    midnight: \"μεσάνυχτα\",\n    noon: \"μεσημέρι\",\n    morning: \"πρωί\",\n    afternoon: \"απόγευμα\",\n    evening: \"βράδυ\",\n    night: \"νύχτα\",\n  },\n  abbreviated: {\n    am: \"π.μ.\",\n    pm: \"μ.μ.\",\n    midnight: \"μεσάνυχτα\",\n    noon: \"μεσημέρι\",\n    morning: \"πρωί\",\n    afternoon: \"απόγευμα\",\n    evening: \"βράδυ\",\n    night: \"νύχτα\",\n  },\n  wide: {\n    am: \"π.μ.\",\n    pm: \"μ.μ.\",\n    midnight: \"μεσάνυχτα\",\n    noon: \"μεσημέρι\",\n    morning: \"πρωί\",\n    afternoon: \"απόγευμα\",\n    evening: \"βράδυ\",\n    night: \"νύχτα\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = options?.unit;\n  let suffix;\n\n  if (unit === \"year\" || unit === \"month\") {\n    suffix = \"ος\";\n  } else if (\n    unit === \"week\" ||\n    unit === \"dayOfYear\" ||\n    unit === \"day\" ||\n    unit === \"hour\" ||\n    unit === \"date\"\n  ) {\n    suffix = \"η\";\n  } else {\n    suffix = \"ο\";\n  }\n\n  return number + suffix;\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(ος|η|ο)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(πΧ|μΧ)/i,\n  abbreviated: /^(π\\.?\\s?χ\\.?|π\\.?\\s?κ\\.?\\s?χ\\.?|μ\\.?\\s?χ\\.?|κ\\.?\\s?χ\\.?)/i,\n  wide: /^(προ Χριστο(ύ|υ)|πριν απ(ό|ο) την Κοιν(ή|η) Χρονολογ(ί|ι)α|μετ(ά|α) Χριστ(ό|ο)ν|Κοιν(ή|η) Χρονολογ(ί|ι)α)/i,\n};\nconst parseEraPatterns = {\n  any: [/^π/i, /^(μ|κ)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^τ[1234]/i,\n  wide: /^[1234]ο? τρ(ί|ι)μηνο/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[ιφμαμιιασονδ]/i,\n  abbreviated:\n    /^(ιαν|φεβ|μ[άα]ρ|απρ|μ[άα][ιΐ]|ιο[ύυ]ν|ιο[ύυ]λ|α[ύυ]γ|σεπ|οκτ|νο[έε]|δεκ)/i,\n  wide: /^(μ[άα][ιΐ]|α[ύυ]γο[υύ]στ)(ος|ου)|(ιανου[άα]ρ|φεβρου[άα]ρ|μ[άα]ρτ|απρ[ίι]λ|ιο[ύυ]ν|ιο[ύυ]λ|σεπτ[έε]μβρ|οκτ[ώω]βρ|νο[έε]μβρ|δεκ[έε]μβρ)(ιος|ίου)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ι/i,\n    /^φ/i,\n    /^μ/i,\n    /^α/i,\n    /^μ/i,\n    /^ι/i,\n    /^ι/i,\n    /^α/i,\n    /^σ/i,\n    /^ο/i,\n    /^ν/i,\n    /^δ/i,\n  ],\n\n  any: [\n    /^ια/i,\n    /^φ/i,\n    /^μ[άα]ρ/i,\n    /^απ/i,\n    /^μ[άα][ιΐ]/i,\n    /^ιο[ύυ]ν/i,\n    /^ιο[ύυ]λ/i,\n    /^α[ύυ]/i,\n    /^σ/i,\n    /^ο/i,\n    /^ν/i,\n    /^δ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[κδτπσ]/i,\n  short: /^(κυ|δε|τρ|τε|π[εέ]|π[αά]|σ[αά])/i,\n  abbreviated: /^(κυρ|δευ|τρι|τετ|πεμ|παρ|σαβ)/i,\n  wide: /^(κυριακ(ή|η)|δευτ(έ|ε)ρα|τρ(ί|ι)τη|τετ(ά|α)ρτη|π(έ|ε)μπτη|παρασκευ(ή|η)|σ(ά|α)ββατο)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^κ/i, /^δ/i, /^τ/i, /^τ/i, /^π/i, /^π/i, /^σ/i],\n  any: [/^κ/i, /^δ/i, /^τρ/i, /^τε/i, /^π[εέ]/i, /^π[αά]/i, /^σ/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(πμ|μμ|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i,\n  any: /^([πμ]\\.?\\s?μ\\.?|μεσ(ά|α)νυχτα|μεσημ(έ|ε)ρι|πρω(ί|ι)|απ(ό|ο)γευμα|βρ(ά|α)δυ|ν(ύ|υ)χτα)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^πμ|π\\.\\s?μ\\./i,\n    pm: /^μμ|μ\\.\\s?μ\\./i,\n    midnight: /^μεσάν/i,\n    noon: /^μεσημ(έ|ε)/i,\n    morning: /πρω(ί|ι)/i,\n    afternoon: /απ(ό|ο)γευμα/i,\n    evening: /βρ(ά|α)δυ/i,\n    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 \"./el/_lib/formatDistance.js\";\nimport { formatLong } from \"./el/_lib/formatLong.js\";\nimport { formatRelative } from \"./el/_lib/formatRelative.js\";\nimport { localize } from \"./el/_lib/localize.js\";\nimport { match } from \"./el/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Greek locale.\n * @language Greek\n * @iso-639-2 ell\n * @author Fanis Katsimpas [@fanixk](https://github.com/fanixk)\n * @author Theodoros Orfanidis [@teoulas](https://github.com/teoulas)\n */\nexport const el = {\n  code: \"el\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default el;\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","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","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","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 { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM yyyy\",\n  long: \"d MMMM yyyy\",\n  medium: \"d MMM yyyy\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\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","import { formatDistance } from \"./en-US/_lib/formatDistance.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\nimport { formatLong } from \"./en-GB/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (United Kingdom).\n * @language English\n * @iso-639-2 eng\n * @author Alex [@glintik](https://github.com/glintik)\n */\nexport const enGB = {\n  code: \"en-GB\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default enGB;\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM yyyy\",\n  long: \"d MMMM, yyyy\",\n  medium: \"d MMM, yyyy\",\n  short: \"dd/MM/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","import { formatDistance } from \"./en-US/_lib/formatDistance.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\nimport { formatLong } from \"./en-IN/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (India).\n * @language English\n * @iso-639-2 eng\n * @author Galeel Bhasha Satthar [@gbhasha](https://github.com/gbhasha)\n */\nexport const enIN = {\n  code: \"en-IN\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1, // Monday is the first day of the week.\n    firstWeekContainsDate: 4, // The week that contains Jan 4th is the first week of the year.\n  },\n};\n\n// Fallback for modularized imports:\nexport default enIN;\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","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 { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, dd MMMM yyyy\",\n  long: \"dd MMMM yyyy\",\n  medium: \"dd MMM yyyy\",\n  short: \"yyyy/MM/dd\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\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","import { formatDistance } from \"./en-US/_lib/formatDistance.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\nimport { formatLong } from \"./en-ZA/_lib/formatLong.js\";\n\n/**\n * @category Locales\n * @summary English locale (South Africa).\n * @language English\n * @iso-639-2 eng\n * @author Shaila Kavrakova [@shaykav](https://github.com/shaykav)\n */\nexport const enZA = {\n  code: \"en-ZA\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0, // Sunday is the first day of the week.\n    firstWeekContainsDate: 1, // The week that contains Jan 1st is the first week of the year.\n  },\n};\n\n// Fallback for modularized imports:\nexport default enZA;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"malpli ol sekundo\",\n    other: \"malpli ol {{count}} sekundoj\",\n  },\n\n  xSeconds: {\n    one: \"1 sekundo\",\n    other: \"{{count}} sekundoj\",\n  },\n\n  halfAMinute: \"duonminuto\",\n\n  lessThanXMinutes: {\n    one: \"malpli ol minuto\",\n    other: \"malpli ol {{count}} minutoj\",\n  },\n\n  xMinutes: {\n    one: \"1 minuto\",\n    other: \"{{count}} minutoj\",\n  },\n\n  aboutXHours: {\n    one: \"proksimume 1 horo\",\n    other: \"proksimume {{count}} horoj\",\n  },\n\n  xHours: {\n    one: \"1 horo\",\n    other: \"{{count}} horoj\",\n  },\n\n  xDays: {\n    one: \"1 tago\",\n    other: \"{{count}} tagoj\",\n  },\n\n  aboutXMonths: {\n    one: \"proksimume 1 monato\",\n    other: \"proksimume {{count}} monatoj\",\n  },\n\n  xWeeks: {\n    one: \"1 semajno\",\n    other: \"{{count}} semajnoj\",\n  },\n\n  aboutXWeeks: {\n    one: \"proksimume 1 semajno\",\n    other: \"proksimume {{count}} semajnoj\",\n  },\n\n  xMonths: {\n    one: \"1 monato\",\n    other: \"{{count}} monatoj\",\n  },\n\n  aboutXYears: {\n    one: \"proksimume 1 jaro\",\n    other: \"proksimume {{count}} jaroj\",\n  },\n\n  xYears: {\n    one: \"1 jaro\",\n    other: \"{{count}} jaroj\",\n  },\n\n  overXYears: {\n    one: \"pli ol 1 jaro\",\n    other: \"pli ol {{count}} jaroj\",\n  },\n\n  almostXYears: {\n    one: \"preskaŭ 1 jaro\",\n    other: \"preskaŭ {{count}} jaroj\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options?.comparison && options.comparison > 0) {\n      return \"post \" + result;\n    } else {\n      return \"antaŭ \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do 'de' MMMM y\",\n  long: \"y-MMMM-dd\",\n  medium: \"y-MMM-dd\",\n  short: \"yyyy-MM-dd\",\n};\n\nconst timeFormats = {\n  full: \"Ho 'horo kaj' m:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","const formatRelativeLocale = {\n  lastWeek: \"'pasinta' eeee 'je' p\",\n  yesterday: \"'hieraŭ je' p\",\n  today: \"'hodiaŭ je' p\",\n  tomorrow: \"'morgaŭ je' p\",\n  nextWeek: \"eeee 'je' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"aK\", \"pK\"],\n  abbreviated: [\"a.K.E.\", \"p.K.E.\"],\n  wide: [\"antaŭ Komuna Erao\", \"Komuna Erao\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\n    \"1-a kvaronjaro\",\n    \"2-a kvaronjaro\",\n    \"3-a kvaronjaro\",\n    \"4-a kvaronjaro\",\n  ],\n};\n\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    \"maj\",\n    \"jun\",\n    \"jul\",\n    \"aŭg\",\n    \"sep\",\n    \"okt\",\n    \"nov\",\n    \"dec\",\n  ],\n\n  wide: [\n    \"januaro\",\n    \"februaro\",\n    \"marto\",\n    \"aprilo\",\n    \"majo\",\n    \"junio\",\n    \"julio\",\n    \"aŭgusto\",\n    \"septembro\",\n    \"oktobro\",\n    \"novembro\",\n    \"decembro\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"D\", \"L\", \"M\", \"M\", \"Ĵ\", \"V\", \"S\"],\n  short: [\"di\", \"lu\", \"ma\", \"me\", \"ĵa\", \"ve\", \"sa\"],\n  abbreviated: [\"dim\", \"lun\", \"mar\", \"mer\", \"ĵaŭ\", \"ven\", \"sab\"],\n  wide: [\n    \"dimanĉo\",\n    \"lundo\",\n    \"mardo\",\n    \"merkredo\",\n    \"ĵaŭdo\",\n    \"vendredo\",\n    \"sabato\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"noktomezo\",\n    noon: \"tagmezo\",\n    morning: \"matene\",\n    afternoon: \"posttagmeze\",\n    evening: \"vespere\",\n    night: \"nokte\",\n  },\n  abbreviated: {\n    am: \"a.t.m.\",\n    pm: \"p.t.m.\",\n    midnight: \"noktomezo\",\n    noon: \"tagmezo\",\n    morning: \"matene\",\n    afternoon: \"posttagmeze\",\n    evening: \"vespere\",\n    night: \"nokte\",\n  },\n  wide: {\n    am: \"antaŭtagmeze\",\n    pm: \"posttagmeze\",\n    midnight: \"noktomezo\",\n    noon: \"tagmezo\",\n    morning: \"matene\",\n    afternoon: \"posttagmeze\",\n    evening: \"vespere\",\n    night: \"nokte\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n  const number = Number(dirtyNumber);\n  return number + \"-a\";\n};\n\nexport const localize = {\n  ordinalNumber: ordinalNumber,\n\n  era: buildLocalizeFn({\n    values: eraValues,\n    defaultWidth: \"wide\",\n  }),\n\n  quarter: buildLocalizeFn({\n    values: quarterValues,\n    defaultWidth: \"wide\",\n    argumentCallback: function (quarter) {\n      return Number(quarter) - 1;\n    },\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  }),\n};\n","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?a)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^([ap]k)/i,\n  abbreviated: /^([ap]\\.?\\s?k\\.?\\s?e\\.?)/i,\n  wide: /^((antaǔ |post )?komuna erao)/i,\n};\nconst parseEraPatterns = {\n  any: [/^a/i, /^[kp]/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^k[1234]/i,\n  wide: /^[1234](-?a)? kvaronjaro/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|maj|jun|jul|a(ŭ|ux|uh|u)g|sep|okt|nov|dec)/i,\n  wide: /^(januaro|februaro|marto|aprilo|majo|junio|julio|a(ŭ|ux|uh|u)gusto|septembro|oktobro|novembro|decembro)/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    /^maj/i,\n    /^jun/i,\n    /^jul/i,\n    /^a(u|ŭ)/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dlmĵjvs]/i,\n  short: /^(di|lu|ma|me|(ĵ|jx|jh|j)a|ve|sa)/i,\n  abbreviated: /^(dim|lun|mar|mer|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)|ven|sab)/i,\n  wide: /^(diman(ĉ|cx|ch|c)o|lundo|mardo|merkredo|(ĵ|jx|jh|j)a(ŭ|ux|uh|u)do|vendredo|sabato)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^(j|ĵ)/i, /^v/i, /^s/i],\n  any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^(j|ĵ)/i, /^v/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^([ap]|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,\n  abbreviated:\n    /^([ap][.\\s]?t[.\\s]?m[.\\s]?|(posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo])/i,\n  wide: /^(anta(ŭ|ux)tagmez|posttagmez|noktomez|tagmez|maten|vesper|nokt)[eo]/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^noktom/i,\n    noon: /^t/i,\n    morning: /^m/i,\n    afternoon: /^posttagmeze/i,\n    evening: /^v/i,\n    night: /^n/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    },\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: function (index) {\n      return index + 1;\n    },\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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./eo/_lib/formatDistance.js\";\nimport { formatLong } from \"./eo/_lib/formatLong.js\";\nimport { formatRelative } from \"./eo/_lib/formatRelative.js\";\nimport { localize } from \"./eo/_lib/localize.js\";\nimport { match } from \"./eo/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Esperanto locale.\n * @language Esperanto\n * @iso-639-2 epo\n * @author date-fns\n */\nexport const eo = {\n  code: \"eo\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default eo;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"menos de un segundo\",\n    other: \"menos de {{count}} segundos\",\n  },\n\n  xSeconds: {\n    one: \"1 segundo\",\n    other: \"{{count}} segundos\",\n  },\n\n  halfAMinute: \"medio minuto\",\n\n  lessThanXMinutes: {\n    one: \"menos de un minuto\",\n    other: \"menos de {{count}} minutos\",\n  },\n\n  xMinutes: {\n    one: \"1 minuto\",\n    other: \"{{count}} minutos\",\n  },\n\n  aboutXHours: {\n    one: \"alrededor de 1 hora\",\n    other: \"alrededor de {{count}} horas\",\n  },\n\n  xHours: {\n    one: \"1 hora\",\n    other: \"{{count}} horas\",\n  },\n\n  xDays: {\n    one: \"1 día\",\n    other: \"{{count}} días\",\n  },\n\n  aboutXWeeks: {\n    one: \"alrededor de 1 semana\",\n    other: \"alrededor de {{count}} semanas\",\n  },\n\n  xWeeks: {\n    one: \"1 semana\",\n    other: \"{{count}} semanas\",\n  },\n\n  aboutXMonths: {\n    one: \"alrededor de 1 mes\",\n    other: \"alrededor de {{count}} meses\",\n  },\n\n  xMonths: {\n    one: \"1 mes\",\n    other: \"{{count}} meses\",\n  },\n\n  aboutXYears: {\n    one: \"alrededor de 1 año\",\n    other: \"alrededor de {{count}} años\",\n  },\n\n  xYears: {\n    one: \"1 año\",\n    other: \"{{count}} años\",\n  },\n\n  overXYears: {\n    one: \"más de 1 año\",\n    other: \"más de {{count}} años\",\n  },\n\n  almostXYears: {\n    one: \"casi 1 año\",\n    other: \"casi {{count}} años\",\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 \"en \" + result;\n    } else {\n      return \"hace \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d 'de' MMMM 'de' y\",\n  long: \"d 'de' MMMM 'de' y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'a las' {{time}}\",\n  long: \"{{date}} 'a las' {{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: \"'el' eeee 'pasado a la' p\",\n  yesterday: \"'ayer a la' p\",\n  today: \"'hoy a la' p\",\n  tomorrow: \"'mañana a la' p\",\n  nextWeek: \"eeee 'a la' p\",\n  other: \"P\",\n};\n\nconst formatRelativeLocalePlural = {\n  lastWeek: \"'el' eeee 'pasado a las' p\",\n  yesterday: \"'ayer a las' p\",\n  today: \"'hoy a las' p\",\n  tomorrow: \"'mañana a las' p\",\n  nextWeek: \"eeee 'a las' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  if (date.getHours() !== 1) {\n    return formatRelativeLocalePlural[token];\n  } else {\n    return formatRelativeLocale[token];\n  }\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"AC\", \"DC\"],\n  abbreviated: [\"AC\", \"DC\"],\n  wide: [\"antes de cristo\", \"después de cristo\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"e\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n  abbreviated: [\n    \"ene\",\n    \"feb\",\n    \"mar\",\n    \"abr\",\n    \"may\",\n    \"jun\",\n    \"jul\",\n    \"ago\",\n    \"sep\",\n    \"oct\",\n    \"nov\",\n    \"dic\",\n  ],\n\n  wide: [\n    \"enero\",\n    \"febrero\",\n    \"marzo\",\n    \"abril\",\n    \"mayo\",\n    \"junio\",\n    \"julio\",\n    \"agosto\",\n    \"septiembre\",\n    \"octubre\",\n    \"noviembre\",\n    \"diciembre\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"d\", \"l\", \"m\", \"m\", \"j\", \"v\", \"s\"],\n  short: [\"do\", \"lu\", \"ma\", \"mi\", \"ju\", \"vi\", \"sá\"],\n  abbreviated: [\"dom\", \"lun\", \"mar\", \"mié\", \"jue\", \"vie\", \"sáb\"],\n  wide: [\n    \"domingo\",\n    \"lunes\",\n    \"martes\",\n    \"miércoles\",\n    \"jueves\",\n    \"viernes\",\n    \"sábado\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"mañana\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noche\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"medianoche\",\n    noon: \"mediodia\",\n    morning: \"mañana\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noche\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"medianoche\",\n    noon: \"mediodia\",\n    morning: \"mañana\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noche\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"de la mañana\",\n    afternoon: \"de la tarde\",\n    evening: \"de la tarde\",\n    night: \"de la noche\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"medianoche\",\n    noon: \"mediodia\",\n    morning: \"de la mañana\",\n    afternoon: \"de la tarde\",\n    evening: \"de la tarde\",\n    night: \"de la noche\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"medianoche\",\n    noon: \"mediodia\",\n    morning: \"de la mañana\",\n    afternoon: \"de la tarde\",\n    evening: \"de la tarde\",\n    night: \"de la noche\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"º\";\n};\n\nexport const localize = {\n  ordinalNumber: 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) => Number(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","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ac|dc|a|d)/i,\n  abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n  wide: /^(antes de cristo|antes de la era com[uú]n|despu[eé]s de cristo|era com[uú]n)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ac/i, /^dc/i],\n  wide: [\n    /^(antes de cristo|antes de la era com[uú]n)/i,\n    /^(despu[eé]s de cristo|era com[uú]n)/i,\n  ],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[efmajsond]/i,\n  abbreviated: /^(ene|feb|mar|abr|may|jun|jul|ago|sep|oct|nov|dic)/i,\n  wide: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^e/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    /^en/i,\n    /^feb/i,\n    /^mar/i,\n    /^abr/i,\n    /^may/i,\n    /^jun/i,\n    /^jul/i,\n    /^ago/i,\n    /^sep/i,\n    /^oct/i,\n    /^nov/i,\n    /^dic/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dlmjvs]/i,\n  short: /^(do|lu|ma|mi|ju|vi|s[áa])/i,\n  abbreviated: /^(dom|lun|mar|mi[ée]|jue|vie|s[áa]b)/i,\n  wide: /^(domingo|lunes|martes|mi[ée]rcoles|jueves|viernes|s[áa]bado)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^do/i, /^lu/i, /^ma/i, /^mi/i, /^ju/i, /^vi/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|md|(de la|a las) (mañana|tarde|noche))/i,\n  any: /^([ap]\\.?\\s?m\\.?|medianoche|mediodia|(de la|a las) (mañana|tarde|noche))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mn/i,\n    noon: /^md/i,\n    morning: /mañana/i,\n    afternoon: /tarde/i,\n    evening: /tarde/i,\n    night: /noche/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    },\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 \"./es/_lib/formatDistance.js\";\nimport { formatLong } from \"./es/_lib/formatLong.js\";\nimport { formatRelative } from \"./es/_lib/formatRelative.js\";\nimport { localize } from \"./es/_lib/localize.js\";\nimport { match } from \"./es/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Spanish locale.\n * @language Spanish\n * @iso-639-2 spa\n * @author Juan Angosto [@juanangosto](https://github.com/juanangosto)\n * @author Guillermo Grau [@guigrpa](https://github.com/guigrpa)\n * @author Fernando Agüero [@fjaguero](https://github.com/fjaguero)\n * @author Gastón Haro [@harogaston](https://github.com/harogaston)\n * @author Yago Carballo [@YagoCarballo](https://github.com/YagoCarballo)\n */\nexport const es = {\n  code: \"es\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default es;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    standalone: {\n      one: \"vähem kui üks sekund\",\n      other: \"vähem kui {{count}} sekundit\",\n    },\n    withPreposition: {\n      one: \"vähem kui ühe sekundi\",\n      other: \"vähem kui {{count}} sekundi\",\n    },\n  },\n\n  xSeconds: {\n    standalone: {\n      one: \"üks sekund\",\n      other: \"{{count}} sekundit\",\n    },\n    withPreposition: {\n      one: \"ühe sekundi\",\n      other: \"{{count}} sekundi\",\n    },\n  },\n\n  halfAMinute: {\n    standalone: \"pool minutit\",\n    withPreposition: \"poole minuti\",\n  },\n\n  lessThanXMinutes: {\n    standalone: {\n      one: \"vähem kui üks minut\",\n      other: \"vähem kui {{count}} minutit\",\n    },\n    withPreposition: {\n      one: \"vähem kui ühe minuti\",\n      other: \"vähem kui {{count}} minuti\",\n    },\n  },\n\n  xMinutes: {\n    standalone: {\n      one: \"üks minut\",\n      other: \"{{count}} minutit\",\n    },\n    withPreposition: {\n      one: \"ühe minuti\",\n      other: \"{{count}} minuti\",\n    },\n  },\n\n  aboutXHours: {\n    standalone: {\n      one: \"umbes üks tund\",\n      other: \"umbes {{count}} tundi\",\n    },\n    withPreposition: {\n      one: \"umbes ühe tunni\",\n      other: \"umbes {{count}} tunni\",\n    },\n  },\n\n  xHours: {\n    standalone: {\n      one: \"üks tund\",\n      other: \"{{count}} tundi\",\n    },\n    withPreposition: {\n      one: \"ühe tunni\",\n      other: \"{{count}} tunni\",\n    },\n  },\n\n  xDays: {\n    standalone: {\n      one: \"üks päev\",\n      other: \"{{count}} päeva\",\n    },\n    withPreposition: {\n      one: \"ühe päeva\",\n      other: \"{{count}} päeva\",\n    },\n  },\n\n  aboutXWeeks: {\n    standalone: {\n      one: \"umbes üks nädal\",\n      other: \"umbes {{count}} nädalat\",\n    },\n    withPreposition: {\n      one: \"umbes ühe nädala\",\n      other: \"umbes {{count}} nädala\",\n    },\n  },\n\n  xWeeks: {\n    standalone: {\n      one: \"üks nädal\",\n      other: \"{{count}} nädalat\",\n    },\n    withPreposition: {\n      one: \"ühe nädala\",\n      other: \"{{count}} nädala\",\n    },\n  },\n\n  aboutXMonths: {\n    standalone: {\n      one: \"umbes üks kuu\",\n      other: \"umbes {{count}} kuud\",\n    },\n    withPreposition: {\n      one: \"umbes ühe kuu\",\n      other: \"umbes {{count}} kuu\",\n    },\n  },\n\n  xMonths: {\n    standalone: {\n      one: \"üks kuu\",\n      other: \"{{count}} kuud\",\n    },\n    withPreposition: {\n      one: \"ühe kuu\",\n      other: \"{{count}} kuu\",\n    },\n  },\n\n  aboutXYears: {\n    standalone: {\n      one: \"umbes üks aasta\",\n      other: \"umbes {{count}} aastat\",\n    },\n    withPreposition: {\n      one: \"umbes ühe aasta\",\n      other: \"umbes {{count}} aasta\",\n    },\n  },\n\n  xYears: {\n    standalone: {\n      one: \"üks aasta\",\n      other: \"{{count}} aastat\",\n    },\n    withPreposition: {\n      one: \"ühe aasta\",\n      other: \"{{count}} aasta\",\n    },\n  },\n\n  overXYears: {\n    standalone: {\n      one: \"rohkem kui üks aasta\",\n      other: \"rohkem kui {{count}} aastat\",\n    },\n    withPreposition: {\n      one: \"rohkem kui ühe aasta\",\n      other: \"rohkem kui {{count}} aasta\",\n    },\n  },\n\n  almostXYears: {\n    standalone: {\n      one: \"peaaegu üks aasta\",\n      other: \"peaaegu {{count}} aastat\",\n    },\n    withPreposition: {\n      one: \"peaaegu ühe aasta\",\n      other: \"peaaegu {{count}} aasta\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const usageGroup = options?.addSuffix\n    ? formatDistanceLocale[token].withPreposition\n    : formatDistanceLocale[token].standalone;\n\n  let result;\n  if (typeof usageGroup === \"string\") {\n    result = usageGroup;\n  } else if (count === 1) {\n    result = usageGroup.one;\n  } else {\n    result = usageGroup.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" pärast\";\n    } else {\n      return result + \" eest\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kell' {{time}}\",\n  long: \"{{date}} 'kell' {{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: \"'eelmine' eeee 'kell' p\",\n  yesterday: \"'eile kell' p\",\n  today: \"'täna kell' p\",\n  tomorrow: \"'homme kell' p\",\n  nextWeek: \"'järgmine' eeee 'kell' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"e.m.a\", \"m.a.j\"],\n  abbreviated: [\"e.m.a\", \"m.a.j\"],\n  wide: [\"enne meie ajaarvamist\", \"meie ajaarvamise järgi\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"V\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"jaan\",\n    \"veebr\",\n    \"märts\",\n    \"apr\",\n    \"mai\",\n    \"juuni\",\n    \"juuli\",\n    \"aug\",\n    \"sept\",\n    \"okt\",\n    \"nov\",\n    \"dets\",\n  ],\n\n  wide: [\n    \"jaanuar\",\n    \"veebruar\",\n    \"märts\",\n    \"aprill\",\n    \"mai\",\n    \"juuni\",\n    \"juuli\",\n    \"august\",\n    \"september\",\n    \"oktoober\",\n    \"november\",\n    \"detsember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"],\n  short: [\"P\", \"E\", \"T\", \"K\", \"N\", \"R\", \"L\"],\n  abbreviated: [\n    \"pühap.\",\n    \"esmasp.\",\n    \"teisip.\",\n    \"kolmap.\",\n    \"neljap.\",\n    \"reede.\",\n    \"laup.\",\n  ],\n\n  wide: [\n    \"pühapäev\",\n    \"esmaspäev\",\n    \"teisipäev\",\n    \"kolmapäev\",\n    \"neljapäev\",\n    \"reede\",\n    \"laupäev\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"kesköö\",\n    noon: \"keskpäev\",\n    morning: \"hommik\",\n    afternoon: \"pärastlõuna\",\n    evening: \"õhtu\",\n    night: \"öö\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"kesköö\",\n    noon: \"keskpäev\",\n    morning: \"hommik\",\n    afternoon: \"pärastlõuna\",\n    evening: \"õhtu\",\n    night: \"öö\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"kesköö\",\n    noon: \"keskpäev\",\n    morning: \"hommik\",\n    afternoon: \"pärastlõuna\",\n    evening: \"õhtu\",\n    night: \"öö\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"keskööl\",\n    noon: \"keskpäeval\",\n    morning: \"hommikul\",\n    afternoon: \"pärastlõunal\",\n    evening: \"õhtul\",\n    night: \"öösel\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"keskööl\",\n    noon: \"keskpäeval\",\n    morning: \"hommikul\",\n    afternoon: \"pärastlõunal\",\n    evening: \"õhtul\",\n    night: \"öösel\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"keskööl\",\n    noon: \"keskpäeval\",\n    morning: \"hommikul\",\n    afternoon: \"pärastlõunal\",\n    evening: \"õhtul\",\n    night: \"öösel\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: monthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: dayValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^\\d+\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(e\\.m\\.a|m\\.a\\.j|eKr|pKr)/i,\n  abbreviated: /^(e\\.m\\.a|m\\.a\\.j|eKr|pKr)/i,\n  wide: /^(enne meie ajaarvamist|meie ajaarvamise järgi|enne Kristust|pärast Kristust)/i,\n};\nconst parseEraPatterns = {\n  any: [/^e/i, /^(m|p)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^K[1234]/i,\n  wide: /^[1234](\\.)? kvartal/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jvmasond]/i,\n  abbreviated: /^(jaan|veebr|märts|apr|mai|juuni|juuli|aug|sept|okt|nov|dets)/i,\n  wide: /^(jaanuar|veebruar|märts|aprill|mai|juuni|juuli|august|september|oktoober|november|detsember)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^j/i,\n    /^v/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    /^v/i,\n    /^mär/i,\n    /^ap/i,\n    /^mai/i,\n    /^juun/i,\n    /^juul/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[petknrl]/i,\n  short: /^[petknrl]/i,\n  abbreviated: /^(püh?|esm?|tei?|kolm?|nel?|ree?|laup?)\\.?/i,\n  wide: /^(pühapäev|esmaspäev|teisipäev|kolmapäev|neljapäev|reede|laupäev)/i,\n};\nconst parseDayPatterns = {\n  any: [/^p/i, /^e/i, /^t/i, /^k/i, /^n/i, /^r/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(am|pm|keskööl?|keskpäev(al)?|hommik(ul)?|pärastlõunal?|õhtul?|öö(sel)?)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^keskö/i,\n    noon: /^keskp/i,\n    morning: /hommik/i,\n    afternoon: /pärastlõuna/i,\n    evening: /õhtu/i,\n    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 \"./et/_lib/formatDistance.js\";\nimport { formatLong } from \"./et/_lib/formatLong.js\";\nimport { formatRelative } from \"./et/_lib/formatRelative.js\";\nimport { localize } from \"./et/_lib/localize.js\";\nimport { match } from \"./et/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Estonian locale.\n * @language Estonian\n * @iso-639-2 est\n * @author Priit Hansen [@HansenPriit](https://github.com/priithansen)\n */\nexport const et = {\n  code: \"et\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default et;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"segundo bat baino gutxiago\",\n    other: \"{{count}} segundo baino gutxiago\",\n  },\n\n  xSeconds: {\n    one: \"1 segundo\",\n    other: \"{{count}} segundo\",\n  },\n\n  halfAMinute: \"minutu erdi\",\n\n  lessThanXMinutes: {\n    one: \"minutu bat baino gutxiago\",\n    other: \"{{count}} minutu baino gutxiago\",\n  },\n\n  xMinutes: {\n    one: \"1 minutu\",\n    other: \"{{count}} minutu\",\n  },\n\n  aboutXHours: {\n    one: \"1 ordu gutxi gorabehera\",\n    other: \"{{count}} ordu gutxi gorabehera\",\n  },\n\n  xHours: {\n    one: \"1 ordu\",\n    other: \"{{count}} ordu\",\n  },\n\n  xDays: {\n    one: \"1 egun\",\n    other: \"{{count}} egun\",\n  },\n\n  aboutXWeeks: {\n    one: \"aste 1 inguru\",\n    other: \"{{count}} aste inguru\",\n  },\n\n  xWeeks: {\n    one: \"1 aste\",\n    other: \"{{count}} astean\",\n  },\n\n  aboutXMonths: {\n    one: \"1 hilabete gutxi gorabehera\",\n    other: \"{{count}} hilabete gutxi gorabehera\",\n  },\n\n  xMonths: {\n    one: \"1 hilabete\",\n    other: \"{{count}} hilabete\",\n  },\n\n  aboutXYears: {\n    one: \"1 urte gutxi gorabehera\",\n    other: \"{{count}} urte gutxi gorabehera\",\n  },\n\n  xYears: {\n    one: \"1 urte\",\n    other: \"{{count}} urte\",\n  },\n\n  overXYears: {\n    one: \"1 urte baino gehiago\",\n    other: \"{{count}} urte baino gehiago\",\n  },\n\n  almostXYears: {\n    one: \"ia 1 urte\",\n    other: \"ia {{count}} urte\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"en \" + result;\n    } else {\n      return \"duela \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, y'ko' MMMM'ren' d'a' y'ren'\",\n  long: \"y'ko' MMMM'ren' d'a'\",\n  medium: \"y MMM d\",\n  short: \"yy/MM/dd\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'tan' {{time}}\",\n  long: \"{{date}} 'tan' {{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: \"'joan den' eeee, LT\",\n  yesterday: \"'atzo,' p\",\n  today: \"'gaur,' p\",\n  tomorrow: \"'bihar,' p\",\n  nextWeek: \"eeee, p\",\n  other: \"P\",\n};\n\nconst formatRelativeLocalePlural = {\n  lastWeek: \"'joan den' eeee, p\",\n  yesterday: \"'atzo,' p\",\n  today: \"'gaur,' p\",\n  tomorrow: \"'bihar,' p\",\n  nextWeek: \"eeee, p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date) => {\n  if (date.getHours() !== 1) {\n    return formatRelativeLocalePlural[token];\n  }\n  return formatRelativeLocale[token];\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"k.a.\", \"k.o.\"],\n  abbreviated: [\"k.a.\", \"k.o.\"],\n  wide: [\"kristo aurretik\", \"kristo ondoren\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1H\", \"2H\", \"3H\", \"4H\"],\n  wide: [\n    \"1. hiruhilekoa\",\n    \"2. hiruhilekoa\",\n    \"3. hiruhilekoa\",\n    \"4. hiruhilekoa\",\n  ],\n};\n\nconst monthValues = {\n  narrow: [\"u\", \"o\", \"m\", \"a\", \"m\", \"e\", \"u\", \"a\", \"i\", \"u\", \"a\", \"a\"],\n  abbreviated: [\n    \"urt\",\n    \"ots\",\n    \"mar\",\n    \"api\",\n    \"mai\",\n    \"eka\",\n    \"uzt\",\n    \"abu\",\n    \"ira\",\n    \"urr\",\n    \"aza\",\n    \"abe\",\n  ],\n\n  wide: [\n    \"urtarrila\",\n    \"otsaila\",\n    \"martxoa\",\n    \"apirila\",\n    \"maiatza\",\n    \"ekaina\",\n    \"uztaila\",\n    \"abuztua\",\n    \"iraila\",\n    \"urria\",\n    \"azaroa\",\n    \"abendua\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"i\", \"a\", \"a\", \"a\", \"o\", \"o\", \"l\"],\n  short: [\"ig\", \"al\", \"as\", \"az\", \"og\", \"or\", \"lr\"],\n  abbreviated: [\"iga\", \"ast\", \"ast\", \"ast\", \"ost\", \"ost\", \"lar\"],\n  wide: [\n    \"igandea\",\n    \"astelehena\",\n    \"asteartea\",\n    \"asteazkena\",\n    \"osteguna\",\n    \"ostirala\",\n    \"larunbata\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"ge\",\n    noon: \"eg\",\n    morning: \"goiza\",\n    afternoon: \"arratsaldea\",\n    evening: \"arratsaldea\",\n    night: \"gaua\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"gauerdia\",\n    noon: \"eguerdia\",\n    morning: \"goiza\",\n    afternoon: \"arratsaldea\",\n    evening: \"arratsaldea\",\n    night: \"gaua\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"gauerdia\",\n    noon: \"eguerdia\",\n    morning: \"goiza\",\n    afternoon: \"arratsaldea\",\n    evening: \"arratsaldea\",\n    night: \"gaua\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"ge\",\n    noon: \"eg\",\n    morning: \"goizean\",\n    afternoon: \"arratsaldean\",\n    evening: \"arratsaldean\",\n    night: \"gauean\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"gauerdia\",\n    noon: \"eguerdia\",\n    morning: \"goizean\",\n    afternoon: \"arratsaldean\",\n    evening: \"arratsaldean\",\n    night: \"gauean\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"gauerdia\",\n    noon: \"eguerdia\",\n    morning: \"goizean\",\n    afternoon: \"arratsaldean\",\n    evening: \"arratsaldean\",\n    night: \"gauean\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(k.a.|k.o.)/i,\n  abbreviated: /^(k.a.|k.o.)/i,\n  wide: /^(kristo aurretik|kristo ondoren)/i,\n};\nconst parseEraPatterns = {\n  narrow: [/^k.a./i, /^k.o./i],\n  abbreviated: [/^(k.a.)/i, /^(k.o.)/i],\n  wide: [/^(kristo aurretik)/i, /^(kristo ondoren)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]H/i,\n  wide: /^[1234](.)? hiruhilekoa/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[uomaei]/i,\n  abbreviated: /^(urt|ots|mar|api|mai|eka|uzt|abu|ira|urr|aza|abe)/i,\n  wide: /^(urtarrila|otsaila|martxoa|apirila|maiatza|ekaina|uztaila|abuztua|iraila|urria|azaroa|abendua)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^u/i,\n    /^o/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^e/i,\n    /^u/i,\n    /^a/i,\n    /^i/i,\n    /^u/i,\n    /^a/i,\n    /^a/i,\n  ],\n\n  any: [\n    /^urt/i,\n    /^ots/i,\n    /^mar/i,\n    /^api/i,\n    /^mai/i,\n    /^eka/i,\n    /^uzt/i,\n    /^abu/i,\n    /^ira/i,\n    /^urr/i,\n    /^aza/i,\n    /^abe/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[iaol]/i,\n  short: /^(ig|al|as|az|og|or|lr)/i,\n  abbreviated: /^(iga|ast|ast|ast|ost|ost|lar)/i,\n  wide: /^(igandea|astelehena|asteartea|asteazkena|osteguna|ostirala|larunbata)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^i/i, /^a/i, /^a/i, /^a/i, /^o/i, /^o/i, /^l/i],\n  short: [/^ig/i, /^al/i, /^as/i, /^az/i, /^og/i, /^or/i, /^lr/i],\n  abbreviated: [/^iga/i, /^ast/i, /^ast/i, /^ast/i, /^ost/i, /^ost/i, /^lar/i],\n\n  wide: [\n    /^igandea/i,\n    /^astelehena/i,\n    /^asteartea/i,\n    /^asteazkena/i,\n    /^osteguna/i,\n    /^ostirala/i,\n    /^larunbata/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|ge|eg|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i,\n  any: /^([ap]\\.?\\s?m\\.?|gauerdia|eguerdia|((goiza|goizean)|arratsaldea|(gaua|gauean)))/i,\n};\nconst parseDayPeriodPatterns = {\n  narrow: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^ge/i,\n    noon: /^eg/i,\n    morning: /goiz/i,\n    afternoon: /arratsaldea/i,\n    evening: /arratsaldea/i,\n    night: /gau/i,\n  },\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^gauerdia/i,\n    noon: /^eguerdia/i,\n    morning: /goiz/i,\n    afternoon: /arratsaldea/i,\n    evening: /arratsaldea/i,\n    night: /gau/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: \"wide\",\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: \"wide\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"any\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./eu/_lib/formatDistance.js\";\nimport { formatLong } from \"./eu/_lib/formatLong.js\";\nimport { formatRelative } from \"./eu/_lib/formatRelative.js\";\nimport { localize } from \"./eu/_lib/localize.js\";\nimport { match } from \"./eu/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Basque locale.\n * @language Basque\n * @iso-639-2 eus\n * @author Jacob Söderblom [@JacobSoderblom](https://github.com/JacobSoderblom)\n */\nexport const eu = {\n  code: \"eu\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default eu;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"کمتر از یک ثانیه\",\n    other: \"کمتر از {{count}} ثانیه\",\n  },\n\n  xSeconds: {\n    one: \"1 ثانیه\",\n    other: \"{{count}} ثانیه\",\n  },\n\n  halfAMinute: \"نیم دقیقه\",\n\n  lessThanXMinutes: {\n    one: \"کمتر از یک دقیقه\",\n    other: \"کمتر از {{count}} دقیقه\",\n  },\n\n  xMinutes: {\n    one: \"1 دقیقه\",\n    other: \"{{count}} دقیقه\",\n  },\n\n  aboutXHours: {\n    one: \"حدود 1 ساعت\",\n    other: \"حدود {{count}} ساعت\",\n  },\n\n  xHours: {\n    one: \"1 ساعت\",\n    other: \"{{count}} ساعت\",\n  },\n\n  xDays: {\n    one: \"1 روز\",\n    other: \"{{count}} روز\",\n  },\n\n  aboutXWeeks: {\n    one: \"حدود 1 هفته\",\n    other: \"حدود {{count}} هفته\",\n  },\n\n  xWeeks: {\n    one: \"1 هفته\",\n    other: \"{{count}} هفته\",\n  },\n\n  aboutXMonths: {\n    one: \"حدود 1 ماه\",\n    other: \"حدود {{count}} ماه\",\n  },\n\n  xMonths: {\n    one: \"1 ماه\",\n    other: \"{{count}} ماه\",\n  },\n\n  aboutXYears: {\n    one: \"حدود 1 سال\",\n    other: \"حدود {{count}} سال\",\n  },\n\n  xYears: {\n    one: \"1 سال\",\n    other: \"{{count}} سال\",\n  },\n\n  overXYears: {\n    one: \"بیشتر از 1 سال\",\n    other: \"بیشتر از {{count}} سال\",\n  },\n\n  almostXYears: {\n    one: \"نزدیک 1 سال\",\n    other: \"نزدیک {{count}} سال\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"در \" + result;\n    } else {\n      return result + \" قبل\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE do MMMM y\",\n  long: \"do MMMM y\",\n  medium: \"d MMM y\",\n  short: \"yyyy/MM/dd\",\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}} 'در' {{time}}\",\n  long: \"{{date}} 'در' {{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: \"eeee 'گذشته در' p\",\n  yesterday: \"'دیروز در' p\",\n  today: \"'امروز در' p\",\n  tomorrow: \"'فردا در' p\",\n  nextWeek: \"eeee 'در' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ق\", \"ب\"],\n  abbreviated: [\"ق.م.\", \"ب.م.\"],\n  wide: [\"قبل از میلاد\", \"بعد از میلاد\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"س‌م1\", \"س‌م2\", \"س‌م3\", \"س‌م4\"],\n  wide: [\"سه‌ماهه 1\", \"سه‌ماهه 2\", \"سه‌ماهه 3\", \"سه‌ماهه 4\"],\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: [\"ژ\", \"ف\", \"م\", \"آ\", \"م\", \"ج\", \"ج\", \"آ\", \"س\", \"ا\", \"ن\", \"د\"],\n  abbreviated: [\n    \"ژانـ\",\n    \"فور\",\n    \"مارس\",\n    \"آپر\",\n    \"می\",\n    \"جون\",\n    \"جولـ\",\n    \"آگو\",\n    \"سپتـ\",\n    \"اکتـ\",\n    \"نوامـ\",\n    \"دسامـ\",\n  ],\n\n  wide: [\n    \"ژانویه\",\n    \"فوریه\",\n    \"مارس\",\n    \"آپریل\",\n    \"می\",\n    \"جون\",\n    \"جولای\",\n    \"آگوست\",\n    \"سپتامبر\",\n    \"اکتبر\",\n    \"نوامبر\",\n    \"دسامبر\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"ی\", \"د\", \"س\", \"چ\", \"پ\", \"ج\", \"ش\"],\n  short: [\"1ش\", \"2ش\", \"3ش\", \"4ش\", \"5ش\", \"ج\", \"ش\"],\n  abbreviated: [\n    \"یکشنبه\",\n    \"دوشنبه\",\n    \"سه‌شنبه\",\n    \"چهارشنبه\",\n    \"پنجشنبه\",\n    \"جمعه\",\n    \"شنبه\",\n  ],\n\n  wide: [\"یکشنبه\", \"دوشنبه\", \"سه‌شنبه\", \"چهارشنبه\", \"پنجشنبه\", \"جمعه\", \"شنبه\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ق\",\n    pm: \"ب\",\n    midnight: \"ن\",\n    noon: \"ظ\",\n    morning: \"ص\",\n    afternoon: \"ب.ظ.\",\n    evening: \"ع\",\n    night: \"ش\",\n  },\n  abbreviated: {\n    am: \"ق.ظ.\",\n    pm: \"ب.ظ.\",\n    midnight: \"نیمه‌شب\",\n    noon: \"ظهر\",\n    morning: \"صبح\",\n    afternoon: \"بعدازظهر\",\n    evening: \"عصر\",\n    night: \"شب\",\n  },\n  wide: {\n    am: \"قبل‌ازظهر\",\n    pm: \"بعدازظهر\",\n    midnight: \"نیمه‌شب\",\n    noon: \"ظهر\",\n    morning: \"صبح\",\n    afternoon: \"بعدازظهر\",\n    evening: \"عصر\",\n    night: \"شب\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ق\",\n    pm: \"ب\",\n    midnight: \"ن\",\n    noon: \"ظ\",\n    morning: \"ص\",\n    afternoon: \"ب.ظ.\",\n    evening: \"ع\",\n    night: \"ش\",\n  },\n  abbreviated: {\n    am: \"ق.ظ.\",\n    pm: \"ب.ظ.\",\n    midnight: \"نیمه‌شب\",\n    noon: \"ظهر\",\n    morning: \"صبح\",\n    afternoon: \"بعدازظهر\",\n    evening: \"عصر\",\n    night: \"شب\",\n  },\n  wide: {\n    am: \"قبل‌ازظهر\",\n    pm: \"بعدازظهر\",\n    midnight: \"نیمه‌شب\",\n    noon: \"ظهر\",\n    morning: \"صبح\",\n    afternoon: \"بعدازظهر\",\n    evening: \"عصر\",\n    night: \"شب\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","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: /^(ق|ب)/i,\n  abbreviated: /^(ق\\.?\\s?م\\.?|ق\\.?\\s?د\\.?\\s?م\\.?|م\\.?\\s?|د\\.?\\s?م\\.?)/i,\n  wide: /^(قبل از میلاد|قبل از دوران مشترک|میلادی|دوران مشترک|بعد از میلاد)/i,\n};\nconst parseEraPatterns = {\n  any: [/^قبل/i, /^بعد/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^س‌م[1234]/i,\n  wide: /^سه‌ماهه [1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[جژفمآاماسند]/i,\n  abbreviated:\n    /^(جنو|ژانـ|ژانویه|فوریه|فور|مارس|آوریل|آپر|مه|می|ژوئن|جون|جول|جولـ|ژوئیه|اوت|آگو|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نوامـ|دسامبر|دسامـ|دسم)/i,\n  wide: /^(ژانویه|جنوری|فبروری|فوریه|مارچ|مارس|آپریل|اپریل|ایپریل|آوریل|مه|می|ژوئن|جون|جولای|ژوئیه|آگست|اگست|آگوست|اوت|سپتمبر|سپتامبر|اکتبر|اکتوبر|نوامبر|نومبر|دسامبر|دسمبر)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^(ژ|ج)/i,\n    /^ف/i,\n    /^م/i,\n    /^(آ|ا)/i,\n    /^م/i,\n    /^(ژ|ج)/i,\n    /^(ج|ژ)/i,\n    /^(آ|ا)/i,\n    /^س/i,\n    /^ا/i,\n    /^ن/i,\n    /^د/i,\n  ],\n\n  any: [\n    /^ژا/i,\n    /^ف/i,\n    /^ما/i,\n    /^آپ/i,\n    /^(می|مه)/i,\n    /^(ژوئن|جون)/i,\n    /^(ژوئی|جول)/i,\n    /^(اوت|آگ)/i,\n    /^س/i,\n    /^(اوک|اک)/i,\n    /^ن/i,\n    /^د/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[شیدسچپج]/i,\n  short: /^(ش|ج|1ش|2ش|3ش|4ش|5ش)/i,\n  abbreviated: /^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i,\n  wide: /^(یکشنبه|دوشنبه|سه‌شنبه|چهارشنبه|پنج‌شنبه|جمعه|شنبه)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ی/i, /^دو/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i],\n  any: [\n    /^(ی|1ش|یکشنبه)/i,\n    /^(د|2ش|دوشنبه)/i,\n    /^(س|3ش|سه‌شنبه)/i,\n    /^(چ|4ش|چهارشنبه)/i,\n    /^(پ|5ش|پنجشنبه)/i,\n    /^(ج|جمعه)/i,\n    /^(ش|شنبه)/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(ب|ق|ن|ظ|ص|ب.ظ.|ع|ش)/i,\n  abbreviated: /^(ق.ظ.|ب.ظ.|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i,\n  wide: /^(قبل‌ازظهر|نیمه‌شب|ظهر|صبح|بعدازظهر|عصر|شب)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^(ق|ق.ظ.|قبل‌ازظهر)/i,\n    pm: /^(ب|ب.ظ.|بعدازظهر)/i,\n    midnight: /^(‌نیمه‌شب|ن)/i,\n    noon: /^(ظ|ظهر)/i,\n    morning: /(ص|صبح)/i,\n    afternoon: /(ب|ب.ظ.|بعدازظهر)/i,\n    evening: /(ع|عصر)/i,\n    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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./fa-IR/_lib/formatDistance.js\";\nimport { formatLong } from \"./fa-IR/_lib/formatLong.js\";\nimport { formatRelative } from \"./fa-IR/_lib/formatRelative.js\";\nimport { localize } from \"./fa-IR/_lib/localize.js\";\nimport { match } from \"./fa-IR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Persian/Farsi locale (Iran).\n * @language Persian\n * @iso-639-2 ira\n * @author Morteza Ziyae [@mort3za](https://github.com/mort3za)\n */\nexport const faIR = {\n  code: \"fa-IR\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 6 /* Saturday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default faIR;\n","function futureSeconds(text) {\n  return text.replace(/sekuntia?/, \"sekunnin\");\n}\n\nfunction futureMinutes(text) {\n  return text.replace(/minuuttia?/, \"minuutin\");\n}\n\nfunction futureHours(text) {\n  return text.replace(/tuntia?/, \"tunnin\");\n}\n\nfunction futureDays(text) {\n  return text.replace(/päivää?/, \"päivän\");\n}\n\nfunction futureWeeks(text) {\n  return text.replace(/(viikko|viikkoa)/, \"viikon\");\n}\n\nfunction futureMonths(text) {\n  return text.replace(/(kuukausi|kuukautta)/, \"kuukauden\");\n}\n\nfunction futureYears(text) {\n  return text.replace(/(vuosi|vuotta)/, \"vuoden\");\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"alle sekunti\",\n    other: \"alle {{count}} sekuntia\",\n    futureTense: futureSeconds,\n  },\n\n  xSeconds: {\n    one: \"sekunti\",\n    other: \"{{count}} sekuntia\",\n    futureTense: futureSeconds,\n  },\n\n  halfAMinute: {\n    one: \"puoli minuuttia\",\n    other: \"puoli minuuttia\",\n    futureTense: (_text) => \"puolen minuutin\",\n  },\n\n  lessThanXMinutes: {\n    one: \"alle minuutti\",\n    other: \"alle {{count}} minuuttia\",\n    futureTense: futureMinutes,\n  },\n\n  xMinutes: {\n    one: \"minuutti\",\n    other: \"{{count}} minuuttia\",\n    futureTense: futureMinutes,\n  },\n\n  aboutXHours: {\n    one: \"noin tunti\",\n    other: \"noin {{count}} tuntia\",\n    futureTense: futureHours,\n  },\n\n  xHours: {\n    one: \"tunti\",\n    other: \"{{count}} tuntia\",\n    futureTense: futureHours,\n  },\n\n  xDays: {\n    one: \"päivä\",\n    other: \"{{count}} päivää\",\n    futureTense: futureDays,\n  },\n\n  aboutXWeeks: {\n    one: \"noin viikko\",\n    other: \"noin {{count}} viikkoa\",\n    futureTense: futureWeeks,\n  },\n\n  xWeeks: {\n    one: \"viikko\",\n    other: \"{{count}} viikkoa\",\n    futureTense: futureWeeks,\n  },\n\n  aboutXMonths: {\n    one: \"noin kuukausi\",\n    other: \"noin {{count}} kuukautta\",\n    futureTense: futureMonths,\n  },\n\n  xMonths: {\n    one: \"kuukausi\",\n    other: \"{{count}} kuukautta\",\n    futureTense: futureMonths,\n  },\n\n  aboutXYears: {\n    one: \"noin vuosi\",\n    other: \"noin {{count}} vuotta\",\n    futureTense: futureYears,\n  },\n\n  xYears: {\n    one: \"vuosi\",\n    other: \"{{count}} vuotta\",\n    futureTense: futureYears,\n  },\n\n  overXYears: {\n    one: \"yli vuosi\",\n    other: \"yli {{count}} vuotta\",\n    futureTense: futureYears,\n  },\n\n  almostXYears: {\n    one: \"lähes vuosi\",\n    other: \"lähes {{count}} vuotta\",\n    futureTense: futureYears,\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const tokenValue = formatDistanceLocale[token];\n  const result =\n    count === 1\n      ? tokenValue.one\n      : tokenValue.other.replace(\"{{count}}\", String(count));\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return tokenValue.futureTense(result) + \" kuluttua\";\n    } else {\n      return result + \" sitten\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"eeee d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"d.M.y\",\n};\n\nconst timeFormats = {\n  full: \"HH.mm.ss zzzz\",\n  long: \"HH.mm.ss z\",\n  medium: \"HH.mm.ss\",\n  short: \"HH.mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'klo' {{time}}\",\n  long: \"{{date}} 'klo' {{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: \"'viime' eeee 'klo' p\",\n  yesterday: \"'eilen klo' p\",\n  today: \"'tänään klo' p\",\n  tomorrow: \"'huomenna klo' p\",\n  nextWeek: \"'ensi' eeee 'klo' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"eaa.\", \"jaa.\"],\n  abbreviated: [\"eaa.\", \"jaa.\"],\n  wide: [\"ennen ajanlaskun alkua\", \"jälkeen ajanlaskun alun\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1. kvartaali\", \"2. kvartaali\", \"3. kvartaali\", \"4. kvartaali\"],\n};\n\nconst monthValues = {\n  narrow: [\"T\", \"H\", \"M\", \"H\", \"T\", \"K\", \"H\", \"E\", \"S\", \"L\", \"M\", \"J\"],\n  abbreviated: [\n    \"tammi\",\n    \"helmi\",\n    \"maalis\",\n    \"huhti\",\n    \"touko\",\n    \"kesä\",\n    \"heinä\",\n    \"elo\",\n    \"syys\",\n    \"loka\",\n    \"marras\",\n    \"joulu\",\n  ],\n\n  wide: [\n    \"tammikuu\",\n    \"helmikuu\",\n    \"maaliskuu\",\n    \"huhtikuu\",\n    \"toukokuu\",\n    \"kesäkuu\",\n    \"heinäkuu\",\n    \"elokuu\",\n    \"syyskuu\",\n    \"lokakuu\",\n    \"marraskuu\",\n    \"joulukuu\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: monthValues.narrow,\n  abbreviated: monthValues.abbreviated,\n  wide: [\n    \"tammikuuta\",\n    \"helmikuuta\",\n    \"maaliskuuta\",\n    \"huhtikuuta\",\n    \"toukokuuta\",\n    \"kesäkuuta\",\n    \"heinäkuuta\",\n    \"elokuuta\",\n    \"syyskuuta\",\n    \"lokakuuta\",\n    \"marraskuuta\",\n    \"joulukuuta\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"K\", \"T\", \"P\", \"L\"],\n  short: [\"su\", \"ma\", \"ti\", \"ke\", \"to\", \"pe\", \"la\"],\n  abbreviated: [\"sunn.\", \"maan.\", \"tiis.\", \"kesk.\", \"torst.\", \"perj.\", \"la\"],\n\n  wide: [\n    \"sunnuntai\",\n    \"maanantai\",\n    \"tiistai\",\n    \"keskiviikko\",\n    \"torstai\",\n    \"perjantai\",\n    \"lauantai\",\n  ],\n};\n\nconst formattingDayValues = {\n  narrow: dayValues.narrow,\n  short: dayValues.short,\n  abbreviated: dayValues.abbreviated,\n  wide: [\n    \"sunnuntaina\",\n    \"maanantaina\",\n    \"tiistaina\",\n    \"keskiviikkona\",\n    \"torstaina\",\n    \"perjantaina\",\n    \"lauantaina\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ap\",\n    pm: \"ip\",\n    midnight: \"keskiyö\",\n    noon: \"keskipäivä\",\n    morning: \"ap\",\n    afternoon: \"ip\",\n    evening: \"illalla\",\n    night: \"yöllä\",\n  },\n  abbreviated: {\n    am: \"ap\",\n    pm: \"ip\",\n    midnight: \"keskiyö\",\n    noon: \"keskipäivä\",\n    morning: \"ap\",\n    afternoon: \"ip\",\n    evening: \"illalla\",\n    night: \"yöllä\",\n  },\n  wide: {\n    am: \"ap\",\n    pm: \"ip\",\n    midnight: \"keskiyöllä\",\n    noon: \"keskipäivällä\",\n    morning: \"aamupäivällä\",\n    afternoon: \"iltapäivällä\",\n    evening: \"illalla\",\n    night: \"yöllä\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(e|j)/i,\n  abbreviated: /^(eaa.|jaa.)/i,\n  wide: /^(ennen ajanlaskun alkua|jälkeen ajanlaskun alun)/i,\n};\nconst parseEraPatterns = {\n  any: [/^e/i, /^j/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234]\\.? kvartaali/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[thmkeslj]/i,\n  abbreviated:\n    /^(tammi|helmi|maalis|huhti|touko|kesä|heinä|elo|syys|loka|marras|joulu)/i,\n  wide: /^(tammikuu|helmikuu|maaliskuu|huhtikuu|toukokuu|kesäkuu|heinäkuu|elokuu|syyskuu|lokakuu|marraskuu|joulukuu)(ta)?/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^t/i,\n    /^h/i,\n    /^m/i,\n    /^h/i,\n    /^t/i,\n    /^k/i,\n    /^h/i,\n    /^e/i,\n    /^s/i,\n    /^l/i,\n    /^m/i,\n    /^j/i,\n  ],\n\n  any: [\n    /^ta/i,\n    /^hel/i,\n    /^maa/i,\n    /^hu/i,\n    /^to/i,\n    /^k/i,\n    /^hei/i,\n    /^e/i,\n    /^s/i,\n    /^l/i,\n    /^mar/i,\n    /^j/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smtkpl]/i,\n  short: /^(su|ma|ti|ke|to|pe|la)/i,\n  abbreviated: /^(sunn.|maan.|tiis.|kesk.|torst.|perj.|la)/i,\n  wide: /^(sunnuntai|maanantai|tiistai|keskiviikko|torstai|perjantai|lauantai)(na)?/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^t/i, /^k/i, /^t/i, /^p/i, /^l/i],\n  any: [/^s/i, /^m/i, /^ti/i, /^k/i, /^to/i, /^p/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(ap|ip|keskiyö|keskipäivä|aamupäivällä|iltapäivällä|illalla|yöllä)/i,\n  any: /^(ap|ip|keskiyöllä|keskipäivällä|aamupäivällä|iltapäivällä|illalla|yöllä)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ap/i,\n    pm: /^ip/i,\n    midnight: /^keskiyö/i,\n    noon: /^keskipäivä/i,\n    morning: /aamupäivällä/i,\n    afternoon: /iltapäivällä/i,\n    evening: /illalla/i,\n    night: /yöllä/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 \"./fi/_lib/formatDistance.js\";\nimport { formatLong } from \"./fi/_lib/formatLong.js\";\nimport { formatRelative } from \"./fi/_lib/formatRelative.js\";\nimport { localize } from \"./fi/_lib/localize.js\";\nimport { match } from \"./fi/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Finnish locale.\n * @language Finnish\n * @iso-639-2 fin\n * @author Pyry-Samuli Lahti [@Pyppe](https://github.com/Pyppe)\n * @author Edo Rivai [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Samu Juvonen [@sjuvonen](https://github.com/sjuvonen)\n */\nexport const fi = {\n  code: \"fi\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default fi;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"moins d’une seconde\",\n    other: \"moins de {{count}} secondes\",\n  },\n\n  xSeconds: {\n    one: \"1 seconde\",\n    other: \"{{count}} secondes\",\n  },\n\n  halfAMinute: \"30 secondes\",\n\n  lessThanXMinutes: {\n    one: \"moins d’une minute\",\n    other: \"moins de {{count}} minutes\",\n  },\n\n  xMinutes: {\n    one: \"1 minute\",\n    other: \"{{count}} minutes\",\n  },\n\n  aboutXHours: {\n    one: \"environ 1 heure\",\n    other: \"environ {{count}} heures\",\n  },\n\n  xHours: {\n    one: \"1 heure\",\n    other: \"{{count}} heures\",\n  },\n\n  xDays: {\n    one: \"1 jour\",\n    other: \"{{count}} jours\",\n  },\n\n  aboutXWeeks: {\n    one: \"environ 1 semaine\",\n    other: \"environ {{count}} semaines\",\n  },\n\n  xWeeks: {\n    one: \"1 semaine\",\n    other: \"{{count}} semaines\",\n  },\n\n  aboutXMonths: {\n    one: \"environ 1 mois\",\n    other: \"environ {{count}} mois\",\n  },\n\n  xMonths: {\n    one: \"1 mois\",\n    other: \"{{count}} mois\",\n  },\n\n  aboutXYears: {\n    one: \"environ 1 an\",\n    other: \"environ {{count}} ans\",\n  },\n\n  xYears: {\n    one: \"1 an\",\n    other: \"{{count}} ans\",\n  },\n\n  overXYears: {\n    one: \"plus d’un an\",\n    other: \"plus de {{count}} ans\",\n  },\n\n  almostXYears: {\n    one: \"presqu’un an\",\n    other: \"presque {{count}} ans\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  let result;\n  const form = formatDistanceLocale[token];\n  if (typeof form === \"string\") {\n    result = form;\n  } else if (count === 1) {\n    result = form.one;\n  } else {\n    result = form.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"dans \" + result;\n    } else {\n      return \"il y a \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d MMMM y\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'à' {{time}}\",\n  long: \"{{date}} 'à' {{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: \"eeee 'dernier à' p\",\n  yesterday: \"'hier à' p\",\n  today: \"'aujourd’hui à' p\",\n  tomorrow: \"'demain à' p'\",\n  nextWeek: \"eeee 'prochain à' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"av. J.-C\", \"ap. J.-C\"],\n  abbreviated: [\"av. J.-C\", \"ap. J.-C\"],\n  wide: [\"avant Jésus-Christ\", \"après Jésus-Christ\"],\n};\n\nconst quarterValues = {\n  narrow: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  abbreviated: [\"1er trim.\", \"2ème trim.\", \"3ème trim.\", \"4ème trim.\"],\n  wide: [\"1er trimestre\", \"2ème trimestre\", \"3ème trimestre\", \"4ème trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"janv.\",\n    \"févr.\",\n    \"mars\",\n    \"avr.\",\n    \"mai\",\n    \"juin\",\n    \"juil.\",\n    \"août\",\n    \"sept.\",\n    \"oct.\",\n    \"nov.\",\n    \"déc.\",\n  ],\n\n  wide: [\n    \"janvier\",\n    \"février\",\n    \"mars\",\n    \"avril\",\n    \"mai\",\n    \"juin\",\n    \"juillet\",\n    \"août\",\n    \"septembre\",\n    \"octobre\",\n    \"novembre\",\n    \"décembre\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"D\", \"L\", \"M\", \"M\", \"J\", \"V\", \"S\"],\n  short: [\"di\", \"lu\", \"ma\", \"me\", \"je\", \"ve\", \"sa\"],\n  abbreviated: [\"dim.\", \"lun.\", \"mar.\", \"mer.\", \"jeu.\", \"ven.\", \"sam.\"],\n\n  wide: [\n    \"dimanche\",\n    \"lundi\",\n    \"mardi\",\n    \"mercredi\",\n    \"jeudi\",\n    \"vendredi\",\n    \"samedi\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"minuit\",\n    noon: \"midi\",\n    morning: \"mat.\",\n    afternoon: \"ap.m.\",\n    evening: \"soir\",\n    night: \"mat.\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"minuit\",\n    noon: \"midi\",\n    morning: \"matin\",\n    afternoon: \"après-midi\",\n    evening: \"soir\",\n    night: \"matin\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"minuit\",\n    noon: \"midi\",\n    morning: \"du matin\",\n    afternoon: \"de l’après-midi\",\n    evening: \"du soir\",\n    night: \"du matin\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = options?.unit;\n\n  if (number === 0) return \"0\";\n\n  const feminineUnits = [\"year\", \"week\", \"hour\", \"minute\", \"second\"];\n  let suffix;\n\n  if (number === 1) {\n    suffix = unit && feminineUnits.includes(unit) ? \"ère\" : \"er\";\n  } else {\n    suffix = \"ème\";\n  }\n\n  return number + suffix;\n};\n\nconst LONG_MONTHS_TOKENS = [\"MMM\", \"MMMM\"];\n\nexport const localize = {\n  preprocessor: (date, parts) => {\n    // Replaces the `do` tokens with `d` when used with long month tokens and the day of the month is greater than one.\n    // Use case \"do MMMM\" => 1er août, 29 août\n    // see https://github.com/date-fns/date-fns/issues/1391\n\n    if (date.getDate() === 1) return parts;\n\n    const hasLongMonthToken = parts.some(\n      (part) => part.isToken && LONG_MONTHS_TOKENS.includes(part.value),\n    );\n\n    if (!hasLongMonthToken) return parts;\n\n    return parts.map((part) =>\n      part.isToken && part.value === \"do\"\n        ? { isToken: true, value: \"d\" }\n        : part,\n    );\n  },\n\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(ième|ère|ème|er|e)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(av\\.J\\.C|ap\\.J\\.C|ap\\.J\\.-C)/i,\n  abbreviated: /^(av\\.J\\.-C|av\\.J-C|apr\\.J\\.-C|apr\\.J-C|ap\\.J-C)/i,\n  wide: /^(avant Jésus-Christ|après Jésus-Christ)/i,\n};\nconst parseEraPatterns = {\n  any: [/^av/i, /^ap/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^T?[1234]/i,\n  abbreviated: /^[1234](er|ème|e)? trim\\.?/i,\n  wide: /^[1234](er|ème|e)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated:\n    /^(janv|févr|mars|avr|mai|juin|juill|juil|août|sept|oct|nov|déc)\\.?/i,\n  wide: /^(janvier|février|mars|avril|mai|juin|juillet|août|septembre|octobre|novembre|décembre)/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    /^av/i,\n    /^ma/i,\n    /^juin/i,\n    /^juil/i,\n    /^ao/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[lmjvsd]/i,\n  short: /^(di|lu|ma|me|je|ve|sa)/i,\n  abbreviated: /^(dim|lun|mar|mer|jeu|ven|sam)\\.?/i,\n  wide: /^(dimanche|lundi|mardi|mercredi|jeudi|vendredi|samedi)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^di/i, /^lu/i, /^ma/i, /^me/i, /^je/i, /^ve/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|minuit|midi|mat\\.?|ap\\.?m\\.?|soir|nuit)/i,\n  any: /^([ap]\\.?\\s?m\\.?|du matin|de l'après[-\\s]midi|du soir|de la nuit)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^min/i,\n    noon: /^mid/i,\n    morning: /mat/i,\n    afternoon: /ap/i,\n    evening: /soir/i,\n    night: /nuit/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: (value) => parseInt(value),\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 \"./fr/_lib/formatDistance.js\";\nimport { formatLong } from \"./fr/_lib/formatLong.js\";\nimport { formatRelative } from \"./fr/_lib/formatRelative.js\";\nimport { localize } from \"./fr/_lib/localize.js\";\nimport { match } from \"./fr/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary French locale.\n * @language French\n * @iso-639-2 fra\n * @author Jean Dupouy [@izeau](https://github.com/izeau)\n * @author François B [@fbonzon](https://github.com/fbonzon)\n */\nexport const fr = {\n  code: \"fr\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default fr;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"menos dun segundo\",\n    other: \"menos de {{count}} segundos\",\n  },\n\n  xSeconds: {\n    one: \"1 segundo\",\n    other: \"{{count}} segundos\",\n  },\n\n  halfAMinute: \"medio minuto\",\n\n  lessThanXMinutes: {\n    one: \"menos dun minuto\",\n    other: \"menos de {{count}} minutos\",\n  },\n\n  xMinutes: {\n    one: \"1 minuto\",\n    other: \"{{count}} minutos\",\n  },\n\n  aboutXHours: {\n    one: \"arredor dunha hora\",\n    other: \"arredor de {{count}} horas\",\n  },\n\n  xHours: {\n    one: \"1 hora\",\n    other: \"{{count}} horas\",\n  },\n\n  xDays: {\n    one: \"1 día\",\n    other: \"{{count}} días\",\n  },\n\n  aboutXWeeks: {\n    one: \"arredor dunha semana\",\n    other: \"arredor de {{count}} semanas\",\n  },\n\n  xWeeks: {\n    one: \"1 semana\",\n    other: \"{{count}} semanas\",\n  },\n\n  aboutXMonths: {\n    one: \"arredor de 1 mes\",\n    other: \"arredor de {{count}} meses\",\n  },\n\n  xMonths: {\n    one: \"1 mes\",\n    other: \"{{count}} meses\",\n  },\n\n  aboutXYears: {\n    one: \"arredor dun ano\",\n    other: \"arredor de {{count}} anos\",\n  },\n\n  xYears: {\n    one: \"1 ano\",\n    other: \"{{count}} anos\",\n  },\n\n  overXYears: {\n    one: \"máis dun ano\",\n    other: \"máis de {{count}} anos\",\n  },\n\n  almostXYears: {\n    one: \"case un ano\",\n    other: \"case {{count}} anos\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"en \" + result;\n    } else {\n      return \"hai \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d 'de' MMMM y\",\n  long: \"d 'de' MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'ás' {{time}}\",\n  long: \"{{date}} 'ás' {{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: \"'o' eeee 'pasado á' LT\",\n  yesterday: \"'onte á' p\",\n  today: \"'hoxe á' p\",\n  tomorrow: \"'mañá á' p\",\n  nextWeek: \"eeee 'á' p\",\n  other: \"P\",\n};\n\nconst formatRelativeLocalePlural = {\n  lastWeek: \"'o' eeee 'pasado ás' p\",\n  yesterday: \"'onte ás' p\",\n  today: \"'hoxe ás' p\",\n  tomorrow: \"'mañá ás' p\",\n  nextWeek: \"eeee 'ás' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  if (date.getHours() !== 1) {\n    return formatRelativeLocalePlural[token];\n  }\n  return formatRelativeLocale[token];\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"AC\", \"DC\"],\n  abbreviated: [\"AC\", \"DC\"],\n  wide: [\"antes de cristo\", \"despois de cristo\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"e\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n  abbreviated: [\n    \"xan\",\n    \"feb\",\n    \"mar\",\n    \"abr\",\n    \"mai\",\n    \"xun\",\n    \"xul\",\n    \"ago\",\n    \"set\",\n    \"out\",\n    \"nov\",\n    \"dec\",\n  ],\n\n  wide: [\n    \"xaneiro\",\n    \"febreiro\",\n    \"marzo\",\n    \"abril\",\n    \"maio\",\n    \"xuño\",\n    \"xullo\",\n    \"agosto\",\n    \"setembro\",\n    \"outubro\",\n    \"novembro\",\n    \"decembro\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"d\", \"l\", \"m\", \"m\", \"j\", \"v\", \"s\"],\n  short: [\"do\", \"lu\", \"ma\", \"me\", \"xo\", \"ve\", \"sa\"],\n  abbreviated: [\"dom\", \"lun\", \"mar\", \"mer\", \"xov\", \"ven\", \"sab\"],\n  wide: [\"domingo\", \"luns\", \"martes\", \"mércores\", \"xoves\", \"venres\", \"sábado\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"mañá\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noite\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"medianoite\",\n    noon: \"mediodía\",\n    morning: \"mañá\",\n    afternoon: \"tarde\",\n    evening: \"tardiña\",\n    night: \"noite\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"medianoite\",\n    noon: \"mediodía\",\n    morning: \"mañá\",\n    afternoon: \"tarde\",\n    evening: \"tardiña\",\n    night: \"noite\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"da mañá\",\n    afternoon: \"da tarde\",\n    evening: \"da tardiña\",\n    night: \"da noite\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"medianoite\",\n    noon: \"mediodía\",\n    morning: \"da mañá\",\n    afternoon: \"da tarde\",\n    evening: \"da tardiña\",\n    night: \"da noite\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"medianoite\",\n    noon: \"mediodía\",\n    morning: \"da mañá\",\n    afternoon: \"da tarde\",\n    evening: \"da tardiña\",\n    night: \"da noite\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"º\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ac|dc|a|d)/i,\n  abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n  wide: /^(antes de cristo|antes da era com[uú]n|despois de cristo|era com[uú]n)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ac/i, /^dc/i],\n  wide: [\n    /^(antes de cristo|antes da era com[uú]n)/i,\n    /^(despois de cristo|era com[uú]n)/i,\n  ],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[xfmasond]/i,\n  abbreviated: /^(xan|feb|mar|abr|mai|xun|xul|ago|set|out|nov|dec)/i,\n  wide: /^(xaneiro|febreiro|marzo|abril|maio|xuño|xullo|agosto|setembro|outubro|novembro|decembro)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^x/i,\n    /^f/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^x/i,\n    /^x/i,\n    /^a/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^xan/i,\n    /^feb/i,\n    /^mar/i,\n    /^abr/i,\n    /^mai/i,\n    /^xun/i,\n    /^xul/i,\n    /^ago/i,\n    /^set/i,\n    /^out/i,\n    /^nov/i,\n    /^dec/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dlmxvs]/i,\n  short: /^(do|lu|ma|me|xo|ve|sa)/i,\n  abbreviated: /^(dom|lun|mar|mer|xov|ven|sab)/i,\n  wide: /^(domingo|luns|martes|m[eé]rcores|xoves|venres|s[áa]bado)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^x/i, /^v/i, /^s/i],\n  any: [/^do/i, /^lu/i, /^ma/i, /^me/i, /^xo/i, /^ve/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|md|(da|[aá]s) (mañ[aá]|tarde|noite))/i,\n  any: /^([ap]\\.?\\s?m\\.?|medianoite|mediod[ií]a|(da|[aá]s) (mañ[aá]|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mn/i,\n    noon: /^md/i,\n    morning: /mañ[aá]/i,\n    afternoon: /tarde/i,\n    evening: /tardiña/i,\n    night: /noite/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 \"./gl/_lib/formatDistance.js\";\nimport { formatLong } from \"./gl/_lib/formatLong.js\";\nimport { formatRelative } from \"./gl/_lib/formatRelative.js\";\nimport { localize } from \"./gl/_lib/localize.js\";\nimport { match } from \"./gl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Galician locale.\n * @language Galician\n * @iso-639-2 glg\n * @author Alberto Doval - Cocodin Technology[@cocodinTech](https://github.com/cocodinTech)\n * @author Fidel Pita [@fidelpita](https://github.com/fidelpita)\n */\nexport const gl = {\n  code: \"gl\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default gl;\n","// Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"હમણાં\", // CLDR #1461\n    other: \"​આશરે {{count}} સેકંડ\",\n  },\n\n  xSeconds: {\n    one: \"1 સેકંડ\",\n    other: \"{{count}} સેકંડ\",\n  },\n\n  halfAMinute: \"અડધી મિનિટ\",\n\n  lessThanXMinutes: {\n    one: \"આ મિનિટ\", // CLDR #1448\n    other: \"​આશરે {{count}} મિનિટ\",\n  },\n\n  xMinutes: {\n    one: \"1 મિનિટ\",\n    other: \"{{count}} મિનિટ\",\n  },\n\n  aboutXHours: {\n    one: \"​આશરે 1 કલાક\",\n    other: \"​આશરે {{count}} કલાક\",\n  },\n\n  xHours: {\n    one: \"1 કલાક\",\n    other: \"{{count}} કલાક\",\n  },\n\n  xDays: {\n    one: \"1 દિવસ\",\n    other: \"{{count}} દિવસ\",\n  },\n\n  aboutXWeeks: {\n    one: \"આશરે 1 અઠવાડિયું\",\n    other: \"આશરે {{count}} અઠવાડિયા\",\n  },\n\n  xWeeks: {\n    one: \"1 અઠવાડિયું\",\n    other: \"{{count}} અઠવાડિયા\",\n  },\n\n  aboutXMonths: {\n    one: \"આશરે 1 મહિનો\",\n    other: \"આશરે {{count}} મહિના\",\n  },\n\n  xMonths: {\n    one: \"1 મહિનો\",\n    other: \"{{count}} મહિના\",\n  },\n\n  aboutXYears: {\n    one: \"આશરે 1 વર્ષ\",\n    other: \"આશરે {{count}} વર્ષ\",\n  },\n\n  xYears: {\n    one: \"1 વર્ષ\",\n    other: \"{{count}} વર્ષ\",\n  },\n\n  overXYears: {\n    one: \"1 વર્ષથી વધુ\",\n    other: \"{{count}} વર્ષથી વધુ\",\n  },\n\n  almostXYears: {\n    one: \"લગભગ 1 વર્ષ\",\n    other: \"લગભગ {{count}} વર્ષ\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"માં\";\n    } else {\n      return result + \" પહેલાં\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n//Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\nconst dateFormats = {\n  full: \"EEEE, d MMMM, y\", // CLDR #1825\n  long: \"d MMMM, y\", // CLDR #1826\n  medium: \"d MMM, y\", // CLDR #1827\n  short: \"d/M/yy\", // CLDR #1828\n};\n\nconst timeFormats = {\n  full: \"hh:mm:ss a zzzz\", // CLDR #1829\n  long: \"hh:mm:ss a z\", // CLDR #1830\n  medium: \"hh:mm:ss a\", // CLDR #1831\n  short: \"hh:mm a\", // CLDR #1832\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\", // CLDR #1833\n  long: \"{{date}} {{time}}\", // CLDR #1834\n  medium: \"{{date}} {{time}}\", // CLDR #1835\n  short: \"{{date}} {{time}}\", // CLDR #1836\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","// Source: https://www.unicode.org/cldr/charts/32/summary/gu.html\n\nconst formatRelativeLocale = {\n  lastWeek: \"'પાછલા' eeee p\", // CLDR #1384\n  yesterday: \"'ગઈકાલે' p\", // CLDR #1409\n  today: \"'આજે' p\", // CLDR #1410\n  tomorrow: \"'આવતીકાલે' p\", // CLDR #1411\n  nextWeek: \"eeee p\", // CLDR #1386\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1621 - #1630\nconst eraValues = {\n  narrow: [\"ઈસપૂ\", \"ઈસ\"],\n  abbreviated: [\"ઈ.સ.પૂર્વે\", \"ઈ.સ.\"],\n  wide: [\"ઈસવીસન પૂર્વે\", \"ઈસવીસન\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1631 - #1654\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1લો ત્રિમાસ\", \"2જો ત્રિમાસ\", \"3જો ત્રિમાસ\", \"4થો ત્રિમાસ\"],\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.\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1655 - #1726\nconst monthValues = {\n  narrow: [\"જા\", \"ફે\", \"મા\", \"એ\", \"મે\", \"જૂ\", \"જુ\", \"ઓ\", \"સ\", \"ઓ\", \"ન\", \"ડિ\"],\n\n  abbreviated: [\n    \"જાન્યુ\",\n    \"ફેબ્રુ\",\n    \"માર્ચ\",\n    \"એપ્રિલ\",\n    \"મે\",\n    \"જૂન\",\n    \"જુલાઈ\",\n    \"ઑગસ્ટ\",\n    \"સપ્ટે\",\n    \"ઓક્ટો\",\n    \"નવે\",\n    \"ડિસે\",\n  ],\n\n  wide: [\n    \"જાન્યુઆરી\",\n    \"ફેબ્રુઆરી\",\n    \"માર્ચ\",\n    \"એપ્રિલ\",\n    \"મે\",\n    \"જૂન\",\n    \"જુલાઇ\",\n    \"ઓગસ્ટ\",\n    \"સપ્ટેમ્બર\",\n    \"ઓક્ટોબર\",\n    \"નવેમ્બર\",\n    \"ડિસેમ્બર\",\n  ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1727 - #1768\nconst dayValues = {\n  narrow: [\"ર\", \"સો\", \"મં\", \"બુ\", \"ગુ\", \"શુ\", \"શ\"],\n  short: [\"ર\", \"સો\", \"મં\", \"બુ\", \"ગુ\", \"શુ\", \"શ\"],\n  abbreviated: [\"રવિ\", \"સોમ\", \"મંગળ\", \"બુધ\", \"ગુરુ\", \"શુક્ર\", \"શનિ\"],\n  wide: [\n    \"રવિવાર\" /* Sunday */,\n    \"સોમવાર\" /* Monday */,\n    \"મંગળવાર\" /* Tuesday */,\n    \"બુધવાર\" /* Wednesday */,\n    \"ગુરુવાર\" /* Thursday */,\n    \"શુક્રવાર\" /* Friday */,\n    \"શનિવાર\" /* Saturday */,\n  ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/gu.html\n// #1783 - #1824\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"મ.રાત્રિ\",\n    noon: \"બ.\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"​મધ્યરાત્રિ\",\n    noon: \"બપોરે\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"​મધ્યરાત્રિ\",\n    noon: \"બપોરે\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"મ.રાત્રિ\",\n    noon: \"બપોરે\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"મધ્યરાત્રિ\",\n    noon: \"બપોરે\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"​મધ્યરાત્રિ\",\n    noon: \"બપોરે\",\n    morning: \"સવારે\",\n    afternoon: \"બપોરે\",\n    evening: \"સાંજે\",\n    night: \"રાત્રે\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(લ|જ|થ|ઠ્ઠ|મ)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ઈસપૂ|ઈસ)/i,\n  abbreviated: /^(ઈ\\.સ\\.પૂર્વે|ઈ\\.સ\\.)/i,\n  wide: /^(ઈસવીસન\\sપૂર્વે|ઈસવીસન)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ઈસપૂ/i, /^ઈસ/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](લો|જો|થો)? ત્રિમાસ/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  // eslint-disable-next-line no-misleading-character-class\n  narrow: /^[જાફેમાએમેજૂજુઓસઓનડિ]/i,\n  abbreviated:\n    /^(જાન્યુ|ફેબ્રુ|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઈ|ઑગસ્ટ|સપ્ટે|ઓક્ટો|નવે|ડિસે)/i,\n  wide: /^(જાન્યુઆરી|ફેબ્રુઆરી|માર્ચ|એપ્રિલ|મે|જૂન|જુલાઇ|ઓગસ્ટ|સપ્ટેમ્બર|ઓક્ટોબર|નવેમ્બર|ડિસેમ્બર)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^જા/i,\n    /^ફે/i,\n    /^મા/i,\n    /^એ/i,\n    /^મે/i,\n    /^જૂ/i,\n    /^જુ/i,\n    /^ઑગ/i,\n    /^સ/i,\n    /^ઓક્ટો/i,\n    /^ન/i,\n    /^ડિ/i,\n  ],\n\n  any: [\n    /^જા/i,\n    /^ફે/i,\n    /^મા/i,\n    /^એ/i,\n    /^મે/i,\n    /^જૂ/i,\n    /^જુ/i,\n    /^ઑગ/i,\n    /^સ/i,\n    /^ઓક્ટો/i,\n    /^ન/i,\n    /^ડિ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,\n  short: /^(ર|સો|મં|બુ|ગુ|શુ|શ)/i,\n  abbreviated: /^(રવિ|સોમ|મંગળ|બુધ|ગુરુ|શુક્ર|શનિ)/i,\n  wide: /^(રવિવાર|સોમવાર|મંગળવાર|બુધવાર|ગુરુવાર|શુક્રવાર|શનિવાર)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ર/i, /^સો/i, /^મં/i, /^બુ/i, /^ગુ/i, /^શુ/i, /^શ/i],\n  any: [/^ર/i, /^સો/i, /^મં/i, /^બુ/i, /^ગુ/i, /^શુ/i, /^શ/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|મ\\.?|સ|બ|સાં|રા)/i,\n  any: /^(a|p|મ\\.?|સ|બ|સાં|રા)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^મ\\.?/i,\n    noon: /^બ/i,\n    morning: /સ/i,\n    afternoon: /બ/i,\n    evening: /સાં/i,\n    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 \"./gu/_lib/formatDistance.js\";\nimport { formatLong } from \"./gu/_lib/formatLong.js\";\nimport { formatRelative } from \"./gu/_lib/formatRelative.js\";\nimport { localize } from \"./gu/_lib/localize.js\";\nimport { match } from \"./gu/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Gujarati locale (India).\n * @language Gujarati\n * @iso-639-2 guj\n * @author Manaday Mavani [@ManadayM](https://github.com/manadaym)\n */\nexport const gu = {\n  code: \"gu\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default gu;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"פחות משנייה\",\n    two: \"פחות משתי שניות\",\n    other: \"פחות מ־{{count}} שניות\",\n  },\n\n  xSeconds: {\n    one: \"שנייה\",\n    two: \"שתי שניות\",\n    other: \"{{count}} שניות\",\n  },\n\n  halfAMinute: \"חצי דקה\",\n\n  lessThanXMinutes: {\n    one: \"פחות מדקה\",\n    two: \"פחות משתי דקות\",\n    other: \"פחות מ־{{count}} דקות\",\n  },\n\n  xMinutes: {\n    one: \"דקה\",\n    two: \"שתי דקות\",\n    other: \"{{count}} דקות\",\n  },\n\n  aboutXHours: {\n    one: \"כשעה\",\n    two: \"כשעתיים\",\n    other: \"כ־{{count}} שעות\",\n  },\n\n  xHours: {\n    one: \"שעה\",\n    two: \"שעתיים\",\n    other: \"{{count}} שעות\",\n  },\n\n  xDays: {\n    one: \"יום\",\n    two: \"יומיים\",\n    other: \"{{count}} ימים\",\n  },\n\n  aboutXWeeks: {\n    one: \"כשבוע\",\n    two: \"כשבועיים\",\n    other: \"כ־{{count}} שבועות\",\n  },\n\n  xWeeks: {\n    one: \"שבוע\",\n    two: \"שבועיים\",\n    other: \"{{count}} שבועות\",\n  },\n\n  aboutXMonths: {\n    one: \"כחודש\",\n    two: \"כחודשיים\",\n    other: \"כ־{{count}} חודשים\",\n  },\n\n  xMonths: {\n    one: \"חודש\",\n    two: \"חודשיים\",\n    other: \"{{count}} חודשים\",\n  },\n\n  aboutXYears: {\n    one: \"כשנה\",\n    two: \"כשנתיים\",\n    other: \"כ־{{count}} שנים\",\n  },\n\n  xYears: {\n    one: \"שנה\",\n    two: \"שנתיים\",\n    other: \"{{count}} שנים\",\n  },\n\n  overXYears: {\n    one: \"יותר משנה\",\n    two: \"יותר משנתיים\",\n    other: \"יותר מ־{{count}} שנים\",\n  },\n\n  almostXYears: {\n    one: \"כמעט שנה\",\n    two: \"כמעט שנתיים\",\n    other: \"כמעט {{count}} שנים\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  // Return word instead of `in one day` or `one day ago`\n  if (token === \"xDays\" && options?.addSuffix && count <= 2) {\n    if (options.comparison && options.comparison > 0) {\n      return count === 1 ? \"מחר\" : \"מחרתיים\";\n    }\n\n    return count === 1 ? \"אתמול\" : \"שלשום\";\n  }\n\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 if (count === 2) {\n    result = tokenValue.two;\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"בעוד \" + result;\n    } else {\n      return \"לפני \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d בMMMM y\",\n  long: \"d בMMMM y\",\n  medium: \"d בMMM y\",\n  short: \"d.M.y\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'בשעה' {{time}}\",\n  long: \"{{date}} 'בשעה' {{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: \"eeee 'שעבר בשעה' p\",\n  yesterday: \"'אתמול בשעה' p\",\n  today: \"'היום בשעה' p\",\n  tomorrow: \"'מחר בשעה' p\",\n  nextWeek: \"eeee 'בשעה' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"לפנה״ס\", \"לספירה\"],\n  abbreviated: [\"לפנה״ס\", \"לספירה\"],\n  wide: [\"לפני הספירה\", \"לספירה\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"רבעון 1\", \"רבעון 2\", \"רבעון 3\", \"רבעון 4\"],\n};\n\nconst monthValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n\n  abbreviated: [\n    \"ינו׳\",\n    \"פבר׳\",\n    \"מרץ\",\n    \"אפר׳\",\n    \"מאי\",\n    \"יוני\",\n    \"יולי\",\n    \"אוג׳\",\n    \"ספט׳\",\n    \"אוק׳\",\n    \"נוב׳\",\n    \"דצמ׳\",\n  ],\n\n  wide: [\n    \"ינואר\",\n    \"פברואר\",\n    \"מרץ\",\n    \"אפריל\",\n    \"מאי\",\n    \"יוני\",\n    \"יולי\",\n    \"אוגוסט\",\n    \"ספטמבר\",\n    \"אוקטובר\",\n    \"נובמבר\",\n    \"דצמבר\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"א׳\", \"ב׳\", \"ג׳\", \"ד׳\", \"ה׳\", \"ו׳\", \"ש׳\"],\n  short: [\"א׳\", \"ב׳\", \"ג׳\", \"ד׳\", \"ה׳\", \"ו׳\", \"ש׳\"],\n  abbreviated: [\n    \"יום א׳\",\n    \"יום ב׳\",\n    \"יום ג׳\",\n    \"יום ד׳\",\n    \"יום ה׳\",\n    \"יום ו׳\",\n    \"שבת\",\n  ],\n\n  wide: [\n    \"יום ראשון\",\n    \"יום שני\",\n    \"יום שלישי\",\n    \"יום רביעי\",\n    \"יום חמישי\",\n    \"יום שישי\",\n    \"יום שבת\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בוקר\",\n    afternoon: \"אחר הצהריים\",\n    evening: \"ערב\",\n    night: \"לילה\",\n  },\n  abbreviated: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בוקר\",\n    afternoon: \"אחר הצהריים\",\n    evening: \"ערב\",\n    night: \"לילה\",\n  },\n  wide: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בוקר\",\n    afternoon: \"אחר הצהריים\",\n    evening: \"ערב\",\n    night: \"לילה\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בבוקר\",\n    afternoon: \"בצהריים\",\n    evening: \"בערב\",\n    night: \"בלילה\",\n  },\n  abbreviated: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בבוקר\",\n    afternoon: \"אחר הצהריים\",\n    evening: \"בערב\",\n    night: \"בלילה\",\n  },\n  wide: {\n    am: \"לפנה״צ\",\n    pm: \"אחה״צ\",\n    midnight: \"חצות\",\n    noon: \"צהריים\",\n    morning: \"בבוקר\",\n    afternoon: \"אחר הצהריים\",\n    evening: \"בערב\",\n    night: \"בלילה\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n\n  // We only show words till 10\n  if (number <= 0 || number > 10) return String(number);\n\n  const unit = String(options?.unit);\n\n  const isFemale = [\"year\", \"hour\", \"minute\", \"second\"].indexOf(unit) >= 0;\n\n  const male = [\n    \"ראשון\",\n    \"שני\",\n    \"שלישי\",\n    \"רביעי\",\n    \"חמישי\",\n    \"שישי\",\n    \"שביעי\",\n    \"שמיני\",\n    \"תשיעי\",\n    \"עשירי\",\n  ];\n\n  const female = [\n    \"ראשונה\",\n    \"שנייה\",\n    \"שלישית\",\n    \"רביעית\",\n    \"חמישית\",\n    \"שישית\",\n    \"שביעית\",\n    \"שמינית\",\n    \"תשיעית\",\n    \"עשירית\",\n  ];\n\n  const index = number - 1;\n  return isFemale ? female[index] : male[index];\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern =\n  /^(\\d+|(ראשון|שני|שלישי|רביעי|חמישי|שישי|שביעי|שמיני|תשיעי|עשירי|ראשונה|שנייה|שלישית|רביעית|חמישית|שישית|שביעית|שמינית|תשיעית|עשירית))/i;\nconst parseOrdinalNumberPattern = /^(\\d+|רא|שנ|של|רב|ח|שי|שב|שמ|ת|ע)/i;\n\nconst matchEraPatterns = {\n  narrow: /^ל(ספירה|פנה״ס)/i,\n  abbreviated: /^ל(ספירה|פנה״ס)/i,\n  wide: /^ל(פני ה)?ספירה/i,\n};\nconst parseEraPatterns = {\n  any: [/^לפ/i, /^לס/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^רבעון [1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^\\d+/i,\n  abbreviated: /^(ינו|פבר|מרץ|אפר|מאי|יוני|יולי|אוג|ספט|אוק|נוב|דצמ)׳?/i,\n  wide: /^(ינואר|פברואר|מרץ|אפריל|מאי|יוני|יולי|אוגוסט|ספטמבר|אוקטובר|נובמבר|דצמבר)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^1$/i,\n    /^2/i,\n    /^3/i,\n    /^4/i,\n    /^5/i,\n    /^6/i,\n    /^7/i,\n    /^8/i,\n    /^9/i,\n    /^10/i,\n    /^11/i,\n    /^12/i,\n  ],\n\n  any: [\n    /^ינ/i,\n    /^פ/i,\n    /^מר/i,\n    /^אפ/i,\n    /^מא/i,\n    /^יונ/i,\n    /^יול/i,\n    /^אוג/i,\n    /^ס/i,\n    /^אוק/i,\n    /^נ/i,\n    /^ד/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[אבגדהוש]׳/i,\n  short: /^[אבגדהוש]׳/i,\n  abbreviated: /^(שבת|יום (א|ב|ג|ד|ה|ו)׳)/i,\n  wide: /^יום (ראשון|שני|שלישי|רביעי|חמישי|שישי|שבת)/i,\n};\nconst parseDayPatterns = {\n  abbreviated: [/א׳$/i, /ב׳$/i, /ג׳$/i, /ד׳$/i, /ה׳$/i, /ו׳$/i, /^ש/i],\n  wide: [/ן$/i, /ני$/i, /לישי$/i, /עי$/i, /מישי$/i, /שישי$/i, /ת$/i],\n  any: [/^א/i, /^ב/i, /^ג/i, /^ד/i, /^ה/i, /^ו/i, /^ש/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(אחר ה|ב)?(חצות|צהריים|בוקר|ערב|לילה|אחה״צ|לפנה״צ)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^לפ/i,\n    pm: /^אחה/i,\n    midnight: /^ח/i,\n    noon: /^צ/i,\n    morning: /בוקר/i,\n    afternoon: /בצ|אחר/i,\n    evening: /ערב/i,\n    night: /לילה/i,\n  },\n};\n\nconst ordinalName = [\"רא\", \"שנ\", \"של\", \"רב\", \"ח\", \"שי\", \"שב\", \"שמ\", \"ת\", \"ע\"];\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: (value) => {\n      const number = parseInt(value, 10);\n      return isNaN(number) ? ordinalName.indexOf(value) + 1 : number;\n    },\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 \"./he/_lib/formatDistance.js\";\nimport { formatLong } from \"./he/_lib/formatLong.js\";\nimport { formatRelative } from \"./he/_lib/formatRelative.js\";\nimport { localize } from \"./he/_lib/localize.js\";\nimport { match } from \"./he/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Hebrew locale.\n * @language Hebrew\n * @iso-639-2 heb\n * @author Nir Lahad [@nirlah](https://github.com/nirlah)\n */\nexport const he = {\n  code: \"he\",\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 he;\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst numberValues = {\n  locale: {\n    1: \"१\",\n    2: \"२\",\n    3: \"३\",\n    4: \"४\",\n    5: \"५\",\n    6: \"६\",\n    7: \"७\",\n    8: \"८\",\n    9: \"९\",\n    0: \"०\",\n  },\n  number: {\n    \"१\": \"1\",\n    \"२\": \"2\",\n    \"३\": \"3\",\n    \"४\": \"4\",\n    \"५\": \"5\",\n    \"६\": \"6\",\n    \"७\": \"7\",\n    \"८\": \"8\",\n    \"९\": \"9\",\n    \"०\": \"0\",\n  },\n};\n\n// CLDR #1585 - #1592\nconst eraValues = {\n  narrow: [\"ईसा-पूर्व\", \"ईस्वी\"],\n  abbreviated: [\"ईसा-पूर्व\", \"ईस्वी\"],\n  wide: [\"ईसा-पूर्व\", \"ईसवी सन\"],\n};\n\n// CLDR #1593 - #1616\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"ति1\", \"ति2\", \"ति3\", \"ति4\"],\n  wide: [\"पहली तिमाही\", \"दूसरी तिमाही\", \"तीसरी तिमाही\", \"चौथी तिमाही\"],\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.\n// https://www.unicode.org/cldr/charts/32/summary/hi.html\n// CLDR #1617 - #1688\nconst monthValues = {\n  narrow: [\n    \"ज\",\n    \"फ़\",\n    \"मा\",\n    \"अ\",\n    \"मई\",\n    \"जू\",\n    \"जु\",\n    \"अग\",\n    \"सि\",\n    \"अक्टू\",\n    \"न\",\n    \"दि\",\n  ],\n\n  abbreviated: [\n    \"जन\",\n    \"फ़र\",\n    \"मार्च\",\n    \"अप्रैल\",\n    \"मई\",\n    \"जून\",\n    \"जुल\",\n    \"अग\",\n    \"सित\",\n    \"अक्टू\",\n    \"नव\",\n    \"दिस\",\n  ],\n\n  wide: [\n    \"जनवरी\",\n    \"फ़रवरी\",\n    \"मार्च\",\n    \"अप्रैल\",\n    \"मई\",\n    \"जून\",\n    \"जुलाई\",\n    \"अगस्त\",\n    \"सितंबर\",\n    \"अक्टूबर\",\n    \"नवंबर\",\n    \"दिसंबर\",\n  ],\n};\n\n// CLDR #1689 - #1744\nconst dayValues = {\n  narrow: [\"र\", \"सो\", \"मं\", \"बु\", \"गु\", \"शु\", \"श\"],\n  short: [\"र\", \"सो\", \"मं\", \"बु\", \"गु\", \"शु\", \"श\"],\n  abbreviated: [\"रवि\", \"सोम\", \"मंगल\", \"बुध\", \"गुरु\", \"शुक्र\", \"शनि\"],\n  wide: [\n    \"रविवार\",\n    \"सोमवार\",\n    \"मंगलवार\",\n    \"बुधवार\",\n    \"गुरुवार\",\n    \"शुक्रवार\",\n    \"शनिवार\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n  abbreviated: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n  wide: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n  abbreviated: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n  wide: {\n    am: \"पूर्वाह्न\",\n    pm: \"अपराह्न\",\n    midnight: \"मध्यरात्रि\",\n    noon: \"दोपहर\",\n    morning: \"सुबह\",\n    afternoon: \"दोपहर\",\n    evening: \"शाम\",\n    night: \"रात\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return numberToLocale(number);\n};\n\nexport function localeToNumber(locale) {\n  const enNumber = locale.toString().replace(/[१२३४५६७८९०]/g, function (match) {\n    return numberValues.number[match];\n  });\n  return Number(enNumber);\n}\n\nexport function numberToLocale(enNumber) {\n  return enNumber.toString().replace(/\\d/g, function (match) {\n    return numberValues.locale[match];\n  });\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","import { numberToLocale } from \"./localize.js\";\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/hi.html\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"१ सेकंड से कम\", // CLDR #1310\n    other: \"{{count}} सेकंड से कम\",\n  },\n\n  xSeconds: {\n    one: \"१ सेकंड\",\n    other: \"{{count}} सेकंड\",\n  },\n\n  halfAMinute: \"आधा मिनट\",\n\n  lessThanXMinutes: {\n    one: \"१ मिनट से कम\",\n    other: \"{{count}} मिनट से कम\",\n  },\n\n  xMinutes: {\n    one: \"१ मिनट\", // CLDR #1307\n    other: \"{{count}} मिनट\",\n  },\n\n  aboutXHours: {\n    one: \"लगभग १ घंटा\",\n    other: \"लगभग {{count}} घंटे\",\n  },\n\n  xHours: {\n    one: \"१ घंटा\", // CLDR #1304\n    other: \"{{count}} घंटे\", // CLDR #4467\n  },\n\n  xDays: {\n    one: \"१ दिन\", // CLDR #1286\n    other: \"{{count}} दिन\",\n  },\n\n  aboutXWeeks: {\n    one: \"लगभग १ सप्ताह\",\n    other: \"लगभग {{count}} सप्ताह\",\n  },\n\n  xWeeks: {\n    one: \"१ सप्ताह\",\n    other: \"{{count}} सप्ताह\",\n  },\n\n  aboutXMonths: {\n    one: \"लगभग १ महीना\",\n    other: \"लगभग {{count}} महीने\",\n  },\n\n  xMonths: {\n    one: \"१ महीना\",\n    other: \"{{count}} महीने\",\n  },\n\n  aboutXYears: {\n    one: \"लगभग १ वर्ष\",\n    other: \"लगभग {{count}} वर्ष\", // CLDR #4823\n  },\n\n  xYears: {\n    one: \"१ वर्ष\",\n    other: \"{{count}} वर्ष\",\n  },\n\n  overXYears: {\n    one: \"१ वर्ष से अधिक\",\n    other: \"{{count}} वर्ष से अधिक\",\n  },\n\n  almostXYears: {\n    one: \"लगभग १ वर्ष\",\n    other: \"लगभग {{count}} वर्ष\",\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}}\", numberToLocale(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"मे \";\n    } else {\n      return result + \" पहले\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM, y\", // CLDR #1787\n  long: \"do MMMM, y\", // CLDR #1788\n  medium: \"d MMM, y\", // CLDR #1789\n  short: \"dd/MM/yyyy\", // CLDR #1790\n};\n\nconst timeFormats = {\n  full: \"h:mm:ss a zzzz\", // CLDR #1791\n  long: \"h:mm:ss a z\", // CLDR #1792\n  medium: \"h:mm:ss a\", // CLDR #1793\n  short: \"h:mm a\", // CLDR #1794\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'को' {{time}}\", // CLDR #1795\n  long: \"{{date}} 'को' {{time}}\", // CLDR #1796\n  medium: \"{{date}}, {{time}}\", // CLDR #1797\n  short: \"{{date}}, {{time}}\", // CLDR #1798\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: \"'पिछले' eeee p\",\n  yesterday: \"'कल' p\",\n  today: \"'आज' p\",\n  tomorrow: \"'कल' p\",\n  nextWeek: \"eeee 'को' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { localeToNumber } from \"./localize.js\";\n\nconst matchOrdinalNumberPattern = /^[०१२३४५६७८९]+/i;\nconst parseOrdinalNumberPattern = /^[०१२३४५६७८९]+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ईसा-पूर्व|ईस्वी)/i,\n  abbreviated: /^(ईसा\\.?\\s?पूर्व\\.?|ईसा\\.?)/i,\n  wide: /^(ईसा-पूर्व|ईसवी पूर्व|ईसवी सन|ईसवी)/i,\n};\n\nconst parseEraPatterns = {\n  any: [/^b/i, /^(a|c)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^ति[1234]/i,\n  wide: /^[1234](पहली|दूसरी|तीसरी|चौथी)? तिमाही/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  // eslint-disable-next-line no-misleading-character-class\n  narrow: /^[जफ़माअप्मईजूनजुअगसिअक्तनदि]/i,\n  abbreviated: /^(जन|फ़र|मार्च|अप्|मई|जून|जुल|अग|सित|अक्तू|नव|दिस)/i,\n  wide: /^(जनवरी|फ़रवरी|मार्च|अप्रैल|मई|जून|जुलाई|अगस्त|सितंबर|अक्तूबर|नवंबर|दिसंबर)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ज/i,\n    /^फ़/i,\n    /^मा/i,\n    /^अप्/i,\n    /^मई/i,\n    /^जू/i,\n    /^जु/i,\n    /^अग/i,\n    /^सि/i,\n    /^अक्तू/i,\n    /^न/i,\n    /^दि/i,\n  ],\n\n  any: [\n    /^जन/i,\n    /^फ़/i,\n    /^मा/i,\n    /^अप्/i,\n    /^मई/i,\n    /^जू/i,\n    /^जु/i,\n    /^अग/i,\n    /^सि/i,\n    /^अक्तू/i,\n    /^नव/i,\n    /^दिस/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  // eslint-disable-next-line no-misleading-character-class\n  narrow: /^[रविसोममंगलबुधगुरुशुक्रशनि]/i,\n  short: /^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,\n  abbreviated: /^(रवि|सोम|मंगल|बुध|गुरु|शुक्र|शनि)/i,\n  wide: /^(रविवार|सोमवार|मंगलवार|बुधवार|गुरुवार|शुक्रवार|शनिवार)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^रवि/i, /^सोम/i, /^मंगल/i, /^बुध/i, /^गुरु/i, /^शुक्र/i, /^शनि/i],\n\n  any: [/^रवि/i, /^सोम/i, /^मंगल/i, /^बुध/i, /^गुरु/i, /^शुक्र/i, /^शनि/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(पू|अ|म|द.\\?|सु|दो|शा|रा)/i,\n  any: /^(पूर्वाह्न|अपराह्न|म|द.\\?|सु|दो|शा|रा)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^पूर्वाह्न/i,\n    pm: /^अपराह्न/i,\n    midnight: /^मध्य/i,\n    noon: /^दो/i,\n    morning: /सु/i,\n    afternoon: /दो/i,\n    evening: /शा/i,\n    night: /रा/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: localeToNumber,\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 \"./hi/_lib/formatDistance.js\";\nimport { formatLong } from \"./hi/_lib/formatLong.js\";\nimport { formatRelative } from \"./hi/_lib/formatRelative.js\";\nimport { localize } from \"./hi/_lib/localize.js\";\nimport { match } from \"./hi/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Hindi locale (India).\n * @language Hindi\n * @iso-639-2 hin\n * @author Mukesh Mandiwal [@mukeshmandiwal](https://github.com/mukeshmandiwal)\n */\nexport const hi = {\n  code: \"hi\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default hi;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      standalone: \"manje od 1 sekunde\",\n      withPrepositionAgo: \"manje od 1 sekunde\",\n      withPrepositionIn: \"manje od 1 sekundu\",\n    },\n    dual: \"manje od {{count}} sekunde\",\n    other: \"manje od {{count}} sekundi\",\n  },\n\n  xSeconds: {\n    one: {\n      standalone: \"1 sekunda\",\n      withPrepositionAgo: \"1 sekunde\",\n      withPrepositionIn: \"1 sekundu\",\n    },\n    dual: \"{{count}} sekunde\",\n    other: \"{{count}} sekundi\",\n  },\n\n  halfAMinute: \"pola minute\",\n\n  lessThanXMinutes: {\n    one: {\n      standalone: \"manje od 1 minute\",\n      withPrepositionAgo: \"manje od 1 minute\",\n      withPrepositionIn: \"manje od 1 minutu\",\n    },\n    dual: \"manje od {{count}} minute\",\n    other: \"manje od {{count}} minuta\",\n  },\n\n  xMinutes: {\n    one: {\n      standalone: \"1 minuta\",\n      withPrepositionAgo: \"1 minute\",\n      withPrepositionIn: \"1 minutu\",\n    },\n    dual: \"{{count}} minute\",\n    other: \"{{count}} minuta\",\n  },\n\n  aboutXHours: {\n    one: {\n      standalone: \"oko 1 sat\",\n      withPrepositionAgo: \"oko 1 sat\",\n      withPrepositionIn: \"oko 1 sat\",\n    },\n    dual: \"oko {{count}} sata\",\n    other: \"oko {{count}} sati\",\n  },\n\n  xHours: {\n    one: {\n      standalone: \"1 sat\",\n      withPrepositionAgo: \"1 sat\",\n      withPrepositionIn: \"1 sat\",\n    },\n    dual: \"{{count}} sata\",\n    other: \"{{count}} sati\",\n  },\n\n  xDays: {\n    one: {\n      standalone: \"1 dan\",\n      withPrepositionAgo: \"1 dan\",\n      withPrepositionIn: \"1 dan\",\n    },\n    dual: \"{{count}} dana\",\n    other: \"{{count}} dana\",\n  },\n\n  aboutXWeeks: {\n    one: {\n      standalone: \"oko 1 tjedan\",\n      withPrepositionAgo: \"oko 1 tjedan\",\n      withPrepositionIn: \"oko 1 tjedan\",\n    },\n    dual: \"oko {{count}} tjedna\",\n    other: \"oko {{count}} tjedana\",\n  },\n\n  xWeeks: {\n    one: {\n      standalone: \"1 tjedan\",\n      withPrepositionAgo: \"1 tjedan\",\n      withPrepositionIn: \"1 tjedan\",\n    },\n    dual: \"{{count}} tjedna\",\n    other: \"{{count}} tjedana\",\n  },\n\n  aboutXMonths: {\n    one: {\n      standalone: \"oko 1 mjesec\",\n      withPrepositionAgo: \"oko 1 mjesec\",\n      withPrepositionIn: \"oko 1 mjesec\",\n    },\n    dual: \"oko {{count}} mjeseca\",\n    other: \"oko {{count}} mjeseci\",\n  },\n\n  xMonths: {\n    one: {\n      standalone: \"1 mjesec\",\n      withPrepositionAgo: \"1 mjesec\",\n      withPrepositionIn: \"1 mjesec\",\n    },\n    dual: \"{{count}} mjeseca\",\n    other: \"{{count}} mjeseci\",\n  },\n\n  aboutXYears: {\n    one: {\n      standalone: \"oko 1 godinu\",\n      withPrepositionAgo: \"oko 1 godinu\",\n      withPrepositionIn: \"oko 1 godinu\",\n    },\n    dual: \"oko {{count}} godine\",\n    other: \"oko {{count}} godina\",\n  },\n\n  xYears: {\n    one: {\n      standalone: \"1 godina\",\n      withPrepositionAgo: \"1 godine\",\n      withPrepositionIn: \"1 godinu\",\n    },\n    dual: \"{{count}} godine\",\n    other: \"{{count}} godina\",\n  },\n\n  overXYears: {\n    one: {\n      standalone: \"preko 1 godinu\",\n      withPrepositionAgo: \"preko 1 godinu\",\n      withPrepositionIn: \"preko 1 godinu\",\n    },\n    dual: \"preko {{count}} godine\",\n    other: \"preko {{count}} godina\",\n  },\n\n  almostXYears: {\n    one: {\n      standalone: \"gotovo 1 godinu\",\n      withPrepositionAgo: \"gotovo 1 godinu\",\n      withPrepositionIn: \"gotovo 1 godinu\",\n    },\n    dual: \"gotovo {{count}} godine\",\n    other: \"gotovo {{count}} godina\",\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    if (options?.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        result = tokenValue.one.withPrepositionIn;\n      } else {\n        result = tokenValue.one.withPrepositionAgo;\n      }\n    } else {\n      result = tokenValue.one.standalone;\n    }\n  } else if (\n    count % 10 > 1 &&\n    count % 10 < 5 && // if last digit is between 2 and 4\n    String(count).substr(-2, 1) !== \"1\" // unless the 2nd to last digit is \"1\"\n  ) {\n    result = tokenValue.dual.replace(\"{{count}}\", String(count));\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"za \" + result;\n    } else {\n      return \"prije \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d. MMMM y.\",\n  long: \"d. MMMM y.\",\n  medium: \"d. MMM y.\",\n  short: \"dd. MM. y.\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss (zzzz)\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'u' {{time}}\",\n  long: \"{{date}} 'u' {{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: (date) => {\n    switch (date.getDay()) {\n      case 0:\n        return \"'prošlu nedjelju u' p\";\n      case 3:\n        return \"'prošlu srijedu u' p\";\n      case 6:\n        return \"'prošlu subotu u' p\";\n      default:\n        return \"'prošli' EEEE 'u' p\";\n    }\n  },\n  yesterday: \"'jučer u' p\",\n  today: \"'danas u' p\",\n  tomorrow: \"'sutra u' p\",\n  nextWeek: (date) => {\n    switch (date.getDay()) {\n      case 0:\n        return \"'iduću nedjelju u' p\";\n      case 3:\n        return \"'iduću srijedu u' p\";\n      case 6:\n        return \"'iduću subotu u' p\";\n      default:\n        return \"'prošli' EEEE 'u' p\";\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"pr.n.e.\", \"AD\"],\n  abbreviated: [\"pr. Kr.\", \"po. Kr.\"],\n  wide: [\"Prije Krista\", \"Poslije Krista\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1.\", \"2.\", \"3.\", \"4.\"],\n  abbreviated: [\"1. kv.\", \"2. kv.\", \"3. kv.\", \"4. kv.\"],\n  wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"1.\",\n    \"2.\",\n    \"3.\",\n    \"4.\",\n    \"5.\",\n    \"6.\",\n    \"7.\",\n    \"8.\",\n    \"9.\",\n    \"10.\",\n    \"11.\",\n    \"12.\",\n  ],\n\n  abbreviated: [\n    \"sij\",\n    \"velj\",\n    \"ožu\",\n    \"tra\",\n    \"svi\",\n    \"lip\",\n    \"srp\",\n    \"kol\",\n    \"ruj\",\n    \"lis\",\n    \"stu\",\n    \"pro\",\n  ],\n\n  wide: [\n    \"siječanj\",\n    \"veljača\",\n    \"ožujak\",\n    \"travanj\",\n    \"svibanj\",\n    \"lipanj\",\n    \"srpanj\",\n    \"kolovoz\",\n    \"rujan\",\n    \"listopad\",\n    \"studeni\",\n    \"prosinac\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\n    \"1.\",\n    \"2.\",\n    \"3.\",\n    \"4.\",\n    \"5.\",\n    \"6.\",\n    \"7.\",\n    \"8.\",\n    \"9.\",\n    \"10.\",\n    \"11.\",\n    \"12.\",\n  ],\n\n  abbreviated: [\n    \"sij\",\n    \"velj\",\n    \"ožu\",\n    \"tra\",\n    \"svi\",\n    \"lip\",\n    \"srp\",\n    \"kol\",\n    \"ruj\",\n    \"lis\",\n    \"stu\",\n    \"pro\",\n  ],\n\n  wide: [\n    \"siječnja\",\n    \"veljače\",\n    \"ožujka\",\n    \"travnja\",\n    \"svibnja\",\n    \"lipnja\",\n    \"srpnja\",\n    \"kolovoza\",\n    \"rujna\",\n    \"listopada\",\n    \"studenog\",\n    \"prosinca\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"N\", \"P\", \"U\", \"S\", \"Č\", \"P\", \"S\"],\n  short: [\"ned\", \"pon\", \"uto\", \"sri\", \"čet\", \"pet\", \"sub\"],\n  abbreviated: [\"ned\", \"pon\", \"uto\", \"sri\", \"čet\", \"pet\", \"sub\"],\n  wide: [\n    \"nedjelja\",\n    \"ponedjeljak\",\n    \"utorak\",\n    \"srijeda\",\n    \"četvrtak\",\n    \"petak\",\n    \"subota\",\n  ],\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"popodne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"popodne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"poslije podne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"popodne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"popodne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"ponoć\",\n    noon: \"podne\",\n    morning: \"ujutro\",\n    afternoon: \"poslije podne\",\n    evening: \"navečer\",\n    night: \"noću\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(pr\\.n\\.e\\.|AD)/i,\n  abbreviated: /^(pr\\.\\s?Kr\\.|po\\.\\s?Kr\\.)/i,\n  wide: /^(Prije Krista|prije nove ere|Poslije Krista|nova era)/i,\n};\nconst parseEraPatterns = {\n  any: [/^pr/i, /^(po|nova)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]\\.\\s?kv\\.?/i,\n  wide: /^[1234]\\. kvartal/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(10|11|12|[123456789])\\./i,\n  abbreviated: /^(sij|velj|(ožu|ozu)|tra|svi|lip|srp|kol|ruj|lis|stu|pro)/i,\n  wide: /^((siječanj|siječnja|sijecanj|sijecnja)|(veljača|veljače|veljaca|veljace)|(ožujak|ožujka|ozujak|ozujka)|(travanj|travnja)|(svibanj|svibnja)|(lipanj|lipnja)|(srpanj|srpnja)|(kolovoz|kolovoza)|(rujan|rujna)|(listopad|listopada)|(studeni|studenog)|(prosinac|prosinca))/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /1/i,\n    /2/i,\n    /3/i,\n    /4/i,\n    /5/i,\n    /6/i,\n    /7/i,\n    /8/i,\n    /9/i,\n    /10/i,\n    /11/i,\n    /12/i,\n  ],\n\n  abbreviated: [\n    /^sij/i,\n    /^velj/i,\n    /^(ožu|ozu)/i,\n    /^tra/i,\n    /^svi/i,\n    /^lip/i,\n    /^srp/i,\n    /^kol/i,\n    /^ruj/i,\n    /^lis/i,\n    /^stu/i,\n    /^pro/i,\n  ],\n\n  wide: [\n    /^sij/i,\n    /^velj/i,\n    /^(ožu|ozu)/i,\n    /^tra/i,\n    /^svi/i,\n    /^lip/i,\n    /^srp/i,\n    /^kol/i,\n    /^ruj/i,\n    /^lis/i,\n    /^stu/i,\n    /^pro/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[npusčc]/i,\n  short: /^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,\n  abbreviated: /^(ned|pon|uto|sri|(čet|cet)|pet|sub)/i,\n  wide: /^(nedjelja|ponedjeljak|utorak|srijeda|(četvrtak|cetvrtak)|petak|subota)/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  any: /^(am|pm|ponoc|ponoć|(po)?podne|navecer|navečer|noću|poslije podne|ujutro)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^pono/i,\n    noon: /^pod/i,\n    morning: /jutro/i,\n    afternoon: /(poslije\\s|po)+podne/i,\n    evening: /(navece|naveče)/i,\n    night: /(nocu|noću)/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: \"wide\",\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 \"./hr/_lib/formatDistance.js\";\nimport { formatLong } from \"./hr/_lib/formatLong.js\";\nimport { formatRelative } from \"./hr/_lib/formatRelative.js\";\nimport { localize } from \"./hr/_lib/localize.js\";\nimport { match } from \"./hr/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Croatian locale.\n * @language Croatian\n * @iso-639-2 hrv\n * @author Matija Marohnić [@silvenon](https://github.com/silvenon)\n * @author Manico [@manico](https://github.com/manico)\n * @author Ivan Jeržabek [@jerzabek](https://github.com/jerzabek)\n */\nexport const hr = {\n  code: \"hr\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default hr;\n","const translations = {\n  about: \"körülbelül\",\n  over: \"több mint\",\n  almost: \"majdnem\",\n  lessthan: \"kevesebb mint\",\n};\n\nconst withoutSuffixes = {\n  xseconds: \" másodperc\",\n  halfaminute: \"fél perc\",\n  xminutes: \" perc\",\n  xhours: \" óra\",\n  xdays: \" nap\",\n  xweeks: \" hét\",\n  xmonths: \" hónap\",\n  xyears: \" év\",\n};\n\nconst withSuffixes = {\n  xseconds: {\n    \"-1\": \" másodperccel ezelőtt\",\n    1: \" másodperc múlva\",\n    0: \" másodperce\",\n  },\n  halfaminute: {\n    \"-1\": \"fél perccel ezelőtt\",\n    1: \"fél perc múlva\",\n    0: \"fél perce\",\n  },\n  xminutes: {\n    \"-1\": \" perccel ezelőtt\",\n    1: \" perc múlva\",\n    0: \" perce\",\n  },\n  xhours: {\n    \"-1\": \" órával ezelőtt\",\n    1: \" óra múlva\",\n    0: \" órája\",\n  },\n  xdays: {\n    \"-1\": \" nappal ezelőtt\",\n    1: \" nap múlva\",\n    0: \" napja\",\n  },\n  xweeks: {\n    \"-1\": \" héttel ezelőtt\",\n    1: \" hét múlva\",\n    0: \" hete\",\n  },\n  xmonths: {\n    \"-1\": \" hónappal ezelőtt\",\n    1: \" hónap múlva\",\n    0: \" hónapja\",\n  },\n  xyears: {\n    \"-1\": \" évvel ezelőtt\",\n    1: \" év múlva\",\n    0: \" éve\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const adverb = token.match(/about|over|almost|lessthan/i);\n  const unit = adverb ? token.replace(adverb[0], \"\") : token;\n\n  const addSuffix = options?.addSuffix === true;\n  const key = unit.toLowerCase();\n  const comparison = options?.comparison || 0;\n\n  const translated = addSuffix\n    ? withSuffixes[key][comparison]\n    : withoutSuffixes[key];\n\n  let result = key === \"halfaminute\" ? translated : count + translated;\n\n  if (adverb) {\n    const adv = adverb[0].toLowerCase();\n    result = translations[adv] + \" \" + result;\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y. MMMM d., EEEE\",\n  long: \"y. MMMM d.\",\n  medium: \"y. MMM d.\",\n  short: \"y. MM. dd.\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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 accusativeWeekdays = [\n  \"vasárnap\",\n  \"hétfőn\",\n  \"kedden\",\n  \"szerdán\",\n  \"csütörtökön\",\n  \"pénteken\",\n  \"szombaton\",\n];\n\nfunction week(isFuture) {\n  return (date) => {\n    const weekday = accusativeWeekdays[date.getDay()];\n    const prefix = isFuture ? \"\" : \"'múlt' \";\n    return `${prefix}'${weekday}' p'-kor'`;\n  };\n}\nconst formatRelativeLocale = {\n  lastWeek: week(false),\n  yesterday: \"'tegnap' p'-kor'\",\n  today: \"'ma' p'-kor'\",\n  tomorrow: \"'holnap' p'-kor'\",\n  nextWeek: week(true),\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ie.\", \"isz.\"],\n  abbreviated: [\"i. e.\", \"i. sz.\"],\n  wide: [\"Krisztus előtt\", \"időszámításunk szerint\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1.\", \"2.\", \"3.\", \"4.\"],\n  abbreviated: [\"1. n.év\", \"2. n.év\", \"3. n.év\", \"4. n.év\"],\n  wide: [\"1. negyedév\", \"2. negyedév\", \"3. negyedév\", \"4. negyedév\"],\n};\n\nconst formattingQuarterValues = {\n  narrow: [\"I.\", \"II.\", \"III.\", \"IV.\"],\n  abbreviated: [\"I. n.év\", \"II. n.év\", \"III. n.év\", \"IV. n.év\"],\n  wide: [\"I. negyedév\", \"II. negyedév\", \"III. negyedév\", \"IV. negyedév\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"Á\", \"M\", \"J\", \"J\", \"A\", \"Sz\", \"O\", \"N\", \"D\"],\n\n  abbreviated: [\n    \"jan.\",\n    \"febr.\",\n    \"márc.\",\n    \"ápr.\",\n    \"máj.\",\n    \"jún.\",\n    \"júl.\",\n    \"aug.\",\n    \"szept.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"január\",\n    \"február\",\n    \"március\",\n    \"április\",\n    \"május\",\n    \"június\",\n    \"július\",\n    \"augusztus\",\n    \"szeptember\",\n    \"október\",\n    \"november\",\n    \"december\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"V\", \"H\", \"K\", \"Sz\", \"Cs\", \"P\", \"Sz\"],\n  short: [\"V\", \"H\", \"K\", \"Sze\", \"Cs\", \"P\", \"Szo\"],\n  abbreviated: [\"V\", \"H\", \"K\", \"Sze\", \"Cs\", \"P\", \"Szo\"],\n  wide: [\n    \"vasárnap\",\n    \"hétfő\",\n    \"kedd\",\n    \"szerda\",\n    \"csütörtök\",\n    \"péntek\",\n    \"szombat\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"de.\",\n    pm: \"du.\",\n    midnight: \"éjfél\",\n    noon: \"dél\",\n    morning: \"reggel\",\n    afternoon: \"du.\",\n    evening: \"este\",\n    night: \"éjjel\",\n  },\n  abbreviated: {\n    am: \"de.\",\n    pm: \"du.\",\n    midnight: \"éjfél\",\n    noon: \"dél\",\n    morning: \"reggel\",\n    afternoon: \"du.\",\n    evening: \"este\",\n    night: \"éjjel\",\n  },\n  wide: {\n    am: \"de.\",\n    pm: \"du.\",\n    midnight: \"éjfél\",\n    noon: \"dél\",\n    morning: \"reggel\",\n    afternoon: \"délután\",\n    evening: \"este\",\n    night: \"éjjel\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingQuarterValues,\n    defaultFormattingWidth: \"wide\",\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ie\\.|isz\\.)/i,\n  abbreviated: /^(i\\.\\s?e\\.?|b?\\s?c\\s?e|i\\.\\s?sz\\.?)/i,\n  wide: /^(Krisztus előtt|időszámításunk előtt|időszámításunk szerint|i\\. sz\\.)/i,\n};\nconst parseEraPatterns = {\n  narrow: [/ie/i, /isz/i],\n  abbreviated: [/^(i\\.?\\s?e\\.?|b\\s?ce)/i, /^(i\\.?\\s?sz\\.?|c\\s?e)/i],\n  any: [/előtt/i, /(szerint|i. sz.)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]\\.?/i,\n  abbreviated: /^[1234]?\\.?\\s?n\\.év/i,\n  wide: /^([1234]|I|II|III|IV)?\\.?\\s?negyedév/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1|I$/i, /2|II$/i, /3|III/i, /4|IV/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmaásond]|sz/i,\n  abbreviated:\n    /^(jan\\.?|febr\\.?|márc\\.?|ápr\\.?|máj\\.?|jún\\.?|júl\\.?|aug\\.?|szept\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n  wide: /^(január|február|március|április|május|június|július|augusztus|szeptember|október|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|sz/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ja/i,\n    /^f/i,\n    /^már/i,\n    /^áp/i,\n    /^máj/i,\n    /^jún/i,\n    /^júl/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^([vhkpc]|sz|cs|sz)/i,\n  short: /^([vhkp]|sze|cs|szo)/i,\n  abbreviated: /^([vhkp]|sze|cs|szo)/i,\n  wide: /^(vasárnap|hétfő|kedd|szerda|csütörtök|péntek|szombat)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^v/i, /^h/i, /^k/i, /^sz/i, /^c/i, /^p/i, /^sz/i],\n  any: [/^v/i, /^h/i, /^k/i, /^sze/i, /^c/i, /^p/i, /^szo/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^((de|du)\\.?|éjfél|délután|dél|reggel|este|éjjel)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^de\\.?/i,\n    pm: /^du\\.?/i,\n    midnight: /^éjf/i,\n    noon: /^dé/i,\n    morning: /reg/i,\n    afternoon: /^délu\\.?/i,\n    evening: /es/i,\n    night: /éjj/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 \"./hu/_lib/formatDistance.js\";\nimport { formatLong } from \"./hu/_lib/formatLong.js\";\nimport { formatRelative } from \"./hu/_lib/formatRelative.js\";\nimport { localize } from \"./hu/_lib/localize.js\";\nimport { match } from \"./hu/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Hungarian locale.\n * @language Hungarian\n * @iso-639-2 hun\n * @author Pavlo Shpak [@pshpak](https://github.com/pshpak)\n * @author Eduardo Pardo [@eduardopsll](https://github.com/eduardopsll)\n * @author Zoltan Szepesi [@twodcube](https://github.com/twodcube)\n */\nexport const hu = {\n  code: \"hu\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default hu;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"ավելի քիչ քան 1 վայրկյան\",\n    other: \"ավելի քիչ քան {{count}} վայրկյան\",\n  },\n\n  xSeconds: {\n    one: \"1 վայրկյան\",\n    other: \"{{count}} վայրկյան\",\n  },\n\n  halfAMinute: \"կես րոպե\",\n\n  lessThanXMinutes: {\n    one: \"ավելի քիչ քան 1 րոպե\",\n    other: \"ավելի քիչ քան {{count}} րոպե\",\n  },\n\n  xMinutes: {\n    one: \"1 րոպե\",\n    other: \"{{count}} րոպե\",\n  },\n\n  aboutXHours: {\n    one: \"մոտ 1 ժամ\",\n    other: \"մոտ {{count}} ժամ\",\n  },\n\n  xHours: {\n    one: \"1 ժամ\",\n    other: \"{{count}} ժամ\",\n  },\n\n  xDays: {\n    one: \"1 օր\",\n    other: \"{{count}} օր\",\n  },\n\n  aboutXWeeks: {\n    one: \"մոտ 1 շաբաթ\",\n    other: \"մոտ {{count}} շաբաթ\",\n  },\n\n  xWeeks: {\n    one: \"1 շաբաթ\",\n    other: \"{{count}} շաբաթ\",\n  },\n\n  aboutXMonths: {\n    one: \"մոտ 1 ամիս\",\n    other: \"մոտ {{count}} ամիս\",\n  },\n\n  xMonths: {\n    one: \"1 ամիս\",\n    other: \"{{count}} ամիս\",\n  },\n\n  aboutXYears: {\n    one: \"մոտ 1 տարի\",\n    other: \"մոտ {{count}} տարի\",\n  },\n\n  xYears: {\n    one: \"1 տարի\",\n    other: \"{{count}} տարի\",\n  },\n\n  overXYears: {\n    one: \"ավելի քան 1 տարի\",\n    other: \"ավելի քան {{count}} տարի\",\n  },\n\n  almostXYears: {\n    one: \"համարյա 1 տարի\",\n    other: \"համարյա {{count}} տարի\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" հետո\";\n    } else {\n      return result + \" առաջ\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"d MMMM, y, EEEE\",\n  long: \"d MMMM, y\",\n  medium: \"d MMM, y\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'ժ․'{{time}}\",\n  long: \"{{date}} 'ժ․'{{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: \"'նախորդ' eeee p'֊ին'\",\n  yesterday: \"'երեկ' p'֊ին'\",\n  today: \"'այսօր' p'֊ին'\",\n  tomorrow: \"'վաղը' p'֊ին'\",\n  nextWeek: \"'հաջորդ' eeee p'֊ին'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"Ք\", \"Մ\"],\n  abbreviated: [\"ՔԱ\", \"ՄԹ\"],\n  wide: [\"Քրիստոսից առաջ\", \"Մեր թվարկության\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Ք1\", \"Ք2\", \"Ք3\", \"Ք4\"],\n  wide: [\"1֊ին քառորդ\", \"2֊րդ քառորդ\", \"3֊րդ քառորդ\", \"4֊րդ քառորդ\"],\n};\n\nconst monthValues = {\n  narrow: [\"Հ\", \"Փ\", \"Մ\", \"Ա\", \"Մ\", \"Հ\", \"Հ\", \"Օ\", \"Ս\", \"Հ\", \"Ն\", \"Դ\"],\n  abbreviated: [\n    \"հուն\",\n    \"փետ\",\n    \"մար\",\n    \"ապր\",\n    \"մայ\",\n    \"հուն\",\n    \"հուլ\",\n    \"օգս\",\n    \"սեպ\",\n    \"հոկ\",\n    \"նոյ\",\n    \"դեկ\",\n  ],\n\n  wide: [\n    \"հունվար\",\n    \"փետրվար\",\n    \"մարտ\",\n    \"ապրիլ\",\n    \"մայիս\",\n    \"հունիս\",\n    \"հուլիս\",\n    \"օգոստոս\",\n    \"սեպտեմբեր\",\n    \"հոկտեմբեր\",\n    \"նոյեմբեր\",\n    \"դեկտեմբեր\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Կ\", \"Ե\", \"Ե\", \"Չ\", \"Հ\", \"Ո\", \"Շ\"],\n  short: [\"կր\", \"եր\", \"եք\", \"չք\", \"հգ\", \"ուր\", \"շբ\"],\n  abbreviated: [\"կիր\", \"երկ\", \"երք\", \"չոր\", \"հնգ\", \"ուրբ\", \"շաբ\"],\n  wide: [\n    \"կիրակի\",\n    \"երկուշաբթի\",\n    \"երեքշաբթի\",\n    \"չորեքշաբթի\",\n    \"հինգշաբթի\",\n    \"ուրբաթ\",\n    \"շաբաթ\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"կեսգշ\",\n    noon: \"կեսօր\",\n    morning: \"առավոտ\",\n    afternoon: \"ցերեկ\",\n    evening: \"երեկո\",\n    night: \"գիշեր\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"կեսգիշեր\",\n    noon: \"կեսօր\",\n    morning: \"առավոտ\",\n    afternoon: \"ցերեկ\",\n    evening: \"երեկո\",\n    night: \"գիշեր\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"կեսգիշեր\",\n    noon: \"կեսօր\",\n    morning: \"առավոտ\",\n    afternoon: \"ցերեկ\",\n    evening: \"երեկո\",\n    night: \"գիշեր\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"կեսգշ\",\n    noon: \"կեսօր\",\n    morning: \"առավոտը\",\n    afternoon: \"ցերեկը\",\n    evening: \"երեկոյան\",\n    night: \"գիշերը\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"կեսգիշերին\",\n    noon: \"կեսօրին\",\n    morning: \"առավոտը\",\n    afternoon: \"ցերեկը\",\n    evening: \"երեկոյան\",\n    night: \"գիշերը\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"կեսգիշերին\",\n    noon: \"կեսօրին\",\n    morning: \"առավոտը\",\n    afternoon: \"ցերեկը\",\n    evening: \"երեկոյան\",\n    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 < 10) {\n    if (rem100 % 10 === 1) {\n      return number + \"֊ին\";\n    }\n  }\n  return number + \"֊րդ\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)((-|֊)?(ին|րդ))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(Ք|Մ)/i,\n  abbreviated: /^(Ք\\.?\\s?Ա\\.?|Մ\\.?\\s?Թ\\.?\\s?Ա\\.?|Մ\\.?\\s?Թ\\.?|Ք\\.?\\s?Հ\\.?)/i,\n  wide: /^(քրիստոսից առաջ|մեր թվարկությունից առաջ|մեր թվարկության|քրիստոսից հետո)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ք/i, /^մ/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^ք[1234]/i,\n  wide: /^[1234]((-|֊)?(ին|րդ)) քառորդ/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[հփմաօսնդ]/i,\n  abbreviated: /^(հուն|փետ|մար|ապր|մայ|հուն|հուլ|օգս|սեպ|հոկ|նոյ|դեկ)/i,\n  wide: /^(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^հ/i,\n    /^փ/i,\n    /^մ/i,\n    /^ա/i,\n    /^մ/i,\n    /^հ/i,\n    /^հ/i,\n    /^օ/i,\n    /^ս/i,\n    /^հ/i,\n    /^ն/i,\n    /^դ/i,\n  ],\n\n  any: [\n    /^հու/i,\n    /^փ/i,\n    /^մար/i,\n    /^ա/i,\n    /^մայ/i,\n    /^հուն/i,\n    /^հուլ/i,\n    /^օ/i,\n    /^ս/i,\n    /^հոկ/i,\n    /^ն/i,\n    /^դ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[եչհոշկ]/i,\n  short: /^(կր|եր|եք|չք|հգ|ուր|շբ)/i,\n  abbreviated: /^(կիր|երկ|երք|չոր|հնգ|ուրբ|շաբ)/i,\n  wide: /^(կիրակի|երկուշաբթի|երեքշաբթի|չորեքշաբթի|հինգշաբթի|ուրբաթ|շաբաթ)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^կ/i, /^ե/i, /^ե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n  short: [/^կ/i, /^եր/i, /^եք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n  abbreviated: [/^կ/i, /^երկ/i, /^երք/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n\n  wide: [/^կ/i, /^երկ/i, /^երե/i, /^չ/i, /^հ/i, /^(ո|Ո)/, /^շ/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^([ap]|կեսգշ|կեսօր|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i,\n  any: /^([ap]\\.?\\s?m\\.?|կեսգիշեր(ին)?|կեսօր(ին)?|(առավոտը?|ցերեկը?|երեկո(յան)?|գիշերը?))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /կեսգիշեր/i,\n    noon: /կեսօր/i,\n    morning: /առավոտ/i,\n    afternoon: /ցերեկ/i,\n    evening: /երեկո/i,\n    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: \"wide\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"any\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./hy/_lib/formatDistance.js\";\nimport { formatLong } from \"./hy/_lib/formatLong.js\";\nimport { formatRelative } from \"./hy/_lib/formatRelative.js\";\nimport { localize } from \"./hy/_lib/localize.js\";\nimport { match } from \"./hy/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Armenian locale\n * @language Armenian\n * @iso-639-2 arm\n * @author Alex Igityan [@alexigityan](https://github.com/alexigityan)\n */\nexport const hy = {\n  code: \"hy\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default hy;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"kurang dari 1 detik\",\n    other: \"kurang dari {{count}} detik\",\n  },\n\n  xSeconds: {\n    one: \"1 detik\",\n    other: \"{{count}} detik\",\n  },\n\n  halfAMinute: \"setengah menit\",\n\n  lessThanXMinutes: {\n    one: \"kurang dari 1 menit\",\n    other: \"kurang dari {{count}} menit\",\n  },\n\n  xMinutes: {\n    one: \"1 menit\",\n    other: \"{{count}} menit\",\n  },\n\n  aboutXHours: {\n    one: \"sekitar 1 jam\",\n    other: \"sekitar {{count}} jam\",\n  },\n\n  xHours: {\n    one: \"1 jam\",\n    other: \"{{count}} jam\",\n  },\n\n  xDays: {\n    one: \"1 hari\",\n    other: \"{{count}} hari\",\n  },\n\n  aboutXWeeks: {\n    one: \"sekitar 1 minggu\",\n    other: \"sekitar {{count}} minggu\",\n  },\n\n  xWeeks: {\n    one: \"1 minggu\",\n    other: \"{{count}} minggu\",\n  },\n\n  aboutXMonths: {\n    one: \"sekitar 1 bulan\",\n    other: \"sekitar {{count}} bulan\",\n  },\n\n  xMonths: {\n    one: \"1 bulan\",\n    other: \"{{count}} bulan\",\n  },\n\n  aboutXYears: {\n    one: \"sekitar 1 tahun\",\n    other: \"sekitar {{count}} tahun\",\n  },\n\n  xYears: {\n    one: \"1 tahun\",\n    other: \"{{count}} tahun\",\n  },\n\n  overXYears: {\n    one: \"lebih dari 1 tahun\",\n    other: \"lebih dari {{count}} tahun\",\n  },\n\n  almostXYears: {\n    one: \"hampir 1 tahun\",\n    other: \"hampir {{count}} tahun\",\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 \"dalam waktu \" + result;\n    } else {\n      return result + \" yang lalu\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM yyyy\",\n  long: \"d MMMM yyyy\",\n  medium: \"d MMM yyyy\",\n  short: \"d/M/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH.mm.ss\",\n  long: \"HH.mm.ss\",\n  medium: \"HH.mm\",\n  short: \"HH.mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'pukul' {{time}}\",\n  long: \"{{date}} 'pukul' {{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: \"eeee 'lalu pukul' p\",\n  yesterday: \"'Kemarin pukul' p\",\n  today: \"'Hari ini pukul' p\",\n  tomorrow: \"'Besok pukul' p\",\n  nextWeek: \"eeee 'pukul' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// All data for localization are taken from this page\n// https://www.unicode.org/cldr/charts/32/summary/id.html\nconst eraValues = {\n  narrow: [\"SM\", \"M\"],\n  abbreviated: [\"SM\", \"M\"],\n  wide: [\"Sebelum Masehi\", \"Masehi\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\"Kuartal ke-1\", \"Kuartal ke-2\", \"Kuartal ke-3\", \"Kuartal ke-4\"],\n};\n\n// Note: in Indonesian, 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    \"Mei\",\n    \"Jun\",\n    \"Jul\",\n    \"Agt\",\n    \"Sep\",\n    \"Okt\",\n    \"Nov\",\n    \"Des\",\n  ],\n\n  wide: [\n    \"Januari\",\n    \"Februari\",\n    \"Maret\",\n    \"April\",\n    \"Mei\",\n    \"Juni\",\n    \"Juli\",\n    \"Agustus\",\n    \"September\",\n    \"Oktober\",\n    \"November\",\n    \"Desember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"M\", \"S\", \"S\", \"R\", \"K\", \"J\", \"S\"],\n  short: [\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"],\n  abbreviated: [\"Min\", \"Sen\", \"Sel\", \"Rab\", \"Kam\", \"Jum\", \"Sab\"],\n  wide: [\"Minggu\", \"Senin\", \"Selasa\", \"Rabu\", \"Kamis\", \"Jumat\", \"Sabtu\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"siang\",\n    evening: \"sore\",\n    night: \"malam\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  // Can't use \"pertama\", \"kedua\" because can't be parsed\n\n  return \"ke-\" + number;\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^ke-(\\d+)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(sm|m)/i,\n  abbreviated: /^(s\\.?\\s?m\\.?|s\\.?\\s?e\\.?\\s?u\\.?|m\\.?|e\\.?\\s?u\\.?)/i,\n  wide: /^(sebelum masehi|sebelum era umum|masehi|era umum)/i,\n};\nconst parseEraPatterns = {\n  any: [/^s/i, /^(m|e)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^K-?\\s[1234]/i,\n  wide: /^Kuartal ke-?\\s?[1234]/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|mei|jun|jul|agt|sep|okt|nov|des)/i,\n  wide: /^(januari|februari|maret|april|mei|juni|juli|agustus|september|oktober|november|desember)/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    /^ma/i,\n    /^ap/i,\n    /^me/i,\n    /^jun/i,\n    /^jul/i,\n    /^ag/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[srkjm]/i,\n  short: /^(min|sen|sel|rab|kam|jum|sab)/i,\n  abbreviated: /^(min|sen|sel|rab|kam|jum|sab)/i,\n  wide: /^(minggu|senin|selasa|rabu|kamis|jumat|sabtu)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^m/i, /^s/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i],\n  any: [/^m/i, /^sen/i, /^sel/i, /^r/i, /^k/i, /^j/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|tengah m|tengah h|(di(\\swaktu)?) (pagi|siang|sore|malam))/i,\n  any: /^([ap]\\.?\\s?m\\.?|tengah malam|tengah hari|(di(\\swaktu)?) (pagi|siang|sore|malam))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^pm/i,\n    midnight: /^tengah m/i,\n    noon: /^tengah h/i,\n    morning: /pagi/i,\n    afternoon: /siang/i,\n    evening: /sore/i,\n    night: /malam/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 \"./id/_lib/formatDistance.js\";\nimport { formatLong } from \"./id/_lib/formatLong.js\";\nimport { formatRelative } from \"./id/_lib/formatRelative.js\";\nimport { localize } from \"./id/_lib/localize.js\";\nimport { match } from \"./id/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Indonesian locale.\n * @language Indonesian\n * @iso-639-2 ind\n * @author Rahmat Budiharso [@rbudiharso](https://github.com/rbudiharso)\n * @author Benget Nata [@bentinata](https://github.com/bentinata)\n * @author Budi Irawan [@deerawan](https://github.com/deerawan)\n * @author Try Ajitiono [@imballinst](https://github.com/imballinst)\n */\nexport const id = {\n  code: \"id\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default id;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"minna en 1 sekúnda\",\n    other: \"minna en {{count}} sekúndur\",\n  },\n\n  xSeconds: {\n    one: \"1 sekúnda\",\n    other: \"{{count}} sekúndur\",\n  },\n\n  halfAMinute: \"hálf mínúta\",\n\n  lessThanXMinutes: {\n    one: \"minna en 1 mínúta\",\n    other: \"minna en {{count}} mínútur\",\n  },\n\n  xMinutes: {\n    one: \"1 mínúta\",\n    other: \"{{count}} mínútur\",\n  },\n\n  aboutXHours: {\n    one: \"u.þ.b. 1 klukkustund\",\n    other: \"u.þ.b. {{count}} klukkustundir\",\n  },\n\n  xHours: {\n    one: \"1 klukkustund\",\n    other: \"{{count}} klukkustundir\",\n  },\n\n  xDays: {\n    one: \"1 dagur\",\n    other: \"{{count}} dagar\",\n  },\n\n  aboutXWeeks: {\n    one: \"um viku\",\n    other: \"um {{count}} vikur\",\n  },\n\n  xWeeks: {\n    one: \"1 viku\",\n    other: \"{{count}} vikur\",\n  },\n\n  aboutXMonths: {\n    one: \"u.þ.b. 1 mánuður\",\n    other: \"u.þ.b. {{count}} mánuðir\",\n  },\n\n  xMonths: {\n    one: \"1 mánuður\",\n    other: \"{{count}} mánuðir\",\n  },\n\n  aboutXYears: {\n    one: \"u.þ.b. 1 ár\",\n    other: \"u.þ.b. {{count}} ár\",\n  },\n\n  xYears: {\n    one: \"1 ár\",\n    other: \"{{count}} ár\",\n  },\n\n  overXYears: {\n    one: \"meira en 1 ár\",\n    other: \"meira en {{count}} ár\",\n  },\n\n  almostXYears: {\n    one: \"næstum 1 ár\",\n    other: \"næstum {{count}} ár\",\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 \"í \" + result;\n    } else {\n      return result + \" síðan\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM y\",\n  long: \"do MMMM y\",\n  medium: \"do MMM y\",\n  short: \"d.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"'kl'. HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kl.' {{time}}\",\n  long: \"{{date}} 'kl.' {{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: \"'síðasta' dddd 'kl.' p\",\n  yesterday: \"'í gær kl.' p\",\n  today: \"'í dag kl.' p\",\n  tomorrow: \"'á morgun kl.' p\",\n  nextWeek: \"dddd 'kl.' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"f.Kr.\", \"e.Kr.\"],\n  abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n  wide: [\"fyrir Krist\", \"eftir Krist\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1F\", \"2F\", \"3F\", \"4F\"],\n  wide: [\"1. fjórðungur\", \"2. fjórðungur\", \"3. fjórðungur\", \"4. fjórðungur\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"Á\", \"S\", \"Ó\", \"N\", \"D\"],\n  abbreviated: [\n    \"jan.\",\n    \"feb.\",\n    \"mars\",\n    \"apríl\",\n    \"maí\",\n    \"júní\",\n    \"júlí\",\n    \"ágúst\",\n    \"sept.\",\n    \"okt.\",\n    \"nóv.\",\n    \"des.\",\n  ],\n\n  wide: [\n    \"janúar\",\n    \"febrúar\",\n    \"mars\",\n    \"apríl\",\n    \"maí\",\n    \"júní\",\n    \"júlí\",\n    \"ágúst\",\n    \"september\",\n    \"október\",\n    \"nóvember\",\n    \"desember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"Þ\", \"M\", \"F\", \"F\", \"L\"],\n  short: [\"Su\", \"Má\", \"Þr\", \"Mi\", \"Fi\", \"Fö\", \"La\"],\n  abbreviated: [\"sun.\", \"mán.\", \"þri.\", \"mið.\", \"fim.\", \"fös.\", \"lau.\"],\n\n  wide: [\n    \"sunnudagur\",\n    \"mánudagur\",\n    \"þriðjudagur\",\n    \"miðvikudagur\",\n    \"fimmtudagur\",\n    \"föstudagur\",\n    \"laugardagur\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"f\",\n    pm: \"e\",\n    midnight: \"miðnætti\",\n    noon: \"hádegi\",\n    morning: \"morgunn\",\n    afternoon: \"síðdegi\",\n    evening: \"kvöld\",\n    night: \"nótt\",\n  },\n  abbreviated: {\n    am: \"f.h.\",\n    pm: \"e.h.\",\n    midnight: \"miðnætti\",\n    noon: \"hádegi\",\n    morning: \"morgunn\",\n    afternoon: \"síðdegi\",\n    evening: \"kvöld\",\n    night: \"nótt\",\n  },\n  wide: {\n    am: \"fyrir hádegi\",\n    pm: \"eftir hádegi\",\n    midnight: \"miðnætti\",\n    noon: \"hádegi\",\n    morning: \"morgunn\",\n    afternoon: \"síðdegi\",\n    evening: \"kvöld\",\n    night: \"nótt\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"f\",\n    pm: \"e\",\n    midnight: \"á miðnætti\",\n    noon: \"á hádegi\",\n    morning: \"að morgni\",\n    afternoon: \"síðdegis\",\n    evening: \"um kvöld\",\n    night: \"um nótt\",\n  },\n  abbreviated: {\n    am: \"f.h.\",\n    pm: \"e.h.\",\n    midnight: \"á miðnætti\",\n    noon: \"á hádegi\",\n    morning: \"að morgni\",\n    afternoon: \"síðdegis\",\n    evening: \"um kvöld\",\n    night: \"um nótt\",\n  },\n  wide: {\n    am: \"fyrir hádegi\",\n    pm: \"eftir hádegi\",\n    midnight: \"á miðnætti\",\n    noon: \"á hádegi\",\n    morning: \"að morgni\",\n    afternoon: \"síðdegis\",\n    evening: \"um kvöld\",\n    night: \"um nótt\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  return number + \".\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+(\\.)?/i;\n\nconst matchEraPatterns = {\n  narrow: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n  abbreviated: /^(f\\.Kr\\.|e\\.Kr\\.)/i,\n  wide: /^(fyrir Krist|eftir Krist)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(f\\.Kr\\.)/i, /^(e\\.Kr\\.)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]\\.?/i,\n  abbreviated: /^q[1234]\\.?/i,\n  wide: /^[1234]\\.? fjórðungur/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1\\.?/i, /2\\.?/i, /3\\.?/i, /4\\.?/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmásónd]/i,\n  abbreviated:\n    /^(jan\\.|feb\\.|mars\\.|apríl\\.|maí|júní|júlí|águst|sep\\.|oct\\.|nov\\.|dec\\.)/i,\n  wide: /^(januar|febrúar|mars|apríl|maí|júní|júlí|águst|september|október|nóvember|desember)/i,\n};\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    /^á/i,\n    /^s/i,\n    /^ó/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ja/i,\n    /^f/i,\n    /^mar/i,\n    /^ap/i,\n    /^maí/i,\n    /^jún/i,\n    /^júl/i,\n    /^áu/i,\n    /^s/i,\n    /^ó/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smtwf]/i,\n  short: /^(su|má|þr|mi|fi|fö|la)/i,\n  abbreviated: /^(sun|mán|þri|mið|fim|fös|lau)\\.?/i,\n  wide: /^(sunnudagur|mánudagur|þriðjudagur|miðvikudagur|fimmtudagur|föstudagur|laugardagur)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^m/i, /^þ/i, /^m/i, /^f/i, /^f/i, /^l/i],\n  any: [/^su/i, /^má/i, /^þr/i, /^mi/i, /^fi/i, /^fö/i, /^la/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(f|e|síðdegis|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i,\n  any: /^(fyrir hádegi|eftir hádegi|[ef]\\.?h\\.?|síðdegis|morgunn|(á|að|um) (morgni|kvöld|nótt|miðnætti))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^f/i,\n    pm: /^e/i,\n    midnight: /^mi/i,\n    noon: /^há/i,\n    morning: /morgunn/i,\n    afternoon: /síðdegi/i,\n    evening: /kvöld/i,\n    night: /nótt/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 \"./is/_lib/formatDistance.js\";\nimport { formatLong } from \"./is/_lib/formatLong.js\";\nimport { formatRelative } from \"./is/_lib/formatRelative.js\";\nimport { localize } from \"./is/_lib/localize.js\";\nimport { match } from \"./is/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Icelandic locale.\n * @language Icelandic\n * @iso-639-2 isl\n * @author Derek Blank [@derekblank](https://github.com/derekblank)\n * @author Arnór Ýmir [@lamayg](https://github.com/lamayg)\n */\nexport const is = {\n  code: \"is\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default is;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"meno di un secondo\",\n    other: \"meno di {{count}} secondi\",\n  },\n\n  xSeconds: {\n    one: \"un secondo\",\n    other: \"{{count}} secondi\",\n  },\n\n  halfAMinute: \"alcuni secondi\",\n\n  lessThanXMinutes: {\n    one: \"meno di un minuto\",\n    other: \"meno di {{count}} minuti\",\n  },\n\n  xMinutes: {\n    one: \"un minuto\",\n    other: \"{{count}} minuti\",\n  },\n\n  aboutXHours: {\n    one: \"circa un'ora\",\n    other: \"circa {{count}} ore\",\n  },\n\n  xHours: {\n    one: \"un'ora\",\n    other: \"{{count}} ore\",\n  },\n\n  xDays: {\n    one: \"un giorno\",\n    other: \"{{count}} giorni\",\n  },\n\n  aboutXWeeks: {\n    one: \"circa una settimana\",\n    other: \"circa {{count}} settimane\",\n  },\n\n  xWeeks: {\n    one: \"una settimana\",\n    other: \"{{count}} settimane\",\n  },\n\n  aboutXMonths: {\n    one: \"circa un mese\",\n    other: \"circa {{count}} mesi\",\n  },\n\n  xMonths: {\n    one: \"un mese\",\n    other: \"{{count}} mesi\",\n  },\n\n  aboutXYears: {\n    one: \"circa un anno\",\n    other: \"circa {{count}} anni\",\n  },\n\n  xYears: {\n    one: \"un anno\",\n    other: \"{{count}} anni\",\n  },\n\n  overXYears: {\n    one: \"più di un anno\",\n    other: \"più di {{count}} anni\",\n  },\n\n  almostXYears: {\n    one: \"quasi un anno\",\n    other: \"quasi {{count}} anni\",\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 \"tra \" + result;\n    } else {\n      return result + \" fa\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d MMMM y\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst weekdays = [\n  \"domenica\",\n  \"lunedì\",\n  \"martedì\",\n  \"mercoledì\",\n  \"giovedì\",\n  \"venerdì\",\n  \"sabato\",\n];\n\nfunction lastWeek(day) {\n  switch (day) {\n    case 0:\n      return \"'domenica scorsa alle' p\";\n    default:\n      return \"'\" + weekdays[day] + \" scorso alle' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  return \"'\" + weekdays[day] + \" alle' p\";\n}\n\nfunction nextWeek(day) {\n  switch (day) {\n    case 0:\n      return \"'domenica prossima alle' p\";\n    default:\n      return \"'\" + weekdays[day] + \" prossimo alle' p\";\n  }\n}\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return lastWeek(day);\n    }\n  },\n  yesterday: \"'ieri alle' p\",\n  today: \"'oggi alle' p\",\n  tomorrow: \"'domani alle' p\",\n  nextWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return nextWeek(day);\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"aC\", \"dC\"],\n  abbreviated: [\"a.C.\", \"d.C.\"],\n  wide: [\"avanti Cristo\", \"dopo Cristo\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"G\", \"F\", \"M\", \"A\", \"M\", \"G\", \"L\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"gen\",\n    \"feb\",\n    \"mar\",\n    \"apr\",\n    \"mag\",\n    \"giu\",\n    \"lug\",\n    \"ago\",\n    \"set\",\n    \"ott\",\n    \"nov\",\n    \"dic\",\n  ],\n\n  wide: [\n    \"gennaio\",\n    \"febbraio\",\n    \"marzo\",\n    \"aprile\",\n    \"maggio\",\n    \"giugno\",\n    \"luglio\",\n    \"agosto\",\n    \"settembre\",\n    \"ottobre\",\n    \"novembre\",\n    \"dicembre\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"D\", \"L\", \"M\", \"M\", \"G\", \"V\", \"S\"],\n  short: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n  abbreviated: [\"dom\", \"lun\", \"mar\", \"mer\", \"gio\", \"ven\", \"sab\"],\n  wide: [\n    \"domenica\",\n    \"lunedì\",\n    \"martedì\",\n    \"mercoledì\",\n    \"giovedì\",\n    \"venerdì\",\n    \"sabato\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"m.\",\n    pm: \"p.\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"mattina\",\n    afternoon: \"pomeriggio\",\n    evening: \"sera\",\n    night: \"notte\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"mattina\",\n    afternoon: \"pomeriggio\",\n    evening: \"sera\",\n    night: \"notte\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"mattina\",\n    afternoon: \"pomeriggio\",\n    evening: \"sera\",\n    night: \"notte\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"m.\",\n    pm: \"p.\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"di mattina\",\n    afternoon: \"del pomeriggio\",\n    evening: \"di sera\",\n    night: \"di notte\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"di mattina\",\n    afternoon: \"del pomeriggio\",\n    evening: \"di sera\",\n    night: \"di notte\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"mezzanotte\",\n    noon: \"mezzogiorno\",\n    morning: \"di mattina\",\n    afternoon: \"del pomeriggio\",\n    evening: \"di sera\",\n    night: \"di notte\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return String(number);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(aC|dC)/i,\n  abbreviated: /^(a\\.?\\s?C\\.?|a\\.?\\s?e\\.?\\s?v\\.?|d\\.?\\s?C\\.?|e\\.?\\s?v\\.?)/i,\n  wide: /^(avanti Cristo|avanti Era Volgare|dopo Cristo|Era Volgare)/i,\n};\nconst parseEraPatterns = {\n  any: [/^a/i, /^(d|e)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^t[1234]/i,\n  wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[gfmalsond]/i,\n  abbreviated: /^(gen|feb|mar|apr|mag|giu|lug|ago|set|ott|nov|dic)/i,\n  wide: /^(gennaio|febbraio|marzo|aprile|maggio|giugno|luglio|agosto|settembre|ottobre|novembre|dicembre)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^g/i,\n    /^f/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^g/i,\n    /^l/i,\n    /^a/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ge/i,\n    /^f/i,\n    /^mar/i,\n    /^ap/i,\n    /^mag/i,\n    /^gi/i,\n    /^l/i,\n    /^ag/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dlmgvs]/i,\n  short: /^(do|lu|ma|me|gi|ve|sa)/i,\n  abbreviated: /^(dom|lun|mar|mer|gio|ven|sab)/i,\n  wide: /^(domenica|luned[i|ì]|marted[i|ì]|mercoled[i|ì]|gioved[i|ì]|venerd[i|ì]|sabato)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^g/i, /^v/i, /^s/i],\n  any: [/^d/i, /^l/i, /^ma/i, /^me/i, /^g/i, /^v/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(a|m\\.|p|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n  any: /^([ap]\\.?\\s?m\\.?|mezzanotte|mezzogiorno|(di|del) (mattina|pomeriggio|sera|notte))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mezza/i,\n    noon: /^mezzo/i,\n    morning: /mattina/i,\n    afternoon: /pomeriggio/i,\n    evening: /sera/i,\n    night: /notte/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 \"./it/_lib/formatDistance.js\";\nimport { formatLong } from \"./it/_lib/formatLong.js\";\nimport { formatRelative } from \"./it/_lib/formatRelative.js\";\nimport { localize } from \"./it/_lib/localize.js\";\nimport { match } from \"./it/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Italian locale.\n * @language Italian\n * @iso-639-2 ita\n * @author Alberto Restifo [@albertorestifo](https://github.com/albertorestifo)\n * @author Giovanni Polimeni [@giofilo](https://github.com/giofilo)\n * @author Vincenzo Carrese [@vin-car](https://github.com/vin-car)\n */\nexport const it = {\n  code: \"it\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default it;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"1秒未満\",\n    other: \"{{count}}秒未満\",\n    oneWithSuffix: \"約1秒\",\n    otherWithSuffix: \"約{{count}}秒\",\n  },\n\n  xSeconds: {\n    one: \"1秒\",\n    other: \"{{count}}秒\",\n  },\n\n  halfAMinute: \"30秒\",\n\n  lessThanXMinutes: {\n    one: \"1分未満\",\n    other: \"{{count}}分未満\",\n    oneWithSuffix: \"約1分\",\n    otherWithSuffix: \"約{{count}}分\",\n  },\n\n  xMinutes: {\n    one: \"1分\",\n    other: \"{{count}}分\",\n  },\n\n  aboutXHours: {\n    one: \"約1時間\",\n    other: \"約{{count}}時間\",\n  },\n\n  xHours: {\n    one: \"1時間\",\n    other: \"{{count}}時間\",\n  },\n\n  xDays: {\n    one: \"1日\",\n    other: \"{{count}}日\",\n  },\n\n  aboutXWeeks: {\n    one: \"約1週間\",\n    other: \"約{{count}}週間\",\n  },\n\n  xWeeks: {\n    one: \"1週間\",\n    other: \"{{count}}週間\",\n  },\n\n  aboutXMonths: {\n    one: \"約1か月\",\n    other: \"約{{count}}か月\",\n  },\n\n  xMonths: {\n    one: \"1か月\",\n    other: \"{{count}}か月\",\n  },\n\n  aboutXYears: {\n    one: \"約1年\",\n    other: \"約{{count}}年\",\n  },\n\n  xYears: {\n    one: \"1年\",\n    other: \"{{count}}年\",\n  },\n\n  overXYears: {\n    one: \"1年以上\",\n    other: \"{{count}}年以上\",\n  },\n\n  almostXYears: {\n    one: \"1年近く\",\n    other: \"{{count}}年近く\",\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  options = options || {};\n\n  let result;\n\n  const tokenValue = formatDistanceLocale[token];\n  if (typeof tokenValue === \"string\") {\n    result = tokenValue;\n  } else if (count === 1) {\n    if (options.addSuffix && tokenValue.oneWithSuffix) {\n      result = tokenValue.oneWithSuffix;\n    } else {\n      result = tokenValue.one;\n    }\n  } else {\n    if (options.addSuffix && tokenValue.otherWithSuffix) {\n      result = tokenValue.otherWithSuffix.replace(\"{{count}}\", String(count));\n    } else {\n      result = tokenValue.other.replace(\"{{count}}\", String(count));\n    }\n  }\n\n  if (options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"後\";\n    } else {\n      return result + \"前\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y年M月d日EEEE\",\n  long: \"y年M月d日\",\n  medium: \"y/MM/dd\",\n  short: \"y/MM/dd\",\n};\n\nconst timeFormats = {\n  full: \"H時mm分ss秒 zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"先週のeeeeのp\",\n  yesterday: \"昨日のp\",\n  today: \"今日のp\",\n  tomorrow: \"明日のp\",\n  nextWeek: \"翌週のeeeeのp\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) => {\n  return formatRelativeLocale[token];\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"BC\", \"AC\"],\n  abbreviated: [\"紀元前\", \"西暦\"],\n  wide: [\"紀元前\", \"西暦\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"第1四半期\", \"第2四半期\", \"第3四半期\", \"第4四半期\"],\n};\n\nconst monthValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n\n  abbreviated: [\n    \"1月\",\n    \"2月\",\n    \"3月\",\n    \"4月\",\n    \"5月\",\n    \"6月\",\n    \"7月\",\n    \"8月\",\n    \"9月\",\n    \"10月\",\n    \"11月\",\n    \"12月\",\n  ],\n\n  wide: [\n    \"1月\",\n    \"2月\",\n    \"3月\",\n    \"4月\",\n    \"5月\",\n    \"6月\",\n    \"7月\",\n    \"8月\",\n    \"9月\",\n    \"10月\",\n    \"11月\",\n    \"12月\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n  short: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n  abbreviated: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\n  wide: [\"日曜日\", \"月曜日\", \"火曜日\", \"水曜日\", \"木曜日\", \"金曜日\", \"土曜日\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n  abbreviated: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n  wide: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n};\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n  abbreviated: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n  wide: {\n    am: \"午前\",\n    pm: \"午後\",\n    midnight: \"深夜\",\n    noon: \"正午\",\n    morning: \"朝\",\n    afternoon: \"午後\",\n    evening: \"夜\",\n    night: \"深夜\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = String(options?.unit);\n\n  switch (unit) {\n    case \"year\":\n      return `${number}年`;\n    case \"quarter\":\n      return `第${number}四半期`;\n    case \"month\":\n      return `${number}月`;\n    case \"week\":\n      return `第${number}週`;\n    case \"date\":\n      return `${number}日`;\n    case \"hour\":\n      return `${number}時`;\n    case \"minute\":\n      return `${number}分`;\n    case \"second\":\n      return `${number}秒`;\n    default:\n      return `${number}`;\n  }\n};\n\nexport const localize = {\n  ordinalNumber: 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) => Number(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","import { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\nimport { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\n\nconst matchOrdinalNumberPattern = /^第?\\d+(年|四半期|月|週|日|時|分|秒)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(B\\.?C\\.?|A\\.?D\\.?)/i,\n  abbreviated: /^(紀元[前後]|西暦)/i,\n  wide: /^(紀元[前後]|西暦)/i,\n};\nconst parseEraPatterns = {\n  narrow: [/^B/i, /^A/i],\n  any: [/^(紀元前)/i, /^(西暦|紀元後)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^Q[1234]/i,\n  wide: /^第[1234一二三四１２３４]四半期/i,\n};\nconst parseQuarterPatterns = {\n  any: [/(1|一|１)/i, /(2|二|２)/i, /(3|三|３)/i, /(4|四|４)/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^([123456789]|1[012])/,\n  abbreviated: /^([123456789]|1[012])月/i,\n  wide: /^([123456789]|1[012])月/i,\n};\nconst parseMonthPatterns = {\n  any: [\n    /^1\\D/,\n    /^2/,\n    /^3/,\n    /^4/,\n    /^5/,\n    /^6/,\n    /^7/,\n    /^8/,\n    /^9/,\n    /^10/,\n    /^11/,\n    /^12/,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[日月火水木金土]/,\n  short: /^[日月火水木金土]/,\n  abbreviated: /^[日月火水木金土]/,\n  wide: /^[日月火水木金土]曜日/,\n};\nconst parseDayPatterns = {\n  any: [/^日/, /^月/, /^火/, /^水/, /^木/, /^金/, /^土/],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(AM|PM|午前|午後|正午|深夜|真夜中|夜|朝)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^(A|午前)/i,\n    pm: /^(P|午後)/i,\n    midnight: /^深夜|真夜中/i,\n    noon: /^正午/i,\n    morning: /^朝/i,\n    afternoon: /^午後/i,\n    evening: /^夜/i,\n    night: /^深夜/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    },\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 \"./ja/_lib/formatDistance.js\";\nimport { formatLong } from \"./ja/_lib/formatLong.js\";\nimport { formatRelative } from \"./ja/_lib/formatRelative.js\";\nimport { localize } from \"./ja/_lib/localize.js\";\nimport { match } from \"./ja/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Japanese locale.\n * @language Japanese\n * @iso-639-2 jpn\n * @author Thomas Eilmsteiner [@DeMuu](https://github.com/DeMuu)\n * @author Yamagishi Kazutoshi [@ykzts](https://github.com/ykzts)\n * @author Luca Ban [@mesqueeb](https://github.com/mesqueeb)\n * @author Terrence Lam [@skyuplam](https://github.com/skyuplam)\n * @author Taiki IKeda [@so99ynoodles](https://github.com/so99ynoodles)\n */\nexport const ja = {\n  code: \"ja\",\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 ja;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    past: \"{{count}} წამზე ნაკლები ხნის წინ\",\n    present: \"{{count}} წამზე ნაკლები\",\n    future: \"{{count}} წამზე ნაკლებში\",\n  },\n\n  xSeconds: {\n    past: \"{{count}} წამის წინ\",\n    present: \"{{count}} წამი\",\n    future: \"{{count}} წამში\",\n  },\n\n  halfAMinute: {\n    past: \"ნახევარი წუთის წინ\",\n    present: \"ნახევარი წუთი\",\n    future: \"ნახევარი წუთში\",\n  },\n\n  lessThanXMinutes: {\n    past: \"{{count}} წუთზე ნაკლები ხნის წინ\",\n    present: \"{{count}} წუთზე ნაკლები\",\n    future: \"{{count}} წუთზე ნაკლებში\",\n  },\n\n  xMinutes: {\n    past: \"{{count}} წუთის წინ\",\n    present: \"{{count}} წუთი\",\n    future: \"{{count}} წუთში\",\n  },\n\n  aboutXHours: {\n    past: \"დაახლოებით {{count}} საათის წინ\",\n    present: \"დაახლოებით {{count}} საათი\",\n    future: \"დაახლოებით {{count}} საათში\",\n  },\n\n  xHours: {\n    past: \"{{count}} საათის წინ\",\n    present: \"{{count}} საათი\",\n    future: \"{{count}} საათში\",\n  },\n\n  xDays: {\n    past: \"{{count}} დღის წინ\",\n    present: \"{{count}} დღე\",\n    future: \"{{count}} დღეში\",\n  },\n\n  aboutXWeeks: {\n    past: \"დაახლოებით {{count}} კვირას წინ\",\n    present: \"დაახლოებით {{count}} კვირა\",\n    future: \"დაახლოებით {{count}} კვირაში\",\n  },\n\n  xWeeks: {\n    past: \"{{count}} კვირას კვირა\",\n    present: \"{{count}} კვირა\",\n    future: \"{{count}} კვირაში\",\n  },\n\n  aboutXMonths: {\n    past: \"დაახლოებით {{count}} თვის წინ\",\n    present: \"დაახლოებით {{count}} თვე\",\n    future: \"დაახლოებით {{count}} თვეში\",\n  },\n\n  xMonths: {\n    past: \"{{count}} თვის წინ\",\n    present: \"{{count}} თვე\",\n    future: \"{{count}} თვეში\",\n  },\n\n  aboutXYears: {\n    past: \"დაახლოებით {{count}} წლის წინ\",\n    present: \"დაახლოებით {{count}} წელი\",\n    future: \"დაახლოებით {{count}} წელში\",\n  },\n\n  xYears: {\n    past: \"{{count}} წლის წინ\",\n    present: \"{{count}} წელი\",\n    future: \"{{count}} წელში\",\n  },\n\n  overXYears: {\n    past: \"{{count}} წელზე მეტი ხნის წინ\",\n    present: \"{{count}} წელზე მეტი\",\n    future: \"{{count}} წელზე მეტი ხნის შემდეგ\",\n  },\n\n  almostXYears: {\n    past: \"თითქმის {{count}} წლის წინ\",\n    present: \"თითქმის {{count}} წელი\",\n    future: \"თითქმის {{count}} წელში\",\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 (\n    options?.addSuffix &&\n    options.comparison &&\n    options.comparison > 0\n  ) {\n    result = tokenValue.future.replace(\"{{count}}\", String(count));\n  } else if (options?.addSuffix) {\n    result = tokenValue.past.replace(\"{{count}}\", String(count));\n  } else {\n    result = tokenValue.present.replace(\"{{count}}\", String(count));\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM, y\",\n  long: \"do, MMMM, y\",\n  medium: \"d, MMM, y\",\n  short: \"dd/MM/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}} {{time}}'-ზე'\",\n  long: \"{{date}} {{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: \"'წინა' eeee p'-ზე'\",\n  yesterday: \"'გუშინ' p'-ზე'\",\n  today: \"'დღეს' p'-ზე'\",\n  tomorrow: \"'ხვალ' p'-ზე'\",\n  nextWeek: \"'შემდეგი' eeee p'-ზე'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ჩ.წ-მდე\", \"ჩ.წ\"],\n  abbreviated: [\"ჩვ.წ-მდე\", \"ჩვ.წ\"],\n  wide: [\"ჩვენს წელთაღრიცხვამდე\", \"ჩვენი წელთაღრიცხვით\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-ლი კვ\", \"2-ე კვ\", \"3-ე კვ\", \"4-ე კვ\"],\n  wide: [\"1-ლი კვარტალი\", \"2-ე კვარტალი\", \"3-ე კვარტალი\", \"4-ე კვარტალი\"],\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: [\n    \"ია\",\n    \"თე\",\n    \"მა\",\n    \"აპ\",\n    \"მს\",\n    \"ვნ\",\n    \"ვლ\",\n    \"აგ\",\n    \"სე\",\n    \"ოქ\",\n    \"ნო\",\n    \"დე\",\n  ],\n\n  abbreviated: [\n    \"იან\",\n    \"თებ\",\n    \"მარ\",\n    \"აპრ\",\n    \"მაი\",\n    \"ივნ\",\n    \"ივლ\",\n    \"აგვ\",\n    \"სექ\",\n    \"ოქტ\",\n    \"ნოე\",\n    \"დეკ\",\n  ],\n\n  wide: [\n    \"იანვარი\",\n    \"თებერვალი\",\n    \"მარტი\",\n    \"აპრილი\",\n    \"მაისი\",\n    \"ივნისი\",\n    \"ივლისი\",\n    \"აგვისტო\",\n    \"სექტემბერი\",\n    \"ოქტომბერი\",\n    \"ნოემბერი\",\n    \"დეკემბერი\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"კვ\", \"ორ\", \"სა\", \"ოთ\", \"ხუ\", \"პა\", \"შა\"],\n  short: [\"კვი\", \"ორშ\", \"სამ\", \"ოთხ\", \"ხუთ\", \"პარ\", \"შაბ\"],\n  abbreviated: [\"კვი\", \"ორშ\", \"სამ\", \"ოთხ\", \"ხუთ\", \"პარ\", \"შაბ\"],\n  wide: [\n    \"კვირა\",\n    \"ორშაბათი\",\n    \"სამშაბათი\",\n    \"ოთხშაბათი\",\n    \"ხუთშაბათი\",\n    \"პარასკევი\",\n    \"შაბათი\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"შუაღამე\",\n    noon: \"შუადღე\",\n    morning: \"დილა\",\n    afternoon: \"საღამო\",\n    evening: \"საღამო\",\n    night: \"ღამე\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"შუაღამე\",\n    noon: \"შუადღე\",\n    morning: \"დილა\",\n    afternoon: \"საღამო\",\n    evening: \"საღამო\",\n    night: \"ღამე\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"შუაღამე\",\n    noon: \"შუადღე\",\n    morning: \"დილა\",\n    afternoon: \"საღამო\",\n    evening: \"საღამო\",\n    night: \"ღამე\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"შუაღამით\",\n    noon: \"შუადღისას\",\n    morning: \"დილით\",\n    afternoon: \"ნაშუადღევს\",\n    evening: \"საღამოს\",\n    night: \"ღამით\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"შუაღამით\",\n    noon: \"შუადღისას\",\n    morning: \"დილით\",\n    afternoon: \"ნაშუადღევს\",\n    evening: \"საღამოს\",\n    night: \"ღამით\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"შუაღამით\",\n    noon: \"შუადღისას\",\n    morning: \"დილით\",\n    afternoon: \"ნაშუადღევს\",\n    evening: \"საღამოს\",\n    night: \"ღამით\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber) => {\n  const number = Number(dirtyNumber);\n\n  if (number === 1) {\n    return number + \"-ლი\";\n  }\n\n  return number + \"-ე\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-ლი|-ე)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ჩვ?\\.წ)/i,\n  abbreviated: /^(ჩვ?\\.წ)/i,\n  wide: /^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე|ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i,\n};\nconst parseEraPatterns = {\n  any: [\n    /^(ჩვენს წელთაღრიცხვამდე|ქრისტეშობამდე)/i,\n    /^(ჩვენი წელთაღრიცხვით|ქრისტეშობიდან)/i,\n  ],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]-(ლი|ე)? კვ/i,\n  wide: /^[1234]-(ლი|ე)? კვარტალი/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  any: /^(ია|თე|მა|აპ|მს|ვნ|ვლ|აგ|სე|ოქ|ნო|დე)/i,\n};\nconst parseMonthPatterns = {\n  any: [\n    /^ია/i,\n    /^თ/i,\n    /^მარ/i,\n    /^აპ/i,\n    /^მაი/i,\n    /^ი?ვნ/i,\n    /^ი?ვლ/i,\n    /^აგ/i,\n    /^ს/i,\n    /^ო/i,\n    /^ნ/i,\n    /^დ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(კვ|ორ|სა|ოთ|ხუ|პა|შა)/i,\n  short: /^(კვი|ორშ|სამ|ოთხ|ხუთ|პარ|შაბ)/i,\n  wide: /^(კვირა|ორშაბათი|სამშაბათი|ოთხშაბათი|ხუთშაბათი|პარასკევი|შაბათი)/i,\n};\nconst parseDayPatterns = {\n  any: [/^კვ/i, /^ორ/i, /^სა/i, /^ოთ/i, /^ხუ/i, /^პა/i, /^შა/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^([ap]\\.?\\s?m\\.?|შუაღ|დილ)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^შუაღ/i,\n    noon: /^შუადღ/i,\n    morning: /^დილ/i,\n    afternoon: /ნაშუადღევს/i,\n    evening: /საღამო/i,\n    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: \"any\",\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 \"./ka/_lib/formatDistance.js\";\nimport { formatLong } from \"./ka/_lib/formatLong.js\";\nimport { formatRelative } from \"./ka/_lib/formatRelative.js\";\nimport { localize } from \"./ka/_lib/localize.js\";\nimport { match } from \"./ka/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Georgian locale.\n * @language Georgian\n * @iso-639-2 geo\n * @author Lado Lomidze [@Landish](https://github.com/Landish)\n * @author Nick Shvelidze [@shvelo](https://github.com/shvelo)\n */\nexport const ka = {\n  code: \"ka\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ka;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    regular: {\n      one: \"1 секундтан аз\",\n      singularNominative: \"{{count}} секундтан аз\",\n      singularGenitive: \"{{count}} секундтан аз\",\n      pluralGenitive: \"{{count}} секундтан аз\",\n    },\n    future: {\n      one: \"бір секундтан кейін\",\n      singularNominative: \"{{count}} секундтан кейін\",\n      singularGenitive: \"{{count}} секундтан кейін\",\n      pluralGenitive: \"{{count}} секундтан кейін\",\n    },\n  },\n\n  xSeconds: {\n    regular: {\n      singularNominative: \"{{count}} секунд\",\n      singularGenitive: \"{{count}} секунд\",\n      pluralGenitive: \"{{count}} секунд\",\n    },\n    past: {\n      singularNominative: \"{{count}} секунд бұрын\",\n      singularGenitive: \"{{count}} секунд бұрын\",\n      pluralGenitive: \"{{count}} секунд бұрын\",\n    },\n    future: {\n      singularNominative: \"{{count}} секундтан кейін\",\n      singularGenitive: \"{{count}} секундтан кейін\",\n      pluralGenitive: \"{{count}} секундтан кейін\",\n    },\n  },\n\n  halfAMinute: (options) => {\n    if (options?.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        return \"жарты минут ішінде\";\n      } else {\n        return \"жарты минут бұрын\";\n      }\n    }\n\n    return \"жарты минут\";\n  },\n\n  lessThanXMinutes: {\n    regular: {\n      one: \"1 минуттан аз\",\n      singularNominative: \"{{count}} минуттан аз\",\n      singularGenitive: \"{{count}} минуттан аз\",\n      pluralGenitive: \"{{count}} минуттан аз\",\n    },\n    future: {\n      one: \"минуттан кем \",\n      singularNominative: \"{{count}} минуттан кем\",\n      singularGenitive: \"{{count}} минуттан кем\",\n      pluralGenitive: \"{{count}} минуттан кем\",\n    },\n  },\n\n  xMinutes: {\n    regular: {\n      singularNominative: \"{{count}} минут\",\n      singularGenitive: \"{{count}} минут\",\n      pluralGenitive: \"{{count}} минут\",\n    },\n    past: {\n      singularNominative: \"{{count}} минут бұрын\",\n      singularGenitive: \"{{count}} минут бұрын\",\n      pluralGenitive: \"{{count}} минут бұрын\",\n    },\n    future: {\n      singularNominative: \"{{count}} минуттан кейін\",\n      singularGenitive: \"{{count}} минуттан кейін\",\n      pluralGenitive: \"{{count}} минуттан кейін\",\n    },\n  },\n\n  aboutXHours: {\n    regular: {\n      singularNominative: \"шамамен {{count}} сағат\",\n      singularGenitive: \"шамамен {{count}} сағат\",\n      pluralGenitive: \"шамамен {{count}} сағат\",\n    },\n    future: {\n      singularNominative: \"шамамен {{count}} сағаттан кейін\",\n      singularGenitive: \"шамамен {{count}} сағаттан кейін\",\n      pluralGenitive: \"шамамен {{count}} сағаттан кейін\",\n    },\n  },\n\n  xHours: {\n    regular: {\n      singularNominative: \"{{count}} сағат\",\n      singularGenitive: \"{{count}} сағат\",\n      pluralGenitive: \"{{count}} сағат\",\n    },\n  },\n\n  xDays: {\n    regular: {\n      singularNominative: \"{{count}} күн\",\n      singularGenitive: \"{{count}} күн\",\n      pluralGenitive: \"{{count}} күн\",\n    },\n    future: {\n      singularNominative: \"{{count}} күннен кейін\",\n      singularGenitive: \"{{count}} күннен кейін\",\n      pluralGenitive: \"{{count}} күннен кейін\",\n    },\n  },\n\n  aboutXWeeks: {\n    type: \"weeks\",\n    one: \"шамамен 1 апта\",\n    other: \"шамамен {{count}} апта\",\n  },\n\n  xWeeks: {\n    type: \"weeks\",\n    one: \"1 апта\",\n    other: \"{{count}} апта\",\n  },\n\n  aboutXMonths: {\n    regular: {\n      singularNominative: \"шамамен {{count}} ай\",\n      singularGenitive: \"шамамен {{count}} ай\",\n      pluralGenitive: \"шамамен {{count}} ай\",\n    },\n    future: {\n      singularNominative: \"шамамен {{count}} айдан кейін\",\n      singularGenitive: \"шамамен {{count}} айдан кейін\",\n      pluralGenitive: \"шамамен {{count}} айдан кейін\",\n    },\n  },\n\n  xMonths: {\n    regular: {\n      singularNominative: \"{{count}} ай\",\n      singularGenitive: \"{{count}} ай\",\n      pluralGenitive: \"{{count}} ай\",\n    },\n  },\n\n  aboutXYears: {\n    regular: {\n      singularNominative: \"шамамен {{count}} жыл\",\n      singularGenitive: \"шамамен {{count}} жыл\",\n      pluralGenitive: \"шамамен {{count}} жыл\",\n    },\n    future: {\n      singularNominative: \"шамамен {{count}} жылдан кейін\",\n      singularGenitive: \"шамамен {{count}} жылдан кейін\",\n      pluralGenitive: \"шамамен {{count}} жылдан кейін\",\n    },\n  },\n\n  xYears: {\n    regular: {\n      singularNominative: \"{{count}} жыл\",\n      singularGenitive: \"{{count}} жыл\",\n      pluralGenitive: \"{{count}} жыл\",\n    },\n    future: {\n      singularNominative: \"{{count}} жылдан кейін\",\n      singularGenitive: \"{{count}} жылдан кейін\",\n      pluralGenitive: \"{{count}} жылдан кейін\",\n    },\n  },\n\n  overXYears: {\n    regular: {\n      singularNominative: \"{{count}} жылдан астам\",\n      singularGenitive: \"{{count}} жылдан астам\",\n      pluralGenitive: \"{{count}} жылдан астам\",\n    },\n    future: {\n      singularNominative: \"{{count}} жылдан астам\",\n      singularGenitive: \"{{count}} жылдан астам\",\n      pluralGenitive: \"{{count}} жылдан астам\",\n    },\n  },\n\n  almostXYears: {\n    regular: {\n      singularNominative: \"{{count}} жылға жақын\",\n      singularGenitive: \"{{count}} жылға жақын\",\n      pluralGenitive: \"{{count}} жылға жақын\",\n    },\n    future: {\n      singularNominative: \"{{count}} жылдан кейін\",\n      singularGenitive: \"{{count}} жылдан кейін\",\n      pluralGenitive: \"{{count}} жылдан кейін\",\n    },\n  },\n};\n\nfunction declension(scheme, count) {\n  // scheme for count=1 exists\n  if (scheme.one && count === 1) return scheme.one;\n\n  const rem10 = count % 10;\n  const rem100 = count % 100;\n\n  // 1, 21, 31, ...\n  if (rem10 === 1 && rem100 !== 11) {\n    return scheme.singularNominative.replace(\"{{count}}\", String(count));\n\n    // 2, 3, 4, 22, 23, 24, 32 ...\n  } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n    return scheme.singularGenitive.replace(\"{{count}}\", String(count));\n\n    // 5, 6, 7, 8, 9, 10, 11, ...\n  } else {\n    return scheme.pluralGenitive.replace(\"{{count}}\", String(count));\n  }\n}\n\nexport const formatDistance = (token, count, options) => {\n  const tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === \"function\") return tokenValue(options);\n\n  if (tokenValue.type === \"weeks\") {\n    return count === 1\n      ? tokenValue.one\n      : tokenValue.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      if (tokenValue.future) {\n        return declension(tokenValue.future, count);\n      } else {\n        return declension(tokenValue.regular, count) + \" кейін\";\n      }\n    } else {\n      if (tokenValue.past) {\n        return declension(tokenValue.past, count);\n      } else {\n        return declension(tokenValue.regular, count) + \" бұрын\";\n      }\n    }\n  } else {\n    return declension(tokenValue.regular, count);\n  }\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM y 'ж.'\",\n  long: \"do MMMM y 'ж.'\",\n  medium: \"d MMM y 'ж.'\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst accusativeWeekdays = [\n  \"жексенбіде\",\n  \"дүйсенбіде\",\n  \"сейсенбіде\",\n  \"сәрсенбіде\",\n  \"бейсенбіде\",\n  \"жұмада\",\n  \"сенбіде\",\n];\n\nfunction lastWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  return \"'өткен \" + weekday + \" сағат' p'-де'\";\n}\n\nfunction thisWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  return \"'\" + weekday + \" сағат' p'-де'\";\n}\n\nfunction nextWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  return \"'келесі \" + weekday + \" сағат' p'-де'\";\n}\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return lastWeek(day);\n    }\n  },\n  yesterday: \"'кеше сағат' p'-де'\",\n  today: \"'бүгін сағат' p'-де'\",\n  tomorrow: \"'ертең сағат' p'-де'\",\n  nextWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return nextWeek(day);\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"б.з.д.\", \"б.з.\"],\n  abbreviated: [\"б.з.д.\", \"б.з.\"],\n  wide: [\"біздің заманымызға дейін\", \"біздің заманымыз\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-ші тоқ.\", \"2-ші тоқ.\", \"3-ші тоқ.\", \"4-ші тоқ.\"],\n  wide: [\"1-ші тоқсан\", \"2-ші тоқсан\", \"3-ші тоқсан\", \"4-ші тоқсан\"],\n};\n\nconst monthValues = {\n  narrow: [\"Қ\", \"А\", \"Н\", \"С\", \"М\", \"М\", \"Ш\", \"Т\", \"Қ\", \"Қ\", \"Қ\", \"Ж\"],\n  abbreviated: [\n    \"қаң\",\n    \"ақп\",\n    \"нау\",\n    \"сәу\",\n    \"мам\",\n    \"мау\",\n    \"шіл\",\n    \"там\",\n    \"қыр\",\n    \"қаз\",\n    \"қар\",\n    \"жел\",\n  ],\n\n  wide: [\n    \"қаңтар\",\n    \"ақпан\",\n    \"наурыз\",\n    \"сәуір\",\n    \"мамыр\",\n    \"маусым\",\n    \"шілде\",\n    \"тамыз\",\n    \"қыркүйек\",\n    \"қазан\",\n    \"қараша\",\n    \"желтоқсан\",\n  ],\n};\nconst formattingMonthValues = {\n  narrow: [\"Қ\", \"А\", \"Н\", \"С\", \"М\", \"М\", \"Ш\", \"Т\", \"Қ\", \"Қ\", \"Қ\", \"Ж\"],\n  abbreviated: [\n    \"қаң\",\n    \"ақп\",\n    \"нау\",\n    \"сәу\",\n    \"мам\",\n    \"мау\",\n    \"шіл\",\n    \"там\",\n    \"қыр\",\n    \"қаз\",\n    \"қар\",\n    \"жел\",\n  ],\n\n  wide: [\n    \"қаңтар\",\n    \"ақпан\",\n    \"наурыз\",\n    \"сәуір\",\n    \"мамыр\",\n    \"маусым\",\n    \"шілде\",\n    \"тамыз\",\n    \"қыркүйек\",\n    \"қазан\",\n    \"қараша\",\n    \"желтоқсан\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Ж\", \"Д\", \"С\", \"С\", \"Б\", \"Ж\", \"С\"],\n  short: [\"жс\", \"дс\", \"сс\", \"ср\", \"бс\", \"жм\", \"сб\"],\n  abbreviated: [\"жс\", \"дс\", \"сс\", \"ср\", \"бс\", \"жм\", \"сб\"],\n  wide: [\n    \"жексенбі\",\n    \"дүйсенбі\",\n    \"сейсенбі\",\n    \"сәрсенбі\",\n    \"бейсенбі\",\n    \"жұма\",\n    \"сенбі\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ТД\",\n    pm: \"ТК\",\n    midnight: \"түн ортасы\",\n    noon: \"түс\",\n    morning: \"таң\",\n    afternoon: \"күндіз\",\n    evening: \"кеш\",\n    night: \"түн\",\n  },\n  wide: {\n    am: \"ТД\",\n    pm: \"ТК\",\n    midnight: \"түн ортасы\",\n    noon: \"түс\",\n    morning: \"таң\",\n    afternoon: \"күндіз\",\n    evening: \"кеш\",\n    night: \"түн\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ТД\",\n    pm: \"ТК\",\n    midnight: \"түн ортасында\",\n    noon: \"түс\",\n    morning: \"таң\",\n    afternoon: \"күн\",\n    evening: \"кеш\",\n    night: \"түн\",\n  },\n  wide: {\n    am: \"ТД\",\n    pm: \"ТК\",\n    midnight: \"түн ортасында\",\n    noon: \"түсте\",\n    morning: \"таңертең\",\n    afternoon: \"күндіз\",\n    evening: \"кеште\",\n    night: \"түнде\",\n  },\n};\n\nconst suffixes = {\n  0: \"-ші\",\n  1: \"-ші\",\n  2: \"-ші\",\n  3: \"-ші\",\n  4: \"-ші\",\n  5: \"-ші\",\n  6: \"-шы\",\n  7: \"-ші\",\n  8: \"-ші\",\n  9: \"-шы\",\n  10: \"-шы\",\n  20: \"-шы\",\n  30: \"-шы\",\n  40: \"-шы\",\n  50: \"-ші\",\n  60: \"-шы\",\n  70: \"-ші\",\n  80: \"-ші\",\n  90: \"-шы\",\n  100: \"-ші\",\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  const mod10 = number % 10;\n  const b = number >= 100 ? 100 : null;\n  const suffix =\n    suffixes[number] || suffixes[mod10] || (b && suffixes[b]) || \"\";\n\n  return number + suffix;\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"any\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?(ші|шы))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((б )?з\\.?\\s?д\\.?)/i,\n  abbreviated: /^((б )?з\\.?\\s?д\\.?)/i,\n  wide: /^(біздің заманымызға дейін|біздің заманымыз|біздің заманымыздан)/i,\n};\nconst parseEraPatterns = {\n  any: [/^б/i, /^з/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?ші)? тоқ.?/i,\n  wide: /^[1234](-?ші)? тоқсан/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(қ|а|н|с|м|мау|ш|т|қыр|қаз|қар|ж)/i,\n  abbreviated: /^(қаң|ақп|нау|сәу|мам|мау|шіл|там|қыр|қаз|қар|жел)/i,\n  wide: /^(қаңтар|ақпан|наурыз|сәуір|мамыр|маусым|шілде|тамыз|қыркүйек|қазан|қараша|желтоқсан)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^қ/i,\n    /^а/i,\n    /^н/i,\n    /^с/i,\n    /^м/i,\n    /^м/i,\n    /^ш/i,\n    /^т/i,\n    /^қ/i,\n    /^қ/i,\n    /^қ/i,\n    /^ж/i,\n  ],\n\n  abbreviated: [\n    /^қаң/i,\n    /^ақп/i,\n    /^нау/i,\n    /^сәу/i,\n    /^мам/i,\n    /^мау/i,\n    /^шіл/i,\n    /^там/i,\n    /^қыр/i,\n    /^қаз/i,\n    /^қар/i,\n    /^жел/i,\n  ],\n\n  any: [\n    /^қ/i,\n    /^а/i,\n    /^н/i,\n    /^с/i,\n    /^м/i,\n    /^м/i,\n    /^ш/i,\n    /^т/i,\n    /^қ/i,\n    /^қ/i,\n    /^қ/i,\n    /^ж/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(ж|д|с|с|б|ж|с)/i,\n  short: /^(жс|дс|сс|ср|бс|жм|сб)/i,\n  wide: /^(жексенбі|дүйсенбі|сейсенбі|сәрсенбі|бейсенбі|жұма|сенбі)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ж/i, /^д/i, /^с/i, /^с/i, /^б/i, /^ж/i, /^с/i],\n  short: [/^жс/i, /^дс/i, /^сс/i, /^ср/i, /^бс/i, /^жм/i, /^сб/i],\n  any: [\n    /^ж[ек]/i,\n    /^д[үй]/i,\n    /^сe[й]/i,\n    /^сә[р]/i,\n    /^б[ей]/i,\n    /^ж[ұм]/i,\n    /^се[н]/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i,\n  wide: /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i,\n  any: /^Т\\.?\\s?[ДК]\\.?|түн ортасында|((түсте|таңертең|таңда|таңертең|таңмен|таң|күндіз|күн|кеште|кеш|түнде|түн)\\.?)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ТД/i,\n    pm: /^ТК/i,\n    midnight: /^түн орта/i,\n    noon: /^күндіз/i,\n    morning: /таң/i,\n    afternoon: /түс/i,\n    evening: /кеш/i,\n    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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./kk/_lib/formatDistance.js\";\nimport { formatLong } from \"./kk/_lib/formatLong.js\";\nimport { formatRelative } from \"./kk/_lib/formatRelative.js\";\nimport { localize } from \"./kk/_lib/localize.js\";\nimport { match } from \"./kk/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Kazakh locale.\n * @language Kazakh\n * @iso-639-2 kaz\n * @author Nikita Bayev [@drugoi](https://github.com/drugoi)\n */\nexport const kk = {\n  code: \"kk\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default kk;\n","const formatDistanceLocale = {\n  lessThanXSeconds: \"តិចជាង {{count}} វិនាទី\",\n  xSeconds: \"{{count}} វិនាទី\",\n  halfAMinute: \"កន្លះនាទី\",\n  lessThanXMinutes: \"តិចជាង {{count}} នាទី\",\n  xMinutes: \"{{count}} នាទី\",\n  aboutXHours: \"ប្រហែល {{count}} ម៉ោង\",\n  xHours: \"{{count}} ម៉ោង\",\n  xDays: \"{{count}} ថ្ងៃ\",\n  aboutXWeeks: \"ប្រហែល {{count}} សប្តាហ៍\",\n  xWeeks: \"{{count}} សប្តាហ៍\",\n  aboutXMonths: \"ប្រហែល {{count}} ខែ\",\n  xMonths: \"{{count}} ខែ\",\n  aboutXYears: \"ប្រហែល {{count}} ឆ្នាំ\",\n  xYears: \"{{count}} ឆ្នាំ\",\n  overXYears: \"ជាង {{count}} ឆ្នាំ\",\n  almostXYears: \"ជិត {{count}} ឆ្នាំ\",\n};\n\nexport const formatDistance = (token, count, options) => {\n  const tokenValue = formatDistanceLocale[token];\n\n  let result = tokenValue;\n\n  if (typeof count === \"number\") {\n    result = result.replace(\"{{count}}\", count.toString());\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"ក្នុងរយៈពេល \" + result;\n    } else {\n      return result + \"មុន\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE do MMMM y\",\n  long: \"do MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"h:mm:ss a\",\n  long: \"h:mm:ss a\",\n  medium: \"h:mm:ss a\",\n  short: \"h:mm a\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'ម៉ោង' {{time}}\",\n  long: \"{{date}} 'ម៉ោង' {{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: \"'ថ្ងៃ'eeee'ស​ប្តា​ហ៍​មុនម៉ោង' p\",\n  yesterday: \"'ម្សិលមិញនៅម៉ោង' p\",\n  today: \"'ថ្ងៃនេះម៉ោង' p\",\n  tomorrow: \"'ថ្ងៃស្អែកម៉ោង' p\",\n  nextWeek: \"'ថ្ងៃ'eeee'ស​ប្តា​ហ៍​ក្រោយម៉ោង' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ម.គស\", \"គស\"],\n  abbreviated: [\"មុនគ.ស\", \"គ.ស\"],\n  wide: [\"មុនគ្រិស្តសករាជ\", \"នៃគ្រិស្តសករាជ\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"ត្រីមាសទី 1\", \"ត្រីមាសទី 2\", \"ត្រីមាសទី 3\", \"ត្រីមាសទី 4\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"ម.ក\",\n    \"ក.ម\",\n    \"មិ\",\n    \"ម.ស\",\n    \"ឧ.ស\",\n    \"ម.ថ\",\n    \"ក.ដ\",\n    \"សី\",\n    \"កញ\",\n    \"តុ\",\n    \"វិ\",\n    \"ធ\",\n  ],\n\n  abbreviated: [\n    \"មករា\",\n    \"កុម្ភៈ\",\n    \"មីនា\",\n    \"មេសា\",\n    \"ឧសភា\",\n    \"មិថុនា\",\n    \"កក្កដា\",\n    \"សីហា\",\n    \"កញ្ញា\",\n    \"តុលា\",\n    \"វិច្ឆិកា\",\n    \"ធ្នូ\",\n  ],\n\n  wide: [\n    \"មករា\",\n    \"កុម្ភៈ\",\n    \"មីនា\",\n    \"មេសា\",\n    \"ឧសភា\",\n    \"មិថុនា\",\n    \"កក្កដា\",\n    \"សីហា\",\n    \"កញ្ញា\",\n    \"តុលា\",\n    \"វិច្ឆិកា\",\n    \"ធ្នូ\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"អា\", \"ច\", \"អ\", \"ព\", \"ព្រ\", \"សុ\", \"ស\"],\n  short: [\"អា\", \"ច\", \"អ\", \"ព\", \"ព្រ\", \"សុ\", \"ស\"],\n  abbreviated: [\"អា\", \"ច\", \"អ\", \"ព\", \"ព្រ\", \"សុ\", \"ស\"],\n  wide: [\"អាទិត្យ\", \"ចន្ទ\", \"អង្គារ\", \"ពុធ\", \"ព្រហស្បតិ៍\", \"សុក្រ\", \"សៅរ៍\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n  abbreviated: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n  wide: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n  abbreviated: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n  wide: {\n    am: \"ព្រឹក\",\n    pm: \"ល្ងាច\",\n    midnight: \"​ពេលកណ្ដាលអធ្រាត្រ\",\n    noon: \"ពេលថ្ងៃត្រង់\",\n    morning: \"ពេលព្រឹក\",\n    afternoon: \"ពេលរសៀល\",\n    evening: \"ពេលល្ងាច\",\n    night: \"ពេលយប់\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _) => {\n  const number = Number(dirtyNumber);\n  return number.toString();\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","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: /^(ម\\.)?គស/i,\n  abbreviated: /^(មុន)?គ\\.ស/i,\n  wide: /^(មុន|នៃ)គ្រិស្តសករាជ/i,\n};\nconst parseEraPatterns = {\n  any: [/^(ម|មុន)គ\\.?ស/i, /^(នៃ)?គ\\.?ស/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^(ត្រីមាស)(ទី)?\\s?[1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(ម\\.ក|ក\\.ម|មិ|ម\\.ស|ឧ\\.ស|ម\\.ថ|ក\\.ដ|សី|កញ|តុ|វិ|ធ)/i,\n  abbreviated:\n    /^(មករា|កុម្ភៈ|មីនា|មេសា|ឧសភា|មិថុនា|កក្កដា|សីហា|កញ្ញា|តុលា|វិច្ឆិកា|ធ្នូ)/i,\n  wide: /^(មករា|កុម្ភៈ|មីនា|មេសា|ឧសភា|មិថុនា|កក្កដា|សីហា|កញ្ញា|តុលា|វិច្ឆិកា|ធ្នូ)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ម\\.ក/i,\n    /^ក\\.ម/i,\n    /^មិ/i,\n    /^ម\\.ស/i,\n    /^ឧ\\.ស/i,\n    /^ម\\.ថ/i,\n    /^ក\\.ដ/i,\n    /^សី/i,\n    /^កញ/i,\n    /^តុ/i,\n    /^វិ/i,\n    /^ធ/i,\n  ],\n\n  any: [\n    /^មក/i,\n    /^កុ/i,\n    /^មីន/i,\n    /^មេ/i,\n    /^ឧស/i,\n    /^មិថ/i,\n    /^កក/i,\n    /^សី/i,\n    /^កញ/i,\n    /^តុ/i,\n    /^វិច/i,\n    /^ធ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(អា|ច|អ|ព|ព្រ|សុ|ស)/i,\n  short: /^(អា|ច|អ|ព|ព្រ|សុ|ស)/i,\n  abbreviated: /^(អា|ច|អ|ព|ព្រ|សុ|ស)/i,\n  wide: /^(អាទិត្យ|ចន្ទ|អង្គារ|ពុធ|ព្រហស្បតិ៍|សុក្រ|សៅរ៍)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^អា/i, /^ច/i, /^អ/i, /^ព/i, /^ព្រ/i, /^សុ/i, /^ស/i],\n  any: [/^អា/i, /^ច/i, /^អ/i, /^ព/i, /^ព្រ/i, /^សុ/i, /^សៅ/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(ព្រឹក|ល្ងាច|ពេលព្រឹក|ពេលថ្ងៃត្រង់|ពេលល្ងាច|ពេលរសៀល|ពេលយប់|ពេលកណ្ដាលអធ្រាត្រ)/i,\n  any: /^(ព្រឹក|ល្ងាច|ពេលព្រឹក|ពេលថ្ងៃត្រង់|ពេលល្ងាច|ពេលរសៀល|ពេលយប់|ពេលកណ្ដាលអធ្រាត្រ)/i,\n};\n\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ព្រឹក/i,\n    pm: /^ល្ងាច/i,\n    midnight: /^ពេលកណ្ដាលអធ្រាត្រ/i,\n    noon: /^ពេលថ្ងៃត្រង់/i,\n    morning: /ពេលព្រឹក/i,\n    afternoon: /ពេលរសៀល/i,\n    evening: /ពេលល្ងាច/i,\n    night: /ពេលយប់/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    },\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 \"./km/_lib/formatDistance.js\";\nimport { formatLong } from \"./km/_lib/formatLong.js\";\nimport { formatRelative } from \"./km/_lib/formatRelative.js\";\nimport { localize } from \"./km/_lib/localize.js\";\nimport { match } from \"./km/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Khmer locale (Cambodian).\n * @language Khmer\n * @iso-639-2 khm\n * @author Seanghay Yath [@seanghay](https://github.com/seanghay)\n */\nexport const km = {\n  code: \"km\",\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 km;\n","// note: no implementation for weeks\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      default: \"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n      future: \"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n      past: \"1 ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n    },\n    other: {\n      default: \"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n      future: \"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n      past: \"{{count}} ಸೆಕೆಂಡ್‌ಗಿಂತ ಕಡಿಮೆ\",\n    },\n  },\n\n  xSeconds: {\n    one: {\n      default: \"1 ಸೆಕೆಂಡ್\",\n      future: \"1 ಸೆಕೆಂಡ್‌ನಲ್ಲಿ\",\n      past: \"1 ಸೆಕೆಂಡ್ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ಸೆಕೆಂಡುಗಳು\",\n      future: \"{{count}} ಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ\",\n      past: \"{{count}} ಸೆಕೆಂಡ್ ಹಿಂದೆ\",\n    },\n  },\n\n  halfAMinute: {\n    other: {\n      default: \"ಅರ್ಧ ನಿಮಿಷ\",\n      future: \"ಅರ್ಧ ನಿಮಿಷದಲ್ಲಿ\",\n      past: \"ಅರ್ಧ ನಿಮಿಷದ ಹಿಂದೆ\",\n    },\n  },\n\n  lessThanXMinutes: {\n    one: {\n      default: \"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n      future: \"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n      past: \"1 ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n    },\n    other: {\n      default: \"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n      future: \"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n      past: \"{{count}} ನಿಮಿಷಕ್ಕಿಂತ ಕಡಿಮೆ\",\n    },\n  },\n\n  xMinutes: {\n    one: {\n      default: \"1 ನಿಮಿಷ\",\n      future: \"1 ನಿಮಿಷದಲ್ಲಿ\",\n      past: \"1 ನಿಮಿಷದ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ನಿಮಿಷಗಳು\",\n      future: \"{{count}} ನಿಮಿಷಗಳಲ್ಲಿ\",\n      past: \"{{count}} ನಿಮಿಷಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  aboutXHours: {\n    one: {\n      default: \"ಸುಮಾರು 1 ಗಂಟೆ\",\n      future: \"ಸುಮಾರು 1 ಗಂಟೆಯಲ್ಲಿ\",\n      past: \"ಸುಮಾರು 1 ಗಂಟೆ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"ಸುಮಾರು {{count}} ಗಂಟೆಗಳು\",\n      future: \"ಸುಮಾರು {{count}} ಗಂಟೆಗಳಲ್ಲಿ\",\n      past: \"ಸುಮಾರು {{count}} ಗಂಟೆಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  xHours: {\n    one: {\n      default: \"1 ಗಂಟೆ\",\n      future: \"1 ಗಂಟೆಯಲ್ಲಿ\",\n      past: \"1 ಗಂಟೆ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ಗಂಟೆಗಳು\",\n      future: \"{{count}} ಗಂಟೆಗಳಲ್ಲಿ\",\n      past: \"{{count}} ಗಂಟೆಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  xDays: {\n    one: {\n      default: \"1 ದಿನ\",\n      future: \"1 ದಿನದಲ್ಲಿ\",\n      past: \"1 ದಿನದ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ದಿನಗಳು\",\n      future: \"{{count}} ದಿನಗಳಲ್ಲಿ\",\n      past: \"{{count}} ದಿನಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  // TODO\n  // aboutXWeeks: {},\n\n  // TODO\n  // xWeeks: {},\n\n  aboutXMonths: {\n    one: {\n      default: \"ಸುಮಾರು 1 ತಿಂಗಳು\",\n      future: \"ಸುಮಾರು 1 ತಿಂಗಳಲ್ಲಿ\",\n      past: \"ಸುಮಾರು 1 ತಿಂಗಳ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"ಸುಮಾರು {{count}} ತಿಂಗಳು\",\n      future: \"ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳಲ್ಲಿ\",\n      past: \"ಸುಮಾರು {{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  xMonths: {\n    one: {\n      default: \"1 ತಿಂಗಳು\",\n      future: \"1 ತಿಂಗಳಲ್ಲಿ\",\n      past: \"1 ತಿಂಗಳ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ತಿಂಗಳು\",\n      future: \"{{count}} ತಿಂಗಳುಗಳಲ್ಲಿ\",\n      past: \"{{count}} ತಿಂಗಳುಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  aboutXYears: {\n    one: {\n      default: \"ಸುಮಾರು 1 ವರ್ಷ\",\n      future: \"ಸುಮಾರು 1 ವರ್ಷದಲ್ಲಿ\",\n      past: \"ಸುಮಾರು 1 ವರ್ಷದ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"ಸುಮಾರು {{count}} ವರ್ಷಗಳು\",\n      future: \"ಸುಮಾರು {{count}} ವರ್ಷಗಳಲ್ಲಿ\",\n      past: \"ಸುಮಾರು {{count}} ವರ್ಷಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  xYears: {\n    one: {\n      default: \"1 ವರ್ಷ\",\n      future: \"1 ವರ್ಷದಲ್ಲಿ\",\n      past: \"1 ವರ್ಷದ ಹಿಂದೆ\",\n    },\n    other: {\n      default: \"{{count}} ವರ್ಷಗಳು\",\n      future: \"{{count}} ವರ್ಷಗಳಲ್ಲಿ\",\n      past: \"{{count}} ವರ್ಷಗಳ ಹಿಂದೆ\",\n    },\n  },\n\n  overXYears: {\n    one: {\n      default: \"1 ವರ್ಷದ ಮೇಲೆ\",\n      future: \"1 ವರ್ಷದ ಮೇಲೆ\",\n      past: \"1 ವರ್ಷದ ಮೇಲೆ\",\n    },\n    other: {\n      default: \"{{count}} ವರ್ಷಗಳ ಮೇಲೆ\",\n      future: \"{{count}} ವರ್ಷಗಳ ಮೇಲೆ\",\n      past: \"{{count}} ವರ್ಷಗಳ ಮೇಲೆ\",\n    },\n  },\n\n  almostXYears: {\n    one: {\n      default: \"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ\",\n      future: \"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ\",\n      past: \"ಬಹುತೇಕ 1 ವರ್ಷದಲ್ಲಿ\",\n    },\n    other: {\n      default: \"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ\",\n      future: \"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ\",\n      past: \"ಬಹುತೇಕ {{count}} ವರ್ಷಗಳಲ್ಲಿ\",\n    },\n  },\n};\n\nfunction getResultByTense(parentToken, options) {\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return parentToken.future;\n    } else {\n      return parentToken.past;\n    }\n  }\n  return parentToken.default;\n}\n\nexport const formatDistance = (token, count, options) => {\n  let result;\n\n  const tokenValue = formatDistanceLocale[token];\n\n  if (tokenValue.one && count === 1) {\n    result = getResultByTense(tokenValue.one, options);\n  } else {\n    result = getResultByTense(tokenValue.other, options);\n  }\n\n  return result.replace(\"{{count}}\", String(count));\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// Reference: https://www.unicode.org/cldr/charts/32/summary/kn.html\n\nconst dateFormats = {\n  full: \"EEEE, MMMM d, y\", // CLDR 1816\n  long: \"MMMM d, y\", // CLDR 1817\n  medium: \"MMM d, y\", // CLDR 1818\n  short: \"d/M/yy\", // CLDR 1819\n};\n\nconst timeFormats = {\n  full: \"hh:mm:ss a zzzz\", // CLDR 1820\n  long: \"hh:mm:ss a z\", // CLDR 1821\n  medium: \"hh:mm:ss a\", // CLDR 1822\n  short: \"hh:mm a\", // CLDR 1823\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\", // CLDR 1824\n  long: \"{{date}} {{time}}\", // CLDR 1825\n  medium: \"{{date}} {{time}}\", // CLDR 1826\n  short: \"{{date}} {{time}}\", // CLDR 1827\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: \"'ಕಳೆದ' eeee p 'ಕ್ಕೆ'\",\n  yesterday: \"'ನಿನ್ನೆ' p 'ಕ್ಕೆ'\",\n  today: \"'ಇಂದು' p 'ಕ್ಕೆ'\",\n  tomorrow: \"'ನಾಳೆ' p 'ಕ್ಕೆ'\",\n  nextWeek: \"eeee p 'ಕ್ಕೆ'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// Reference: https://www.unicode.org/cldr/charts/32/summary/kn.html\n\nconst eraValues = {\n  narrow: [\"ಕ್ರಿ.ಪೂ\", \"ಕ್ರಿ.ಶ\"],\n  abbreviated: [\"ಕ್ರಿ.ಪೂ\", \"ಕ್ರಿ.ಶ\"], // CLDR #1618, #1620\n  wide: [\"ಕ್ರಿಸ್ತ ಪೂರ್ವ\", \"ಕ್ರಿಸ್ತ ಶಕ\"], // CLDR #1614, #1616\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"ತ್ರೈ 1\", \"ತ್ರೈ 2\", \"ತ್ರೈ 3\", \"ತ್ರೈ 4\"], // CLDR #1630 - #1638\n  wide: [\"1ನೇ ತ್ರೈಮಾಸಿಕ\", \"2ನೇ ತ್ರೈಮಾಸಿಕ\", \"3ನೇ ತ್ರೈಮಾಸಿಕ\", \"4ನೇ ತ್ರೈಮಾಸಿಕ\"], // CLDR #1622 - #1629\n};\n\n// CLDR #1646 - #1717\nconst monthValues = {\n  narrow: [\"ಜ\", \"ಫೆ\", \"ಮಾ\", \"ಏ\", \"ಮೇ\", \"ಜೂ\", \"ಜು\", \"ಆ\", \"ಸೆ\", \"ಅ\", \"ನ\", \"ಡಿ\"],\n\n  abbreviated: [\n    \"ಜನ\",\n    \"ಫೆಬ್ರ\",\n    \"ಮಾರ್ಚ್\",\n    \"ಏಪ್ರಿ\",\n    \"ಮೇ\",\n    \"ಜೂನ್\",\n    \"ಜುಲೈ\",\n    \"ಆಗ\",\n    \"ಸೆಪ್ಟೆಂ\",\n    \"ಅಕ್ಟೋ\",\n    \"ನವೆಂ\",\n    \"ಡಿಸೆಂ\",\n  ],\n\n  wide: [\n    \"ಜನವರಿ\",\n    \"ಫೆಬ್ರವರಿ\",\n    \"ಮಾರ್ಚ್\",\n    \"ಏಪ್ರಿಲ್\",\n    \"ಮೇ\",\n    \"ಜೂನ್\",\n    \"ಜುಲೈ\",\n    \"ಆಗಸ್ಟ್\",\n    \"ಸೆಪ್ಟೆಂಬರ್\",\n    \"ಅಕ್ಟೋಬರ್\",\n    \"ನವೆಂಬರ್\",\n    \"ಡಿಸೆಂಬರ್\",\n  ],\n};\n\n// CLDR #1718 - #1773\nconst dayValues = {\n  narrow: [\"ಭಾ\", \"ಸೋ\", \"ಮಂ\", \"ಬು\", \"ಗು\", \"ಶು\", \"ಶ\"],\n  short: [\"ಭಾನು\", \"ಸೋಮ\", \"ಮಂಗಳ\", \"ಬುಧ\", \"ಗುರು\", \"ಶುಕ್ರ\", \"ಶನಿ\"],\n  abbreviated: [\"ಭಾನು\", \"ಸೋಮ\", \"ಮಂಗಳ\", \"ಬುಧ\", \"ಗುರು\", \"ಶುಕ್ರ\", \"ಶನಿ\"],\n  wide: [\n    \"ಭಾನುವಾರ\",\n    \"ಸೋಮವಾರ\",\n    \"ಮಂಗಳವಾರ\",\n    \"ಬುಧವಾರ\",\n    \"ಗುರುವಾರ\",\n    \"ಶುಕ್ರವಾರ\",\n    \"ಶನಿವಾರ\",\n  ],\n};\n\n// CLDR #1774 - #1815\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ಪೂರ್ವಾಹ್ನ\",\n    pm: \"ಅಪರಾಹ್ನ\",\n    midnight: \"ಮಧ್ಯರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾಹ್ನ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾಹ್ನ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n  abbreviated: {\n    am: \"ಪೂರ್ವಾಹ್ನ\",\n    pm: \"ಅಪರಾಹ್ನ\",\n    midnight: \"ಮಧ್ಯರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾನ್ಹ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾನ್ಹ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n  wide: {\n    am: \"ಪೂರ್ವಾಹ್ನ\",\n    pm: \"ಅಪರಾಹ್ನ\",\n    midnight: \"ಮಧ್ಯರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾನ್ಹ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾನ್ಹ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ಪೂ\",\n    pm: \"ಅ\",\n    midnight: \"ಮಧ್ಯರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾನ್ಹ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾನ್ಹ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n  abbreviated: {\n    am: \"ಪೂರ್ವಾಹ್ನ\",\n    pm: \"ಅಪರಾಹ್ನ\",\n    midnight: \"ಮಧ್ಯ ರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾನ್ಹ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾನ್ಹ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n  wide: {\n    am: \"ಪೂರ್ವಾಹ್ನ\",\n    pm: \"ಅಪರಾಹ್ನ\",\n    midnight: \"ಮಧ್ಯ ರಾತ್ರಿ\",\n    noon: \"ಮಧ್ಯಾನ್ಹ\",\n    morning: \"ಬೆಳಗ್ಗೆ\",\n    afternoon: \"ಮಧ್ಯಾನ್ಹ\",\n    evening: \"ಸಂಜೆ\",\n    night: \"ರಾತ್ರಿ\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"ನೇ\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(ನೇ|ನೆ)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ಕ್ರಿ.ಪೂ|ಕ್ರಿ.ಶ)/i,\n  abbreviated: /^(ಕ್ರಿ\\.?\\s?ಪೂ\\.?|ಕ್ರಿ\\.?\\s?ಶ\\.?|ಪ್ರ\\.?\\s?ಶ\\.?)/i,\n  wide: /^(ಕ್ರಿಸ್ತ ಪೂರ್ವ|ಕ್ರಿಸ್ತ ಶಕ|ಪ್ರಸಕ್ತ ಶಕ)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ಪೂ/i, /^(ಶ|ಪ್ರ)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^ತ್ರೈ[1234]|ತ್ರೈ [1234]| [1234]ತ್ರೈ/i,\n  wide: /^[1234](ನೇ)? ತ್ರೈಮಾಸಿಕ/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(ಜೂ|ಜು|ಜ|ಫೆ|ಮಾ|ಏ|ಮೇ|ಆ|ಸೆ|ಅ|ನ|ಡಿ)/i,\n  abbreviated:\n    /^(ಜನ|ಫೆಬ್ರ|ಮಾರ್ಚ್|ಏಪ್ರಿ|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗ|ಸೆಪ್ಟೆಂ|ಅಕ್ಟೋ|ನವೆಂ|ಡಿಸೆಂ)/i,\n  wide: /^(ಜನವರಿ|ಫೆಬ್ರವರಿ|ಮಾರ್ಚ್|ಏಪ್ರಿಲ್|ಮೇ|ಜೂನ್|ಜುಲೈ|ಆಗಸ್ಟ್|ಸೆಪ್ಟೆಂಬರ್|ಅಕ್ಟೋಬರ್|ನವೆಂಬರ್|ಡಿಸೆಂಬರ್)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ಜ$/i,\n    /^ಫೆ/i,\n    /^ಮಾ/i,\n    /^ಏ/i,\n    /^ಮೇ/i,\n    /^ಜೂ/i,\n    /^ಜು$/i,\n    /^ಆ/i,\n    /^ಸೆ/i,\n    /^ಅ/i,\n    /^ನ/i,\n    /^ಡಿ/i,\n  ],\n\n  any: [\n    /^ಜನ/i,\n    /^ಫೆ/i,\n    /^ಮಾ/i,\n    /^ಏ/i,\n    /^ಮೇ/i,\n    /^ಜೂನ್/i,\n    /^ಜುಲೈ/i,\n    /^ಆ/i,\n    /^ಸೆ/i,\n    /^ಅ/i,\n    /^ನ/i,\n    /^ಡಿ/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(ಭಾ|ಸೋ|ಮ|ಬು|ಗು|ಶು|ಶ)/i,\n  short: /^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,\n  abbreviated: /^(ಭಾನು|ಸೋಮ|ಮಂಗಳ|ಬುಧ|ಗುರು|ಶುಕ್ರ|ಶನಿ)/i,\n  wide: /^(ಭಾನುವಾರ|ಸೋಮವಾರ|ಮಂಗಳವಾರ|ಬುಧವಾರ|ಗುರುವಾರ|ಶುಕ್ರವಾರ|ಶನಿವಾರ)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ಭಾ/i, /^ಸೋ/i, /^ಮ/i, /^ಬು/i, /^ಗು/i, /^ಶು/i, /^ಶ/i],\n  any: [/^ಭಾ/i, /^ಸೋ/i, /^ಮ/i, /^ಬು/i, /^ಗು/i, /^ಶು/i, /^ಶ/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(ಪೂ|ಅ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i,\n  any: /^(ಪೂರ್ವಾಹ್ನ|ಅಪರಾಹ್ನ|ಮಧ್ಯರಾತ್ರಿ|ಮಧ್ಯಾನ್ಹ|ಬೆಳಗ್ಗೆ|ಸಂಜೆ|ರಾತ್ರಿ)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ಪೂ/i,\n    pm: /^ಅ/i,\n    midnight: /ಮಧ್ಯರಾತ್ರಿ/i,\n    noon: /ಮಧ್ಯಾನ್ಹ/i,\n    morning: /ಬೆಳಗ್ಗೆ/i,\n    afternoon: /ಮಧ್ಯಾನ್ಹ/i,\n    evening: /ಸಂಜೆ/i,\n    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 \"./kn/_lib/formatDistance.js\";\nimport { formatLong } from \"./kn/_lib/formatLong.js\";\nimport { formatRelative } from \"./kn/_lib/formatRelative.js\";\nimport { localize } from \"./kn/_lib/localize.js\";\nimport { match } from \"./kn/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Kannada locale (India).\n * @language Kannada\n * @iso-639-2 kan\n * @author Manjunatha Gouli [@developergouli](https://github.com/developergouli)\n */\nexport const kn = {\n  code: \"kn\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default kn;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"1초 미만\",\n    other: \"{{count}}초 미만\",\n  },\n\n  xSeconds: {\n    one: \"1초\",\n    other: \"{{count}}초\",\n  },\n\n  halfAMinute: \"30초\",\n\n  lessThanXMinutes: {\n    one: \"1분 미만\",\n    other: \"{{count}}분 미만\",\n  },\n\n  xMinutes: {\n    one: \"1분\",\n    other: \"{{count}}분\",\n  },\n\n  aboutXHours: {\n    one: \"약 1시간\",\n    other: \"약 {{count}}시간\",\n  },\n\n  xHours: {\n    one: \"1시간\",\n    other: \"{{count}}시간\",\n  },\n\n  xDays: {\n    one: \"1일\",\n    other: \"{{count}}일\",\n  },\n\n  aboutXWeeks: {\n    one: \"약 1주\",\n    other: \"약 {{count}}주\",\n  },\n\n  xWeeks: {\n    one: \"1주\",\n    other: \"{{count}}주\",\n  },\n\n  aboutXMonths: {\n    one: \"약 1개월\",\n    other: \"약 {{count}}개월\",\n  },\n\n  xMonths: {\n    one: \"1개월\",\n    other: \"{{count}}개월\",\n  },\n\n  aboutXYears: {\n    one: \"약 1년\",\n    other: \"약 {{count}}년\",\n  },\n\n  xYears: {\n    one: \"1년\",\n    other: \"{{count}}년\",\n  },\n\n  overXYears: {\n    one: \"1년 이상\",\n    other: \"{{count}}년 이상\",\n  },\n\n  almostXYears: {\n    one: \"거의 1년\",\n    other: \"거의 {{count}}년\",\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 result + \" 후\";\n    } else {\n      return result + \" 전\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y년 M월 d일 EEEE\",\n  long: \"y년 M월 d일\",\n  medium: \"y.MM.dd\",\n  short: \"y.MM.dd\",\n};\n\nconst timeFormats = {\n  full: \"a H시 mm분 ss초 zzzz\",\n  long: \"a H:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"'지난' eeee p\",\n  yesterday: \"'어제' p\",\n  today: \"'오늘' p\",\n  tomorrow: \"'내일' p\",\n  nextWeek: \"'다음' eeee p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"BC\", \"AD\"],\n  abbreviated: [\"BC\", \"AD\"],\n  wide: [\"기원전\", \"서기\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1분기\", \"2분기\", \"3분기\", \"4분기\"],\n};\n\nconst monthValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n\n  abbreviated: [\n    \"1월\",\n    \"2월\",\n    \"3월\",\n    \"4월\",\n    \"5월\",\n    \"6월\",\n    \"7월\",\n    \"8월\",\n    \"9월\",\n    \"10월\",\n    \"11월\",\n    \"12월\",\n  ],\n\n  wide: [\n    \"1월\",\n    \"2월\",\n    \"3월\",\n    \"4월\",\n    \"5월\",\n    \"6월\",\n    \"7월\",\n    \"8월\",\n    \"9월\",\n    \"10월\",\n    \"11월\",\n    \"12월\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  short: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  abbreviated: [\"일\", \"월\", \"화\", \"수\", \"목\", \"금\", \"토\"],\n  wide: [\"일요일\", \"월요일\", \"화요일\", \"수요일\", \"목요일\", \"금요일\", \"토요일\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n  abbreviated: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n  wide: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n  abbreviated: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n  wide: {\n    am: \"오전\",\n    pm: \"오후\",\n    midnight: \"자정\",\n    noon: \"정오\",\n    morning: \"아침\",\n    afternoon: \"오후\",\n    evening: \"저녁\",\n    night: \"밤\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = String(options?.unit);\n\n  switch (unit) {\n    case \"minute\":\n    case \"second\":\n      return String(number);\n    case \"date\":\n      return number + \"일\";\n    default:\n      return number + \"번째\";\n  }\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(일|번째)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(기원전|서기)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(bc|기원전)/i, /^(ad|서기)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234]사?분기/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(1[012]|[123456789])/,\n  abbreviated: /^(1[012]|[123456789])월/i,\n  wide: /^(1[012]|[123456789])월/i,\n};\nconst parseMonthPatterns = {\n  any: [\n    /^1월?$/,\n    /^2/,\n    /^3/,\n    /^4/,\n    /^5/,\n    /^6/,\n    /^7/,\n    /^8/,\n    /^9/,\n    /^10/,\n    /^11/,\n    /^12/,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[일월화수목금토]/,\n  short: /^[일월화수목금토]/,\n  abbreviated: /^[일월화수목금토]/,\n  wide: /^[일월화수목금토]요일/,\n};\nconst parseDayPatterns = {\n  any: [/^일/, /^월/, /^화/, /^수/, /^목/, /^금/, /^토/],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(am|pm|오전|오후|자정|정오|아침|저녁|밤)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^(am|오전)/i,\n    pm: /^(pm|오후)/i,\n    midnight: /^자정/i,\n    noon: /^정오/i,\n    morning: /^아침/i,\n    afternoon: /^오후/i,\n    evening: /^저녁/i,\n    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 \"./ko/_lib/formatDistance.js\";\nimport { formatLong } from \"./ko/_lib/formatLong.js\";\nimport { formatRelative } from \"./ko/_lib/formatRelative.js\";\nimport { localize } from \"./ko/_lib/localize.js\";\nimport { match } from \"./ko/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Korean locale.\n * @language Korean\n * @iso-639-2 kor\n * @author Hong Chulju [@angdev](https://github.com/angdev)\n * @author Lee Seoyoen [@iamssen](https://github.com/iamssen)\n * @author Taiki IKeda [@so99ynoodles](https://github.com/so99ynoodles)\n */\nexport const ko = {\n  code: \"ko\",\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 ko;\n","const translations = {\n  xseconds_other: \"sekundė_sekundžių_sekundes\",\n  xminutes_one: \"minutė_minutės_minutę\",\n  xminutes_other: \"minutės_minučių_minutes\",\n  xhours_one: \"valanda_valandos_valandą\",\n  xhours_other: \"valandos_valandų_valandas\",\n  xdays_one: \"diena_dienos_dieną\",\n  xdays_other: \"dienos_dienų_dienas\",\n  xweeks_one: \"savaitė_savaitės_savaitę\",\n  xweeks_other: \"savaitės_savaičių_savaites\",\n  xmonths_one: \"mėnuo_mėnesio_mėnesį\",\n  xmonths_other: \"mėnesiai_mėnesių_mėnesius\",\n  xyears_one: \"metai_metų_metus\",\n  xyears_other: \"metai_metų_metus\",\n  about: \"apie\",\n  over: \"daugiau nei\",\n  almost: \"beveik\",\n  lessthan: \"mažiau nei\",\n};\n\nconst translateSeconds = (_number, addSuffix, _key, isFuture) => {\n  if (!addSuffix) {\n    return \"kelios sekundės\";\n  } else {\n    return isFuture ? \"kelių sekundžių\" : \"kelias sekundes\";\n  }\n};\n\nconst translateSingular = (_number, addSuffix, key, isFuture) => {\n  return !addSuffix ? forms(key)[0] : isFuture ? forms(key)[1] : forms(key)[2];\n};\n\nconst translate = (number, addSuffix, key, isFuture) => {\n  const result = number + \" \";\n  if (number === 1) {\n    return result + translateSingular(number, addSuffix, key, isFuture);\n  } else if (!addSuffix) {\n    return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n  } else {\n    if (isFuture) {\n      return result + forms(key)[1];\n    } else {\n      return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n    }\n  }\n};\n\nfunction special(number) {\n  return number % 10 === 0 || (number > 10 && number < 20);\n}\n\nfunction forms(key) {\n  return translations[key].split(\"_\");\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: translateSeconds,\n    other: translate,\n  },\n\n  xSeconds: {\n    one: translateSeconds,\n    other: translate,\n  },\n\n  halfAMinute: \"pusė minutės\",\n\n  lessThanXMinutes: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xMinutes: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  aboutXHours: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xHours: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xDays: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  aboutXWeeks: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xWeeks: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  aboutXMonths: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xMonths: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  aboutXYears: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  xYears: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  overXYears: {\n    one: translateSingular,\n    other: translate,\n  },\n\n  almostXYears: {\n    one: translateSingular,\n    other: translate,\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const adverb = token.match(/about|over|almost|lessthan/i);\n  const unit = adverb ? token.replace(adverb[0], \"\") : token;\n\n  const isFuture = options?.comparison !== undefined && options.comparison > 0;\n\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      count,\n      options?.addSuffix === true,\n      unit.toLowerCase() + \"_one\",\n      isFuture,\n    );\n  } else {\n    result = tokenValue.other(\n      count,\n      options?.addSuffix === true,\n      unit.toLowerCase() + \"_other\",\n      isFuture,\n    );\n  }\n\n  if (adverb) {\n    const key = adverb[0].toLowerCase();\n    result = translations[key] + \" \" + result;\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"po \" + result;\n    } else {\n      return \"prieš \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y 'm'. MMMM d 'd'., EEEE\",\n  long: \"y 'm'. MMMM d 'd'.\",\n  medium: \"y-MM-dd\",\n  short: \"y-MM-dd\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"'Praėjusį' eeee p\",\n  yesterday: \"'Vakar' p\",\n  today: \"'Šiandien' p\",\n  tomorrow: \"'Rytoj' p\",\n  nextWeek: \"eeee p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"pr. Kr.\", \"po Kr.\"],\n  abbreviated: [\"pr. Kr.\", \"po Kr.\"],\n  wide: [\"prieš Kristų\", \"po Kristaus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"I ketv.\", \"II ketv.\", \"III ketv.\", \"IV ketv.\"],\n  wide: [\"I ketvirtis\", \"II ketvirtis\", \"III ketvirtis\", \"IV ketvirtis\"],\n};\n\nconst formattingQuarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"I k.\", \"II k.\", \"III k.\", \"IV k.\"],\n  wide: [\"I ketvirtis\", \"II ketvirtis\", \"III ketvirtis\", \"IV ketvirtis\"],\n};\n\nconst monthValues = {\n  narrow: [\"S\", \"V\", \"K\", \"B\", \"G\", \"B\", \"L\", \"R\", \"R\", \"S\", \"L\", \"G\"],\n  abbreviated: [\n    \"saus.\",\n    \"vas.\",\n    \"kov.\",\n    \"bal.\",\n    \"geg.\",\n    \"birž.\",\n    \"liep.\",\n    \"rugp.\",\n    \"rugs.\",\n    \"spal.\",\n    \"lapkr.\",\n    \"gruod.\",\n  ],\n\n  wide: [\n    \"sausis\",\n    \"vasaris\",\n    \"kovas\",\n    \"balandis\",\n    \"gegužė\",\n    \"birželis\",\n    \"liepa\",\n    \"rugpjūtis\",\n    \"rugsėjis\",\n    \"spalis\",\n    \"lapkritis\",\n    \"gruodis\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"S\", \"V\", \"K\", \"B\", \"G\", \"B\", \"L\", \"R\", \"R\", \"S\", \"L\", \"G\"],\n  abbreviated: [\n    \"saus.\",\n    \"vas.\",\n    \"kov.\",\n    \"bal.\",\n    \"geg.\",\n    \"birž.\",\n    \"liep.\",\n    \"rugp.\",\n    \"rugs.\",\n    \"spal.\",\n    \"lapkr.\",\n    \"gruod.\",\n  ],\n\n  wide: [\n    \"sausio\",\n    \"vasario\",\n    \"kovo\",\n    \"balandžio\",\n    \"gegužės\",\n    \"birželio\",\n    \"liepos\",\n    \"rugpjūčio\",\n    \"rugsėjo\",\n    \"spalio\",\n    \"lapkričio\",\n    \"gruodžio\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"P\", \"A\", \"T\", \"K\", \"P\", \"Š\"],\n  short: [\"Sk\", \"Pr\", \"An\", \"Tr\", \"Kt\", \"Pn\", \"Št\"],\n  abbreviated: [\"sk\", \"pr\", \"an\", \"tr\", \"kt\", \"pn\", \"št\"],\n  wide: [\n    \"sekmadienis\",\n    \"pirmadienis\",\n    \"antradienis\",\n    \"trečiadienis\",\n    \"ketvirtadienis\",\n    \"penktadienis\",\n    \"šeštadienis\",\n  ],\n};\n\nconst formattingDayValues = {\n  narrow: [\"S\", \"P\", \"A\", \"T\", \"K\", \"P\", \"Š\"],\n  short: [\"Sk\", \"Pr\", \"An\", \"Tr\", \"Kt\", \"Pn\", \"Št\"],\n  abbreviated: [\"sk\", \"pr\", \"an\", \"tr\", \"kt\", \"pn\", \"št\"],\n  wide: [\n    \"sekmadienį\",\n    \"pirmadienį\",\n    \"antradienį\",\n    \"trečiadienį\",\n    \"ketvirtadienį\",\n    \"penktadienį\",\n    \"šeštadienį\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"pr. p.\",\n    pm: \"pop.\",\n    midnight: \"vidurnaktis\",\n    noon: \"vidurdienis\",\n    morning: \"rytas\",\n    afternoon: \"diena\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n  abbreviated: {\n    am: \"priešpiet\",\n    pm: \"popiet\",\n    midnight: \"vidurnaktis\",\n    noon: \"vidurdienis\",\n    morning: \"rytas\",\n    afternoon: \"diena\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n  wide: {\n    am: \"priešpiet\",\n    pm: \"popiet\",\n    midnight: \"vidurnaktis\",\n    noon: \"vidurdienis\",\n    morning: \"rytas\",\n    afternoon: \"diena\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"pr. p.\",\n    pm: \"pop.\",\n    midnight: \"vidurnaktis\",\n    noon: \"perpiet\",\n    morning: \"rytas\",\n    afternoon: \"popietė\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n  abbreviated: {\n    am: \"priešpiet\",\n    pm: \"popiet\",\n    midnight: \"vidurnaktis\",\n    noon: \"perpiet\",\n    morning: \"rytas\",\n    afternoon: \"popietė\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n  wide: {\n    am: \"priešpiet\",\n    pm: \"popiet\",\n    midnight: \"vidurnaktis\",\n    noon: \"perpiet\",\n    morning: \"rytas\",\n    afternoon: \"popietė\",\n    evening: \"vakaras\",\n    night: \"naktis\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"-oji\";\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    formattingValues: formattingQuarterValues,\n    defaultFormattingWidth: \"wide\",\n    argumentCallback: (quarter) => quarter - 1,\n  }),\n\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-oji)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^p(r|o)\\.?\\s?(kr\\.?|me)/i,\n  abbreviated: /^(pr\\.\\s?(kr\\.|m\\.\\s?e\\.)|po\\s?kr\\.|mūsų eroje)/i,\n  wide: /^(prieš Kristų|prieš mūsų erą|po Kristaus|mūsų eroje)/i,\n};\nconst parseEraPatterns = {\n  wide: [/prieš/i, /(po|mūsų)/i],\n  any: [/^pr/i, /^(po|m)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^([1234])/i,\n  abbreviated: /^(I|II|III|IV)\\s?ketv?\\.?/i,\n  wide: /^(I|II|III|IV)\\s?ketvirtis/i,\n};\nconst parseQuarterPatterns = {\n  narrow: [/1/i, /2/i, /3/i, /4/i],\n  any: [/I$/i, /II$/i, /III/i, /IV/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[svkbglr]/i,\n  abbreviated:\n    /^(saus\\.|vas\\.|kov\\.|bal\\.|geg\\.|birž\\.|liep\\.|rugp\\.|rugs\\.|spal\\.|lapkr\\.|gruod\\.)/i,\n  wide: /^(sausi(s|o)|vasari(s|o)|kov(a|o)s|balandž?i(s|o)|gegužės?|birželi(s|o)|liep(a|os)|rugpjū(t|č)i(s|o)|rugsėj(is|o)|spali(s|o)|lapkri(t|č)i(s|o)|gruodž?i(s|o))/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^s/i,\n    /^v/i,\n    /^k/i,\n    /^b/i,\n    /^g/i,\n    /^b/i,\n    /^l/i,\n    /^r/i,\n    /^r/i,\n    /^s/i,\n    /^l/i,\n    /^g/i,\n  ],\n\n  any: [\n    /^saus/i,\n    /^vas/i,\n    /^kov/i,\n    /^bal/i,\n    /^geg/i,\n    /^birž/i,\n    /^liep/i,\n    /^rugp/i,\n    /^rugs/i,\n    /^spal/i,\n    /^lapkr/i,\n    /^gruod/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[spatkš]/i,\n  short: /^(sk|pr|an|tr|kt|pn|št)/i,\n  abbreviated: /^(sk|pr|an|tr|kt|pn|št)/i,\n  wide: /^(sekmadien(is|į)|pirmadien(is|į)|antradien(is|į)|trečiadien(is|į)|ketvirtadien(is|į)|penktadien(is|į)|šeštadien(is|į))/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^p/i, /^a/i, /^t/i, /^k/i, /^p/i, /^š/i],\n  wide: [/^se/i, /^pi/i, /^an/i, /^tr/i, /^ke/i, /^pe/i, /^še/i],\n  any: [/^sk/i, /^pr/i, /^an/i, /^tr/i, /^kt/i, /^pn/i, /^št/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(pr.\\s?p.|pop.|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i,\n  any: /^(priešpiet|popiet$|vidurnaktis|(vidurdienis|perpiet)|rytas|(diena|popietė)|vakaras|naktis)/i,\n};\nconst parseDayPeriodPatterns = {\n  narrow: {\n    am: /^pr/i,\n    pm: /^pop./i,\n    midnight: /^vidurnaktis/i,\n    noon: /^(vidurdienis|perp)/i,\n    morning: /rytas/i,\n    afternoon: /(die|popietė)/i,\n    evening: /vakaras/i,\n    night: /naktis/i,\n  },\n  any: {\n    am: /^pr/i,\n    pm: /^popiet$/i,\n    midnight: /^vidurnaktis/i,\n    noon: /^(vidurdienis|perp)/i,\n    morning: /rytas/i,\n    afternoon: /(die|popietė)/i,\n    evening: /vakaras/i,\n    night: /naktis/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 \"./lt/_lib/formatDistance.js\";\nimport { formatLong } from \"./lt/_lib/formatLong.js\";\nimport { formatRelative } from \"./lt/_lib/formatRelative.js\";\nimport { localize } from \"./lt/_lib/localize.js\";\nimport { match } from \"./lt/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Lithuanian locale.\n * @language Lithuanian\n * @iso-639-2 lit\n * @author Pavlo Shpak [@pshpak](https://github.com/pshpak)\n * @author Eduardo Pardo [@eduardopsll](https://github.com/eduardopsll)\n */\nexport const lt = {\n  code: \"lt\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default lt;\n","function buildLocalizeTokenFn(schema) {\n  return (count, options) => {\n    if (count === 1) {\n      if (options?.addSuffix) {\n        return schema.one[0].replace(\"{{time}}\", schema.one[2]);\n      } else {\n        return schema.one[0].replace(\"{{time}}\", schema.one[1]);\n      }\n    } else {\n      const rem = count % 10 === 1 && count % 100 !== 11;\n      if (options?.addSuffix) {\n        return schema.other[0]\n          .replace(\"{{time}}\", rem ? schema.other[3] : schema.other[4])\n          .replace(\"{{count}}\", String(count));\n      } else {\n        return schema.other[0]\n          .replace(\"{{time}}\", rem ? schema.other[1] : schema.other[2])\n          .replace(\"{{count}}\", String(count));\n      }\n    }\n  };\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: buildLocalizeTokenFn({\n    one: [\"mazāk par {{time}}\", \"sekundi\", \"sekundi\"],\n    other: [\n      \"mazāk nekā {{count}} {{time}}\",\n      \"sekunde\",\n      \"sekundes\",\n      \"sekundes\",\n      \"sekundēm\",\n    ],\n  }),\n\n  xSeconds: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"sekunde\", \"sekundes\"],\n    other: [\n      \"{{count}} {{time}}\",\n      \"sekunde\",\n      \"sekundes\",\n      \"sekundes\",\n      \"sekundēm\",\n    ],\n  }),\n\n  halfAMinute: (_count, options) => {\n    if (options?.addSuffix) {\n      return \"pusminūtes\";\n    } else {\n      return \"pusminūte\";\n    }\n  },\n\n  lessThanXMinutes: buildLocalizeTokenFn({\n    one: [\"mazāk par {{time}}\", \"minūti\", \"minūti\"],\n    other: [\n      \"mazāk nekā {{count}} {{time}}\",\n      \"minūte\",\n      \"minūtes\",\n      \"minūtes\",\n      \"minūtēm\",\n    ],\n  }),\n\n  xMinutes: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"minūte\", \"minūtes\"],\n    other: [\"{{count}} {{time}}\", \"minūte\", \"minūtes\", \"minūtes\", \"minūtēm\"],\n  }),\n\n  aboutXHours: buildLocalizeTokenFn({\n    one: [\"apmēram 1 {{time}}\", \"stunda\", \"stundas\"],\n    other: [\n      \"apmēram {{count}} {{time}}\",\n      \"stunda\",\n      \"stundas\",\n      \"stundas\",\n      \"stundām\",\n    ],\n  }),\n\n  xHours: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"stunda\", \"stundas\"],\n    other: [\"{{count}} {{time}}\", \"stunda\", \"stundas\", \"stundas\", \"stundām\"],\n  }),\n\n  xDays: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"diena\", \"dienas\"],\n    other: [\"{{count}} {{time}}\", \"diena\", \"dienas\", \"dienas\", \"dienām\"],\n  }),\n\n  aboutXWeeks: buildLocalizeTokenFn({\n    one: [\"apmēram 1 {{time}}\", \"nedēļa\", \"nedēļas\"],\n    other: [\n      \"apmēram {{count}} {{time}}\",\n      \"nedēļa\",\n      \"nedēļu\",\n      \"nedēļas\",\n      \"nedēļām\",\n    ],\n  }),\n\n  xWeeks: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"nedēļa\", \"nedēļas\"],\n    other: [\n      \"{{count}} {{time}}\", // TODO\n      \"nedēļa\",\n      \"nedēļu\",\n      \"nedēļas\",\n      \"nedēļām\",\n    ],\n  }),\n\n  aboutXMonths: buildLocalizeTokenFn({\n    one: [\"apmēram 1 {{time}}\", \"mēnesis\", \"mēneša\"],\n    other: [\n      \"apmēram {{count}} {{time}}\",\n      \"mēnesis\",\n      \"mēneši\",\n      \"mēneša\",\n      \"mēnešiem\",\n    ],\n  }),\n\n  xMonths: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"mēnesis\", \"mēneša\"],\n    other: [\"{{count}} {{time}}\", \"mēnesis\", \"mēneši\", \"mēneša\", \"mēnešiem\"],\n  }),\n\n  aboutXYears: buildLocalizeTokenFn({\n    one: [\"apmēram 1 {{time}}\", \"gads\", \"gada\"],\n    other: [\"apmēram {{count}} {{time}}\", \"gads\", \"gadi\", \"gada\", \"gadiem\"],\n  }),\n\n  xYears: buildLocalizeTokenFn({\n    one: [\"1 {{time}}\", \"gads\", \"gada\"],\n    other: [\"{{count}} {{time}}\", \"gads\", \"gadi\", \"gada\", \"gadiem\"],\n  }),\n\n  overXYears: buildLocalizeTokenFn({\n    one: [\"ilgāk par 1 {{time}}\", \"gadu\", \"gadu\"],\n    other: [\"vairāk nekā {{count}} {{time}}\", \"gads\", \"gadi\", \"gada\", \"gadiem\"],\n  }),\n\n  almostXYears: buildLocalizeTokenFn({\n    one: [\"gandrīz 1 {{time}}\", \"gads\", \"gada\"],\n    other: [\"vairāk nekā {{count}} {{time}}\", \"gads\", \"gadi\", \"gada\", \"gadiem\"],\n  }),\n};\n\nexport const formatDistance = (token, count, options) => {\n  const result = formatDistanceLocale[token](count, options);\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"pēc \" + result;\n    } else {\n      return \"pirms \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, y. 'gada' d. MMMM\",\n  long: \"y. 'gada' d. MMMM\",\n  medium: \"dd.MM.y.\",\n  short: \"dd.MM.y.\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'plkst.' {{time}}\",\n  long: \"{{date}} 'plkst.' {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst weekdays = [\n  \"svētdienā\",\n  \"pirmdienā\",\n  \"otrdienā\",\n  \"trešdienā\",\n  \"ceturtdienā\",\n  \"piektdienā\",\n  \"sestdienā\",\n];\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    if (isSameWeek(date, baseDate, options)) {\n      return \"eeee 'plkst.' p\";\n    }\n\n    const weekday = weekdays[date.getDay()];\n    return \"'Pagājušā \" + weekday + \" plkst.' p\";\n  },\n  yesterday: \"'Vakar plkst.' p\",\n  today: \"'Šodien plkst.' p\",\n  tomorrow: \"'Rīt plkst.' p\",\n  nextWeek: (date, baseDate, options) => {\n    if (isSameWeek(date, baseDate, options)) {\n      return \"eeee 'plkst.' p\";\n    }\n\n    const weekday = weekdays[date.getDay()];\n    return \"'Nākamajā \" + weekday + \" plkst.' p\";\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"p.m.ē\", \"m.ē\"],\n  abbreviated: [\"p. m. ē.\", \"m. ē.\"],\n  wide: [\"pirms mūsu ēras\", \"mūsu ērā\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1. cet.\", \"2. cet.\", \"3. cet.\", \"4. cet.\"],\n  wide: [\n    \"pirmais ceturksnis\",\n    \"otrais ceturksnis\",\n    \"trešais ceturksnis\",\n    \"ceturtais ceturksnis\",\n  ],\n};\n\nconst formattingQuarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1. cet.\", \"2. cet.\", \"3. cet.\", \"4. cet.\"],\n  wide: [\n    \"pirmajā ceturksnī\",\n    \"otrajā ceturksnī\",\n    \"trešajā ceturksnī\",\n    \"ceturtajā ceturksnī\",\n  ],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"janv.\",\n    \"febr.\",\n    \"marts\",\n    \"apr.\",\n    \"maijs\",\n    \"jūn.\",\n    \"jūl.\",\n    \"aug.\",\n    \"sept.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"janvāris\",\n    \"februāris\",\n    \"marts\",\n    \"aprīlis\",\n    \"maijs\",\n    \"jūnijs\",\n    \"jūlijs\",\n    \"augusts\",\n    \"septembris\",\n    \"oktobris\",\n    \"novembris\",\n    \"decembris\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"janv.\",\n    \"febr.\",\n    \"martā\",\n    \"apr.\",\n    \"maijs\",\n    \"jūn.\",\n    \"jūl.\",\n    \"aug.\",\n    \"sept.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"janvārī\",\n    \"februārī\",\n    \"martā\",\n    \"aprīlī\",\n    \"maijā\",\n    \"jūnijā\",\n    \"jūlijā\",\n    \"augustā\",\n    \"septembrī\",\n    \"oktobrī\",\n    \"novembrī\",\n    \"decembrī\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"P\", \"O\", \"T\", \"C\", \"P\", \"S\"],\n  short: [\"Sv\", \"P\", \"O\", \"T\", \"C\", \"Pk\", \"S\"],\n  abbreviated: [\n    \"svētd.\",\n    \"pirmd.\",\n    \"otrd.\",\n    \"trešd.\",\n    \"ceturtd.\",\n    \"piektd.\",\n    \"sestd.\",\n  ],\n\n  wide: [\n    \"svētdiena\",\n    \"pirmdiena\",\n    \"otrdiena\",\n    \"trešdiena\",\n    \"ceturtdiena\",\n    \"piektdiena\",\n    \"sestdiena\",\n  ],\n};\n\nconst formattingDayValues = {\n  narrow: [\"S\", \"P\", \"O\", \"T\", \"C\", \"P\", \"S\"],\n  short: [\"Sv\", \"P\", \"O\", \"T\", \"C\", \"Pk\", \"S\"],\n  abbreviated: [\n    \"svētd.\",\n    \"pirmd.\",\n    \"otrd.\",\n    \"trešd.\",\n    \"ceturtd.\",\n    \"piektd.\",\n    \"sestd.\",\n  ],\n\n  wide: [\n    \"svētdienā\",\n    \"pirmdienā\",\n    \"otrdienā\",\n    \"trešdienā\",\n    \"ceturtdienā\",\n    \"piektdienā\",\n    \"sestdienā\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusn.\",\n    noon: \"pusd.\",\n    morning: \"rīts\",\n    afternoon: \"diena\",\n    evening: \"vakars\",\n    night: \"nakts\",\n  },\n  abbreviated: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusn.\",\n    noon: \"pusd.\",\n    morning: \"rīts\",\n    afternoon: \"pēcpusd.\",\n    evening: \"vakars\",\n    night: \"nakts\",\n  },\n  wide: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusnakts\",\n    noon: \"pusdienlaiks\",\n    morning: \"rīts\",\n    afternoon: \"pēcpusdiena\",\n    evening: \"vakars\",\n    night: \"nakts\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusn.\",\n    noon: \"pusd.\",\n    morning: \"rītā\",\n    afternoon: \"dienā\",\n    evening: \"vakarā\",\n    night: \"naktī\",\n  },\n  abbreviated: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusn.\",\n    noon: \"pusd.\",\n    morning: \"rītā\",\n    afternoon: \"pēcpusd.\",\n    evening: \"vakarā\",\n    night: \"naktī\",\n  },\n  wide: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"pusnaktī\",\n    noon: \"pusdienlaikā\",\n    morning: \"rītā\",\n    afternoon: \"pēcpusdienā\",\n    evening: \"vakarā\",\n    night: \"naktī\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingQuarterValues,\n    defaultFormattingWidth: \"wide\",\n    argumentCallback: (quarter) => quarter - 1,\n  }),\n\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(p\\.m\\.ē|m\\.ē)/i,\n  abbreviated: /^(p\\. m\\. ē\\.|m\\. ē\\.)/i,\n  wide: /^(pirms mūsu ēras|mūsu ērā)/i,\n};\nconst parseEraPatterns = {\n  any: [/^p/i, /^m/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](\\. cet\\.)/i,\n  wide: /^(pirma(is|jā)|otra(is|jā)|treša(is|jā)|ceturta(is|jā)) ceturksn(is|ī)/i,\n};\nconst parseQuarterPatterns = {\n  narrow: [/^1/i, /^2/i, /^3/i, /^4/i],\n  abbreviated: [/^1/i, /^2/i, /^3/i, /^4/i],\n  wide: [/^p/i, /^o/i, /^t/i, /^c/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated:\n    /^(janv\\.|febr\\.|marts|apr\\.|maijs|jūn\\.|jūl\\.|aug\\.|sept\\.|okt\\.|nov\\.|dec\\.)/i,\n  wide: /^(janvār(is|ī)|februār(is|ī)|mart[sā]|aprīl(is|ī)|maij[sā]|jūnij[sā]|jūlij[sā]|august[sā]|septembr(is|ī)|oktobr(is|ī)|novembr(is|ī)|decembr(is|ī))/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    /^mai/i,\n    /^jūn/i,\n    /^jūl/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[spotc]/i,\n  short: /^(sv|pi|o|t|c|pk|s)/i,\n  abbreviated: /^(svētd\\.|pirmd\\.|otrd.\\|trešd\\.|ceturtd\\.|piektd\\.|sestd\\.)/i,\n  wide: /^(svētdien(a|ā)|pirmdien(a|ā)|otrdien(a|ā)|trešdien(a|ā)|ceturtdien(a|ā)|piektdien(a|ā)|sestdien(a|ā))/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^s/i, /^p/i, /^o/i, /^t/i, /^c/i, /^p/i, /^s/i],\n  any: [/^sv/i, /^pi/i, /^o/i, /^t/i, /^c/i, /^p/i, /^se/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(am|pm|pusn\\.|pusd\\.|rīt(s|ā)|dien(a|ā)|vakar(s|ā)|nakt(s|ī))/,\n  abbreviated: /^(am|pm|pusn\\.|pusd\\.|rīt(s|ā)|pēcpusd\\.|vakar(s|ā)|nakt(s|ī))/,\n  wide: /^(am|pm|pusnakt(s|ī)|pusdienlaik(s|ā)|rīt(s|ā)|pēcpusdien(a|ā)|vakar(s|ā)|nakt(s|ī))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^am/i,\n    pm: /^pm/i,\n    midnight: /^pusn/i,\n    noon: /^pusd/i,\n    morning: /^r/i,\n    afternoon: /^(d|pēc)/i,\n    evening: /^v/i,\n    night: /^n/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: \"wide\",\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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./lv/_lib/formatDistance.js\";\nimport { formatLong } from \"./lv/_lib/formatLong.js\";\nimport { formatRelative } from \"./lv/_lib/formatRelative.js\";\nimport { localize } from \"./lv/_lib/localize.js\";\nimport { match } from \"./lv/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Latvian locale (Latvia).\n * @language Latvian\n * @iso-639-2 lav\n * @author Rūdolfs Puķītis [@prudolfs](https://github.com/prudolfs)\n */\nexport const lv = {\n  code: \"lv\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default lv;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"помалку од секунда\",\n    other: \"помалку од {{count}} секунди\",\n  },\n\n  xSeconds: {\n    one: \"1 секунда\",\n    other: \"{{count}} секунди\",\n  },\n\n  halfAMinute: \"половина минута\",\n\n  lessThanXMinutes: {\n    one: \"помалку од минута\",\n    other: \"помалку од {{count}} минути\",\n  },\n\n  xMinutes: {\n    one: \"1 минута\",\n    other: \"{{count}} минути\",\n  },\n\n  aboutXHours: {\n    one: \"околу 1 час\",\n    other: \"околу {{count}} часа\",\n  },\n\n  xHours: {\n    one: \"1 час\",\n    other: \"{{count}} часа\",\n  },\n\n  xDays: {\n    one: \"1 ден\",\n    other: \"{{count}} дена\",\n  },\n\n  aboutXWeeks: {\n    one: \"околу 1 недела\",\n    other: \"околу {{count}} месеци\",\n  },\n\n  xWeeks: {\n    one: \"1 недела\",\n    other: \"{{count}} недели\",\n  },\n\n  aboutXMonths: {\n    one: \"околу 1 месец\",\n    other: \"околу {{count}} недели\",\n  },\n\n  xMonths: {\n    one: \"1 месец\",\n    other: \"{{count}} месеци\",\n  },\n\n  aboutXYears: {\n    one: \"околу 1 година\",\n    other: \"околу {{count}} години\",\n  },\n\n  xYears: {\n    one: \"1 година\",\n    other: \"{{count}} години\",\n  },\n\n  overXYears: {\n    one: \"повеќе од 1 година\",\n    other: \"повеќе од {{count}} години\",\n  },\n\n  almostXYears: {\n    one: \"безмалку 1 година\",\n    other: \"безмалку {{count}} години\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"за \" + result;\n    } else {\n      return \"пред \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, dd MMMM yyyy\",\n  long: \"dd MMMM yyyy\",\n  medium: \"dd MMM yyyy\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst weekdays = [\n  \"недела\",\n  \"понеделник\",\n  \"вторник\",\n  \"среда\",\n  \"четврток\",\n  \"петок\",\n  \"сабота\",\n];\n\nfunction lastWeek(day) {\n  const weekday = weekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 6:\n      return \"'минатата \" + weekday + \" во' p\";\n    case 1:\n    case 2:\n    case 4:\n    case 5:\n      return \"'минатиот \" + weekday + \" во' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = weekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 6:\n      return \"'ова \" + weekday + \" вo' p\";\n    case 1:\n    case 2:\n    case 4:\n    case 5:\n      return \"'овој \" + weekday + \" вo' p\";\n  }\n}\n\nfunction nextWeek(day) {\n  const weekday = weekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 6:\n      return \"'следната \" + weekday + \" вo' p\";\n    case 1:\n    case 2:\n    case 4:\n    case 5:\n      return \"'следниот \" + weekday + \" вo' p\";\n  }\n}\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return lastWeek(day);\n    }\n  },\n  yesterday: \"'вчера во' p\",\n  today: \"'денес во' p\",\n  tomorrow: \"'утре во' p\",\n  nextWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return nextWeek(day);\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"пр.н.е.\", \"н.е.\"],\n  abbreviated: [\"пред н. е.\", \"н. е.\"],\n  wide: [\"пред нашата ера\", \"нашата ера\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-ви кв.\", \"2-ри кв.\", \"3-ти кв.\", \"4-ти кв.\"],\n  wide: [\"1-ви квартал\", \"2-ри квартал\", \"3-ти квартал\", \"4-ти квартал\"],\n};\n\nconst monthValues = {\n  abbreviated: [\n    \"јан\",\n    \"фев\",\n    \"мар\",\n    \"апр\",\n    \"мај\",\n    \"јун\",\n    \"јул\",\n    \"авг\",\n    \"септ\",\n    \"окт\",\n    \"ноем\",\n    \"дек\",\n  ],\n\n  wide: [\n    \"јануари\",\n    \"февруари\",\n    \"март\",\n    \"април\",\n    \"мај\",\n    \"јуни\",\n    \"јули\",\n    \"август\",\n    \"септември\",\n    \"октомври\",\n    \"ноември\",\n    \"декември\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"не\", \"по\", \"вт\", \"ср\", \"че\", \"пе\", \"са\"],\n  abbreviated: [\"нед\", \"пон\", \"вто\", \"сре\", \"чет\", \"пет\", \"саб\"],\n  wide: [\n    \"недела\",\n    \"понеделник\",\n    \"вторник\",\n    \"среда\",\n    \"четврток\",\n    \"петок\",\n    \"сабота\",\n  ],\n};\n\nconst dayPeriodValues = {\n  wide: {\n    am: \"претпладне\",\n    pm: \"попладне\",\n    midnight: \"полноќ\",\n    noon: \"напладне\",\n    morning: \"наутро\",\n    afternoon: \"попладне\",\n    evening: \"навечер\",\n    night: \"ноќе\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n        return number + \"-ви\";\n      case 2:\n        return number + \"-ри\";\n      case 7:\n      case 8:\n        return number + \"-ми\";\n    }\n  }\n  return number + \"-ти\";\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?[врмт][и])?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((пр)?н\\.?\\s?е\\.?)/i,\n  abbreviated: /^((пр)?н\\.?\\s?е\\.?)/i,\n  wide: /^(пред нашата ера|нашата ера)/i,\n};\nconst parseEraPatterns = {\n  any: [/^п/i, /^н/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?[врт]?и?)? кв.?/i,\n  wide: /^[1234](-?[врт]?и?)? квартал/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[нпвсч]/i,\n  short: /^(не|по|вт|ср|че|пе|са)/i,\n  abbreviated: /^(нед|пон|вто|сре|чет|пет|саб)/i,\n  wide: /^(недела|понеделник|вторник|среда|четврток|петок|сабота)/i,\n};\n\nconst parseDayPatterns = {\n  narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n  any: [/^н[ед]/i, /^п[он]/i, /^вт/i, /^ср/i, /^ч[ет]/i, /^п[ет]/i, /^с[аб]/i],\n};\n\nconst matchMonthPatterns = {\n  abbreviated: /^(јан|фев|мар|апр|мај|јун|јул|авг|сеп|окт|ноем|дек)/i,\n  wide: /^(јануари|февруари|март|април|мај|јуни|јули|август|септември|октомври|ноември|декември)/i,\n};\nconst parseMonthPatterns = {\n  any: [\n    /^ја/i,\n    /^Ф/i,\n    /^мар/i,\n    /^ап/i,\n    /^мај/i,\n    /^јун/i,\n    /^јул/i,\n    /^ав/i,\n    /^се/i,\n    /^окт/i,\n    /^но/i,\n    /^де/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(претп|попл|полноќ|утро|пладне|вечер|ноќ)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /претпладне/i,\n    pm: /попладне/i,\n    midnight: /полноќ/i,\n    noon: /напладне/i,\n    morning: /наутро/i,\n    afternoon: /попладне/i,\n    evening: /навечер/i,\n    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 \"./mk/_lib/formatDistance.js\";\nimport { formatLong } from \"./mk/_lib/formatLong.js\";\nimport { formatRelative } from \"./mk/_lib/formatRelative.js\";\nimport { localize } from \"./mk/_lib/localize.js\";\nimport { match } from \"./mk/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Macedonian locale.\n * @language Macedonian\n * @iso-639-2 mkd\n * @author Petar Vlahu [@vlahupetar](https://github.com/vlahupetar)\n * @author Altrim Beqiri [@altrim](https://github.com/altrim)\n */\nexport const mk = {\n  code: \"mk\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default mk;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"секунд хүрэхгүй\",\n    other: \"{{count}} секунд хүрэхгүй\",\n  },\n\n  xSeconds: {\n    one: \"1 секунд\",\n    other: \"{{count}} секунд\",\n  },\n\n  halfAMinute: \"хагас минут\",\n\n  lessThanXMinutes: {\n    one: \"минут хүрэхгүй\",\n    other: \"{{count}} минут хүрэхгүй\",\n  },\n\n  xMinutes: {\n    one: \"1 минут\",\n    other: \"{{count}} минут\",\n  },\n\n  aboutXHours: {\n    one: \"ойролцоогоор 1 цаг\",\n    other: \"ойролцоогоор {{count}} цаг\",\n  },\n\n  xHours: {\n    one: \"1 цаг\",\n    other: \"{{count}} цаг\",\n  },\n\n  xDays: {\n    one: \"1 өдөр\",\n    other: \"{{count}} өдөр\",\n  },\n\n  aboutXWeeks: {\n    one: \"ойролцоогоор 1 долоо хоног\",\n    other: \"ойролцоогоор {{count}} долоо хоног\",\n  },\n\n  xWeeks: {\n    one: \"1 долоо хоног\",\n    other: \"{{count}} долоо хоног\",\n  },\n\n  aboutXMonths: {\n    one: \"ойролцоогоор 1 сар\",\n    other: \"ойролцоогоор {{count}} сар\",\n  },\n\n  xMonths: {\n    one: \"1 сар\",\n    other: \"{{count}} сар\",\n  },\n\n  aboutXYears: {\n    one: \"ойролцоогоор 1 жил\",\n    other: \"ойролцоогоор {{count}} жил\",\n  },\n\n  xYears: {\n    one: \"1 жил\",\n    other: \"{{count}} жил\",\n  },\n\n  overXYears: {\n    one: \"1 жил гаран\",\n    other: \"{{count}} жил гаран\",\n  },\n\n  almostXYears: {\n    one: \"бараг 1 жил\",\n    other: \"бараг {{count}} жил\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    /**\n     * Append genitive case\n     */\n    const words = result.split(\" \");\n    const lastword = words.pop();\n    result = words.join(\" \");\n    switch (lastword) {\n      case \"секунд\":\n        result += \" секундийн\";\n        break;\n      case \"минут\":\n        result += \" минутын\";\n        break;\n      case \"цаг\":\n        result += \" цагийн\";\n        break;\n      case \"өдөр\":\n        result += \" өдрийн\";\n        break;\n      case \"сар\":\n        result += \" сарын\";\n        break;\n      case \"жил\":\n        result += \" жилийн\";\n        break;\n      case \"хоног\":\n        result += \" хоногийн\";\n        break;\n      case \"гаран\":\n        result += \" гараны\";\n        break;\n      case \"хүрэхгүй\":\n        result += \" хүрэхгүй хугацааны\";\n        break;\n      default:\n        result += lastword + \"-н\";\n    }\n\n    if (options.comparison && options.comparison > 0) {\n      return result + \" дараа\";\n    } else {\n      return result + \" өмнө\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y 'оны' MMMM'ын' d, EEEE 'гараг'\",\n  long: \"y 'оны' MMMM'ын' d\",\n  medium: \"y 'оны' MMM'ын' d\",\n  short: \"y.MM.dd\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"'өнгөрсөн' eeee 'гарагийн' p 'цагт'\",\n  yesterday: \"'өчигдөр' p 'цагт'\",\n  today: \"'өнөөдөр' p 'цагт'\",\n  tomorrow: \"'маргааш' p 'цагт'\",\n  nextWeek: \"'ирэх' eeee 'гарагийн' p 'цагт'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"НТӨ\", \"НТ\"],\n  abbreviated: [\"НТӨ\", \"НТ\"],\n  wide: [\"нийтийн тооллын өмнөх\", \"нийтийн тооллын\"],\n};\n\nconst quarterValues = {\n  narrow: [\"I\", \"II\", \"III\", \"IV\"],\n  abbreviated: [\"I улирал\", \"II улирал\", \"III улирал\", \"IV улирал\"],\n  wide: [\"1-р улирал\", \"2-р улирал\", \"3-р улирал\", \"4-р улирал\"],\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: [\n    \"I\",\n    \"II\",\n    \"III\",\n    \"IV\",\n    \"V\",\n    \"VI\",\n    \"VII\",\n    \"VIII\",\n    \"IX\",\n    \"X\",\n    \"XI\",\n    \"XII\",\n  ],\n\n  abbreviated: [\n    \"1-р сар\",\n    \"2-р сар\",\n    \"3-р сар\",\n    \"4-р сар\",\n    \"5-р сар\",\n    \"6-р сар\",\n    \"7-р сар\",\n    \"8-р сар\",\n    \"9-р сар\",\n    \"10-р сар\",\n    \"11-р сар\",\n    \"12-р сар\",\n  ],\n\n  wide: [\n    \"Нэгдүгээр сар\",\n    \"Хоёрдугаар сар\",\n    \"Гуравдугаар сар\",\n    \"Дөрөвдүгээр сар\",\n    \"Тавдугаар сар\",\n    \"Зургаадугаар сар\",\n    \"Долоодугаар сар\",\n    \"Наймдугаар сар\",\n    \"Есдүгээр сар\",\n    \"Аравдугаар сар\",\n    \"Арваннэгдүгээр сар\",\n    \"Арван хоёрдугаар сар\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\n    \"I\",\n    \"II\",\n    \"III\",\n    \"IV\",\n    \"V\",\n    \"VI\",\n    \"VII\",\n    \"VIII\",\n    \"IX\",\n    \"X\",\n    \"XI\",\n    \"XII\",\n  ],\n\n  abbreviated: [\n    \"1-р сар\",\n    \"2-р сар\",\n    \"3-р сар\",\n    \"4-р сар\",\n    \"5-р сар\",\n    \"6-р сар\",\n    \"7-р сар\",\n    \"8-р сар\",\n    \"9-р сар\",\n    \"10-р сар\",\n    \"11-р сар\",\n    \"12-р сар\",\n  ],\n\n  wide: [\n    \"нэгдүгээр сар\",\n    \"хоёрдугаар сар\",\n    \"гуравдугаар сар\",\n    \"дөрөвдүгээр сар\",\n    \"тавдугаар сар\",\n    \"зургаадугаар сар\",\n    \"долоодугаар сар\",\n    \"наймдугаар сар\",\n    \"есдүгээр сар\",\n    \"аравдугаар сар\",\n    \"арваннэгдүгээр сар\",\n    \"арван хоёрдугаар сар\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"Д\", \"М\", \"Л\", \"П\", \"Б\", \"Б\"],\n  short: [\"Ня\", \"Да\", \"Мя\", \"Лх\", \"Пү\", \"Ба\", \"Бя\"],\n  abbreviated: [\"Ням\", \"Дав\", \"Мяг\", \"Лха\", \"Пүр\", \"Баа\", \"Бям\"],\n  wide: [\"Ням\", \"Даваа\", \"Мягмар\", \"Лхагва\", \"Пүрэв\", \"Баасан\", \"Бямба\"],\n};\n\nconst formattingDayValues = {\n  narrow: [\"Н\", \"Д\", \"М\", \"Л\", \"П\", \"Б\", \"Б\"],\n  short: [\"Ня\", \"Да\", \"Мя\", \"Лх\", \"Пү\", \"Ба\", \"Бя\"],\n  abbreviated: [\"Ням\", \"Дав\", \"Мяг\", \"Лха\", \"Пүр\", \"Баа\", \"Бям\"],\n  wide: [\"ням\", \"даваа\", \"мягмар\", \"лхагва\", \"пүрэв\", \"баасан\", \"бямба\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ү.ө.\",\n    pm: \"ү.х.\",\n    midnight: \"шөнө дунд\",\n    noon: \"үд дунд\",\n    morning: \"өглөө\",\n    afternoon: \"өдөр\",\n    evening: \"орой\",\n    night: \"шөнө\",\n  },\n  abbreviated: {\n    am: \"ү.ө.\",\n    pm: \"ү.х.\",\n    midnight: \"шөнө дунд\",\n    noon: \"үд дунд\",\n    morning: \"өглөө\",\n    afternoon: \"өдөр\",\n    evening: \"орой\",\n    night: \"шөнө\",\n  },\n  wide: {\n    am: \"ү.ө.\",\n    pm: \"ү.х.\",\n    midnight: \"шөнө дунд\",\n    noon: \"үд дунд\",\n    morning: \"өглөө\",\n    afternoon: \"өдөр\",\n    evening: \"орой\",\n    night: \"шөнө\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingDayValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /\\d+/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(нтө|нт)/i,\n  abbreviated: /^(нтө|нт)/i,\n  wide: /^(нийтийн тооллын өмнө|нийтийн тооллын)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(нтө|нийтийн тооллын өмнө)/i, /^(нт|нийтийн тооллын)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^(iv|iii|ii|i)/i,\n  abbreviated: /^(iv|iii|ii|i) улирал/i,\n  wide: /^[1-4]-р улирал/i,\n};\nconst parseQuarterPatterns = {\n  any: [/^(i(\\s|$)|1)/i, /^(ii(\\s|$)|2)/i, /^(iii(\\s|$)|3)/i, /^(iv(\\s|$)|4)/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(xii|xi|x|ix|viii|vii|vi|v|iv|iii|ii|i)/i,\n  abbreviated:\n    /^(1-р сар|2-р сар|3-р сар|4-р сар|5-р сар|6-р сар|7-р сар|8-р сар|9-р сар|10-р сар|11-р сар|12-р сар)/i,\n  wide: /^(нэгдүгээр сар|хоёрдугаар сар|гуравдугаар сар|дөрөвдүгээр сар|тавдугаар сар|зургаадугаар сар|долоодугаар сар|наймдугаар сар|есдүгээр сар|аравдугаар сар|арван нэгдүгээр сар|арван хоёрдугаар сар)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^i$/i,\n    /^ii$/i,\n    /^iii$/i,\n    /^iv$/i,\n    /^v$/i,\n    /^vi$/i,\n    /^vii$/i,\n    /^viii$/i,\n    /^ix$/i,\n    /^x$/i,\n    /^xi$/i,\n    /^xii$/i,\n  ],\n\n  any: [\n    /^(1|нэгдүгээр)/i,\n    /^(2|хоёрдугаар)/i,\n    /^(3|гуравдугаар)/i,\n    /^(4|дөрөвдүгээр)/i,\n    /^(5|тавдугаар)/i,\n    /^(6|зургаадугаар)/i,\n    /^(7|долоодугаар)/i,\n    /^(8|наймдугаар)/i,\n    /^(9|есдүгээр)/i,\n    /^(10|аравдугаар)/i,\n    /^(11|арван нэгдүгээр)/i,\n    /^(12|арван хоёрдугаар)/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[ндмлпбб]/i,\n  short: /^(ня|да|мя|лх|пү|ба|бя)/i,\n  abbreviated: /^(ням|дав|мяг|лха|пүр|баа|бям)/i,\n  wide: /^(ням|даваа|мягмар|лхагва|пүрэв|баасан|бямба)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^н/i, /^д/i, /^м/i, /^л/i, /^п/i, /^б/i, /^б/i],\n  any: [/^ня/i, /^да/i, /^мя/i, /^лх/i, /^пү/i, /^ба/i, /^бя/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(ү\\.ө\\.|ү\\.х\\.|шөнө дунд|үд дунд|өглөө|өдөр|орой|шөнө)/i,\n  any: /^(ү\\.ө\\.|ү\\.х\\.|шөнө дунд|үд дунд|өглөө|өдөр|орой|шөнө)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ү\\.ө\\./i,\n    pm: /^ү\\.х\\./i,\n    midnight: /^шөнө дунд/i,\n    noon: /^үд дунд/i,\n    morning: /өглөө/i,\n    afternoon: /өдөр/i,\n    evening: /орой/i,\n    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 \"./mn/_lib/formatDistance.js\";\nimport { formatLong } from \"./mn/_lib/formatLong.js\";\nimport { formatRelative } from \"./mn/_lib/formatRelative.js\";\nimport { localize } from \"./mn/_lib/localize.js\";\nimport { match } from \"./mn/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Mongolian locale.\n * @language Mongolian\n * @iso-639-2 mon\n * @author Bilguun Ochirbat [@bilguun0203](https://github.com/bilguun0203)\n */\nexport const mn = {\n  code: \"mn\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default mn;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"kurang dari 1 saat\",\n    other: \"kurang dari {{count}} saat\",\n  },\n\n  xSeconds: {\n    one: \"1 saat\",\n    other: \"{{count}} saat\",\n  },\n\n  halfAMinute: \"setengah minit\",\n\n  lessThanXMinutes: {\n    one: \"kurang dari 1 minit\",\n    other: \"kurang dari {{count}} minit\",\n  },\n\n  xMinutes: {\n    one: \"1 minit\",\n    other: \"{{count}} minit\",\n  },\n\n  aboutXHours: {\n    one: \"sekitar 1 jam\",\n    other: \"sekitar {{count}} jam\",\n  },\n\n  xHours: {\n    one: \"1 jam\",\n    other: \"{{count}} jam\",\n  },\n\n  xDays: {\n    one: \"1 hari\",\n    other: \"{{count}} hari\",\n  },\n\n  aboutXWeeks: {\n    one: \"sekitar 1 minggu\",\n    other: \"sekitar {{count}} minggu\",\n  },\n\n  xWeeks: {\n    one: \"1 minggu\",\n    other: \"{{count}} minggu\",\n  },\n\n  aboutXMonths: {\n    one: \"sekitar 1 bulan\",\n    other: \"sekitar {{count}} bulan\",\n  },\n\n  xMonths: {\n    one: \"1 bulan\",\n    other: \"{{count}} bulan\",\n  },\n\n  aboutXYears: {\n    one: \"sekitar 1 tahun\",\n    other: \"sekitar {{count}} tahun\",\n  },\n\n  xYears: {\n    one: \"1 tahun\",\n    other: \"{{count}} tahun\",\n  },\n\n  overXYears: {\n    one: \"lebih dari 1 tahun\",\n    other: \"lebih dari {{count}} tahun\",\n  },\n\n  almostXYears: {\n    one: \"hampir 1 tahun\",\n    other: \"hampir {{count}} tahun\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"dalam masa \" + result;\n    } else {\n      return result + \" yang lalu\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM yyyy\",\n  long: \"d MMMM yyyy\",\n  medium: \"d MMM yyyy\",\n  short: \"d/M/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH.mm.ss\",\n  long: \"HH.mm.ss\",\n  medium: \"HH.mm\",\n  short: \"HH.mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'pukul' {{time}}\",\n  long: \"{{date}} 'pukul' {{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: \"eeee 'lepas pada jam' p\",\n  yesterday: \"'Semalam pada jam' p\",\n  today: \"'Hari ini pada jam' p\",\n  tomorrow: \"'Esok pada jam' p\",\n  nextWeek: \"eeee 'pada jam' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// Most data for localization are taken from this page\n// https://www.unicode.org/cldr/charts/32/summary/ms.html\nconst eraValues = {\n  narrow: [\"SM\", \"M\"],\n  abbreviated: [\"SM\", \"M\"],\n  wide: [\"Sebelum Masihi\", \"Masihi\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"S1\", \"S2\", \"S3\", \"S4\"],\n  wide: [\"Suku pertama\", \"Suku kedua\", \"Suku ketiga\", \"Suku keempat\"],\n};\n\n// Note: in Malay, 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\", \"O\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"Jan\",\n    \"Feb\",\n    \"Mac\",\n    \"Apr\",\n    \"Mei\",\n    \"Jun\",\n    \"Jul\",\n    \"Ogo\",\n    \"Sep\",\n    \"Okt\",\n    \"Nov\",\n    \"Dis\",\n  ],\n\n  wide: [\n    \"Januari\",\n    \"Februari\",\n    \"Mac\",\n    \"April\",\n    \"Mei\",\n    \"Jun\",\n    \"Julai\",\n    \"Ogos\",\n    \"September\",\n    \"Oktober\",\n    \"November\",\n    \"Disember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"A\", \"I\", \"S\", \"R\", \"K\", \"J\", \"S\"],\n  short: [\"Ahd\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\"],\n  abbreviated: [\"Ahd\", \"Isn\", \"Sel\", \"Rab\", \"Kha\", \"Jum\", \"Sab\"],\n  wide: [\"Ahad\", \"Isnin\", \"Selasa\", \"Rabu\", \"Khamis\", \"Jumaat\", \"Sabtu\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"tgh malam\",\n    noon: \"tgh hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"tengah malam\",\n    noon: \"tengah hari\",\n    morning: \"pagi\",\n    afternoon: \"tengah hari\",\n    evening: \"petang\",\n    night: \"malam\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  // Can't use \"pertama\", \"kedua\" because can't be parsed\n  return \"ke-\" + Number(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^ke-(\\d+)?/i;\nconst parseOrdinalNumberPattern = /petama|\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(sm|m)/i,\n  abbreviated: /^(s\\.?\\s?m\\.?|m\\.?)/i,\n  wide: /^(sebelum masihi|masihi)/i,\n};\nconst parseEraPatterns = {\n  any: [/^s/i, /^(m)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^S[1234]/i,\n  wide: /Suku (pertama|kedua|ketiga|keempat)/i,\n};\nconst parseQuarterPatterns = {\n  any: [/pertama|1/i, /kedua|2/i, /ketiga|3/i, /keempat|4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated: /^(jan|feb|mac|apr|mei|jun|jul|ogo|sep|okt|nov|dis)/i,\n  wide: /^(januari|februari|mac|april|mei|jun|julai|ogos|september|oktober|november|disember)/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    /^o/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ja/i,\n    /^f/i,\n    /^ma/i,\n    /^ap/i,\n    /^me/i,\n    /^jun/i,\n    /^jul/i,\n    /^og/i,\n    /^s/i,\n    /^ok/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[aisrkj]/i,\n  short: /^(ahd|isn|sel|rab|kha|jum|sab)/i,\n  abbreviated: /^(ahd|isn|sel|rab|kha|jum|sab)/i,\n  wide: /^(ahad|isnin|selasa|rabu|khamis|jumaat|sabtu)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^a/i, /^i/i, /^s/i, /^r/i, /^k/i, /^j/i, /^s/i],\n  any: [/^a/i, /^i/i, /^se/i, /^r/i, /^k/i, /^j/i, /^sa/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(am|pm|tengah malam|tengah hari|pagi|petang|malam)/i,\n  any: /^([ap]\\.?\\s?m\\.?|tengah malam|tengah hari|pagi|petang|malam)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^pm/i,\n    midnight: /^tengah m/i,\n    noon: /^tengah h/i,\n    morning: /pa/i,\n    afternoon: /tengah h/i,\n    evening: /pe/i,\n    night: /m/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 \"./ms/_lib/formatDistance.js\";\nimport { formatLong } from \"./ms/_lib/formatLong.js\";\nimport { formatRelative } from \"./ms/_lib/formatRelative.js\";\nimport { localize } from \"./ms/_lib/localize.js\";\nimport { match } from \"./ms/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Malay locale.\n * @language Malay\n * @iso-639-2 msa\n * @author Ruban Selvarajah [@Zyten](https://github.com/Zyten)\n */\nexport const ms = {\n  code: \"ms\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ms;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"mindre enn ett sekund\",\n    other: \"mindre enn {{count}} sekunder\",\n  },\n\n  xSeconds: {\n    one: \"ett sekund\",\n    other: \"{{count}} sekunder\",\n  },\n\n  halfAMinute: \"et halvt minutt\",\n\n  lessThanXMinutes: {\n    one: \"mindre enn ett minutt\",\n    other: \"mindre enn {{count}} minutter\",\n  },\n\n  xMinutes: {\n    one: \"ett minutt\",\n    other: \"{{count}} minutter\",\n  },\n\n  aboutXHours: {\n    one: \"omtrent en time\",\n    other: \"omtrent {{count}} timer\",\n  },\n\n  xHours: {\n    one: \"en time\",\n    other: \"{{count}} timer\",\n  },\n\n  xDays: {\n    one: \"en dag\",\n    other: \"{{count}} dager\",\n  },\n\n  aboutXWeeks: {\n    one: \"omtrent en uke\",\n    other: \"omtrent {{count}} uker\",\n  },\n\n  xWeeks: {\n    one: \"en uke\",\n    other: \"{{count}} uker\",\n  },\n\n  aboutXMonths: {\n    one: \"omtrent en måned\",\n    other: \"omtrent {{count}} måneder\",\n  },\n\n  xMonths: {\n    one: \"en måned\",\n    other: \"{{count}} måneder\",\n  },\n\n  aboutXYears: {\n    one: \"omtrent ett år\",\n    other: \"omtrent {{count}} år\",\n  },\n\n  xYears: {\n    one: \"ett år\",\n    other: \"{{count}} år\",\n  },\n\n  overXYears: {\n    one: \"over ett år\",\n    other: \"over {{count}} år\",\n  },\n\n  almostXYears: {\n    one: \"nesten ett år\",\n    other: \"nesten {{count}} år\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"om \" + result;\n    } else {\n      return result + \" siden\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"'kl'. HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kl.' {{time}}\",\n  long: \"{{date}} 'kl.' {{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: \"'forrige' eeee 'kl.' p\",\n  yesterday: \"'i går kl.' p\",\n  today: \"'i dag kl.' p\",\n  tomorrow: \"'i morgen kl.' p\",\n  nextWeek: \"EEEE 'kl.' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"f.Kr.\", \"e.Kr.\"],\n  abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n  wide: [\"før Kristus\", \"etter Kristus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"jan.\",\n    \"feb.\",\n    \"mars\",\n    \"apr.\",\n    \"mai\",\n    \"juni\",\n    \"juli\",\n    \"aug.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"des.\",\n  ],\n\n  wide: [\n    \"januar\",\n    \"februar\",\n    \"mars\",\n    \"april\",\n    \"mai\",\n    \"juni\",\n    \"juli\",\n    \"august\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"desember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n  short: [\"sø\", \"ma\", \"ti\", \"on\", \"to\", \"fr\", \"lø\"],\n  abbreviated: [\"søn\", \"man\", \"tir\", \"ons\", \"tor\", \"fre\", \"lør\"],\n  wide: [\n    \"søndag\",\n    \"mandag\",\n    \"tirsdag\",\n    \"onsdag\",\n    \"torsdag\",\n    \"fredag\",\n    \"lørdag\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på etterm.\",\n    evening: \"på kvelden\",\n    night: \"på natten\",\n  },\n  abbreviated: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på etterm.\",\n    evening: \"på kvelden\",\n    night: \"på natten\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morgenen\",\n    afternoon: \"på ettermiddagen\",\n    evening: \"på kvelden\",\n    night: \"på natten\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n  abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n  wide: /^(før Kristus|før vår tid|etter Kristus|vår tid)/i,\n};\nconst parseEraPatterns = {\n  any: [/^f/i, /^e/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](\\.)? kvartal/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|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n  wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/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    /^mai/i,\n    /^jun/i,\n    /^jul/i,\n    /^aug/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smtofl]/i,\n  short: /^(sø|ma|ti|on|to|fr|lø)/i,\n  abbreviated: /^(søn|man|tir|ons|tor|fre|lør)/i,\n  wide: /^(søndag|mandag|tirsdag|onsdag|torsdag|fredag|lørdag)/i,\n};\nconst parseDayPatterns = {\n  any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten)|[ap])/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(på) (morgenen|ettermiddagen|kvelden|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a(\\.?\\s?m\\.?)?$/i,\n    pm: /^p(\\.?\\s?m\\.?)?$/i,\n    midnight: /^midn/i,\n    noon: /^midd/i,\n    morning: /morgen/i,\n    afternoon: /ettermiddag/i,\n    evening: /kveld/i,\n    night: /natt/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 \"./nb/_lib/formatDistance.js\";\nimport { formatLong } from \"./nb/_lib/formatLong.js\";\nimport { formatRelative } from \"./nb/_lib/formatRelative.js\";\nimport { localize } from \"./nb/_lib/localize.js\";\nimport { match } from \"./nb/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Norwegian Bokmål locale.\n * @language Norwegian Bokmål\n * @iso-639-2 nob\n * @author Hans-Kristian Koren [@Hanse](https://github.com/Hanse)\n * @author Mikolaj Grzyb [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Dag Stuan [@dagstuan](https://github.com/dagstuan)\n */\nexport const nb = {\n  code: \"nb\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default nb;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"minder dan een seconde\",\n    other: \"minder dan {{count}} seconden\",\n  },\n\n  xSeconds: {\n    one: \"1 seconde\",\n    other: \"{{count}} seconden\",\n  },\n\n  halfAMinute: \"een halve minuut\",\n\n  lessThanXMinutes: {\n    one: \"minder dan een minuut\",\n    other: \"minder dan {{count}} minuten\",\n  },\n\n  xMinutes: {\n    one: \"een minuut\",\n    other: \"{{count}} minuten\",\n  },\n\n  aboutXHours: {\n    one: \"ongeveer 1 uur\",\n    other: \"ongeveer {{count}} uur\",\n  },\n\n  xHours: {\n    one: \"1 uur\",\n    other: \"{{count}} uur\",\n  },\n\n  xDays: {\n    one: \"1 dag\",\n    other: \"{{count}} dagen\",\n  },\n\n  aboutXWeeks: {\n    one: \"ongeveer 1 week\",\n    other: \"ongeveer {{count}} weken\",\n  },\n\n  xWeeks: {\n    one: \"1 week\",\n    other: \"{{count}} weken\",\n  },\n\n  aboutXMonths: {\n    one: \"ongeveer 1 maand\",\n    other: \"ongeveer {{count}} maanden\",\n  },\n\n  xMonths: {\n    one: \"1 maand\",\n    other: \"{{count}} maanden\",\n  },\n\n  aboutXYears: {\n    one: \"ongeveer 1 jaar\",\n    other: \"ongeveer {{count}} jaar\",\n  },\n\n  xYears: {\n    one: \"1 jaar\",\n    other: \"{{count}} jaar\",\n  },\n\n  overXYears: {\n    one: \"meer dan 1 jaar\",\n    other: \"meer dan {{count}} jaar\",\n  },\n\n  almostXYears: {\n    one: \"bijna 1 jaar\",\n    other: \"bijna {{count}} jaar\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"over \" + result;\n    } else {\n      return result + \" geleden\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d MMMM y\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd-MM-y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'om' {{time}}\",\n  long: \"{{date}} 'om' {{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: \"'afgelopen' eeee 'om' p\",\n  yesterday: \"'gisteren om' p\",\n  today: \"'vandaag om' p\",\n  tomorrow: \"'morgen om' p\",\n  nextWeek: \"eeee 'om' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"v.C.\", \"n.C.\"],\n  abbreviated: [\"v.Chr.\", \"n.Chr.\"],\n  wide: [\"voor Christus\", \"na Christus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"K1\", \"K2\", \"K3\", \"K4\"],\n  wide: [\"1e kwartaal\", \"2e kwartaal\", \"3e kwartaal\", \"4e kwartaal\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"jan.\",\n    \"feb.\",\n    \"mrt.\",\n    \"apr.\",\n    \"mei\",\n    \"jun.\",\n    \"jul.\",\n    \"aug.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"januari\",\n    \"februari\",\n    \"maart\",\n    \"april\",\n    \"mei\",\n    \"juni\",\n    \"juli\",\n    \"augustus\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"december\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Z\", \"M\", \"D\", \"W\", \"D\", \"V\", \"Z\"],\n  short: [\"zo\", \"ma\", \"di\", \"wo\", \"do\", \"vr\", \"za\"],\n  abbreviated: [\"zon\", \"maa\", \"din\", \"woe\", \"don\", \"vri\", \"zat\"],\n  wide: [\n    \"zondag\",\n    \"maandag\",\n    \"dinsdag\",\n    \"woensdag\",\n    \"donderdag\",\n    \"vrijdag\",\n    \"zaterdag\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"middernacht\",\n    noon: \"het middaguur\",\n    morning: \"'s ochtends\",\n    afternoon: \"'s middags\",\n    evening: \"'s avonds\",\n    night: \"'s nachts\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"middernacht\",\n    noon: \"het middaguur\",\n    morning: \"'s ochtends\",\n    afternoon: \"'s middags\",\n    evening: \"'s avonds\",\n    night: \"'s nachts\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"middernacht\",\n    noon: \"het middaguur\",\n    morning: \"'s ochtends\",\n    afternoon: \"'s middags\",\n    evening: \"'s avonds\",\n    night: \"'s nachts\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"e\";\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)e?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^([vn]\\.? ?C\\.?)/,\n  abbreviated: /^([vn]\\. ?Chr\\.?)/,\n  wide: /^((voor|na) Christus)/,\n};\nconst parseEraPatterns = {\n  any: [/^v/, /^n/],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^K[1234]/i,\n  wide: /^[1234]e kwartaal/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.|mrt.|apr.|mei|jun.|jul.|aug.|sep.|okt.|nov.|dec.)/i,\n  wide: /^(januari|februari|maart|april|mei|juni|juli|augustus|september|oktober|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    /^jan/i,\n    /^feb/i,\n    /^m(r|a)/i,\n    /^apr/i,\n    /^mei/i,\n    /^jun/i,\n    /^jul/i,\n    /^aug/i,\n    /^sep/i,\n    /^okt/i,\n    /^nov/i,\n    /^dec/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[zmdwv]/i,\n  short: /^(zo|ma|di|wo|do|vr|za)/i,\n  abbreviated: /^(zon|maa|din|woe|don|vri|zat)/i,\n  wide: /^(zondag|maandag|dinsdag|woensdag|donderdag|vrijdag|zaterdag)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^z/i, /^m/i, /^d/i, /^w/i, /^d/i, /^v/i, /^z/i],\n  any: [/^zo/i, /^ma/i, /^di/i, /^wo/i, /^do/i, /^vr/i, /^za/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(am|pm|middernacht|het middaguur|'s (ochtends|middags|avonds|nachts))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^am/i,\n    pm: /^pm/i,\n    midnight: /^middernacht/i,\n    noon: /^het middaguur/i,\n    morning: /ochtend/i,\n    afternoon: /middag/i,\n    evening: /avond/i,\n    night: /nacht/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 \"./nl/_lib/formatDistance.js\";\nimport { formatLong } from \"./nl/_lib/formatLong.js\";\nimport { formatRelative } from \"./nl/_lib/formatRelative.js\";\nimport { localize } from \"./nl/_lib/localize.js\";\nimport { match } from \"./nl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Dutch locale.\n * @language Dutch\n * @iso-639-2 nld\n * @author Jorik Tangelder [@jtangelder](https://github.com/jtangelder)\n * @author Ruben Stolk [@rubenstolk](https://github.com/rubenstolk)\n * @author Lode Vanhove [@bitcrumb](https://github.com/bitcrumb)\n * @author Edo Rivai [@edorivai](https://github.com/edorivai)\n * @author Niels Keurentjes [@curry684](https://github.com/curry684)\n * @author Stefan Vermaas [@stefanvermaas](https://github.com/stefanvermaas)\n */\nexport const nl = {\n  code: \"nl\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default nl;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"mindre enn eitt sekund\",\n    other: \"mindre enn {{count}} sekund\",\n  },\n\n  xSeconds: {\n    one: \"eitt sekund\",\n    other: \"{{count}} sekund\",\n  },\n\n  halfAMinute: \"eit halvt minutt\",\n\n  lessThanXMinutes: {\n    one: \"mindre enn eitt minutt\",\n    other: \"mindre enn {{count}} minutt\",\n  },\n\n  xMinutes: {\n    one: \"eitt minutt\",\n    other: \"{{count}} minutt\",\n  },\n\n  aboutXHours: {\n    one: \"omtrent ein time\",\n    other: \"omtrent {{count}} timar\",\n  },\n\n  xHours: {\n    one: \"ein time\",\n    other: \"{{count}} timar\",\n  },\n\n  xDays: {\n    one: \"ein dag\",\n    other: \"{{count}} dagar\",\n  },\n\n  aboutXWeeks: {\n    one: \"omtrent ei veke\",\n    other: \"omtrent {{count}} veker\",\n  },\n\n  xWeeks: {\n    one: \"ei veke\",\n    other: \"{{count}} veker\",\n  },\n\n  aboutXMonths: {\n    one: \"omtrent ein månad\",\n    other: \"omtrent {{count}} månader\",\n  },\n\n  xMonths: {\n    one: \"ein månad\",\n    other: \"{{count}} månader\",\n  },\n\n  aboutXYears: {\n    one: \"omtrent eitt år\",\n    other: \"omtrent {{count}} år\",\n  },\n\n  xYears: {\n    one: \"eitt år\",\n    other: \"{{count}} år\",\n  },\n\n  overXYears: {\n    one: \"over eitt år\",\n    other: \"over {{count}} år\",\n  },\n\n  almostXYears: {\n    one: \"nesten eitt år\",\n    other: \"nesten {{count}} år\",\n  },\n};\n\nconst wordMapping = [\n  \"null\",\n  \"ein\",\n  \"to\",\n  \"tre\",\n  \"fire\",\n  \"fem\",\n  \"seks\",\n  \"sju\",\n  \"åtte\",\n  \"ni\",\n  \"ti\",\n  \"elleve\",\n  \"tolv\",\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(\n      \"{{count}}\",\n      count < 13 ? wordMapping[count] : String(count),\n    );\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"om \" + result;\n    } else {\n      return result + \" sidan\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"'kl'. HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kl.' {{time}}\",\n  long: \"{{date}} 'kl.' {{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: \"'førre' eeee 'kl.' p\",\n  yesterday: \"'i går kl.' p\",\n  today: \"'i dag kl.' p\",\n  tomorrow: \"'i morgon kl.' p\",\n  nextWeek: \"EEEE 'kl.' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"f.Kr.\", \"e.Kr.\"],\n  abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n  wide: [\"før Kristus\", \"etter Kristus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1. kvartal\", \"2. kvartal\", \"3. kvartal\", \"4. kvartal\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"jan.\",\n    \"feb.\",\n    \"mars\",\n    \"apr.\",\n    \"mai\",\n    \"juni\",\n    \"juli\",\n    \"aug.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"des.\",\n  ],\n\n  wide: [\n    \"januar\",\n    \"februar\",\n    \"mars\",\n    \"april\",\n    \"mai\",\n    \"juni\",\n    \"juli\",\n    \"august\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"desember\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n  short: [\"su\", \"må\", \"ty\", \"on\", \"to\", \"fr\", \"lau\"],\n  abbreviated: [\"sun\", \"mån\", \"tys\", \"ons\", \"tor\", \"fre\", \"laur\"],\n  wide: [\n    \"sundag\",\n    \"måndag\",\n    \"tysdag\",\n    \"onsdag\",\n    \"torsdag\",\n    \"fredag\",\n    \"laurdag\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på etterm.\",\n    evening: \"på kvelden\",\n    night: \"på natta\",\n  },\n  abbreviated: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på etterm.\",\n    evening: \"på kvelden\",\n    night: \"på natta\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morgonen\",\n    afternoon: \"på ettermiddagen\",\n    evening: \"på kvelden\",\n    night: \"på natta\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n  abbreviated: /^(f\\.? ?Kr\\.?|fvt\\.?|e\\.? ?Kr\\.?|evt\\.?)/i,\n  wide: /^(før Kristus|før vår tid|etter Kristus|vår tid)/i,\n};\nconst parseEraPatterns = {\n  any: [/^f/i, /^e/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](\\.)? kvartal/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|mars?|apr|mai|juni?|juli?|aug|sep|okt|nov|des)\\.?/i,\n  wide: /^(januar|februar|mars|april|mai|juni|juli|august|september|oktober|november|desember)/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    /^mai/i,\n    /^jun/i,\n    /^jul/i,\n    /^aug/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[smtofl]/i,\n  short: /^(su|må|ty|on|to|fr|la)/i,\n  abbreviated: /^(sun|mån|tys|ons|tor|fre|laur)/i,\n  wide: /^(sundag|måndag|tysdag|onsdag|torsdag|fredag|laurdag)/i,\n};\nconst parseDayPatterns = {\n  any: [/^s/i, /^m/i, /^ty/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta)|[ap])/i,\n  any: /^([ap]\\.?\\s?m\\.?|midnatt|middag|(på) (morgonen|ettermiddagen|kvelden|natta))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a(\\.?\\s?m\\.?)?$/i,\n    pm: /^p(\\.?\\s?m\\.?)?$/i,\n    midnight: /^midn/i,\n    noon: /^midd/i,\n    morning: /morgon/i,\n    afternoon: /ettermiddag/i,\n    evening: /kveld/i,\n    night: /natt/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 \"./nn/_lib/formatDistance.js\";\nimport { formatLong } from \"./nn/_lib/formatLong.js\";\nimport { formatRelative } from \"./nn/_lib/formatRelative.js\";\nimport { localize } from \"./nn/_lib/localize.js\";\nimport { match } from \"./nn/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Norwegian Nynorsk locale.\n * @language Norwegian Nynorsk\n * @iso-639-2 nno\n * @author Mats Byrkjeland [@draperunner](https://github.com/draperunner)\n */\nexport const nn = {\n  code: \"nn\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default nn;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      regular: \"mniej niż sekunda\",\n      past: \"mniej niż sekundę\",\n      future: \"mniej niż sekundę\",\n    },\n    twoFour: \"mniej niż {{count}} sekundy\",\n    other: \"mniej niż {{count}} sekund\",\n  },\n\n  xSeconds: {\n    one: {\n      regular: \"sekunda\",\n      past: \"sekundę\",\n      future: \"sekundę\",\n    },\n    twoFour: \"{{count}} sekundy\",\n    other: \"{{count}} sekund\",\n  },\n\n  halfAMinute: {\n    one: \"pół minuty\",\n    twoFour: \"pół minuty\",\n    other: \"pół minuty\",\n  },\n\n  lessThanXMinutes: {\n    one: {\n      regular: \"mniej niż minuta\",\n      past: \"mniej niż minutę\",\n      future: \"mniej niż minutę\",\n    },\n    twoFour: \"mniej niż {{count}} minuty\",\n    other: \"mniej niż {{count}} minut\",\n  },\n\n  xMinutes: {\n    one: {\n      regular: \"minuta\",\n      past: \"minutę\",\n      future: \"minutę\",\n    },\n    twoFour: \"{{count}} minuty\",\n    other: \"{{count}} minut\",\n  },\n\n  aboutXHours: {\n    one: {\n      regular: \"około godziny\",\n      past: \"około godziny\",\n      future: \"około godzinę\",\n    },\n    twoFour: \"około {{count}} godziny\",\n    other: \"około {{count}} godzin\",\n  },\n\n  xHours: {\n    one: {\n      regular: \"godzina\",\n      past: \"godzinę\",\n      future: \"godzinę\",\n    },\n    twoFour: \"{{count}} godziny\",\n    other: \"{{count}} godzin\",\n  },\n\n  xDays: {\n    one: {\n      regular: \"dzień\",\n      past: \"dzień\",\n      future: \"1 dzień\",\n    },\n    twoFour: \"{{count}} dni\",\n    other: \"{{count}} dni\",\n  },\n\n  aboutXWeeks: {\n    one: \"około tygodnia\",\n    twoFour: \"około {{count}} tygodni\",\n    other: \"około {{count}} tygodni\",\n  },\n\n  xWeeks: {\n    one: \"tydzień\",\n    twoFour: \"{{count}} tygodnie\",\n    other: \"{{count}} tygodni\",\n  },\n\n  aboutXMonths: {\n    one: \"około miesiąc\",\n    twoFour: \"około {{count}} miesiące\",\n    other: \"około {{count}} miesięcy\",\n  },\n\n  xMonths: {\n    one: \"miesiąc\",\n    twoFour: \"{{count}} miesiące\",\n    other: \"{{count}} miesięcy\",\n  },\n\n  aboutXYears: {\n    one: \"około rok\",\n    twoFour: \"około {{count}} lata\",\n    other: \"około {{count}} lat\",\n  },\n\n  xYears: {\n    one: \"rok\",\n    twoFour: \"{{count}} lata\",\n    other: \"{{count}} lat\",\n  },\n\n  overXYears: {\n    one: \"ponad rok\",\n    twoFour: \"ponad {{count}} lata\",\n    other: \"ponad {{count}} lat\",\n  },\n\n  almostXYears: {\n    one: \"prawie rok\",\n    twoFour: \"prawie {{count}} lata\",\n    other: \"prawie {{count}} lat\",\n  },\n};\n\nfunction declensionGroup(scheme, count) {\n  if (count === 1) {\n    return scheme.one;\n  }\n\n  const rem100 = count % 100;\n\n  // ends with 11-20\n  if (rem100 <= 20 && rem100 > 10) {\n    return scheme.other;\n  }\n\n  const rem10 = rem100 % 10;\n\n  // ends with 2, 3, 4\n  if (rem10 >= 2 && rem10 <= 4) {\n    return scheme.twoFour;\n  }\n\n  return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n  const group = declensionGroup(scheme, count);\n  const finalText = typeof group === \"string\" ? group : group[time];\n  return finalText.replace(\"{{count}}\", String(count));\n}\n\nexport const formatDistance = (token, count, options) => {\n  const scheme = formatDistanceLocale[token];\n  if (!options?.addSuffix) {\n    return declension(scheme, count, \"regular\");\n  }\n\n  if (options.comparison && options.comparison > 0) {\n    return \"za \" + declension(scheme, count, \"future\");\n  } else {\n    return declension(scheme, count, \"past\") + \" temu\";\n  }\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM y\",\n  long: \"do MMMM y\",\n  medium: \"do MMM y\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst adjectivesLastWeek = {\n  masculine: \"ostatni\",\n  feminine: \"ostatnia\",\n};\n\nconst adjectivesThisWeek = {\n  masculine: \"ten\",\n  feminine: \"ta\",\n};\n\nconst adjectivesNextWeek = {\n  masculine: \"następny\",\n  feminine: \"następna\",\n};\n\nconst dayGrammaticalGender = {\n  0: \"feminine\",\n  1: \"masculine\",\n  2: \"masculine\",\n  3: \"feminine\",\n  4: \"masculine\",\n  5: \"masculine\",\n  6: \"feminine\",\n};\n\nfunction dayAndTimeWithAdjective(token, date, baseDate, options) {\n  let adjectives;\n  if (isSameWeek(date, baseDate, options)) {\n    adjectives = adjectivesThisWeek;\n  } else if (token === \"lastWeek\") {\n    adjectives = adjectivesLastWeek;\n  } else if (token === \"nextWeek\") {\n    adjectives = adjectivesNextWeek;\n  } else {\n    throw new Error(`Cannot determine adjectives for token ${token}`);\n  }\n\n  const day = date.getDay();\n  const grammaticalGender = dayGrammaticalGender[day];\n\n  const adjective = adjectives[grammaticalGender];\n\n  return `'${adjective}' eeee 'o' p`;\n}\n\nconst formatRelativeLocale = {\n  lastWeek: dayAndTimeWithAdjective,\n  yesterday: \"'wczoraj o' p\",\n  today: \"'dzisiaj o' p\",\n  tomorrow: \"'jutro o' p\",\n  nextWeek: dayAndTimeWithAdjective,\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(token, date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"p.n.e.\", \"n.e.\"],\n  abbreviated: [\"p.n.e.\", \"n.e.\"],\n  wide: [\"przed naszą erą\", \"naszej ery\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"I kw.\", \"II kw.\", \"III kw.\", \"IV kw.\"],\n  wide: [\"I kwartał\", \"II kwartał\", \"III kwartał\", \"IV kwartał\"],\n};\n\nconst monthValues = {\n  narrow: [\"S\", \"L\", \"M\", \"K\", \"M\", \"C\", \"L\", \"S\", \"W\", \"P\", \"L\", \"G\"],\n  abbreviated: [\n    \"sty\",\n    \"lut\",\n    \"mar\",\n    \"kwi\",\n    \"maj\",\n    \"cze\",\n    \"lip\",\n    \"sie\",\n    \"wrz\",\n    \"paź\",\n    \"lis\",\n    \"gru\",\n  ],\n\n  wide: [\n    \"styczeń\",\n    \"luty\",\n    \"marzec\",\n    \"kwiecień\",\n    \"maj\",\n    \"czerwiec\",\n    \"lipiec\",\n    \"sierpień\",\n    \"wrzesień\",\n    \"październik\",\n    \"listopad\",\n    \"grudzień\",\n  ],\n};\nconst monthFormattingValues = {\n  narrow: [\"s\", \"l\", \"m\", \"k\", \"m\", \"c\", \"l\", \"s\", \"w\", \"p\", \"l\", \"g\"],\n  abbreviated: [\n    \"sty\",\n    \"lut\",\n    \"mar\",\n    \"kwi\",\n    \"maj\",\n    \"cze\",\n    \"lip\",\n    \"sie\",\n    \"wrz\",\n    \"paź\",\n    \"lis\",\n    \"gru\",\n  ],\n\n  wide: [\n    \"stycznia\",\n    \"lutego\",\n    \"marca\",\n    \"kwietnia\",\n    \"maja\",\n    \"czerwca\",\n    \"lipca\",\n    \"sierpnia\",\n    \"września\",\n    \"października\",\n    \"listopada\",\n    \"grudnia\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"N\", \"P\", \"W\", \"Ś\", \"C\", \"P\", \"S\"],\n  short: [\"nie\", \"pon\", \"wto\", \"śro\", \"czw\", \"pią\", \"sob\"],\n  abbreviated: [\"niedz.\", \"pon.\", \"wt.\", \"śr.\", \"czw.\", \"pt.\", \"sob.\"],\n  wide: [\n    \"niedziela\",\n    \"poniedziałek\",\n    \"wtorek\",\n    \"środa\",\n    \"czwartek\",\n    \"piątek\",\n    \"sobota\",\n  ],\n};\nconst dayFormattingValues = {\n  narrow: [\"n\", \"p\", \"w\", \"ś\", \"c\", \"p\", \"s\"],\n  short: [\"nie\", \"pon\", \"wto\", \"śro\", \"czw\", \"pią\", \"sob\"],\n  abbreviated: [\"niedz.\", \"pon.\", \"wt.\", \"śr.\", \"czw.\", \"pt.\", \"sob.\"],\n  wide: [\n    \"niedziela\",\n    \"poniedziałek\",\n    \"wtorek\",\n    \"środa\",\n    \"czwartek\",\n    \"piątek\",\n    \"sobota\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"półn.\",\n    noon: \"poł\",\n    morning: \"rano\",\n    afternoon: \"popoł.\",\n    evening: \"wiecz.\",\n    night: \"noc\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"północ\",\n    noon: \"południe\",\n    morning: \"rano\",\n    afternoon: \"popołudnie\",\n    evening: \"wieczór\",\n    night: \"noc\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"północ\",\n    noon: \"południe\",\n    morning: \"rano\",\n    afternoon: \"popołudnie\",\n    evening: \"wieczór\",\n    night: \"noc\",\n  },\n};\n\nconst dayPeriodFormattingValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"o półn.\",\n    noon: \"w poł.\",\n    morning: \"rano\",\n    afternoon: \"po poł.\",\n    evening: \"wiecz.\",\n    night: \"w nocy\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"o północy\",\n    noon: \"w południe\",\n    morning: \"rano\",\n    afternoon: \"po południu\",\n    evening: \"wieczorem\",\n    night: \"w nocy\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"o północy\",\n    noon: \"w południe\",\n    morning: \"rano\",\n    afternoon: \"po południu\",\n    evening: \"wieczorem\",\n    night: \"w nocy\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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    formattingValues: monthFormattingValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n    formattingValues: dayFormattingValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"wide\",\n    formattingValues: dayPeriodFormattingValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n  abbreviated: /^(p\\.?\\s*n\\.?\\s*e\\.?\\s*|n\\.?\\s*e\\.?\\s*)/i,\n  wide: /^(przed\\s*nasz(ą|a)\\s*er(ą|a)|naszej\\s*ery)/i,\n};\nconst parseEraPatterns = {\n  any: [/^p/i, /^n/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^(I|II|III|IV)\\s*kw\\.?/i,\n  wide: /^(I|II|III|IV)\\s*kwarta(ł|l)/i,\n};\nconst parseQuarterPatterns = {\n  narrow: [/1/i, /2/i, /3/i, /4/i],\n  any: [/^I kw/i, /^II kw/i, /^III kw/i, /^IV kw/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[slmkcwpg]/i,\n  abbreviated: /^(sty|lut|mar|kwi|maj|cze|lip|sie|wrz|pa(ź|z)|lis|gru)/i,\n  wide: /^(stycznia|stycze(ń|n)|lutego|luty|marca|marzec|kwietnia|kwiecie(ń|n)|maja|maj|czerwca|czerwiec|lipca|lipiec|sierpnia|sierpie(ń|n)|wrze(ś|s)nia|wrzesie(ń|n)|pa(ź|z)dziernika|pa(ź|z)dziernik|listopada|listopad|grudnia|grudzie(ń|n))/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^s/i,\n    /^l/i,\n    /^m/i,\n    /^k/i,\n    /^m/i,\n    /^c/i,\n    /^l/i,\n    /^s/i,\n    /^w/i,\n    /^p/i,\n    /^l/i,\n    /^g/i,\n  ],\n\n  any: [\n    /^st/i,\n    /^lu/i,\n    /^mar/i,\n    /^k/i,\n    /^maj/i,\n    /^c/i,\n    /^lip/i,\n    /^si/i,\n    /^w/i,\n    /^p/i,\n    /^lis/i,\n    /^g/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[npwścs]/i,\n  short: /^(nie|pon|wto|(ś|s)ro|czw|pi(ą|a)|sob)/i,\n  abbreviated: /^(niedz|pon|wt|(ś|s)r|czw|pt|sob)\\.?/i,\n  wide: /^(niedziela|poniedzia(ł|l)ek|wtorek|(ś|s)roda|czwartek|pi(ą|a)tek|sobota)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^n/i, /^p/i, /^w/i, /^ś/i, /^c/i, /^p/i, /^s/i],\n  abbreviated: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pt/i, /^so/i],\n\n  any: [/^n/i, /^po/i, /^w/i, /^(ś|s)r/i, /^c/i, /^pi/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(^a$|^p$|pó(ł|l)n\\.?|o\\s*pó(ł|l)n\\.?|po(ł|l)\\.?|w\\s*po(ł|l)\\.?|po\\s*po(ł|l)\\.?|rano|wiecz\\.?|noc|w\\s*nocy)/i,\n  any: /^(am|pm|pó(ł|l)noc|o\\s*pó(ł|l)nocy|po(ł|l)udnie|w\\s*po(ł|l)udnie|popo(ł|l)udnie|po\\s*po(ł|l)udniu|rano|wieczór|wieczorem|noc|w\\s*nocy)/i,\n};\nconst parseDayPeriodPatterns = {\n  narrow: {\n    am: /^a$/i,\n    pm: /^p$/i,\n    midnight: /pó(ł|l)n/i,\n    noon: /po(ł|l)/i,\n    morning: /rano/i,\n    afternoon: /po\\s*po(ł|l)/i,\n    evening: /wiecz/i,\n    night: /noc/i,\n  },\n  any: {\n    am: /^am/i,\n    pm: /^pm/i,\n    midnight: /pó(ł|l)n/i,\n    noon: /po(ł|l)/i,\n    morning: /rano/i,\n    afternoon: /po\\s*po(ł|l)/i,\n    evening: /wiecz/i,\n    night: /noc/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 \"./pl/_lib/formatDistance.js\";\nimport { formatLong } from \"./pl/_lib/formatLong.js\";\nimport { formatRelative } from \"./pl/_lib/formatRelative.js\";\nimport { localize } from \"./pl/_lib/localize.js\";\nimport { match } from \"./pl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Polish locale.\n * @language Polish\n * @iso-639-2 pol\n * @author Mateusz Derks [@ertrzyiks](https://github.com/ertrzyiks)\n * @author Just RAG [@justrag](https://github.com/justrag)\n * @author Mikolaj Grzyb [@mikolajgrzyb](https://github.com/mikolajgrzyb)\n * @author Mateusz Tokarski [@mutisz](https://github.com/mutisz)\n */\nexport const pl = {\n  code: \"pl\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default pl;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"menos de um segundo\",\n    other: \"menos de {{count}} segundos\",\n  },\n\n  xSeconds: {\n    one: \"1 segundo\",\n    other: \"{{count}} segundos\",\n  },\n\n  halfAMinute: \"meio minuto\",\n\n  lessThanXMinutes: {\n    one: \"menos de um minuto\",\n    other: \"menos de {{count}} minutos\",\n  },\n\n  xMinutes: {\n    one: \"1 minuto\",\n    other: \"{{count}} minutos\",\n  },\n\n  aboutXHours: {\n    one: \"aproximadamente 1 hora\",\n    other: \"aproximadamente {{count}} horas\",\n  },\n\n  xHours: {\n    one: \"1 hora\",\n    other: \"{{count}} horas\",\n  },\n\n  xDays: {\n    one: \"1 dia\",\n    other: \"{{count}} dias\",\n  },\n\n  aboutXWeeks: {\n    one: \"aproximadamente 1 semana\",\n    other: \"aproximadamente {{count}} semanas\",\n  },\n\n  xWeeks: {\n    one: \"1 semana\",\n    other: \"{{count}} semanas\",\n  },\n\n  aboutXMonths: {\n    one: \"aproximadamente 1 mês\",\n    other: \"aproximadamente {{count}} meses\",\n  },\n\n  xMonths: {\n    one: \"1 mês\",\n    other: \"{{count}} meses\",\n  },\n\n  aboutXYears: {\n    one: \"aproximadamente 1 ano\",\n    other: \"aproximadamente {{count}} anos\",\n  },\n\n  xYears: {\n    one: \"1 ano\",\n    other: \"{{count}} anos\",\n  },\n\n  overXYears: {\n    one: \"mais de 1 ano\",\n    other: \"mais de {{count}} anos\",\n  },\n\n  almostXYears: {\n    one: \"quase 1 ano\",\n    other: \"quase {{count}} anos\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"daqui a \" + result;\n    } else {\n      return \"há \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d 'de' MMMM 'de' y\",\n  long: \"d 'de' MMMM 'de' y\",\n  medium: \"d 'de' MMM 'de' y\",\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'às' {{time}}\",\n  long: \"{{date}} 'às' {{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: (date) => {\n    const weekday = date.getDay();\n    const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n    return \"'\" + last + \"' eeee 'às' p\";\n  },\n  yesterday: \"'ontem às' p\",\n  today: \"'hoje às' p\",\n  tomorrow: \"'amanhã às' p\",\n  nextWeek: \"eeee 'às' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"aC\", \"dC\"],\n  abbreviated: [\"a.C.\", \"d.C.\"],\n  wide: [\"antes de Cristo\", \"depois de Cristo\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n  abbreviated: [\n    \"jan\",\n    \"fev\",\n    \"mar\",\n    \"abr\",\n    \"mai\",\n    \"jun\",\n    \"jul\",\n    \"ago\",\n    \"set\",\n    \"out\",\n    \"nov\",\n    \"dez\",\n  ],\n\n  wide: [\n    \"janeiro\",\n    \"fevereiro\",\n    \"março\",\n    \"abril\",\n    \"maio\",\n    \"junho\",\n    \"julho\",\n    \"agosto\",\n    \"setembro\",\n    \"outubro\",\n    \"novembro\",\n    \"dezembro\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"d\", \"s\", \"t\", \"q\", \"q\", \"s\", \"s\"],\n  short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sáb\"],\n  abbreviated: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sáb\"],\n  wide: [\n    \"domingo\",\n    \"segunda-feira\",\n    \"terça-feira\",\n    \"quarta-feira\",\n    \"quinta-feira\",\n    \"sexta-feira\",\n    \"sábado\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"noite\",\n    night: \"madrugada\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"noite\",\n    night: \"madrugada\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"noite\",\n    night: \"madrugada\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da noite\",\n    night: \"da madrugada\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da noite\",\n    night: \"da madrugada\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da noite\",\n    night: \"da madrugada\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"º\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(º|ª)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ac|dc|a|d)/i,\n  abbreviated: /^(a\\.?\\s?c\\.?|a\\.?\\s?e\\.?\\s?c\\.?|d\\.?\\s?c\\.?|e\\.?\\s?c\\.?)/i,\n  wide: /^(antes de cristo|antes da era comum|depois de cristo|era comum)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ac/i, /^dc/i],\n  wide: [\n    /^(antes de cristo|antes da era comum)/i,\n    /^(depois de cristo|era comum)/i,\n  ],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](º|ª)? trimestre/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|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n  wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/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    /^ab/i,\n    /^mai/i,\n    /^jun/i,\n    /^jul/i,\n    /^ag/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dstq]/i,\n  short: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n  abbreviated: /^(dom|seg|ter|qua|qui|sex|s[áa]b)/i,\n  wide: /^(domingo|segunda-?\\s?feira|terça-?\\s?feira|quarta-?\\s?feira|quinta-?\\s?feira|sexta-?\\s?feira|s[áa]bado)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^s/i, /^t/i, /^q/i, /^q/i, /^s/i, /^s/i],\n  any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[áa]/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(a|p|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,\n  any: /^([ap]\\.?\\s?m\\.?|meia-?\\s?noite|meio-?\\s?dia|(da) (manh[ãa]|tarde|noite|madrugada))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^meia/i,\n    noon: /^meio/i,\n    morning: /manh[ãa]/i,\n    afternoon: /tarde/i,\n    evening: /noite/i,\n    night: /madrugada/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 \"./pt/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt/_lib/formatRelative.js\";\nimport { localize } from \"./pt/_lib/localize.js\";\nimport { match } from \"./pt/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale.\n * @language Portuguese\n * @iso-639-2 por\n * @author Dário Freire [@dfreire](https://github.com/dfreire)\n * @author Adrián de la Rosa [@adrm](https://github.com/adrm)\n */\nexport const pt = {\n  code: \"pt\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 0 /* Sunday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default pt;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"menos de um segundo\",\n    other: \"menos de {{count}} segundos\",\n  },\n\n  xSeconds: {\n    one: \"1 segundo\",\n    other: \"{{count}} segundos\",\n  },\n\n  halfAMinute: \"meio minuto\",\n\n  lessThanXMinutes: {\n    one: \"menos de um minuto\",\n    other: \"menos de {{count}} minutos\",\n  },\n\n  xMinutes: {\n    one: \"1 minuto\",\n    other: \"{{count}} minutos\",\n  },\n\n  aboutXHours: {\n    one: \"cerca de 1 hora\",\n    other: \"cerca de {{count}} horas\",\n  },\n\n  xHours: {\n    one: \"1 hora\",\n    other: \"{{count}} horas\",\n  },\n\n  xDays: {\n    one: \"1 dia\",\n    other: \"{{count}} dias\",\n  },\n\n  aboutXWeeks: {\n    one: \"cerca de 1 semana\",\n    other: \"cerca de {{count}} semanas\",\n  },\n\n  xWeeks: {\n    one: \"1 semana\",\n    other: \"{{count}} semanas\",\n  },\n\n  aboutXMonths: {\n    one: \"cerca de 1 mês\",\n    other: \"cerca de {{count}} meses\",\n  },\n\n  xMonths: {\n    one: \"1 mês\",\n    other: \"{{count}} meses\",\n  },\n\n  aboutXYears: {\n    one: \"cerca de 1 ano\",\n    other: \"cerca de {{count}} anos\",\n  },\n\n  xYears: {\n    one: \"1 ano\",\n    other: \"{{count}} anos\",\n  },\n\n  overXYears: {\n    one: \"mais de 1 ano\",\n    other: \"mais de {{count}} anos\",\n  },\n\n  almostXYears: {\n    one: \"quase 1 ano\",\n    other: \"quase {{count}} anos\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"em \" + result;\n    } else {\n      return \"há \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d 'de' MMMM 'de' y\",\n  long: \"d 'de' MMMM 'de' y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'às' {{time}}\",\n  long: \"{{date}} 'às' {{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: (date) => {\n    const weekday = date.getDay();\n    const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n    return \"'\" + last + \"' eeee 'às' p\";\n  },\n  yesterday: \"'ontem às' p\",\n  today: \"'hoje às' p\",\n  tomorrow: \"'amanhã às' p\",\n  nextWeek: \"eeee 'às' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"AC\", \"DC\"],\n  abbreviated: [\"AC\", \"DC\"],\n  wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n  narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n  abbreviated: [\n    \"jan\",\n    \"fev\",\n    \"mar\",\n    \"abr\",\n    \"mai\",\n    \"jun\",\n    \"jul\",\n    \"ago\",\n    \"set\",\n    \"out\",\n    \"nov\",\n    \"dez\",\n  ],\n\n  wide: [\n    \"janeiro\",\n    \"fevereiro\",\n    \"março\",\n    \"abril\",\n    \"maio\",\n    \"junho\",\n    \"julho\",\n    \"agosto\",\n    \"setembro\",\n    \"outubro\",\n    \"novembro\",\n    \"dezembro\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n  short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n  abbreviated: [\n    \"domingo\",\n    \"segunda\",\n    \"terça\",\n    \"quarta\",\n    \"quinta\",\n    \"sexta\",\n    \"sábado\",\n  ],\n\n  wide: [\n    \"domingo\",\n    \"segunda-feira\",\n    \"terça-feira\",\n    \"quarta-feira\",\n    \"quinta-feira\",\n    \"sexta-feira\",\n    \"sábado\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noite\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noite\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"manhã\",\n    afternoon: \"tarde\",\n    evening: \"tarde\",\n    night: \"noite\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"md\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da tarde\",\n    night: \"da noite\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da tarde\",\n    night: \"da noite\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"meia-noite\",\n    noon: \"meio-dia\",\n    morning: \"da manhã\",\n    afternoon: \"da tarde\",\n    evening: \"da tarde\",\n    night: \"da noite\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n\n  if (options?.unit === \"week\") {\n    return number + \"ª\";\n  }\n  return number + \"º\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(ac|dc|a|d)/i,\n  abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n  wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ac/i, /^dc/i],\n  wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmajsond]/i,\n  abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n  wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/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    /^fev/i,\n    /^mar/i,\n    /^abr/i,\n    /^mai/i,\n    /^jun/i,\n    /^jul/i,\n    /^ago/i,\n    /^set/i,\n    /^out/i,\n    /^nov/i,\n    /^dez/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n  short: /^(dom|[23456]ª?|s[aá]b)/i,\n  abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n  wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n  short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n  narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n  any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n  any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mn|^meia[-\\s]noite/i,\n    noon: /^md|^meio[-\\s]dia/i,\n    morning: /manhã/i,\n    afternoon: /tarde/i,\n    evening: /tarde/i,\n    night: /noite/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 \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n  code: \"pt-BR\",\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 ptBR;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"mai puțin de o secundă\",\n    other: \"mai puțin de {{count}} secunde\",\n  },\n\n  xSeconds: {\n    one: \"1 secundă\",\n    other: \"{{count}} secunde\",\n  },\n\n  halfAMinute: \"jumătate de minut\",\n\n  lessThanXMinutes: {\n    one: \"mai puțin de un minut\",\n    other: \"mai puțin de {{count}} minute\",\n  },\n\n  xMinutes: {\n    one: \"1 minut\",\n    other: \"{{count}} minute\",\n  },\n\n  aboutXHours: {\n    one: \"circa 1 oră\",\n    other: \"circa {{count}} ore\",\n  },\n\n  xHours: {\n    one: \"1 oră\",\n    other: \"{{count}} ore\",\n  },\n\n  xDays: {\n    one: \"1 zi\",\n    other: \"{{count}} zile\",\n  },\n\n  aboutXWeeks: {\n    one: \"circa o săptămână\",\n    other: \"circa {{count}} săptămâni\",\n  },\n\n  xWeeks: {\n    one: \"1 săptămână\",\n    other: \"{{count}} săptămâni\",\n  },\n\n  aboutXMonths: {\n    one: \"circa 1 lună\",\n    other: \"circa {{count}} luni\",\n  },\n\n  xMonths: {\n    one: \"1 lună\",\n    other: \"{{count}} luni\",\n  },\n\n  aboutXYears: {\n    one: \"circa 1 an\",\n    other: \"circa {{count}} ani\",\n  },\n\n  xYears: {\n    one: \"1 an\",\n    other: \"{{count}} ani\",\n  },\n\n  overXYears: {\n    one: \"peste 1 an\",\n    other: \"peste {{count}} ani\",\n  },\n\n  almostXYears: {\n    one: \"aproape 1 an\",\n    other: \"aproape {{count}} ani\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"în \" + result;\n    } else {\n      return result + \" în urmă\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM yyyy\",\n  long: \"d MMMM yyyy\",\n  medium: \"d MMM yyyy\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'la' {{time}}\",\n  long: \"{{date}} 'la' {{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: \"eeee 'trecută la' p\",\n  yesterday: \"'ieri la' p\",\n  today: \"'astăzi la' p\",\n  tomorrow: \"'mâine la' p\",\n  nextWeek: \"eeee 'viitoare la' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"Î\", \"D\"],\n  abbreviated: [\"Î.d.C.\", \"D.C.\"],\n  wide: [\"Înainte de Cristos\", \"După Cristos\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n  wide: [\n    \"primul trimestru\",\n    \"al doilea trimestru\",\n    \"al treilea trimestru\",\n    \"al patrulea trimestru\",\n  ],\n};\n\nconst monthValues = {\n  narrow: [\"I\", \"F\", \"M\", \"A\", \"M\", \"I\", \"I\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"ian\",\n    \"feb\",\n    \"mar\",\n    \"apr\",\n    \"mai\",\n    \"iun\",\n    \"iul\",\n    \"aug\",\n    \"sep\",\n    \"oct\",\n    \"noi\",\n    \"dec\",\n  ],\n\n  wide: [\n    \"ianuarie\",\n    \"februarie\",\n    \"martie\",\n    \"aprilie\",\n    \"mai\",\n    \"iunie\",\n    \"iulie\",\n    \"august\",\n    \"septembrie\",\n    \"octombrie\",\n    \"noiembrie\",\n    \"decembrie\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"d\", \"l\", \"m\", \"m\", \"j\", \"v\", \"s\"],\n  short: [\"du\", \"lu\", \"ma\", \"mi\", \"jo\", \"vi\", \"sâ\"],\n  abbreviated: [\"dum\", \"lun\", \"mar\", \"mie\", \"joi\", \"vin\", \"sâm\"],\n  wide: [\"duminică\", \"luni\", \"marți\", \"miercuri\", \"joi\", \"vineri\", \"sâmbătă\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"ami\",\n    morning: \"dim\",\n    afternoon: \"da\",\n    evening: \"s\",\n    night: \"n\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"miezul nopții\",\n    noon: \"amiază\",\n    morning: \"dimineață\",\n    afternoon: \"după-amiază\",\n    evening: \"seară\",\n    night: \"noapte\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"miezul nopții\",\n    noon: \"amiază\",\n    morning: \"dimineață\",\n    afternoon: \"după-amiază\",\n    evening: \"seară\",\n    night: \"noapte\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"mn\",\n    noon: \"amiază\",\n    morning: \"dimineață\",\n    afternoon: \"după-amiază\",\n    evening: \"seară\",\n    night: \"noapte\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"miezul nopții\",\n    noon: \"amiază\",\n    morning: \"dimineață\",\n    afternoon: \"după-amiază\",\n    evening: \"seară\",\n    night: \"noapte\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"miezul nopții\",\n    noon: \"amiază\",\n    morning: \"dimineață\",\n    afternoon: \"după-amiază\",\n    evening: \"seară\",\n    night: \"noapte\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(Î|D)/i,\n  abbreviated:\n    /^(Î\\.?\\s?d\\.?\\s?C\\.?|Î\\.?\\s?e\\.?\\s?n\\.?|D\\.?\\s?C\\.?|e\\.?\\s?n\\.?)/i,\n  wide: /^(Înainte de Cristos|Înaintea erei noastre|După Cristos|Era noastră)/i,\n};\nconst parseEraPatterns = {\n  any: [/^ÎC/i, /^DC/i],\n  wide: [\n    /^(Înainte de Cristos|Înaintea erei noastre)/i,\n    /^(După Cristos|Era noastră)/i,\n  ],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^T[1234]/i,\n  wide: /^trimestrul [1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[ifmaasond]/i,\n  abbreviated: /^(ian|feb|mar|apr|mai|iun|iul|aug|sep|oct|noi|dec)/i,\n  wide: /^(ianuarie|februarie|martie|aprilie|mai|iunie|iulie|august|septembrie|octombrie|noiembrie|decembrie)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^i/i,\n    /^f/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^i/i,\n    /^i/i,\n    /^a/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ia/i,\n    /^f/i,\n    /^mar/i,\n    /^ap/i,\n    /^mai/i,\n    /^iun/i,\n    /^iul/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dlmjvs]/i,\n  short: /^(d|l|ma|mi|j|v|s)/i,\n  abbreviated: /^(dum|lun|mar|mie|jo|vi|sâ)/i,\n  wide: /^(duminica|luni|marţi|miercuri|joi|vineri|sâmbătă)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^l/i, /^m/i, /^m/i, /^j/i, /^v/i, /^s/i],\n  any: [/^d/i, /^l/i, /^ma/i, /^mi/i, /^j/i, /^v/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|mn|a|(dimineaţa|după-amiaza|seara|noaptea))/i,\n  any: /^([ap]\\.?\\s?m\\.?|miezul nopții|amiaza|(dimineaţa|după-amiaza|seara|noaptea))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^mn/i,\n    noon: /amiaza/i,\n    morning: /dimineaţa/i,\n    afternoon: /după-amiaza/i,\n    evening: /seara/i,\n    night: /noaptea/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 \"./ro/_lib/formatDistance.js\";\nimport { formatLong } from \"./ro/_lib/formatLong.js\";\nimport { formatRelative } from \"./ro/_lib/formatRelative.js\";\nimport { localize } from \"./ro/_lib/localize.js\";\nimport { match } from \"./ro/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Romanian locale.\n * @language Romanian\n * @iso-639-2 ron\n * @author Sergiu Munteanu [@jsergiu](https://github.com/jsergiu)\n * @author Adrian Ocneanu [@aocneanu](https://github.com/aocneanu)\n * @author Mihai Ocneanu [@gandesc](https://github.com/gandesc)\n */\nexport const ro = {\n  code: \"ro\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ro;\n","function declension(scheme, count) {\n  // scheme for count=1 exists\n  if (scheme.one !== undefined && count === 1) {\n    return scheme.one;\n  }\n\n  const rem10 = count % 10;\n  const rem100 = count % 100;\n\n  // 1, 21, 31, ...\n  if (rem10 === 1 && rem100 !== 11) {\n    return scheme.singularNominative.replace(\"{{count}}\", String(count));\n\n    // 2, 3, 4, 22, 23, 24, 32 ...\n  } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n    return scheme.singularGenitive.replace(\"{{count}}\", String(count));\n\n    // 5, 6, 7, 8, 9, 10, 11, ...\n  } else {\n    return scheme.pluralGenitive.replace(\"{{count}}\", String(count));\n  }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n  return (count, options) => {\n    if (options?.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        if (scheme.future) {\n          return declension(scheme.future, count);\n        } else {\n          return \"через \" + declension(scheme.regular, count);\n        }\n      } else {\n        if (scheme.past) {\n          return declension(scheme.past, count);\n        } else {\n          return declension(scheme.regular, count) + \" назад\";\n        }\n      }\n    } else {\n      return declension(scheme.regular, count);\n    }\n  };\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: buildLocalizeTokenFn({\n    regular: {\n      one: \"меньше секунды\",\n      singularNominative: \"меньше {{count}} секунды\",\n      singularGenitive: \"меньше {{count}} секунд\",\n      pluralGenitive: \"меньше {{count}} секунд\",\n    },\n    future: {\n      one: \"меньше, чем через секунду\",\n      singularNominative: \"меньше, чем через {{count}} секунду\",\n      singularGenitive: \"меньше, чем через {{count}} секунды\",\n      pluralGenitive: \"меньше, чем через {{count}} секунд\",\n    },\n  }),\n\n  xSeconds: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} секунда\",\n      singularGenitive: \"{{count}} секунды\",\n      pluralGenitive: \"{{count}} секунд\",\n    },\n    past: {\n      singularNominative: \"{{count}} секунду назад\",\n      singularGenitive: \"{{count}} секунды назад\",\n      pluralGenitive: \"{{count}} секунд назад\",\n    },\n    future: {\n      singularNominative: \"через {{count}} секунду\",\n      singularGenitive: \"через {{count}} секунды\",\n      pluralGenitive: \"через {{count}} секунд\",\n    },\n  }),\n\n  halfAMinute: (_count, options) => {\n    if (options?.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        return \"через полминуты\";\n      } else {\n        return \"полминуты назад\";\n      }\n    }\n\n    return \"полминуты\";\n  },\n\n  lessThanXMinutes: buildLocalizeTokenFn({\n    regular: {\n      one: \"меньше минуты\",\n      singularNominative: \"меньше {{count}} минуты\",\n      singularGenitive: \"меньше {{count}} минут\",\n      pluralGenitive: \"меньше {{count}} минут\",\n    },\n    future: {\n      one: \"меньше, чем через минуту\",\n      singularNominative: \"меньше, чем через {{count}} минуту\",\n      singularGenitive: \"меньше, чем через {{count}} минуты\",\n      pluralGenitive: \"меньше, чем через {{count}} минут\",\n    },\n  }),\n\n  xMinutes: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} минута\",\n      singularGenitive: \"{{count}} минуты\",\n      pluralGenitive: \"{{count}} минут\",\n    },\n    past: {\n      singularNominative: \"{{count}} минуту назад\",\n      singularGenitive: \"{{count}} минуты назад\",\n      pluralGenitive: \"{{count}} минут назад\",\n    },\n    future: {\n      singularNominative: \"через {{count}} минуту\",\n      singularGenitive: \"через {{count}} минуты\",\n      pluralGenitive: \"через {{count}} минут\",\n    },\n  }),\n\n  aboutXHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"около {{count}} часа\",\n      singularGenitive: \"около {{count}} часов\",\n      pluralGenitive: \"около {{count}} часов\",\n    },\n    future: {\n      singularNominative: \"приблизительно через {{count}} час\",\n      singularGenitive: \"приблизительно через {{count}} часа\",\n      pluralGenitive: \"приблизительно через {{count}} часов\",\n    },\n  }),\n\n  xHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} час\",\n      singularGenitive: \"{{count}} часа\",\n      pluralGenitive: \"{{count}} часов\",\n    },\n  }),\n\n  xDays: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} день\",\n      singularGenitive: \"{{count}} дня\",\n      pluralGenitive: \"{{count}} дней\",\n    },\n  }),\n\n  aboutXWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"около {{count}} недели\",\n      singularGenitive: \"около {{count}} недель\",\n      pluralGenitive: \"около {{count}} недель\",\n    },\n    future: {\n      singularNominative: \"приблизительно через {{count}} неделю\",\n      singularGenitive: \"приблизительно через {{count}} недели\",\n      pluralGenitive: \"приблизительно через {{count}} недель\",\n    },\n  }),\n\n  xWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} неделя\",\n      singularGenitive: \"{{count}} недели\",\n      pluralGenitive: \"{{count}} недель\",\n    },\n  }),\n\n  aboutXMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"около {{count}} месяца\",\n      singularGenitive: \"около {{count}} месяцев\",\n      pluralGenitive: \"около {{count}} месяцев\",\n    },\n    future: {\n      singularNominative: \"приблизительно через {{count}} месяц\",\n      singularGenitive: \"приблизительно через {{count}} месяца\",\n      pluralGenitive: \"приблизительно через {{count}} месяцев\",\n    },\n  }),\n\n  xMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} месяц\",\n      singularGenitive: \"{{count}} месяца\",\n      pluralGenitive: \"{{count}} месяцев\",\n    },\n  }),\n\n  aboutXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"около {{count}} года\",\n      singularGenitive: \"около {{count}} лет\",\n      pluralGenitive: \"около {{count}} лет\",\n    },\n    future: {\n      singularNominative: \"приблизительно через {{count}} год\",\n      singularGenitive: \"приблизительно через {{count}} года\",\n      pluralGenitive: \"приблизительно через {{count}} лет\",\n    },\n  }),\n\n  xYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} год\",\n      singularGenitive: \"{{count}} года\",\n      pluralGenitive: \"{{count}} лет\",\n    },\n  }),\n\n  overXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"больше {{count}} года\",\n      singularGenitive: \"больше {{count}} лет\",\n      pluralGenitive: \"больше {{count}} лет\",\n    },\n    future: {\n      singularNominative: \"больше, чем через {{count}} год\",\n      singularGenitive: \"больше, чем через {{count}} года\",\n      pluralGenitive: \"больше, чем через {{count}} лет\",\n    },\n  }),\n\n  almostXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"почти {{count}} год\",\n      singularGenitive: \"почти {{count}} года\",\n      pluralGenitive: \"почти {{count}} лет\",\n    },\n    future: {\n      singularNominative: \"почти через {{count}} год\",\n      singularGenitive: \"почти через {{count}} года\",\n      pluralGenitive: \"почти через {{count}} лет\",\n    },\n  }),\n};\n\nexport const formatDistance = (token, count, options) => {\n  return formatDistanceLocale[token](count, options);\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d MMMM y 'г.'\",\n  long: \"d MMMM y 'г.'\",\n  medium: \"d MMM y 'г.'\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nconst accusativeWeekdays = [\n  \"воскресенье\",\n  \"понедельник\",\n  \"вторник\",\n  \"среду\",\n  \"четверг\",\n  \"пятницу\",\n  \"субботу\",\n];\n\nfunction lastWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n      return \"'в прошлое \" + weekday + \" в' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'в прошлый \" + weekday + \" в' p\";\n    case 3:\n    case 5:\n    case 6:\n      return \"'в прошлую \" + weekday + \" в' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  if (day === 2 /* Tue */) {\n    return \"'во \" + weekday + \" в' p\";\n  } else {\n    return \"'в \" + weekday + \" в' p\";\n  }\n}\n\nfunction nextWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n      return \"'в следующее \" + weekday + \" в' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'в следующий \" + weekday + \" в' p\";\n    case 3:\n    case 5:\n    case 6:\n      return \"'в следующую \" + weekday + \" в' p\";\n  }\n}\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return lastWeek(day);\n    }\n  },\n  yesterday: \"'вчера в' p\",\n  today: \"'сегодня в' p\",\n  tomorrow: \"'завтра в' p\",\n  nextWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return nextWeek(day);\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"до н.э.\", \"н.э.\"],\n  abbreviated: [\"до н. э.\", \"н. э.\"],\n  wide: [\"до нашей эры\", \"нашей эры\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-й кв.\", \"2-й кв.\", \"3-й кв.\", \"4-й кв.\"],\n  wide: [\"1-й квартал\", \"2-й квартал\", \"3-й квартал\", \"4-й квартал\"],\n};\n\nconst monthValues = {\n  narrow: [\"Я\", \"Ф\", \"М\", \"А\", \"М\", \"И\", \"И\", \"А\", \"С\", \"О\", \"Н\", \"Д\"],\n  abbreviated: [\n    \"янв.\",\n    \"фев.\",\n    \"март\",\n    \"апр.\",\n    \"май\",\n    \"июнь\",\n    \"июль\",\n    \"авг.\",\n    \"сент.\",\n    \"окт.\",\n    \"нояб.\",\n    \"дек.\",\n  ],\n\n  wide: [\n    \"январь\",\n    \"февраль\",\n    \"март\",\n    \"апрель\",\n    \"май\",\n    \"июнь\",\n    \"июль\",\n    \"август\",\n    \"сентябрь\",\n    \"октябрь\",\n    \"ноябрь\",\n    \"декабрь\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"Я\", \"Ф\", \"М\", \"А\", \"М\", \"И\", \"И\", \"А\", \"С\", \"О\", \"Н\", \"Д\"],\n  abbreviated: [\n    \"янв.\",\n    \"фев.\",\n    \"мар.\",\n    \"апр.\",\n    \"мая\",\n    \"июн.\",\n    \"июл.\",\n    \"авг.\",\n    \"сент.\",\n    \"окт.\",\n    \"нояб.\",\n    \"дек.\",\n  ],\n\n  wide: [\n    \"января\",\n    \"февраля\",\n    \"марта\",\n    \"апреля\",\n    \"мая\",\n    \"июня\",\n    \"июля\",\n    \"августа\",\n    \"сентября\",\n    \"октября\",\n    \"ноября\",\n    \"декабря\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"В\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"вс\", \"пн\", \"вт\", \"ср\", \"чт\", \"пт\", \"сб\"],\n  abbreviated: [\"вск\", \"пнд\", \"втр\", \"срд\", \"чтв\", \"птн\", \"суб\"],\n  wide: [\n    \"воскресенье\",\n    \"понедельник\",\n    \"вторник\",\n    \"среда\",\n    \"четверг\",\n    \"пятница\",\n    \"суббота\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полн.\",\n    noon: \"полд.\",\n    morning: \"утро\",\n    afternoon: \"день\",\n    evening: \"веч.\",\n    night: \"ночь\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полн.\",\n    noon: \"полд.\",\n    morning: \"утро\",\n    afternoon: \"день\",\n    evening: \"веч.\",\n    night: \"ночь\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полночь\",\n    noon: \"полдень\",\n    morning: \"утро\",\n    afternoon: \"день\",\n    evening: \"вечер\",\n    night: \"ночь\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полн.\",\n    noon: \"полд.\",\n    morning: \"утра\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночи\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полн.\",\n    noon: \"полд.\",\n    morning: \"утра\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночи\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"полночь\",\n    noon: \"полдень\",\n    morning: \"утра\",\n    afternoon: \"дня\",\n    evening: \"вечера\",\n    night: \"ночи\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = options?.unit;\n\n  let suffix;\n  if (unit === \"date\") {\n    suffix = \"-е\";\n  } else if (unit === \"week\" || unit === \"minute\" || unit === \"second\") {\n    suffix = \"-я\";\n  } else {\n    suffix = \"-й\";\n  }\n\n  return number + suffix;\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"any\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?(е|я|й|ое|ье|ая|ья|ый|ой|ий|ый))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((до )?н\\.?\\s?э\\.?)/i,\n  abbreviated: /^((до )?н\\.?\\s?э\\.?)/i,\n  wide: /^(до нашей эры|нашей эры|наша эра)/i,\n};\nconst parseEraPatterns = {\n  any: [/^д/i, /^н/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?[ыои]?й?)? кв.?/i,\n  wide: /^[1234](-?[ыои]?й?)? квартал/i,\n};\n\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[яфмаисонд]/i,\n  abbreviated:\n    /^(янв|фев|март?|апр|ма[йя]|июн[ья]?|июл[ья]?|авг|сент?|окт|нояб?|дек)\\.?/i,\n  wide: /^(январ[ья]|феврал[ья]|марта?|апрел[ья]|ма[йя]|июн[ья]|июл[ья]|августа?|сентябр[ья]|октябр[ья]|октябр[ья]|ноябр[ья]|декабр[ья])/i,\n};\n\nconst parseMonthPatterns = {\n  narrow: [\n    /^я/i,\n    /^ф/i,\n    /^м/i,\n    /^а/i,\n    /^м/i,\n    /^и/i,\n    /^и/i,\n    /^а/i,\n    /^с/i,\n    /^о/i,\n    /^н/i,\n    /^я/i,\n  ],\n\n  any: [\n    /^я/i,\n    /^ф/i,\n    /^мар/i,\n    /^ап/i,\n    /^ма[йя]/i,\n    /^июн/i,\n    /^июл/i,\n    /^ав/i,\n    /^с/i,\n    /^о/i,\n    /^н/i,\n    /^д/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[впсч]/i,\n  short: /^(вс|во|пн|по|вт|ср|чт|че|пт|пя|сб|су)\\.?/i,\n  abbreviated: /^(вск|вос|пнд|пон|втр|вто|срд|сре|чтв|чет|птн|пят|суб).?/i,\n  wide: /^(воскресень[ея]|понедельника?|вторника?|сред[аы]|четверга?|пятниц[аы]|суббот[аы])/i,\n};\n\nconst parseDayPatterns = {\n  narrow: [/^в/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n  any: [/^в[ос]/i, /^п[он]/i, /^в/i, /^ср/i, /^ч/i, /^п[ят]/i, /^с[уб]/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^([дп]п|полн\\.?|полд\\.?|утр[оа]|день|дня|веч\\.?|ноч[ьи])/i,\n  abbreviated: /^([дп]п|полн\\.?|полд\\.?|утр[оа]|день|дня|веч\\.?|ноч[ьи])/i,\n  wide: /^([дп]п|полночь|полдень|утр[оа]|день|дня|вечера?|ноч[ьи])/i,\n};\n\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^дп/i,\n    pm: /^пп/i,\n    midnight: /^полн/i,\n    noon: /^полд/i,\n    morning: /^у/i,\n    afternoon: /^д[ен]/i,\n    evening: /^в/i,\n    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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./ru/_lib/formatDistance.js\";\nimport { formatLong } from \"./ru/_lib/formatLong.js\";\nimport { formatRelative } from \"./ru/_lib/formatRelative.js\";\nimport { localize } from \"./ru/_lib/localize.js\";\nimport { match } from \"./ru/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Russian locale.\n * @language Russian\n * @iso-639-2 rus\n * @author Sasha Koss [@kossnocorp](https://github.com/kossnocorp)\n * @author Lesha Koss [@leshakoss](https://github.com/leshakoss)\n */\nexport const ru = {\n  code: \"ru\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ru;\n","function declensionGroup(scheme, count) {\n  if (count === 1 && scheme.one) {\n    return scheme.one;\n  }\n\n  if (count >= 2 && count <= 4 && scheme.twoFour) {\n    return scheme.twoFour;\n  }\n\n  // if count === null || count === 0 || count >= 5\n  return scheme.other;\n}\n\nfunction declension(scheme, count, time) {\n  const group = declensionGroup(scheme, count);\n  const finalText = group[time];\n  return finalText.replace(\"{{count}}\", String(count));\n}\n\nfunction extractPreposition(token) {\n  const result = [\"lessThan\", \"about\", \"over\", \"almost\"].filter(\n    function (preposition) {\n      return !!token.match(new RegExp(\"^\" + preposition));\n    },\n  );\n\n  return result[0];\n}\n\nfunction prefixPreposition(preposition) {\n  let translation = \"\";\n\n  if (preposition === \"almost\") {\n    translation = \"takmer\";\n  }\n\n  if (preposition === \"about\") {\n    translation = \"približne\";\n  }\n\n  return translation.length > 0 ? translation + \" \" : \"\";\n}\n\nfunction suffixPreposition(preposition) {\n  let translation = \"\";\n\n  if (preposition === \"lessThan\") {\n    translation = \"menej než\";\n  }\n\n  if (preposition === \"over\") {\n    translation = \"viac než\";\n  }\n\n  return translation.length > 0 ? translation + \" \" : \"\";\n}\n\nfunction lowercaseFirstLetter(string) {\n  return string.charAt(0).toLowerCase() + string.slice(1);\n}\n\nconst formatDistanceLocale = {\n  xSeconds: {\n    one: {\n      present: \"sekunda\",\n      past: \"sekundou\",\n      future: \"sekundu\",\n    },\n    twoFour: {\n      present: \"{{count}} sekundy\",\n      past: \"{{count}} sekundami\",\n      future: \"{{count}} sekundy\",\n    },\n    other: {\n      present: \"{{count}} sekúnd\",\n      past: \"{{count}} sekundami\",\n      future: \"{{count}} sekúnd\",\n    },\n  },\n\n  halfAMinute: {\n    other: {\n      present: \"pol minúty\",\n      past: \"pol minútou\",\n      future: \"pol minúty\",\n    },\n  },\n\n  xMinutes: {\n    one: {\n      present: \"minúta\",\n      past: \"minútou\",\n      future: \"minútu\",\n    },\n    twoFour: {\n      present: \"{{count}} minúty\",\n      past: \"{{count}} minútami\",\n      future: \"{{count}} minúty\",\n    },\n    other: {\n      present: \"{{count}} minút\",\n      past: \"{{count}} minútami\",\n      future: \"{{count}} minút\",\n    },\n  },\n\n  xHours: {\n    one: {\n      present: \"hodina\",\n      past: \"hodinou\",\n      future: \"hodinu\",\n    },\n    twoFour: {\n      present: \"{{count}} hodiny\",\n      past: \"{{count}} hodinami\",\n      future: \"{{count}} hodiny\",\n    },\n    other: {\n      present: \"{{count}} hodín\",\n      past: \"{{count}} hodinami\",\n      future: \"{{count}} hodín\",\n    },\n  },\n\n  xDays: {\n    one: {\n      present: \"deň\",\n      past: \"dňom\",\n      future: \"deň\",\n    },\n    twoFour: {\n      present: \"{{count}} dni\",\n      past: \"{{count}} dňami\",\n      future: \"{{count}} dni\",\n    },\n    other: {\n      present: \"{{count}} dní\",\n      past: \"{{count}} dňami\",\n      future: \"{{count}} dní\",\n    },\n  },\n\n  xWeeks: {\n    one: {\n      present: \"týždeň\",\n      past: \"týždňom\",\n      future: \"týždeň\",\n    },\n    twoFour: {\n      present: \"{{count}} týždne\",\n      past: \"{{count}} týždňami\",\n      future: \"{{count}} týždne\",\n    },\n    other: {\n      present: \"{{count}} týždňov\",\n      past: \"{{count}} týždňami\",\n      future: \"{{count}} týždňov\",\n    },\n  },\n\n  xMonths: {\n    one: {\n      present: \"mesiac\",\n      past: \"mesiacom\",\n      future: \"mesiac\",\n    },\n    twoFour: {\n      present: \"{{count}} mesiace\",\n      past: \"{{count}} mesiacmi\",\n      future: \"{{count}} mesiace\",\n    },\n    other: {\n      present: \"{{count}} mesiacov\",\n      past: \"{{count}} mesiacmi\",\n      future: \"{{count}} mesiacov\",\n    },\n  },\n\n  xYears: {\n    one: {\n      present: \"rok\",\n      past: \"rokom\",\n      future: \"rok\",\n    },\n    twoFour: {\n      present: \"{{count}} roky\",\n      past: \"{{count}} rokmi\",\n      future: \"{{count}} roky\",\n    },\n    other: {\n      present: \"{{count}} rokov\",\n      past: \"{{count}} rokmi\",\n      future: \"{{count}} rokov\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const preposition = extractPreposition(token) || \"\";\n  const key = lowercaseFirstLetter(token.substring(preposition.length));\n  const scheme = formatDistanceLocale[key];\n\n  if (!options?.addSuffix) {\n    return (\n      prefixPreposition(preposition) +\n      suffixPreposition(preposition) +\n      declension(scheme, count, \"present\")\n    );\n  }\n\n  if (options.comparison && options.comparison > 0) {\n    return (\n      prefixPreposition(preposition) +\n      \"o \" +\n      suffixPreposition(preposition) +\n      declension(scheme, count, \"future\")\n    );\n  } else {\n    return (\n      prefixPreposition(preposition) +\n      \"pred \" +\n      suffixPreposition(preposition) +\n      declension(scheme, count, \"past\")\n    );\n  }\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1986\nconst dateFormats = {\n  full: \"EEEE d. MMMM y\",\n  long: \"d. MMMM y\",\n  medium: \"d. M. y\",\n  short: \"d. M. y\",\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#2149\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1994\nconst dateTimeFormats = {\n  full: \"{{date}}, {{time}}\",\n  long: \"{{date}}, {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html?hide#1308\nconst accusativeWeekdays = [\n  \"nedeľu\",\n  \"pondelok\",\n  \"utorok\",\n  \"stredu\",\n  \"štvrtok\",\n  \"piatok\",\n  \"sobotu\",\n];\n\nfunction lastWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0: /* Sun */\n    case 3: /* Wed */\n    case 6 /* Sat */:\n      return \"'minulú \" + weekday + \" o' p\";\n    default:\n      return \"'minulý' eeee 'o' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  if (day === 4 /* Thu */) {\n    return \"'vo' eeee 'o' p\";\n  } else {\n    return \"'v \" + weekday + \" o' p\";\n  }\n}\n\nfunction nextWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0: /* Sun */\n    case 4: /* Wed */\n    case 6 /* Sat */:\n      return \"'budúcu \" + weekday + \" o' p\";\n    default:\n      return \"'budúci' eeee 'o' p\";\n  }\n}\n\nconst formatRelativeLocale = {\n  lastWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return lastWeek(day);\n    }\n  },\n  yesterday: \"'včera o' p\",\n  today: \"'dnes o' p\",\n  tomorrow: \"'zajtra o' p\",\n  nextWeek: (date, baseDate, options) => {\n    const day = date.getDay();\n    if (isSameWeek(date, baseDate, options)) {\n      return thisWeek(day);\n    } else {\n      return nextWeek(day);\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1772\nconst eraValues = {\n  narrow: [\"pred Kr.\", \"po Kr.\"],\n  abbreviated: [\"pred Kr.\", \"po Kr.\"],\n  wide: [\"pred Kristom\", \"po Kristovi\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1780\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1. štvrťrok\", \"2. štvrťrok\", \"3. štvrťrok\", \"4. štvrťrok\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1804\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    \"máj\",\n    \"jún\",\n    \"júl\",\n    \"aug\",\n    \"sep\",\n    \"okt\",\n    \"nov\",\n    \"dec\",\n  ],\n\n  wide: [\n    \"január\",\n    \"február\",\n    \"marec\",\n    \"apríl\",\n    \"máj\",\n    \"jún\",\n    \"júl\",\n    \"august\",\n    \"september\",\n    \"október\",\n    \"november\",\n    \"december\",\n  ],\n};\nconst formattingMonthValues = {\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    \"máj\",\n    \"jún\",\n    \"júl\",\n    \"aug\",\n    \"sep\",\n    \"okt\",\n    \"nov\",\n    \"dec\",\n  ],\n\n  wide: [\n    \"januára\",\n    \"februára\",\n    \"marca\",\n    \"apríla\",\n    \"mája\",\n    \"júna\",\n    \"júla\",\n    \"augusta\",\n    \"septembra\",\n    \"októbra\",\n    \"novembra\",\n    \"decembra\",\n  ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1876\nconst dayValues = {\n  narrow: [\"n\", \"p\", \"u\", \"s\", \"š\", \"p\", \"s\"],\n  short: [\"ne\", \"po\", \"ut\", \"st\", \"št\", \"pi\", \"so\"],\n  abbreviated: [\"ne\", \"po\", \"ut\", \"st\", \"št\", \"pi\", \"so\"],\n  wide: [\n    \"nedeľa\",\n    \"pondelok\",\n    \"utorok\",\n    \"streda\",\n    \"štvrtok\",\n    \"piatok\",\n    \"sobota\",\n  ],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sk.html#1932\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"poln.\",\n    noon: \"pol.\",\n    morning: \"ráno\",\n    afternoon: \"pop.\",\n    evening: \"več.\",\n    night: \"noc\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"poln.\",\n    noon: \"pol.\",\n    morning: \"ráno\",\n    afternoon: \"popol.\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"polnoc\",\n    noon: \"poludnie\",\n    morning: \"ráno\",\n    afternoon: \"popoludnie\",\n    evening: \"večer\",\n    night: \"noc\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"o poln.\",\n    noon: \"nap.\",\n    morning: \"ráno\",\n    afternoon: \"pop.\",\n    evening: \"več.\",\n    night: \"v n.\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"o poln.\",\n    noon: \"napol.\",\n    morning: \"ráno\",\n    afternoon: \"popol.\",\n    evening: \"večer\",\n    night: \"v noci\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"o polnoci\",\n    noon: \"napoludnie\",\n    morning: \"ráno\",\n    afternoon: \"popoludní\",\n    evening: \"večer\",\n    night: \"v noci\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\.?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n  abbreviated: /^(pred Kr\\.|pred n\\. l\\.|po Kr\\.|n\\. l\\.)/i,\n  wide: /^(pred Kristom|pred na[šs][íi]m letopo[čc]tom|po Kristovi|n[áa][šs]ho letopo[čc]tu)/i,\n};\nconst parseEraPatterns = {\n  any: [/^pr/i, /^(po|n)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234]\\. [šs]tvr[ťt]rok/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|m[áa]j|j[úu]n|j[úu]l|aug|sep|okt|nov|dec)/i,\n  wide: /^(janu[áa]ra?|febru[áa]ra?|(marec|marca)|apr[íi]la?|m[áa]ja?|j[úu]na?|j[úu]la?|augusta?|(september|septembra)|(okt[óo]ber|okt[óo]bra)|(november|novembra)|(december|decembra))/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    /^m[áa]j/i,\n    /^j[úu]n/i,\n    /^j[úu]l/i,\n    /^au/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[npusšp]/i,\n  short: /^(ne|po|ut|st|št|pi|so)/i,\n  abbreviated: /^(ne|po|ut|st|št|pi|so)/i,\n  wide: /^(nede[ľl]a|pondelok|utorok|streda|[šs]tvrtok|piatok|sobota])/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^n/i, /^p/i, /^u/i, /^s/i, /^š/i, /^p/i, /^s/i],\n  any: [/^n/i, /^po/i, /^u/i, /^st/i, /^(št|stv)/i, /^pi/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(am|pm|(o )?poln\\.?|(nap\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]\\.?|(v n\\.?|noc))/i,\n  abbreviated:\n    /^(am|pm|(o )?poln\\.?|(napol\\.?|pol\\.?)|r[áa]no|pop\\.?|ve[čc]er|(v )?noci?)/i,\n  any: /^(am|pm|(o )?polnoci?|(na)?poludnie|r[áa]no|popoludn(ie|í|i)|ve[čc]er|(v )?noci?)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^am/i,\n    pm: /^pm/i,\n    midnight: /poln/i,\n    noon: /^(nap|(na)?pol(\\.|u))/i,\n    morning: /^r[áa]no/i,\n    afternoon: /^pop/i,\n    evening: /^ve[čc]/i,\n    night: /^(noc|v n\\.)/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 \"./sk/_lib/formatDistance.js\";\nimport { formatLong } from \"./sk/_lib/formatLong.js\";\nimport { formatRelative } from \"./sk/_lib/formatRelative.js\";\nimport { localize } from \"./sk/_lib/localize.js\";\nimport { match } from \"./sk/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Slovak locale.\n * @language Slovak\n * @iso-639-2 slk\n * @author Marek Suscak [@mareksuscak](https://github.com/mareksuscak)\n */\nexport const sk = {\n  code: \"sk\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default sk;\n","function isPluralType(val) {\n  return val.one !== undefined;\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    present: {\n      one: \"manj kot {{count}} sekunda\",\n      two: \"manj kot {{count}} sekundi\",\n      few: \"manj kot {{count}} sekunde\",\n      other: \"manj kot {{count}} sekund\",\n    },\n    past: {\n      one: \"manj kot {{count}} sekundo\",\n      two: \"manj kot {{count}} sekundama\",\n      few: \"manj kot {{count}} sekundami\",\n      other: \"manj kot {{count}} sekundami\",\n    },\n    future: {\n      one: \"manj kot {{count}} sekundo\",\n      two: \"manj kot {{count}} sekundi\",\n      few: \"manj kot {{count}} sekunde\",\n      other: \"manj kot {{count}} sekund\",\n    },\n  },\n\n  xSeconds: {\n    present: {\n      one: \"{{count}} sekunda\",\n      two: \"{{count}} sekundi\",\n      few: \"{{count}} sekunde\",\n      other: \"{{count}} sekund\",\n    },\n    past: {\n      one: \"{{count}} sekundo\",\n      two: \"{{count}} sekundama\",\n      few: \"{{count}} sekundami\",\n      other: \"{{count}} sekundami\",\n    },\n    future: {\n      one: \"{{count}} sekundo\",\n      two: \"{{count}} sekundi\",\n      few: \"{{count}} sekunde\",\n      other: \"{{count}} sekund\",\n    },\n  },\n\n  halfAMinute: \"pol minute\",\n\n  lessThanXMinutes: {\n    present: {\n      one: \"manj kot {{count}} minuta\",\n      two: \"manj kot {{count}} minuti\",\n      few: \"manj kot {{count}} minute\",\n      other: \"manj kot {{count}} minut\",\n    },\n    past: {\n      one: \"manj kot {{count}} minuto\",\n      two: \"manj kot {{count}} minutama\",\n      few: \"manj kot {{count}} minutami\",\n      other: \"manj kot {{count}} minutami\",\n    },\n    future: {\n      one: \"manj kot {{count}} minuto\",\n      two: \"manj kot {{count}} minuti\",\n      few: \"manj kot {{count}} minute\",\n      other: \"manj kot {{count}} minut\",\n    },\n  },\n\n  xMinutes: {\n    present: {\n      one: \"{{count}} minuta\",\n      two: \"{{count}} minuti\",\n      few: \"{{count}} minute\",\n      other: \"{{count}} minut\",\n    },\n    past: {\n      one: \"{{count}} minuto\",\n      two: \"{{count}} minutama\",\n      few: \"{{count}} minutami\",\n      other: \"{{count}} minutami\",\n    },\n    future: {\n      one: \"{{count}} minuto\",\n      two: \"{{count}} minuti\",\n      few: \"{{count}} minute\",\n      other: \"{{count}} minut\",\n    },\n  },\n\n  aboutXHours: {\n    present: {\n      one: \"približno {{count}} ura\",\n      two: \"približno {{count}} uri\",\n      few: \"približno {{count}} ure\",\n      other: \"približno {{count}} ur\",\n    },\n    past: {\n      one: \"približno {{count}} uro\",\n      two: \"približno {{count}} urama\",\n      few: \"približno {{count}} urami\",\n      other: \"približno {{count}} urami\",\n    },\n    future: {\n      one: \"približno {{count}} uro\",\n      two: \"približno {{count}} uri\",\n      few: \"približno {{count}} ure\",\n      other: \"približno {{count}} ur\",\n    },\n  },\n\n  xHours: {\n    present: {\n      one: \"{{count}} ura\",\n      two: \"{{count}} uri\",\n      few: \"{{count}} ure\",\n      other: \"{{count}} ur\",\n    },\n    past: {\n      one: \"{{count}} uro\",\n      two: \"{{count}} urama\",\n      few: \"{{count}} urami\",\n      other: \"{{count}} urami\",\n    },\n    future: {\n      one: \"{{count}} uro\",\n      two: \"{{count}} uri\",\n      few: \"{{count}} ure\",\n      other: \"{{count}} ur\",\n    },\n  },\n\n  xDays: {\n    present: {\n      one: \"{{count}} dan\",\n      two: \"{{count}} dni\",\n      few: \"{{count}} dni\",\n      other: \"{{count}} dni\",\n    },\n    past: {\n      one: \"{{count}} dnem\",\n      two: \"{{count}} dnevoma\",\n      few: \"{{count}} dnevi\",\n      other: \"{{count}} dnevi\",\n    },\n    future: {\n      one: \"{{count}} dan\",\n      two: \"{{count}} dni\",\n      few: \"{{count}} dni\",\n      other: \"{{count}} dni\",\n    },\n  },\n\n  // no tenses for weeks?\n  aboutXWeeks: {\n    one: \"približno {{count}} teden\",\n    two: \"približno {{count}} tedna\",\n    few: \"približno {{count}} tedne\",\n    other: \"približno {{count}} tednov\",\n  },\n\n  // no tenses for weeks?\n  xWeeks: {\n    one: \"{{count}} teden\",\n    two: \"{{count}} tedna\",\n    few: \"{{count}} tedne\",\n    other: \"{{count}} tednov\",\n  },\n\n  aboutXMonths: {\n    present: {\n      one: \"približno {{count}} mesec\",\n      two: \"približno {{count}} meseca\",\n      few: \"približno {{count}} mesece\",\n      other: \"približno {{count}} mesecev\",\n    },\n    past: {\n      one: \"približno {{count}} mesecem\",\n      two: \"približno {{count}} mesecema\",\n      few: \"približno {{count}} meseci\",\n      other: \"približno {{count}} meseci\",\n    },\n    future: {\n      one: \"približno {{count}} mesec\",\n      two: \"približno {{count}} meseca\",\n      few: \"približno {{count}} mesece\",\n      other: \"približno {{count}} mesecev\",\n    },\n  },\n\n  xMonths: {\n    present: {\n      one: \"{{count}} mesec\",\n      two: \"{{count}} meseca\",\n      few: \"{{count}} meseci\",\n      other: \"{{count}} mesecev\",\n    },\n    past: {\n      one: \"{{count}} mesecem\",\n      two: \"{{count}} mesecema\",\n      few: \"{{count}} meseci\",\n      other: \"{{count}} meseci\",\n    },\n    future: {\n      one: \"{{count}} mesec\",\n      two: \"{{count}} meseca\",\n      few: \"{{count}} mesece\",\n      other: \"{{count}} mesecev\",\n    },\n  },\n\n  aboutXYears: {\n    present: {\n      one: \"približno {{count}} leto\",\n      two: \"približno {{count}} leti\",\n      few: \"približno {{count}} leta\",\n      other: \"približno {{count}} let\",\n    },\n    past: {\n      one: \"približno {{count}} letom\",\n      two: \"približno {{count}} letoma\",\n      few: \"približno {{count}} leti\",\n      other: \"približno {{count}} leti\",\n    },\n    future: {\n      one: \"približno {{count}} leto\",\n      two: \"približno {{count}} leti\",\n      few: \"približno {{count}} leta\",\n      other: \"približno {{count}} let\",\n    },\n  },\n\n  xYears: {\n    present: {\n      one: \"{{count}} leto\",\n      two: \"{{count}} leti\",\n      few: \"{{count}} leta\",\n      other: \"{{count}} let\",\n    },\n    past: {\n      one: \"{{count}} letom\",\n      two: \"{{count}} letoma\",\n      few: \"{{count}} leti\",\n      other: \"{{count}} leti\",\n    },\n    future: {\n      one: \"{{count}} leto\",\n      two: \"{{count}} leti\",\n      few: \"{{count}} leta\",\n      other: \"{{count}} let\",\n    },\n  },\n\n  overXYears: {\n    present: {\n      one: \"več kot {{count}} leto\",\n      two: \"več kot {{count}} leti\",\n      few: \"več kot {{count}} leta\",\n      other: \"več kot {{count}} let\",\n    },\n    past: {\n      one: \"več kot {{count}} letom\",\n      two: \"več kot {{count}} letoma\",\n      few: \"več kot {{count}} leti\",\n      other: \"več kot {{count}} leti\",\n    },\n    future: {\n      one: \"več kot {{count}} leto\",\n      two: \"več kot {{count}} leti\",\n      few: \"več kot {{count}} leta\",\n      other: \"več kot {{count}} let\",\n    },\n  },\n\n  almostXYears: {\n    present: {\n      one: \"skoraj {{count}} leto\",\n      two: \"skoraj {{count}} leti\",\n      few: \"skoraj {{count}} leta\",\n      other: \"skoraj {{count}} let\",\n    },\n    past: {\n      one: \"skoraj {{count}} letom\",\n      two: \"skoraj {{count}} letoma\",\n      few: \"skoraj {{count}} leti\",\n      other: \"skoraj {{count}} leti\",\n    },\n    future: {\n      one: \"skoraj {{count}} leto\",\n      two: \"skoraj {{count}} leti\",\n      few: \"skoraj {{count}} leta\",\n      other: \"skoraj {{count}} let\",\n    },\n  },\n};\n\nfunction getFormFromCount(count) {\n  switch (count % 100) {\n    case 1:\n      return \"one\";\n    case 2:\n      return \"two\";\n    case 3:\n    case 4:\n      return \"few\";\n    default:\n      return \"other\";\n  }\n}\n\nexport const formatDistance = (token, count, options) => {\n  let result = \"\";\n  let tense = \"present\";\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      tense = \"future\";\n      result = \"čez \";\n    } else {\n      tense = \"past\";\n      result = \"pred \";\n    }\n  }\n\n  const tokenValue = formatDistanceLocale[token];\n\n  if (typeof tokenValue === \"string\") {\n    result += tokenValue;\n  } else {\n    const form = getFormFromCount(count);\n    if (isPluralType(tokenValue)) {\n      result += tokenValue[form].replace(\"{{count}}\", String(count));\n    } else {\n      result += tokenValue[tense][form].replace(\"{{count}}\", String(count));\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, dd. MMMM y\",\n  long: \"dd. MMMM y\",\n  medium: \"d. MMM y\",\n  short: \"d. MM. yy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: (date) => {\n    const day = date.getDay();\n\n    switch (day) {\n      case 0:\n        return \"'prejšnjo nedeljo ob' p\";\n      case 3:\n        return \"'prejšnjo sredo ob' p\";\n      case 6:\n        return \"'prejšnjo soboto ob' p\";\n      default:\n        return \"'prejšnji' EEEE 'ob' p\";\n    }\n  },\n  yesterday: \"'včeraj ob' p\",\n  today: \"'danes ob' p\",\n  tomorrow: \"'jutri ob' p\",\n  nextWeek: (date) => {\n    const day = date.getDay();\n\n    switch (day) {\n      case 0:\n        return \"'naslednjo nedeljo ob' p\";\n      case 3:\n        return \"'naslednjo sredo ob' p\";\n      case 6:\n        return \"'naslednjo soboto ob' p\";\n      default:\n        return \"'naslednji' EEEE 'ob' p\";\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"pr. n. št.\", \"po n. št.\"],\n  abbreviated: [\"pr. n. št.\", \"po n. št.\"],\n  wide: [\"pred našim štetjem\", \"po našem štetju\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1. čet.\", \"2. čet.\", \"3. čet.\", \"4. čet.\"],\n  wide: [\"1. četrtletje\", \"2. četrtletje\", \"3. četrtletje\", \"4. četrtletje\"],\n};\n\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    \"maj\",\n    \"jun.\",\n    \"jul.\",\n    \"avg.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"januar\",\n    \"februar\",\n    \"marec\",\n    \"april\",\n    \"maj\",\n    \"junij\",\n    \"julij\",\n    \"avgust\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"december\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"n\", \"p\", \"t\", \"s\", \"č\", \"p\", \"s\"],\n  short: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n  abbreviated: [\"ned.\", \"pon.\", \"tor.\", \"sre.\", \"čet.\", \"pet.\", \"sob.\"],\n\n  wide: [\n    \"nedelja\",\n    \"ponedeljek\",\n    \"torek\",\n    \"sreda\",\n    \"četrtek\",\n    \"petek\",\n    \"sobota\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"d\",\n    pm: \"p\",\n    midnight: \"24.00\",\n    noon: \"12.00\",\n    morning: \"j\",\n    afternoon: \"p\",\n    evening: \"v\",\n    night: \"n\",\n  },\n  abbreviated: {\n    am: \"dop.\",\n    pm: \"pop.\",\n    midnight: \"poln.\",\n    noon: \"pold.\",\n    morning: \"jut.\",\n    afternoon: \"pop.\",\n    evening: \"več.\",\n    night: \"noč\",\n  },\n  wide: {\n    am: \"dop.\",\n    pm: \"pop.\",\n    midnight: \"polnoč\",\n    noon: \"poldne\",\n    morning: \"jutro\",\n    afternoon: \"popoldne\",\n    evening: \"večer\",\n    night: \"noč\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"d\",\n    pm: \"p\",\n    midnight: \"24.00\",\n    noon: \"12.00\",\n    morning: \"zj\",\n    afternoon: \"p\",\n    evening: \"zv\",\n    night: \"po\",\n  },\n  abbreviated: {\n    am: \"dop.\",\n    pm: \"pop.\",\n    midnight: \"opoln.\",\n    noon: \"opold.\",\n    morning: \"zjut.\",\n    afternoon: \"pop.\",\n    evening: \"zveč.\",\n    night: \"ponoči\",\n  },\n  wide: {\n    am: \"dop.\",\n    pm: \"pop.\",\n    midnight: \"opolnoči\",\n    noon: \"opoldne\",\n    morning: \"zjutraj\",\n    afternoon: \"popoldan\",\n    evening: \"zvečer\",\n    night: \"ponoči\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  abbreviated: /^(pr\\. n\\. št\\.|po n\\. št\\.)/i,\n  wide: /^(pred Kristusom|pred na[sš]im [sš]tetjem|po Kristusu|po na[sš]em [sš]tetju|na[sš]ega [sš]tetja)/i,\n};\nconst parseEraPatterns = {\n  any: [/^pr/i, /^(po|na[sš]em)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]\\.\\s?[čc]et\\.?/i,\n  wide: /^[1234]\\. [čc]etrtletje/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated:\n    /^(jan\\.|feb\\.|mar\\.|apr\\.|maj|jun\\.|jul\\.|avg\\.|sep\\.|okt\\.|nov\\.|dec\\.)/i,\n  wide: /^(januar|februar|marec|april|maj|junij|julij|avgust|september|oktober|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  abbreviated: [\n    /^ja/i,\n    /^fe/i,\n    /^mar/i,\n    /^ap/i,\n    /^maj/i,\n    /^jun/i,\n    /^jul/i,\n    /^av/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  wide: [\n    /^ja/i,\n    /^fe/i,\n    /^mar/i,\n    /^ap/i,\n    /^maj/i,\n    /^jun/i,\n    /^jul/i,\n    /^av/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[nptsčc]/i,\n  short: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n  abbreviated: /^(ned\\.|pon\\.|tor\\.|sre\\.|[cč]et\\.|pet\\.|sob\\.)/i,\n  wide: /^(nedelja|ponedeljek|torek|sreda|[cč]etrtek|petek|sobota)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^n/i, /^p/i, /^t/i, /^s/i, /^[cč]/i, /^p/i, /^s/i],\n  any: [/^n/i, /^po/i, /^t/i, /^sr/i, /^[cč]/i, /^pe/i, /^so/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(d|po?|z?v|n|z?j|24\\.00|12\\.00)/i,\n  any: /^(dop\\.|pop\\.|o?poln(\\.|o[cč]i?)|o?pold(\\.|ne)|z?ve[cč](\\.|er)|(po)?no[cč]i?|popold(ne|an)|jut(\\.|ro)|zjut(\\.|raj))/i,\n};\nconst parseDayPeriodPatterns = {\n  narrow: {\n    am: /^d/i,\n    pm: /^p/i,\n    midnight: /^24/i,\n    noon: /^12/i,\n    morning: /^(z?j)/i,\n    afternoon: /^p/i,\n    evening: /^(z?v)/i,\n    night: /^(n|po)/i,\n  },\n  any: {\n    am: /^dop\\./i,\n    pm: /^pop\\./i,\n    midnight: /^o?poln/i,\n    noon: /^o?pold/i,\n    morning: /j/i,\n    afternoon: /^pop\\./i,\n    evening: /^z?ve/i,\n    night: /(po)?no/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: \"wide\",\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 \"./sl/_lib/formatDistance.js\";\nimport { formatLong } from \"./sl/_lib/formatLong.js\";\nimport { formatRelative } from \"./sl/_lib/formatRelative.js\";\nimport { localize } from \"./sl/_lib/localize.js\";\nimport { match } from \"./sl/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Slovenian locale.\n * @language Slovenian\n * @iso-639-2 slv\n * @author Adam Stradovnik [@Neoglyph](https://github.com/Neoglyph)\n * @author Mato Žgajner [@mzgajner](https://github.com/mzgajner)\n */\nexport const sl = {\n  code: \"sl\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default sl;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"më pak se një sekondë\",\n    other: \"më pak se {{count}} sekonda\",\n  },\n\n  xSeconds: {\n    one: \"1 sekondë\",\n    other: \"{{count}} sekonda\",\n  },\n\n  halfAMinute: \"gjysëm minuti\",\n\n  lessThanXMinutes: {\n    one: \"më pak se një minute\",\n    other: \"më pak se {{count}} minuta\",\n  },\n\n  xMinutes: {\n    one: \"1 minutë\",\n    other: \"{{count}} minuta\",\n  },\n\n  aboutXHours: {\n    one: \"rreth 1 orë\",\n    other: \"rreth {{count}} orë\",\n  },\n\n  xHours: {\n    one: \"1 orë\",\n    other: \"{{count}} orë\",\n  },\n\n  xDays: {\n    one: \"1 ditë\",\n    other: \"{{count}} ditë\",\n  },\n\n  aboutXWeeks: {\n    one: \"rreth 1 javë\",\n    other: \"rreth {{count}} javë\",\n  },\n\n  xWeeks: {\n    one: \"1 javë\",\n    other: \"{{count}} javë\",\n  },\n\n  aboutXMonths: {\n    one: \"rreth 1 muaj\",\n    other: \"rreth {{count}} muaj\",\n  },\n\n  xMonths: {\n    one: \"1 muaj\",\n    other: \"{{count}} muaj\",\n  },\n\n  aboutXYears: {\n    one: \"rreth 1 vit\",\n    other: \"rreth {{count}} vite\",\n  },\n\n  xYears: {\n    one: \"1 vit\",\n    other: \"{{count}} vite\",\n  },\n\n  overXYears: {\n    one: \"mbi 1 vit\",\n    other: \"mbi {{count}} vite\",\n  },\n\n  almostXYears: {\n    one: \"pothuajse 1 vit\",\n    other: \"pothuajse {{count}} vite\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"në \" + result;\n    } else {\n      return result + \" më parë\";\n    }\n  }\n\n  return result;\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}} 'në' {{time}}\",\n  long: \"{{date}} 'në' {{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: \"'të' eeee 'e shkuar në' p\",\n  yesterday: \"'dje në' p\",\n  today: \"'sot në' p\",\n  tomorrow: \"'nesër në' p\",\n  nextWeek: \"eeee 'at' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"P\", \"M\"],\n  abbreviated: [\"PK\", \"MK\"],\n  wide: [\"Para Krishtit\", \"Mbas Krishtit\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"4-mujori I\", \"4-mujori II\", \"4-mujori III\", \"4-mujori IV\"],\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\", \"S\", \"M\", \"P\", \"M\", \"Q\", \"K\", \"G\", \"S\", \"T\", \"N\", \"D\"],\n  abbreviated: [\n    \"Jan\",\n    \"Shk\",\n    \"Mar\",\n    \"Pri\",\n    \"Maj\",\n    \"Qer\",\n    \"Kor\",\n    \"Gus\",\n    \"Sht\",\n    \"Tet\",\n    \"Nën\",\n    \"Dhj\",\n  ],\n\n  wide: [\n    \"Janar\",\n    \"Shkurt\",\n    \"Mars\",\n    \"Prill\",\n    \"Maj\",\n    \"Qershor\",\n    \"Korrik\",\n    \"Gusht\",\n    \"Shtator\",\n    \"Tetor\",\n    \"Nëntor\",\n    \"Dhjetor\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"D\", \"H\", \"M\", \"M\", \"E\", \"P\", \"S\"],\n  short: [\"Di\", \"Hë\", \"Ma\", \"Më\", \"En\", \"Pr\", \"Sh\"],\n  abbreviated: [\"Die\", \"Hën\", \"Mar\", \"Mër\", \"Enj\", \"Pre\", \"Sht\"],\n  wide: [\"Dielë\", \"Hënë\", \"Martë\", \"Mërkurë\", \"Enjte\", \"Premte\", \"Shtunë\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"p\",\n    pm: \"m\",\n    midnight: \"m\",\n    noon: \"d\",\n    morning: \"mëngjes\",\n    afternoon: \"dite\",\n    evening: \"mbrëmje\",\n    night: \"natë\",\n  },\n  abbreviated: {\n    am: \"PD\",\n    pm: \"MD\",\n    midnight: \"mesnëtë\",\n    noon: \"drek\",\n    morning: \"mëngjes\",\n    afternoon: \"mbasdite\",\n    evening: \"mbrëmje\",\n    night: \"natë\",\n  },\n  wide: {\n    am: \"p.d.\",\n    pm: \"m.d.\",\n    midnight: \"mesnëtë\",\n    noon: \"drek\",\n    morning: \"mëngjes\",\n    afternoon: \"mbasdite\",\n    evening: \"mbrëmje\",\n    night: \"natë\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"p\",\n    pm: \"m\",\n    midnight: \"m\",\n    noon: \"d\",\n    morning: \"në mëngjes\",\n    afternoon: \"në mbasdite\",\n    evening: \"në mbrëmje\",\n    night: \"në mesnatë\",\n  },\n  abbreviated: {\n    am: \"PD\",\n    pm: \"MD\",\n    midnight: \"mesnatë\",\n    noon: \"drek\",\n    morning: \"në mëngjes\",\n    afternoon: \"në mbasdite\",\n    evening: \"në mbrëmje\",\n    night: \"në mesnatë\",\n  },\n  wide: {\n    am: \"p.d.\",\n    pm: \"m.d.\",\n    midnight: \"mesnatë\",\n    noon: \"drek\",\n    morning: \"në mëngjes\",\n    afternoon: \"në mbasdite\",\n    evening: \"në mbrëmje\",\n    night: \"në mesnatë\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n\n  if (options?.unit === \"hour\") return String(number);\n\n  if (number === 1) return number + \"-rë\";\n  if (number === 4) return number + \"t\";\n\n  return number + \"-të\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-rë|-të|t|)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(p|m)/i,\n  abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n  wide: /^(para krishtit|mbas krishtit)/i,\n};\nconst parseEraPatterns = {\n  any: [/^b/i, /^(p|m)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234]-mujori (i{1,3}|iv)/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jsmpqkftnd]/i,\n  abbreviated: /^(jan|shk|mar|pri|maj|qer|kor|gus|sht|tet|nën|dhj)/i,\n  wide: /^(janar|shkurt|mars|prill|maj|qershor|korrik|gusht|shtator|tetor|nëntor|dhjetor)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^j/i,\n    /^s/i,\n    /^m/i,\n    /^p/i,\n    /^m/i,\n    /^q/i,\n    /^k/i,\n    /^g/i,\n    /^s/i,\n    /^t/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ja/i,\n    /^shk/i,\n    /^mar/i,\n    /^pri/i,\n    /^maj/i,\n    /^qer/i,\n    /^kor/i,\n    /^gu/i,\n    /^sht/i,\n    /^tet/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[dhmeps]/i,\n  short: /^(di|hë|ma|më|en|pr|sh)/i,\n  abbreviated: /^(die|hën|mar|mër|enj|pre|sht)/i,\n  wide: /^(dielë|hënë|martë|mërkurë|enjte|premte|shtunë)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^d/i, /^h/i, /^m/i, /^m/i, /^e/i, /^p/i, /^s/i],\n  any: [/^d/i, /^h/i, /^ma/i, /^më/i, /^e/i, /^p/i, /^s/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(p|m|me|në (mëngjes|mbasdite|mbrëmje|mesnatë))/i,\n  any: /^([pm]\\.?\\s?d\\.?|drek|në (mëngjes|mbasdite|mbrëmje|mesnatë))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^p/i,\n    pm: /^m/i,\n    midnight: /^me/i,\n    noon: /^dr/i,\n    morning: /mëngjes/i,\n    afternoon: /mbasdite/i,\n    evening: /mbrëmje/i,\n    night: /natë/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 \"./sq/_lib/formatDistance.js\";\nimport { formatLong } from \"./sq/_lib/formatLong.js\";\nimport { formatRelative } from \"./sq/_lib/formatRelative.js\";\nimport { localize } from \"./sq/_lib/localize.js\";\nimport { match } from \"./sq/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Albanian locale.\n * @language Shqip\n * @iso-639-2 sqi\n * @author Ardit Dine [@arditdine](https://github.com/arditdine)\n */\nexport const sq = {\n  code: \"sq\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default sq;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      standalone: \"мање од 1 секунде\",\n      withPrepositionAgo: \"мање од 1 секунде\",\n      withPrepositionIn: \"мање од 1 секунду\",\n    },\n    dual: \"мање од {{count}} секунде\",\n    other: \"мање од {{count}} секунди\",\n  },\n\n  xSeconds: {\n    one: {\n      standalone: \"1 секунда\",\n      withPrepositionAgo: \"1 секунде\",\n      withPrepositionIn: \"1 секунду\",\n    },\n    dual: \"{{count}} секунде\",\n    other: \"{{count}} секунди\",\n  },\n\n  halfAMinute: \"пола минуте\",\n\n  lessThanXMinutes: {\n    one: {\n      standalone: \"мање од 1 минуте\",\n      withPrepositionAgo: \"мање од 1 минуте\",\n      withPrepositionIn: \"мање од 1 минуту\",\n    },\n    dual: \"мање од {{count}} минуте\",\n    other: \"мање од {{count}} минута\",\n  },\n\n  xMinutes: {\n    one: {\n      standalone: \"1 минута\",\n      withPrepositionAgo: \"1 минуте\",\n      withPrepositionIn: \"1 минуту\",\n    },\n    dual: \"{{count}} минуте\",\n    other: \"{{count}} минута\",\n  },\n\n  aboutXHours: {\n    one: {\n      standalone: \"око 1 сат\",\n      withPrepositionAgo: \"око 1 сат\",\n      withPrepositionIn: \"око 1 сат\",\n    },\n    dual: \"око {{count}} сата\",\n    other: \"око {{count}} сати\",\n  },\n\n  xHours: {\n    one: {\n      standalone: \"1 сат\",\n      withPrepositionAgo: \"1 сат\",\n      withPrepositionIn: \"1 сат\",\n    },\n    dual: \"{{count}} сата\",\n    other: \"{{count}} сати\",\n  },\n\n  xDays: {\n    one: {\n      standalone: \"1 дан\",\n      withPrepositionAgo: \"1 дан\",\n      withPrepositionIn: \"1 дан\",\n    },\n    dual: \"{{count}} дана\",\n    other: \"{{count}} дана\",\n  },\n\n  aboutXWeeks: {\n    one: {\n      standalone: \"око 1 недељу\",\n      withPrepositionAgo: \"око 1 недељу\",\n      withPrepositionIn: \"око 1 недељу\",\n    },\n    dual: \"око {{count}} недеље\",\n    other: \"око {{count}} недеље\",\n  },\n\n  xWeeks: {\n    one: {\n      standalone: \"1 недељу\",\n      withPrepositionAgo: \"1 недељу\",\n      withPrepositionIn: \"1 недељу\",\n    },\n    dual: \"{{count}} недеље\",\n    other: \"{{count}} недеље\",\n  },\n\n  aboutXMonths: {\n    one: {\n      standalone: \"око 1 месец\",\n      withPrepositionAgo: \"око 1 месец\",\n      withPrepositionIn: \"око 1 месец\",\n    },\n    dual: \"око {{count}} месеца\",\n    other: \"око {{count}} месеци\",\n  },\n\n  xMonths: {\n    one: {\n      standalone: \"1 месец\",\n      withPrepositionAgo: \"1 месец\",\n      withPrepositionIn: \"1 месец\",\n    },\n    dual: \"{{count}} месеца\",\n    other: \"{{count}} месеци\",\n  },\n\n  aboutXYears: {\n    one: {\n      standalone: \"око 1 годину\",\n      withPrepositionAgo: \"око 1 годину\",\n      withPrepositionIn: \"око 1 годину\",\n    },\n    dual: \"око {{count}} године\",\n    other: \"око {{count}} година\",\n  },\n\n  xYears: {\n    one: {\n      standalone: \"1 година\",\n      withPrepositionAgo: \"1 године\",\n      withPrepositionIn: \"1 годину\",\n    },\n    dual: \"{{count}} године\",\n    other: \"{{count}} година\",\n  },\n\n  overXYears: {\n    one: {\n      standalone: \"преко 1 годину\",\n      withPrepositionAgo: \"преко 1 годину\",\n      withPrepositionIn: \"преко 1 годину\",\n    },\n    dual: \"преко {{count}} године\",\n    other: \"преко {{count}} година\",\n  },\n\n  almostXYears: {\n    one: {\n      standalone: \"готово 1 годину\",\n      withPrepositionAgo: \"готово 1 годину\",\n      withPrepositionIn: \"готово 1 годину\",\n    },\n    dual: \"готово {{count}} године\",\n    other: \"готово {{count}} година\",\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    if (options?.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        result = tokenValue.one.withPrepositionIn;\n      } else {\n        result = tokenValue.one.withPrepositionAgo;\n      }\n    } else {\n      result = tokenValue.one.standalone;\n    }\n  } else if (\n    count % 10 > 1 &&\n    count % 10 < 5 && // if last digit is between 2 and 4\n    String(count).substr(-2, 1) !== \"1\" // unless the 2nd to last digit is \"1\"\n  ) {\n    result = tokenValue.dual.replace(\"{{count}}\", String(count));\n  } else {\n    result = tokenValue.other.replace(\"{{count}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"за \" + result;\n    } else {\n      return \"пре \" + result;\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, d. MMMM yyyy.\",\n  long: \"d. MMMM yyyy.\",\n  medium: \"d. MMM yy.\",\n  short: \"dd. MM. yy.\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss (zzzz)\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'у' {{time}}\",\n  long: \"{{date}} 'у' {{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: (date) => {\n    const day = date.getDay();\n\n    switch (day) {\n      case 0:\n        return \"'прошле недеље у' p\";\n      case 3:\n        return \"'прошле среде у' p\";\n      case 6:\n        return \"'прошле суботе у' p\";\n      default:\n        return \"'прошли' EEEE 'у' p\";\n    }\n  },\n  yesterday: \"'јуче у' p\",\n  today: \"'данас у' p\",\n  tomorrow: \"'сутра у' p\",\n  nextWeek: (date) => {\n    const day = date.getDay();\n\n    switch (day) {\n      case 0:\n        return \"'следеће недеље у' p\";\n      case 3:\n        return \"'следећу среду у' p\";\n      case 6:\n        return \"'следећу суботу у' p\";\n      default:\n        return \"'следећи' EEEE 'у' p\";\n    }\n  },\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"пр.н.е.\", \"АД\"],\n  abbreviated: [\"пр. Хр.\", \"по. Хр.\"],\n  wide: [\"Пре Христа\", \"После Христа\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1.\", \"2.\", \"3.\", \"4.\"],\n  abbreviated: [\"1. кв.\", \"2. кв.\", \"3. кв.\", \"4. кв.\"],\n  wide: [\"1. квартал\", \"2. квартал\", \"3. квартал\", \"4. квартал\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"1.\",\n    \"2.\",\n    \"3.\",\n    \"4.\",\n    \"5.\",\n    \"6.\",\n    \"7.\",\n    \"8.\",\n    \"9.\",\n    \"10.\",\n    \"11.\",\n    \"12.\",\n  ],\n\n  abbreviated: [\n    \"јан\",\n    \"феб\",\n    \"мар\",\n    \"апр\",\n    \"мај\",\n    \"јун\",\n    \"јул\",\n    \"авг\",\n    \"сеп\",\n    \"окт\",\n    \"нов\",\n    \"дец\",\n  ],\n\n  wide: [\n    \"јануар\",\n    \"фебруар\",\n    \"март\",\n    \"април\",\n    \"мај\",\n    \"јун\",\n    \"јул\",\n    \"август\",\n    \"септембар\",\n    \"октобар\",\n    \"новембар\",\n    \"децембар\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\n    \"1.\",\n    \"2.\",\n    \"3.\",\n    \"4.\",\n    \"5.\",\n    \"6.\",\n    \"7.\",\n    \"8.\",\n    \"9.\",\n    \"10.\",\n    \"11.\",\n    \"12.\",\n  ],\n\n  abbreviated: [\n    \"јан\",\n    \"феб\",\n    \"мар\",\n    \"апр\",\n    \"мај\",\n    \"јун\",\n    \"јул\",\n    \"авг\",\n    \"сеп\",\n    \"окт\",\n    \"нов\",\n    \"дец\",\n  ],\n\n  wide: [\n    \"јануар\",\n    \"фебруар\",\n    \"март\",\n    \"април\",\n    \"мај\",\n    \"јун\",\n    \"јул\",\n    \"август\",\n    \"септембар\",\n    \"октобар\",\n    \"новембар\",\n    \"децембар\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"П\", \"У\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"нед\", \"пон\", \"уто\", \"сре\", \"чет\", \"пет\", \"суб\"],\n  abbreviated: [\"нед\", \"пон\", \"уто\", \"сре\", \"чет\", \"пет\", \"суб\"],\n  wide: [\n    \"недеља\",\n    \"понедељак\",\n    \"уторак\",\n    \"среда\",\n    \"четвртак\",\n    \"петак\",\n    \"субота\",\n  ],\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"АМ\",\n    pm: \"ПМ\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"поподне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n  abbreviated: {\n    am: \"АМ\",\n    pm: \"ПМ\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"поподне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"после подне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"поподне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"поподне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n  wide: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"поноћ\",\n    noon: \"подне\",\n    morning: \"ујутру\",\n    afternoon: \"после подне\",\n    evening: \"увече\",\n    night: \"ноћу\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)\\./i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(пр\\.н\\.е\\.|АД)/i,\n  abbreviated: /^(пр\\.\\s?Хр\\.|по\\.\\s?Хр\\.)/i,\n  wide: /^(Пре Христа|пре нове ере|После Христа|нова ера)/i,\n};\nconst parseEraPatterns = {\n  any: [/^пр/i, /^(по|нова)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]\\.\\s?кв\\.?/i,\n  wide: /^[1234]\\. квартал/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(10|11|12|[123456789])\\./i,\n  abbreviated: /^(јан|феб|мар|апр|мај|јун|јул|авг|сеп|окт|нов|дец)/i,\n  wide: /^((јануар|јануара)|(фебруар|фебруара)|(март|марта)|(април|априла)|(мја|маја)|(јун|јуна)|(јул|јула)|(август|августа)|(септембар|септембра)|(октобар|октобра)|(новембар|новембра)|(децембар|децембра))/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^1/i,\n    /^2/i,\n    /^3/i,\n    /^4/i,\n    /^5/i,\n    /^6/i,\n    /^7/i,\n    /^8/i,\n    /^9/i,\n    /^10/i,\n    /^11/i,\n    /^12/i,\n  ],\n\n  any: [\n    /^ја/i,\n    /^ф/i,\n    /^мар/i,\n    /^ап/i,\n    /^мај/i,\n    /^јун/i,\n    /^јул/i,\n    /^авг/i,\n    /^с/i,\n    /^о/i,\n    /^н/i,\n    /^д/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[пусчн]/i,\n  short: /^(нед|пон|уто|сре|чет|пет|суб)/i,\n  abbreviated: /^(нед|пон|уто|сре|чет|пет|суб)/i,\n  wide: /^(недеља|понедељак|уторак|среда|четвртак|петак|субота)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^п/i, /^у/i, /^с/i, /^ч/i, /^п/i, /^с/i, /^н/i],\n  any: [/^нед/i, /^пон/i, /^уто/i, /^сре/i, /^чет/i, /^пет/i, /^суб/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(ам|пм|поноћ|(по)?подне|увече|ноћу|после подне|ујутру)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^поно/i,\n    noon: /^под/i,\n    morning: /ујутру/i,\n    afternoon: /(после\\s|по)+подне/i,\n    evening: /(увече)/i,\n    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 \"./sr/_lib/formatDistance.js\";\nimport { formatLong } from \"./sr/_lib/formatLong.js\";\nimport { formatRelative } from \"./sr/_lib/formatRelative.js\";\nimport { localize } from \"./sr/_lib/localize.js\";\nimport { match } from \"./sr/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Serbian cyrillic locale.\n * @language Serbian\n * @iso-639-2 srp\n * @author Igor Radivojević [@rogyvoje](https://github.com/rogyvoje)\n */\nexport const sr = {\n  code: \"sr\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default sr;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"mindre än en sekund\",\n    other: \"mindre än {{count}} sekunder\",\n  },\n\n  xSeconds: {\n    one: \"en sekund\",\n    other: \"{{count}} sekunder\",\n  },\n\n  halfAMinute: \"en halv minut\",\n\n  lessThanXMinutes: {\n    one: \"mindre än en minut\",\n    other: \"mindre än {{count}} minuter\",\n  },\n\n  xMinutes: {\n    one: \"en minut\",\n    other: \"{{count}} minuter\",\n  },\n\n  aboutXHours: {\n    one: \"ungefär en timme\",\n    other: \"ungefär {{count}} timmar\",\n  },\n\n  xHours: {\n    one: \"en timme\",\n    other: \"{{count}} timmar\",\n  },\n\n  xDays: {\n    one: \"en dag\",\n    other: \"{{count}} dagar\",\n  },\n\n  aboutXWeeks: {\n    one: \"ungefär en vecka\",\n    other: \"ungefär {{count}} veckor\",\n  },\n\n  xWeeks: {\n    one: \"en vecka\",\n    other: \"{{count}} veckor\",\n  },\n\n  aboutXMonths: {\n    one: \"ungefär en månad\",\n    other: \"ungefär {{count}} månader\",\n  },\n\n  xMonths: {\n    one: \"en månad\",\n    other: \"{{count}} månader\",\n  },\n\n  aboutXYears: {\n    one: \"ungefär ett år\",\n    other: \"ungefär {{count}} år\",\n  },\n\n  xYears: {\n    one: \"ett år\",\n    other: \"{{count}} år\",\n  },\n\n  overXYears: {\n    one: \"över ett år\",\n    other: \"över {{count}} år\",\n  },\n\n  almostXYears: {\n    one: \"nästan ett år\",\n    other: \"nästan {{count}} år\",\n  },\n};\n\nconst wordMapping = [\n  \"noll\",\n  \"en\",\n  \"två\",\n  \"tre\",\n  \"fyra\",\n  \"fem\",\n  \"sex\",\n  \"sju\",\n  \"åtta\",\n  \"nio\",\n  \"tio\",\n  \"elva\",\n  \"tolv\",\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(\n      \"{{count}}\",\n      count < 13 ? wordMapping[count] : String(count),\n    );\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"om \" + result;\n    } else {\n      return result + \" sedan\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE d MMMM y\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"y-MM-dd\",\n};\n\nconst timeFormats = {\n  full: \"'kl'. HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'kl.' {{time}}\",\n  long: \"{{date}} 'kl.' {{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: \"'i' EEEE's kl.' p\",\n  yesterday: \"'igår kl.' p\",\n  today: \"'idag kl.' p\",\n  tomorrow: \"'imorgon kl.' p\",\n  nextWeek: \"EEEE 'kl.' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"f.Kr.\", \"e.Kr.\"],\n  abbreviated: [\"f.Kr.\", \"e.Kr.\"],\n  wide: [\"före Kristus\", \"efter Kristus\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"1:a kvartalet\", \"2:a kvartalet\", \"3:e kvartalet\", \"4:e kvartalet\"],\n};\n\nconst monthValues = {\n  narrow: [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"jan.\",\n    \"feb.\",\n    \"mars\",\n    \"apr.\",\n    \"maj\",\n    \"juni\",\n    \"juli\",\n    \"aug.\",\n    \"sep.\",\n    \"okt.\",\n    \"nov.\",\n    \"dec.\",\n  ],\n\n  wide: [\n    \"januari\",\n    \"februari\",\n    \"mars\",\n    \"april\",\n    \"maj\",\n    \"juni\",\n    \"juli\",\n    \"augusti\",\n    \"september\",\n    \"oktober\",\n    \"november\",\n    \"december\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"S\", \"M\", \"T\", \"O\", \"T\", \"F\", \"L\"],\n  short: [\"sö\", \"må\", \"ti\", \"on\", \"to\", \"fr\", \"lö\"],\n  abbreviated: [\"sön\", \"mån\", \"tis\", \"ons\", \"tors\", \"fre\", \"lör\"],\n  wide: [\"söndag\", \"måndag\", \"tisdag\", \"onsdag\", \"torsdag\", \"fredag\", \"lördag\"],\n};\n\n// https://www.unicode.org/cldr/charts/32/summary/sv.html#1888\nconst dayPeriodValues = {\n  narrow: {\n    am: \"fm\",\n    pm: \"em\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"morg.\",\n    afternoon: \"efterm.\",\n    evening: \"kväll\",\n    night: \"natt\",\n  },\n  abbreviated: {\n    am: \"f.m.\",\n    pm: \"e.m.\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"morgon\",\n    afternoon: \"efterm.\",\n    evening: \"kväll\",\n    night: \"natt\",\n  },\n  wide: {\n    am: \"förmiddag\",\n    pm: \"eftermiddag\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"morgon\",\n    afternoon: \"eftermiddag\",\n    evening: \"kväll\",\n    night: \"natt\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"fm\",\n    pm: \"em\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på efterm.\",\n    evening: \"på kvällen\",\n    night: \"på natten\",\n  },\n  abbreviated: {\n    am: \"fm\",\n    pm: \"em\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morg.\",\n    afternoon: \"på efterm.\",\n    evening: \"på kvällen\",\n    night: \"på natten\",\n  },\n  wide: {\n    am: \"fm\",\n    pm: \"em\",\n    midnight: \"midnatt\",\n    noon: \"middag\",\n    morning: \"på morgonen\",\n    afternoon: \"på eftermiddagen\",\n    evening: \"på kvällen\",\n    night: \"på natten\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n\n  const rem100 = number % 100;\n  if (rem100 > 20 || rem100 < 10) {\n    switch (rem100 % 10) {\n      case 1:\n      case 2:\n        return number + \":a\";\n    }\n  }\n  return number + \":e\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(:a|:e)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n  abbreviated: /^(f\\.? ?Kr\\.?|f\\.? ?v\\.? ?t\\.?|e\\.? ?Kr\\.?|v\\.? ?t\\.?)/i,\n  wide: /^(före Kristus|före vår tid|efter Kristus|vår tid)/i,\n};\nconst parseEraPatterns = {\n  any: [/^f/i, /^[ev]/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^[1234](:a|:e)? kvartalet/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[jfmasond]/i,\n  abbreviated:\n    /^(jan|feb|mar[s]?|apr|maj|jun[i]?|jul[i]?|aug|sep|okt|nov|dec)\\.?/i,\n  wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|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    /^maj/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: /^[smtofl]/i,\n  short: /^(sö|må|ti|on|to|fr|lö)/i,\n  abbreviated: /^(sön|mån|tis|ons|tors|fre|lör)/i,\n  wide: /^(söndag|måndag|tisdag|onsdag|torsdag|fredag|lördag)/i,\n};\nconst parseDayPatterns = {\n  any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^([fe]\\.?\\s?m\\.?|midn(att)?|midd(ag)?|(på) (morgonen|eftermiddagen|kvällen|natten))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^f/i,\n    pm: /^e/i,\n    midnight: /^midn/i,\n    noon: /^midd/i,\n    morning: /morgon/i,\n    afternoon: /eftermiddag/i,\n    evening: /kväll/i,\n    night: /natt/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 \"./sv/_lib/formatDistance.js\";\nimport { formatLong } from \"./sv/_lib/formatLong.js\";\nimport { formatRelative } from \"./sv/_lib/formatRelative.js\";\nimport { localize } from \"./sv/_lib/localize.js\";\nimport { match } from \"./sv/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Swedish locale.\n * @language Swedish\n * @iso-639-2 swe\n * @author Johannes Ulén [@ejulen](https://github.com/ejulen)\n * @author Alexander Nanberg [@alexandernanberg](https://github.com/alexandernanberg)\n * @author Henrik Andersson [@limelights](https://github.com/limelights)\n */\nexport const sv = {\n  code: \"sv\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default sv;\n","function isPluralType(val) {\n  return val.one !== undefined;\n}\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: {\n      default: \"ஒரு வினாடிக்கு குறைவாக\",\n      in: \"ஒரு வினாடிக்குள்\",\n      ago: \"ஒரு வினாடிக்கு முன்பு\",\n    },\n    other: {\n      default: \"{{count}} வினாடிகளுக்கு குறைவாக\",\n      in: \"{{count}} வினாடிகளுக்குள்\",\n      ago: \"{{count}} வினாடிகளுக்கு முன்பு\",\n    },\n  },\n\n  xSeconds: {\n    one: {\n      default: \"1 வினாடி\",\n      in: \"1 வினாடியில்\",\n      ago: \"1 வினாடி முன்பு\",\n    },\n    other: {\n      default: \"{{count}} விநாடிகள்\",\n      in: \"{{count}} வினாடிகளில்\",\n      ago: \"{{count}} விநாடிகளுக்கு முன்பு\",\n    },\n  },\n\n  halfAMinute: {\n    default: \"அரை நிமிடம்\",\n    in: \"அரை நிமிடத்தில்\",\n    ago: \"அரை நிமிடம் முன்பு\",\n  },\n\n  lessThanXMinutes: {\n    one: {\n      default: \"ஒரு நிமிடத்திற்கும் குறைவாக\",\n      in: \"ஒரு நிமிடத்திற்குள்\",\n      ago: \"ஒரு நிமிடத்திற்கு முன்பு\",\n    },\n    other: {\n      default: \"{{count}} நிமிடங்களுக்கும் குறைவாக\",\n      in: \"{{count}} நிமிடங்களுக்குள்\",\n      ago: \"{{count}} நிமிடங்களுக்கு முன்பு\",\n    },\n  },\n\n  xMinutes: {\n    one: {\n      default: \"1 நிமிடம்\",\n      in: \"1 நிமிடத்தில்\",\n      ago: \"1 நிமிடம் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} நிமிடங்கள்\",\n      in: \"{{count}} நிமிடங்களில்\",\n      ago: \"{{count}} நிமிடங்களுக்கு முன்பு\",\n    },\n  },\n\n  aboutXHours: {\n    one: {\n      default: \"சுமார் 1 மணி நேரம்\",\n      in: \"சுமார் 1 மணி நேரத்தில்\",\n      ago: \"சுமார் 1 மணி நேரத்திற்கு முன்பு\",\n    },\n    other: {\n      default: \"சுமார் {{count}} மணி நேரம்\",\n      in: \"சுமார் {{count}} மணி நேரத்திற்கு முன்பு\",\n      ago: \"சுமார் {{count}} மணி நேரத்தில்\",\n    },\n  },\n\n  xHours: {\n    one: {\n      default: \"1 மணி நேரம்\",\n      in: \"1 மணி நேரத்தில்\",\n      ago: \"1 மணி நேரத்திற்கு முன்பு\",\n    },\n    other: {\n      default: \"{{count}} மணி நேரம்\",\n      in: \"{{count}} மணி நேரத்தில்\",\n      ago: \"{{count}} மணி நேரத்திற்கு முன்பு\",\n    },\n  },\n\n  xDays: {\n    one: {\n      default: \"1 நாள்\",\n      in: \"1 நாளில்\",\n      ago: \"1 நாள் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} நாட்கள்\",\n      in: \"{{count}} நாட்களில்\",\n      ago: \"{{count}} நாட்களுக்கு முன்பு\",\n    },\n  },\n\n  aboutXWeeks: {\n    one: {\n      default: \"சுமார் 1 வாரம்\",\n      in: \"சுமார் 1 வாரத்தில்\",\n      ago: \"சுமார் 1 வாரம் முன்பு\",\n    },\n    other: {\n      default: \"சுமார் {{count}} வாரங்கள்\",\n      in: \"சுமார் {{count}} வாரங்களில்\",\n      ago: \"சுமார் {{count}} வாரங்களுக்கு முன்பு\",\n    },\n  },\n\n  xWeeks: {\n    one: {\n      default: \"1 வாரம்\",\n      in: \"1 வாரத்தில்\",\n      ago: \"1 வாரம் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} வாரங்கள்\",\n      in: \"{{count}} வாரங்களில்\",\n      ago: \"{{count}} வாரங்களுக்கு முன்பு\",\n    },\n  },\n\n  aboutXMonths: {\n    one: {\n      default: \"சுமார் 1 மாதம்\",\n      in: \"சுமார் 1 மாதத்தில்\",\n      ago: \"சுமார் 1 மாதத்திற்கு முன்பு\",\n    },\n    other: {\n      default: \"சுமார் {{count}} மாதங்கள்\",\n      in: \"சுமார் {{count}} மாதங்களில்\",\n      ago: \"சுமார் {{count}} மாதங்களுக்கு முன்பு\",\n    },\n  },\n\n  xMonths: {\n    one: {\n      default: \"1 மாதம்\",\n      in: \"1 மாதத்தில்\",\n      ago: \"1 மாதம் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} மாதங்கள்\",\n      in: \"{{count}} மாதங்களில்\",\n      ago: \"{{count}} மாதங்களுக்கு முன்பு\",\n    },\n  },\n\n  aboutXYears: {\n    one: {\n      default: \"சுமார் 1 வருடம்\",\n      in: \"சுமார் 1 ஆண்டில்\",\n      ago: \"சுமார் 1 வருடம் முன்பு\",\n    },\n    other: {\n      default: \"சுமார் {{count}} ஆண்டுகள்\",\n      in: \"சுமார் {{count}} ஆண்டுகளில்\",\n      ago: \"சுமார் {{count}} ஆண்டுகளுக்கு முன்பு\",\n    },\n  },\n\n  xYears: {\n    one: {\n      default: \"1 வருடம்\",\n      in: \"1 ஆண்டில்\",\n      ago: \"1 வருடம் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} ஆண்டுகள்\",\n      in: \"{{count}} ஆண்டுகளில்\",\n      ago: \"{{count}} ஆண்டுகளுக்கு முன்பு\",\n    },\n  },\n\n  overXYears: {\n    one: {\n      default: \"1 வருடத்திற்கு மேல்\",\n      in: \"1 வருடத்திற்கும் மேலாக\",\n      ago: \"1 வருடம் முன்பு\",\n    },\n    other: {\n      default: \"{{count}} ஆண்டுகளுக்கும் மேலாக\",\n      in: \"{{count}} ஆண்டுகளில்\",\n      ago: \"{{count}} ஆண்டுகளுக்கு முன்பு\",\n    },\n  },\n\n  almostXYears: {\n    one: {\n      default: \"கிட்டத்தட்ட 1 வருடம்\",\n      in: \"கிட்டத்தட்ட 1 ஆண்டில்\",\n      ago: \"கிட்டத்தட்ட 1 வருடம் முன்பு\",\n    },\n    other: {\n      default: \"கிட்டத்தட்ட {{count}} ஆண்டுகள்\",\n      in: \"கிட்டத்தட்ட {{count}} ஆண்டுகளில்\",\n      ago: \"கிட்டத்தட்ட {{count}} ஆண்டுகளுக்கு முன்பு\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  const tense = options?.addSuffix\n    ? options.comparison && options.comparison > 0\n      ? \"in\"\n      : \"ago\"\n    : \"default\";\n\n  const tokenValue = formatDistanceLocale[token];\n\n  if (!isPluralType(tokenValue)) return tokenValue[tense];\n\n  if (count === 1) {\n    return tokenValue.one[tense];\n  } else {\n    return tokenValue.other[tense].replace(\"{{count}}\", String(count));\n  }\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// Ref: https://www.unicode.org/cldr/charts/32/summary/ta.html\n\n// CLDR #1846 - #1849\nconst dateFormats = {\n  full: \"EEEE, d MMMM, y\",\n  long: \"d MMMM, y\",\n  medium: \"d MMM, y\",\n  short: \"d/M/yy\",\n};\n\n// CLDR #1850 - #1853\nconst timeFormats = {\n  full: \"a h:mm:ss zzzz\",\n  long: \"a h:mm:ss z\",\n  medium: \"a h:mm:ss\",\n  short: \"a h:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"'கடந்த' eeee p 'மணிக்கு'\",\n  yesterday: \"'நேற்று ' p 'மணிக்கு'\",\n  today: \"'இன்று ' p 'மணிக்கு'\",\n  tomorrow: \"'நாளை ' p 'மணிக்கு'\",\n  nextWeek: \"eeee p 'மணிக்கு'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// Ref: https://www.unicode.org/cldr/charts/32/summary/ta.html\n\nconst eraValues = {\n  narrow: [\"கி.மு.\", \"கி.பி.\"],\n  abbreviated: [\"கி.மு.\", \"கி.பி.\"], // CLDR #1624, #1626\n  wide: [\"கிறிஸ்துவுக்கு முன்\", \"அன்னோ டோமினி\"], // CLDR #1620, #1622\n};\n\nconst quarterValues = {\n  // CLDR #1644 - #1647\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  // CLDR #1636 - #1639\n  abbreviated: [\"காலா.1\", \"காலா.2\", \"காலா.3\", \"காலா.4\"],\n  // CLDR #1628 - #1631\n  wide: [\n    \"ஒன்றாம் காலாண்டு\",\n    \"இரண்டாம் காலாண்டு\",\n    \"மூன்றாம் காலாண்டு\",\n    \"நான்காம் காலாண்டு\",\n  ],\n};\n\nconst monthValues = {\n  // CLDR #700 - #711\n  narrow: [\"ஜ\", \"பி\", \"மா\", \"ஏ\", \"மே\", \"ஜூ\", \"ஜூ\", \"ஆ\", \"செ\", \"அ\", \"ந\", \"டி\"],\n\n  // CLDR #1676 - #1687\n  abbreviated: [\n    \"ஜன.\",\n    \"பிப்.\",\n    \"மார்.\",\n    \"ஏப்.\",\n    \"மே\",\n    \"ஜூன்\",\n    \"ஜூலை\",\n    \"ஆக.\",\n    \"செப்.\",\n    \"அக்.\",\n    \"நவ.\",\n    \"டிச.\",\n  ],\n\n  // CLDR #1652 - #1663\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  // CLDR #1766 - #1772\n  narrow: [\"ஞா\", \"தி\", \"செ\", \"பு\", \"வி\", \"வெ\", \"ச\"],\n  // CLDR #1752 - #1758\n  short: [\"ஞா\", \"தி\", \"செ\", \"பு\", \"வி\", \"வெ\", \"ச\"],\n  // CLDR #1738 - #1744\n  abbreviated: [\"ஞாயி.\", \"திங்.\", \"செவ்.\", \"புத.\", \"வியா.\", \"வெள்.\", \"சனி\"],\n  // CLDR #1724 - #1730\n  wide: [\n    \"ஞாயிறு\", // Sunday\n    \"திங்கள்\", // Monday\n    \"செவ்வாய்\", // Tuesday\n    \"புதன்\", // Wednesday\n    \"வியாழன்\", // Thursday\n    \"வெள்ளி\", // Friday\n    \"சனி\", // Saturday\n  ],\n};\n\n// CLDR #1780 - #1845\nconst dayPeriodValues = {\n  narrow: {\n    am: \"மு.ப\",\n    pm: \"பி.ப\",\n    midnight: \"நள்.\",\n    noon: \"நண்.\",\n    morning: \"கா.\",\n    afternoon: \"மதி.\",\n    evening: \"மா.\",\n    night: \"இர.\",\n  },\n  abbreviated: {\n    am: \"முற்பகல்\",\n    pm: \"பிற்பகல்\",\n    midnight: \"நள்ளிரவு\",\n    noon: \"நண்பகல்\",\n    morning: \"காலை\",\n    afternoon: \"மதியம்\",\n    evening: \"மாலை\",\n    night: \"இரவு\",\n  },\n  wide: {\n    am: \"முற்பகல்\",\n    pm: \"பிற்பகல்\",\n    midnight: \"நள்ளிரவு\",\n    noon: \"நண்பகல்\",\n    morning: \"காலை\",\n    afternoon: \"மதியம்\",\n    evening: \"மாலை\",\n    night: \"இரவு\",\n  },\n};\n\n// CLDR #1780 - #1845\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"மு.ப\",\n    pm: \"பி.ப\",\n    midnight: \"நள்.\",\n    noon: \"நண்.\",\n    morning: \"கா.\",\n    afternoon: \"மதி.\",\n    evening: \"மா.\",\n    night: \"இர.\",\n  },\n  abbreviated: {\n    am: \"முற்பகல்\",\n    pm: \"பிற்பகல்\",\n    midnight: \"நள்ளிரவு\",\n    noon: \"நண்பகல்\",\n    morning: \"காலை\",\n    afternoon: \"மதியம்\",\n    evening: \"மாலை\",\n    night: \"இரவு\",\n  },\n  wide: {\n    am: \"முற்பகல்\",\n    pm: \"பிற்பகல்\",\n    midnight: \"நள்ளிரவு\",\n    noon: \"நண்பகல்\",\n    morning: \"காலை\",\n    afternoon: \"மதியம்\",\n    evening: \"மாலை\",\n    night: \"இரவு\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(வது)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(கி.மு.|கி.பி.)/i,\n  abbreviated: /^(கி\\.?\\s?மு\\.?|கி\\.?\\s?பி\\.?)/,\n  wide: /^(கிறிஸ்துவுக்கு\\sமுன்|அன்னோ\\sடோமினி)/i,\n};\nconst parseEraPatterns = {\n  any: [/கி\\.?\\s?மு\\.?/, /கி\\.?\\s?பி\\.?/],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^காலா.[1234]/i,\n  wide: /^(ஒன்றாம்|இரண்டாம்|மூன்றாம்|நான்காம்) காலாண்டு/i,\n};\nconst parseQuarterPatterns = {\n  narrow: [/1/i, /2/i, /3/i, /4/i],\n  any: [\n    /(1|காலா.1|ஒன்றாம்)/i,\n    /(2|காலா.2|இரண்டாம்)/i,\n    /(3|காலா.3|மூன்றாம்)/i,\n    /(4|காலா.4|நான்காம்)/i,\n  ],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(ஜ|பி|மா|ஏ|மே|ஜூ|ஆ|செ|அ|ந|டி)$/i,\n  abbreviated: /^(ஜன.|பிப்.|மார்.|ஏப்.|மே|ஜூன்|ஜூலை|ஆக.|செப்.|அக்.|நவ.|டிச.)/i,\n  wide: /^(ஜனவரி|பிப்ரவரி|மார்ச்|ஏப்ரல்|மே|ஜூன்|ஜூலை|ஆகஸ்ட்|செப்டம்பர்|அக்டோபர்|நவம்பர்|டிசம்பர்)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ஜ$/i,\n    /^பி/i,\n    /^மா/i,\n    /^ஏ/i,\n    /^மே/i,\n    /^ஜூ/i,\n    /^ஜூ/i,\n    /^ஆ/i,\n    /^செ/i,\n    /^அ/i,\n    /^ந/i,\n    /^டி/i,\n  ],\n\n  any: [\n    /^ஜன/i,\n    /^பி/i,\n    /^மா/i,\n    /^ஏ/i,\n    /^மே/i,\n    /^ஜூன்/i,\n    /^ஜூலை/i,\n    /^ஆ/i,\n    /^செ/i,\n    /^அ/i,\n    /^ந/i,\n    /^டி/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(ஞா|தி|செ|பு|வி|வெ|ச)/i,\n  short: /^(ஞா|தி|செ|பு|வி|வெ|ச)/i,\n  abbreviated: /^(ஞாயி.|திங்.|செவ்.|புத.|வியா.|வெள்.|சனி)/i,\n  wide: /^(ஞாயிறு|திங்கள்|செவ்வாய்|புதன்|வியாழன்|வெள்ளி|சனி)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ஞா/i, /^தி/i, /^செ/i, /^பு/i, /^வி/i, /^வெ/i, /^ச/i],\n  any: [/^ஞா/i, /^தி/i, /^செ/i, /^பு/i, /^வி/i, /^வெ/i, /^ச/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(மு.ப|பி.ப|நள்|நண்|காலை|மதியம்|மாலை|இரவு)/i,\n  any: /^(மு.ப|பி.ப|முற்பகல்|பிற்பகல்|நள்ளிரவு|நண்பகல்|காலை|மதியம்|மாலை|இரவு)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^மு/i,\n    pm: /^பி/i,\n    midnight: /^நள்/i,\n    noon: /^நண்/i,\n    morning: /காலை/i,\n    afternoon: /மதியம்/i,\n    evening: /மாலை/i,\n    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 \"./ta/_lib/formatDistance.js\";\nimport { formatLong } from \"./ta/_lib/formatLong.js\";\nimport { formatRelative } from \"./ta/_lib/formatRelative.js\";\nimport { localize } from \"./ta/_lib/localize.js\";\nimport { match } from \"./ta/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Tamil locale (India).\n * @language Tamil\n * @iso-639-2 tam\n * @author Sibiraj [@sibiraj-s](https://github.com/sibiraj-s)\n */\nexport const ta = {\n  code: \"ta\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default ta;\n","// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: {\n    standalone: {\n      one: \"సెకను కన్నా తక్కువ\",\n      other: \"{{count}} సెకన్ల కన్నా తక్కువ\",\n    },\n    withPreposition: {\n      one: \"సెకను\",\n      other: \"{{count}} సెకన్ల\",\n    },\n  },\n\n  xSeconds: {\n    standalone: {\n      one: \"ఒక సెకను\", // CLDR #1314\n      other: \"{{count}} సెకన్ల\",\n    },\n    withPreposition: {\n      one: \"ఒక సెకను\",\n      other: \"{{count}} సెకన్ల\",\n    },\n  },\n\n  halfAMinute: {\n    standalone: \"అర నిమిషం\",\n    withPreposition: \"అర నిమిషం\",\n  },\n\n  lessThanXMinutes: {\n    standalone: {\n      one: \"ఒక నిమిషం కన్నా తక్కువ\",\n      other: \"{{count}} నిమిషాల కన్నా తక్కువ\",\n    },\n    withPreposition: {\n      one: \"ఒక నిమిషం\",\n      other: \"{{count}} నిమిషాల\",\n    },\n  },\n\n  xMinutes: {\n    standalone: {\n      one: \"ఒక నిమిషం\", // CLDR #1311\n      other: \"{{count}} నిమిషాలు\",\n    },\n    withPreposition: {\n      one: \"ఒక నిమిషం\", // CLDR #1311\n      other: \"{{count}} నిమిషాల\",\n    },\n  },\n\n  aboutXHours: {\n    standalone: {\n      one: \"సుమారు ఒక గంట\",\n      other: \"సుమారు {{count}} గంటలు\",\n    },\n    withPreposition: {\n      one: \"సుమారు ఒక గంట\",\n      other: \"సుమారు {{count}} గంటల\",\n    },\n  },\n\n  xHours: {\n    standalone: {\n      one: \"ఒక గంట\", // CLDR #1308\n      other: \"{{count}} గంటలు\",\n    },\n    withPreposition: {\n      one: \"ఒక గంట\",\n      other: \"{{count}} గంటల\",\n    },\n  },\n\n  xDays: {\n    standalone: {\n      one: \"ఒక రోజు\", // CLDR #1292\n      other: \"{{count}} రోజులు\",\n    },\n    withPreposition: {\n      one: \"ఒక రోజు\",\n      other: \"{{count}} రోజుల\",\n    },\n  },\n\n  aboutXWeeks: {\n    standalone: {\n      one: \"సుమారు ఒక వారం\",\n      other: \"సుమారు {{count}} వారాలు\",\n    },\n    withPreposition: {\n      one: \"సుమారు ఒక వారం\",\n      other: \"సుమారు {{count}} వారాలల\",\n    },\n  },\n\n  xWeeks: {\n    standalone: {\n      one: \"ఒక వారం\",\n      other: \"{{count}} వారాలు\",\n    },\n    withPreposition: {\n      one: \"ఒక వారం\",\n      other: \"{{count}} వారాలల\",\n    },\n  },\n\n  aboutXMonths: {\n    standalone: {\n      one: \"సుమారు ఒక నెల\",\n      other: \"సుమారు {{count}} నెలలు\",\n    },\n    withPreposition: {\n      one: \"సుమారు ఒక నెల\",\n      other: \"సుమారు {{count}} నెలల\",\n    },\n  },\n\n  xMonths: {\n    standalone: {\n      one: \"ఒక నెల\", // CLDR #1281\n      other: \"{{count}} నెలలు\",\n    },\n    withPreposition: {\n      one: \"ఒక నెల\",\n      other: \"{{count}} నెలల\",\n    },\n  },\n\n  aboutXYears: {\n    standalone: {\n      one: \"సుమారు ఒక సంవత్సరం\",\n      other: \"సుమారు {{count}} సంవత్సరాలు\",\n    },\n    withPreposition: {\n      one: \"సుమారు ఒక సంవత్సరం\",\n      other: \"సుమారు {{count}} సంవత్సరాల\",\n    },\n  },\n\n  xYears: {\n    standalone: {\n      one: \"ఒక సంవత్సరం\", // CLDR #1275\n      other: \"{{count}} సంవత్సరాలు\",\n    },\n    withPreposition: {\n      one: \"ఒక సంవత్సరం\",\n      other: \"{{count}} సంవత్సరాల\",\n    },\n  },\n\n  overXYears: {\n    standalone: {\n      one: \"ఒక సంవత్సరం పైగా\",\n      other: \"{{count}} సంవత్సరాలకు పైగా\",\n    },\n    withPreposition: {\n      one: \"ఒక సంవత్సరం\",\n      other: \"{{count}} సంవత్సరాల\",\n    },\n  },\n\n  almostXYears: {\n    standalone: {\n      one: \"దాదాపు ఒక సంవత్సరం\",\n      other: \"దాదాపు {{count}} సంవత్సరాలు\",\n    },\n    withPreposition: {\n      one: \"దాదాపు ఒక సంవత్సరం\",\n      other: \"దాదాపు {{count}} సంవత్సరాల\",\n    },\n  },\n};\n\nexport const formatDistance = (token, count, options) => {\n  let result;\n\n  const tokenValue = options?.addSuffix\n    ? formatDistanceLocale[token].withPreposition\n    : formatDistanceLocale[token].standalone;\n\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"లో\";\n    } else {\n      return result + \" క్రితం\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n\n// CLDR #1807 - #1811\nconst dateFormats = {\n  full: \"d, MMMM y, EEEE\",\n  long: \"d MMMM, y\",\n  medium: \"d MMM, y\",\n  short: \"dd-MM-yy\",\n};\n\n// CLDR #1807 - #1811\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\n// CLDR #1815 - #1818\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}'కి'\",\n  long: \"{{date}} {{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","// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n\nconst formatRelativeLocale = {\n  lastWeek: \"'గత' eeee p\", // CLDR #1384\n  yesterday: \"'నిన్న' p\", // CLDR #1393\n  today: \"'ఈ రోజు' p\", // CLDR #1394\n  tomorrow: \"'రేపు' p\", // CLDR #1395\n  nextWeek: \"'తదుపరి' eeee p\", // CLDR #1386\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// Source: https://www.unicode.org/cldr/charts/32/summary/te.html\n// Source: https://dsal.uchicago.edu/dictionaries/brown/\n\n// CLDR #1605 - #1608\nconst eraValues = {\n  narrow: [\"క్రీ.పూ.\", \"క్రీ.శ.\"],\n  abbreviated: [\"క్రీ.పూ.\", \"క్రీ.శ.\"],\n  wide: [\"క్రీస్తు పూర్వం\", \"క్రీస్తుశకం\"],\n};\n\n// CLDR #1613 - #1628\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"త్రై1\", \"త్రై2\", \"త్రై3\", \"త్రై4\"],\n  wide: [\"1వ త్రైమాసికం\", \"2వ త్రైమాసికం\", \"3వ త్రైమాసికం\", \"4వ త్రైమాసికం\"],\n};\n\n// CLDR #1637 - #1708\nconst monthValues = {\n  narrow: [\"జ\", \"ఫి\", \"మా\", \"ఏ\", \"మే\", \"జూ\", \"జు\", \"ఆ\", \"సె\", \"అ\", \"న\", \"డి\"],\n\n  abbreviated: [\n    \"జన\",\n    \"ఫిబ్ర\",\n    \"మార్చి\",\n    \"ఏప్రి\",\n    \"మే\",\n    \"జూన్\",\n    \"జులై\",\n    \"ఆగ\",\n    \"సెప్టెం\",\n    \"అక్టో\",\n    \"నవం\",\n    \"డిసెం\",\n  ],\n\n  wide: [\n    \"జనవరి\",\n    \"ఫిబ్రవరి\",\n    \"మార్చి\",\n    \"ఏప్రిల్\",\n    \"మే\",\n    \"జూన్\",\n    \"జులై\",\n    \"ఆగస్టు\",\n    \"సెప్టెంబర్\",\n    \"అక్టోబర్\",\n    \"నవంబర్\",\n    \"డిసెంబర్\",\n  ],\n};\n\n// CLDR #1709 - #1764\nconst dayValues = {\n  narrow: [\"ఆ\", \"సో\", \"మ\", \"బు\", \"గు\", \"శు\", \"శ\"],\n  short: [\"ఆది\", \"సోమ\", \"మంగళ\", \"బుధ\", \"గురు\", \"శుక్ర\", \"శని\"],\n  abbreviated: [\"ఆది\", \"సోమ\", \"మంగళ\", \"బుధ\", \"గురు\", \"శుక్ర\", \"శని\"],\n  wide: [\n    \"ఆదివారం\",\n    \"సోమవారం\",\n    \"మంగళవారం\",\n    \"బుధవారం\",\n    \"గురువారం\",\n    \"శుక్రవారం\",\n    \"శనివారం\",\n  ],\n};\n\n// CLDR #1767 - #1806\nconst dayPeriodValues = {\n  narrow: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n  abbreviated: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n  wide: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n  abbreviated: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n  wide: {\n    am: \"పూర్వాహ్నం\",\n    pm: \"అపరాహ్నం\",\n    midnight: \"అర్ధరాత్రి\",\n    noon: \"మిట్టమధ్యాహ్నం\",\n    morning: \"ఉదయం\",\n    afternoon: \"మధ్యాహ్నం\",\n    evening: \"సాయంత్రం\",\n    night: \"రాత్రి\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \"వ\";\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(వ)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(క్రీ\\.పూ\\.|క్రీ\\.శ\\.)/i,\n  abbreviated:\n    /^(క్రీ\\.?\\s?పూ\\.?|ప్ర\\.?\\s?శ\\.?\\s?పూ\\.?|క్రీ\\.?\\s?శ\\.?|సా\\.?\\s?శ\\.?)/i,\n  wide: /^(క్రీస్తు పూర్వం|ప్రస్తుత శకానికి పూర్వం|క్రీస్తు శకం|ప్రస్తుత శకం)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(పూ|శ)/i, /^సా/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^త్రై[1234]/i,\n  wide: /^[1234](వ)? త్రైమాసికం/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(జూ|జు|జ|ఫి|మా|ఏ|మే|ఆ|సె|అ|న|డి)/i,\n  abbreviated: /^(జన|ఫిబ్ర|మార్చి|ఏప్రి|మే|జూన్|జులై|ఆగ|సెప్|అక్టో|నవ|డిసె)/i,\n  wide: /^(జనవరి|ఫిబ్రవరి|మార్చి|ఏప్రిల్|మే|జూన్|జులై|ఆగస్టు|సెప్టెంబర్|అక్టోబర్|నవంబర్|డిసెంబర్)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^జ/i,\n    /^ఫి/i,\n    /^మా/i,\n    /^ఏ/i,\n    /^మే/i,\n    /^జూ/i,\n    /^జు/i,\n    /^ఆ/i,\n    /^సె/i,\n    /^అ/i,\n    /^న/i,\n    /^డి/i,\n  ],\n\n  any: [\n    /^జన/i,\n    /^ఫి/i,\n    /^మా/i,\n    /^ఏ/i,\n    /^మే/i,\n    /^జూన్/i,\n    /^జులై/i,\n    /^ఆగ/i,\n    /^సె/i,\n    /^అ/i,\n    /^న/i,\n    /^డి/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(ఆ|సో|మ|బు|గు|శు|శ)/i,\n  short: /^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,\n  abbreviated: /^(ఆది|సోమ|మం|బుధ|గురు|శుక్ర|శని)/i,\n  wide: /^(ఆదివారం|సోమవారం|మంగళవారం|బుధవారం|గురువారం|శుక్రవారం|శనివారం)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ఆ/i, /^సో/i, /^మ/i, /^బు/i, /^గు/i, /^శు/i, /^శ/i],\n  any: [/^ఆది/i, /^సోమ/i, /^మం/i, /^బుధ/i, /^గురు/i, /^శుక్ర/i, /^శని/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow:\n    /^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i,\n  any: /^(పూర్వాహ్నం|అపరాహ్నం|అర్ధరాత్రి|మిట్టమధ్యాహ్నం|ఉదయం|మధ్యాహ్నం|సాయంత్రం|రాత్రి)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^పూర్వాహ్నం/i,\n    pm: /^అపరాహ్నం/i,\n    midnight: /^అర్ధ/i,\n    noon: /^మిట్ట/i,\n    morning: /ఉదయం/i,\n    afternoon: /మధ్యాహ్నం/i,\n    evening: /సాయంత్రం/i,\n    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 \"./te/_lib/formatDistance.js\";\nimport { formatLong } from \"./te/_lib/formatLong.js\";\nimport { formatRelative } from \"./te/_lib/formatRelative.js\";\nimport { localize } from \"./te/_lib/localize.js\";\nimport { match } from \"./te/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Telugu locale\n * @language Telugu\n * @iso-639-2 tel\n * @author Kranthi Lakum [@kranthilakum](https://github.com/kranthilakum)\n */\nexport const te = {\n  code: \"te\",\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 te;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"น้อยกว่า 1 วินาที\",\n    other: \"น้อยกว่า {{count}} วินาที\",\n  },\n\n  xSeconds: {\n    one: \"1 วินาที\",\n    other: \"{{count}} วินาที\",\n  },\n\n  halfAMinute: \"ครึ่งนาที\",\n\n  lessThanXMinutes: {\n    one: \"น้อยกว่า 1 นาที\",\n    other: \"น้อยกว่า {{count}} นาที\",\n  },\n\n  xMinutes: {\n    one: \"1 นาที\",\n    other: \"{{count}} นาที\",\n  },\n\n  aboutXHours: {\n    one: \"ประมาณ 1 ชั่วโมง\",\n    other: \"ประมาณ {{count}} ชั่วโมง\",\n  },\n\n  xHours: {\n    one: \"1 ชั่วโมง\",\n    other: \"{{count}} ชั่วโมง\",\n  },\n\n  xDays: {\n    one: \"1 วัน\",\n    other: \"{{count}} วัน\",\n  },\n\n  aboutXWeeks: {\n    one: \"ประมาณ 1 สัปดาห์\",\n    other: \"ประมาณ {{count}} สัปดาห์\",\n  },\n\n  xWeeks: {\n    one: \"1 สัปดาห์\",\n    other: \"{{count}} สัปดาห์\",\n  },\n\n  aboutXMonths: {\n    one: \"ประมาณ 1 เดือน\",\n    other: \"ประมาณ {{count}} เดือน\",\n  },\n\n  xMonths: {\n    one: \"1 เดือน\",\n    other: \"{{count}} เดือน\",\n  },\n\n  aboutXYears: {\n    one: \"ประมาณ 1 ปี\",\n    other: \"ประมาณ {{count}} ปี\",\n  },\n\n  xYears: {\n    one: \"1 ปี\",\n    other: \"{{count}} ปี\",\n  },\n\n  overXYears: {\n    one: \"มากกว่า 1 ปี\",\n    other: \"มากกว่า {{count}} ปี\",\n  },\n\n  almostXYears: {\n    one: \"เกือบ 1 ปี\",\n    other: \"เกือบ {{count}} ปี\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      if (token === \"halfAMinute\") {\n        return \"ใน\" + result;\n      } else {\n        return \"ใน \" + result;\n      }\n    } else {\n      return result + \"ที่ผ่านมา\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"วันEEEEที่ do MMMM y\",\n  long: \"do MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss น. zzzz\",\n  long: \"H:mm:ss น. z\",\n  medium: \"H:mm:ss น.\",\n  short: \"H:mm น.\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'เวลา' {{time}}\",\n  long: \"{{date}} 'เวลา' {{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: \"medium\",\n  }),\n\n  dateTime: buildFormatLongFn({\n    formats: dateTimeFormats,\n    defaultWidth: \"full\",\n  }),\n};\n","const formatRelativeLocale = {\n  lastWeek: \"eeee'ที่แล้วเวลา' p\",\n  yesterday: \"'เมื่อวานนี้เวลา' p\",\n  today: \"'วันนี้เวลา' p\",\n  tomorrow: \"'พรุ่งนี้เวลา' p\",\n  nextWeek: \"eeee 'เวลา' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"B\", \"คศ\"],\n  abbreviated: [\"BC\", \"ค.ศ.\"],\n  wide: [\"ปีก่อนคริสตกาล\", \"คริสต์ศักราช\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"ไตรมาสแรก\", \"ไตรมาสที่สอง\", \"ไตรมาสที่สาม\", \"ไตรมาสที่สี่\"],\n};\n\nconst dayValues = {\n  narrow: [\"อา.\", \"จ.\", \"อ.\", \"พ.\", \"พฤ.\", \"ศ.\", \"ส.\"],\n  short: [\"อา.\", \"จ.\", \"อ.\", \"พ.\", \"พฤ.\", \"ศ.\", \"ส.\"],\n  abbreviated: [\"อา.\", \"จ.\", \"อ.\", \"พ.\", \"พฤ.\", \"ศ.\", \"ส.\"],\n  wide: [\"อาทิตย์\", \"จันทร์\", \"อังคาร\", \"พุธ\", \"พฤหัสบดี\", \"ศุกร์\", \"เสาร์\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"ม.ค.\",\n    \"ก.พ.\",\n    \"มี.ค.\",\n    \"เม.ย.\",\n    \"พ.ค.\",\n    \"มิ.ย.\",\n    \"ก.ค.\",\n    \"ส.ค.\",\n    \"ก.ย.\",\n    \"ต.ค.\",\n    \"พ.ย.\",\n    \"ธ.ค.\",\n  ],\n\n  abbreviated: [\n    \"ม.ค.\",\n    \"ก.พ.\",\n    \"มี.ค.\",\n    \"เม.ย.\",\n    \"พ.ค.\",\n    \"มิ.ย.\",\n    \"ก.ค.\",\n    \"ส.ค.\",\n    \"ก.ย.\",\n    \"ต.ค.\",\n    \"พ.ย.\",\n    \"ธ.ค.\",\n  ],\n\n  wide: [\n    \"มกราคม\",\n    \"กุมภาพันธ์\",\n    \"มีนาคม\",\n    \"เมษายน\",\n    \"พฤษภาคม\",\n    \"มิถุนายน\",\n    \"กรกฎาคม\",\n    \"สิงหาคม\",\n    \"กันยายน\",\n    \"ตุลาคม\",\n    \"พฤศจิกายน\",\n    \"ธันวาคม\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"เช้า\",\n    afternoon: \"บ่าย\",\n    evening: \"เย็น\",\n    night: \"กลางคืน\",\n  },\n  abbreviated: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"เช้า\",\n    afternoon: \"บ่าย\",\n    evening: \"เย็น\",\n    night: \"กลางคืน\",\n  },\n  wide: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"เช้า\",\n    afternoon: \"บ่าย\",\n    evening: \"เย็น\",\n    night: \"กลางคืน\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"ตอนเช้า\",\n    afternoon: \"ตอนกลางวัน\",\n    evening: \"ตอนเย็น\",\n    night: \"ตอนกลางคืน\",\n  },\n  abbreviated: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"ตอนเช้า\",\n    afternoon: \"ตอนกลางวัน\",\n    evening: \"ตอนเย็น\",\n    night: \"ตอนกลางคืน\",\n  },\n  wide: {\n    am: \"ก่อนเที่ยง\",\n    pm: \"หลังเที่ยง\",\n    midnight: \"เที่ยงคืน\",\n    noon: \"เที่ยง\",\n    morning: \"ตอนเช้า\",\n    afternoon: \"ตอนกลางวัน\",\n    evening: \"ตอนเย็น\",\n    night: \"ตอนกลางคืน\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^\\d+/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^([bB]|[aA]|คศ)/i,\n  abbreviated:\n    /^([bB]\\.?\\s?[cC]\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?|ค\\.?ศ\\.?)/i,\n  wide: /^(ก่อนคริสตกาล|คริสต์ศักราช|คริสตกาล)/i,\n};\nconst parseEraPatterns = {\n  any: [/^[bB]/i, /^(^[aA]|ค\\.?ศ\\.?|คริสตกาล|คริสต์ศักราช|)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^q[1234]/i,\n  wide: /^ไตรมาส(ที่)? ?[1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/(1|แรก|หนึ่ง)/i, /(2|สอง)/i, /(3|สาม)/i, /(4|สี่)/i],\n};\n\nconst matchMonthPatterns = {\n  narrow:\n    /^(ม\\.?ค\\.?|ก\\.?พ\\.?|มี\\.?ค\\.?|เม\\.?ย\\.?|พ\\.?ค\\.?|มิ\\.?ย\\.?|ก\\.?ค\\.?|ส\\.?ค\\.?|ก\\.?ย\\.?|ต\\.?ค\\.?|พ\\.?ย\\.?|ธ\\.?ค\\.?)/i,\n  abbreviated:\n    /^(ม\\.?ค\\.?|ก\\.?พ\\.?|มี\\.?ค\\.?|เม\\.?ย\\.?|พ\\.?ค\\.?|มิ\\.?ย\\.?|ก\\.?ค\\.?|ส\\.?ค\\.?|ก\\.?ย\\.?|ต\\.?ค\\.?|พ\\.?ย\\.?|ธ\\.?ค\\.?')/i,\n  wide: /^(มกราคม|กุมภาพันธ์|มีนาคม|เมษายน|พฤษภาคม|มิถุนายน|กรกฎาคม|สิงหาคม|กันยายน|ตุลาคม|พฤศจิกายน|ธันวาคม)/i,\n};\nconst parseMonthPatterns = {\n  wide: [\n    /^มก/i,\n    /^กุม/i,\n    /^มี/i,\n    /^เม/i,\n    /^พฤษ/i,\n    /^มิ/i,\n    /^กรก/i,\n    /^ส/i,\n    /^กัน/i,\n    /^ต/i,\n    /^พฤศ/i,\n    /^ธ/i,\n  ],\n\n  any: [\n    /^ม\\.?ค\\.?/i,\n    /^ก\\.?พ\\.?/i,\n    /^มี\\.?ค\\.?/i,\n    /^เม\\.?ย\\.?/i,\n    /^พ\\.?ค\\.?/i,\n    /^มิ\\.?ย\\.?/i,\n    /^ก\\.?ค\\.?/i,\n    /^ส\\.?ค\\.?/i,\n    /^ก\\.?ย\\.?/i,\n    /^ต\\.?ค\\.?/i,\n    /^พ\\.?ย\\.?/i,\n    /^ธ\\.?ค\\.?/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n  short: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n  abbreviated: /^(อา\\.?|จ\\.?|อ\\.?|พฤ\\.?|พ\\.?|ศ\\.?|ส\\.?)/i,\n  wide: /^(อาทิตย์|จันทร์|อังคาร|พุธ|พฤหัสบดี|ศุกร์|เสาร์)/i,\n};\nconst parseDayPatterns = {\n  wide: [/^อา/i, /^จั/i, /^อั/i, /^พุธ/i, /^พฤ/i, /^ศ/i, /^เส/i],\n  any: [/^อา/i, /^จ/i, /^อ/i, /^พ(?!ฤ)/i, /^พฤ/i, /^ศ/i, /^ส/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(ก่อนเที่ยง|หลังเที่ยง|เที่ยงคืน|เที่ยง|(ตอน.*?)?.*(เที่ยง|เช้า|บ่าย|เย็น|กลางคืน))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ก่อนเที่ยง/i,\n    pm: /^หลังเที่ยง/i,\n    midnight: /^เที่ยงคืน/i,\n    noon: /^เที่ยง/i,\n    morning: /เช้า/i,\n    afternoon: /บ่าย/i,\n    evening: /เย็น/i,\n    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 \"./th/_lib/formatDistance.js\";\nimport { formatLong } from \"./th/_lib/formatLong.js\";\nimport { formatRelative } from \"./th/_lib/formatRelative.js\";\nimport { localize } from \"./th/_lib/localize.js\";\nimport { match } from \"./th/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Thai locale.\n * @language Thai\n * @iso-639-2 tha\n * @author Athiwat Hirunworawongkun [@athivvat](https://github.com/athivvat)\n * @author [@hawkup](https://github.com/hawkup)\n * @author  Jirawat I. [@nodtem66](https://github.com/nodtem66)\n */\nexport const th = {\n  code: \"th\",\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 th;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"bir saniyeden az\",\n    other: \"{{count}} saniyeden az\",\n  },\n\n  xSeconds: {\n    one: \"1 saniye\",\n    other: \"{{count}} saniye\",\n  },\n\n  halfAMinute: \"yarım dakika\",\n\n  lessThanXMinutes: {\n    one: \"bir dakikadan az\",\n    other: \"{{count}} dakikadan az\",\n  },\n\n  xMinutes: {\n    one: \"1 dakika\",\n    other: \"{{count}} dakika\",\n  },\n\n  aboutXHours: {\n    one: \"yaklaşık 1 saat\",\n    other: \"yaklaşık {{count}} saat\",\n  },\n\n  xHours: {\n    one: \"1 saat\",\n    other: \"{{count}} saat\",\n  },\n\n  xDays: {\n    one: \"1 gün\",\n    other: \"{{count}} gün\",\n  },\n\n  aboutXWeeks: {\n    one: \"yaklaşık 1 hafta\",\n    other: \"yaklaşık {{count}} hafta\",\n  },\n\n  xWeeks: {\n    one: \"1 hafta\",\n    other: \"{{count}} hafta\",\n  },\n\n  aboutXMonths: {\n    one: \"yaklaşık 1 ay\",\n    other: \"yaklaşık {{count}} ay\",\n  },\n\n  xMonths: {\n    one: \"1 ay\",\n    other: \"{{count}} ay\",\n  },\n\n  aboutXYears: {\n    one: \"yaklaşık 1 yıl\",\n    other: \"yaklaşık {{count}} yıl\",\n  },\n\n  xYears: {\n    one: \"1 yıl\",\n    other: \"{{count}} yıl\",\n  },\n\n  overXYears: {\n    one: \"1 yıldan fazla\",\n    other: \"{{count}} yıldan fazla\",\n  },\n\n  almostXYears: {\n    one: \"neredeyse 1 yıl\",\n    other: \"neredeyse {{count}} yıl\",\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 result + \" sonra\";\n    } else {\n      return result + \" önce\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"d MMMM y EEEE\",\n  long: \"d MMMM y\",\n  medium: \"d MMM y\",\n  short: \"dd.MM.yyyy\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'saat' {{time}}\",\n  long: \"{{date}} 'saat' {{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: \"'geçen hafta' eeee 'saat' p\",\n  yesterday: \"'dün saat' p\",\n  today: \"'bugün saat' p\",\n  tomorrow: \"'yarın saat' p\",\n  nextWeek: \"eeee 'saat' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"MÖ\", \"MS\"],\n  abbreviated: [\"MÖ\", \"MS\"],\n  wide: [\"Milattan Önce\", \"Milattan Sonra\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1Ç\", \"2Ç\", \"3Ç\", \"4Ç\"],\n  wide: [\"İlk çeyrek\", \"İkinci Çeyrek\", \"Üçüncü çeyrek\", \"Son çeyrek\"],\n};\n\nconst monthValues = {\n  narrow: [\"O\", \"Ş\", \"M\", \"N\", \"M\", \"H\", \"T\", \"A\", \"E\", \"E\", \"K\", \"A\"],\n  abbreviated: [\n    \"Oca\",\n    \"Şub\",\n    \"Mar\",\n    \"Nis\",\n    \"May\",\n    \"Haz\",\n    \"Tem\",\n    \"Ağu\",\n    \"Eyl\",\n    \"Eki\",\n    \"Kas\",\n    \"Ara\",\n  ],\n\n  wide: [\n    \"Ocak\",\n    \"Şubat\",\n    \"Mart\",\n    \"Nisan\",\n    \"Mayıs\",\n    \"Haziran\",\n    \"Temmuz\",\n    \"Ağustos\",\n    \"Eylül\",\n    \"Ekim\",\n    \"Kasım\",\n    \"Aralık\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"P\", \"P\", \"S\", \"Ç\", \"P\", \"C\", \"C\"],\n  short: [\"Pz\", \"Pt\", \"Sa\", \"Ça\", \"Pe\", \"Cu\", \"Ct\"],\n  abbreviated: [\"Paz\", \"Pzt\", \"Sal\", \"Çar\", \"Per\", \"Cum\", \"Cts\"],\n  wide: [\n    \"Pazar\",\n    \"Pazartesi\",\n    \"Salı\",\n    \"Çarşamba\",\n    \"Perşembe\",\n    \"Cuma\",\n    \"Cumartesi\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"öö\",\n    pm: \"ös\",\n    midnight: \"gy\",\n    noon: \"ö\",\n    morning: \"sa\",\n    afternoon: \"ös\",\n    evening: \"ak\",\n    night: \"ge\",\n  },\n  abbreviated: {\n    am: \"ÖÖ\",\n    pm: \"ÖS\",\n    midnight: \"gece yarısı\",\n    noon: \"öğle\",\n    morning: \"sabah\",\n    afternoon: \"öğleden sonra\",\n    evening: \"akşam\",\n    night: \"gece\",\n  },\n  wide: {\n    am: \"Ö.Ö.\",\n    pm: \"Ö.S.\",\n    midnight: \"gece yarısı\",\n    noon: \"öğle\",\n    morning: \"sabah\",\n    afternoon: \"öğleden sonra\",\n    evening: \"akşam\",\n    night: \"gece\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"öö\",\n    pm: \"ös\",\n    midnight: \"gy\",\n    noon: \"ö\",\n    morning: \"sa\",\n    afternoon: \"ös\",\n    evening: \"ak\",\n    night: \"ge\",\n  },\n  abbreviated: {\n    am: \"ÖÖ\",\n    pm: \"ÖS\",\n    midnight: \"gece yarısı\",\n    noon: \"öğlen\",\n    morning: \"sabahleyin\",\n    afternoon: \"öğleden sonra\",\n    evening: \"akşamleyin\",\n    night: \"geceleyin\",\n  },\n  wide: {\n    am: \"ö.ö.\",\n    pm: \"ö.s.\",\n    midnight: \"gece yarısı\",\n    noon: \"öğlen\",\n    morning: \"sabahleyin\",\n    afternoon: \"öğleden sonra\",\n    evening: \"akşamleyin\",\n    night: \"geceleyin\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  const number = Number(dirtyNumber);\n  return number + \".\";\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) => Number(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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(\\.)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(mö|ms)/i,\n  abbreviated: /^(mö|ms)/i,\n  wide: /^(milattan önce|milattan sonra)/i,\n};\nconst parseEraPatterns = {\n  any: [/(^mö|^milattan önce)/i, /(^ms|^milattan sonra)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234]ç/i,\n  wide: /^((i|İ)lk|(i|İ)kinci|üçüncü|son) çeyrek/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n  abbreviated: [/1ç/i, /2ç/i, /3ç/i, /4ç/i],\n  wide: [\n    /^(i|İ)lk çeyrek/i,\n    /(i|İ)kinci çeyrek/i,\n    /üçüncü çeyrek/i,\n    /son çeyrek/i,\n  ],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[oşmnhtaek]/i,\n  abbreviated: /^(oca|şub|mar|nis|may|haz|tem|ağu|eyl|eki|kas|ara)/i,\n  wide: /^(ocak|şubat|mart|nisan|mayıs|haziran|temmuz|ağustos|eylül|ekim|kasım|aralık)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^o/i,\n    /^ş/i,\n    /^m/i,\n    /^n/i,\n    /^m/i,\n    /^h/i,\n    /^t/i,\n    /^a/i,\n    /^e/i,\n    /^e/i,\n    /^k/i,\n    /^a/i,\n  ],\n\n  any: [\n    /^o/i,\n    /^ş/i,\n    /^mar/i,\n    /^n/i,\n    /^may/i,\n    /^h/i,\n    /^t/i,\n    /^ağ/i,\n    /^ey/i,\n    /^ek/i,\n    /^k/i,\n    /^ar/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[psçc]/i,\n  short: /^(pz|pt|sa|ça|pe|cu|ct)/i,\n  abbreviated: /^(paz|pzt|sal|çar|per|cum|cts)/i,\n  wide: /^(pazar(?!tesi)|pazartesi|salı|çarşamba|perşembe|cuma(?!rtesi)|cumartesi)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^p/i, /^p/i, /^s/i, /^ç/i, /^p/i, /^c/i, /^c/i],\n  any: [/^pz/i, /^pt/i, /^sa/i, /^ça/i, /^pe/i, /^cu/i, /^ct/i],\n  wide: [\n    /^pazar(?!tesi)/i,\n    /^pazartesi/i,\n    /^salı/i,\n    /^çarşamba/i,\n    /^perşembe/i,\n    /^cuma(?!rtesi)/i,\n    /^cumartesi/i,\n  ],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(öö|ös|gy|ö|sa|ös|ak|ge)/i,\n  any: /^(ö\\.?\\s?[ös]\\.?|öğleden sonra|gece yarısı|öğle|(sabah|öğ|akşam|gece)(leyin))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ö\\.?ö\\.?/i,\n    pm: /^ö\\.?s\\.?/i,\n    midnight: /^(gy|gece yarısı)/i,\n    noon: /^öğ/i,\n    morning: /^sa/i,\n    afternoon: /^öğleden sonra/i,\n    evening: /^ak/i,\n    night: /^ge/i,\n  },\n};\n\nexport const match = {\n  ordinalNumber: buildMatchPatternFn({\n    matchPattern: matchOrdinalNumberPattern,\n    parsePattern: parseOrdinalNumberPattern,\n    valueCallback: function (value) {\n      return parseInt(value, 10);\n    },\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 \"./tr/_lib/formatDistance.js\";\nimport { formatLong } from \"./tr/_lib/formatLong.js\";\nimport { formatRelative } from \"./tr/_lib/formatRelative.js\";\nimport { localize } from \"./tr/_lib/localize.js\";\nimport { match } from \"./tr/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Turkish locale.\n * @language Turkish\n * @iso-639-2 tur\n * @author Alpcan Aydın [@alpcanaydin](https://github.com/alpcanaydin)\n * @author Berkay Sargın [@berkaey](https://github.com/berkaey)\n * @author Fatih Bulut [@bulutfatih](https://github.com/bulutfatih)\n * @author Ismail Demirbilek [@dbtek](https://github.com/dbtek)\n * @author İsmail Kayar [@ikayar](https://github.com/ikayar)\n *\n *\n */\nexport const tr = {\n  code: \"tr\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default tr;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"بىر سىكۇنت ئىچىدە\",\n    other: \"سىكۇنت ئىچىدە {{count}}\",\n  },\n\n  xSeconds: {\n    one: \"بىر سىكۇنت\",\n    other: \"سىكۇنت {{count}}\",\n  },\n\n  halfAMinute: \"يىرىم مىنۇت\",\n\n  lessThanXMinutes: {\n    one: \"بىر مىنۇت ئىچىدە\",\n    other: \"مىنۇت ئىچىدە {{count}}\",\n  },\n\n  xMinutes: {\n    one: \"بىر مىنۇت\",\n    other: \"مىنۇت {{count}}\",\n  },\n\n  aboutXHours: {\n    one: \"تەخمىنەن بىر سائەت\",\n    other: \"سائەت {{count}} تەخمىنەن\",\n  },\n\n  xHours: {\n    one: \"بىر سائەت\",\n    other: \"سائەت {{count}}\",\n  },\n\n  xDays: {\n    one: \"بىر كۈن\",\n    other: \"كۈن {{count}}\",\n  },\n\n  aboutXWeeks: {\n    one: \"تەخمىنەن بىرھەپتە\",\n    other: \"ھەپتە {{count}} تەخمىنەن\",\n  },\n\n  xWeeks: {\n    one: \"بىرھەپتە\",\n    other: \"ھەپتە {{count}}\",\n  },\n\n  aboutXMonths: {\n    one: \"تەخمىنەن بىر ئاي\",\n    other: \"ئاي {{count}} تەخمىنەن\",\n  },\n\n  xMonths: {\n    one: \"بىر ئاي\",\n    other: \"ئاي {{count}}\",\n  },\n\n  aboutXYears: {\n    one: \"تەخمىنەن بىر يىل\",\n    other: \"يىل {{count}} تەخمىنەن\",\n  },\n\n  xYears: {\n    one: \"بىر يىل\",\n    other: \"يىل {{count}}\",\n  },\n\n  overXYears: {\n    one: \"بىر يىلدىن ئارتۇق\",\n    other: \"يىلدىن ئارتۇق {{count}}\",\n  },\n\n  almostXYears: {\n    one: \"ئاساسەن بىر يىل\",\n    other: \"يىل {{count}} ئاساسەن\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result;\n    } else {\n      return result + \" بولدى\";\n    }\n  }\n\n  return result;\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}} 'دە' {{time}}\",\n  long: \"{{date}} 'دە' {{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: \"'ئ‍ۆتكەن' eeee 'دە' p\",\n  yesterday: \"'تۈنۈگۈن دە' p\",\n  today: \"'بۈگۈن دە' p\",\n  tomorrow: \"'ئەتە دە' p\",\n  nextWeek: \"eeee 'دە' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"ب\", \"ك\"],\n  abbreviated: [\"ب\", \"ك\"],\n  wide: [\"مىيلادىدىن بۇرۇن\", \"مىيلادىدىن كىيىن\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1\", \"2\", \"3\", \"4\"],\n  wide: [\"بىرىنجى چارەك\", \"ئىككىنجى چارەك\", \"ئۈچىنجى چارەك\", \"تۆتىنجى چارەك\"],\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: [\"ي\", \"ف\", \"م\", \"ا\", \"م\", \"ى\", \"ى\", \"ا\", \"س\", \"ۆ\", \"ن\", \"د\"],\n  abbreviated: [\n    \"يانۋار\",\n    \"فېۋىرال\",\n    \"مارت\",\n    \"ئاپرىل\",\n    \"ماي\",\n    \"ئىيۇن\",\n    \"ئىيول\",\n    \"ئاۋغۇست\",\n    \"سىنتەبىر\",\n    \"ئۆكتەبىر\",\n    \"نويابىر\",\n    \"دىكابىر\",\n  ],\n\n  wide: [\n    \"يانۋار\",\n    \"فېۋىرال\",\n    \"مارت\",\n    \"ئاپرىل\",\n    \"ماي\",\n    \"ئىيۇن\",\n    \"ئىيول\",\n    \"ئاۋغۇست\",\n    \"سىنتەبىر\",\n    \"ئۆكتەبىر\",\n    \"نويابىر\",\n    \"دىكابىر\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"ي\", \"د\", \"س\", \"چ\", \"پ\", \"ج\", \"ش\"],\n  short: [\"ي\", \"د\", \"س\", \"چ\", \"پ\", \"ج\", \"ش\"],\n  abbreviated: [\n    \"يەكشەنبە\",\n    \"دۈشەنبە\",\n    \"سەيشەنبە\",\n    \"چارشەنبە\",\n    \"پەيشەنبە\",\n    \"جۈمە\",\n    \"شەنبە\",\n  ],\n\n  wide: [\n    \"يەكشەنبە\",\n    \"دۈشەنبە\",\n    \"سەيشەنبە\",\n    \"چارشەنبە\",\n    \"پەيشەنبە\",\n    \"جۈمە\",\n    \"شەنبە\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەن\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشىم\",\n    night: \"كىچە\",\n  },\n  abbreviated: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەن\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشىم\",\n    night: \"كىچە\",\n  },\n  wide: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەن\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشىم\",\n    night: \"كىچە\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەندە\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشامدا\",\n    night: \"كىچىدە\",\n  },\n  abbreviated: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەندە\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشامدا\",\n    night: \"كىچىدە\",\n  },\n  wide: {\n    am: \"ئە\",\n    pm: \"چ\",\n    midnight: \"ك\",\n    noon: \"چ\",\n    morning: \"ئەتىگەندە\",\n    afternoon: \"چۈشتىن كىيىن\",\n    evening: \"ئاخشامدا\",\n    night: \"كىچىدە\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","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: /^(ب|ك)/i,\n  wide: /^(مىيلادىدىن بۇرۇن|مىيلادىدىن كىيىن)/i,\n};\nconst parseEraPatterns = {\n  any: [/^بۇرۇن/i, /^كىيىن/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^چ[1234]/i,\n  wide: /^چارەك [1234]/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  // eslint-disable-next-line no-misleading-character-class\n  narrow: /^[يفمئامئ‍ئاسۆند]/i,\n  abbreviated:\n    /^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i,\n  wide: /^(يانۋار|فېۋىرال|مارت|ئاپرىل|ماي|ئىيۇن|ئىيول|ئاۋغۇست|سىنتەبىر|ئۆكتەبىر|نويابىر|دىكابىر)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^ي/i,\n    /^ف/i,\n    /^م/i,\n    /^ا/i,\n    /^م/i,\n    /^ى‍/i,\n    /^ى‍/i,\n    /^ا‍/i,\n    /^س/i,\n    /^ۆ/i,\n    /^ن/i,\n    /^د/i,\n  ],\n\n  any: [\n    /^يان/i,\n    /^فېۋ/i,\n    /^مار/i,\n    /^ئاپ/i,\n    /^ماي/i,\n    /^ئىيۇن/i,\n    /^ئىيول/i,\n    /^ئاۋ/i,\n    /^سىن/i,\n    /^ئۆك/i,\n    /^نوي/i,\n    /^دىك/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[دسچپجشي]/i,\n  short: /^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,\n  abbreviated: /^(يە|دۈ|سە|چا|پە|جۈ|شە)/i,\n  wide: /^(يەكشەنبە|دۈشەنبە|سەيشەنبە|چارشەنبە|پەيشەنبە|جۈمە|شەنبە)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^ي/i, /^د/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i],\n  any: [/^ي/i, /^د/i, /^س/i, /^چ/i, /^پ/i, /^ج/i, /^ش/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i,\n  any: /^(ئە|چ|ك|چ|(دە|ئەتىگەن) ( ئە‍|چۈشتىن كىيىن|ئاخشىم|كىچە))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^ئە/i,\n    pm: /^چ/i,\n    midnight: /^ك/i,\n    noon: /^چ/i,\n    morning: /ئەتىگەن/i,\n    afternoon: /چۈشتىن كىيىن/i,\n    evening: /ئاخشىم/i,\n    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 \"./ug/_lib/formatDistance.js\";\nimport { formatLong } from \"./ug/_lib/formatLong.js\";\nimport { formatRelative } from \"./ug/_lib/formatRelative.js\";\nimport { localize } from \"./ug/_lib/localize.js\";\nimport { match } from \"./ug/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Uighur locale\n * @language Uighur\n * @iso-639-2 uig\n * @author Abduwaly M. [@abduwaly](https://github.com/abduwaly)\n */\nexport const ug = {\n  code: \"ug\",\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 ug;\n","function declension(scheme, count) {\n  // scheme for count=1 exists\n  if (scheme.one !== undefined && count === 1) {\n    return scheme.one;\n  }\n\n  const rem10 = count % 10;\n  const rem100 = count % 100;\n\n  // 1, 21, 31, ...\n  if (rem10 === 1 && rem100 !== 11) {\n    return scheme.singularNominative.replace(\"{{count}}\", String(count));\n\n    // 2, 3, 4, 22, 23, 24, 32 ...\n  } else if (rem10 >= 2 && rem10 <= 4 && (rem100 < 10 || rem100 > 20)) {\n    return scheme.singularGenitive.replace(\"{{count}}\", String(count));\n\n    // 5, 6, 7, 8, 9, 10, 11, ...\n  } else {\n    return scheme.pluralGenitive.replace(\"{{count}}\", String(count));\n  }\n}\n\nfunction buildLocalizeTokenFn(scheme) {\n  return (count, options) => {\n    if (options && options.addSuffix) {\n      if (options.comparison && options.comparison > 0) {\n        if (scheme.future) {\n          return declension(scheme.future, count);\n        } else {\n          return \"за \" + declension(scheme.regular, count);\n        }\n      } else {\n        if (scheme.past) {\n          return declension(scheme.past, count);\n        } else {\n          return declension(scheme.regular, count) + \" тому\";\n        }\n      }\n    } else {\n      return declension(scheme.regular, count);\n    }\n  };\n}\n\nconst halfAtMinute = (_, options) => {\n  if (options && options.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return \"за півхвилини\";\n    } else {\n      return \"півхвилини тому\";\n    }\n  }\n\n  return \"півхвилини\";\n};\n\nconst formatDistanceLocale = {\n  lessThanXSeconds: buildLocalizeTokenFn({\n    regular: {\n      one: \"менше секунди\",\n      singularNominative: \"менше {{count}} секунди\",\n      singularGenitive: \"менше {{count}} секунд\",\n      pluralGenitive: \"менше {{count}} секунд\",\n    },\n    future: {\n      one: \"менше, ніж за секунду\",\n      singularNominative: \"менше, ніж за {{count}} секунду\",\n      singularGenitive: \"менше, ніж за {{count}} секунди\",\n      pluralGenitive: \"менше, ніж за {{count}} секунд\",\n    },\n  }),\n\n  xSeconds: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} секунда\",\n      singularGenitive: \"{{count}} секунди\",\n      pluralGenitive: \"{{count}} секунд\",\n    },\n    past: {\n      singularNominative: \"{{count}} секунду тому\",\n      singularGenitive: \"{{count}} секунди тому\",\n      pluralGenitive: \"{{count}} секунд тому\",\n    },\n    future: {\n      singularNominative: \"за {{count}} секунду\",\n      singularGenitive: \"за {{count}} секунди\",\n      pluralGenitive: \"за {{count}} секунд\",\n    },\n  }),\n\n  halfAMinute: halfAtMinute,\n\n  lessThanXMinutes: buildLocalizeTokenFn({\n    regular: {\n      one: \"менше хвилини\",\n      singularNominative: \"менше {{count}} хвилини\",\n      singularGenitive: \"менше {{count}} хвилин\",\n      pluralGenitive: \"менше {{count}} хвилин\",\n    },\n    future: {\n      one: \"менше, ніж за хвилину\",\n      singularNominative: \"менше, ніж за {{count}} хвилину\",\n      singularGenitive: \"менше, ніж за {{count}} хвилини\",\n      pluralGenitive: \"менше, ніж за {{count}} хвилин\",\n    },\n  }),\n\n  xMinutes: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} хвилина\",\n      singularGenitive: \"{{count}} хвилини\",\n      pluralGenitive: \"{{count}} хвилин\",\n    },\n    past: {\n      singularNominative: \"{{count}} хвилину тому\",\n      singularGenitive: \"{{count}} хвилини тому\",\n      pluralGenitive: \"{{count}} хвилин тому\",\n    },\n    future: {\n      singularNominative: \"за {{count}} хвилину\",\n      singularGenitive: \"за {{count}} хвилини\",\n      pluralGenitive: \"за {{count}} хвилин\",\n    },\n  }),\n\n  aboutXHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"близько {{count}} години\",\n      singularGenitive: \"близько {{count}} годин\",\n      pluralGenitive: \"близько {{count}} годин\",\n    },\n    future: {\n      singularNominative: \"приблизно за {{count}} годину\",\n      singularGenitive: \"приблизно за {{count}} години\",\n      pluralGenitive: \"приблизно за {{count}} годин\",\n    },\n  }),\n\n  xHours: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} годину\",\n      singularGenitive: \"{{count}} години\",\n      pluralGenitive: \"{{count}} годин\",\n    },\n  }),\n\n  xDays: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} день\",\n      singularGenitive: \"{{count}} днi\",\n      pluralGenitive: \"{{count}} днів\",\n    },\n  }),\n\n  aboutXWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"близько {{count}} тижня\",\n      singularGenitive: \"близько {{count}} тижнів\",\n      pluralGenitive: \"близько {{count}} тижнів\",\n    },\n    future: {\n      singularNominative: \"приблизно за {{count}} тиждень\",\n      singularGenitive: \"приблизно за {{count}} тижні\",\n      pluralGenitive: \"приблизно за {{count}} тижнів\",\n    },\n  }),\n\n  xWeeks: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} тиждень\",\n      singularGenitive: \"{{count}} тижні\",\n      pluralGenitive: \"{{count}} тижнів\",\n    },\n  }),\n\n  aboutXMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"близько {{count}} місяця\",\n      singularGenitive: \"близько {{count}} місяців\",\n      pluralGenitive: \"близько {{count}} місяців\",\n    },\n    future: {\n      singularNominative: \"приблизно за {{count}} місяць\",\n      singularGenitive: \"приблизно за {{count}} місяці\",\n      pluralGenitive: \"приблизно за {{count}} місяців\",\n    },\n  }),\n\n  xMonths: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} місяць\",\n      singularGenitive: \"{{count}} місяці\",\n      pluralGenitive: \"{{count}} місяців\",\n    },\n  }),\n\n  aboutXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"близько {{count}} року\",\n      singularGenitive: \"близько {{count}} років\",\n      pluralGenitive: \"близько {{count}} років\",\n    },\n    future: {\n      singularNominative: \"приблизно за {{count}} рік\",\n      singularGenitive: \"приблизно за {{count}} роки\",\n      pluralGenitive: \"приблизно за {{count}} років\",\n    },\n  }),\n\n  xYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"{{count}} рік\",\n      singularGenitive: \"{{count}} роки\",\n      pluralGenitive: \"{{count}} років\",\n    },\n  }),\n\n  overXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"більше {{count}} року\",\n      singularGenitive: \"більше {{count}} років\",\n      pluralGenitive: \"більше {{count}} років\",\n    },\n    future: {\n      singularNominative: \"більше, ніж за {{count}} рік\",\n      singularGenitive: \"більше, ніж за {{count}} роки\",\n      pluralGenitive: \"більше, ніж за {{count}} років\",\n    },\n  }),\n\n  almostXYears: buildLocalizeTokenFn({\n    regular: {\n      singularNominative: \"майже {{count}} рік\",\n      singularGenitive: \"майже {{count}} роки\",\n      pluralGenitive: \"майже {{count}} років\",\n    },\n    future: {\n      singularNominative: \"майже за {{count}} рік\",\n      singularGenitive: \"майже за {{count}} роки\",\n      pluralGenitive: \"майже за {{count}} років\",\n    },\n  }),\n};\n\nexport const formatDistance = (token, count, options) => {\n  options = options || {};\n\n  return formatDistanceLocale[token](count, options);\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM y 'р.'\",\n  long: \"do MMMM y 'р.'\",\n  medium: \"d MMM y 'р.'\",\n  short: \"dd.MM.y\",\n};\n\nconst timeFormats = {\n  full: \"H:mm:ss zzzz\",\n  long: \"H:mm:ss z\",\n  medium: \"H:mm:ss\",\n  short: \"H:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} 'о' {{time}}\",\n  long: \"{{date}} 'о' {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\nimport { toDate } from \"../../../toDate.js\";\n\nconst accusativeWeekdays = [\n  \"неділю\",\n  \"понеділок\",\n  \"вівторок\",\n  \"середу\",\n  \"четвер\",\n  \"п’ятницю\",\n  \"суботу\",\n];\n\nfunction lastWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 5:\n    case 6:\n      return \"'у минулу \" + weekday + \" о' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'у минулий \" + weekday + \" о' p\";\n  }\n}\n\nfunction thisWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  return \"'у \" + weekday + \" о' p\";\n}\n\nfunction nextWeek(day) {\n  const weekday = accusativeWeekdays[day];\n\n  switch (day) {\n    case 0:\n    case 3:\n    case 5:\n    case 6:\n      return \"'у наступну \" + weekday + \" о' p\";\n    case 1:\n    case 2:\n    case 4:\n      return \"'у наступний \" + weekday + \" о' p\";\n  }\n}\n\nconst lastWeekFormat = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return lastWeek(day);\n  }\n};\n\nconst nextWeekFormat = (dirtyDate, baseDate, options) => {\n  const date = toDate(dirtyDate);\n  const day = date.getDay();\n  if (isSameWeek(date, baseDate, options)) {\n    return thisWeek(day);\n  } else {\n    return nextWeek(day);\n  }\n};\n\nconst formatRelativeLocale = {\n  lastWeek: lastWeekFormat,\n  yesterday: \"'вчора о' p\",\n  today: \"'сьогодні о' p\",\n  tomorrow: \"'завтра о' p\",\n  nextWeek: nextWeekFormat,\n  other: \"P\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"до н.е.\", \"н.е.\"],\n  abbreviated: [\"до н. е.\", \"н. е.\"],\n  wide: [\"до нашої ери\", \"нашої ери\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"1-й кв.\", \"2-й кв.\", \"3-й кв.\", \"4-й кв.\"],\n  wide: [\"1-й квартал\", \"2-й квартал\", \"3-й квартал\", \"4-й квартал\"],\n};\n\nconst monthValues = {\n  // ДСТУ 3582:2013\n  narrow: [\"С\", \"Л\", \"Б\", \"К\", \"Т\", \"Ч\", \"Л\", \"С\", \"В\", \"Ж\", \"Л\", \"Г\"],\n  abbreviated: [\n    \"січ.\",\n    \"лют.\",\n    \"берез.\",\n    \"квіт.\",\n    \"трав.\",\n    \"черв.\",\n    \"лип.\",\n    \"серп.\",\n    \"верес.\",\n    \"жовт.\",\n    \"листоп.\",\n    \"груд.\",\n  ],\n\n  wide: [\n    \"січень\",\n    \"лютий\",\n    \"березень\",\n    \"квітень\",\n    \"травень\",\n    \"червень\",\n    \"липень\",\n    \"серпень\",\n    \"вересень\",\n    \"жовтень\",\n    \"листопад\",\n    \"грудень\",\n  ],\n};\n\nconst formattingMonthValues = {\n  narrow: [\"С\", \"Л\", \"Б\", \"К\", \"Т\", \"Ч\", \"Л\", \"С\", \"В\", \"Ж\", \"Л\", \"Г\"],\n  abbreviated: [\n    \"січ.\",\n    \"лют.\",\n    \"берез.\",\n    \"квіт.\",\n    \"трав.\",\n    \"черв.\",\n    \"лип.\",\n    \"серп.\",\n    \"верес.\",\n    \"жовт.\",\n    \"листоп.\",\n    \"груд.\",\n  ],\n\n  wide: [\n    \"січня\",\n    \"лютого\",\n    \"березня\",\n    \"квітня\",\n    \"травня\",\n    \"червня\",\n    \"липня\",\n    \"серпня\",\n    \"вересня\",\n    \"жовтня\",\n    \"листопада\",\n    \"грудня\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Н\", \"П\", \"В\", \"С\", \"Ч\", \"П\", \"С\"],\n  short: [\"нд\", \"пн\", \"вт\", \"ср\", \"чт\", \"пт\", \"сб\"],\n  abbreviated: [\"нед\", \"пон\", \"вів\", \"сер\", \"чтв\", \"птн\", \"суб\"],\n  wide: [\n    \"неділя\",\n    \"понеділок\",\n    \"вівторок\",\n    \"середа\",\n    \"четвер\",\n    \"п’ятниця\",\n    \"субота\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"півн.\",\n    noon: \"пол.\",\n    morning: \"ранок\",\n    afternoon: \"день\",\n    evening: \"веч.\",\n    night: \"ніч\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"півн.\",\n    noon: \"пол.\",\n    morning: \"ранок\",\n    afternoon: \"день\",\n    evening: \"веч.\",\n    night: \"ніч\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"північ\",\n    noon: \"полудень\",\n    morning: \"ранок\",\n    afternoon: \"день\",\n    evening: \"вечір\",\n    night: \"ніч\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"півн.\",\n    noon: \"пол.\",\n    morning: \"ранку\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночі\",\n  },\n  abbreviated: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"півн.\",\n    noon: \"пол.\",\n    morning: \"ранку\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночі\",\n  },\n  wide: {\n    am: \"ДП\",\n    pm: \"ПП\",\n    midnight: \"північ\",\n    noon: \"полудень\",\n    morning: \"ранку\",\n    afternoon: \"дня\",\n    evening: \"веч.\",\n    night: \"ночі\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const unit = String(options?.unit);\n  const number = Number(dirtyNumber);\n  let suffix;\n\n  if (unit === \"date\") {\n    if (number === 3 || number === 23) {\n      suffix = \"-є\";\n    } else {\n      suffix = \"-е\";\n    }\n  } else if (unit === \"minute\" || unit === \"second\" || unit === \"hour\") {\n    suffix = \"-а\";\n  } else {\n    suffix = \"-й\";\n  }\n\n  return number + suffix;\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    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n\n  day: buildLocalizeFn({\n    values: dayValues,\n    defaultWidth: \"wide\",\n  }),\n\n  dayPeriod: buildLocalizeFn({\n    values: dayPeriodValues,\n    defaultWidth: \"any\",\n    formattingValues: formattingDayPeriodValues,\n    defaultFormattingWidth: \"wide\",\n  }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(-?(е|й|є|а|я))?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^((до )?н\\.?\\s?е\\.?)/i,\n  abbreviated: /^((до )?н\\.?\\s?е\\.?)/i,\n  wide: /^(до нашої ери|нашої ери|наша ера)/i,\n};\n\nconst parseEraPatterns = {\n  any: [/^д/i, /^н/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^[1234](-?[иі]?й?)? кв.?/i,\n  wide: /^[1234](-?[иі]?й?)? квартал/i,\n};\n\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[слбктчвжг]/i,\n  abbreviated:\n    /^(січ|лют|бер(ез)?|квіт|трав|черв|лип|серп|вер(ес)?|жовт|лис(топ)?|груд)\\.?/i,\n  wide: /^(січень|січня|лютий|лютого|березень|березня|квітень|квітня|травень|травня|червня|червень|липень|липня|серпень|серпня|вересень|вересня|жовтень|жовтня|листопад[а]?|грудень|грудня)/i,\n};\n\nconst parseMonthPatterns = {\n  narrow: [\n    /^с/i,\n    /^л/i,\n    /^б/i,\n    /^к/i,\n    /^т/i,\n    /^ч/i,\n    /^л/i,\n    /^с/i,\n    /^в/i,\n    /^ж/i,\n    /^л/i,\n    /^г/i,\n  ],\n\n  any: [\n    /^сі/i,\n    /^лю/i,\n    /^б/i,\n    /^к/i,\n    /^т/i,\n    /^ч/i,\n    /^лип/i,\n    /^се/i,\n    /^в/i,\n    /^ж/i,\n    /^лис/i,\n    /^г/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[нпвсч]/i,\n  short: /^(нд|пн|вт|ср|чт|пт|сб)\\.?/i,\n  abbreviated: /^(нед|пон|вів|сер|че?тв|птн?|суб)\\.?/i,\n  wide: /^(неділ[яі]|понеділ[ок][ка]|вівтор[ок][ка]|серед[аи]|четвер(га)?|п\\W*?ятниц[яі]|субот[аи])/i,\n};\n\nconst parseDayPatterns = {\n  narrow: [/^н/i, /^п/i, /^в/i, /^с/i, /^ч/i, /^п/i, /^с/i],\n  any: [/^н/i, /^п[он]/i, /^в/i, /^с[ер]/i, /^ч/i, /^п\\W*?[ят]/i, /^с[уб]/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^([дп]п|півн\\.?|пол\\.?|ранок|ранку|день|дня|веч\\.?|ніч|ночі)/i,\n  abbreviated: /^([дп]п|півн\\.?|пол\\.?|ранок|ранку|день|дня|веч\\.?|ніч|ночі)/i,\n  wide: /^([дп]п|північ|полудень|ранок|ранку|день|дня|вечір|вечора|ніч|ночі)/i,\n};\n\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^дп/i,\n    pm: /^пп/i,\n    midnight: /^півн/i,\n    noon: /^пол/i,\n    morning: /^р/i,\n    afternoon: /^д[ен]/i,\n    evening: /^в/i,\n    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: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./uk/_lib/formatDistance.js\";\nimport { formatLong } from \"./uk/_lib/formatLong.js\";\nimport { formatRelative } from \"./uk/_lib/formatRelative.js\";\nimport { localize } from \"./uk/_lib/localize.js\";\nimport { match } from \"./uk/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Ukrainian locale.\n * @language Ukrainian\n * @iso-639-2 ukr\n * @author Andrii Korzh [@korzhyk](https://github.com/korzhyk)\n * @author Andriy Shcherbyak [@shcherbyakdev](https://github.com/shcherbyakdev)\n */\nexport const uk = {\n  code: \"uk\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default uk;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"sekunddan kam\",\n    other: \"{{count}} sekunddan kam\",\n  },\n\n  xSeconds: {\n    one: \"1 sekund\",\n    other: \"{{count}} sekund\",\n  },\n\n  halfAMinute: \"yarim minut\",\n\n  lessThanXMinutes: {\n    one: \"bir minutdan kam\",\n    other: \"{{count}} minutdan kam\",\n  },\n\n  xMinutes: {\n    one: \"1 minut\",\n    other: \"{{count}} minut\",\n  },\n\n  aboutXHours: {\n    one: \"tahminan 1 soat\",\n    other: \"tahminan {{count}} soat\",\n  },\n\n  xHours: {\n    one: \"1 soat\",\n    other: \"{{count}} soat\",\n  },\n\n  xDays: {\n    one: \"1 kun\",\n    other: \"{{count}} kun\",\n  },\n\n  aboutXWeeks: {\n    one: \"tahminan 1 hafta\",\n    other: \"tahminan {{count}} hafta\",\n  },\n\n  xWeeks: {\n    one: \"1 hafta\",\n    other: \"{{count}} hafta\",\n  },\n\n  aboutXMonths: {\n    one: \"tahminan 1 oy\",\n    other: \"tahminan {{count}} oy\",\n  },\n\n  xMonths: {\n    one: \"1 oy\",\n    other: \"{{count}} oy\",\n  },\n\n  aboutXYears: {\n    one: \"tahminan 1 yil\",\n    other: \"tahminan {{count}} yil\",\n  },\n\n  xYears: {\n    one: \"1 yil\",\n    other: \"{{count}} yil\",\n  },\n\n  overXYears: {\n    one: \"1 yildan ko'p\",\n    other: \"{{count}} yildan ko'p\",\n  },\n\n  almostXYears: {\n    one: \"deyarli 1 yil\",\n    other: \"deyarli {{count}} yil\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" dan keyin\";\n    } else {\n      return result + \" oldin\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"EEEE, do MMMM, y\",\n  long: \"do MMMM, y\",\n  medium: \"d MMM, y\",\n  short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n  full: \"h:mm:ss zzzz\",\n  long: \"h:mm:ss z\",\n  medium: \"h:mm:ss\",\n  short: \"h:mm\",\n};\n\nconst dateTimeFormats = {\n  any: \"{{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: \"any\",\n  }),\n};\n","const formatRelativeLocale = {\n  lastWeek: \"'oldingi' eeee p 'da'\",\n  yesterday: \"'kecha' p 'da'\",\n  today: \"'bugun' p 'da'\",\n  tomorrow: \"'ertaga' p 'da'\",\n  nextWeek: \"eeee p 'da'\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"M.A\", \"M.\"],\n  abbreviated: [\"M.A\", \"M.\"],\n  wide: [\"Miloddan Avvalgi\", \"Milodiy\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"CH.1\", \"CH.2\", \"CH.3\", \"CH.4\"],\n  wide: [\"1-chi chorak\", \"2-chi chorak\", \"3-chi chorak\", \"4-chi chorak\"],\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: [\"Y\", \"F\", \"M\", \"A\", \"M\", \"I\", \"I\", \"A\", \"S\", \"O\", \"N\", \"D\"],\n  abbreviated: [\n    \"Yan\",\n    \"Fev\",\n    \"Mar\",\n    \"Apr\",\n    \"May\",\n    \"Iyun\",\n    \"Iyul\",\n    \"Avg\",\n    \"Sen\",\n    \"Okt\",\n    \"Noy\",\n    \"Dek\",\n  ],\n\n  wide: [\n    \"Yanvar\",\n    \"Fevral\",\n    \"Mart\",\n    \"Aprel\",\n    \"May\",\n    \"Iyun\",\n    \"Iyul\",\n    \"Avgust\",\n    \"Sentabr\",\n    \"Oktabr\",\n    \"Noyabr\",\n    \"Dekabr\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"Y\", \"D\", \"S\", \"CH\", \"P\", \"J\", \"SH\"],\n  short: [\"Ya\", \"Du\", \"Se\", \"Cho\", \"Pa\", \"Ju\", \"Sha\"],\n  abbreviated: [\"Yak\", \"Dush\", \"Sesh\", \"Chor\", \"Pay\", \"Jum\", \"Shan\"],\n  wide: [\n    \"Yakshanba\",\n    \"Dushanba\",\n    \"Seshanba\",\n    \"Chorshanba\",\n    \"Payshanba\",\n    \"Juma\",\n    \"Shanba\",\n  ],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"y.t\",\n    noon: \"p.\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"yarim tun\",\n    noon: \"peshin\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"yarim tun\",\n    noon: \"peshin\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"a\",\n    pm: \"p\",\n    midnight: \"y.t\",\n    noon: \"p.\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"yarim tun\",\n    noon: \"peshin\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n  wide: {\n    am: \"a.m.\",\n    pm: \"p.m.\",\n    midnight: \"yarim tun\",\n    noon: \"peshin\",\n    morning: \"ertalab\",\n    afternoon: \"tushdan keyin\",\n    evening: \"kechqurun\",\n    night: \"tun\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, _options) => {\n  return String(dirtyNumber);\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)(chi)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(m\\.a|m\\.)/i,\n  abbreviated: /^(m\\.a\\.?\\s?m\\.?)/i,\n  wide: /^(miloddan avval|miloddan keyin)/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](chi)? chorak/i,\n};\nconst parseQuarterPatterns = {\n  any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^[yfmasond]/i,\n  abbreviated: /^(yan|fev|mar|apr|may|iyun|iyul|avg|sen|okt|noy|dek)/i,\n  wide: /^(yanvar|fevral|mart|aprel|may|iyun|iyul|avgust|sentabr|oktabr|noyabr|dekabr)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^y/i,\n    /^f/i,\n    /^m/i,\n    /^a/i,\n    /^m/i,\n    /^i/i,\n    /^i/i,\n    /^a/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n\n  any: [\n    /^ya/i,\n    /^f/i,\n    /^mar/i,\n    /^ap/i,\n    /^may/i,\n    /^iyun/i,\n    /^iyul/i,\n    /^av/i,\n    /^s/i,\n    /^o/i,\n    /^n/i,\n    /^d/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[ydschj]/i,\n  short: /^(ya|du|se|cho|pa|ju|sha)/i,\n  abbreviated: /^(yak|dush|sesh|chor|pay|jum|shan)/i,\n  wide: /^(yakshanba|dushanba|seshanba|chorshanba|payshanba|juma|shanba)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/^y/i, /^d/i, /^s/i, /^ch/i, /^p/i, /^j/i, /^sh/i],\n  any: [/^ya/i, /^d/i, /^se/i, /^ch/i, /^p/i, /^j/i, /^sh/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|y\\.t|p| (ertalab|tushdan keyin|kechqurun|tun))/i,\n  any: /^([ap]\\.?\\s?m\\.?|yarim tun|peshin| (ertalab|tushdan keyin|kechqurun|tun))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^a/i,\n    pm: /^p/i,\n    midnight: /^y\\.t/i,\n    noon: /^pe/i,\n    morning: /ertalab/i,\n    afternoon: /tushdan keyin/i,\n    evening: /kechqurun/i,\n    night: /tun/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 \"./uz/_lib/formatDistance.js\";\nimport { formatLong } from \"./uz/_lib/formatLong.js\";\nimport { formatRelative } from \"./uz/_lib/formatRelative.js\";\nimport { localize } from \"./uz/_lib/localize.js\";\nimport { match } from \"./uz/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Uzbek locale.\n * @language Uzbek\n * @iso-639-2 uzb\n * @author Mukhammadali [@mukhammadali](https://github.com/Mukhammadali)\n */\nexport const uz = {\n  code: \"uz\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1,\n  },\n};\n\n// Fallback for modularized imports:\nexport default uz;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"dưới 1 giây\",\n    other: \"dưới {{count}} giây\",\n  },\n\n  xSeconds: {\n    one: \"1 giây\",\n    other: \"{{count}} giây\",\n  },\n\n  halfAMinute: \"nửa phút\",\n\n  lessThanXMinutes: {\n    one: \"dưới 1 phút\",\n    other: \"dưới {{count}} phút\",\n  },\n\n  xMinutes: {\n    one: \"1 phút\",\n    other: \"{{count}} phút\",\n  },\n\n  aboutXHours: {\n    one: \"khoảng 1 giờ\",\n    other: \"khoảng {{count}} giờ\",\n  },\n\n  xHours: {\n    one: \"1 giờ\",\n    other: \"{{count}} giờ\",\n  },\n\n  xDays: {\n    one: \"1 ngày\",\n    other: \"{{count}} ngày\",\n  },\n\n  aboutXWeeks: {\n    one: \"khoảng 1 tuần\",\n    other: \"khoảng {{count}} tuần\",\n  },\n\n  xWeeks: {\n    one: \"1 tuần\",\n    other: \"{{count}} tuần\",\n  },\n\n  aboutXMonths: {\n    one: \"khoảng 1 tháng\",\n    other: \"khoảng {{count}} tháng\",\n  },\n\n  xMonths: {\n    one: \"1 tháng\",\n    other: \"{{count}} tháng\",\n  },\n\n  aboutXYears: {\n    one: \"khoảng 1 năm\",\n    other: \"khoảng {{count}} năm\",\n  },\n\n  xYears: {\n    one: \"1 năm\",\n    other: \"{{count}} năm\",\n  },\n\n  overXYears: {\n    one: \"hơn 1 năm\",\n    other: \"hơn {{count}} năm\",\n  },\n\n  almostXYears: {\n    one: \"gần 1 năm\",\n    other: \"gần {{count}} năm\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \" nữa\";\n    } else {\n      return result + \" trước\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  // thứ Sáu, ngày 25 tháng 08 năm 2017\n  full: \"EEEE, 'ngày' d MMMM 'năm' y\",\n  // ngày 25 tháng 08 năm 2017\n  long: \"'ngày' d MMMM 'năm' y\",\n  // 25 thg 08 năm 2017\n  medium: \"d MMM 'năm' y\",\n  // 25/08/2017\n  short: \"dd/MM/y\",\n};\n\nconst timeFormats = {\n  full: \"HH:mm:ss zzzz\",\n  long: \"HH:mm:ss z\",\n  medium: \"HH:mm:ss\",\n  short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n  // thứ Sáu, ngày 25 tháng 08 năm 2017 23:25:59\n  full: \"{{date}} {{time}}\",\n  // ngày 25 tháng 08 năm 2017 23:25\n  long: \"{{date}} {{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: \"eeee 'tuần trước vào lúc' p\",\n  yesterday: \"'hôm qua vào lúc' p\",\n  today: \"'hôm nay vào lúc' p\",\n  tomorrow: \"'ngày mai vào lúc' p\",\n  nextWeek: \"eeee 'tới vào lúc' p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\n// Vietnamese locale reference: http://www.localeplanet.com/icu/vi-VN/index.html\n// Capitalization reference: http://hcmup.edu.vn/index.php?option=com_content&view=article&id=4106%3Avit-hoa-trong-vn-bn-hanh-chinh&catid=2345%3Atham-kho&Itemid=4103&lang=vi&site=134\n\nconst eraValues = {\n  narrow: [\"TCN\", \"SCN\"],\n  abbreviated: [\"trước CN\", \"sau CN\"],\n  wide: [\"trước Công Nguyên\", \"sau Công Nguyên\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  wide: [\"Quý 1\", \"Quý 2\", \"Quý 3\", \"Quý 4\"],\n};\n\nconst formattingQuarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"Q1\", \"Q2\", \"Q3\", \"Q4\"],\n  // I notice many news outlet use this \"quý II/2018\"\n  wide: [\"quý I\", \"quý II\", \"quý III\", \"quý IV\"],\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: [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"],\n\n  abbreviated: [\n    \"Thg 1\",\n    \"Thg 2\",\n    \"Thg 3\",\n    \"Thg 4\",\n    \"Thg 5\",\n    \"Thg 6\",\n    \"Thg 7\",\n    \"Thg 8\",\n    \"Thg 9\",\n    \"Thg 10\",\n    \"Thg 11\",\n    \"Thg 12\",\n  ],\n\n  wide: [\n    \"Tháng Một\",\n    \"Tháng Hai\",\n    \"Tháng Ba\",\n    \"Tháng Tư\",\n    \"Tháng Năm\",\n    \"Tháng Sáu\",\n    \"Tháng Bảy\",\n    \"Tháng Tám\",\n    \"Tháng Chín\",\n    \"Tháng Mười\",\n    \"Tháng Mười Một\",\n    \"Tháng Mười Hai\",\n  ],\n};\n// In Vietnamese date formatting, month number less than 10 expected to have leading zero\nconst formattingMonthValues = {\n  narrow: [\n    \"01\",\n    \"02\",\n    \"03\",\n    \"04\",\n    \"05\",\n    \"06\",\n    \"07\",\n    \"08\",\n    \"09\",\n    \"10\",\n    \"11\",\n    \"12\",\n  ],\n\n  abbreviated: [\n    \"thg 1\",\n    \"thg 2\",\n    \"thg 3\",\n    \"thg 4\",\n    \"thg 5\",\n    \"thg 6\",\n    \"thg 7\",\n    \"thg 8\",\n    \"thg 9\",\n    \"thg 10\",\n    \"thg 11\",\n    \"thg 12\",\n  ],\n\n  wide: [\n    \"tháng 01\",\n    \"tháng 02\",\n    \"tháng 03\",\n    \"tháng 04\",\n    \"tháng 05\",\n    \"tháng 06\",\n    \"tháng 07\",\n    \"tháng 08\",\n    \"tháng 09\",\n    \"tháng 10\",\n    \"tháng 11\",\n    \"tháng 12\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"CN\", \"T2\", \"T3\", \"T4\", \"T5\", \"T6\", \"T7\"],\n  short: [\"CN\", \"Th 2\", \"Th 3\", \"Th 4\", \"Th 5\", \"Th 6\", \"Th 7\"],\n  abbreviated: [\"CN\", \"Thứ 2\", \"Thứ 3\", \"Thứ 4\", \"Thứ 5\", \"Thứ 6\", \"Thứ 7\"],\n\n  wide: [\n    \"Chủ Nhật\",\n    \"Thứ Hai\",\n    \"Thứ Ba\",\n    \"Thứ Tư\",\n    \"Thứ Năm\",\n    \"Thứ Sáu\",\n    \"Thứ Bảy\",\n  ],\n};\n\n// Vietnamese are used to AM/PM borrowing from English, hence `narrow` and\n// `abbreviated` are just like English but I'm leaving the `wide`\n// format being localized with abbreviations found in some systems (SÁng / CHiều);\n// however, personally, I don't think `Chiều` sounds appropriate for `PM`\nconst dayPeriodValues = {\n  // narrow date period is extremely rare in Vietnamese\n  // I used abbreviated form for noon, morning and afternoon\n  // which are regconizable by Vietnamese, others cannot be any shorter\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"nửa đêm\",\n    noon: \"tr\",\n    morning: \"sg\",\n    afternoon: \"ch\",\n    evening: \"tối\",\n    night: \"đêm\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"nửa đêm\",\n    noon: \"trưa\",\n    morning: \"sáng\",\n    afternoon: \"chiều\",\n    evening: \"tối\",\n    night: \"đêm\",\n  },\n  wide: {\n    am: \"SA\",\n    pm: \"CH\",\n    midnight: \"nửa đêm\",\n    noon: \"trưa\",\n    morning: \"sáng\",\n    afternoon: \"chiều\",\n    evening: \"tối\",\n    night: \"đêm\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"am\",\n    pm: \"pm\",\n    midnight: \"nửa đêm\",\n    noon: \"tr\",\n    morning: \"sg\",\n    afternoon: \"ch\",\n    evening: \"tối\",\n    night: \"đêm\",\n  },\n  abbreviated: {\n    am: \"AM\",\n    pm: \"PM\",\n    midnight: \"nửa đêm\",\n    noon: \"trưa\",\n    morning: \"sáng\",\n    afternoon: \"chiều\",\n    evening: \"tối\",\n    night: \"đêm\",\n  },\n  wide: {\n    am: \"SA\",\n    pm: \"CH\",\n    midnight: \"nửa đêm\",\n    noon: \"giữa trưa\",\n    morning: \"vào buổi sáng\",\n    afternoon: \"vào buổi chiều\",\n    evening: \"vào buổi tối\",\n    night: \"vào ban đêm\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n  const unit = options?.unit;\n\n  if (unit === \"quarter\") {\n    // many news outlets use \"quý I\"...\n    switch (number) {\n      case 1:\n        return \"I\";\n      case 2:\n        return \"II\";\n      case 3:\n        return \"III\";\n      case 4:\n        return \"IV\";\n    }\n  } else if (unit === \"day\") {\n    // day of week in Vietnamese has ordinal number meaning,\n    // so we should use them, else it'll sound weird\n    switch (number) {\n      case 1:\n        return \"thứ 2\"; // meaning 2nd day but it's the first day of the week :D\n      case 2:\n        return \"thứ 3\"; // meaning 3rd day\n      case 3:\n        return \"thứ 4\"; // meaning 4th day and so on\n      case 4:\n        return \"thứ 5\";\n      case 5:\n        return \"thứ 6\";\n      case 6:\n        return \"thứ 7\";\n      case 7:\n        return \"chủ nhật\"; // meaning Sunday, there's no 8th day :D\n    }\n  } else if (unit === \"week\") {\n    if (number === 1) {\n      return \"thứ nhất\";\n    } else {\n      return \"thứ \" + number;\n    }\n  } else if (unit === \"dayOfYear\") {\n    if (number === 1) {\n      return \"đầu tiên\";\n    } else {\n      return \"thứ \" + number;\n    }\n  }\n\n  // there are no different forms of ordinal numbers in Vietnamese\n  return String(number);\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    formattingValues: formattingQuarterValues,\n    defaultFormattingWidth: \"wide\",\n    argumentCallback: (quarter) => quarter - 1,\n  }),\n\n  month: buildLocalizeFn({\n    values: monthValues,\n    defaultWidth: \"wide\",\n    formattingValues: formattingMonthValues,\n    defaultFormattingWidth: \"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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(tcn|scn)/i,\n  abbreviated: /^(trước CN|sau CN)/i,\n  wide: /^(trước Công Nguyên|sau Công Nguyên)/i,\n};\nconst parseEraPatterns = {\n  any: [/^t/i, /^s/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^([1234]|i{1,3}v?)/i,\n  abbreviated: /^q([1234]|i{1,3}v?)/i,\n  wide: /^quý ([1234]|i{1,3}v?)/i,\n};\nconst parseQuarterPatterns = {\n  any: [/(1|i)$/i, /(2|ii)$/i, /(3|iii)$/i, /(4|iv)$/i],\n};\n\nconst matchMonthPatterns = {\n  // month number may contain leading 0, 'thg' prefix may have space, underscore or empty before number\n  // note the order of '1' since it is a sub-string of '10', so must be lower priority\n  narrow: /^(0?[2-9]|10|11|12|0?1)/i,\n  // note the order of 'thg 1' since it is sub-string of 'thg 10', so must be lower priority\n  abbreviated: /^thg[ _]?(0?[1-9](?!\\d)|10|11|12)/i,\n  // note the order of 'Mười' since it is sub-string of Mười Một, so must be lower priority\n  wide: /^tháng ?(Một|Hai|Ba|Tư|Năm|Sáu|Bảy|Tám|Chín|Mười|Mười ?Một|Mười ?Hai|0?[1-9](?!\\d)|10|11|12)/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /0?1$/i,\n    /0?2/i,\n    /3/,\n    /4/,\n    /5/,\n    /6/,\n    /7/,\n    /8/,\n    /9/,\n    /10/,\n    /11/,\n    /12/,\n  ],\n\n  abbreviated: [\n    /^thg[ _]?0?1(?!\\d)/i,\n    /^thg[ _]?0?2/i,\n    /^thg[ _]?0?3/i,\n    /^thg[ _]?0?4/i,\n    /^thg[ _]?0?5/i,\n    /^thg[ _]?0?6/i,\n    /^thg[ _]?0?7/i,\n    /^thg[ _]?0?8/i,\n    /^thg[ _]?0?9/i,\n    /^thg[ _]?10/i,\n    /^thg[ _]?11/i,\n    /^thg[ _]?12/i,\n  ],\n\n  wide: [\n    /^tháng ?(Một|0?1(?!\\d))/i,\n    /^tháng ?(Hai|0?2)/i,\n    /^tháng ?(Ba|0?3)/i,\n    /^tháng ?(Tư|0?4)/i,\n    /^tháng ?(Năm|0?5)/i,\n    /^tháng ?(Sáu|0?6)/i,\n    /^tháng ?(Bảy|0?7)/i,\n    /^tháng ?(Tám|0?8)/i,\n    /^tháng ?(Chín|0?9)/i,\n    /^tháng ?(Mười|10)/i,\n    /^tháng ?(Mười ?Một|11)/i,\n    /^tháng ?(Mười ?Hai|12)/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^(CN|T2|T3|T4|T5|T6|T7)/i,\n  short: /^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,\n  abbreviated: /^(CN|Th ?2|Th ?3|Th ?4|Th ?5|Th ?6|Th ?7)/i,\n  wide: /^(Chủ ?Nhật|Chúa ?Nhật|thứ ?Hai|thứ ?Ba|thứ ?Tư|thứ ?Năm|thứ ?Sáu|thứ ?Bảy)/i,\n};\nconst parseDayPatterns = {\n  narrow: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n  short: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n  abbreviated: [/CN/i, /2/i, /3/i, /4/i, /5/i, /6/i, /7/i],\n  wide: [/(Chủ|Chúa) ?Nhật/i, /Hai/i, /Ba/i, /Tư/i, /Năm/i, /Sáu/i, /Bảy/i],\n};\n\nconst matchDayPeriodPatterns = {\n  narrow: /^(a|p|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,\n  abbreviated: /^(am|pm|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,\n  wide: /^(ch[^i]*|sa|nửa đêm|trưa|(giờ) (sáng|chiều|tối|đêm))/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^(a|sa)/i,\n    pm: /^(p|ch[^i]*)/i,\n    midnight: /nửa đêm/i,\n    noon: /trưa/i,\n    morning: /sáng/i,\n    afternoon: /chiều/i,\n    evening: /tối/i,\n    night: /^đêm/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: \"wide\",\n  }),\n\n  day: buildMatchFn({\n    matchPatterns: matchDayPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPatterns,\n    defaultParseWidth: \"wide\",\n  }),\n\n  dayPeriod: buildMatchFn({\n    matchPatterns: matchDayPeriodPatterns,\n    defaultMatchWidth: \"wide\",\n    parsePatterns: parseDayPeriodPatterns,\n    defaultParseWidth: \"any\",\n  }),\n};\n","import { formatDistance } from \"./vi/_lib/formatDistance.js\";\nimport { formatLong } from \"./vi/_lib/formatLong.js\";\nimport { formatRelative } from \"./vi/_lib/formatRelative.js\";\nimport { localize } from \"./vi/_lib/localize.js\";\nimport { match } from \"./vi/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Vietnamese locale (Vietnam).\n * @language Vietnamese\n * @iso-639-2 vie\n * @author Thanh Tran [@trongthanh](https://github.com/trongthanh)\n * @author Leroy Hopson [@lihop](https://github.com/lihop)\n */\nexport const vi = {\n  code: \"vi\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 1 /* First week of new year contains Jan 1st  */,\n  },\n};\n\n// Fallback for modularized imports:\nexport default vi;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"不到 1 秒\",\n    other: \"不到 {{count}} 秒\",\n  },\n\n  xSeconds: {\n    one: \"1 秒\",\n    other: \"{{count}} 秒\",\n  },\n\n  halfAMinute: \"半分钟\",\n\n  lessThanXMinutes: {\n    one: \"不到 1 分钟\",\n    other: \"不到 {{count}} 分钟\",\n  },\n\n  xMinutes: {\n    one: \"1 分钟\",\n    other: \"{{count}} 分钟\",\n  },\n\n  xHours: {\n    one: \"1 小时\",\n    other: \"{{count}} 小时\",\n  },\n\n  aboutXHours: {\n    one: \"大约 1 小时\",\n    other: \"大约 {{count}} 小时\",\n  },\n\n  xDays: {\n    one: \"1 天\",\n    other: \"{{count}} 天\",\n  },\n\n  aboutXWeeks: {\n    one: \"大约 1 个星期\",\n    other: \"大约 {{count}} 个星期\",\n  },\n\n  xWeeks: {\n    one: \"1 个星期\",\n    other: \"{{count}} 个星期\",\n  },\n\n  aboutXMonths: {\n    one: \"大约 1 个月\",\n    other: \"大约 {{count}} 个月\",\n  },\n\n  xMonths: {\n    one: \"1 个月\",\n    other: \"{{count}} 个月\",\n  },\n\n  aboutXYears: {\n    one: \"大约 1 年\",\n    other: \"大约 {{count}} 年\",\n  },\n\n  xYears: {\n    one: \"1 年\",\n    other: \"{{count}} 年\",\n  },\n\n  overXYears: {\n    one: \"超过 1 年\",\n    other: \"超过 {{count}} 年\",\n  },\n\n  almostXYears: {\n    one: \"将近 1 年\",\n    other: \"将近 {{count}} 年\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"内\";\n    } else {\n      return result + \"前\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y'年'M'月'd'日' EEEE\",\n  long: \"y'年'M'月'd'日'\",\n  medium: \"yyyy-MM-dd\",\n  short: \"yy-MM-dd\",\n};\n\nconst timeFormats = {\n  full: \"zzzz a h:mm:ss\",\n  long: \"z a h:mm:ss\",\n  medium: \"a h:mm:ss\",\n  short: \"a h:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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","import { isSameWeek } from \"../../../isSameWeek.js\";\n\nfunction checkWeek(date, baseDate, options) {\n  const baseFormat = \"eeee p\";\n\n  if (isSameWeek(date, baseDate, options)) {\n    return baseFormat; // in same week\n  } else if (date.getTime() > baseDate.getTime()) {\n    return \"'下个'\" + baseFormat; // in next week\n  }\n  return \"'上个'\" + baseFormat; // in last week\n}\n\nconst formatRelativeLocale = {\n  lastWeek: checkWeek, // days before yesterday, maybe in this week or last week\n  yesterday: \"'昨天' p\",\n  today: \"'今天' p\",\n  tomorrow: \"'明天' p\",\n  nextWeek: checkWeek, // days after tomorrow, maybe in this week or next week\n  other: \"PP p\",\n};\n\nexport const formatRelative = (token, date, baseDate, options) => {\n  const format = formatRelativeLocale[token];\n\n  if (typeof format === \"function\") {\n    return format(date, baseDate, options);\n  }\n\n  return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"前\", \"公元\"],\n  abbreviated: [\"前\", \"公元\"],\n  wide: [\"公元前\", \"公元\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"第一季\", \"第二季\", \"第三季\", \"第四季\"],\n  wide: [\"第一季度\", \"第二季度\", \"第三季度\", \"第四季度\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"一\",\n    \"二\",\n    \"三\",\n    \"四\",\n    \"五\",\n    \"六\",\n    \"七\",\n    \"八\",\n    \"九\",\n    \"十\",\n    \"十一\",\n    \"十二\",\n  ],\n\n  abbreviated: [\n    \"1月\",\n    \"2月\",\n    \"3月\",\n    \"4月\",\n    \"5月\",\n    \"6月\",\n    \"7月\",\n    \"8月\",\n    \"9月\",\n    \"10月\",\n    \"11月\",\n    \"12月\",\n  ],\n\n  wide: [\n    \"一月\",\n    \"二月\",\n    \"三月\",\n    \"四月\",\n    \"五月\",\n    \"六月\",\n    \"七月\",\n    \"八月\",\n    \"九月\",\n    \"十月\",\n    \"十一月\",\n    \"十二月\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"],\n  short: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"],\n  abbreviated: [\"周日\", \"周一\", \"周二\", \"周三\", \"周四\", \"周五\", \"周六\"],\n\n  wide: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"上\",\n    pm: \"下\",\n    midnight: \"凌晨\",\n    noon: \"午\",\n    morning: \"早\",\n    afternoon: \"下午\",\n    evening: \"晚\",\n    night: \"夜\",\n  },\n  abbreviated: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜间\",\n  },\n  wide: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜间\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"上\",\n    pm: \"下\",\n    midnight: \"凌晨\",\n    noon: \"午\",\n    morning: \"早\",\n    afternoon: \"下午\",\n    evening: \"晚\",\n    night: \"夜\",\n  },\n  abbreviated: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜间\",\n  },\n  wide: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜间\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n\n  switch (options?.unit) {\n    case \"date\":\n      return number.toString() + \"日\";\n    case \"hour\":\n      return number.toString() + \"时\";\n    case \"minute\":\n      return number.toString() + \"分\";\n    case \"second\":\n      return number.toString() + \"秒\";\n    default:\n      return \"第 \" + number.toString();\n  }\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(第\\s*)?\\d+(日|时|分|秒)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(前)/i,\n  abbreviated: /^(前)/i,\n  wide: /^(公元前|公元)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(前)/i, /^(公元)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^第[一二三四]刻/i,\n  wide: /^第[一二三四]刻钟/i,\n};\nconst parseQuarterPatterns = {\n  any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,\n  abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]?|\\d|1[0-2])月/i,\n  wide: /^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^一/i,\n    /^二/i,\n    /^三/i,\n    /^四/i,\n    /^五/i,\n    /^六/i,\n    /^七/i,\n    /^八/i,\n    /^九/i,\n    /^十(?!(一|二))/i,\n    /^十一/i,\n    /^十二/i,\n  ],\n\n  any: [\n    /^(一|1(?!\\d))/i,\n    /^(二|2)/i,\n    /^(三|3)/i,\n    /^(四|4)/i,\n    /^(五|5)/i,\n    /^(六|6)/i,\n    /^(七|7)/i,\n    /^(八|8)/i,\n    /^(九|9)/i,\n    /^(十(?!(一|二))|10)/i,\n    /^(十一|11)/i,\n    /^(十二|12)/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[一二三四五六日]/i,\n  short: /^[一二三四五六日]/i,\n  abbreviated: /^周[一二三四五六日]/i,\n  wide: /^星期[一二三四五六日]/i,\n};\nconst parseDayPatterns = {\n  any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨|)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^上午?/i,\n    pm: /^下午?/i,\n    midnight: /^午夜/i,\n    noon: /^[中正]午/i,\n    morning: /^早上/i,\n    afternoon: /^下午/i,\n    evening: /^晚上?/i,\n    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 \"./zh-CN/_lib/formatDistance.js\";\nimport { formatLong } from \"./zh-CN/_lib/formatLong.js\";\nimport { formatRelative } from \"./zh-CN/_lib/formatRelative.js\";\nimport { localize } from \"./zh-CN/_lib/localize.js\";\nimport { match } from \"./zh-CN/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Chinese Simplified locale.\n * @language Chinese Simplified\n * @iso-639-2 zho\n * @author Changyu Geng [@KingMario](https://github.com/KingMario)\n * @author Song Shuoyun [@fnlctrl](https://github.com/fnlctrl)\n * @author sabrinaM [@sabrinamiao](https://github.com/sabrinamiao)\n * @author Carney Wu [@cubicwork](https://github.com/cubicwork)\n * @author Terrence Lam [@skyuplam](https://github.com/skyuplam)\n */\nexport const zhCN = {\n  code: \"zh-CN\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default zhCN;\n","const formatDistanceLocale = {\n  lessThanXSeconds: {\n    one: \"少於 1 秒\",\n    other: \"少於 {{count}} 秒\",\n  },\n\n  xSeconds: {\n    one: \"1 秒\",\n    other: \"{{count}} 秒\",\n  },\n\n  halfAMinute: \"半分鐘\",\n\n  lessThanXMinutes: {\n    one: \"少於 1 分鐘\",\n    other: \"少於 {{count}} 分鐘\",\n  },\n\n  xMinutes: {\n    one: \"1 分鐘\",\n    other: \"{{count}} 分鐘\",\n  },\n\n  xHours: {\n    one: \"1 小時\",\n    other: \"{{count}} 小時\",\n  },\n\n  aboutXHours: {\n    one: \"大約 1 小時\",\n    other: \"大約 {{count}} 小時\",\n  },\n\n  xDays: {\n    one: \"1 天\",\n    other: \"{{count}} 天\",\n  },\n\n  aboutXWeeks: {\n    one: \"大約 1 個星期\",\n    other: \"大約 {{count}} 個星期\",\n  },\n\n  xWeeks: {\n    one: \"1 個星期\",\n    other: \"{{count}} 個星期\",\n  },\n\n  aboutXMonths: {\n    one: \"大約 1 個月\",\n    other: \"大約 {{count}} 個月\",\n  },\n\n  xMonths: {\n    one: \"1 個月\",\n    other: \"{{count}} 個月\",\n  },\n\n  aboutXYears: {\n    one: \"大約 1 年\",\n    other: \"大約 {{count}} 年\",\n  },\n\n  xYears: {\n    one: \"1 年\",\n    other: \"{{count}} 年\",\n  },\n\n  overXYears: {\n    one: \"超過 1 年\",\n    other: \"超過 {{count}} 年\",\n  },\n\n  almostXYears: {\n    one: \"將近 1 年\",\n    other: \"將近 {{count}} 年\",\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}}\", String(count));\n  }\n\n  if (options?.addSuffix) {\n    if (options.comparison && options.comparison > 0) {\n      return result + \"內\";\n    } else {\n      return result + \"前\";\n    }\n  }\n\n  return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n  full: \"y'年'M'月'd'日' EEEE\",\n  long: \"y'年'M'月'd'日'\",\n  medium: \"yyyy-MM-dd\",\n  short: \"yy-MM-dd\",\n};\n\nconst timeFormats = {\n  full: \"zzzz a h:mm:ss\",\n  long: \"z a h:mm:ss\",\n  medium: \"a h:mm:ss\",\n  short: \"a h:mm\",\n};\n\nconst dateTimeFormats = {\n  full: \"{{date}} {{time}}\",\n  long: \"{{date}} {{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: \"'上個'eeee p\",\n  yesterday: \"'昨天' p\",\n  today: \"'今天' p\",\n  tomorrow: \"'明天' p\",\n  nextWeek: \"'下個'eeee p\",\n  other: \"P\",\n};\n\nexport const formatRelative = (token, _date, _baseDate, _options) =>\n  formatRelativeLocale[token];\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n  narrow: [\"前\", \"公元\"],\n  abbreviated: [\"前\", \"公元\"],\n  wide: [\"公元前\", \"公元\"],\n};\n\nconst quarterValues = {\n  narrow: [\"1\", \"2\", \"3\", \"4\"],\n  abbreviated: [\"第一刻\", \"第二刻\", \"第三刻\", \"第四刻\"],\n  wide: [\"第一刻鐘\", \"第二刻鐘\", \"第三刻鐘\", \"第四刻鐘\"],\n};\n\nconst monthValues = {\n  narrow: [\n    \"一\",\n    \"二\",\n    \"三\",\n    \"四\",\n    \"五\",\n    \"六\",\n    \"七\",\n    \"八\",\n    \"九\",\n    \"十\",\n    \"十一\",\n    \"十二\",\n  ],\n\n  abbreviated: [\n    \"1月\",\n    \"2月\",\n    \"3月\",\n    \"4月\",\n    \"5月\",\n    \"6月\",\n    \"7月\",\n    \"8月\",\n    \"9月\",\n    \"10月\",\n    \"11月\",\n    \"12月\",\n  ],\n\n  wide: [\n    \"一月\",\n    \"二月\",\n    \"三月\",\n    \"四月\",\n    \"五月\",\n    \"六月\",\n    \"七月\",\n    \"八月\",\n    \"九月\",\n    \"十月\",\n    \"十一月\",\n    \"十二月\",\n  ],\n};\n\nconst dayValues = {\n  narrow: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"],\n  short: [\"日\", \"一\", \"二\", \"三\", \"四\", \"五\", \"六\"],\n  abbreviated: [\"週日\", \"週一\", \"週二\", \"週三\", \"週四\", \"週五\", \"週六\"],\n\n  wide: [\"星期日\", \"星期一\", \"星期二\", \"星期三\", \"星期四\", \"星期五\", \"星期六\"],\n};\n\nconst dayPeriodValues = {\n  narrow: {\n    am: \"上\",\n    pm: \"下\",\n    midnight: \"凌晨\",\n    noon: \"午\",\n    morning: \"早\",\n    afternoon: \"下午\",\n    evening: \"晚\",\n    night: \"夜\",\n  },\n  abbreviated: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜間\",\n  },\n  wide: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜間\",\n  },\n};\n\nconst formattingDayPeriodValues = {\n  narrow: {\n    am: \"上\",\n    pm: \"下\",\n    midnight: \"凌晨\",\n    noon: \"午\",\n    morning: \"早\",\n    afternoon: \"下午\",\n    evening: \"晚\",\n    night: \"夜\",\n  },\n  abbreviated: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜間\",\n  },\n  wide: {\n    am: \"上午\",\n    pm: \"下午\",\n    midnight: \"凌晨\",\n    noon: \"中午\",\n    morning: \"早晨\",\n    afternoon: \"中午\",\n    evening: \"晚上\",\n    night: \"夜間\",\n  },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n  const number = Number(dirtyNumber);\n\n  switch (options?.unit) {\n    case \"date\":\n      return number + \"日\";\n    case \"hour\":\n      return number + \"時\";\n    case \"minute\":\n      return number + \"分\";\n    case \"second\":\n      return number + \"秒\";\n    default:\n      return \"第 \" + number;\n  }\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","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(第\\s*)?\\d+(日|時|分|秒)?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n  narrow: /^(前)/i,\n  abbreviated: /^(前)/i,\n  wide: /^(公元前|公元)/i,\n};\nconst parseEraPatterns = {\n  any: [/^(前)/i, /^(公元)/i],\n};\n\nconst matchQuarterPatterns = {\n  narrow: /^[1234]/i,\n  abbreviated: /^第[一二三四]刻/i,\n  wide: /^第[一二三四]刻鐘/i,\n};\nconst parseQuarterPatterns = {\n  any: [/(1|一)/i, /(2|二)/i, /(3|三)/i, /(4|四)/i],\n};\n\nconst matchMonthPatterns = {\n  narrow: /^(一|二|三|四|五|六|七|八|九|十[二一]?)/i,\n  abbreviated: /^(一|二|三|四|五|六|七|八|九|十[二一]?|\\d|1[0-2])月/i,\n  wide: /^(一|二|三|四|五|六|七|八|九|十[二一]?)月/i,\n};\nconst parseMonthPatterns = {\n  narrow: [\n    /^一/i,\n    /^二/i,\n    /^三/i,\n    /^四/i,\n    /^五/i,\n    /^六/i,\n    /^七/i,\n    /^八/i,\n    /^九/i,\n    /^十(?!(一|二))/i,\n    /^十一/i,\n    /^十二/i,\n  ],\n\n  any: [\n    /^(一|1(?!\\d))/i,\n    /^(二|2)/i,\n    /^(三|3)/i,\n    /^(四|4)/i,\n    /^(五|5)/i,\n    /^(六|6)/i,\n    /^(七|7)/i,\n    /^(八|8)/i,\n    /^(九|9)/i,\n    /^(十(?!(一|二))|10)/i,\n    /^(十一|11)/i,\n    /^(十二|12)/i,\n  ],\n};\n\nconst matchDayPatterns = {\n  narrow: /^[一二三四五六日]/i,\n  short: /^[一二三四五六日]/i,\n  abbreviated: /^週[一二三四五六日]/i,\n  wide: /^星期[一二三四五六日]/i,\n};\nconst parseDayPatterns = {\n  any: [/日/i, /一/i, /二/i, /三/i, /四/i, /五/i, /六/i],\n};\n\nconst matchDayPeriodPatterns = {\n  any: /^(上午?|下午?|午夜|[中正]午|早上?|下午|晚上?|凌晨)/i,\n};\nconst parseDayPeriodPatterns = {\n  any: {\n    am: /^上午?/i,\n    pm: /^下午?/i,\n    midnight: /^午夜/i,\n    noon: /^[中正]午/i,\n    morning: /^早上/i,\n    afternoon: /^下午/i,\n    evening: /^晚上?/i,\n    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 \"./zh-TW/_lib/formatDistance.js\";\nimport { formatLong } from \"./zh-TW/_lib/formatLong.js\";\nimport { formatRelative } from \"./zh-TW/_lib/formatRelative.js\";\nimport { localize } from \"./zh-TW/_lib/localize.js\";\nimport { match } from \"./zh-TW/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Chinese Traditional locale.\n * @language Chinese Traditional\n * @iso-639-2 zho\n * @author tonypai [@tpai](https://github.com/tpai)\n * @author Jack Hsu [@jackhsu978](https://github.com/jackhsu978)\n * @author Terrence Lam [@skyuplam](https://github.com/skyuplam)\n */\nexport const zhTW = {\n  code: \"zh-TW\",\n  formatDistance: formatDistance,\n  formatLong: formatLong,\n  formatRelative: formatRelative,\n  localize: localize,\n  match: match,\n  options: {\n    weekStartsOn: 1 /* Monday */,\n    firstWeekContainsDate: 4,\n  },\n};\n\n// Fallback for modularized imports:\nexport default zhTW;\n","import type { NDateLocale } from './enUS'\nimport { af } from 'date-fns/locale'\n\nconst dateAfZA: NDateLocale = {\n  name: 'af-ZA',\n  locale: af\n}\n\nexport default dateAfZA\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateAmET: NDateLocale = {\n  name: 'am-ET',\n  locale: enUS\n}\n\nexport default dateAmET\n","import type { NDateLocale } from './enUS'\nimport { arDZ } from 'date-fns/locale'\n\nconst dateArDZ: NDateLocale = {\n  name: 'ar-DZ',\n  locale: arDZ\n}\n\nexport default dateArDZ\n","import type { NDateLocale } from './enUS'\nimport { az } from 'date-fns/locale'\n\nconst dateAzAZ: NDateLocale = {\n  name: 'az-AZ',\n  locale: az\n}\n\nexport default dateAzAZ\n","import type { NDateLocale } from './enUS'\nimport { be } from 'date-fns/locale'\n\nconst dateBeBY: NDateLocale = {\n  name: 'be-BY',\n  locale: be\n}\n\nexport default dateBeBY\n","import type { NDateLocale } from './enUS'\nimport { bg } from 'date-fns/locale'\n\nconst dateBgBG: NDateLocale = {\n  name: 'bg-BG',\n  locale: bg\n}\n\nexport default dateBgBG\n","import type { NDateLocale } from './enUS'\nimport { bn } from 'date-fns/locale'\n\nconst dateBnBD: NDateLocale = {\n  name: 'bn-BD',\n  locale: bn\n}\n\nexport default dateBnBD\n","import type { NDateLocale } from './enUS'\nimport { ca } from 'date-fns/locale'\n\nconst dateCaES: NDateLocale = {\n  name: 'ca-ES',\n  locale: ca\n}\n\nexport default dateCaES\n","import type { NDateLocale } from './enUS'\nimport { cs } from 'date-fns/locale'\n\nconst dateCsCZ: NDateLocale = {\n  name: 'cs-CZ',\n  locale: cs\n}\n\nexport default dateCsCZ\n","import type { NDateLocale } from './enUS'\nimport { da } from 'date-fns/locale'\n\nconst dateDaDK: NDateLocale = {\n  name: 'da-DK',\n  locale: da\n}\n\nexport default dateDaDK\n","import type { NDateLocale } from './enUS'\nimport { de } from 'date-fns/locale'\n\nconst dateDeDE: NDateLocale = {\n  name: 'de-DE',\n  locale: de\n}\n\nexport default dateDeDE\n","import type { NDateLocale } from './enUS'\nimport { el } from 'date-fns/locale'\n\nconst dateElGR: NDateLocale = {\n  name: 'el-GR',\n  locale: el\n}\n\nexport default dateElGR\n","import type { NDateLocale } from './enUS'\nimport { enGB } from 'date-fns/locale'\n\nconst dateEnGB: NDateLocale = {\n  name: 'en-GB',\n  locale: enGB\n}\n\nexport default dateEnGB\n","import type { Locale } from 'date-fns'\nimport { enUS } from 'date-fns/locale'\n\ninterface NDateLocale {\n  name: string\n  locale: Locale\n}\n\nconst dateEnUs: NDateLocale = {\n  name: 'en-US',\n  locale: enUS\n}\n\nexport type { NDateLocale }\nexport default dateEnUs\n","import type { NDateLocale } from './enUS'\nimport { eo } from 'date-fns/locale'\n\nconst dateEo: NDateLocale = {\n  name: 'eo',\n  locale: eo\n}\n\nexport default dateEo\n","import type { NDateLocale } from './enUS'\nimport { es } from 'date-fns/locale'\n\nconst dateEsAR: NDateLocale = {\n  name: 'es-AR',\n  locale: es\n}\n\nexport default dateEsAR\n","import type { NDateLocale } from './enUS'\nimport { es } from 'date-fns/locale'\n\nconst dateEsES: NDateLocale = {\n  name: 'es-ES',\n  locale: es\n}\n\nexport default dateEsES\n","import type { NDateLocale } from './enUS'\nimport { et } from 'date-fns/locale'\n\nconst dateEtEE: NDateLocale = {\n  name: 'et-EE',\n  locale: et\n}\n\nexport default dateEtEE\n","import type { NDateLocale } from './enUS'\nimport { eu } from 'date-fns/locale'\n\nconst dateEuES: NDateLocale = {\n  name: 'eu-ES',\n  locale: eu\n}\n\nexport default dateEuES\n","import type { NDateLocale } from './enUS'\nimport { faIR } from 'date-fns/locale'\n\nconst dateFaIR: NDateLocale = {\n  name: 'fa-IR',\n  locale: faIR\n}\n\nexport default dateFaIR\n","import type { NDateLocale } from './enUS'\nimport { fi } from 'date-fns/locale'\n\nconst dateFiFI: NDateLocale = {\n  name: 'fi-FI',\n  locale: fi\n}\n\nexport default dateFiFI\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateFilPH: NDateLocale = {\n  name: 'fil-PH',\n  locale: enUS\n}\n\nexport default dateFilPH\n","import type { NDateLocale } from './enUS'\nimport { fr } from 'date-fns/locale'\n\nconst dateFrFR: NDateLocale = {\n  name: 'fr-FR',\n  locale: fr\n}\n\nexport default dateFrFR\n","import type { NDateLocale } from './enUS'\nimport { gl } from 'date-fns/locale'\n\nconst dateGlES: NDateLocale = {\n  name: 'gl-ES',\n  locale: gl\n}\n\nexport default dateGlES\n","import type { NDateLocale } from './enUS'\nimport { gu } from 'date-fns/locale'\n\nconst dateGuIN: NDateLocale = {\n  name: 'gu-IN',\n  locale: gu\n}\n\nexport default dateGuIN\n","import type { NDateLocale } from './enUS'\nimport { he } from 'date-fns/locale'\n\nconst dateHeIL: NDateLocale = {\n  name: 'he-IL',\n  locale: he\n}\n\nexport default dateHeIL\n","import type { NDateLocale } from './enUS'\nimport { hi } from 'date-fns/locale'\n\nconst dateHiIN: NDateLocale = {\n  name: 'hi-IN',\n  locale: hi\n}\n\nexport default dateHiIN\n","import type { NDateLocale } from './enUS'\nimport { hr } from 'date-fns/locale'\n\nconst dateHrHR: NDateLocale = {\n  name: 'hr-HR',\n  locale: hr\n}\n\nexport default dateHrHR\n","import type { NDateLocale } from './enUS'\nimport { hu } from 'date-fns/locale'\n\nconst dateHuHU: NDateLocale = {\n  name: 'hu-HU',\n  locale: hu\n}\n\nexport default dateHuHU\n","import type { NDateLocale } from './enUS'\nimport { hy } from 'date-fns/locale'\n\nconst dateHyAM: NDateLocale = {\n  name: 'hy-AM',\n  locale: hy\n}\n\nexport default dateHyAM\n","import type { NDateLocale } from './enUS'\nimport { id } from 'date-fns/locale'\n\nconst dateIdID: NDateLocale = {\n  name: 'id-ID',\n  locale: id\n}\n\nexport default dateIdID\n","import type { NDateLocale } from './enUS'\nimport { is } from 'date-fns/locale'\n\nconst dateIsIS: NDateLocale = {\n  name: 'is-IS',\n  locale: is\n}\n\nexport default dateIsIS\n","import type { NDateLocale } from './enUS'\nimport { it } from 'date-fns/locale'\n\nconst dateItIT: NDateLocale = {\n  name: 'it-IT',\n  locale: it\n}\n\nexport default dateItIT\n","import type { NDateLocale } from './enUS'\nimport { ja } from 'date-fns/locale'\n\nconst dateJaJP: NDateLocale = {\n  name: 'ja-JP',\n  locale: ja\n}\n\nexport default dateJaJP\n","import type { NDateLocale } from './enUS'\nimport { ka } from 'date-fns/locale'\n\nconst dateKaGE: NDateLocale = {\n  name: 'ka-GE',\n  locale: ka\n}\n\nexport default dateKaGE\n","import type { NDateLocale } from './enUS'\nimport { kk } from 'date-fns/locale'\n\nconst dateKkKZ: NDateLocale = {\n  name: 'kk-KZ',\n  locale: kk\n}\n\nexport default dateKkKZ\n","import type { NDateLocale } from './enUS'\nimport { km } from 'date-fns/locale'\n\nconst dateKmKH: NDateLocale = {\n  name: 'km-KH',\n  locale: km\n}\n\nexport default dateKmKH\n","import type { NDateLocale } from './enUS'\nimport { kn } from 'date-fns/locale'\n\nconst dateKnIN: NDateLocale = {\n  name: 'kn-IN',\n  locale: kn\n}\n\nexport default dateKnIN\n","import type { NDateLocale } from './enUS'\nimport { ko } from 'date-fns/locale'\n\nconst dateKoKR: NDateLocale = {\n  name: 'ko-KR',\n  locale: ko\n}\n\nexport default dateKoKR\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateKyKG: NDateLocale = {\n  name: 'ky-KG',\n  locale: enUS\n}\n\nexport default dateKyKG\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateLoLA: NDateLocale = {\n  name: 'lo-LA',\n  locale: enUS\n}\n\nexport default dateLoLA\n","import type { NDateLocale } from './enUS'\nimport { lt } from 'date-fns/locale'\n\nconst dateLtLT: NDateLocale = {\n  name: 'lt-LT',\n  locale: lt\n}\n\nexport default dateLtLT\n","import type { NDateLocale } from './enUS'\nimport { lv } from 'date-fns/locale'\n\nconst dateLvLV: NDateLocale = {\n  name: 'lv-LV',\n  locale: lv\n}\n\nexport default dateLvLV\n","import type { NDateLocale } from './enUS'\nimport { mk } from 'date-fns/locale'\n\nconst dateMkMK: NDateLocale = {\n  name: 'mk-MK',\n  locale: mk\n}\n\nexport default dateMkMK\n","import type { NDateLocale } from './enUS'\nimport { enIN } from 'date-fns/locale'\n\nconst dateMlIN: NDateLocale = {\n  name: 'ml-IN',\n  locale: enIN\n}\n\nexport default dateMlIN\n","import type { NDateLocale } from './enUS'\nimport { mn } from 'date-fns/locale'\n\nconst dateMnMN: NDateLocale = {\n  name: 'mn-MN',\n  locale: mn\n}\n\nexport default dateMnMN\n","import type { NDateLocale } from './enUS'\nimport { enIN } from 'date-fns/locale'\n\nconst dateMrIN: NDateLocale = {\n  name: 'mr-IN',\n  locale: enIN\n}\n\nexport default dateMrIN\n","import type { NDateLocale } from './enUS'\nimport { ms } from 'date-fns/locale'\n\nconst dateMsMY: NDateLocale = {\n  name: 'ms-MY',\n  locale: ms\n}\n\nexport default dateMsMY\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateMyMM: NDateLocale = {\n  name: 'my-MM',\n  locale: enUS\n}\n\nexport default dateMyMM\n","import type { NDateLocale } from './enUS'\nimport { nb } from 'date-fns/locale'\n\nconst dateNbNO: NDateLocale = {\n  name: 'nb-NO',\n  locale: nb\n}\n\nexport default dateNbNO\n","import type { NDateLocale } from './enUS'\nimport { enIN } from 'date-fns/locale'\n\nconst dateNeNP: NDateLocale = {\n  name: 'ne-NP',\n  locale: enIN\n}\n\nexport default dateNeNP\n","import type { NDateLocale } from './enUS'\nimport { nl } from 'date-fns/locale'\n\nconst dateNlNL: NDateLocale = {\n  name: 'nl-NL',\n  locale: nl\n}\n\nexport default dateNlNL\n","import type { NDateLocale } from './enUS'\nimport { nn } from 'date-fns/locale'\n\nconst dateNnNO: NDateLocale = {\n  name: 'nn-NO',\n  locale: nn\n}\n\nexport default dateNnNO\n","import type { NDateLocale } from './enUS'\nimport { enIN } from 'date-fns/locale'\n\nconst datePaIN: NDateLocale = {\n  name: 'pa-IN',\n  locale: enIN\n}\n\nexport default datePaIN\n","import type { NDateLocale } from './enUS'\nimport { pl } from 'date-fns/locale'\n\nconst datePlPL: NDateLocale = {\n  name: 'pl-PL',\n  locale: pl\n}\n\nexport default datePlPL\n","import type { NDateLocale } from './enUS'\nimport { ptBR } from 'date-fns/locale'\n\nconst datePtBr: NDateLocale = {\n  name: 'pt-BR',\n  locale: ptBR\n}\n\nexport default datePtBr\n","import type { NDateLocale } from './enUS'\nimport { pt } from 'date-fns/locale'\n\nconst datePtPT: NDateLocale = {\n  name: 'pt-PT',\n  locale: pt\n}\n\nexport default datePtPT\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateRmCH: NDateLocale = {\n  name: 'rm-CH',\n  locale: enUS\n}\n\nexport default dateRmCH\n","import type { NDateLocale } from './enUS'\nimport { ro } from 'date-fns/locale'\n\nconst dateRoRO: NDateLocale = {\n  name: 'ro-RO',\n  locale: ro\n}\n\nexport default dateRoRO\n","import type { NDateLocale } from './enUS'\nimport { ru } from 'date-fns/locale'\n\nconst dateRuRU: NDateLocale = {\n  name: 'ru-RU',\n  locale: ru\n}\n\nexport default dateRuRU\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateSiLK: NDateLocale = {\n  name: 'si-LK',\n  locale: enUS\n}\n\nexport default dateSiLK\n","import type { NDateLocale } from './enUS'\nimport { sk } from 'date-fns/locale'\n\nconst dateSkSK: NDateLocale = {\n  name: 'sk-SK',\n  locale: sk\n}\n\nexport default dateSkSK\n","import type { NDateLocale } from './enUS'\nimport { sl } from 'date-fns/locale'\n\nconst dateSlSI: NDateLocale = {\n  name: 'sl-SI',\n  locale: sl\n}\n\nexport default dateSlSI\n","import type { NDateLocale } from './enUS'\nimport { sq } from 'date-fns/locale'\n\nconst dateSqAL: NDateLocale = {\n  name: 'sq-AL',\n  locale: sq\n}\n\nexport default dateSqAL\n","import type { NDateLocale } from './enUS'\nimport { sr } from 'date-fns/locale'\n\nconst dateSrRS: NDateLocale = {\n  name: 'sr-RS',\n  locale: sr\n}\n\nexport default dateSrRS\n","import type { NDateLocale } from './enUS'\nimport { sv } from 'date-fns/locale'\n\nconst dateSvSE: NDateLocale = {\n  name: 'sv-SE',\n  locale: sv\n}\n\nexport default dateSvSE\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateSwKE: NDateLocale = {\n  name: 'sw-KE',\n  locale: enUS\n}\n\nexport default dateSwKE\n","import type { NDateLocale } from './enUS'\nimport { ta } from 'date-fns/locale'\n\nconst dateTaIN: NDateLocale = {\n  name: 'ta-IN',\n  locale: ta\n}\n\nexport default dateTaIN\n","import type { NDateLocale } from './enUS'\nimport { te } from 'date-fns/locale'\n\nconst dateTeIN: NDateLocale = {\n  name: 'te-IN',\n  locale: te\n}\n\nexport default dateTeIN\n","import type { NDateLocale } from './enUS'\nimport { th } from 'date-fns/locale'\n\nconst dateThTH: NDateLocale = {\n  name: 'th-TH',\n  locale: th\n}\n\nexport default dateThTH\n","import type { NDateLocale } from './enUS'\nimport { tr } from 'date-fns/locale'\n\nconst dateTrTR: NDateLocale = {\n  name: 'tr-TR',\n  locale: tr\n}\n\nexport default dateTrTR\n","import type { NDateLocale } from './enUS'\nimport { ug } from 'date-fns/locale'\n\nconst dateUgCN: NDateLocale = {\n  name: 'ug-CN',\n  locale: ug\n}\n\nexport default dateUgCN\n","import type { NDateLocale } from './enUS'\nimport { uk } from 'date-fns/locale'\n\nconst dateUkUA: NDateLocale = {\n  name: 'uk-UA',\n  locale: uk\n}\n\nexport default dateUkUA\n","import type { NDateLocale } from './enUS'\nimport { enUS } from 'date-fns/locale'\n\nconst dateUrPK: NDateLocale = {\n  name: 'ur-PK',\n  locale: enUS\n}\n\nexport default dateUrPK\n","import type { NDateLocale } from './enUS'\nimport { uz } from 'date-fns/locale'\n\nconst dateUzUZ: NDateLocale = {\n  name: 'uz-UZ',\n  locale: uz\n}\n\nexport default dateUzUZ\n","import type { NDateLocale } from './enUS'\nimport { vi } from 'date-fns/locale'\n\nconst dateVi: NDateLocale = {\n  name: 'vi-VN',\n  locale: vi\n}\n\nexport default dateVi\n","import type { NDateLocale } from './enUS'\nimport { zhCN } from 'date-fns/locale'\n\nconst dateZhCN: NDateLocale = {\n  name: 'zh-CN',\n  locale: zhCN\n}\n\nexport default dateZhCN\n","import type { NDateLocale } from './enUS'\nimport { zhTW } from 'date-fns/locale'\n\nconst datezhTW: NDateLocale = {\n  name: 'zh-TW',\n  locale: zhTW\n}\n\nexport default datezhTW\n","import type { NDateLocale } from './enUS'\nimport { enZA } from 'date-fns/locale'\n\nconst dateZuZA: NDateLocale = {\n  name: 'zu-ZA',\n  locale: enZA\n}\n\nexport default dateZuZA\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n  var isOwn = hasOwnProperty.call(value, symToStringTag),\n      tag = value[symToStringTag];\n\n  try {\n    value[symToStringTag] = undefined;\n    var unmasked = true;\n  } catch (e) {}\n\n  var result = nativeObjectToString.call(value);\n  if (unmasked) {\n    if (isOwn) {\n      value[symToStringTag] = tag;\n    } else {\n      delete value[symToStringTag];\n    }\n  }\n  return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n  return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n    undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n  if (value == null) {\n    return value === undefined ? undefinedTag : nullTag;\n  }\n  return (symToStringTag && symToStringTag in Object(value))\n    ? getRawTag(value)\n    : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n  return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n  return typeof value == 'symbol' ||\n    (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      result = Array(length);\n\n  while (++index < length) {\n    result[index] = iteratee(array[index], index, array);\n  }\n  return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n  // Exit early for strings to avoid a performance hit in some environments.\n  if (typeof value == 'string') {\n    return value;\n  }\n  if (isArray(value)) {\n    // Recursively convert values (susceptible to call stack limits).\n    return arrayMap(value, baseToString) + '';\n  }\n  if (isSymbol(value)) {\n    return symbolToString ? symbolToString.call(value) : '';\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n  var index = string.length;\n\n  while (index-- && reWhitespace.test(string.charAt(index))) {}\n  return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n  return string\n    ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n    : string;\n}\n\nexport default baseTrim;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n  var type = typeof value;\n  return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n  if (typeof value == 'number') {\n    return value;\n  }\n  if (isSymbol(value)) {\n    return NAN;\n  }\n  if (isObject(value)) {\n    var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n    value = isObject(other) ? (other + '') : other;\n  }\n  if (typeof value != 'string') {\n    return value === 0 ? value : +value;\n  }\n  value = baseTrim(value);\n  var isBinary = reIsBinary.test(value);\n  return (isBinary || reIsOctal.test(value))\n    ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n    : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import toNumber from './toNumber.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n    MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n  if (!value) {\n    return value === 0 ? value : 0;\n  }\n  value = toNumber(value);\n  if (value === INFINITY || value === -INFINITY) {\n    var sign = (value < 0 ? -1 : 1);\n    return sign * MAX_INTEGER;\n  }\n  return value === value ? value : 0;\n}\n\nexport default toFinite;\n","import toFinite from './toFinite.js';\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n  var result = toFinite(value),\n      remainder = result % 1;\n\n  return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nexport default toInteger;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n  return value;\n}\n\nexport default identity;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n  if (!isObject(value)) {\n    return false;\n  }\n  // The use of `Object#toString` avoids issues with the `typeof` operator\n  // in Safari 9 which returns 'object' for typed arrays and other constructors.\n  var tag = baseGetTag(value);\n  return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n  var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n  return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n  return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n  if (func != null) {\n    try {\n      return funcToString.call(func);\n    } catch (e) {}\n    try {\n      return (func + '');\n    } catch (e) {}\n  }\n  return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n  funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n  .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n *  else `false`.\n */\nfunction baseIsNative(value) {\n  if (!isObject(value) || isMasked(value)) {\n    return false;\n  }\n  var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n  return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n  return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n  var value = getValue(object, key);\n  return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n  function object() {}\n  return function(proto) {\n    if (!isObject(proto)) {\n      return {};\n    }\n    if (objectCreate) {\n      return objectCreate(proto);\n    }\n    object.prototype = proto;\n    var result = new object;\n    object.prototype = undefined;\n    return result;\n  };\n}());\n\nexport default baseCreate;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n  switch (args.length) {\n    case 0: return func.call(thisArg);\n    case 1: return func.call(thisArg, args[0]);\n    case 2: return func.call(thisArg, args[0], args[1]);\n    case 3: return func.call(thisArg, args[0], args[1], args[2]);\n  }\n  return func.apply(thisArg, args);\n}\n\nexport default apply;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n  var index = -1,\n      length = source.length;\n\n  array || (array = Array(length));\n  while (++index < length) {\n    array[index] = source[index];\n  }\n  return array;\n}\n\nexport default copyArray;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n    HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n  var count = 0,\n      lastCalled = 0;\n\n  return function() {\n    var stamp = nativeNow(),\n        remaining = HOT_SPAN - (stamp - lastCalled);\n\n    lastCalled = stamp;\n    if (remaining > 0) {\n      if (++count >= HOT_COUNT) {\n        return arguments[0];\n      }\n    } else {\n      count = 0;\n    }\n    return func.apply(undefined, arguments);\n  };\n}\n\nexport default shortOut;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n  return function() {\n    return value;\n  };\n}\n\nexport default constant;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n  try {\n    var func = getNative(Object, 'defineProperty');\n    func({}, '', {});\n    return func;\n  } catch (e) {}\n}());\n\nexport default defineProperty;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n  return defineProperty(func, 'toString', {\n    'configurable': true,\n    'enumerable': false,\n    'value': constant(string),\n    'writable': true\n  });\n};\n\nexport default baseSetToString;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (iteratee(array[index], index, array) === false) {\n      break;\n    }\n  }\n  return array;\n}\n\nexport default arrayEach;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n  var type = typeof value;\n  length = length == null ? MAX_SAFE_INTEGER : length;\n\n  return !!length &&\n    (type == 'number' ||\n      (type != 'symbol' && reIsUint.test(value))) &&\n        (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n  if (key == '__proto__' && defineProperty) {\n    defineProperty(object, key, {\n      'configurable': true,\n      'enumerable': true,\n      'value': value,\n      'writable': true\n    });\n  } else {\n    object[key] = value;\n  }\n}\n\nexport default baseAssignValue;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n  return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n  var objValue = object[key];\n  if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n  var isNew = !object;\n  object || (object = {});\n\n  var index = -1,\n      length = props.length;\n\n  while (++index < length) {\n    var key = props[index];\n\n    var newValue = customizer\n      ? customizer(object[key], source[key], key, object, source)\n      : undefined;\n\n    if (newValue === undefined) {\n      newValue = source[key];\n    }\n    if (isNew) {\n      baseAssignValue(object, key, newValue);\n    } else {\n      assignValue(object, key, newValue);\n    }\n  }\n  return object;\n}\n\nexport default copyObject;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n  start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n  return function() {\n    var args = arguments,\n        index = -1,\n        length = nativeMax(args.length - start, 0),\n        array = Array(length);\n\n    while (++index < length) {\n      array[index] = args[start + index];\n    }\n    index = -1;\n    var otherArgs = Array(start + 1);\n    while (++index < start) {\n      otherArgs[index] = args[index];\n    }\n    otherArgs[start] = transform(array);\n    return apply(func, this, otherArgs);\n  };\n}\n\nexport default overRest;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n  return typeof value == 'number' &&\n    value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n  return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nexport default createAssigner;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n  var Ctor = value && value.constructor,\n      proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n  return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n  var index = -1,\n      result = Array(n);\n\n  while (++index < n) {\n    result[index] = iteratee(index);\n  }\n  return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n  return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n *  else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n  return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n    !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n  return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n  return isObjectLike(value) &&\n    isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n  return function(value) {\n    return func(value);\n  };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n  try {\n    // Use `util.types` for Node.js 10+.\n    var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n    if (types) {\n      return types;\n    }\n\n    // Legacy `process.binding('util')` for Node.js < 10.\n    return freeProcess && freeProcess.binding && freeProcess.binding('util');\n  } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n  var isArr = isArray(value),\n      isArg = !isArr && isArguments(value),\n      isBuff = !isArr && !isArg && isBuffer(value),\n      isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n      skipIndexes = isArr || isArg || isBuff || isType,\n      result = skipIndexes ? baseTimes(value.length, String) : [],\n      length = result.length;\n\n  for (var key in value) {\n    if ((inherited || hasOwnProperty.call(value, key)) &&\n        !(skipIndexes && (\n           // Safari 9 has enumerable `arguments.length` in strict mode.\n           key == 'length' ||\n           // Node.js 0.10 has enumerable non-index properties on buffers.\n           (isBuff && (key == 'offset' || key == 'parent')) ||\n           // PhantomJS 2 has enumerable non-index properties on typed arrays.\n           (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n           // Skip index properties.\n           isIndex(key, length)\n        ))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n  return function(arg) {\n    return func(transform(arg));\n  };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n  if (!isPrototype(object)) {\n    return nativeKeys(object);\n  }\n  var result = [];\n  for (var key in Object(object)) {\n    if (hasOwnProperty.call(object, key) && key != 'constructor') {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n  var result = [];\n  if (object != null) {\n    for (var key in Object(object)) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n  if (!isObject(object)) {\n    return nativeKeysIn(object);\n  }\n  var isProto = isPrototype(object),\n      result = [];\n\n  for (var key in object) {\n    if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n      result.push(key);\n    }\n  }\n  return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n  return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n    reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n  if (isArray(value)) {\n    return false;\n  }\n  var type = typeof value;\n  if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n      value == null || isSymbol(value)) {\n    return true;\n  }\n  return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n    (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n  this.__data__ = nativeCreate ? nativeCreate(null) : {};\n  this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n  var result = this.has(key) && delete this.__data__[key];\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n  var data = this.__data__;\n  if (nativeCreate) {\n    var result = data[key];\n    return result === HASH_UNDEFINED ? undefined : result;\n  }\n  return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n  var data = this.__data__;\n  return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n  var data = this.__data__;\n  this.size += this.has(key) ? 0 : 1;\n  data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n  return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n  this.__data__ = [];\n  this.size = 0;\n}\n\nexport default listCacheClear;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n  var length = array.length;\n  while (length--) {\n    if (eq(array[length][0], key)) {\n      return length;\n    }\n  }\n  return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    return false;\n  }\n  var lastIndex = data.length - 1;\n  if (index == lastIndex) {\n    data.pop();\n  } else {\n    splice.call(data, index, 1);\n  }\n  --this.size;\n  return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n  return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n  var data = this.__data__,\n      index = assocIndexOf(data, key);\n\n  if (index < 0) {\n    ++this.size;\n    data.push([key, value]);\n  } else {\n    data[index][1] = value;\n  }\n  return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n  this.size = 0;\n  this.__data__ = {\n    'hash': new Hash,\n    'map': new (Map || ListCache),\n    'string': new Hash\n  };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n  var type = typeof value;\n  return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n    ? (value !== '__proto__')\n    : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n  var data = map.__data__;\n  return isKeyable(key)\n    ? data[typeof key == 'string' ? 'string' : 'hash']\n    : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n  var result = getMapData(this, key)['delete'](key);\n  this.size -= result ? 1 : 0;\n  return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n  return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n  return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n  var data = getMapData(this, key),\n      size = data.size;\n\n  data.set(key, value);\n  this.size += data.size == size ? 0 : 1;\n  return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n  var index = -1,\n      length = entries == null ? 0 : entries.length;\n\n  this.clear();\n  while (++index < length) {\n    var entry = entries[index];\n    this.set(entry[0], entry[1]);\n  }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n  if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  var memoized = function() {\n    var args = arguments,\n        key = resolver ? resolver.apply(this, args) : args[0],\n        cache = memoized.cache;\n\n    if (cache.has(key)) {\n      return cache.get(key);\n    }\n    var result = func.apply(this, args);\n    memoized.cache = cache.set(key, result) || cache;\n    return result;\n  };\n  memoized.cache = new (memoize.Cache || MapCache);\n  return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n  var result = memoize(func, function(key) {\n    if (cache.size === MAX_MEMOIZE_SIZE) {\n      cache.clear();\n    }\n    return key;\n  });\n\n  var cache = result.cache;\n  return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n  var result = [];\n  if (string.charCodeAt(0) === 46 /* . */) {\n    result.push('');\n  }\n  string.replace(rePropName, function(match, number, quote, subString) {\n    result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n  });\n  return result;\n});\n\nexport default stringToPath;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n  return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n  if (isArray(value)) {\n    return value;\n  }\n  return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n  if (typeof value == 'string' || isSymbol(value)) {\n    return value;\n  }\n  var result = (value + '');\n  return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n  path = castPath(path, object);\n\n  var index = 0,\n      length = path.length;\n\n  while (object != null && index < length) {\n    object = object[toKey(path[index++])];\n  }\n  return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n  var result = object == null ? undefined : baseGet(object, path);\n  return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n  var index = -1,\n      length = values.length,\n      offset = array.length;\n\n  while (++index < length) {\n    array[offset + index] = values[index];\n  }\n  return array;\n}\n\nexport default arrayPush;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n    objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n *   this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n  if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n    return false;\n  }\n  var proto = getPrototype(value);\n  if (proto === null) {\n    return true;\n  }\n  var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n  return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n    funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n  var index = -1,\n      length = array.length;\n\n  if (start < 0) {\n    start = -start > length ? 0 : (length + start);\n  }\n  end = end > length ? length : end;\n  if (end < 0) {\n    end += length;\n  }\n  length = start > end ? 0 : ((end - start) >>> 0);\n  start >>>= 0;\n\n  var result = Array(length);\n  while (++index < length) {\n    result[index] = array[index + start];\n  }\n  return result;\n}\n\nexport default baseSlice;\n","import baseSlice from './_baseSlice.js';\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n  var length = array.length;\n  end = end === undefined ? length : end;\n  return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nexport default castSlice;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange  + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n  return reHasUnicode.test(string);\n}\n\nexport default hasUnicode;\n","/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n  return string.split('');\n}\n\nexport default asciiToArray;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n  return string.match(reUnicode) || [];\n}\n\nexport default unicodeToArray;\n","import asciiToArray from './_asciiToArray.js';\nimport hasUnicode from './_hasUnicode.js';\nimport unicodeToArray from './_unicodeToArray.js';\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n  return hasUnicode(string)\n    ? unicodeToArray(string)\n    : asciiToArray(string);\n}\n\nexport default stringToArray;\n","import castSlice from './_castSlice.js';\nimport hasUnicode from './_hasUnicode.js';\nimport stringToArray from './_stringToArray.js';\nimport toString from './toString.js';\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n  return function(string) {\n    string = toString(string);\n\n    var strSymbols = hasUnicode(string)\n      ? stringToArray(string)\n      : undefined;\n\n    var chr = strSymbols\n      ? strSymbols[0]\n      : string.charAt(0);\n\n    var trailing = strSymbols\n      ? castSlice(strSymbols, 1).join('')\n      : string.slice(1);\n\n    return chr[methodName]() + trailing;\n  };\n}\n\nexport default createCaseFirst;\n","import createCaseFirst from './_createCaseFirst.js';\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nexport default upperFirst;\n","import toString from './toString.js';\nimport upperFirst from './upperFirst.js';\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n  return upperFirst(toString(string).toLowerCase());\n}\n\nexport default capitalize;\n","/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n *  the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  if (initAccum && length) {\n    accumulator = array[++index];\n  }\n  while (++index < length) {\n    accumulator = iteratee(accumulator, array[index], index, array);\n  }\n  return accumulator;\n}\n\nexport default arrayReduce;\n","/**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n  return function(key) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nexport default basePropertyOf;\n","import basePropertyOf from './_basePropertyOf.js';\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n  // Latin-1 Supplement block.\n  '\\xc0': 'A',  '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n  '\\xe0': 'a',  '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n  '\\xc7': 'C',  '\\xe7': 'c',\n  '\\xd0': 'D',  '\\xf0': 'd',\n  '\\xc8': 'E',  '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n  '\\xe8': 'e',  '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n  '\\xcc': 'I',  '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n  '\\xec': 'i',  '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n  '\\xd1': 'N',  '\\xf1': 'n',\n  '\\xd2': 'O',  '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n  '\\xf2': 'o',  '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n  '\\xd9': 'U',  '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n  '\\xf9': 'u',  '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n  '\\xdd': 'Y',  '\\xfd': 'y', '\\xff': 'y',\n  '\\xc6': 'Ae', '\\xe6': 'ae',\n  '\\xde': 'Th', '\\xfe': 'th',\n  '\\xdf': 'ss',\n  // Latin Extended-A block.\n  '\\u0100': 'A',  '\\u0102': 'A', '\\u0104': 'A',\n  '\\u0101': 'a',  '\\u0103': 'a', '\\u0105': 'a',\n  '\\u0106': 'C',  '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n  '\\u0107': 'c',  '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n  '\\u010e': 'D',  '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n  '\\u0112': 'E',  '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n  '\\u0113': 'e',  '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n  '\\u011c': 'G',  '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n  '\\u011d': 'g',  '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n  '\\u0124': 'H',  '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n  '\\u0128': 'I',  '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n  '\\u0129': 'i',  '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n  '\\u0134': 'J',  '\\u0135': 'j',\n  '\\u0136': 'K',  '\\u0137': 'k', '\\u0138': 'k',\n  '\\u0139': 'L',  '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n  '\\u013a': 'l',  '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n  '\\u0143': 'N',  '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n  '\\u0144': 'n',  '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n  '\\u014c': 'O',  '\\u014e': 'O', '\\u0150': 'O',\n  '\\u014d': 'o',  '\\u014f': 'o', '\\u0151': 'o',\n  '\\u0154': 'R',  '\\u0156': 'R', '\\u0158': 'R',\n  '\\u0155': 'r',  '\\u0157': 'r', '\\u0159': 'r',\n  '\\u015a': 'S',  '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n  '\\u015b': 's',  '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n  '\\u0162': 'T',  '\\u0164': 'T', '\\u0166': 'T',\n  '\\u0163': 't',  '\\u0165': 't', '\\u0167': 't',\n  '\\u0168': 'U',  '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n  '\\u0169': 'u',  '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n  '\\u0174': 'W',  '\\u0175': 'w',\n  '\\u0176': 'Y',  '\\u0177': 'y', '\\u0178': 'Y',\n  '\\u0179': 'Z',  '\\u017b': 'Z', '\\u017d': 'Z',\n  '\\u017a': 'z',  '\\u017c': 'z', '\\u017e': 'z',\n  '\\u0132': 'IJ', '\\u0133': 'ij',\n  '\\u0152': 'Oe', '\\u0153': 'oe',\n  '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nexport default deburrLetter;\n","import deburrLetter from './_deburrLetter.js';\nimport toString from './toString.js';\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n  string = toString(string);\n  return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nexport default deburr;\n","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n  return string.match(reAsciiWord) || [];\n}\n\nexport default asciiWords;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n  return reHasUnicodeWord.test(string);\n}\n\nexport default hasUnicodeWord;\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n    rsComboMarksRange = '\\\\u0300-\\\\u036f',\n    reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n    rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n    rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n    rsDingbatRange = '\\\\u2700-\\\\u27bf',\n    rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n    rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n    rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n    rsPunctuationRange = '\\\\u2000-\\\\u206f',\n    rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n    rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n    rsVarRange = '\\\\ufe0e\\\\ufe0f',\n    rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n    rsBreak = '[' + rsBreakRange + ']',\n    rsCombo = '[' + rsComboRange + ']',\n    rsDigits = '\\\\d+',\n    rsDingbat = '[' + rsDingbatRange + ']',\n    rsLower = '[' + rsLowerRange + ']',\n    rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n    rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n    rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n    rsNonAstral = '[^' + rsAstralRange + ']',\n    rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n    rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n    rsUpper = '[' + rsUpperRange + ']',\n    rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n    rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n    rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n    rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n    reOptMod = rsModifier + '?',\n    rsOptVar = '[' + rsVarRange + ']?',\n    rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n    rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n    rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n    rsSeq = rsOptVar + reOptMod + rsOptJoin,\n    rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n  rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n  rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n  rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n  rsUpper + '+' + rsOptContrUpper,\n  rsOrdUpper,\n  rsOrdLower,\n  rsDigits,\n  rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n  return string.match(reUnicodeWord) || [];\n}\n\nexport default unicodeWords;\n","import asciiWords from './_asciiWords.js';\nimport hasUnicodeWord from './_hasUnicodeWord.js';\nimport toString from './toString.js';\nimport unicodeWords from './_unicodeWords.js';\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n  string = toString(string);\n  pattern = guard ? undefined : pattern;\n\n  if (pattern === undefined) {\n    return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n  }\n  return string.match(pattern) || [];\n}\n\nexport default words;\n","import arrayReduce from './_arrayReduce.js';\nimport deburr from './deburr.js';\nimport words from './words.js';\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n  return function(string) {\n    return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n  };\n}\n\nexport default createCompounder;\n","import capitalize from './capitalize.js';\nimport createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n  word = word.toLowerCase();\n  return result + (index ? capitalize(word) : word);\n});\n\nexport default camelCase;\n","import root from './_root.js';\nimport toInteger from './toInteger.js';\nimport toNumber from './toNumber.js';\nimport toString from './toString.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsFinite = root.isFinite,\n    nativeMin = Math.min;\n\n/**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\nfunction createRound(methodName) {\n  var func = Math[methodName];\n  return function(number, precision) {\n    number = toNumber(number);\n    precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n    if (precision && nativeIsFinite(number)) {\n      // Shift with exponential notation to avoid floating-point issues.\n      // See [MDN](https://mdn.io/round#Examples) for more details.\n      var pair = (toString(number) + 'e').split('e'),\n          value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n      pair = (toString(value) + 'e').split('e');\n      return +(pair[0] + 'e' + (+pair[1] - precision));\n    }\n    return func(number);\n  };\n}\n\nexport default createRound;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n  this.__data__ = new ListCache;\n  this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n  var data = this.__data__,\n      result = data['delete'](key);\n\n  this.size = data.size;\n  return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n  return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n  return this.__data__.has(key);\n}\n\nexport default stackHas;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n  var data = this.__data__;\n  if (data instanceof ListCache) {\n    var pairs = data.__data__;\n    if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n      pairs.push([key, value]);\n      this.size = ++data.size;\n      return this;\n    }\n    data = this.__data__ = new MapCache(pairs);\n  }\n  data.set(key, value);\n  this.size = data.size;\n  return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n  var data = this.__data__ = new ListCache(entries);\n  this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n  return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n  return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n    allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of  `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n  if (isDeep) {\n    return buffer.slice();\n  }\n  var length = buffer.length,\n      result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n  buffer.copy(result);\n  return result;\n}\n\nexport default cloneBuffer;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length,\n      resIndex = 0,\n      result = [];\n\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result[resIndex++] = value;\n    }\n  }\n  return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n  return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n  if (object == null) {\n    return [];\n  }\n  object = Object(object);\n  return arrayFilter(nativeGetSymbols(object), function(symbol) {\n    return propertyIsEnumerable.call(object, symbol);\n  });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n  return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n  var result = [];\n  while (object) {\n    arrayPush(result, getSymbols(object));\n    object = getPrototype(object);\n  }\n  return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n  return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n  var result = keysFunc(object);\n  return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n  return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n  return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n    objectTag = '[object Object]',\n    promiseTag = '[object Promise]',\n    setTag = '[object Set]',\n    weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n    mapCtorString = toSource(Map),\n    promiseCtorString = toSource(Promise),\n    setCtorString = toSource(Set),\n    weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n    (Map && getTag(new Map) != mapTag) ||\n    (Promise && getTag(Promise.resolve()) != promiseTag) ||\n    (Set && getTag(new Set) != setTag) ||\n    (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n  getTag = function(value) {\n    var result = baseGetTag(value),\n        Ctor = result == objectTag ? value.constructor : undefined,\n        ctorString = Ctor ? toSource(Ctor) : '';\n\n    if (ctorString) {\n      switch (ctorString) {\n        case dataViewCtorString: return dataViewTag;\n        case mapCtorString: return mapTag;\n        case promiseCtorString: return promiseTag;\n        case setCtorString: return setTag;\n        case weakMapCtorString: return weakMapTag;\n      }\n    }\n    return result;\n  };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n  var length = array.length,\n      result = new array.constructor(length);\n\n  // Add properties assigned by `RegExp#exec`.\n  if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n    result.index = array.index;\n    result.input = array.input;\n  }\n  return result;\n}\n\nexport default initCloneArray;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n  var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n  new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n  return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n  return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n  var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n  result.lastIndex = regexp.lastIndex;\n  return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n  return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n  var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n  return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n  var Ctor = object.constructor;\n  switch (tag) {\n    case arrayBufferTag:\n      return cloneArrayBuffer(object);\n\n    case boolTag:\n    case dateTag:\n      return new Ctor(+object);\n\n    case dataViewTag:\n      return cloneDataView(object, isDeep);\n\n    case float32Tag: case float64Tag:\n    case int8Tag: case int16Tag: case int32Tag:\n    case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n      return cloneTypedArray(object, isDeep);\n\n    case mapTag:\n      return new Ctor;\n\n    case numberTag:\n    case stringTag:\n      return new Ctor(object);\n\n    case regexpTag:\n      return cloneRegExp(object);\n\n    case setTag:\n      return new Ctor;\n\n    case symbolTag:\n      return cloneSymbol(object);\n  }\n}\n\nexport default initCloneByTag;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n  return (typeof object.constructor == 'function' && !isPrototype(object))\n    ? baseCreate(getPrototype(object))\n    : {};\n}\n\nexport default initCloneObject;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n  return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n  return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_FLAT_FLAG = 2,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    funcTag = '[object Function]',\n    genTag = '[object GeneratorFunction]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    objectTag = '[object Object]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]',\n    weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]',\n    float32Tag = '[object Float32Array]',\n    float64Tag = '[object Float64Array]',\n    int8Tag = '[object Int8Array]',\n    int16Tag = '[object Int16Array]',\n    int32Tag = '[object Int32Array]',\n    uint8Tag = '[object Uint8Array]',\n    uint8ClampedTag = '[object Uint8ClampedArray]',\n    uint16Tag = '[object Uint16Array]',\n    uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Deep clone\n *  2 - Flatten inherited properties\n *  4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n  var result,\n      isDeep = bitmask & CLONE_DEEP_FLAG,\n      isFlat = bitmask & CLONE_FLAT_FLAG,\n      isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n  if (customizer) {\n    result = object ? customizer(value, key, object, stack) : customizer(value);\n  }\n  if (result !== undefined) {\n    return result;\n  }\n  if (!isObject(value)) {\n    return value;\n  }\n  var isArr = isArray(value);\n  if (isArr) {\n    result = initCloneArray(value);\n    if (!isDeep) {\n      return copyArray(value, result);\n    }\n  } else {\n    var tag = getTag(value),\n        isFunc = tag == funcTag || tag == genTag;\n\n    if (isBuffer(value)) {\n      return cloneBuffer(value, isDeep);\n    }\n    if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n      result = (isFlat || isFunc) ? {} : initCloneObject(value);\n      if (!isDeep) {\n        return isFlat\n          ? copySymbolsIn(value, baseAssignIn(result, value))\n          : copySymbols(value, baseAssign(result, value));\n      }\n    } else {\n      if (!cloneableTags[tag]) {\n        return object ? value : {};\n      }\n      result = initCloneByTag(value, tag, isDeep);\n    }\n  }\n  // Check for circular references and return its corresponding clone.\n  stack || (stack = new Stack);\n  var stacked = stack.get(value);\n  if (stacked) {\n    return stacked;\n  }\n  stack.set(value, result);\n\n  if (isSet(value)) {\n    value.forEach(function(subValue) {\n      result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n    });\n  } else if (isMap(value)) {\n    value.forEach(function(subValue, key) {\n      result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n    });\n  }\n\n  var keysFunc = isFull\n    ? (isFlat ? getAllKeysIn : getAllKeys)\n    : (isFlat ? keysIn : keys);\n\n  var props = isArr ? undefined : keysFunc(value);\n  arrayEach(props || value, function(subValue, key) {\n    if (props) {\n      key = subValue;\n      subValue = value[key];\n    }\n    // Recursively populate clone (susceptible to call stack limits).\n    assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n  });\n  return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n    CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n  return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n  this.__data__.set(value, HASH_UNDEFINED);\n  return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n  return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n  var index = -1,\n      length = values == null ? 0 : values.length;\n\n  this.__data__ = new MapCache;\n  while (++index < length) {\n    this.add(values[index]);\n  }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n *  else `false`.\n */\nfunction arraySome(array, predicate) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    if (predicate(array[index], index, array)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n  return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      arrLength = array.length,\n      othLength = other.length;\n\n  if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n    return false;\n  }\n  // Check that cyclic values are equal.\n  var arrStacked = stack.get(array);\n  var othStacked = stack.get(other);\n  if (arrStacked && othStacked) {\n    return arrStacked == other && othStacked == array;\n  }\n  var index = -1,\n      result = true,\n      seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n  stack.set(array, other);\n  stack.set(other, array);\n\n  // Ignore non-index properties.\n  while (++index < arrLength) {\n    var arrValue = array[index],\n        othValue = other[index];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, arrValue, index, other, array, stack)\n        : customizer(arrValue, othValue, index, array, other, stack);\n    }\n    if (compared !== undefined) {\n      if (compared) {\n        continue;\n      }\n      result = false;\n      break;\n    }\n    // Recursively compare arrays (susceptible to call stack limits).\n    if (seen) {\n      if (!arraySome(other, function(othValue, othIndex) {\n            if (!cacheHas(seen, othIndex) &&\n                (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n              return seen.push(othIndex);\n            }\n          })) {\n        result = false;\n        break;\n      }\n    } else if (!(\n          arrValue === othValue ||\n            equalFunc(arrValue, othValue, bitmask, customizer, stack)\n        )) {\n      result = false;\n      break;\n    }\n  }\n  stack['delete'](array);\n  stack['delete'](other);\n  return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n  var index = -1,\n      result = Array(map.size);\n\n  map.forEach(function(value, key) {\n    result[++index] = [key, value];\n  });\n  return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n  var index = -1,\n      result = Array(set.size);\n\n  set.forEach(function(value) {\n    result[++index] = value;\n  });\n  return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n    dateTag = '[object Date]',\n    errorTag = '[object Error]',\n    mapTag = '[object Map]',\n    numberTag = '[object Number]',\n    regexpTag = '[object RegExp]',\n    setTag = '[object Set]',\n    stringTag = '[object String]',\n    symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n    dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n    symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n  switch (tag) {\n    case dataViewTag:\n      if ((object.byteLength != other.byteLength) ||\n          (object.byteOffset != other.byteOffset)) {\n        return false;\n      }\n      object = object.buffer;\n      other = other.buffer;\n\n    case arrayBufferTag:\n      if ((object.byteLength != other.byteLength) ||\n          !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n        return false;\n      }\n      return true;\n\n    case boolTag:\n    case dateTag:\n    case numberTag:\n      // Coerce booleans to `1` or `0` and dates to milliseconds.\n      // Invalid dates are coerced to `NaN`.\n      return eq(+object, +other);\n\n    case errorTag:\n      return object.name == other.name && object.message == other.message;\n\n    case regexpTag:\n    case stringTag:\n      // Coerce regexes to strings and treat strings, primitives and objects,\n      // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n      // for more details.\n      return object == (other + '');\n\n    case mapTag:\n      var convert = mapToArray;\n\n    case setTag:\n      var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n      convert || (convert = setToArray);\n\n      if (object.size != other.size && !isPartial) {\n        return false;\n      }\n      // Assume cyclic values are equal.\n      var stacked = stack.get(object);\n      if (stacked) {\n        return stacked == other;\n      }\n      bitmask |= COMPARE_UNORDERED_FLAG;\n\n      // Recursively compare objects (susceptible to call stack limits).\n      stack.set(object, other);\n      var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n      stack['delete'](object);\n      return result;\n\n    case symbolTag:\n      if (symbolValueOf) {\n        return symbolValueOf.call(object) == symbolValueOf.call(other);\n      }\n  }\n  return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n  var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n      objProps = getAllKeys(object),\n      objLength = objProps.length,\n      othProps = getAllKeys(other),\n      othLength = othProps.length;\n\n  if (objLength != othLength && !isPartial) {\n    return false;\n  }\n  var index = objLength;\n  while (index--) {\n    var key = objProps[index];\n    if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n      return false;\n    }\n  }\n  // Check that cyclic values are equal.\n  var objStacked = stack.get(object);\n  var othStacked = stack.get(other);\n  if (objStacked && othStacked) {\n    return objStacked == other && othStacked == object;\n  }\n  var result = true;\n  stack.set(object, other);\n  stack.set(other, object);\n\n  var skipCtor = isPartial;\n  while (++index < objLength) {\n    key = objProps[index];\n    var objValue = object[key],\n        othValue = other[key];\n\n    if (customizer) {\n      var compared = isPartial\n        ? customizer(othValue, objValue, key, other, object, stack)\n        : customizer(objValue, othValue, key, object, other, stack);\n    }\n    // Recursively compare objects (susceptible to call stack limits).\n    if (!(compared === undefined\n          ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n          : compared\n        )) {\n      result = false;\n      break;\n    }\n    skipCtor || (skipCtor = key == 'constructor');\n  }\n  if (result && !skipCtor) {\n    var objCtor = object.constructor,\n        othCtor = other.constructor;\n\n    // Non `Object` object instances with different constructors are not equal.\n    if (objCtor != othCtor &&\n        ('constructor' in object && 'constructor' in other) &&\n        !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n          typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n      result = false;\n    }\n  }\n  stack['delete'](object);\n  stack['delete'](other);\n  return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n    arrayTag = '[object Array]',\n    objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n  var objIsArr = isArray(object),\n      othIsArr = isArray(other),\n      objTag = objIsArr ? arrayTag : getTag(object),\n      othTag = othIsArr ? arrayTag : getTag(other);\n\n  objTag = objTag == argsTag ? objectTag : objTag;\n  othTag = othTag == argsTag ? objectTag : othTag;\n\n  var objIsObj = objTag == objectTag,\n      othIsObj = othTag == objectTag,\n      isSameTag = objTag == othTag;\n\n  if (isSameTag && isBuffer(object)) {\n    if (!isBuffer(other)) {\n      return false;\n    }\n    objIsArr = true;\n    objIsObj = false;\n  }\n  if (isSameTag && !objIsObj) {\n    stack || (stack = new Stack);\n    return (objIsArr || isTypedArray(object))\n      ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n      : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n  }\n  if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n    var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n        othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n    if (objIsWrapped || othIsWrapped) {\n      var objUnwrapped = objIsWrapped ? object.value() : object,\n          othUnwrapped = othIsWrapped ? other.value() : other;\n\n      stack || (stack = new Stack);\n      return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n    }\n  }\n  if (!isSameTag) {\n    return false;\n  }\n  stack || (stack = new Stack);\n  return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n *  1 - Unordered comparison\n *  2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n  if (value === other) {\n    return true;\n  }\n  if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n    return value !== value && other !== other;\n  }\n  return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n  var index = matchData.length,\n      length = index,\n      noCustomizer = !customizer;\n\n  if (object == null) {\n    return !length;\n  }\n  object = Object(object);\n  while (index--) {\n    var data = matchData[index];\n    if ((noCustomizer && data[2])\n          ? data[1] !== object[data[0]]\n          : !(data[0] in object)\n        ) {\n      return false;\n    }\n  }\n  while (++index < length) {\n    data = matchData[index];\n    var key = data[0],\n        objValue = object[key],\n        srcValue = data[1];\n\n    if (noCustomizer && data[2]) {\n      if (objValue === undefined && !(key in object)) {\n        return false;\n      }\n    } else {\n      var stack = new Stack;\n      if (customizer) {\n        var result = customizer(objValue, srcValue, key, object, source, stack);\n      }\n      if (!(result === undefined\n            ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n            : result\n          )) {\n        return false;\n      }\n    }\n  }\n  return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n *  equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n  return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n  var result = keys(object),\n      length = result.length;\n\n  while (length--) {\n    var key = result[length],\n        value = object[key];\n\n    result[length] = [key, value, isStrictComparable(value)];\n  }\n  return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n  return function(object) {\n    if (object == null) {\n      return false;\n    }\n    return object[key] === srcValue &&\n      (srcValue !== undefined || (key in Object(object)));\n  };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n  var matchData = getMatchData(source);\n  if (matchData.length == 1 && matchData[0][2]) {\n    return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n  }\n  return function(object) {\n    return object === source || baseIsMatch(object, source, matchData);\n  };\n}\n\nexport default baseMatches;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n  return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n  path = castPath(path, object);\n\n  var index = -1,\n      length = path.length,\n      result = false;\n\n  while (++index < length) {\n    var key = toKey(path[index]);\n    if (!(result = object != null && hasFunc(object, key))) {\n      break;\n    }\n    object = object[key];\n  }\n  if (result || ++index != length) {\n    return result;\n  }\n  length = object == null ? 0 : object.length;\n  return !!length && isLength(length) && isIndex(key, length) &&\n    (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n  return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n    COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n  if (isKey(path) && isStrictComparable(srcValue)) {\n    return matchesStrictComparable(toKey(path), srcValue);\n  }\n  return function(object) {\n    var objValue = get(object, path);\n    return (objValue === undefined && objValue === srcValue)\n      ? hasIn(object, path)\n      : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n  };\n}\n\nexport default baseMatchesProperty;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n  return function(object) {\n    return object == null ? undefined : object[key];\n  };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n  return function(object) {\n    return baseGet(object, path);\n  };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n *   { 'a': { 'b': 2 } },\n *   { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n  return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n  // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n  // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n  if (typeof value == 'function') {\n    return value;\n  }\n  if (value == null) {\n    return identity;\n  }\n  if (typeof value == 'object') {\n    return isArray(value)\n      ? baseMatchesProperty(value[0], value[1])\n      : baseMatches(value);\n  }\n  return property(value);\n}\n\nexport default baseIteratee;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n  var index = -1,\n      length = array == null ? 0 : array.length;\n\n  while (++index < length) {\n    var value = array[index];\n    setter(accumulator, value, iteratee(value), array);\n  }\n  return accumulator;\n}\n\nexport default arrayAggregator;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n  return function(object, iteratee, keysFunc) {\n    var index = -1,\n        iterable = Object(object),\n        props = keysFunc(object),\n        length = props.length;\n\n    while (length--) {\n      var key = props[fromRight ? length : ++index];\n      if (iteratee(iterable[key], key, iterable) === false) {\n        break;\n      }\n    }\n    return object;\n  };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n  return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n  return function(collection, iteratee) {\n    if (collection == null) {\n      return collection;\n    }\n    if (!isArrayLike(collection)) {\n      return eachFunc(collection, iteratee);\n    }\n    var length = collection.length,\n        index = fromRight ? length : -1,\n        iterable = Object(collection);\n\n    while ((fromRight ? index-- : ++index < length)) {\n      if (iteratee(iterable[index], index, iterable) === false) {\n        break;\n      }\n    }\n    return collection;\n  };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseEach from './_baseEach.js';\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n  baseEach(collection, function(value, key, collection) {\n    setter(accumulator, value, iteratee(value), collection);\n  });\n  return accumulator;\n}\n\nexport default baseAggregator;\n","import arrayAggregator from './_arrayAggregator.js';\nimport baseAggregator from './_baseAggregator.js';\nimport baseIteratee from './_baseIteratee.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n  return function(collection, iteratee) {\n    var func = isArray(collection) ? arrayAggregator : baseAggregator,\n        accumulator = initializer ? initializer() : {};\n\n    return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n  };\n}\n\nexport default createAggregator;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n *   console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n  return root.Date.now();\n};\n\nexport default now;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n    nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n *  Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n *  The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n *   'leading': true,\n *   'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n  var lastArgs,\n      lastThis,\n      maxWait,\n      result,\n      timerId,\n      lastCallTime,\n      lastInvokeTime = 0,\n      leading = false,\n      maxing = false,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  wait = toNumber(wait) || 0;\n  if (isObject(options)) {\n    leading = !!options.leading;\n    maxing = 'maxWait' in options;\n    maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n\n  function invokeFunc(time) {\n    var args = lastArgs,\n        thisArg = lastThis;\n\n    lastArgs = lastThis = undefined;\n    lastInvokeTime = time;\n    result = func.apply(thisArg, args);\n    return result;\n  }\n\n  function leadingEdge(time) {\n    // Reset any `maxWait` timer.\n    lastInvokeTime = time;\n    // Start the timer for the trailing edge.\n    timerId = setTimeout(timerExpired, wait);\n    // Invoke the leading edge.\n    return leading ? invokeFunc(time) : result;\n  }\n\n  function remainingWait(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime,\n        timeWaiting = wait - timeSinceLastCall;\n\n    return maxing\n      ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n      : timeWaiting;\n  }\n\n  function shouldInvoke(time) {\n    var timeSinceLastCall = time - lastCallTime,\n        timeSinceLastInvoke = time - lastInvokeTime;\n\n    // Either this is the first call, activity has stopped and we're at the\n    // trailing edge, the system time has gone backwards and we're treating\n    // it as the trailing edge, or we've hit the `maxWait` limit.\n    return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n      (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n  }\n\n  function timerExpired() {\n    var time = now();\n    if (shouldInvoke(time)) {\n      return trailingEdge(time);\n    }\n    // Restart the timer.\n    timerId = setTimeout(timerExpired, remainingWait(time));\n  }\n\n  function trailingEdge(time) {\n    timerId = undefined;\n\n    // Only invoke if we have `lastArgs` which means `func` has been\n    // debounced at least once.\n    if (trailing && lastArgs) {\n      return invokeFunc(time);\n    }\n    lastArgs = lastThis = undefined;\n    return result;\n  }\n\n  function cancel() {\n    if (timerId !== undefined) {\n      clearTimeout(timerId);\n    }\n    lastInvokeTime = 0;\n    lastArgs = lastCallTime = lastThis = timerId = undefined;\n  }\n\n  function flush() {\n    return timerId === undefined ? result : trailingEdge(now());\n  }\n\n  function debounced() {\n    var time = now(),\n        isInvoking = shouldInvoke(time);\n\n    lastArgs = arguments;\n    lastThis = this;\n    lastCallTime = time;\n\n    if (isInvoking) {\n      if (timerId === undefined) {\n        return leadingEdge(lastCallTime);\n      }\n      if (maxing) {\n        // Handle invocations in a tight loop.\n        clearTimeout(timerId);\n        timerId = setTimeout(timerExpired, wait);\n        return invokeFunc(lastCallTime);\n      }\n    }\n    if (timerId === undefined) {\n      timerId = setTimeout(timerExpired, wait);\n    }\n    return result;\n  }\n  debounced.cancel = cancel;\n  debounced.flush = flush;\n  return debounced;\n}\n\nexport default debounce;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nexport default assignMergeValue;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\nexport default safeGet;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\nexport default baseMerge;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n  var index = -1,\n      result = isArrayLike(collection) ? Array(collection.length) : [];\n\n  baseEach(collection, function(value, key, collection) {\n    result[++index] = iteratee(value, key, collection);\n  });\n  return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n *   return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n *   { 'user': 'barney' },\n *   { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n  var func = isArray(collection) ? arrayMap : baseMap;\n  return func(collection, baseIteratee(iteratee, 3));\n}\n\nexport default map;\n","import baseAssignValue from './_baseAssignValue.js';\nimport createAggregator from './_createAggregator.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n  if (hasOwnProperty.call(result, key)) {\n    result[key].push(value);\n  } else {\n    baseAssignValue(result, key, [value]);\n  }\n});\n\nexport default groupBy;\n","/**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n *  else `false`.\n */\nfunction baseGt(value, other) {\n  return value > other;\n}\n\nexport default baseGt;\n","import createCompounder from './_createCompounder.js';\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n  return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nexport default kebabCase;\n","import baseAssignValue from './_baseAssignValue.js';\nimport baseForOwn from './_baseForOwn.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n *   'fred':    { 'user': 'fred',    'age': 40 },\n *   'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\nfunction mapValues(object, iteratee) {\n  var result = {};\n  iteratee = baseIteratee(iteratee, 3);\n\n  baseForOwn(object, function(value, key, object) {\n    baseAssignValue(result, key, iteratee(value, key, object));\n  });\n  return result;\n}\n\nexport default mapValues;\n","import isSymbol from './isSymbol.js';\n\n/**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\nfunction baseExtremum(array, iteratee, comparator) {\n  var index = -1,\n      length = array.length;\n\n  while (++index < length) {\n    var value = array[index],\n        current = iteratee(value);\n\n    if (current != null && (computed === undefined\n          ? (current === current && !isSymbol(current))\n          : comparator(current, computed)\n        )) {\n      var computed = current,\n          result = value;\n    }\n  }\n  return result;\n}\n\nexport default baseExtremum;\n","import baseExtremum from './_baseExtremum.js';\nimport baseGt from './_baseGt.js';\nimport baseIteratee from './_baseIteratee.js';\n\n/**\n * This method is like `_.max` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * the value is ranked. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {*} Returns the maximum value.\n * @example\n *\n * var objects = [{ 'n': 1 }, { 'n': 2 }];\n *\n * _.maxBy(objects, function(o) { return o.n; });\n * // => { 'n': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.maxBy(objects, 'n');\n * // => { 'n': 2 }\n */\nfunction maxBy(array, iteratee) {\n  return (array && array.length)\n    ? baseExtremum(array, baseIteratee(iteratee, 2), baseGt)\n    : undefined;\n}\n\nexport default maxBy;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n *   'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n *   'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n  baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","import createRound from './_createRound.js';\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Math\n * @param {number} number The number to round.\n * @param {number} [precision=0] The precision to round to.\n * @returns {number} Returns the rounded number.\n * @example\n *\n * _.round(4.006);\n * // => 4\n *\n * _.round(4.006, 2);\n * // => 4.01\n *\n * _.round(4060, -2);\n * // => 4100\n */\nvar round = createRound('round');\n\nexport default round;\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n *  Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n *  Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n  var leading = true,\n      trailing = true;\n\n  if (typeof func != 'function') {\n    throw new TypeError(FUNC_ERROR_TEXT);\n  }\n  if (isObject(options)) {\n    leading = 'leading' in options ? !!options.leading : leading;\n    trailing = 'trailing' in options ? !!options.trailing : trailing;\n  }\n  return debounce(func, wait, {\n    'leading': leading,\n    'maxWait': wait,\n    'trailing': trailing\n  });\n}\n\nexport default throttle;\n","import type { NLocale } from '../common/enUS'\nimport { merge } from 'lodash-es'\n\nexport type NPartialLocale = {\n  [key in keyof NLocale]+?: {\n    [childKey in keyof NLocale[key]]+?: NLocale[key][childKey]\n  }\n}\n\nexport function createLocale(locale: NLocale): NLocale\nexport function createLocale(\n  locale: NPartialLocale,\n  fallbackLocale: NLocale\n): NLocale\nexport function createLocale(\n  locale: NPartialLocale,\n  fallbackLocale?: NLocale\n): NLocale {\n  return merge({}, fallbackLocale, locale)\n}\n","import type { Ref } from 'vue'\nimport type { NLocale } from '../locales/common/enUS'\nimport type { NDateLocale } from '../locales/date/enUS'\nimport { computed, inject } from 'vue'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\nimport { dateEnUS, enUS } from '../locales'\n\nexport default function useLocale<T extends keyof NLocale>(\n  ns: T\n): {\n  localeRef: Ref<NLocale[T]>\n  dateLocaleRef: Ref<NDateLocale>\n} {\n  const { mergedLocaleRef, mergedDateLocaleRef }\n    = inject(configProviderInjectionKey, null) || {}\n  const localeRef = computed(() => {\n    return mergedLocaleRef?.value?.[ns] ?? enUS[ns]\n  })\n  const dateLocaleRef = computed(() => {\n    return mergedDateLocaleRef?.value ?? dateEnUS\n  })\n  return {\n    dateLocaleRef,\n    localeRef\n  }\n}\n","export const cssrAnchorMetaName = 'naive-ui-style'\n","import type { Ref } from 'vue'\nimport type {\n  RtlEnabledState,\n  RtlItem\n} from '../config-provider/src/internal-interface'\nimport { useSsrAdapter } from '@css-render/vue3-ssr'\nimport { exists } from 'css-render'\nimport { computed, inject, onBeforeMount, watchEffect } from 'vue'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\nimport { cssrAnchorMetaName } from './common'\n\nexport function useRtl(\n  mountId: string,\n  rtlStateRef: Ref<RtlEnabledState | undefined> | undefined,\n  clsPrefixRef: Ref<string>\n): Ref<RtlItem | undefined> | undefined {\n  if (!rtlStateRef)\n    return undefined\n  const ssrAdapter = useSsrAdapter()\n  const componentRtlStateRef = computed(() => {\n    const { value: rtlState } = rtlStateRef\n    if (!rtlState) {\n      return undefined\n    }\n    const componentRtlState = rtlState[mountId as keyof RtlEnabledState]\n    if (!componentRtlState) {\n      return undefined\n    }\n    return componentRtlState\n  })\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  const mountStyle = (): void => {\n    watchEffect(() => {\n      const { value: clsPrefix } = clsPrefixRef\n      const id = `${clsPrefix}${mountId}Rtl`\n      // if it already exists, we only need to watch clsPrefix, although in most\n      // of time it's unnecessary... However we can at least listen less\n      // handlers, which is great.\n      if (exists(id, ssrAdapter))\n        return\n      const { value: componentRtlState } = componentRtlStateRef\n      if (!componentRtlState)\n        return\n      componentRtlState.style.mount({\n        id,\n        head: true,\n        anchorMetaName: cssrAnchorMetaName,\n        props: {\n          bPrefix: clsPrefix ? `.${clsPrefix}-` : undefined\n        },\n        ssr: ssrAdapter,\n        parent: NConfigProvider?.styleMountTarget\n      })\n    })\n  }\n  if (ssrAdapter) {\n    mountStyle()\n  }\n  else {\n    onBeforeMount(mountStyle)\n  }\n  return componentRtlStateRef\n}\n","export default {\n  fontFamily:\n    'v-sans, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"',\n  fontFamilyMono: 'v-mono, SFMono-Regular, Menlo, Consolas, Courier, monospace',\n\n  fontWeight: '400',\n  fontWeightStrong: '500',\n\n  cubicBezierEaseInOut: 'cubic-bezier(.4, 0, .2, 1)',\n  cubicBezierEaseOut: 'cubic-bezier(0, 0, .2, 1)',\n  cubicBezierEaseIn: 'cubic-bezier(.4, 0, 1, 1)',\n\n  borderRadius: '3px',\n  borderRadiusSmall: '2px',\n\n  fontSize: '14px',\n  fontSizeMini: '12px',\n  fontSizeTiny: '12px',\n  fontSizeSmall: '14px',\n  fontSizeMedium: '14px',\n  fontSizeLarge: '15px',\n  fontSizeHuge: '16px',\n\n  lineHeight: '1.6',\n\n  heightMini: '16px', // private now, it's too small\n  heightTiny: '22px',\n  heightSmall: '28px',\n  heightMedium: '34px',\n  heightLarge: '40px',\n  heightHuge: '46px'\n}\n","import { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst {\n  fontSize,\n  fontFamily,\n  lineHeight\n} = commonVariables\n\n// All the components need the style\n// It is static and won't be changed in the app's lifetime\n// If user want to overrides it they need to use `n-global-style` is provided\n//\n// Technically we can remove font-size & font-family & line-height to make\n// it pure. However the coding cost doesn't worth it.\n//\n// -webkit-tap-hilight-color:\n// https://developer.mozilla.org/en-US/docs/Web/CSS/-webkit-tap-highlight-color\n// In some android devices, there will be the style.\nexport default c('body', `\n  margin: 0;\n  font-size: ${fontSize};\n  font-family: ${fontFamily};\n  line-height: ${lineHeight};\n  -webkit-text-size-adjust: 100%;\n  -webkit-tap-highlight-color: transparent;\n`, [\n  c('input', `\n    font-family: inherit;\n    font-size: inherit;\n  `)\n])\n","import type { CNode } from 'css-render'\nimport type { Ref } from 'vue'\nimport { useSsrAdapter } from '@css-render/vue3-ssr'\nimport { inject, onBeforeMount } from 'vue'\nimport globalStyle from '../_styles/global/index.cssr'\nimport { throwError } from '../_utils'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\nimport { cssrAnchorMetaName } from './common'\n\nexport default function useStyle(\n  mountId: string,\n  style: CNode,\n  clsPrefixRef: Ref<string | undefined>\n): void {\n  if (!style) {\n    if (__DEV__)\n      throwError('use-style', 'No style is specified.')\n    return\n  }\n  const ssrAdapter = useSsrAdapter()\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  const mountStyle = (): void => {\n    const clsPrefix = clsPrefixRef.value\n    style.mount({\n      id: clsPrefix === undefined ? mountId : clsPrefix + mountId,\n      head: true,\n      anchorMetaName: cssrAnchorMetaName,\n      props: {\n        bPrefix: clsPrefix ? `.${clsPrefix}-` : undefined\n      },\n      ssr: ssrAdapter,\n      parent: NConfigProvider?.styleMountTarget\n    })\n    if (!NConfigProvider?.preflightStyleDisabled) {\n      globalStyle.mount({\n        id: 'n-global',\n        head: true,\n        anchorMetaName: cssrAnchorMetaName,\n        ssr: ssrAdapter,\n        parent: NConfigProvider?.styleMountTarget\n      })\n    }\n  }\n  if (ssrAdapter) {\n    mountStyle()\n  }\n  else {\n    onBeforeMount(mountStyle)\n  }\n}\n","import type { CNode } from 'css-render'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ThemeCommonVars } from '../_styles/common'\nimport type { GlobalTheme } from '../config-provider'\nimport { useSsrAdapter } from '@css-render/vue3-ssr'\nimport { merge } from 'lodash-es'\nimport { computed, inject, onBeforeMount } from 'vue'\nimport globalStyle from '../_styles/global/index.cssr'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\nimport { cssrAnchorMetaName } from './common'\n\nexport interface Theme<N, T = Record<string, unknown>, R = any> {\n  name: N\n  common?: ThemeCommonVars\n  peers?: R\n  self?: (vars: ThemeCommonVars) => T\n}\n\nexport interface ThemeProps<T, O = ExtractThemeOverrides<T>> {\n  theme: PropType<T>\n  themeOverrides: PropType<O>\n  builtinThemeOverrides: PropType<O>\n}\n\nexport type ExtractThemeVars<T>\n  = T extends Theme<unknown, infer U, unknown>\n    ? unknown extends U // self is undefined, ThemeVars is unknown\n      ? Record<string, unknown>\n      : U\n    : Record<string, unknown>\n\nexport type ExtractPeerOverrides<T>\n  = T extends Theme<unknown, unknown, infer V>\n    ? {\n        peers?: {\n          [k in keyof V]?: ExtractThemeOverrides<V[k]>\n        }\n      }\n    : T\n\n// V is peers theme\nexport type ExtractMergedPeerOverrides<T>\n  = T extends Theme<unknown, unknown, infer V>\n    ? {\n        [k in keyof V]?: ExtractPeerOverrides<V[k]>\n      }\n    : T\n\nexport type ExtractThemeOverrides<T> = Partial<ExtractThemeVars<T>>\n  & ExtractPeerOverrides<T> & { common?: Partial<ThemeCommonVars> }\n\nexport function createTheme<N extends string, T, R>(\n  theme: Theme<N, T, R>\n): Theme<N, T, R> {\n  return theme\n}\n\ntype UseThemeProps<T> = Readonly<{\n  theme?: T | undefined\n  themeOverrides?: ExtractThemeOverrides<T>\n  builtinThemeOverrides?: ExtractThemeOverrides<T>\n}>\n\nexport type MergedTheme<T>\n  = T extends Theme<unknown, infer V, infer W>\n    ? {\n        common: ThemeCommonVars\n        self: V\n        peers: W\n        peerOverrides: ExtractMergedPeerOverrides<T>\n      }\n    : T\n\nfunction useTheme<T extends Theme<string, any, any>>(\n  resolveId: Exclude<keyof GlobalTheme, 'common' | 'name'>,\n  mountId: string,\n  style: CNode | undefined,\n  defaultTheme: T,\n  props: UseThemeProps<T>,\n  clsPrefixRef: Ref<string | undefined> | undefined\n): ComputedRef<MergedTheme<T>> {\n  const ssrAdapter = useSsrAdapter()\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  if (style) {\n    const mountStyle = (): void => {\n      const clsPrefix = clsPrefixRef?.value\n      style.mount({\n        id: clsPrefix === undefined ? mountId : clsPrefix + mountId,\n        head: true,\n        props: {\n          bPrefix: clsPrefix ? `.${clsPrefix}-` : undefined\n        },\n        anchorMetaName: cssrAnchorMetaName,\n        ssr: ssrAdapter,\n        parent: NConfigProvider?.styleMountTarget\n      })\n      if (!NConfigProvider?.preflightStyleDisabled) {\n        globalStyle.mount({\n          id: 'n-global',\n          head: true,\n          anchorMetaName: cssrAnchorMetaName,\n          ssr: ssrAdapter,\n          parent: NConfigProvider?.styleMountTarget\n        })\n      }\n    }\n    if (ssrAdapter) {\n      mountStyle()\n    }\n    else {\n      onBeforeMount(mountStyle)\n    }\n  }\n  const mergedThemeRef = computed(() => {\n    // keep props to make theme overrideable\n    const {\n      theme: { common: selfCommon, self, peers = {} } = {},\n      themeOverrides: selfOverrides = {} as ExtractThemeOverrides<T>,\n      builtinThemeOverrides: builtinOverrides = {} as ExtractThemeOverrides<T>\n    } = props\n    const { common: selfCommonOverrides, peers: peersOverrides } = selfOverrides\n    const {\n      common: globalCommon = undefined,\n      [resolveId]: {\n        common: globalSelfCommon = undefined,\n        self: globalSelf = undefined,\n        peers: globalPeers = {}\n      } = {}\n    } = NConfigProvider?.mergedThemeRef.value || {}\n    const {\n      common: globalCommonOverrides = undefined,\n      [resolveId]: globalSelfOverrides = {}\n    } = NConfigProvider?.mergedThemeOverridesRef.value || {}\n    const {\n      common: globalSelfCommonOverrides,\n      peers: globalPeersOverrides = {}\n    } = globalSelfOverrides\n    const mergedCommon = merge(\n      {},\n      selfCommon || globalSelfCommon || globalCommon || defaultTheme.common,\n      globalCommonOverrides,\n      globalSelfCommonOverrides,\n      selfCommonOverrides\n    )\n    const mergedSelf = merge(\n      // {}, executed every time, no need for empty obj\n      (self || globalSelf || defaultTheme.self)?.(\n        mergedCommon\n      ) as ExtractThemeVars<T>,\n      builtinOverrides,\n      globalSelfOverrides,\n      selfOverrides\n    )\n    return {\n      common: mergedCommon,\n      self: mergedSelf,\n      peers: merge({}, defaultTheme.peers, globalPeers, peers),\n      peerOverrides: merge(\n        {},\n        builtinOverrides.peers,\n        globalPeersOverrides,\n        peersOverrides\n      )\n    } as MergedTheme<T>\n  })\n  return mergedThemeRef\n}\n\nuseTheme.props = {\n  theme: Object,\n  themeOverrides: Object,\n  builtinThemeOverrides: Object\n} as const\n\n/**\n * props.theme (Theme):\n * {\n *   common: CommonThemeVars,\n *   self(): ThemeVars,\n *   peers: { Component: Theme }\n * }\n * provider.theme:\n * {\n *   common: CommonThemeVars,\n *   Button: Theme\n *   ...\n * }\n * defaultTheme:\n * {\n *   common: CommonThemeVars,\n *   self(): ThemeVars,\n *   peers: { Component: Theme }\n * }\n *\n * props.themeOverrides (ThemeOverrides):\n * {\n *   common: CommonThemeVars,\n *   peers: { Component: ThemeOverrides },\n *   ...ThemeVars\n * }\n * provider.themeOverrides:\n * {\n *   common: CommonThemeVars,\n *   Component: ThemeOverrides\n *   ...\n * }\n *\n * mergedTheme:\n * {\n *   common: CommonThemeVars,\n *   self: ThemeVars,\n *   peers: { Component: Theme },\n *   overrides: { Component: ThemeOverrides }\n * }\n */\nexport default useTheme\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('affix', [\n  cM('affixed', {\n    position: 'fixed'\n  }, [\n    cM('absolute-positioned', {\n      position: 'absolute'\n    })\n  ])\n])\n","export type ScrollTarget = Window | Document | HTMLElement\n\nexport function getScrollTop(target: ScrollTarget): number {\n  return target instanceof HTMLElement ? target.scrollTop : window.scrollY\n}\n\nexport function getRect(target: ScrollTarget): { top: number, bottom: number } {\n  return target instanceof HTMLElement\n    ? target.getBoundingClientRect()\n    : { top: 0, bottom: window.innerHeight }\n}\n","import {\n  defineComponent as __defineComponent,\n  normalizeClass as _normalizeClass,\n  cloneVNode,\n  Comment,\n  createBlock,\n  createElementBlock,\n  createElementVNode,\n  createVNode,\n  Fragment,\n  getCurrentInstance,\n  isVNode,\n  openBlock,\n  renderList,\n  Text,\n  withCtx\n} from \"vue\";\nconst cacheMap = /* @__PURE__ */ new WeakMap();\nexport function createVNodeCache(key) {\n  const i = getCurrentInstance();\n  if (i) {\n    if (!cacheMap.has(i)) cacheMap.set(i, {});\n    const caches = cacheMap.get(i);\n    return caches[key] || (caches[key] = []);\n  } else {\n    return [];\n  }\n}\nexport function normalizeVNode(value, flag = 1) {\n  let create = createVNode;\n  let isBlock = false;\n  if (typeof value === \"function\") {\n    isBlock = true;\n    openBlock();\n    create = createBlock;\n    value = value();\n  }\n  return isVNode(value) ? isBlock ? createBlock(cloneIfMounted(value)) : cloneIfMounted(value) : Array.isArray(value) ? isBlock ? createElementBlock(\n    Fragment,\n    null,\n    value.map((n) => normalizeVNode(() => n)),\n    -2\n  ) : createElementVNode(Fragment, null, value.slice()) : value == null || typeof value === \"boolean\" ? create(Comment) : create(Text, null, String(value), flag);\n}\nfunction cloneIfMounted(child) {\n  return child.el === null && child.patchFlag !== -1 || // @ts-ignore\n  child.memo ? child : cloneVNode(child);\n}\nconst normalizeSlotValue = (value) => Array.isArray(value) ? value.map((n) => normalizeVNode(n)) : [normalizeVNode(value)];\nexport const normalizeSlot = (rawSlot) => {\n  if (rawSlot._n) {\n    return rawSlot;\n  }\n  return withCtx((...args) => {\n    return normalizeSlotValue(rawSlot(...args));\n  });\n};\nexport const normalizeSlots = (slots) => {\n  return typeof slots === \"function\" || Object.prototype.toString.call(slots) === \"[object Object]\" && !isVNode(slots) ? slots : {\n    default: withCtx(() => [normalizeVNode(() => slots)])\n  };\n};\nexport const normalizeClass = (value) => _normalizeClass(value) || null;\nexport const defineComponent = __defineComponent;\nexport const For = defineComponent(\n  (props, {\n    slots\n  }) => {\n    const defaultSlot = slots.default;\n    return () => (openBlock(true), createElementBlock(\n      Fragment,\n      null,\n      renderList(props.in, (item, key, index) => {\n        const result = defaultSlot(item, key, index);\n        return Array.isArray(result) ? result.length === 1 ? result[0] : normalizeVNode(result) : result;\n      }),\n      128\n    ));\n  },\n  { props: [\"in\"] }\n);\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ScrollTarget } from './utils'\nimport { beforeNextFrameOnce, unwrapElement } from 'seemly'\nimport {\n  computed,\n  defineComponent,\n  h,\n  onBeforeUnmount,\n  onMounted,\n  ref\n} from 'vue'\nimport { useConfig, useStyle } from '../../_mixins'\nimport { keysOf, warn } from '../../_utils'\nimport style from './styles/index.cssr'\nimport { getRect, getScrollTop } from './utils'\n\nexport const affixProps = {\n  listenTo: [String, Object, Function] as PropType<\n    string | ScrollTarget | (() => HTMLElement) | undefined\n  >,\n  top: Number,\n  bottom: Number,\n  triggerTop: Number,\n  triggerBottom: Number,\n  position: {\n    type: String as PropType<'fixed' | 'absolute'>,\n    default: 'fixed'\n  },\n  // deprecated\n  offsetTop: {\n    type: Number as PropType<number | undefined>,\n    validator: () => {\n      if (__DEV__) {\n        warn(\n          'affix',\n          '`offset-top` is deprecated, please use `trigger-top` instead.'\n        )\n      }\n      return true\n    },\n    default: undefined\n  },\n  offsetBottom: {\n    type: Number as PropType<number | undefined>,\n    validator: () => {\n      if (__DEV__) {\n        warn(\n          'affix',\n          '`offset-bottom` is deprecated, please use `trigger-bottom` instead.'\n        )\n      }\n      return true\n    },\n    default: undefined\n  },\n  target: {\n    type: Function as unknown as PropType<(() => HTMLElement) | undefined>,\n    validator: () => {\n      if (__DEV__) {\n        warn('affix', '`target` is deprecated, please use `listen-to` instead.')\n      }\n      return true\n    },\n    default: undefined\n  }\n} as const\n\nexport const affixPropKeys = keysOf(affixProps)\n\nexport type AffixProps = ExtractPublicPropTypes<typeof affixProps>\n\nexport default defineComponent({\n  name: 'Affix',\n  props: affixProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    useStyle('-affix', style, mergedClsPrefixRef)\n    let scrollTarget: ScrollTarget | null = null\n    const stickToTopRef = ref(false)\n    const stickToBottomRef = ref(false)\n    const bottomAffixedTriggerScrollTopRef = ref<number | null>(null)\n    const topAffixedTriggerScrollTopRef = ref<number | null>(null)\n    const affixedRef = computed(() => {\n      return stickToBottomRef.value || stickToTopRef.value\n    })\n    const mergedOffsetTopRef = computed(() => {\n      return props.triggerTop ?? props.offsetTop ?? props.top\n    })\n    const mergedTopRef = computed(() => {\n      return props.top ?? props.triggerTop ?? props.offsetTop\n    })\n    const mergedBottomRef = computed(() => {\n      return props.bottom ?? props.triggerBottom ?? props.offsetBottom\n    })\n    const mergedOffsetBottomRef = computed(() => {\n      return props.triggerBottom ?? props.offsetBottom ?? props.bottom\n    })\n    const selfRef = ref<Element | null>(null)\n    const init = (): void => {\n      const { target: getScrollTarget, listenTo } = props\n      if (getScrollTarget) {\n        // deprecated\n        scrollTarget = getScrollTarget()\n      }\n      else if (listenTo) {\n        scrollTarget = unwrapElement(listenTo)\n      }\n      else {\n        scrollTarget = document\n      }\n      if (scrollTarget) {\n        scrollTarget.addEventListener('scroll', handleScroll)\n        handleScroll()\n      }\n      else if (__DEV__) {\n        warn('affix', 'Target to be listened to is not valid.')\n      }\n    }\n    function handleScroll(): void {\n      beforeNextFrameOnce(_handleScroll)\n    }\n\n    function _handleScroll(): void {\n      const { value: selfEl } = selfRef\n      if (!scrollTarget || !selfEl)\n        return\n      const scrollTop = getScrollTop(scrollTarget)\n      if (affixedRef.value) {\n        if (\n          topAffixedTriggerScrollTopRef.value !== null\n          && scrollTop < topAffixedTriggerScrollTopRef.value\n        ) {\n          stickToTopRef.value = false\n          topAffixedTriggerScrollTopRef.value = null\n        }\n        if (\n          bottomAffixedTriggerScrollTopRef.value !== null\n          && scrollTop > bottomAffixedTriggerScrollTopRef.value\n        ) {\n          stickToBottomRef.value = false\n          bottomAffixedTriggerScrollTopRef.value = null\n        }\n        return\n      }\n      const containerRect = getRect(scrollTarget)\n      const affixRect = selfEl.getBoundingClientRect()\n      const pxToTop = affixRect.top - containerRect.top\n      const pxToBottom = containerRect.bottom - affixRect.bottom\n      const mergedOffsetTop = mergedOffsetTopRef.value\n      const mergedOffsetBottom = mergedOffsetBottomRef.value\n      if (mergedOffsetTop !== undefined && pxToTop <= mergedOffsetTop) {\n        stickToTopRef.value = true\n        topAffixedTriggerScrollTopRef.value\n          = scrollTop - (mergedOffsetTop - pxToTop)\n      }\n      else {\n        stickToTopRef.value = false\n        topAffixedTriggerScrollTopRef.value = null\n      }\n      if (\n        mergedOffsetBottom !== undefined\n        && pxToBottom <= mergedOffsetBottom\n      ) {\n        stickToBottomRef.value = true\n        bottomAffixedTriggerScrollTopRef.value\n          = scrollTop + mergedOffsetBottom - pxToBottom\n      }\n      else {\n        stickToBottomRef.value = false\n        bottomAffixedTriggerScrollTopRef.value = null\n      }\n    }\n    onMounted(() => {\n      init()\n    })\n    onBeforeUnmount(() => {\n      if (!scrollTarget)\n        return\n      scrollTarget.removeEventListener('scroll', handleScroll)\n    })\n    return {\n      selfRef,\n      affixed: affixedRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedstyle: computed<CSSProperties>(() => {\n        const style: CSSProperties = {}\n        if (\n          stickToTopRef.value\n          && mergedOffsetTopRef.value !== undefined\n          && mergedTopRef.value !== undefined\n        ) {\n          style.top = `${mergedTopRef.value}px`\n        }\n        if (\n          stickToBottomRef.value\n          && mergedOffsetBottomRef.value !== undefined\n          && mergedBottomRef.value !== undefined\n        ) {\n          style.bottom = `${mergedBottomRef.value}px`\n        }\n        return style\n      })\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        ref=\"selfRef\"\n        class={[\n          `${mergedClsPrefix}-affix`,\n          {\n            [`${mergedClsPrefix}-affix--affixed`]: this.affixed,\n            [`${mergedClsPrefix}-affix--absolute-positioned`]:\n              this.position === 'absolute'\n          }\n        ]}\n        style={this.mergedstyle}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import { c, cB } from '../../../../_utils/cssr'\n\nexport default cB('base-icon', `\n  height: 1em;\n  width: 1em;\n  line-height: 1em;\n  text-align: center;\n  display: inline-block;\n  position: relative;\n  fill: currentColor;\n`, [\n  c('svg', `\n    height: 1em;\n    width: 1em;\n  `)\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'BaseIcon',\n  props: {\n    role: String,\n    ariaLabel: String,\n    ariaDisabled: {\n      type: Boolean,\n      default: undefined\n    },\n    ariaHidden: {\n      type: Boolean,\n      default: undefined\n    },\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    onClick: Function as PropType<(e: MouseEvent) => void>,\n    onMousedown: Function as PropType<(e: MouseEvent) => void>,\n    onMouseup: Function as PropType<(e: MouseEvent) => void>\n  },\n  setup(props) {\n    useStyle('-base-icon', style, toRef(props, 'clsPrefix'))\n  },\n  render() {\n    return (\n      <i\n        class={`${this.clsPrefix}-base-icon`}\n        onClick={this.onClick}\n        onMousedown={this.onMousedown}\n        onMouseup={this.onMouseup}\n        role={this.role}\n        aria-label={this.ariaLabel}\n        aria-hidden={this.ariaHidden}\n        aria-disabled={this.ariaDisabled}\n      >\n        {this.$slots.default?.()}\n      </i>\n    )\n  }\n})\n","import { useIsMounted } from 'vooks'\nimport { defineComponent, h, Transition } from 'vue'\n\nexport default defineComponent({\n  name: 'BaseIconSwitchTransition',\n  setup(_, { slots }) {\n    const isMountedRef = useIsMounted()\n    return () => (\n      <Transition name=\"icon-switch-transition\" appear={isMountedRef.value}>\n        {slots}\n      </Transition>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Add',\n  render() {\n    return (\n      <svg\n        width=\"512\"\n        height=\"512\"\n        viewBox=\"0 0 512 512\"\n        fill=\"none\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n      >\n        <path\n          d=\"M256 112V400M400 256H112\"\n          stroke=\"currentColor\"\n          stroke-width=\"32\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowBack',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n        <path d=\"M0 0h24v24H0V0z\" fill=\"none\"></path>\n        <path d=\"M19 11H7.83l4.88-4.88c.39-.39.39-1.03 0-1.42-.39-.39-1.02-.39-1.41 0l-6.59 6.59c-.39.39-.39 1.02 0 1.41l6.59 6.59c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L7.83 13H19c.55 0 1-.45 1-1s-.45-1-1-1z\"></path>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowDown',\n  render() {\n    return (\n      <svg viewBox=\"0 0 28 28\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n        <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n          <g fill-rule=\"nonzero\">\n            <path d=\"M23.7916,15.2664 C24.0788,14.9679 24.0696,14.4931 23.7711,14.206 C23.4726,13.9188 22.9978,13.928 22.7106,14.2265 L14.7511,22.5007 L14.7511,3.74792 C14.7511,3.33371 14.4153,2.99792 14.0011,2.99792 C13.5869,2.99792 13.2511,3.33371 13.2511,3.74793 L13.2511,22.4998 L5.29259,14.2265 C5.00543,13.928 4.53064,13.9188 4.23213,14.206 C3.93361,14.4931 3.9244,14.9679 4.21157,15.2664 L13.2809,24.6944 C13.6743,25.1034 14.3289,25.1034 14.7223,24.6944 L23.7916,15.2664 Z\" />\n          </g>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ArrowUp',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n        <g fill=\"none\">\n          <path\n            d=\"M3.13 9.163a.5.5 0 1 0 .74.674L9.5 3.67V17.5a.5.5 0 0 0 1 0V3.672l5.63 6.165a.5.5 0 0 0 .738-.674l-6.315-6.916a.746.746 0 0 0-.632-.24a.746.746 0 0 0-.476.24L3.131 9.163z\"\n            fill=\"currentColor\"\n          >\n          </path>\n        </g>\n      </svg>\n    )\n  }\n})\n","import type { VNode } from 'vue'\nimport type { GlobalIconConfig } from '../../config-provider/src/internal-interface'\nimport { upperFirst } from 'lodash-es'\nimport { defineComponent, h, inject } from 'vue'\nimport { configProviderInjectionKey } from '../../config-provider/src/context'\n\nexport function replaceable(name: keyof GlobalIconConfig, icon: () => VNode) {\n  const IconComponent = defineComponent({\n    render() {\n      return icon()\n    }\n  })\n  return defineComponent({\n    name: upperFirst(name),\n    setup() {\n      const mergedIconsRef = inject(\n        configProviderInjectionKey,\n        null\n      )?.mergedIconsRef\n      return () => {\n        const iconOverride = mergedIconsRef?.value?.[name]\n        return iconOverride ? iconOverride() : <IconComponent />\n      }\n    }\n  })\n}\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('attach', () => (\n  <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M3.25735931,8.70710678 L7.85355339,4.1109127 C8.82986412,3.13460197 10.4127766,3.13460197 11.3890873,4.1109127 C12.365398,5.08722343 12.365398,6.67013588 11.3890873,7.64644661 L6.08578644,12.9497475 C5.69526215,13.3402718 5.06209717,13.3402718 4.67157288,12.9497475 C4.28104858,12.5592232 4.28104858,11.9260582 4.67157288,11.5355339 L9.97487373,6.23223305 C10.1701359,6.0369709 10.1701359,5.72038841 9.97487373,5.52512627 C9.77961159,5.32986412 9.4630291,5.32986412 9.26776695,5.52512627 L3.96446609,10.8284271 C3.18341751,11.6094757 3.18341751,12.8758057 3.96446609,13.6568542 C4.74551468,14.4379028 6.01184464,14.4379028 6.79289322,13.6568542 L12.0961941,8.35355339 C13.4630291,6.98671837 13.4630291,4.77064094 12.0961941,3.40380592 C10.7293591,2.0369709 8.51328163,2.0369709 7.14644661,3.40380592 L2.55025253,8 C2.35499039,8.19526215 2.35499039,8.51184464 2.55025253,8.70710678 C2.74551468,8.90236893 3.06209717,8.90236893 3.25735931,8.70710678 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Backward',\n  render() {\n    return (\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M12.2674 15.793C11.9675 16.0787 11.4927 16.0672 11.2071 15.7673L6.20572 10.5168C5.9298 10.2271 5.9298 9.7719 6.20572 9.48223L11.2071 4.23177C11.4927 3.93184 11.9675 3.92031 12.2674 4.206C12.5673 4.49169 12.5789 4.96642 12.2932 5.26634L7.78458 9.99952L12.2932 14.7327C12.5789 15.0326 12.5673 15.5074 12.2674 15.793Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('cancel', () => (\n  <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M2.58859116,2.7156945 L2.64644661,2.64644661 C2.82001296,2.47288026 3.08943736,2.45359511 3.2843055,2.58859116 L3.35355339,2.64644661 L8,7.293 L12.6464466,2.64644661 C12.8417088,2.45118446 13.1582912,2.45118446 13.3535534,2.64644661 C13.5488155,2.84170876 13.5488155,3.15829124 13.3535534,3.35355339 L8.707,8 L13.3535534,12.6464466 C13.5271197,12.820013 13.5464049,13.0894374 13.4114088,13.2843055 L13.3535534,13.3535534 C13.179987,13.5271197 12.9105626,13.5464049 12.7156945,13.4114088 L12.6464466,13.3535534 L8,8.707 L3.35355339,13.3535534 C3.15829124,13.5488155 2.84170876,13.5488155 2.64644661,13.3535534 C2.45118446,13.1582912 2.45118446,12.8417088 2.64644661,12.6464466 L7.293,8 L2.64644661,3.35355339 C2.47288026,3.17998704 2.45359511,2.91056264 2.58859116,2.7156945 L2.64644661,2.64644661 L2.58859116,2.7156945 Z\"></path>\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Checkmark',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n        <g fill=\"none\">\n          <path\n            d=\"M14.046 3.486a.75.75 0 0 1-.032 1.06l-7.93 7.474a.85.85 0 0 1-1.188-.022l-2.68-2.72a.75.75 0 1 1 1.068-1.053l2.234 2.267l7.468-7.038a.75.75 0 0 1 1.06.032z\"\n            fill=\"currentColor\"\n          >\n          </path>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronDown',\n  render() {\n    return (\n      <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M3.14645 5.64645C3.34171 5.45118 3.65829 5.45118 3.85355 5.64645L8 9.79289L12.1464 5.64645C12.3417 5.45118 12.6583 5.45118 12.8536 5.64645C13.0488 5.84171 13.0488 6.15829 12.8536 6.35355L8.35355 10.8536C8.15829 11.0488 7.84171 11.0488 7.64645 10.8536L3.14645 6.35355C2.95118 6.15829 2.95118 5.84171 3.14645 5.64645Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronDownFilled',\n  render() {\n    return (\n      <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M3.20041 5.73966C3.48226 5.43613 3.95681 5.41856 4.26034 5.70041L8 9.22652L11.7397 5.70041C12.0432 5.41856 12.5177 5.43613 12.7996 5.73966C13.0815 6.0432 13.0639 6.51775 12.7603 6.7996L8.51034 10.7996C8.22258 11.0668 7.77743 11.0668 7.48967 10.7996L3.23966 6.7996C2.93613 6.51775 2.91856 6.0432 3.20041 5.73966Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronLeft',\n  render() {\n    return (\n      <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M10.3536 3.14645C10.5488 3.34171 10.5488 3.65829 10.3536 3.85355L6.20711 8L10.3536 12.1464C10.5488 12.3417 10.5488 12.6583 10.3536 12.8536C10.1583 13.0488 9.84171 13.0488 9.64645 12.8536L5.14645 8.35355C4.95118 8.15829 4.95118 7.84171 5.14645 7.64645L9.64645 3.14645C9.84171 2.95118 10.1583 2.95118 10.3536 3.14645Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ChevronRight',\n  render() {\n    return (\n      <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M5.64645 3.14645C5.45118 3.34171 5.45118 3.65829 5.64645 3.85355L9.79289 8L5.64645 12.1464C5.45118 12.3417 5.45118 12.6583 5.64645 12.8536C5.84171 13.0488 6.15829 13.0488 6.35355 12.8536L10.8536 8.35355C11.0488 8.15829 11.0488 7.84171 10.8536 7.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('clear', () => (\n  <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M8,2 C11.3137085,2 14,4.6862915 14,8 C14,11.3137085 11.3137085,14 8,14 C4.6862915,14 2,11.3137085 2,8 C2,4.6862915 4.6862915,2 8,2 Z M6.5343055,5.83859116 C6.33943736,5.70359511 6.07001296,5.72288026 5.89644661,5.89644661 L5.89644661,5.89644661 L5.83859116,5.9656945 C5.70359511,6.16056264 5.72288026,6.42998704 5.89644661,6.60355339 L5.89644661,6.60355339 L7.293,8 L5.89644661,9.39644661 L5.83859116,9.4656945 C5.70359511,9.66056264 5.72288026,9.92998704 5.89644661,10.1035534 L5.89644661,10.1035534 L5.9656945,10.1614088 C6.16056264,10.2964049 6.42998704,10.2771197 6.60355339,10.1035534 L6.60355339,10.1035534 L8,8.707 L9.39644661,10.1035534 L9.4656945,10.1614088 C9.66056264,10.2964049 9.92998704,10.2771197 10.1035534,10.1035534 L10.1035534,10.1035534 L10.1614088,10.0343055 C10.2964049,9.83943736 10.2771197,9.57001296 10.1035534,9.39644661 L10.1035534,9.39644661 L8.707,8 L10.1035534,6.60355339 L10.1614088,6.5343055 C10.2964049,6.33943736 10.2771197,6.07001296 10.1035534,5.89644661 L10.1035534,5.89644661 L10.0343055,5.83859116 C9.83943736,5.70359511 9.57001296,5.72288026 9.39644661,5.89644661 L9.39644661,5.89644661 L8,7.293 L6.60355339,5.89644661 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('close', () => (\n  <svg\n    viewBox=\"0 0 12 12\"\n    version=\"1.1\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    aria-hidden\n  >\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M2.08859116,2.2156945 L2.14644661,2.14644661 C2.32001296,1.97288026 2.58943736,1.95359511 2.7843055,2.08859116 L2.85355339,2.14644661 L6,5.293 L9.14644661,2.14644661 C9.34170876,1.95118446 9.65829124,1.95118446 9.85355339,2.14644661 C10.0488155,2.34170876 10.0488155,2.65829124 9.85355339,2.85355339 L6.707,6 L9.85355339,9.14644661 C10.0271197,9.32001296 10.0464049,9.58943736 9.91140884,9.7843055 L9.85355339,9.85355339 C9.67998704,10.0271197 9.41056264,10.0464049 9.2156945,9.91140884 L9.14644661,9.85355339 L6,6.707 L2.85355339,9.85355339 C2.65829124,10.0488155 2.34170876,10.0488155 2.14644661,9.85355339 C1.95118446,9.65829124 1.95118446,9.34170876 2.14644661,9.14644661 L5.293,6 L2.14644661,2.85355339 C1.97288026,2.67998704 1.95359511,2.41056264 2.08859116,2.2156945 L2.14644661,2.14644661 L2.08859116,2.2156945 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('date', () => (\n  <svg\n    width=\"28px\"\n    height=\"28px\"\n    viewBox=\"0 0 28 28\"\n    version=\"1.1\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n  >\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g fill-rule=\"nonzero\">\n        <path d=\"M21.75,3 C23.5449254,3 25,4.45507456 25,6.25 L25,21.75 C25,23.5449254 23.5449254,25 21.75,25 L6.25,25 C4.45507456,25 3,23.5449254 3,21.75 L3,6.25 C3,4.45507456 4.45507456,3 6.25,3 L21.75,3 Z M23.5,9.503 L4.5,9.503 L4.5,21.75 C4.5,22.7164983 5.28350169,23.5 6.25,23.5 L21.75,23.5 C22.7164983,23.5 23.5,22.7164983 23.5,21.75 L23.5,9.503 Z M21.75,4.5 L6.25,4.5 C5.28350169,4.5 4.5,5.28350169 4.5,6.25 L4.5,8.003 L23.5,8.003 L23.5,6.25 C23.5,5.28350169 22.7164983,4.5 21.75,4.5 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('download', () => (\n  <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M3.5,13 L12.5,13 C12.7761424,13 13,13.2238576 13,13.5 C13,13.7454599 12.8231248,13.9496084 12.5898756,13.9919443 L12.5,14 L3.5,14 C3.22385763,14 3,13.7761424 3,13.5 C3,13.2545401 3.17687516,13.0503916 3.41012437,13.0080557 L3.5,13 L12.5,13 L3.5,13 Z M7.91012437,1.00805567 L8,1 C8.24545989,1 8.44960837,1.17687516 8.49194433,1.41012437 L8.5,1.5 L8.5,10.292 L11.1819805,7.6109127 C11.3555469,7.43734635 11.6249713,7.4180612 11.8198394,7.55305725 L11.8890873,7.6109127 C12.0626536,7.78447906 12.0819388,8.05390346 11.9469427,8.2487716 L11.8890873,8.31801948 L8.35355339,11.8535534 C8.17998704,12.0271197 7.91056264,12.0464049 7.7156945,11.9114088 L7.64644661,11.8535534 L4.1109127,8.31801948 C3.91565056,8.12275734 3.91565056,7.80617485 4.1109127,7.6109127 C4.28447906,7.43734635 4.55390346,7.4180612 4.7487716,7.55305725 L4.81801948,7.6109127 L7.5,10.292 L7.5,1.5 C7.5,1.25454011 7.67687516,1.05039163 7.91012437,1.00805567 L8,1 L7.91012437,1.00805567 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Empty',\n  render() {\n    return (\n      <svg viewBox=\"0 0 28 28\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M26 7.5C26 11.0899 23.0899 14 19.5 14C15.9101 14 13 11.0899 13 7.5C13 3.91015 15.9101 1 19.5 1C23.0899 1 26 3.91015 26 7.5ZM16.8536 4.14645C16.6583 3.95118 16.3417 3.95118 16.1464 4.14645C15.9512 4.34171 15.9512 4.65829 16.1464 4.85355L18.7929 7.5L16.1464 10.1464C15.9512 10.3417 15.9512 10.6583 16.1464 10.8536C16.3417 11.0488 16.6583 11.0488 16.8536 10.8536L19.5 8.20711L22.1464 10.8536C22.3417 11.0488 22.6583 11.0488 22.8536 10.8536C23.0488 10.6583 23.0488 10.3417 22.8536 10.1464L20.2071 7.5L22.8536 4.85355C23.0488 4.65829 23.0488 4.34171 22.8536 4.14645C22.6583 3.95118 22.3417 3.95118 22.1464 4.14645L19.5 6.79289L16.8536 4.14645Z\"\n          fill=\"currentColor\"\n        >\n        </path>\n        <path\n          d=\"M25 22.75V12.5991C24.5572 13.0765 24.053 13.4961 23.5 13.8454V16H17.5L17.3982 16.0068C17.0322 16.0565 16.75 16.3703 16.75 16.75C16.75 18.2688 15.5188 19.5 14 19.5C12.4812 19.5 11.25 18.2688 11.25 16.75L11.2432 16.6482C11.1935 16.2822 10.8797 16 10.5 16H4.5V7.25C4.5 6.2835 5.2835 5.5 6.25 5.5H12.2696C12.4146 4.97463 12.6153 4.47237 12.865 4H6.25C4.45507 4 3 5.45507 3 7.25V22.75C3 24.5449 4.45507 26 6.25 26H21.75C23.5449 26 25 24.5449 25 22.75ZM4.5 22.75V17.5H9.81597L9.85751 17.7041C10.2905 19.5919 11.9808 21 14 21L14.215 20.9947C16.2095 20.8953 17.842 19.4209 18.184 17.5H23.5V22.75C23.5 23.7165 22.7165 24.5 21.75 24.5H6.25C5.2835 24.5 4.5 23.7165 4.5 22.75Z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('error', () => (\n  <svg viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g fill-rule=\"nonzero\">\n        <path d=\"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M17.8838835,16.1161165 L17.7823881,16.0249942 C17.3266086,15.6583353 16.6733914,15.6583353 16.2176119,16.0249942 L16.1161165,16.1161165 L16.0249942,16.2176119 C15.6583353,16.6733914 15.6583353,17.3266086 16.0249942,17.7823881 L16.1161165,17.8838835 L22.233,24 L16.1161165,30.1161165 L16.0249942,30.2176119 C15.6583353,30.6733914 15.6583353,31.3266086 16.0249942,31.7823881 L16.1161165,31.8838835 L16.2176119,31.9750058 C16.6733914,32.3416647 17.3266086,32.3416647 17.7823881,31.9750058 L17.8838835,31.8838835 L24,25.767 L30.1161165,31.8838835 L30.2176119,31.9750058 C30.6733914,32.3416647 31.3266086,32.3416647 31.7823881,31.9750058 L31.8838835,31.8838835 L31.9750058,31.7823881 C32.3416647,31.3266086 32.3416647,30.6733914 31.9750058,30.2176119 L31.8838835,30.1161165 L25.767,24 L31.8838835,17.8838835 L31.9750058,17.7823881 C32.3416647,17.3266086 32.3416647,16.6733914 31.9750058,16.2176119 L31.8838835,16.1161165 L31.7823881,16.0249942 C31.3266086,15.6583353 30.6733914,15.6583353 30.2176119,16.0249942 L30.1161165,16.1161165 L24,22.233 L17.8838835,16.1161165 L17.7823881,16.0249942 L17.8838835,16.1161165 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Eye',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n        <path\n          d=\"M255.66 112c-77.94 0-157.89 45.11-220.83 135.33a16 16 0 0 0-.27 17.77C82.92 340.8 161.8 400 255.66 400c92.84 0 173.34-59.38 221.79-135.25a16.14 16.14 0 0 0 0-17.47C428.89 172.28 347.8 112 255.66 112z\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-linecap=\"round\"\n          stroke-linejoin=\"round\"\n          stroke-width=\"32\"\n        />\n        <circle\n          cx=\"256\"\n          cy=\"256\"\n          r=\"80\"\n          fill=\"none\"\n          stroke=\"currentColor\"\n          stroke-miterlimit=\"10\"\n          stroke-width=\"32\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'EyeOff',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n        <path\n          d=\"M432 448a15.92 15.92 0 0 1-11.31-4.69l-352-352a16 16 0 0 1 22.62-22.62l352 352A16 16 0 0 1 432 448z\"\n          fill=\"currentColor\"\n        />\n        <path\n          d=\"M255.66 384c-41.49 0-81.5-12.28-118.92-36.5c-34.07-22-64.74-53.51-88.7-91v-.08c19.94-28.57 41.78-52.73 65.24-72.21a2 2 0 0 0 .14-2.94L93.5 161.38a2 2 0 0 0-2.71-.12c-24.92 21-48.05 46.76-69.08 76.92a31.92 31.92 0 0 0-.64 35.54c26.41 41.33 60.4 76.14 98.28 100.65C162 402 207.9 416 255.66 416a239.13 239.13 0 0 0 75.8-12.58a2 2 0 0 0 .77-3.31l-21.58-21.58a4 4 0 0 0-3.83-1a204.8 204.8 0 0 1-51.16 6.47z\"\n          fill=\"currentColor\"\n        />\n        <path\n          d=\"M490.84 238.6c-26.46-40.92-60.79-75.68-99.27-100.53C349 110.55 302 96 255.66 96a227.34 227.34 0 0 0-74.89 12.83a2 2 0 0 0-.75 3.31l21.55 21.55a4 4 0 0 0 3.88 1a192.82 192.82 0 0 1 50.21-6.69c40.69 0 80.58 12.43 118.55 37c34.71 22.4 65.74 53.88 89.76 91a.13.13 0 0 1 0 .16a310.72 310.72 0 0 1-64.12 72.73a2 2 0 0 0-.15 2.95l19.9 19.89a2 2 0 0 0 2.7.13a343.49 343.49 0 0 0 68.64-78.48a32.2 32.2 0 0 0-.1-34.78z\"\n          fill=\"currentColor\"\n        />\n        <path\n          d=\"M256 160a95.88 95.88 0 0 0-21.37 2.4a2 2 0 0 0-1 3.38l112.59 112.56a2 2 0 0 0 3.38-1A96 96 0 0 0 256 160z\"\n          fill=\"currentColor\"\n        />\n        <path\n          d=\"M165.78 233.66a2 2 0 0 0-3.38 1a96 96 0 0 0 115 115a2 2 0 0 0 1-3.38z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'FastBackward',\n  render() {\n    return (\n      <svg viewBox=\"0 0 20 20\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g fill=\"currentColor\" fill-rule=\"nonzero\">\n            <path d=\"M8.73171,16.7949 C9.03264,17.0795 9.50733,17.0663 9.79196,16.7654 C10.0766,16.4644 10.0634,15.9897 9.76243,15.7051 L4.52339,10.75 L17.2471,10.75 C17.6613,10.75 17.9971,10.4142 17.9971,10 C17.9971,9.58579 17.6613,9.25 17.2471,9.25 L4.52112,9.25 L9.76243,4.29275 C10.0634,4.00812 10.0766,3.53343 9.79196,3.2325 C9.50733,2.93156 9.03264,2.91834 8.73171,3.20297 L2.31449,9.27241 C2.14819,9.4297 2.04819,9.62981 2.01448,9.8386 C2.00308,9.89058 1.99707,9.94459 1.99707,10 C1.99707,10.0576 2.00356,10.1137 2.01585,10.1675 C2.05084,10.3733 2.15039,10.5702 2.31449,10.7254 L8.73171,16.7949 Z\" />\n          </g>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'FastForward',\n  render() {\n    return (\n      <svg viewBox=\"0 0 20 20\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g fill=\"currentColor\" fill-rule=\"nonzero\">\n            <path d=\"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z\" />\n          </g>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Filter',\n  render() {\n    return (\n      <svg viewBox=\"0 0 28 28\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n        <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n          <g fill-rule=\"nonzero\">\n            <path d=\"M17,19 C17.5522847,19 18,19.4477153 18,20 C18,20.5522847 17.5522847,21 17,21 L11,21 C10.4477153,21 10,20.5522847 10,20 C10,19.4477153 10.4477153,19 11,19 L17,19 Z M21,13 C21.5522847,13 22,13.4477153 22,14 C22,14.5522847 21.5522847,15 21,15 L7,15 C6.44771525,15 6,14.5522847 6,14 C6,13.4477153 6.44771525,13 7,13 L21,13 Z M24,7 C24.5522847,7 25,7.44771525 25,8 C25,8.55228475 24.5522847,9 24,9 L4,9 C3.44771525,9 3,8.55228475 3,8 C3,7.44771525 3.44771525,7 4,7 L24,7 Z\" />\n          </g>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Forward',\n  render() {\n    return (\n      <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n        <path\n          d=\"M7.73271 4.20694C8.03263 3.92125 8.50737 3.93279 8.79306 4.23271L13.7944 9.48318C14.0703 9.77285 14.0703 10.2281 13.7944 10.5178L8.79306 15.7682C8.50737 16.0681 8.03263 16.0797 7.73271 15.794C7.43279 15.5083 7.42125 15.0336 7.70694 14.7336L12.2155 10.0005L7.70694 5.26729C7.42125 4.96737 7.43279 4.49264 7.73271 4.20694Z\"\n          fill=\"currentColor\"\n        />\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('info', () => (\n  <svg viewBox=\"0 0 28 28\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g fill-rule=\"nonzero\">\n        <path d=\"M14,2 C20.6274,2 26,7.37258 26,14 C26,20.6274 20.6274,26 14,26 C7.37258,26 2,20.6274 2,14 C2,7.37258 7.37258,2 14,2 Z M14,11 C13.4477,11 13,11.4477 13,12 L13,12 L13,20 C13,20.5523 13.4477,21 14,21 C14.5523,21 15,20.5523 15,20 L15,20 L15,12 C15,11.4477 14.5523,11 14,11 Z M14,6.75 C13.3096,6.75 12.75,7.30964 12.75,8 C12.75,8.69036 13.3096,9.25 14,9.25 C14.6904,9.25 15.25,8.69036 15.25,8 C15.25,7.30964 14.6904,6.75 14,6.75 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'More',\n  render() {\n    return (\n      <svg viewBox=\"0 0 16 16\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n        <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n          <g fill=\"currentColor\" fill-rule=\"nonzero\">\n            <path d=\"M4,7 C4.55228,7 5,7.44772 5,8 C5,8.55229 4.55228,9 4,9 C3.44772,9 3,8.55229 3,8 C3,7.44772 3.44772,7 4,7 Z M8,7 C8.55229,7 9,7.44772 9,8 C9,8.55229 8.55229,9 8,9 C7.44772,9 7,8.55229 7,8 C7,7.44772 7.44772,7 8,7 Z M12,7 C12.5523,7 13,7.44772 13,8 C13,8.55229 12.5523,9 12,9 C11.4477,9 11,8.55229 11,8 C11,7.44772 11.4477,7 12,7 Z\" />\n          </g>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Remove',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n        <line\n          x1=\"400\"\n          y1=\"256\"\n          x2=\"112\"\n          y2=\"256\"\n          style=\"\n        fill: none;\n        stroke: currentColor;\n        stroke-linecap: round;\n        stroke-linejoin: round;\n        stroke-width: 32px;\n      \"\n        />\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'ResizeSmall',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\">\n        <g fill=\"none\">\n          <path\n            d=\"M5.5 4A1.5 1.5 0 0 0 4 5.5v1a.5.5 0 0 1-1 0v-1A2.5 2.5 0 0 1 5.5 3h1a.5.5 0 0 1 0 1h-1zM16 5.5A1.5 1.5 0 0 0 14.5 4h-1a.5.5 0 0 1 0-1h1A2.5 2.5 0 0 1 17 5.5v1a.5.5 0 0 1-1 0v-1zm0 9a1.5 1.5 0 0 1-1.5 1.5h-1a.5.5 0 0 0 0 1h1a2.5 2.5 0 0 0 2.5-2.5v-1a.5.5 0 0 0-1 0v1zm-12 0A1.5 1.5 0 0 0 5.5 16h1.25a.5.5 0 0 1 0 1H5.5A2.5 2.5 0 0 1 3 14.5v-1.25a.5.5 0 0 1 1 0v1.25zM8.5 7A1.5 1.5 0 0 0 7 8.5v3A1.5 1.5 0 0 0 8.5 13h3a1.5 1.5 0 0 0 1.5-1.5v-3A1.5 1.5 0 0 0 11.5 7h-3zM8 8.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5v3a.5.5 0 0 1-.5.5h-3a.5.5 0 0 1-.5-.5v-3z\"\n            fill=\"currentColor\"\n          />\n        </g>\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('retry', () => (\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path\n      d=\"M320,146s24.36-12-64-12A160,160,0,1,0,416,294\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: 32px;\"\n    />\n    <polyline\n      points=\"256 58 336 138 256 218\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;\"\n    />\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('rotateClockwise', () => (\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M3 10C3 6.13401 6.13401 3 10 3C13.866 3 17 6.13401 17 10C17 12.7916 15.3658 15.2026 13 16.3265V14.5C13 14.2239 12.7761 14 12.5 14C12.2239 14 12 14.2239 12 14.5V17.5C12 17.7761 12.2239 18 12.5 18H15.5C15.7761 18 16 17.7761 16 17.5C16 17.2239 15.7761 17 15.5 17H13.8758C16.3346 15.6357 18 13.0128 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 10.2761 2.22386 10.5 2.5 10.5C2.77614 10.5 3 10.2761 3 10Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n    <path\n      d=\"M10 12C11.1046 12 12 11.1046 12 10C12 8.89543 11.1046 8 10 8C8.89543 8 8 8.89543 8 10C8 11.1046 8.89543 12 10 12ZM10 11C9.44772 11 9 10.5523 9 10C9 9.44772 9.44772 9 10 9C10.5523 9 11 9.44772 11 10C11 10.5523 10.5523 11 10 11Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('rotateClockwise', () => (\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M17 10C17 6.13401 13.866 3 10 3C6.13401 3 3 6.13401 3 10C3 12.7916 4.63419 15.2026 7 16.3265V14.5C7 14.2239 7.22386 14 7.5 14C7.77614 14 8 14.2239 8 14.5V17.5C8 17.7761 7.77614 18 7.5 18H4.5C4.22386 18 4 17.7761 4 17.5C4 17.2239 4.22386 17 4.5 17H6.12422C3.66539 15.6357 2 13.0128 2 10C2 5.58172 5.58172 2 10 2C14.4183 2 18 5.58172 18 10C18 10.2761 17.7761 10.5 17.5 10.5C17.2239 10.5 17 10.2761 17 10Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n    <path\n      d=\"M10 12C8.89543 12 8 11.1046 8 10C8 8.89543 8.89543 8 10 8C11.1046 8 12 8.89543 12 10C12 11.1046 11.1046 12 10 12ZM10 11C10.5523 11 11 10.5523 11 10C11 9.44772 10.5523 9 10 9C9.44772 9 9 9.44772 9 10C9 10.5523 9.44772 11 10 11Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Search',\n  render() {\n    return (\n      <svg\n        version=\"1.1\"\n        xmlns=\"http://www.w3.org/2000/svg\"\n        viewBox=\"0 0 512 512\"\n        style=\"enable-background: new 0 0 512 512\"\n      >\n        <path\n          d=\"M443.5,420.2L336.7,312.4c20.9-26.2,33.5-59.4,33.5-95.5c0-84.5-68.5-153-153.1-153S64,132.5,64,217s68.5,153,153.1,153\n  c36.6,0,70.1-12.8,96.5-34.2l106.1,107.1c3.2,3.4,7.6,5.1,11.9,5.1c4.1,0,8.2-1.5,11.3-4.5C449.5,437.2,449.7,426.8,443.5,420.2z\n   M217.1,337.1c-32.1,0-62.3-12.5-85-35.2c-22.7-22.7-35.2-52.9-35.2-84.9c0-32.1,12.5-62.3,35.2-84.9c22.7-22.7,52.9-35.2,85-35.2\n  c32.1,0,62.3,12.5,85,35.2c22.7,22.7,35.2,52.9,35.2,84.9c0,32.1-12.5,62.3-35.2,84.9C279.4,324.6,249.2,337.1,217.1,337.1z\"\n        />\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('success', () => (\n  <svg viewBox=\"0 0 48 48\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g fill-rule=\"nonzero\">\n        <path d=\"M24,4 C35.045695,4 44,12.954305 44,24 C44,35.045695 35.045695,44 24,44 C12.954305,44 4,35.045695 4,24 C4,12.954305 12.954305,4 24,4 Z M32.6338835,17.6161165 C32.1782718,17.1605048 31.4584514,17.1301307 30.9676119,17.5249942 L30.8661165,17.6161165 L20.75,27.732233 L17.1338835,24.1161165 C16.6457281,23.6279612 15.8542719,23.6279612 15.3661165,24.1161165 C14.9105048,24.5717282 14.8801307,25.2915486 15.2749942,25.7823881 L15.3661165,25.8838835 L19.8661165,30.3838835 C20.3217282,30.8394952 21.0415486,30.8698693 21.5323881,30.4750058 L21.6338835,30.3838835 L32.6338835,19.3838835 C33.1220388,18.8957281 33.1220388,18.1042719 32.6338835,17.6161165 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Switcher',\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\">\n        <path d=\"M12 8l10 8l-10 8z\" />\n      </svg>\n    )\n  }\n})\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('time', () => (\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path\n      d=\"M256,64C150,64,64,150,64,256s86,192,192,192,192-86,192-192S362,64,256,64Z\"\n      style=\"\n        fill: none;\n        stroke: currentColor;\n        stroke-miterlimit: 10;\n        stroke-width: 32px;\n      \"\n    />\n    <polyline\n      points=\"256 128 256 272 352 272\"\n      style=\"\n        fill: none;\n        stroke: currentColor;\n        stroke-linecap: round;\n        stroke-linejoin: round;\n        stroke-width: 32px;\n      \"\n    />\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('to', () => (\n  <svg viewBox=\"0 0 20 20\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n      <g fill=\"currentColor\" fill-rule=\"nonzero\">\n        <path d=\"M11.2654,3.20511 C10.9644,2.92049 10.4897,2.93371 10.2051,3.23464 C9.92049,3.53558 9.93371,4.01027 10.2346,4.29489 L15.4737,9.25 L2.75,9.25 C2.33579,9.25 2,9.58579 2,10.0000012 C2,10.4142 2.33579,10.75 2.75,10.75 L15.476,10.75 L10.2346,15.7073 C9.93371,15.9919 9.92049,16.4666 10.2051,16.7675 C10.4897,17.0684 10.9644,17.0817 11.2654,16.797 L17.6826,10.7276 C17.8489,10.5703 17.9489,10.3702 17.9826,10.1614 C17.994,10.1094 18,10.0554 18,10.0000012 C18,9.94241 17.9935,9.88633 17.9812,9.83246 C17.9462,9.62667 17.8467,9.42976 17.6826,9.27455 L11.2654,3.20511 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('trash', () => (\n  <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 512 512\">\n    <path\n      d=\"M432,144,403.33,419.74A32,32,0,0,1,371.55,448H140.46a32,32,0,0,1-31.78-28.26L80,144\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;\"\n    >\n    </path>\n    <rect\n      x=\"32\"\n      y=\"64\"\n      width=\"448\"\n      height=\"80\"\n      rx=\"16\"\n      ry=\"16\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;\"\n    >\n    </rect>\n    <line\n      x1=\"312\"\n      y1=\"240\"\n      x2=\"200\"\n      y2=\"352\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;\"\n    >\n    </line>\n    <line\n      x1=\"312\"\n      y1=\"352\"\n      x2=\"200\"\n      y2=\"240\"\n      style=\"fill: none; stroke: currentcolor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 32px;\"\n    >\n    </line>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('warning', () => (\n  <svg viewBox=\"0 0 24 24\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g fill-rule=\"nonzero\">\n        <path d=\"M12,2 C17.523,2 22,6.478 22,12 C22,17.522 17.523,22 12,22 C6.477,22 2,17.522 2,12 C2,6.478 6.477,2 12,2 Z M12.0018002,15.0037242 C11.450254,15.0037242 11.0031376,15.4508407 11.0031376,16.0023869 C11.0031376,16.553933 11.450254,17.0010495 12.0018002,17.0010495 C12.5533463,17.0010495 13.0004628,16.553933 13.0004628,16.0023869 C13.0004628,15.4508407 12.5533463,15.0037242 12.0018002,15.0037242 Z M11.99964,7 C11.4868042,7.00018474 11.0642719,7.38637706 11.0066858,7.8837365 L11,8.00036004 L11.0018003,13.0012393 L11.00857,13.117858 C11.0665141,13.6151758 11.4893244,14.0010638 12.0021602,14.0008793 C12.514996,14.0006946 12.9375283,13.6145023 12.9951144,13.1171428 L13.0018002,13.0005193 L13,7.99964009 L12.9932303,7.8830214 C12.9352861,7.38570354 12.5124758,6.99981552 11.99964,7 Z\" />\n      </g>\n    </g>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('zoomIn', () => (\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M11.5 8.5C11.5 8.22386 11.2761 8 11 8H9V6C9 5.72386 8.77614 5.5 8.5 5.5C8.22386 5.5 8 5.72386 8 6V8H6C5.72386 8 5.5 8.22386 5.5 8.5C5.5 8.77614 5.72386 9 6 9H8V11C8 11.2761 8.22386 11.5 8.5 11.5C8.77614 11.5 9 11.2761 9 11V9H11C11.2761 9 11.5 8.77614 11.5 8.5Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n    <path\n      d=\"M8.5 3C11.5376 3 14 5.46243 14 8.5C14 9.83879 13.5217 11.0659 12.7266 12.0196L16.8536 16.1464C17.0488 16.3417 17.0488 16.6583 16.8536 16.8536C16.68 17.0271 16.4106 17.0464 16.2157 16.9114L16.1464 16.8536L12.0196 12.7266C11.0659 13.5217 9.83879 14 8.5 14C5.46243 14 3 11.5376 3 8.5C3 5.46243 5.46243 3 8.5 3ZM8.5 4C6.01472 4 4 6.01472 4 8.5C4 10.9853 6.01472 13 8.5 13C10.9853 13 13 10.9853 13 8.5C13 6.01472 10.9853 4 8.5 4Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n  </svg>\n))\n","import { h } from 'vue'\nimport { replaceable } from './replaceable'\n\nexport default replaceable('zoomOut', () => (\n  <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n    <path\n      d=\"M11 8C11.2761 8 11.5 8.22386 11.5 8.5C11.5 8.77614 11.2761 9 11 9H6C5.72386 9 5.5 8.77614 5.5 8.5C5.5 8.22386 5.72386 8 6 8H11Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n    <path\n      d=\"M14 8.5C14 5.46243 11.5376 3 8.5 3C5.46243 3 3 5.46243 3 8.5C3 11.5376 5.46243 14 8.5 14C9.83879 14 11.0659 13.5217 12.0196 12.7266L16.1464 16.8536L16.2157 16.9114C16.4106 17.0464 16.68 17.0271 16.8536 16.8536C17.0488 16.6583 17.0488 16.3417 16.8536 16.1464L12.7266 12.0196C13.5217 11.0659 14 9.83879 14 8.5ZM4 8.5C4 6.01472 6.01472 4 8.5 4C10.9853 4 13 6.01472 13 8.5C13 10.9853 10.9853 13 8.5 13C6.01472 13 4 10.9853 4 8.5Z\"\n      fill=\"currentColor\"\n    >\n    </path>\n  </svg>\n))\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst {\n  cubicBezierEaseInOut\n} = commonVariables\n\ninterface IconSwitchTransitionOptions {\n  originalTransform?: string\n  left?: string | number\n  top?: string | number\n  transition?: string\n}\n\nexport function iconSwitchTransition({\n  originalTransform = '',\n  left = 0,\n  top = 0,\n  transition = `all .3s ${cubicBezierEaseInOut} !important`\n}: IconSwitchTransitionOptions = {}): CNode[] {\n  return [\n    c('&.icon-switch-transition-enter-from, &.icon-switch-transition-leave-to', {\n      transform: `${originalTransform} scale(0.75)`,\n      left,\n      top,\n      opacity: 0\n    }),\n    c('&.icon-switch-transition-enter-to, &.icon-switch-transition-leave-from', {\n      transform: `scale(1) ${originalTransform}`,\n      left,\n      top,\n      opacity: 1\n    }),\n    c('&.icon-switch-transition-enter-active, &.icon-switch-transition-leave-active', {\n      transformOrigin: 'center',\n      position: 'absolute',\n      left,\n      top,\n      transition\n    })\n  ]\n}\n","import { iconSwitchTransition } from '../../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE } from '../../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-clear-color\n// --n-clear-size\n// --n-clear-color-hover\n// --n-clear-color-pressed\nexport default cB('base-clear', `\n  flex-shrink: 0;\n  height: 1em;\n  width: 1em;\n  position: relative;\n`, [\n  c('>', [\n    cE('clear', `\n      font-size: var(--n-clear-size);\n      height: 1em;\n      width: 1em;\n      cursor: pointer;\n      color: var(--n-clear-color);\n      transition: color .3s var(--n-bezier);\n      display: flex;\n    `, [\n      c('&:hover', `\n        color: var(--n-clear-color-hover)!important;\n      `),\n      c('&:active', `\n        color: var(--n-clear-color-pressed)!important;\n      `)\n    ]),\n    cE('placeholder', `\n      display: flex;\n    `),\n    cE('clear, placeholder', `\n      position: absolute;\n      left: 50%;\n      top: 50%;\n      transform: translateX(-50%) translateY(-50%);\n    `, [\n      iconSwitchTransition({\n        originalTransform: 'translateX(-50%) translateY(-50%)',\n        left: '50%',\n        top: '50%'\n      })\n    ])\n  ])\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport { resolveSlot } from '../../../_utils'\nimport { NBaseIcon } from '../../icon'\nimport NIconSwitchTransition from '../../icon-switch-transition'\nimport { ClearIcon } from '../../icons'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'BaseClear',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    show: Boolean,\n    onClear: Function as PropType<(e: MouseEvent) => void>\n  },\n  setup(props) {\n    useStyle('-base-clear', style, toRef(props, 'clsPrefix'))\n    return {\n      handleMouseDown(e: MouseEvent) {\n        e.preventDefault()\n      }\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div class={`${clsPrefix}-base-clear`}>\n        <NIconSwitchTransition>\n          {{\n            default: () => {\n              return this.show ? (\n                <div\n                  key=\"dismiss\"\n                  class={`${clsPrefix}-base-clear__clear`}\n                  onClick={this.onClear}\n                  onMousedown={this.handleMouseDown}\n                  data-clear\n                >\n                  {resolveSlot(this.$slots.icon, () => [\n                    <NBaseIcon clsPrefix={clsPrefix}>\n                      {{\n                        default: () => <ClearIcon />\n                      }}\n                    </NBaseIcon>\n                  ])}\n                </div>\n              ) : (\n                <div key=\"icon\" class={`${clsPrefix}-base-clear__placeholder`}>\n                  {this.$slots.placeholder?.()}\n                </div>\n              )\n            }\n          }}\n        </NIconSwitchTransition>\n      </div>\n    )\n  }\n})\n","import { c, cB, cM, cNotM } from '../../../../_utils/cssr'\n\n// vars:\n// --n-close-border-radius\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-close-icon-color-disabled\nexport default cB('base-close', `\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  cursor: pointer;\n  background-color: transparent;\n  color: var(--n-close-icon-color);\n  border-radius: var(--n-close-border-radius);\n  height: var(--n-close-size);\n  width: var(--n-close-size);\n  font-size: var(--n-close-icon-size);\n  outline: none;\n  border: none;\n  position: relative;\n  padding: 0;\n`, [\n  cM('absolute', `\n    height: var(--n-close-icon-size);\n    width: var(--n-close-icon-size);\n  `),\n  c('&::before', `\n    content: \"\";\n    position: absolute;\n    width: var(--n-close-size);\n    height: var(--n-close-size);\n    left: 50%;\n    top: 50%;\n    transform: translateY(-50%) translateX(-50%);\n    transition: inherit;\n    border-radius: inherit;\n  `),\n  cNotM('disabled', [\n    c('&:hover', `\n      color: var(--n-close-icon-color-hover);\n    `),\n    c('&:hover::before', `\n      background-color: var(--n-close-color-hover);\n    `),\n    c('&:focus::before', `\n      background-color: var(--n-close-color-hover);\n    `),\n    c('&:active', `\n      color: var(--n-close-icon-color-pressed);\n    `),\n    c('&:active::before', `\n      background-color: var(--n-close-color-pressed);\n    `)\n  ]),\n  cM('disabled', `\n    cursor: not-allowed;\n    color: var(--n-close-icon-color-disabled);\n    background-color: transparent;\n  `),\n  cM('round', [\n    c('&::before', `\n      border-radius: 50%;\n    `)\n  ])\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport { NBaseIcon } from '../../icon'\nimport { CloseIcon } from '../../icons'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'BaseClose',\n  props: {\n    isButtonTag: {\n      type: Boolean,\n      default: true\n    },\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    disabled: {\n      type: Boolean,\n      default: undefined\n    },\n    focusable: {\n      type: Boolean,\n      default: true\n    },\n    round: Boolean,\n    onClick: Function as PropType<(e: MouseEvent) => void>,\n    absolute: Boolean\n  },\n  setup(props) {\n    useStyle('-base-close', style, toRef(props, 'clsPrefix'))\n    return () => {\n      const { clsPrefix, disabled, absolute, round, isButtonTag } = props\n      const Tag = isButtonTag ? 'button' : 'div'\n      return (\n        <Tag\n          type={isButtonTag ? 'button' : undefined}\n          tabindex={disabled || !props.focusable ? -1 : 0}\n          aria-disabled={disabled}\n          aria-label=\"close\"\n          role={isButtonTag ? undefined : 'button'}\n          disabled={disabled}\n          class={[\n            `${clsPrefix}-base-close`,\n            absolute && `${clsPrefix}-base-close--absolute`,\n            disabled && `${clsPrefix}-base-close--disabled`,\n            round && `${clsPrefix}-base-close--round`\n          ]}\n          onMousedown={(e) => {\n            if (!props.focusable) {\n              e.preventDefault()\n            }\n          }}\n          onClick={props.onClick}\n        >\n          <NBaseIcon clsPrefix={clsPrefix}>\n            {{\n              default: () => <CloseIcon />\n            }}\n          </NBaseIcon>\n        </Tag>\n      )\n    }\n  }\n})\n","import type { PropType, TransitionProps } from 'vue'\nimport { defineComponent, h, Transition, TransitionGroup } from 'vue'\n\nexport default defineComponent({\n  name: 'FadeInExpandTransition',\n  props: {\n    appear: Boolean,\n    group: Boolean,\n    mode: String as PropType<'in-out' | 'out-in' | 'default'>,\n    onLeave: Function,\n    onAfterLeave: Function,\n    onAfterEnter: Function,\n    width: Boolean,\n    // reverse mode is only used in tree\n    // it make it from expanded to collapsed after mounted\n    reverse: Boolean\n  },\n  setup(props, { slots }) {\n    function handleBeforeLeave(el: HTMLElement): void {\n      if (props.width) {\n        el.style.maxWidth = `${el.offsetWidth}px`\n      }\n      else {\n        el.style.maxHeight = `${el.offsetHeight}px`\n      }\n      void el.offsetWidth\n    }\n    function handleLeave(el: HTMLElement): void {\n      if (props.width) {\n        el.style.maxWidth = '0'\n      }\n      else {\n        el.style.maxHeight = '0'\n      }\n      void el.offsetWidth\n      const { onLeave } = props\n      if (onLeave)\n        onLeave()\n    }\n    function handleAfterLeave(el: HTMLElement): void {\n      if (props.width) {\n        el.style.maxWidth = ''\n      }\n      else {\n        el.style.maxHeight = ''\n      }\n      const { onAfterLeave } = props\n      if (onAfterLeave)\n        onAfterLeave()\n    }\n    function handleEnter(el: HTMLElement): void {\n      el.style.transition = 'none'\n      if (props.width) {\n        const memorizedWidth = el.offsetWidth\n        el.style.maxWidth = '0'\n        void el.offsetWidth\n        el.style.transition = ''\n        el.style.maxWidth = `${memorizedWidth}px`\n      }\n      else {\n        if (props.reverse) {\n          el.style.maxHeight = `${el.offsetHeight}px`\n          void el.offsetHeight\n          el.style.transition = ''\n          el.style.maxHeight = '0'\n        }\n        else {\n          const memorizedHeight = el.offsetHeight\n          el.style.maxHeight = '0'\n          void el.offsetWidth\n          el.style.transition = ''\n          el.style.maxHeight = `${memorizedHeight}px`\n        }\n      }\n      void el.offsetWidth\n    }\n    function handleAfterEnter(el: HTMLElement): void {\n      if (props.width) {\n        el.style.maxWidth = ''\n      }\n      else {\n        if (!props.reverse) {\n          el.style.maxHeight = ''\n        }\n      }\n      props.onAfterEnter?.()\n    }\n    return () => {\n      const { group, width, appear, mode } = props\n      const type = group ? TransitionGroup : Transition\n      const resolvedProps = {\n        name: width\n          ? 'fade-in-width-expand-transition'\n          : 'fade-in-height-expand-transition',\n        appear,\n        onEnter: handleEnter,\n        onAfterEnter: handleAfterEnter,\n        onBeforeLeave: handleBeforeLeave,\n        onLeave: handleLeave,\n        onAfterLeave: handleAfterLeave\n      }\n      if (!group) {\n        ;(resolvedProps as unknown as TransitionProps).mode = mode\n      }\n      return h(type as any, resolvedProps, slots)\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  props: {\n    onFocus: Function as PropType<(e: FocusEvent) => void>,\n    onBlur: Function as PropType<(e: FocusEvent) => void>\n  },\n  setup(props) {\n    return () => (\n      <div\n        style=\"width: 0; height: 0\"\n        tabindex={0}\n        onFocus={e => props.onFocus?.(e)}\n        onBlur={e => props.onBlur?.(e)}\n      />\n    )\n  }\n})\n","import FocusDetector from './src/FocusDetector'\n\nexport default FocusDetector\n","import { iconSwitchTransition } from '../../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE } from '../../../../_utils/cssr'\n\nexport default c([\n  c('@keyframes rotator', `\n    0% {\n      -webkit-transform: rotate(0deg);\n      transform: rotate(0deg);\n    }\n    100% {\n      -webkit-transform: rotate(360deg);\n      transform: rotate(360deg);\n    }`),\n  cB('base-loading', `\n    position: relative;\n    line-height: 0;\n    width: 1em;\n    height: 1em;\n  `, [\n    cE('transition-wrapper', `\n      position: absolute;\n      width: 100%;\n      height: 100%;\n    `, [\n      iconSwitchTransition()\n    ]),\n    cE('placeholder', `\n      position: absolute;\n      left: 50%;\n      top: 50%;\n      transform: translateX(-50%) translateY(-50%);\n    `, [\n      iconSwitchTransition({\n        left: '50%',\n        top: '50%',\n        originalTransform: 'translateX(-50%) translateY(-50%)'\n      })\n    ]),\n    cE('container', `\n      animation: rotator 3s linear infinite both;\n    `, [\n      cE('icon', `\n        height: 1em;\n        width: 1em;\n      `)\n    ])\n  ])\n])\n","import type { ExtractPublicPropTypes } from '../../../_utils'\nimport { defineComponent, h, toRef } from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport NIconSwitchTransition from '../../icon-switch-transition'\nimport style from './styles/index.cssr'\n\nconst duration = '1.6s'\n\nexport const exposedLoadingProps = {\n  strokeWidth: {\n    type: Number,\n    default: 28\n  },\n  stroke: {\n    type: String,\n    default: undefined\n  },\n  scale: {\n    type: Number,\n    default: 1\n  },\n  radius: {\n    type: Number,\n    default: 100\n  }\n}\n\nexport type SharedSpinProps = ExtractPublicPropTypes<typeof exposedLoadingProps>\n\nexport default defineComponent({\n  name: 'BaseLoading',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    show: {\n      type: Boolean,\n      default: true\n    },\n    ...exposedLoadingProps\n  },\n  setup(props) {\n    useStyle('-base-loading', style, toRef(props, 'clsPrefix'))\n  },\n  render() {\n    const { clsPrefix, radius, strokeWidth, stroke, scale } = this\n    const scaledRadius = radius / scale\n    return (\n      <div class={`${clsPrefix}-base-loading`} role=\"img\" aria-label=\"loading\">\n        <NIconSwitchTransition>\n          {{\n            default: () =>\n              this.show ? (\n                <div\n                  key=\"icon\"\n                  class={`${clsPrefix}-base-loading__transition-wrapper`}\n                >\n                  <div class={`${clsPrefix}-base-loading__container`}>\n                    <svg\n                      class={`${clsPrefix}-base-loading__icon`}\n                      viewBox={`0 0 ${2 * scaledRadius} ${2 * scaledRadius}`}\n                      xmlns=\"http://www.w3.org/2000/svg\"\n                      style={{ color: stroke }}\n                    >\n                      <g>\n                        <animateTransform\n                          attributeName=\"transform\"\n                          type=\"rotate\"\n                          values={`0 ${scaledRadius} ${scaledRadius};270 ${scaledRadius} ${scaledRadius}`}\n                          begin=\"0s\"\n                          dur={duration}\n                          fill=\"freeze\"\n                          repeatCount=\"indefinite\"\n                        />\n                        <circle\n                          class={`${clsPrefix}-base-loading__icon`}\n                          fill=\"none\"\n                          stroke=\"currentColor\"\n                          stroke-width={strokeWidth}\n                          stroke-linecap=\"round\"\n                          cx={scaledRadius}\n                          cy={scaledRadius}\n                          r={radius - strokeWidth / 2}\n                          stroke-dasharray={5.67 * radius}\n                          stroke-dashoffset={18.48 * radius}\n                        >\n                          <animateTransform\n                            attributeName=\"transform\"\n                            type=\"rotate\"\n                            values={`0 ${scaledRadius} ${scaledRadius};135 ${scaledRadius} ${scaledRadius};450 ${scaledRadius} ${scaledRadius}`}\n                            begin=\"0s\"\n                            dur={duration}\n                            fill=\"freeze\"\n                            repeatCount=\"indefinite\"\n                          />\n                          <animate\n                            attributeName=\"stroke-dashoffset\"\n                            values={`${5.67 * radius};${1.42 * radius};${\n                              5.67 * radius\n                            }`}\n                            begin=\"0s\"\n                            dur={duration}\n                            fill=\"freeze\"\n                            repeatCount=\"indefinite\"\n                          />\n                        </circle>\n                      </g>\n                    </svg>\n                  </div>\n                </div>\n              ) : (\n                <div\n                  key=\"placeholder\"\n                  class={`${clsPrefix}-base-loading__placeholder`}\n                >\n                  {this.$slots.default?.()}\n                </div>\n              )\n          }}\n        </NIconSwitchTransition>\n      </div>\n    )\n  }\n})\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseInOut } = commonVariables\n\ninterface FadeInTransitionOptions {\n  name?: string\n  enterDuration?: string\n  leaveDuration?: string\n  enterCubicBezier?: string\n  leaveCubicBezier?: string\n}\n\nexport function fadeInTransition({\n  name = 'fade-in',\n  enterDuration = '0.2s',\n  leaveDuration = '0.2s',\n  enterCubicBezier = cubicBezierEaseInOut,\n  leaveCubicBezier = cubicBezierEaseInOut\n}: FadeInTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-enter-active`, {\n      transition: `all ${enterDuration} ${enterCubicBezier}!important`\n    }),\n    c(`&.${name}-transition-leave-active`, {\n      transition: `all ${leaveDuration} ${leaveCubicBezier}!important`\n    }),\n    c(`&.${name}-transition-enter-from, &.${name}-transition-leave-to`, {\n      opacity: 0\n    }),\n    c(`&.${name}-transition-leave-from, &.${name}-transition-enter-to`, {\n      opacity: 1\n    })\n  ]\n}\n","import { fadeInTransition } from '../../../../_styles/transitions/fade-in.cssr'\nimport { cB } from '../../../../_utils/cssr'\n\nexport default cB('base-menu-mask', `\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  text-align: center;\n  padding: 14px;\n  overflow: hidden;\n`, [\n  fadeInTransition()\n])\n","import type { MenuMaskRef } from './interface'\nimport {\n  defineComponent,\n  h,\n  onBeforeUnmount,\n  ref,\n  toRef,\n  Transition\n} from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'BaseMenuMask',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    useStyle('-base-menu-mask', style, toRef(props, 'clsPrefix'))\n    const messageRef = ref<string | null>(null)\n    let timerId: number | null = null\n    const uncontrolledShowRef = ref(false)\n    onBeforeUnmount(() => {\n      if (timerId !== null) {\n        window.clearTimeout(timerId)\n      }\n    })\n    const exposedRef: MenuMaskRef = {\n      showOnce(message: string, duration = 1500) {\n        if (timerId)\n          window.clearTimeout(timerId)\n        uncontrolledShowRef.value = true\n        messageRef.value = message\n        timerId = window.setTimeout(() => {\n          uncontrolledShowRef.value = false\n          messageRef.value = null\n        }, duration)\n      }\n    }\n    return {\n      message: messageRef,\n      show: uncontrolledShowRef,\n      ...exposedRef\n    }\n  },\n  render() {\n    return (\n      <Transition name=\"fade-in-transition\">\n        {{\n          default: () =>\n            this.show ? (\n              <div class={`${this.clsPrefix}-base-menu-mask`}>\n                {this.message}\n              </div>\n            ) : null\n        }}\n      </Transition>\n    )\n  }\n})\n","import type { ThemeCommonVars } from './light'\nimport { composite, rgba, scaleColor } from 'seemly'\nimport commonVariables from './_common'\n\nconst base = {\n  neutralBase: '#000',\n  neutralInvertBase: '#fff',\n  neutralTextBase: '#fff',\n  neutralPopover: 'rgb(72, 72, 78)',\n  neutralCard: 'rgb(24, 24, 28)',\n  neutralModal: 'rgb(44, 44, 50)',\n  neutralBody: 'rgb(16, 16, 20)',\n\n  alpha1: '0.9',\n  alpha2: '0.82',\n  alpha3: '0.52',\n  alpha4: '0.38',\n  alpha5: '0.28',\n\n  alphaClose: '0.52',\n\n  alphaDisabled: '0.38',\n  alphaDisabledInput: '0.06',\n  alphaPending: '0.09',\n  alphaTablePending: '0.06',\n  alphaTableStriped: '0.05',\n  alphaPressed: '0.05',\n\n  alphaAvatar: '0.18',\n  alphaRail: '0.2',\n  alphaProgressRail: '0.12',\n  alphaBorder: '0.24',\n  alphaDivider: '0.09',\n  alphaInput: '0.1',\n  alphaAction: '0.06',\n  alphaTab: '0.04',\n  alphaScrollbar: '0.2',\n  alphaScrollbarHover: '0.3',\n  alphaCode: '0.12',\n  alphaTag: '0.2',\n\n  // primary\n  primaryHover: '#7fe7c4',\n  primaryDefault: '#63e2b7',\n  primaryActive: '#5acea7',\n  primarySuppl: 'rgb(42, 148, 125)',\n\n  // info\n  infoHover: '#8acbec',\n  infoDefault: '#70c0e8',\n  infoActive: '#66afd3',\n  infoSuppl: 'rgb(56, 137, 197)',\n\n  // error\n  errorHover: '#e98b8b',\n  errorDefault: '#e88080',\n  errorActive: '#e57272',\n  errorSuppl: 'rgb(208, 58, 82)',\n\n  // warning\n  warningHover: '#f5d599',\n  warningDefault: '#f2c97d',\n  warningActive: '#e6c260',\n  warningSuppl: 'rgb(240, 138, 0)',\n\n  // success\n  successHover: '#7fe7c4',\n  successDefault: '#63e2b7',\n  successActive: '#5acea7',\n  successSuppl: 'rgb(42, 148, 125)'\n}\n\nconst baseBackgroundRgb = rgba(base.neutralBase)\nconst baseInvertBackgroundRgb = rgba(base.neutralInvertBase)\nconst overlayPrefix = `rgba(${baseInvertBackgroundRgb.slice(0, 3).join(', ')}, `\nfunction overlay(alpha: number | string): string {\n  return `${overlayPrefix + String(alpha)})`\n}\nfunction neutral(alpha: number | string): string {\n  const overlayRgba = Array.from(baseInvertBackgroundRgb)\n  overlayRgba[3] = Number(alpha)\n  return composite(\n    baseBackgroundRgb,\n    overlayRgba as [number, number, number, number]\n  )\n}\nconst derived: ThemeCommonVars = {\n  name: 'common' as const,\n\n  ...commonVariables,\n\n  baseColor: base.neutralBase,\n\n  // primary color\n  primaryColor: base.primaryDefault,\n  primaryColorHover: base.primaryHover,\n  primaryColorPressed: base.primaryActive,\n  primaryColorSuppl: base.primarySuppl,\n  // info color\n  infoColor: base.infoDefault,\n  infoColorHover: base.infoHover,\n  infoColorPressed: base.infoActive,\n  infoColorSuppl: base.infoSuppl,\n  // success color\n  successColor: base.successDefault,\n  successColorHover: base.successHover,\n  successColorPressed: base.successActive,\n  successColorSuppl: base.successSuppl,\n  // warning color\n  warningColor: base.warningDefault,\n  warningColorHover: base.warningHover,\n  warningColorPressed: base.warningActive,\n  warningColorSuppl: base.warningSuppl,\n  // error color\n  errorColor: base.errorDefault,\n  errorColorHover: base.errorHover,\n  errorColorPressed: base.errorActive,\n  errorColorSuppl: base.errorSuppl,\n  // text color\n  textColorBase: base.neutralTextBase,\n  textColor1: overlay(base.alpha1),\n  textColor2: overlay(base.alpha2),\n  textColor3: overlay(base.alpha3),\n  // textColor4: overlay(base.alpha4), // disabled, placeholder, icon\n  // textColor5: overlay(base.alpha5),\n\n  textColorDisabled: overlay(base.alpha4),\n  placeholderColor: overlay(base.alpha4),\n  placeholderColorDisabled: overlay(base.alpha5),\n  iconColor: overlay(base.alpha4),\n  iconColorDisabled: overlay(base.alpha5),\n  iconColorHover: overlay(Number(base.alpha4) * 1.25),\n  iconColorPressed: overlay(Number(base.alpha4) * 0.8),\n\n  opacity1: base.alpha1,\n  opacity2: base.alpha2,\n  opacity3: base.alpha3,\n  opacity4: base.alpha4,\n  opacity5: base.alpha5,\n\n  dividerColor: overlay(base.alphaDivider),\n  borderColor: overlay(base.alphaBorder),\n\n  // close\n  closeIconColorHover: overlay(Number(base.alphaClose)),\n  closeIconColor: overlay(Number(base.alphaClose)),\n  closeIconColorPressed: overlay(Number(base.alphaClose)),\n  closeColorHover: 'rgba(255, 255, 255, .12)',\n  closeColorPressed: 'rgba(255, 255, 255, .08)',\n\n  // clear\n  clearColor: overlay(base.alpha4),\n  clearColorHover: scaleColor(overlay(base.alpha4), { alpha: 1.25 }),\n  clearColorPressed: scaleColor(overlay(base.alpha4), { alpha: 0.8 }),\n\n  scrollbarColor: overlay(base.alphaScrollbar),\n  scrollbarColorHover: overlay(base.alphaScrollbarHover),\n  scrollbarWidth: '5px',\n  scrollbarHeight: '5px',\n  scrollbarBorderRadius: '5px',\n\n  progressRailColor: overlay(base.alphaProgressRail),\n  railColor: overlay(base.alphaRail),\n\n  popoverColor: base.neutralPopover,\n  tableColor: base.neutralCard,\n  cardColor: base.neutralCard,\n  modalColor: base.neutralModal,\n  bodyColor: base.neutralBody,\n  tagColor: neutral(base.alphaTag),\n  avatarColor: overlay(base.alphaAvatar),\n  invertedColor: base.neutralBase,\n\n  inputColor: overlay(base.alphaInput),\n  codeColor: overlay(base.alphaCode),\n  tabColor: overlay(base.alphaTab),\n  actionColor: overlay(base.alphaAction),\n  tableHeaderColor: overlay(base.alphaAction),\n\n  hoverColor: overlay(base.alphaPending),\n  tableColorHover: overlay(base.alphaTablePending),\n  tableColorStriped: overlay(base.alphaTableStriped),\n  pressedColor: overlay(base.alphaPressed),\n\n  opacityDisabled: base.alphaDisabled,\n  inputColorDisabled: overlay(base.alphaDisabledInput),\n\n  buttonColor2: 'rgba(255, 255, 255, .08)',\n  buttonColor2Hover: 'rgba(255, 255, 255, .12)',\n  buttonColor2Pressed: 'rgba(255, 255, 255, .08)',\n\n  boxShadow1:\n    '0 1px 2px -2px rgba(0, 0, 0, .24), 0 3px 6px 0 rgba(0, 0, 0, .18), 0 5px 12px 4px rgba(0, 0, 0, .12)',\n  boxShadow2:\n    '0 3px 6px -4px rgba(0, 0, 0, .24), 0 6px 12px 0 rgba(0, 0, 0, .16), 0 9px 18px 8px rgba(0, 0, 0, .10)',\n  boxShadow3:\n    '0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)'\n}\n\nexport default derived\n","import { composite, rgba, scaleColor } from 'seemly'\nimport commonVariables from './_common'\n\nconst base = {\n  neutralBase: '#FFF',\n  neutralInvertBase: '#000',\n  neutralTextBase: '#000',\n  neutralPopover: '#fff',\n  neutralCard: '#fff',\n  neutralModal: '#fff',\n  neutralBody: '#fff',\n\n  alpha1: '0.82',\n  alpha2: '0.72',\n  alpha3: '0.38',\n  alpha4: '0.24', // disabled text, placeholder, icon\n  alpha5: '0.18', // disabled placeholder\n\n  alphaClose: '0.6',\n\n  alphaDisabled: '0.5',\n  alphaDisabledInput: '0.02',\n  alphaPending: '0.05',\n  alphaTablePending: '0.02',\n  alphaPressed: '0.07',\n\n  alphaAvatar: '0.2',\n  alphaRail: '0.14',\n  alphaProgressRail: '.08',\n  alphaBorder: '0.12',\n  alphaDivider: '0.06',\n  alphaInput: '0',\n  alphaAction: '0.02',\n  alphaTab: '0.04',\n  alphaScrollbar: '0.25',\n  alphaScrollbarHover: '0.4',\n  alphaCode: '0.05',\n  alphaTag: '0.02',\n\n  // primary\n  primaryHover: '#36ad6a',\n  primaryDefault: '#18a058',\n  primaryActive: '#0c7a43',\n  primarySuppl: '#36ad6a',\n\n  // info\n  infoHover: '#4098fc',\n  infoDefault: '#2080f0',\n  infoActive: '#1060c9',\n  infoSuppl: '#4098fc',\n\n  // error\n  errorHover: '#de576d',\n  errorDefault: '#d03050',\n  errorActive: '#ab1f3f',\n  errorSuppl: '#de576d',\n\n  // warning\n  warningHover: '#fcb040',\n  warningDefault: '#f0a020',\n  warningActive: '#c97c10',\n  warningSuppl: '#fcb040',\n\n  // success\n  successHover: '#36ad6a',\n  successDefault: '#18a058',\n  successActive: '#0c7a43',\n  successSuppl: '#36ad6a'\n}\n\nconst baseBackgroundRgb = rgba(base.neutralBase)\nconst baseInvertBackgroundRgb = rgba(base.neutralInvertBase)\nconst overlayPrefix = `rgba(${baseInvertBackgroundRgb.slice(0, 3).join(', ')}, `\nfunction overlay(alpha: string | number) {\n  return `${overlayPrefix + String(alpha)})`\n}\nfunction neutral(alpha: string | number) {\n  const overlayRgba = Array.from(baseInvertBackgroundRgb)\n  overlayRgba[3] = Number(alpha)\n  return composite(\n    baseBackgroundRgb,\n    overlayRgba as [number, number, number, number]\n  )\n}\nconst derived = {\n  name: 'common' as const,\n\n  ...commonVariables,\n\n  baseColor: base.neutralBase,\n\n  // primary color\n  primaryColor: base.primaryDefault,\n  primaryColorHover: base.primaryHover,\n  primaryColorPressed: base.primaryActive,\n  primaryColorSuppl: base.primarySuppl,\n  // info color\n  infoColor: base.infoDefault,\n  infoColorHover: base.infoHover,\n  infoColorPressed: base.infoActive,\n  infoColorSuppl: base.infoSuppl,\n  // success color\n  successColor: base.successDefault,\n  successColorHover: base.successHover,\n  successColorPressed: base.successActive,\n  successColorSuppl: base.successSuppl,\n  // warning color\n  warningColor: base.warningDefault,\n  warningColorHover: base.warningHover,\n  warningColorPressed: base.warningActive,\n  warningColorSuppl: base.warningSuppl,\n  // error color\n  errorColor: base.errorDefault,\n  errorColorHover: base.errorHover,\n  errorColorPressed: base.errorActive,\n  errorColorSuppl: base.errorSuppl,\n  // text color\n  textColorBase: base.neutralTextBase,\n  textColor1: 'rgb(31, 34, 37)',\n  textColor2: 'rgb(51, 54, 57)',\n  textColor3: 'rgb(118, 124, 130)',\n  // textColor4: neutral(base.alpha4), // disabled, placeholder, icon\n  // textColor5: neutral(base.alpha5),\n\n  textColorDisabled: neutral(base.alpha4),\n  placeholderColor: neutral(base.alpha4),\n  placeholderColorDisabled: neutral(base.alpha5),\n  iconColor: neutral(base.alpha4),\n  iconColorHover: scaleColor(neutral(base.alpha4), { lightness: 0.75 }),\n  iconColorPressed: scaleColor(neutral(base.alpha4), { lightness: 0.9 }),\n  iconColorDisabled: neutral(base.alpha5),\n\n  opacity1: base.alpha1,\n  opacity2: base.alpha2,\n  opacity3: base.alpha3,\n  opacity4: base.alpha4,\n  opacity5: base.alpha5,\n\n  dividerColor: 'rgb(239, 239, 245)',\n  borderColor: 'rgb(224, 224, 230)',\n\n  // close\n  closeIconColor: neutral(Number(base.alphaClose)),\n  closeIconColorHover: neutral(Number(base.alphaClose)),\n  closeIconColorPressed: neutral(Number(base.alphaClose)),\n  closeColorHover: 'rgba(0, 0, 0, .09)',\n  closeColorPressed: 'rgba(0, 0, 0, .13)',\n\n  // clear\n  clearColor: neutral(base.alpha4),\n  clearColorHover: scaleColor(neutral(base.alpha4), { lightness: 0.75 }),\n  clearColorPressed: scaleColor(neutral(base.alpha4), { lightness: 0.9 }),\n\n  scrollbarColor: overlay(base.alphaScrollbar),\n  scrollbarColorHover: overlay(base.alphaScrollbarHover),\n  scrollbarWidth: '5px',\n  scrollbarHeight: '5px',\n  scrollbarBorderRadius: '5px',\n\n  progressRailColor: neutral(base.alphaProgressRail),\n  railColor: 'rgb(219, 219, 223)',\n\n  popoverColor: base.neutralPopover,\n  tableColor: base.neutralCard,\n  cardColor: base.neutralCard,\n  modalColor: base.neutralModal,\n  bodyColor: base.neutralBody,\n  tagColor: '#eee',\n  avatarColor: neutral(base.alphaAvatar),\n  invertedColor: 'rgb(0, 20, 40)',\n\n  inputColor: neutral(base.alphaInput),\n  codeColor: 'rgb(244, 244, 248)',\n  tabColor: 'rgb(247, 247, 250)',\n  actionColor: 'rgb(250, 250, 252)',\n  tableHeaderColor: 'rgb(250, 250, 252)',\n\n  hoverColor: 'rgb(243, 243, 245)',\n  // use color with alpha since it can be nested with header filter & sorter effect\n  tableColorHover: 'rgba(0, 0, 100, 0.03)',\n  tableColorStriped: 'rgba(0, 0, 100, 0.02)',\n  pressedColor: 'rgb(237, 237, 239)',\n\n  opacityDisabled: base.alphaDisabled,\n  inputColorDisabled: 'rgb(250, 250, 252)',\n\n  // secondary button color\n  // can also be used in tertiary button & quaternary button\n  buttonColor2: 'rgba(46, 51, 56, .05)',\n  buttonColor2Hover: 'rgba(46, 51, 56, .09)',\n  buttonColor2Pressed: 'rgba(46, 51, 56, .13)',\n\n  boxShadow1:\n    '0 1px 2px -2px rgba(0, 0, 0, .08), 0 3px 6px 0 rgba(0, 0, 0, .06), 0 5px 12px 4px rgba(0, 0, 0, .04)',\n  boxShadow2:\n    '0 3px 6px -4px rgba(0, 0, 0, .12), 0 6px 16px 0 rgba(0, 0, 0, .08), 0 9px 28px 8px rgba(0, 0, 0, .05)',\n  boxShadow3:\n    '0 6px 16px -9px rgba(0, 0, 0, .08), 0 9px 28px 0 rgba(0, 0, 0, .05), 0 12px 48px 16px rgba(0, 0, 0, .03)'\n}\n\nexport default derived\nexport type ThemeCommonVars = typeof derived\n","export const commonVars = {\n  railInsetHorizontalBottom: 'auto 2px 4px 2px',\n  railInsetHorizontalTop: '4px 2px auto 2px',\n  railInsetVerticalRight: '2px 4px 2px auto',\n  railInsetVerticalLeft: '2px auto 2px 4px',\n  railColor: 'transparent'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../../_mixins'\nimport type { ThemeCommonVars } from '../../../_styles/common'\nimport { commonLight } from '../../../_styles/common'\nimport { commonVars } from './common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    scrollbarColor,\n    scrollbarColorHover,\n    scrollbarHeight,\n    scrollbarWidth,\n    scrollbarBorderRadius\n  } = vars\n  return {\n    ...commonVars,\n    height: scrollbarHeight,\n    width: scrollbarWidth,\n    borderRadius: scrollbarBorderRadius,\n    color: scrollbarColor,\n    colorHover: scrollbarColorHover\n  }\n}\n\nexport interface ScrollbarThemeVars extends ReturnType<typeof self> {}\n\nconst scrollbarLight: ScrollbarTheme = {\n  name: 'Scrollbar',\n  common: commonLight,\n  self\n}\n\nexport interface ScrollbarTheme extends Theme<\n  'Scrollbar',\n  ScrollbarThemeVars\n> {}\n\nexport interface ScrollbarThemeOverrides extends ExtractThemeOverrides<ScrollbarTheme> {}\n\nexport default scrollbarLight\n","import type { ScrollbarTheme } from './light'\nimport { commonDark } from '../../../_styles/common'\nimport { self } from './light'\n\nconst scrollbarDark: ScrollbarTheme = {\n  name: 'Scrollbar',\n  common: commonDark,\n  self\n}\n\nexport default scrollbarDark\n","import { c, cB, cE, cM } from '../../../../_utils/cssr'\n\nexport default cB('scrollbar', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    c('>', [\n      cB('scrollbar-rail', [\n        cM('horizontal', [\n          c('>', [\n            cE('scrollbar', `\n              left: 0;\n              right: unset;\n            `)\n          ])\n        ])\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const scrollbarRtl: RtlItem = {\n  name: 'Scrollbar',\n  style: rtlStyle\n}\n\nexport default scrollbarRtl\n","import { fadeInTransition } from '../../../../_styles/transitions/fade-in.cssr'\nimport { c, cB, cE, cM } from '../../../../_utils/cssr'\n\n// vars:\n// --n-scrollbar-bezier\n// --n-scrollbar-color\n// --n-scrollbar-color-hover\n// --n-scrollbar-width\n// --n-scrollbar-height\n// --n-scrollbar-border-radius\n// --n-scrollbar-rail-inset-horizontal\n// --n-scrollbar-rail-inset-vertical\n// --n-scrollbar-rail-color\nexport default cB('scrollbar', `\n  overflow: hidden;\n  position: relative;\n  z-index: auto;\n  height: 100%;\n  width: 100%;\n`, [\n  c('>', [\n    cB('scrollbar-container', `\n      width: 100%;\n      overflow: scroll;\n      height: 100%;\n      min-height: inherit;\n      max-height: inherit;\n      scrollbar-width: none;\n    `, [\n      c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', `\n        width: 0;\n        height: 0;\n        display: none;\n      `),\n      c('>', [\n        // We can't set overflow hidden since it affects positioning.\n        cB('scrollbar-content', `\n          box-sizing: border-box;\n          min-width: 100%;\n        `)\n      ])\n    ])\n  ]),\n  c('>, +', [\n    cB('scrollbar-rail', `\n      position: absolute;\n      pointer-events: none;\n      user-select: none;\n      background: var(--n-scrollbar-rail-color);\n      -webkit-user-select: none;\n    `, [\n      cM('horizontal', `\n        height: var(--n-scrollbar-height);\n      `, [\n        c('>', [\n          cE('scrollbar', `\n            height: var(--n-scrollbar-height);\n            border-radius: var(--n-scrollbar-border-radius);\n            right: 0;\n          `)\n        ])\n      ]),\n      cM('horizontal--top', `\n        top: var(--n-scrollbar-rail-top-horizontal-top);  \n        right: var(--n-scrollbar-rail-right-horizontal-top);  \n        bottom: var(--n-scrollbar-rail-bottom-horizontal-top);  \n        left: var(--n-scrollbar-rail-left-horizontal-top);  \n      `),\n      cM('horizontal--bottom', `\n        top: var(--n-scrollbar-rail-top-horizontal-bottom);  \n        right: var(--n-scrollbar-rail-right-horizontal-bottom);  \n        bottom: var(--n-scrollbar-rail-bottom-horizontal-bottom);  \n        left: var(--n-scrollbar-rail-left-horizontal-bottom);  \n      `),\n      cM('vertical', `\n        width: var(--n-scrollbar-width);\n      `, [\n        c('>', [\n          cE('scrollbar', `\n            width: var(--n-scrollbar-width);\n            border-radius: var(--n-scrollbar-border-radius);\n            bottom: 0;\n          `)\n        ])\n      ]),\n      cM('vertical--left', `\n        top: var(--n-scrollbar-rail-top-vertical-left);  \n        right: var(--n-scrollbar-rail-right-vertical-left);  \n        bottom: var(--n-scrollbar-rail-bottom-vertical-left);  \n        left: var(--n-scrollbar-rail-left-vertical-left);  \n      `),\n      cM('vertical--right', `\n        top: var(--n-scrollbar-rail-top-vertical-right);  \n        right: var(--n-scrollbar-rail-right-vertical-right);  \n        bottom: var(--n-scrollbar-rail-bottom-vertical-right);  \n        left: var(--n-scrollbar-rail-left-vertical-right);  \n      `),\n      cM('disabled', [\n        c('>', [\n          cE('scrollbar', 'pointer-events: none;')\n        ])\n      ]),\n      c('>', [\n        cE('scrollbar', `\n          z-index: 1;\n          position: absolute;\n          cursor: pointer;\n          pointer-events: all;\n          background-color: var(--n-scrollbar-color);\n          transition: background-color .2s var(--n-scrollbar-bezier);\n        `, [\n          fadeInTransition(),\n          c('&:hover', 'background-color: var(--n-scrollbar-color-hover);')\n        ])\n      ])\n    ])\n  ])\n])\n","import type { CSSProperties, HTMLAttributes, PropType, Ref, VNode } from 'vue'\nimport type { ThemeProps } from '../../../_mixins'\nimport type {\n  ExtractInternalPropTypes,\n  ExtractPublicPropTypes\n} from '../../../_utils'\nimport type { ScrollbarTheme, ScrollbarThemeOverrides } from '../styles'\nimport { off, on } from 'evtd'\nimport { depx, getPadding, getPreciseEventTarget, pxfy } from 'seemly'\nimport { useIsIos } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  mergeProps,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  Transition,\n  watchEffect\n} from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../../_mixins'\nimport { rtlInset, useReactivated, Wrapper } from '../../../_utils'\nimport { scrollbarLight } from '../styles'\nimport style from './styles/index.cssr'\n\ninterface MergedScrollOptions {\n  left?: number\n  top?: number\n  el?: HTMLElement\n  position?: 'top' | 'bottom'\n  behavior?: ScrollBehavior\n  debounce?: boolean\n  index?: number\n  elSize?: number\n}\n\nexport interface ScrollTo {\n  (x: number, y: number): void\n  (options: {\n    left?: number\n    top?: number\n    behavior?: ScrollBehavior\n    debounce?: boolean\n  }): void\n  (options: {\n    el: HTMLElement\n    behavior?: ScrollBehavior\n    debounce?: boolean\n  }): void\n  (options: {\n    index: number\n    elSize: number\n    behavior?: ScrollBehavior\n    debounce?: boolean\n  }): void\n  (options: {\n    position: 'top' | 'bottom'\n    behavior?: ScrollBehavior\n    debounce?: boolean\n  }): void\n}\n\nexport interface ScrollBy {\n  (x: number, y: number): void\n  (options: { left?: number, top?: number, behavior?: ScrollBehavior }): void\n}\n\nexport interface ScrollbarInstMethods {\n  syncUnifiedContainer: () => void\n  scrollTo: ScrollTo\n  scrollBy: ScrollBy\n  sync: () => void\n  handleMouseEnterWrapper: () => void\n  handleMouseLeaveWrapper: () => void\n}\n\nexport interface ScrollbarInst extends ScrollbarInstMethods {\n  $el: HTMLElement\n  containerRef: HTMLElement | null\n  contentRef: HTMLElement | null\n  containerScrollTop: number\n}\n\nconst scrollbarProps = {\n  ...(useTheme.props as ThemeProps<ScrollbarTheme, ScrollbarThemeOverrides>),\n  duration: {\n    type: Number,\n    default: 0\n  },\n  scrollable: {\n    type: Boolean,\n    default: true\n  },\n  xScrollable: Boolean,\n  trigger: {\n    type: String as PropType<'none' | 'hover'>,\n    default: 'hover'\n  },\n  useUnifiedContainer: Boolean,\n  triggerDisplayManually: Boolean,\n  // If container is set, resize observer won't not attached\n  container: Function as PropType<() => HTMLElement | null | undefined>,\n  content: Function as PropType<() => HTMLElement | null | undefined>,\n  containerClass: String,\n  containerStyle: [String, Object] as PropType<string | CSSProperties>,\n  contentClass: [String, Array] as PropType<string | Array<string | undefined>>,\n  contentStyle: [String, Object] as PropType<string | CSSProperties>,\n  horizontalRailStyle: [String, Object] as PropType<string | CSSProperties>,\n  verticalRailStyle: [String, Object] as PropType<string | CSSProperties>,\n  onScroll: Function as PropType<(e: Event) => void>,\n  onWheel: Function as PropType<(e: WheelEvent) => void>,\n  onResize: Function as PropType<(e: ResizeObserverEntry) => void>,\n  internalOnUpdateScrollLeft: Function as PropType<\n    (scrollLeft: number) => void\n  >,\n  internalHoistYRail: Boolean,\n  internalExposeWidthCssVar: Boolean,\n  yPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'right'\n  },\n  xPlacement: {\n    type: String as PropType<'top' | 'bottom'>,\n    default: 'bottom'\n  }\n} as const\n\nexport type ScrollbarProps = ExtractPublicPropTypes<typeof scrollbarProps>\nexport type ScrollbarInternalProps = ExtractInternalPropTypes<\n  typeof scrollbarProps\n>\n\nconst Scrollbar = defineComponent({\n  name: 'Scrollbar',\n  props: scrollbarProps,\n  inheritAttrs: false,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const rtlEnabledRef = useRtl('Scrollbar', mergedRtlRef, mergedClsPrefixRef)\n\n    // dom ref\n    const wrapperRef = ref<HTMLElement | null>(null)\n    const containerRef = ref<HTMLElement | null>(null)\n    const contentRef = ref<HTMLElement | null>(null)\n    const yRailRef = ref<HTMLElement | null>(null)\n    const xRailRef = ref<HTMLElement | null>(null)\n\n    // data ref\n    const contentHeightRef = ref<number | null>(null)\n    const contentWidthRef = ref<number | null>(null)\n    const containerHeightRef = ref<number | null>(null)\n    const containerWidthRef = ref<number | null>(null)\n    const yRailSizeRef = ref<number | null>(null)\n    const xRailSizeRef = ref<number | null>(null)\n    const containerScrollTopRef = ref(0)\n    const containerScrollLeftRef = ref(0)\n    const isShowXBarRef = ref(false)\n    const isShowYBarRef = ref(false)\n\n    let yBarPressed = false\n    let xBarPressed = false\n    let xBarVanishTimerId: number | undefined\n    let yBarVanishTimerId: number | undefined\n    let memoYTop: number = 0\n    let memoXLeft: number = 0\n    let memoMouseX: number = 0\n    let memoMouseY: number = 0\n    const isIos = useIsIos()\n\n    const themeRef = useTheme(\n      'Scrollbar',\n      '-scrollbar',\n      style,\n      scrollbarLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const yBarSizeRef = computed(() => {\n      const { value: containerHeight } = containerHeightRef\n      const { value: contentHeight } = contentHeightRef\n      const { value: yRailSize } = yRailSizeRef\n      if (\n        containerHeight === null\n        || contentHeight === null\n        || yRailSize === null\n      ) {\n        return 0\n      }\n      else {\n        return Math.min(\n          containerHeight,\n          (yRailSize * containerHeight) / contentHeight\n          + depx(themeRef.value.self.width) * 1.5\n        )\n      }\n    })\n    const yBarSizePxRef = computed(() => {\n      return `${yBarSizeRef.value}px`\n    })\n    const xBarSizeRef = computed(() => {\n      const { value: containerWidth } = containerWidthRef\n      const { value: contentWidth } = contentWidthRef\n      const { value: xRailSize } = xRailSizeRef\n      if (\n        containerWidth === null\n        || contentWidth === null\n        || xRailSize === null\n      ) {\n        return 0\n      }\n      else {\n        return (\n          (xRailSize * containerWidth) / contentWidth\n          + depx(themeRef.value.self.height) * 1.5\n        )\n      }\n    })\n    const xBarSizePxRef = computed(() => {\n      return `${xBarSizeRef.value}px`\n    })\n    const yBarTopRef = computed(() => {\n      const { value: containerHeight } = containerHeightRef\n      const { value: containerScrollTop } = containerScrollTopRef\n      const { value: contentHeight } = contentHeightRef\n      const { value: yRailSize } = yRailSizeRef\n      if (\n        containerHeight === null\n        || contentHeight === null\n        || yRailSize === null\n      ) {\n        return 0\n      }\n      else {\n        const heightDiff = contentHeight - containerHeight\n        if (!heightDiff)\n          return 0\n        return (\n          (containerScrollTop / heightDiff) * (yRailSize - yBarSizeRef.value)\n        )\n      }\n    })\n    const yBarTopPxRef = computed(() => {\n      return `${yBarTopRef.value}px`\n    })\n    const xBarLeftRef = computed(() => {\n      const { value: containerWidth } = containerWidthRef\n      const { value: containerScrollLeft } = containerScrollLeftRef\n      const { value: contentWidth } = contentWidthRef\n      const { value: xRailSize } = xRailSizeRef\n      if (\n        containerWidth === null\n        || contentWidth === null\n        || xRailSize === null\n      ) {\n        return 0\n      }\n      else {\n        const widthDiff = contentWidth - containerWidth\n        if (!widthDiff)\n          return 0\n        return (\n          (containerScrollLeft / widthDiff) * (xRailSize - xBarSizeRef.value)\n        )\n      }\n    })\n    const xBarLeftPxRef = computed(() => {\n      return `${xBarLeftRef.value}px`\n    })\n    const needYBarRef = computed(() => {\n      const { value: containerHeight } = containerHeightRef\n      const { value: contentHeight } = contentHeightRef\n      return (\n        containerHeight !== null\n        && contentHeight !== null\n        && contentHeight > containerHeight\n      )\n    })\n    const needXBarRef = computed(() => {\n      const { value: containerWidth } = containerWidthRef\n      const { value: contentWidth } = contentWidthRef\n      return (\n        containerWidth !== null\n        && contentWidth !== null\n        && contentWidth > containerWidth\n      )\n    })\n    const mergedShowXBarRef = computed(() => {\n      const { trigger } = props\n      return trigger === 'none' || isShowXBarRef.value\n    })\n    const mergedShowYBarRef = computed(() => {\n      const { trigger } = props\n      return trigger === 'none' || isShowYBarRef.value\n    })\n    const mergedContainerRef = computed(() => {\n      const { container } = props\n      if (container)\n        return container()\n      return containerRef.value\n    })\n    const mergedContentRef = computed(() => {\n      const { content } = props\n      if (content)\n        return content()\n      return contentRef.value\n    })\n\n    const scrollTo: ScrollTo = (\n      options: MergedScrollOptions | number,\n      y?: number\n    ): void => {\n      if (!props.scrollable)\n        return\n      if (typeof options === 'number') {\n        scrollToPosition(options, y ?? 0, 0, false, 'auto')\n        return\n      }\n      const {\n        left,\n        top,\n        index,\n        elSize,\n        position,\n        behavior,\n        el,\n        debounce = true\n      } = options\n      if (left !== undefined || top !== undefined) {\n        scrollToPosition(left ?? 0, top ?? 0, 0, false, behavior)\n      }\n      if (el !== undefined) {\n        scrollToPosition(0, el.offsetTop, el.offsetHeight, debounce, behavior)\n      }\n      else if (index !== undefined && elSize !== undefined) {\n        scrollToPosition(0, index * elSize, elSize, debounce, behavior)\n      }\n      else if (position === 'bottom') {\n        scrollToPosition(0, Number.MAX_SAFE_INTEGER, 0, false, behavior)\n      }\n      else if (position === 'top') {\n        scrollToPosition(0, 0, 0, false, behavior)\n      }\n    }\n\n    const activateState = useReactivated(() => {\n      // Only restore for builtin container & content\n      if (!props.container) {\n        // remount\n        scrollTo({\n          top: containerScrollTopRef.value,\n          left: containerScrollLeftRef.value\n        })\n      }\n    })\n\n    // methods\n    const handleContentResize = (): void => {\n      if (activateState.isDeactivated)\n        return\n      sync()\n    }\n    const handleContainerResize = (e: ResizeObserverEntry): void => {\n      if (activateState.isDeactivated)\n        return\n      const { onResize } = props\n      if (onResize)\n        onResize(e)\n      sync()\n    }\n    const scrollBy: ScrollBy = (\n      options: ScrollOptions | number,\n      y?: number\n    ): void => {\n      if (!props.scrollable)\n        return\n      const { value: container } = mergedContainerRef\n      if (!container)\n        return\n      if (typeof options === 'object') {\n        container.scrollBy(options)\n      }\n      else {\n        container.scrollBy(options, y || 0)\n      }\n    }\n    function scrollToPosition(\n      left: number,\n      top: number,\n      elSize: number,\n      debounce: boolean,\n      behavior?: ScrollBehavior\n    ): void {\n      const { value: container } = mergedContainerRef\n      if (!container)\n        return\n      if (debounce) {\n        const { scrollTop, offsetHeight } = container\n        if (top > scrollTop) {\n          if (top + elSize <= scrollTop + offsetHeight) {\n            // do nothing\n          }\n          else {\n            container.scrollTo({\n              left,\n              top: top + elSize - offsetHeight,\n              behavior\n            })\n          }\n          return\n        }\n      }\n      container.scrollTo({\n        left,\n        top,\n        behavior\n      })\n    }\n    function handleMouseEnterWrapper(): void {\n      showXBar()\n      showYBar()\n      sync()\n    }\n    function handleMouseLeaveWrapper(): void {\n      hideBar()\n    }\n    function hideBar(): void {\n      hideYBar()\n      hideXBar()\n    }\n    function hideYBar(): void {\n      if (yBarVanishTimerId !== undefined) {\n        window.clearTimeout(yBarVanishTimerId)\n      }\n      yBarVanishTimerId = window.setTimeout(() => {\n        isShowYBarRef.value = false\n      }, props.duration)\n    }\n    function hideXBar(): void {\n      if (xBarVanishTimerId !== undefined) {\n        window.clearTimeout(xBarVanishTimerId)\n      }\n      xBarVanishTimerId = window.setTimeout(() => {\n        isShowXBarRef.value = false\n      }, props.duration)\n    }\n    function showXBar(): void {\n      if (xBarVanishTimerId !== undefined) {\n        window.clearTimeout(xBarVanishTimerId)\n      }\n      isShowXBarRef.value = true\n    }\n    function showYBar(): void {\n      if (yBarVanishTimerId !== undefined) {\n        window.clearTimeout(yBarVanishTimerId)\n      }\n      isShowYBarRef.value = true\n    }\n    function handleScroll(e: Event): void {\n      const { onScroll } = props\n      if (onScroll)\n        onScroll(e)\n      syncScrollState()\n    }\n    function syncScrollState(): void {\n      // only collect scroll state, do not trigger any dom event\n      const { value: container } = mergedContainerRef\n      if (container) {\n        containerScrollTopRef.value = container.scrollTop\n        containerScrollLeftRef.value\n          = container.scrollLeft * (rtlEnabledRef?.value ? -1 : 1)\n      }\n    }\n    function syncPositionState(): void {\n      // only collect position state, do not trigger any dom event\n      // Don't use getClientBoundingRect because element may be scale transformed\n      const { value: content } = mergedContentRef\n      if (content) {\n        contentHeightRef.value = content.offsetHeight\n        contentWidthRef.value = content.offsetWidth\n      }\n      const { value: container } = mergedContainerRef\n      if (container) {\n        containerHeightRef.value = container.offsetHeight\n        containerWidthRef.value = container.offsetWidth\n      }\n      const { value: xRailEl } = xRailRef\n      const { value: yRailEl } = yRailRef\n      if (xRailEl) {\n        xRailSizeRef.value = xRailEl.offsetWidth\n      }\n      if (yRailEl) {\n        yRailSizeRef.value = yRailEl.offsetHeight\n      }\n    }\n    /**\n     * Sometimes there's only one element that we can scroll,\n     * For example for textarea, there won't be a content element.\n     */\n    function syncUnifiedContainer(): void {\n      const { value: container } = mergedContainerRef\n      if (container) {\n        containerScrollTopRef.value = container.scrollTop\n        containerScrollLeftRef.value\n          = container.scrollLeft * (rtlEnabledRef?.value ? -1 : 1)\n        containerHeightRef.value = container.offsetHeight\n        containerWidthRef.value = container.offsetWidth\n        contentHeightRef.value = container.scrollHeight\n        contentWidthRef.value = container.scrollWidth\n      }\n      const { value: xRailEl } = xRailRef\n      const { value: yRailEl } = yRailRef\n      if (xRailEl) {\n        xRailSizeRef.value = xRailEl.offsetWidth\n      }\n      if (yRailEl) {\n        yRailSizeRef.value = yRailEl.offsetHeight\n      }\n    }\n    function sync(): void {\n      if (!props.scrollable)\n        return\n      if (props.useUnifiedContainer) {\n        syncUnifiedContainer()\n      }\n      else {\n        syncPositionState()\n        syncScrollState()\n      }\n    }\n    function isMouseUpAway(e: MouseEvent): boolean {\n      return !wrapperRef.value?.contains(\n        getPreciseEventTarget(e) as Node | null\n      )\n    }\n    function handleXScrollMouseDown(e: MouseEvent): void {\n      e.preventDefault()\n      e.stopPropagation()\n      xBarPressed = true\n      on('mousemove', window, handleXScrollMouseMove, true)\n      on('mouseup', window, handleXScrollMouseUp, true)\n      memoXLeft = containerScrollLeftRef.value\n      memoMouseX = rtlEnabledRef?.value\n        ? window.innerWidth - e.clientX\n        : e.clientX\n    }\n    function handleXScrollMouseMove(e: MouseEvent): void {\n      if (!xBarPressed)\n        return\n      if (xBarVanishTimerId !== undefined) {\n        window.clearTimeout(xBarVanishTimerId)\n      }\n      if (yBarVanishTimerId !== undefined) {\n        window.clearTimeout(yBarVanishTimerId)\n      }\n      const { value: containerWidth } = containerWidthRef\n      const { value: contentWidth } = contentWidthRef\n      const { value: xBarSize } = xBarSizeRef\n      if (containerWidth === null || contentWidth === null)\n        return\n      const dX = rtlEnabledRef?.value\n        ? window.innerWidth - e.clientX - memoMouseX\n        : e.clientX - memoMouseX\n\n      const dScrollLeft\n        = (dX * (contentWidth - containerWidth)) / (containerWidth - xBarSize)\n      const toScrollLeftUpperBound = contentWidth - containerWidth\n      let toScrollLeft = memoXLeft + dScrollLeft\n      toScrollLeft = Math.min(toScrollLeftUpperBound, toScrollLeft)\n      toScrollLeft = Math.max(toScrollLeft, 0)\n      const { value: container } = mergedContainerRef\n      if (container) {\n        container.scrollLeft = toScrollLeft * (rtlEnabledRef?.value ? -1 : 1)\n        const { internalOnUpdateScrollLeft } = props\n        if (internalOnUpdateScrollLeft)\n          internalOnUpdateScrollLeft(toScrollLeft)\n      }\n    }\n    function handleXScrollMouseUp(e: MouseEvent): void {\n      e.preventDefault()\n      e.stopPropagation()\n      off('mousemove', window, handleXScrollMouseMove, true)\n      off('mouseup', window, handleXScrollMouseUp, true)\n      xBarPressed = false\n      sync()\n      if (isMouseUpAway(e)) {\n        hideBar()\n      }\n    }\n    function handleYScrollMouseDown(e: MouseEvent): void {\n      e.preventDefault()\n      e.stopPropagation()\n      yBarPressed = true\n      on('mousemove', window, handleYScrollMouseMove, true)\n      on('mouseup', window, handleYScrollMouseUp, true)\n      memoYTop = containerScrollTopRef.value\n      memoMouseY = e.clientY\n    }\n    function handleYScrollMouseMove(e: MouseEvent): void {\n      if (!yBarPressed)\n        return\n      if (xBarVanishTimerId !== undefined) {\n        window.clearTimeout(xBarVanishTimerId)\n      }\n      if (yBarVanishTimerId !== undefined) {\n        window.clearTimeout(yBarVanishTimerId)\n      }\n      const { value: containerHeight } = containerHeightRef\n      const { value: contentHeight } = contentHeightRef\n      const { value: yBarSize } = yBarSizeRef\n      if (containerHeight === null || contentHeight === null)\n        return\n      const dY = e.clientY - memoMouseY\n      const dScrollTop\n        = (dY * (contentHeight - containerHeight)) / (containerHeight - yBarSize)\n      const toScrollTopUpperBound = contentHeight - containerHeight\n      let toScrollTop = memoYTop + dScrollTop\n      toScrollTop = Math.min(toScrollTopUpperBound, toScrollTop)\n      toScrollTop = Math.max(toScrollTop, 0)\n      const { value: container } = mergedContainerRef\n      if (container) {\n        container.scrollTop = toScrollTop\n      }\n    }\n    function handleYScrollMouseUp(e: MouseEvent): void {\n      e.preventDefault()\n      e.stopPropagation()\n      off('mousemove', window, handleYScrollMouseMove, true)\n      off('mouseup', window, handleYScrollMouseUp, true)\n      yBarPressed = false\n      sync()\n      if (isMouseUpAway(e)) {\n        hideBar()\n      }\n    }\n    watchEffect(() => {\n      const { value: needXBar } = needXBarRef\n      const { value: needYBar } = needYBarRef\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const { value: xRailEl } = xRailRef\n      const { value: yRailEl } = yRailRef\n      if (xRailEl) {\n        if (!needXBar) {\n          xRailEl.classList.add(`${mergedClsPrefix}-scrollbar-rail--disabled`)\n        }\n        else {\n          xRailEl.classList.remove(\n            `${mergedClsPrefix}-scrollbar-rail--disabled`\n          )\n        }\n      }\n      if (yRailEl) {\n        if (!needYBar) {\n          yRailEl.classList.add(`${mergedClsPrefix}-scrollbar-rail--disabled`)\n        }\n        else {\n          yRailEl.classList.remove(\n            `${mergedClsPrefix}-scrollbar-rail--disabled`\n          )\n        }\n      }\n    })\n    onMounted(() => {\n      // if container exist, it always can't be resolved when scrollbar is mounted\n      // for example:\n      // - component\n      //   - scrollbar\n      //     - inner\n      // if you pass inner to scrollbar, you may use a ref inside component\n      // however, when scrollbar is mounted, ref is not ready at component\n      // you need to init by yourself\n      if (props.container)\n        return\n      sync()\n    })\n    onBeforeUnmount(() => {\n      if (xBarVanishTimerId !== undefined) {\n        window.clearTimeout(xBarVanishTimerId)\n      }\n      if (yBarVanishTimerId !== undefined) {\n        window.clearTimeout(yBarVanishTimerId)\n      }\n      off('mousemove', window, handleYScrollMouseMove, true)\n      off('mouseup', window, handleYScrollMouseUp, true)\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          color,\n          colorHover,\n          height,\n          width,\n          borderRadius,\n          railInsetHorizontalTop,\n          railInsetHorizontalBottom,\n          railInsetVerticalRight,\n          railInsetVerticalLeft,\n          railColor\n        }\n      } = themeRef.value\n\n      const {\n        top: railTopHorizontalTop,\n        right: railRightHorizontalTop,\n        bottom: railBottomHorizontalTop,\n        left: railLeftHorizontalTop\n      } = getPadding(railInsetHorizontalTop)\n\n      const {\n        top: railTopHorizontalBottom,\n        right: railRightHorizontalBottom,\n        bottom: railBottomHorizontalBottom,\n        left: railLeftHorizontalBottom\n      } = getPadding(railInsetHorizontalBottom)\n\n      const {\n        top: railTopVerticalRight,\n        right: railRightVerticalRight,\n        bottom: railBottomVerticalRight,\n        left: railLeftVerticalRight\n      } = getPadding(\n        rtlEnabledRef?.value\n          ? rtlInset(railInsetVerticalRight)\n          : railInsetVerticalRight\n      )\n\n      const {\n        top: railTopVerticalLeft,\n        right: railRightVerticalLeft,\n        bottom: railBottomVerticalLeft,\n        left: railLeftVerticalLeft\n      } = getPadding(\n        rtlEnabledRef?.value\n          ? rtlInset(railInsetVerticalLeft)\n          : railInsetVerticalLeft\n      )\n\n      return {\n        '--n-scrollbar-bezier': cubicBezierEaseInOut,\n        '--n-scrollbar-color': color,\n        '--n-scrollbar-color-hover': colorHover,\n        '--n-scrollbar-border-radius': borderRadius,\n        '--n-scrollbar-width': width,\n        '--n-scrollbar-height': height,\n        '--n-scrollbar-rail-top-horizontal-top': railTopHorizontalTop,\n        '--n-scrollbar-rail-right-horizontal-top': railRightHorizontalTop,\n        '--n-scrollbar-rail-bottom-horizontal-top': railBottomHorizontalTop,\n        '--n-scrollbar-rail-left-horizontal-top': railLeftHorizontalTop,\n        '--n-scrollbar-rail-top-horizontal-bottom': railTopHorizontalBottom,\n        '--n-scrollbar-rail-right-horizontal-bottom': railRightHorizontalBottom,\n        '--n-scrollbar-rail-bottom-horizontal-bottom':\n          railBottomHorizontalBottom,\n        '--n-scrollbar-rail-left-horizontal-bottom': railLeftHorizontalBottom,\n        '--n-scrollbar-rail-top-vertical-right': railTopVerticalRight,\n        '--n-scrollbar-rail-right-vertical-right': railRightVerticalRight,\n        '--n-scrollbar-rail-bottom-vertical-right': railBottomVerticalRight,\n        '--n-scrollbar-rail-left-vertical-right': railLeftVerticalRight,\n        '--n-scrollbar-rail-top-vertical-left': railTopVerticalLeft,\n        '--n-scrollbar-rail-right-vertical-left': railRightVerticalLeft,\n        '--n-scrollbar-rail-bottom-vertical-left': railBottomVerticalLeft,\n        '--n-scrollbar-rail-left-vertical-left': railLeftVerticalLeft,\n        '--n-scrollbar-rail-color': railColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('scrollbar', undefined, cssVarsRef, props)\n      : undefined\n    const exposedMethods: ScrollbarInstMethods = {\n      scrollTo,\n      scrollBy,\n      sync,\n      syncUnifiedContainer,\n      handleMouseEnterWrapper,\n      handleMouseLeaveWrapper\n    }\n    return {\n      ...exposedMethods,\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      containerScrollTop: containerScrollTopRef,\n      wrapperRef,\n      containerRef,\n      contentRef,\n      yRailRef,\n      xRailRef,\n      needYBar: needYBarRef,\n      needXBar: needXBarRef,\n      yBarSizePx: yBarSizePxRef,\n      xBarSizePx: xBarSizePxRef,\n      yBarTopPx: yBarTopPxRef,\n      xBarLeftPx: xBarLeftPxRef,\n      isShowXBar: mergedShowXBarRef,\n      isShowYBar: mergedShowYBarRef,\n      isIos,\n      handleScroll,\n      handleContentResize,\n      handleContainerResize,\n      handleYScrollMouseDown,\n      handleXScrollMouseDown,\n      containerWidth: containerWidthRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      $slots,\n      mergedClsPrefix,\n      triggerDisplayManually,\n      rtlEnabled,\n      internalHoistYRail,\n      yPlacement,\n      xPlacement,\n      xScrollable\n    } = this\n    if (!this.scrollable)\n      return $slots.default?.()\n    const triggerIsNone = this.trigger === 'none'\n    const createYRail = (\n      className: string | undefined,\n      style: CSSProperties | undefined\n    ): VNode => {\n      return (\n        <div\n          ref=\"yRailRef\"\n          class={[\n            `${mergedClsPrefix}-scrollbar-rail`,\n            `${mergedClsPrefix}-scrollbar-rail--vertical`,\n            `${mergedClsPrefix}-scrollbar-rail--vertical--${yPlacement}`,\n            className\n          ]}\n          data-scrollbar-rail\n          style={[style || '', this.verticalRailStyle as CSSProperties]}\n          aria-hidden\n        >\n          {h(\n            (triggerIsNone ? Wrapper : Transition) as any,\n            triggerIsNone ? null : { name: 'fade-in-transition' },\n            {\n              default: () =>\n                this.needYBar && this.isShowYBar && !this.isIos ? (\n                  <div\n                    class={`${mergedClsPrefix}-scrollbar-rail__scrollbar`}\n                    style={{\n                      height: this.yBarSizePx,\n                      top: this.yBarTopPx\n                    }}\n                    onMousedown={this.handleYScrollMouseDown}\n                  />\n                ) : null\n            }\n          )}\n        </div>\n      )\n    }\n    const createChildren = (): VNode => {\n      this.onRender?.()\n      return h(\n        'div',\n        mergeProps(this.$attrs, {\n          role: 'none',\n          ref: 'wrapperRef',\n          class: [\n            `${mergedClsPrefix}-scrollbar`,\n            this.themeClass,\n            rtlEnabled && `${mergedClsPrefix}-scrollbar--rtl`\n          ],\n          style: this.cssVars,\n          onMouseenter: triggerDisplayManually\n            ? undefined\n            : this.handleMouseEnterWrapper,\n          onMouseleave: triggerDisplayManually\n            ? undefined\n            : this.handleMouseLeaveWrapper\n        }),\n        [\n          this.container ? (\n            $slots.default?.()\n          ) : (\n            <div\n              role=\"none\"\n              ref=\"containerRef\"\n              class={[\n                `${mergedClsPrefix}-scrollbar-container`,\n                this.containerClass\n              ]}\n              style={[\n                this.containerStyle,\n                this.internalExposeWidthCssVar\n                  ? { '--n-scrollbar-current-width': pxfy(this.containerWidth) }\n                  : undefined\n              ]}\n              onScroll={this.handleScroll}\n              onWheel={this.onWheel}\n            >\n              <VResizeObserver onResize={this.handleContentResize}>\n                {{\n                  default: () => (\n                    <div\n                      ref=\"contentRef\"\n                      role=\"none\"\n                      style={\n                        [\n                          {\n                            width: this.xScrollable ? 'fit-content' : null\n                          },\n                          this.contentStyle\n                        ] as any\n                      }\n                      class={[\n                        `${mergedClsPrefix}-scrollbar-content`,\n                        this.contentClass\n                      ]}\n                    >\n                      {$slots.default?.()}\n                    </div>\n                  )\n                }}\n              </VResizeObserver>\n            </div>\n          ),\n          internalHoistYRail ? null : createYRail(undefined, undefined),\n          xScrollable && (\n            <div\n              ref=\"xRailRef\"\n              class={[\n                `${mergedClsPrefix}-scrollbar-rail`,\n                `${mergedClsPrefix}-scrollbar-rail--horizontal`,\n                `${mergedClsPrefix}-scrollbar-rail--horizontal--${xPlacement}`\n              ]}\n              style={this.horizontalRailStyle}\n              data-scrollbar-rail\n              aria-hidden\n            >\n              {h(\n                (triggerIsNone ? Wrapper : Transition) as any,\n                triggerIsNone ? null : { name: 'fade-in-transition' },\n                {\n                  default: () =>\n                    this.needXBar && this.isShowXBar && !this.isIos ? (\n                      <div\n                        class={`${mergedClsPrefix}-scrollbar-rail__scrollbar`}\n                        style={{\n                          width: this.xBarSizePx,\n                          right: rtlEnabled ? this.xBarLeftPx : undefined,\n                          left: rtlEnabled ? undefined : this.xBarLeftPx\n                        }}\n                        onMousedown={this.handleXScrollMouseDown}\n                      />\n                    ) : null\n                }\n              )}\n            </div>\n          )\n        ]\n      )\n    }\n    const scrollbarNode = this.container ? (\n      createChildren()\n    ) : (\n      <VResizeObserver onResize={this.handleContainerResize}>\n        {{\n          default: createChildren\n        }}\n      </VResizeObserver>\n    )\n    if (internalHoistYRail) {\n      return (\n        <Fragment>\n          {scrollbarNode}\n          {createYRail(this.themeClass, this.cssVars)}\n        </Fragment>\n      )\n    }\n    else {\n      return scrollbarNode\n    }\n  }\n})\n\ntype NativeScrollbarProps = Omit<HTMLAttributes, keyof ScrollbarInternalProps>\ntype MergedProps = Partial<ScrollbarInternalProps & NativeScrollbarProps>\n\nexport default Scrollbar\nexport const XScrollbar: new () => { $props: MergedProps } = Scrollbar as any\n","export function toArray(arg) {\n    if (Array.isArray(arg))\n        return arg;\n    return [arg];\n}\n// Do not use enum for lint plugin has error\nexport const TRAVERSE_COMMAND = {\n    STOP: 'STOP'\n};\nexport function traverseWithCb(treeNode, callback) {\n    const command = callback(treeNode);\n    if (treeNode.children !== undefined && command !== TRAVERSE_COMMAND.STOP) {\n        treeNode.children.forEach((childNode) => traverseWithCb(childNode, callback));\n    }\n}\nexport function getNonLeafKeys(treeNodes, options = {}) {\n    const { preserveGroup = false } = options;\n    const keys = [];\n    const cb = preserveGroup\n        ? (node) => {\n            if (!node.isLeaf) {\n                keys.push(node.key);\n                traverse(node.children);\n            }\n        }\n        : (node) => {\n            if (!node.isLeaf) {\n                if (!node.isGroup)\n                    keys.push(node.key);\n                traverse(node.children);\n            }\n        };\n    function traverse(nodes) {\n        nodes.forEach(cb);\n    }\n    traverse(treeNodes);\n    return keys;\n}\nexport function isLeaf(rawNode, getChildren) {\n    const { isLeaf } = rawNode;\n    if (isLeaf !== undefined)\n        return isLeaf;\n    else if (!getChildren(rawNode))\n        return true;\n    return false;\n}\nexport function defaultGetChildren(node) {\n    return node.children;\n}\nexport function defaultGetKey(node) {\n    return node.key;\n}\nexport function isIgnored() {\n    return false;\n}\nexport function isShallowLoaded(rawNode, getChildren) {\n    const { isLeaf } = rawNode;\n    if (isLeaf === false && !Array.isArray(getChildren(rawNode)))\n        return false;\n    return true;\n}\nexport function isDisabled(rawNode) {\n    return rawNode.disabled === true;\n}\nexport function isExpilicitlyNotLoaded(rawNode, getChildren) {\n    return (rawNode.isLeaf === false && !Array.isArray(getChildren(rawNode)));\n}\nexport function isNodeInvalid(rawNode, getChildren) {\n    if (rawNode.isLeaf === true) {\n        const children = getChildren(rawNode);\n        if (Array.isArray(children) && children.length > 0)\n            return true;\n    }\n    return false;\n}\nexport function unwrapCheckedKeys(result) {\n    var _a;\n    if (result === undefined || result === null)\n        return [];\n    if (Array.isArray(result))\n        return result;\n    return (_a = result.checkedKeys) !== null && _a !== void 0 ? _a : [];\n}\nexport function unwrapIndeterminateKeys(result) {\n    var _a;\n    if (result === undefined || result === null || Array.isArray(result)) {\n        return [];\n    }\n    return (_a = result.indeterminateKeys) !== null && _a !== void 0 ? _a : [];\n}\nexport function merge(originalKeys, keysToAdd) {\n    const set = new Set(originalKeys);\n    keysToAdd.forEach((key) => {\n        if (!set.has(key)) {\n            set.add(key);\n        }\n    });\n    return Array.from(set);\n}\nexport function minus(originalKeys, keysToRemove) {\n    const set = new Set(originalKeys);\n    keysToRemove.forEach((key) => {\n        if (set.has(key)) {\n            set.delete(key);\n        }\n    });\n    return Array.from(set);\n}\nexport function isGroup(rawNode) {\n    return (rawNode === null || rawNode === void 0 ? void 0 : rawNode.type) === 'group';\n}\nexport function createIndexGetter(treeNodes) {\n    const map = new Map();\n    treeNodes.forEach((treeNode, i) => {\n        map.set(treeNode.key, i);\n    });\n    return (key) => { var _a; return (_a = map.get(key)) !== null && _a !== void 0 ? _a : null; };\n}\n","import { isExpilicitlyNotLoaded, merge, minus, traverseWithCb, TRAVERSE_COMMAND } from './utils';\nexport class SubtreeNotLoadedError extends Error {\n    constructor() {\n        super();\n        this.message =\n            'SubtreeNotLoadedError: checking a subtree whose required nodes are not fully loaded.';\n    }\n}\nfunction getExtendedCheckedKeySetAfterCheck(checkKeys, currentCheckedKeys, treeMate, allowNotLoaded) {\n    return getExtendedCheckedKeySet(currentCheckedKeys.concat(checkKeys), treeMate, allowNotLoaded, false);\n}\nfunction getAvailableAscendantNodeSet(uncheckedKeys, treeMate) {\n    const visitedKeys = new Set();\n    uncheckedKeys.forEach((uncheckedKey) => {\n        const uncheckedTreeNode = treeMate.treeNodeMap.get(uncheckedKey);\n        if (uncheckedTreeNode !== undefined) {\n            let nodeCursor = uncheckedTreeNode.parent;\n            while (nodeCursor !== null) {\n                if (nodeCursor.disabled)\n                    break;\n                if (visitedKeys.has(nodeCursor.key))\n                    break;\n                else {\n                    visitedKeys.add(nodeCursor.key);\n                }\n                nodeCursor = nodeCursor.parent;\n            }\n        }\n    });\n    return visitedKeys;\n}\nfunction getExtendedCheckedKeySetAfterUncheck(uncheckedKeys, currentCheckedKeys, treeMate, allowNotLoaded) {\n    const extendedCheckedKeySet = getExtendedCheckedKeySet(currentCheckedKeys, treeMate, allowNotLoaded, false);\n    const extendedKeySetToUncheck = getExtendedCheckedKeySet(uncheckedKeys, treeMate, allowNotLoaded, true);\n    const ascendantKeySet = getAvailableAscendantNodeSet(uncheckedKeys, treeMate);\n    const keysToRemove = [];\n    extendedCheckedKeySet.forEach((key) => {\n        if (extendedKeySetToUncheck.has(key) || ascendantKeySet.has(key)) {\n            keysToRemove.push(key);\n        }\n    });\n    keysToRemove.forEach((key) => extendedCheckedKeySet.delete(key));\n    return extendedCheckedKeySet;\n}\nexport function getCheckedKeys(options, treeMate) {\n    const { checkedKeys, keysToCheck, keysToUncheck, indeterminateKeys, cascade, leafOnly, checkStrategy, allowNotLoaded } = options;\n    if (!cascade) {\n        if (keysToCheck !== undefined) {\n            return {\n                checkedKeys: merge(checkedKeys, keysToCheck),\n                indeterminateKeys: Array.from(indeterminateKeys)\n            };\n        }\n        else if (keysToUncheck !== undefined) {\n            return {\n                checkedKeys: minus(checkedKeys, keysToUncheck),\n                indeterminateKeys: Array.from(indeterminateKeys)\n            };\n        }\n        else {\n            return {\n                checkedKeys: Array.from(checkedKeys),\n                indeterminateKeys: Array.from(indeterminateKeys)\n            };\n        }\n    }\n    const { levelTreeNodeMap } = treeMate;\n    let extendedCheckedKeySet;\n    if (keysToUncheck !== undefined) {\n        extendedCheckedKeySet = getExtendedCheckedKeySetAfterUncheck(keysToUncheck, checkedKeys, treeMate, allowNotLoaded);\n    }\n    else if (keysToCheck !== undefined) {\n        extendedCheckedKeySet = getExtendedCheckedKeySetAfterCheck(keysToCheck, checkedKeys, treeMate, allowNotLoaded);\n    }\n    else {\n        extendedCheckedKeySet = getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, false);\n    }\n    const checkStrategyIsParent = checkStrategy === 'parent';\n    const checkStrategyIsChild = checkStrategy === 'child' || leafOnly;\n    const syntheticCheckedKeySet = extendedCheckedKeySet;\n    const syntheticIndeterminateKeySet = new Set();\n    const maxLevel = Math.max.apply(null, Array.from(levelTreeNodeMap.keys()));\n    // cascade check\n    // 1. if tree is fully loaded, it just works\n    // 2. if the tree is not fully loaded, we assume that keys which is in not\n    //    loaded tree are not in checked keys\n    //    for example:\n    //    a -- b(fully-loaded)   -- c(fully-loaded)\n    //      |- d(partial-loaded) -- ?e(not-loaded)\n    //    in the case, `e` is assumed not to be checked, nor we can't calc `d`'s\n    //    and `a`'s status\n    for (let level = maxLevel; level >= 0; level -= 1) {\n        const levelIsZero = level === 0;\n        // it should exists, nor it is a bug\n        const levelTreeNodes = levelTreeNodeMap.get(level);\n        for (const levelTreeNode of levelTreeNodes) {\n            if (levelTreeNode.isLeaf)\n                continue;\n            const { key: levelTreeNodeKey, shallowLoaded } = levelTreeNode;\n            if (checkStrategyIsChild && shallowLoaded) {\n                // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                levelTreeNode.children.forEach((v) => {\n                    if (!v.disabled &&\n                        !v.isLeaf &&\n                        v.shallowLoaded &&\n                        syntheticCheckedKeySet.has(v.key)) {\n                        syntheticCheckedKeySet.delete(v.key);\n                    }\n                });\n            }\n            if (levelTreeNode.disabled || !shallowLoaded) {\n                continue;\n            }\n            let fullyChecked = true;\n            let partialChecked = false;\n            let allDisabled = true;\n            // it is shallow loaded, so `children` must exist\n            for (const childNode of levelTreeNode.children) {\n                const childKey = childNode.key;\n                if (childNode.disabled)\n                    continue;\n                if (allDisabled)\n                    allDisabled = false;\n                if (syntheticCheckedKeySet.has(childKey)) {\n                    partialChecked = true;\n                }\n                else if (syntheticIndeterminateKeySet.has(childKey)) {\n                    partialChecked = true;\n                    fullyChecked = false;\n                    break;\n                }\n                else {\n                    fullyChecked = false;\n                    if (partialChecked) {\n                        break;\n                    }\n                }\n            }\n            if (fullyChecked && !allDisabled) {\n                if (checkStrategyIsParent) {\n                    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n                    levelTreeNode.children.forEach((v) => {\n                        if (!v.disabled && syntheticCheckedKeySet.has(v.key)) {\n                            syntheticCheckedKeySet.delete(v.key);\n                        }\n                    });\n                }\n                syntheticCheckedKeySet.add(levelTreeNodeKey);\n            }\n            else if (partialChecked) {\n                syntheticIndeterminateKeySet.add(levelTreeNodeKey);\n            }\n            if (levelIsZero &&\n                checkStrategyIsChild &&\n                syntheticCheckedKeySet.has(levelTreeNodeKey)) {\n                syntheticCheckedKeySet.delete(levelTreeNodeKey);\n            }\n        }\n    }\n    return {\n        checkedKeys: Array.from(syntheticCheckedKeySet),\n        indeterminateKeys: Array.from(syntheticIndeterminateKeySet)\n    };\n}\n// unchecking is safe when doing cascade uncheck in async mode\nexport function getExtendedCheckedKeySet(checkedKeys, treeMate, allowNotLoaded, isUnchecking) {\n    const { treeNodeMap, getChildren } = treeMate;\n    const visitedKeySet = new Set();\n    const extendedKeySet = new Set(checkedKeys);\n    checkedKeys.forEach((checkedKey) => {\n        const checkedTreeNode = treeNodeMap.get(checkedKey);\n        if (checkedTreeNode !== undefined) {\n            traverseWithCb(checkedTreeNode, (treeNode) => {\n                if (treeNode.disabled) {\n                    return TRAVERSE_COMMAND.STOP;\n                }\n                const { key } = treeNode;\n                if (visitedKeySet.has(key))\n                    return;\n                visitedKeySet.add(key);\n                // Adding keys before loaded check is okay, since if not valid error\n                // would be thrown\n                extendedKeySet.add(key);\n                if (isExpilicitlyNotLoaded(treeNode.rawNode, getChildren)) {\n                    if (isUnchecking) {\n                        return TRAVERSE_COMMAND.STOP;\n                    }\n                    else if (!allowNotLoaded) {\n                        throw new SubtreeNotLoadedError();\n                    }\n                }\n            });\n        }\n    });\n    return extendedKeySet;\n}\n","export function getPath(key, { includeGroup = false, includeSelf = true }, treeMate) {\n    var _a;\n    const treeNodeMap = treeMate.treeNodeMap;\n    let treeNode = key === null || key === undefined ? null : (_a = treeNodeMap.get(key)) !== null && _a !== void 0 ? _a : null;\n    const mergedPath = {\n        keyPath: [],\n        treeNodePath: [],\n        treeNode: treeNode\n    };\n    if (treeNode === null || treeNode === void 0 ? void 0 : treeNode.ignored) {\n        mergedPath.treeNode = null;\n        return mergedPath;\n    }\n    while (treeNode) {\n        if (!treeNode.ignored && (includeGroup || !treeNode.isGroup)) {\n            mergedPath.treeNodePath.push(treeNode);\n        }\n        treeNode = treeNode.parent;\n    }\n    mergedPath.treeNodePath.reverse();\n    if (!includeSelf)\n        mergedPath.treeNodePath.pop();\n    mergedPath.keyPath = mergedPath.treeNodePath.map((treeNode) => treeNode.key);\n    return mergedPath;\n}\n","export function getFirstAvailableNode(nodes) {\n    if (nodes.length === 0)\n        return null;\n    const node = nodes[0];\n    if (node.isGroup || node.ignored || node.disabled) {\n        return node.getNext();\n    }\n    return node;\n}\nfunction rawGetNext(node, loop) {\n    const sibs = node.siblings;\n    const l = sibs.length;\n    const { index } = node;\n    if (loop) {\n        return sibs[(index + 1) % l];\n    }\n    else {\n        if (index === sibs.length - 1)\n            return null;\n        return sibs[index + 1];\n    }\n}\nfunction move(fromNode, dir, { loop = false, includeDisabled = false } = {}) {\n    const iterate = dir === 'prev' ? rawGetPrev : rawGetNext;\n    const getChildOptions = {\n        reverse: dir === 'prev'\n    };\n    let meet = false;\n    let endNode = null;\n    function traverse(node) {\n        if (node === null)\n            return;\n        if (node === fromNode) {\n            if (!meet) {\n                meet = true;\n            }\n            else if (!fromNode.disabled && !fromNode.isGroup) {\n                endNode = fromNode;\n                return;\n            }\n        }\n        else {\n            if ((!node.disabled || includeDisabled) &&\n                !node.ignored &&\n                !node.isGroup) {\n                endNode = node;\n                return;\n            }\n        }\n        if (node.isGroup) {\n            const child = getChild(node, getChildOptions);\n            if (child !== null) {\n                endNode = child;\n            }\n            else {\n                traverse(iterate(node, loop));\n            }\n        }\n        else {\n            const nextNode = iterate(node, false);\n            if (nextNode !== null) {\n                traverse(nextNode);\n            }\n            else {\n                const parent = rawGetParent(node);\n                if (parent === null || parent === void 0 ? void 0 : parent.isGroup) {\n                    traverse(iterate(parent, loop));\n                }\n                else if (loop) {\n                    traverse(iterate(node, true));\n                }\n            }\n        }\n    }\n    traverse(fromNode);\n    return endNode;\n}\nfunction rawGetPrev(node, loop) {\n    const sibs = node.siblings;\n    const l = sibs.length;\n    const { index } = node;\n    if (loop) {\n        return sibs[(index - 1 + l) % l];\n    }\n    else {\n        if (index === 0)\n            return null;\n        return sibs[index - 1];\n    }\n}\nfunction rawGetParent(node) {\n    return node.parent;\n}\nfunction getChild(node, options = {}) {\n    const { reverse = false } = options;\n    const { children } = node;\n    if (children) {\n        const { length } = children;\n        const start = reverse ? length - 1 : 0;\n        const end = reverse ? -1 : length;\n        const delta = reverse ? -1 : 1;\n        for (let i = start; i !== end; i += delta) {\n            const child = children[i];\n            if (!child.disabled && !child.ignored) {\n                if (child.isGroup) {\n                    const childInGroup = getChild(child, options);\n                    if (childInGroup !== null)\n                        return childInGroup;\n                }\n                else {\n                    return child;\n                }\n            }\n        }\n    }\n    return null;\n}\nexport const moveMethods = {\n    getChild() {\n        if (this.ignored)\n            return null;\n        return getChild(this);\n    },\n    getParent() {\n        const { parent } = this;\n        if (parent === null || parent === void 0 ? void 0 : parent.isGroup) {\n            return parent.getParent();\n        }\n        return parent;\n    },\n    getNext(options = {}) {\n        return move(this, 'next', options);\n    },\n    getPrev(options = {}) {\n        return move(this, 'prev', options);\n    }\n};\n","export function flatten(treeNodes, expandedKeys) {\n    const expandedKeySet = expandedKeys ? new Set(expandedKeys) : undefined;\n    const flattenedNodes = [];\n    function traverse(treeNodes) {\n        treeNodes.forEach((treeNode) => {\n            flattenedNodes.push(treeNode);\n            if (treeNode.isLeaf || !treeNode.children || treeNode.ignored)\n                return;\n            if (treeNode.isGroup) {\n                // group node shouldn't be expanded\n                traverse(treeNode.children);\n            }\n            else if (\n            // normal non-leaf node\n            expandedKeySet === undefined ||\n                expandedKeySet.has(treeNode.key)) {\n                traverse(treeNode.children);\n            }\n        });\n    }\n    traverse(treeNodes);\n    return flattenedNodes;\n}\n","export function contains(parent, child) {\n    const parentKey = parent.key;\n    // eslint-disable-next-line no-unmodified-loop-condition\n    while (child) {\n        if (child.key === parentKey)\n            return true;\n        child = child.parent;\n    }\n    return false;\n}\n","import { getCheckedKeys } from './check';\nimport { toArray, isDisabled, isLeaf, isGroup, isNodeInvalid, unwrapCheckedKeys, isShallowLoaded, unwrapIndeterminateKeys, getNonLeafKeys, isIgnored, defaultGetChildren, defaultGetKey } from './utils';\nimport { getPath } from './path';\nimport { moveMethods, getFirstAvailableNode } from './move';\nimport { flatten } from './flatten';\nimport { contains } from './contains';\nfunction createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, parent = null, level = 0) {\n    const treeNodes = [];\n    rawNodes.forEach((rawNode, index) => {\n        var _a;\n        if (process.env.NODE_ENV !== 'production' &&\n            isNodeInvalid(rawNode, getChildren)) {\n            console.error('[treemate]: node', rawNode, 'is invalid');\n        }\n        const treeNode = Object.create(nodeProto);\n        treeNode.rawNode = rawNode;\n        treeNode.siblings = treeNodes;\n        treeNode.level = level;\n        treeNode.index = index;\n        treeNode.isFirstChild = index === 0;\n        treeNode.isLastChild = index + 1 === rawNodes.length;\n        treeNode.parent = parent;\n        if (!treeNode.ignored) {\n            const rawChildren = getChildren(rawNode);\n            if (Array.isArray(rawChildren)) {\n                treeNode.children = createTreeNodes(rawChildren, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren, treeNode, level + 1);\n            }\n        }\n        treeNodes.push(treeNode);\n        treeNodeMap.set(treeNode.key, treeNode);\n        if (!levelTreeNodeMap.has(level))\n            levelTreeNodeMap.set(level, []);\n        (_a = levelTreeNodeMap.get(level)) === null || _a === void 0 ? void 0 : _a.push(treeNode);\n    });\n    return treeNodes;\n}\nexport function createTreeMate(rawNodes, options = {}) {\n    var _a;\n    const treeNodeMap = new Map();\n    const levelTreeNodeMap = new Map();\n    const { getDisabled = isDisabled, getIgnored = isIgnored, getIsGroup = isGroup, getKey = defaultGetKey } = options;\n    const _getChildren = (_a = options.getChildren) !== null && _a !== void 0 ? _a : defaultGetChildren;\n    const getChildren = options.ignoreEmptyChildren\n        ? (node) => {\n            const children = _getChildren(node);\n            if (Array.isArray(children)) {\n                if (!children.length)\n                    return null;\n                return children;\n            }\n            return children;\n        }\n        : _getChildren;\n    const nodeProto = Object.assign({\n        get key() {\n            // do not pass parent or related things to it\n            // the key need to be specified explicitly\n            return getKey(this.rawNode);\n        },\n        get disabled() {\n            return getDisabled(this.rawNode);\n        },\n        get isGroup() {\n            return getIsGroup(this.rawNode);\n        },\n        get isLeaf() {\n            return isLeaf(this.rawNode, getChildren);\n        },\n        get shallowLoaded() {\n            return isShallowLoaded(this.rawNode, getChildren);\n        },\n        get ignored() {\n            return getIgnored(this.rawNode);\n        },\n        contains(node) {\n            return contains(this, node);\n        }\n    }, moveMethods);\n    const treeNodes = createTreeNodes(rawNodes, treeNodeMap, levelTreeNodeMap, nodeProto, getChildren);\n    function getNode(key) {\n        if (key === null || key === undefined)\n            return null;\n        const tmNode = treeNodeMap.get(key);\n        if (tmNode && !tmNode.isGroup && !tmNode.ignored) {\n            return tmNode;\n        }\n        return null;\n    }\n    function _getNode(key) {\n        if (key === null || key === undefined)\n            return null;\n        const tmNode = treeNodeMap.get(key);\n        if (tmNode && !tmNode.ignored) {\n            return tmNode;\n        }\n        return null;\n    }\n    function getPrev(key, options) {\n        const node = _getNode(key);\n        if (!node)\n            return null;\n        return node.getPrev(options);\n    }\n    function getNext(key, options) {\n        const node = _getNode(key);\n        if (!node)\n            return null;\n        return node.getNext(options);\n    }\n    function getParent(key) {\n        const node = _getNode(key);\n        if (!node)\n            return null;\n        return node.getParent();\n    }\n    function getChild(key) {\n        const node = _getNode(key);\n        if (!node)\n            return null;\n        return node.getChild();\n    }\n    const treemate = {\n        treeNodes,\n        treeNodeMap,\n        levelTreeNodeMap,\n        maxLevel: Math.max(...levelTreeNodeMap.keys()),\n        getChildren,\n        getFlattenedNodes(expandedKeys) {\n            return flatten(treeNodes, expandedKeys);\n        },\n        getNode,\n        getPrev,\n        getNext,\n        getParent,\n        getChild,\n        getFirstAvailableNode() {\n            return getFirstAvailableNode(treeNodes);\n        },\n        getPath(key, options = {}) {\n            return getPath(key, options, treemate);\n        },\n        getCheckedKeys(checkedKeys, options = {}) {\n            const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n            return getCheckedKeys({\n                checkedKeys: unwrapCheckedKeys(checkedKeys),\n                indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n                cascade,\n                leafOnly,\n                checkStrategy,\n                allowNotLoaded\n            }, treemate);\n        },\n        check(keysToCheck, checkedKeys, options = {}) {\n            const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n            return getCheckedKeys({\n                checkedKeys: unwrapCheckedKeys(checkedKeys),\n                indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n                keysToCheck: keysToCheck === undefined || keysToCheck === null\n                    ? []\n                    : toArray(keysToCheck),\n                cascade,\n                leafOnly,\n                checkStrategy,\n                allowNotLoaded\n            }, treemate);\n        },\n        uncheck(keysToUncheck, checkedKeys, options = {}) {\n            const { cascade = true, leafOnly = false, checkStrategy = 'all', allowNotLoaded = false } = options;\n            return getCheckedKeys({\n                checkedKeys: unwrapCheckedKeys(checkedKeys),\n                indeterminateKeys: unwrapIndeterminateKeys(checkedKeys),\n                keysToUncheck: keysToUncheck === null || keysToUncheck === undefined\n                    ? []\n                    : toArray(keysToUncheck),\n                cascade,\n                leafOnly,\n                checkStrategy,\n                allowNotLoaded\n            }, treemate);\n        },\n        getNonLeafKeys(options = {}) {\n            return getNonLeafKeys(treeNodes, options);\n        }\n    };\n    return treemate;\n}\n","export default {\n  iconSizeTiny: '28px',\n  iconSizeSmall: '34px',\n  iconSizeMedium: '40px',\n  iconSizeLarge: '46px',\n  iconSizeHuge: '52px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColorDisabled,\n    iconColor,\n    textColor2,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    fontSizeHuge\n  } = vars\n  return {\n    ...commonVars,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    fontSizeHuge,\n    textColor: textColorDisabled,\n    iconColor,\n    extraTextColor: textColor2\n  }\n}\n\nexport interface EmptyThemeVars extends ReturnType<typeof self> {}\n\nconst emptyLight: EmptyTheme = {\n  name: 'Empty',\n  common: commonLight,\n  self\n}\n\nexport interface EmptyTheme extends Theme<'Empty', EmptyThemeVars> {}\n\nexport interface EmptyThemeOverrides extends ExtractThemeOverrides<EmptyTheme> {}\n\nexport default emptyLight\n","import type { EmptyTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst emptyDark: EmptyTheme = {\n  name: 'Empty',\n  common: commonDark,\n  self\n}\n\nexport default emptyDark\n","import { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-icon-color\n// --n-bezier\n// --n-text-color\n// --n-extra-text-color\nexport default cB('empty', `\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  font-size: var(--n-font-size);\n`, [\n  cE('icon', `\n    width: var(--n-icon-size);\n    height: var(--n-icon-size);\n    font-size: var(--n-icon-size);\n    line-height: var(--n-icon-size);\n    color: var(--n-icon-color);\n    transition:\n      color .3s var(--n-bezier);\n  `, [\n    c('+', [\n      cE('description', `\n        margin-top: 8px;\n      `)\n    ])\n  ]),\n  cE('description', `\n    transition: color .3s var(--n-bezier);\n    color: var(--n-text-color);\n  `),\n  cE('extra', `\n    text-align: center;\n    transition: color .3s var(--n-bezier);\n    margin-top: 12px;\n    color: var(--n-extra-text-color);\n  `)\n])\n","import type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { EmptyTheme, EmptyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal/icon'\nimport { EmptyIcon } from '../../_internal/icons'\nimport { useConfig, useLocale, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey } from '../../_utils'\nimport { emptyLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const emptyProps = {\n  ...(useTheme.props as ThemeProps<EmptyTheme, EmptyThemeOverrides>),\n  description: String,\n  showDescription: {\n    type: Boolean,\n    default: true\n  },\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  size: {\n    type: String as PropType<'tiny' | 'small' | 'medium' | 'large' | 'huge'>,\n    default: 'medium'\n  },\n  renderIcon: Function as PropType<() => VNodeChild>\n}\n\nexport type EmptyProps = ExtractPublicPropTypes<typeof emptyProps>\n\nexport interface EmptySlots {\n  default?: () => VNode[]\n  extra?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Empty',\n  props: emptyProps,\n  slots: Object as SlotsType<EmptySlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Empty',\n      '-empty',\n      style,\n      emptyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { localeRef } = useLocale('Empty')\n    const mergedDescriptionRef = computed(() => {\n      return (\n        props.description ?? mergedComponentPropsRef?.value?.Empty?.description\n      )\n    })\n    const mergedRenderIconRef = computed(\n      () =>\n        mergedComponentPropsRef?.value?.Empty?.renderIcon\n        || (() => <EmptyIcon />)\n    )\n    const cssVarsRef = computed(() => {\n      const { size } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          [createKey('iconSize', size)]: iconSize,\n          [createKey('fontSize', size)]: fontSize,\n          textColor,\n          iconColor,\n          extraTextColor\n        }\n      } = themeRef.value\n      return {\n        '--n-icon-size': iconSize,\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-icon-color': iconColor,\n        '--n-extra-text-color': extraTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'empty',\n          computed(() => {\n            let hash = ''\n            const { size } = props\n            hash += size[0]\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedRenderIcon: mergedRenderIconRef,\n      localizedDescription: computed(() => {\n        return mergedDescriptionRef.value || localeRef.value.description\n      }),\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { $slots, mergedClsPrefix, onRender } = this\n    onRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-empty`, this.themeClass]}\n        style={this.cssVars as any}\n      >\n        {this.showIcon ? (\n          <div class={`${mergedClsPrefix}-empty__icon`}>\n            {$slots.icon ? (\n              $slots.icon()\n            ) : (\n              <NBaseIcon clsPrefix={mergedClsPrefix}>\n                {{ default: this.mergedRenderIcon }}\n              </NBaseIcon>\n            )}\n          </div>\n        ) : null}\n        {this.showDescription ? (\n          <div class={`${mergedClsPrefix}-empty__description`}>\n            {$slots.default ? $slots.default() : this.localizedDescription}\n          </div>\n        ) : null}\n        {$slots.extra ? (\n          <div class={`${mergedClsPrefix}-empty__extra`}>{$slots.extra()}</div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","export default {\n  height: 'calc(var(--n-option-height) * 7.6)',\n  paddingTiny: '4px 0',\n  paddingSmall: '4px 0',\n  paddingMedium: '4px 0',\n  paddingLarge: '4px 0',\n  paddingHuge: '4px 0',\n  optionPaddingTiny: '0 12px',\n  optionPaddingSmall: '0 12px',\n  optionPaddingMedium: '0 12px',\n  optionPaddingLarge: '0 12px',\n  optionPaddingHuge: '0 12px',\n  loadingSize: '18px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../../_mixins'\nimport type { ThemeCommonVars } from '../../../_styles/common'\nimport type { EmptyTheme } from '../../../empty/styles'\nimport type { ScrollbarTheme } from '../../scrollbar/styles'\nimport { createTheme } from '../../../_mixins'\nimport { commonLight } from '../../../_styles/common'\nimport { emptyLight } from '../../../empty/styles'\nimport { scrollbarLight } from '../../scrollbar/styles'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    popoverColor,\n    textColor3,\n    dividerColor,\n    textColor2,\n    primaryColorPressed,\n    textColorDisabled,\n    primaryColor,\n    opacityDisabled,\n    hoverColor,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    fontSizeHuge,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    heightHuge\n  } = vars\n  return {\n    ...commonVariables,\n    optionFontSizeTiny: fontSizeTiny,\n    optionFontSizeSmall: fontSizeSmall,\n    optionFontSizeMedium: fontSizeMedium,\n    optionFontSizeLarge: fontSizeLarge,\n    optionFontSizeHuge: fontSizeHuge,\n    optionHeightTiny: heightTiny,\n    optionHeightSmall: heightSmall,\n    optionHeightMedium: heightMedium,\n    optionHeightLarge: heightLarge,\n    optionHeightHuge: heightHuge,\n    borderRadius,\n    color: popoverColor,\n    groupHeaderTextColor: textColor3,\n    actionDividerColor: dividerColor,\n    optionTextColor: textColor2,\n    optionTextColorPressed: primaryColorPressed,\n    optionTextColorDisabled: textColorDisabled,\n    optionTextColorActive: primaryColor,\n    optionOpacityDisabled: opacityDisabled,\n    optionCheckColor: primaryColor,\n    optionColorPending: hoverColor,\n    optionColorActive: 'rgba(0, 0, 0, 0)',\n    optionColorActivePending: hoverColor,\n    actionTextColor: textColor2,\n    loadingColor: primaryColor\n  }\n}\n\nexport interface InternalSelectMenuThemeVars extends ReturnType<typeof self> {}\n\nconst internalSelectMenuLight: InternalSelectMenuTheme = createTheme({\n  name: 'InternalSelectMenu',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight,\n    Empty: emptyLight\n  },\n  self\n})\n\nexport interface InternalSelectMenuTheme extends Theme<\n  'InternalSelectMenu',\n  InternalSelectMenuThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n    Empty: EmptyTheme\n  }\n> {}\n\nexport interface InternalSelectMenuThemeOverrides extends ExtractThemeOverrides<InternalSelectMenuTheme> {}\n\nexport default internalSelectMenuLight\n","import type { InternalSelectMenuTheme } from './light'\nimport { commonDark } from '../../../_styles/common'\nimport { emptyDark } from '../../../empty/styles'\nimport { scrollbarDark } from '../../scrollbar/styles'\nimport { self } from './light'\n\nconst internalSelectMenuDark: InternalSelectMenuTheme = {\n  name: 'InternalSelectMenu',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark,\n    Empty: emptyDark\n  },\n  self\n}\n\nexport default internalSelectMenuDark\n","import { cB, cE, cM } from '../../../../_utils/cssr'\n\nexport default cB('base-select-menu', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('base-select-option', [\n      cE('check', `\n        right: unset;\n        left: calc(var(--n-option-padding-right) - 4px);\n      `),\n      cM('show-checkmark', `\n        padding-left: calc(var(--n-option-padding-right) + 20px);\n        padding-right: var(--n-option-padding-left);\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const internalSelectMenuRtl: RtlItem = {\n  name: 'InternalSelectMenu',\n  style: rtlStyle\n}\n","import type { TreeNode } from 'treemate'\nimport type { PropType, Ref } from 'vue'\nimport type { SelectGroupOption } from '../../../select/src/interface'\nimport type { RenderLabelImpl, RenderOptionImpl } from './interface'\nimport { defineComponent, h, inject } from 'vue'\nimport { render } from '../../../_utils'\nimport { internalSelectionMenuInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NBaseSelectGroupHeader',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object as PropType<TreeNode<SelectGroupOption>>,\n      required: true\n    }\n  },\n  setup() {\n    const { renderLabelRef, renderOptionRef, labelFieldRef, nodePropsRef }\n      = inject(internalSelectionMenuInjectionKey)!\n    return {\n      labelField: labelFieldRef,\n      nodeProps: nodePropsRef,\n      renderLabel: renderLabelRef as Ref<RenderLabelImpl | undefined>,\n      renderOption: renderOptionRef as Ref<RenderOptionImpl | undefined>\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      renderLabel,\n      renderOption,\n      nodeProps,\n      tmNode: { rawNode }\n    } = this\n    const attrs = nodeProps?.(rawNode)\n    const children = renderLabel\n      ? renderLabel(rawNode, false)\n      : render(rawNode[this.labelField], rawNode, false)\n    const node = (\n      <div\n        {...attrs}\n        class={[`${clsPrefix}-base-select-group-header`, attrs?.class]}\n      >\n        {children}\n      </div>\n    )\n    return rawNode.render\n      ? rawNode.render({ node, option: rawNode })\n      : renderOption\n        ? renderOption({ node, option: rawNode, selected: false })\n        : node\n  }\n})\n","import type { TreeNode } from 'treemate'\nimport type { PropType, Ref, VNode } from 'vue'\nimport type { SelectOption } from '../../../select/src/interface'\nimport type { RenderLabelImpl, RenderOptionImpl } from './interface'\nimport { useMemo } from 'vooks'\nimport { defineComponent, h, inject, Transition } from 'vue'\nimport { mergeEventHandlers, render } from '../../../_utils'\nimport { NBaseIcon } from '../../icon'\nimport { CheckmarkIcon } from '../../icons'\nimport { internalSelectionMenuInjectionKey } from './interface'\n\nfunction renderCheckMark(show: boolean, clsPrefix: string): VNode {\n  return (\n    <Transition name=\"fade-in-scale-up-transition\">\n      {{\n        default: () =>\n          show ? (\n            <NBaseIcon\n              clsPrefix={clsPrefix}\n              class={`${clsPrefix}-base-select-option__check`}\n            >\n              {{\n                default: () => h(CheckmarkIcon)\n              }}\n            </NBaseIcon>\n          ) : null\n      }}\n    </Transition>\n  )\n}\n\nexport default defineComponent({\n  name: 'NBaseSelectOption',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object as PropType<TreeNode<SelectOption>>,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      valueRef,\n      pendingTmNodeRef,\n      multipleRef,\n      valueSetRef,\n      renderLabelRef,\n      renderOptionRef,\n      labelFieldRef,\n      valueFieldRef,\n      showCheckmarkRef,\n      nodePropsRef,\n      handleOptionClick,\n      handleOptionMouseEnter\n    } = inject(internalSelectionMenuInjectionKey)!\n    const isPendingRef = useMemo(() => {\n      const { value: pendingTmNode } = pendingTmNodeRef\n      if (!pendingTmNode)\n        return false\n      return props.tmNode.key === pendingTmNode.key\n    })\n    function handleClick(e: MouseEvent): void {\n      const { tmNode } = props\n      if (tmNode.disabled)\n        return\n      handleOptionClick(e, tmNode)\n    }\n    function handleMouseEnter(e: MouseEvent): void {\n      const { tmNode } = props\n      if (tmNode.disabled)\n        return\n      handleOptionMouseEnter(e, tmNode)\n    }\n    function handleMouseMove(e: MouseEvent): void {\n      const { tmNode } = props\n      const { value: isPending } = isPendingRef\n      if (tmNode.disabled || isPending)\n        return\n      handleOptionMouseEnter(e, tmNode)\n    }\n    return {\n      multiple: multipleRef,\n      isGrouped: useMemo(() => {\n        const { tmNode } = props\n        const { parent } = tmNode\n        return parent && parent.rawNode.type === 'group'\n      }),\n      showCheckmark: showCheckmarkRef,\n      nodeProps: nodePropsRef,\n      isPending: isPendingRef,\n      isSelected: useMemo(() => {\n        const { value } = valueRef\n        const { value: multiple } = multipleRef\n        if (value === null)\n          return false\n        const optionValue = props.tmNode.rawNode[\n          valueFieldRef.value\n        ] as NonNullable<SelectOption['value']>\n        if (multiple) {\n          const { value: valueSet } = valueSetRef\n          return valueSet.has(optionValue)\n        }\n        else {\n          return value === optionValue\n        }\n      }),\n      labelField: labelFieldRef,\n      renderLabel: renderLabelRef as Ref<RenderLabelImpl | undefined>,\n      renderOption: renderOptionRef as Ref<RenderOptionImpl | undefined>,\n      handleMouseMove,\n      handleMouseEnter,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      tmNode: { rawNode },\n      isSelected,\n      isPending,\n      isGrouped,\n      showCheckmark,\n      nodeProps,\n      renderOption,\n      renderLabel,\n      handleClick,\n      handleMouseEnter,\n      handleMouseMove\n    } = this\n    const checkmark = renderCheckMark(isSelected, clsPrefix)\n    const children = renderLabel\n      ? [renderLabel(rawNode, isSelected), showCheckmark && checkmark]\n      : [\n          render(\n            rawNode[this.labelField] as SelectOption['label'],\n            rawNode,\n            isSelected\n          ),\n          showCheckmark && checkmark\n        ]\n    const attrs = nodeProps?.(rawNode)\n    const node = (\n      <div\n        {...attrs}\n        class={[\n          `${clsPrefix}-base-select-option`,\n          rawNode.class,\n          attrs?.class,\n          {\n            [`${clsPrefix}-base-select-option--disabled`]: rawNode.disabled,\n            [`${clsPrefix}-base-select-option--selected`]: isSelected,\n            [`${clsPrefix}-base-select-option--grouped`]: isGrouped,\n            [`${clsPrefix}-base-select-option--pending`]: isPending,\n            [`${clsPrefix}-base-select-option--show-checkmark`]: showCheckmark\n          }\n        ]}\n        style={[attrs?.style || '', rawNode.style || '']}\n        onClick={mergeEventHandlers([handleClick, attrs?.onClick])}\n        onMouseenter={mergeEventHandlers([\n          handleMouseEnter,\n          attrs?.onMouseenter\n        ])}\n        onMousemove={mergeEventHandlers([handleMouseMove, attrs?.onMousemove])}\n      >\n        <div class={`${clsPrefix}-base-select-option__content`}>{children}</div>\n      </div>\n    )\n    return rawNode.render\n      ? rawNode.render({ node, option: rawNode, selected: isSelected })\n      : renderOption\n        ? renderOption({ node, option: rawNode, selected: isSelected })\n        : node\n  }\n})\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst {\n  cubicBezierEaseIn,\n  cubicBezierEaseOut\n} = commonVariables\n\ninterface FadeInScaleUpTransitionOptions {\n  transformOrigin?: string\n  duration?: string\n  enterScale?: string\n  originalTransform?: string\n  originalTransition?: string\n}\n\nexport function fadeInScaleUpTransition({\n  transformOrigin = 'inherit',\n  duration = '.2s',\n  enterScale = '.9',\n  originalTransform = '',\n  originalTransition = ''\n}: FadeInScaleUpTransitionOptions = {}): CNode[] {\n  return [\n    c('&.fade-in-scale-up-transition-leave-active', {\n      transformOrigin,\n      transition: `opacity ${duration} ${cubicBezierEaseIn}, transform ${duration} ${cubicBezierEaseIn} ${\n        originalTransition && `,${originalTransition}`\n      }`\n    }),\n    c('&.fade-in-scale-up-transition-enter-active', {\n      transformOrigin,\n      transition: `opacity ${duration} ${cubicBezierEaseOut}, transform ${duration} ${cubicBezierEaseOut} ${\n        originalTransition && `,${originalTransition}`\n      }`\n    }),\n    c('&.fade-in-scale-up-transition-enter-from, &.fade-in-scale-up-transition-leave-to', {\n      opacity: 0,\n      transform: `${originalTransform} scale(${enterScale})`\n    }),\n    c('&.fade-in-scale-up-transition-leave-from, &.fade-in-scale-up-transition-enter-to', {\n      opacity: 1,\n      transform: `${originalTransform} scale(1)`\n    })\n  ]\n}\n","import { fadeInScaleUpTransition } from '../../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../../_utils/cssr'\n\n// --n-loading-color\n// --n-loading-size\n// --n-option-padding-right\nexport default cB('base-select-menu', `\n  line-height: 1.5;\n  outline: none;\n  z-index: 0;\n  position: relative;\n  border-radius: var(--n-border-radius);\n  transition:\n    background-color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier);\n  background-color: var(--n-color);\n`, [\n  cB('scrollbar', `\n    max-height: var(--n-height);\n  `),\n  cB('virtual-list', `\n    max-height: var(--n-height);\n  `),\n  cB('base-select-option', `\n    min-height: var(--n-option-height);\n    font-size: var(--n-option-font-size);\n    display: flex;\n    align-items: center;\n  `, [\n    cE('content', `\n      z-index: 1;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n      overflow: hidden;\n    `)\n  ]),\n  cB('base-select-group-header', `\n    min-height: var(--n-option-height);\n    font-size: .93em;\n    display: flex;\n    align-items: center;\n  `),\n  cB('base-select-menu-option-wrapper', `\n    position: relative;\n    width: 100%;\n  `),\n  cE('loading, empty', `\n    display: flex;\n    padding: 12px 32px;\n    flex: 1;\n    justify-content: center;\n  `),\n  cE('loading', `\n    color: var(--n-loading-color);\n    font-size: var(--n-loading-size);\n  `),\n  cE('header', `\n    padding: 8px var(--n-option-padding-left);\n    font-size: var(--n-option-font-size);\n    transition: \n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n    border-bottom: 1px solid var(--n-action-divider-color);\n    color: var(--n-action-text-color);\n  `),\n  cE('action', `\n    padding: 8px var(--n-option-padding-left);\n    font-size: var(--n-option-font-size);\n    transition: \n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n    border-top: 1px solid var(--n-action-divider-color);\n    color: var(--n-action-text-color);\n  `),\n  cB('base-select-group-header', `\n    position: relative;\n    cursor: default;\n    padding: var(--n-option-padding);\n    color: var(--n-group-header-text-color);\n  `),\n  cB('base-select-option', `\n    cursor: pointer;\n    position: relative;\n    padding: var(--n-option-padding);\n    transition:\n      color .3s var(--n-bezier),\n      opacity .3s var(--n-bezier);\n    box-sizing: border-box;\n    color: var(--n-option-text-color);\n    opacity: 1;\n  `, [\n    cM('show-checkmark', `\n      padding-right: calc(var(--n-option-padding-right) + 20px);\n    `),\n    c('&::before', `\n      content: \"\";\n      position: absolute;\n      left: 4px;\n      right: 4px;\n      top: 0;\n      bottom: 0;\n      border-radius: var(--n-border-radius);\n      transition: background-color .3s var(--n-bezier);\n    `),\n    c('&:active', `\n      color: var(--n-option-text-color-pressed);\n    `),\n    cM('grouped', `\n      padding-left: calc(var(--n-option-padding-left) * 1.5);\n    `),\n    cM('pending', [\n      c('&::before', `\n        background-color: var(--n-option-color-pending);\n      `)\n    ]),\n    cM('selected', `\n      color: var(--n-option-text-color-active);\n    `, [\n      c('&::before', `\n        background-color: var(--n-option-color-active);\n      `),\n      cM('pending', [\n        c('&::before', `\n          background-color: var(--n-option-color-active-pending);\n        `)\n      ])\n    ]),\n    cM('disabled', `\n      cursor: not-allowed;\n    `, [\n      cNotM('selected', `\n        color: var(--n-option-text-color-disabled);\n      `),\n      cM('selected', `\n        opacity: var(--n-option-opacity-disabled);\n      `)\n    ]),\n    cE('check', `\n      font-size: 16px;\n      position: absolute;\n      right: calc(var(--n-option-padding-right) - 4px);\n      top: calc(50% - 7px);\n      color: var(--n-option-check-color);\n      transition: color .3s var(--n-bezier);\n    `, [\n      fadeInScaleUpTransition({\n        enterScale: '0.5'\n      })\n    ])\n  ])\n])\n","import type { TreeNode } from 'treemate'\nimport type { CSSProperties, PropType, Ref, WatchStopHandle } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ThemeProps } from '../../../_mixins'\nimport type {\n  SelectGroupOption,\n  SelectIgnoredOption,\n  SelectOption,\n  SelectTreeMate,\n  Value\n} from '../../../select/src/interface'\nimport type { ScrollbarInst } from '../../scrollbar'\nimport type { ScrollbarProps } from '../../scrollbar/src/Scrollbar'\nimport type {\n  InternalSelectMenuTheme,\n  InternalSelectMenuThemeOverrides\n} from '../styles'\nimport type {\n  InternalExposedProps,\n  NodeProps,\n  RenderLabel,\n  RenderOption,\n  Size\n} from './interface'\nimport { depx, getPadding, happensIn } from 'seemly'\nimport { createIndexGetter } from 'treemate'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  watch\n} from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../../_mixins'\nimport { resolveSlot, resolveWrappedSlot, useOnResize } from '../../../_utils'\nimport { createKey } from '../../../_utils/cssr'\nimport { NEmpty } from '../../../empty'\nimport NFocusDetector from '../../focus-detector'\nimport NInternalLoading from '../../loading'\nimport { NScrollbar } from '../../scrollbar'\nimport { internalSelectMenuLight } from '../styles'\nimport {\n  internalSelectionMenuBodyInjectionKey,\n  internalSelectionMenuInjectionKey\n} from './interface'\nimport NSelectGroupHeader from './SelectGroupHeader'\nimport NSelectOption from './SelectOption'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'InternalSelectMenu',\n  props: {\n    ...(useTheme.props as ThemeProps<\n      InternalSelectMenuTheme,\n      InternalSelectMenuThemeOverrides\n    >),\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    scrollable: {\n      type: Boolean,\n      default: true\n    },\n    treeMate: {\n      type: Object as PropType<SelectTreeMate>,\n      required: true\n    },\n    multiple: Boolean,\n    size: {\n      type: String as PropType<Size>,\n      default: 'medium'\n    },\n    value: {\n      type: [String, Number, Array] as PropType<Value | null>,\n      default: null\n    },\n    autoPending: Boolean,\n    virtualScroll: {\n      type: Boolean,\n      default: true\n    },\n    // show is used to toggle pending state initialization\n    show: {\n      type: Boolean,\n      default: true\n    },\n    labelField: {\n      type: String,\n      default: 'label'\n    },\n    valueField: {\n      type: String,\n      default: 'value'\n    },\n    loading: Boolean,\n    focusable: Boolean,\n    renderLabel: Function as PropType<RenderLabel>,\n    renderOption: Function as PropType<RenderOption>,\n    nodeProps: Function as PropType<NodeProps>,\n    showCheckmark: { type: Boolean, default: true },\n    onMousedown: Function as PropType<(e: MouseEvent) => void>,\n    onScroll: Function as PropType<(e: Event) => void>,\n    onFocus: Function as PropType<(e: FocusEvent) => void>,\n    onBlur: Function as PropType<(e: FocusEvent) => void>,\n    onKeyup: Function as PropType<(e: KeyboardEvent) => void>,\n    onKeydown: Function as PropType<(e: KeyboardEvent) => void>,\n    onTabOut: Function as PropType<() => void>,\n    onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n    onMouseleave: Function as PropType<(e: MouseEvent) => void>,\n    onResize: Function as PropType<() => void>,\n    resetMenuOnOptionsChange: {\n      type: Boolean,\n      default: true\n    },\n    inlineThemeDisabled: Boolean,\n    scrollbarProps: Object as PropType<ScrollbarProps>,\n    // deprecated\n    onToggle: Function as PropType<(tmNode: TreeNode<SelectOption>) => void>\n  },\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef, mergedComponentPropsRef }\n      = useConfig(props)\n    const rtlEnabledRef = useRtl(\n      'InternalSelectMenu',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const themeRef = useTheme(\n      'InternalSelectMenu',\n      '-internal-select-menu',\n      style,\n      internalSelectMenuLight,\n      props,\n      toRef(props, 'clsPrefix')\n    )\n    const selfRef = ref<HTMLElement | null>(null)\n    const virtualListRef = ref<VirtualListInst | null>(null)\n    const scrollbarRef = ref<ScrollbarInst | null>(null)\n    const flattenedNodesRef = computed(() => props.treeMate.getFlattenedNodes())\n    const fIndexGetterRef = computed(() =>\n      createIndexGetter(flattenedNodesRef.value)\n    )\n    const pendingNodeRef = ref<TreeNode<SelectOption> | null>(null)\n    function initPendingNode(): void {\n      const { treeMate } = props\n      let defaultPendingNode: TreeNode<SelectOption> | null = null\n      const { value } = props\n      if (value === null) {\n        defaultPendingNode = treeMate.getFirstAvailableNode()\n      }\n      else {\n        if (props.multiple) {\n          defaultPendingNode = treeMate.getNode(\n            ((value as Array<string | number> | null) || [])[\n              ((value as Array<string | number> | null) || []).length - 1\n            ]\n          )\n        }\n        else {\n          defaultPendingNode = treeMate.getNode(value as string | number)\n        }\n        if (!defaultPendingNode || defaultPendingNode.disabled) {\n          defaultPendingNode = treeMate.getFirstAvailableNode()\n        }\n      }\n      if (defaultPendingNode) {\n        setPendingTmNode(defaultPendingNode)\n      }\n      else {\n        setPendingTmNode(null)\n      }\n    }\n    function clearPendingNodeIfInvalid(): void {\n      const { value: pendingNode } = pendingNodeRef\n      if (pendingNode && !props.treeMate.getNode(pendingNode.key)) {\n        pendingNodeRef.value = null\n      }\n    }\n\n    let initPendingNodeWatchStopHandle: WatchStopHandle | undefined\n    watch(\n      () => props.show,\n      (show) => {\n        if (show) {\n          initPendingNodeWatchStopHandle = watch(\n            () => props.treeMate,\n            () => {\n              if (props.resetMenuOnOptionsChange) {\n                if (props.autoPending) {\n                  initPendingNode()\n                }\n                else {\n                  clearPendingNodeIfInvalid()\n                }\n                void nextTick(scrollToPendingNode)\n              }\n              else {\n                clearPendingNodeIfInvalid()\n              }\n            },\n            {\n              immediate: true\n            }\n          )\n        }\n        else {\n          initPendingNodeWatchStopHandle?.()\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n    onBeforeUnmount(() => {\n      initPendingNodeWatchStopHandle?.()\n    })\n\n    const itemSizeRef = computed(() => {\n      return depx(themeRef.value.self[createKey('optionHeight', props.size)])\n    })\n    const paddingRef = computed(() => {\n      return getPadding(themeRef.value.self[createKey('padding', props.size)])\n    })\n    const valueSetRef = computed(() => {\n      if (props.multiple && Array.isArray(props.value)) {\n        return new Set(props.value)\n      }\n      return new Set<string | number>()\n    })\n    const emptyRef = computed(() => {\n      const tmNodes = flattenedNodesRef.value\n      return tmNodes && tmNodes.length === 0\n    })\n    const mergedRenderEmptyRef = computed(() => {\n      return mergedComponentPropsRef?.value?.Select?.renderEmpty\n    })\n    function doToggle(tmNode: TreeNode<SelectOption>): void {\n      const { onToggle } = props\n      if (onToggle)\n        onToggle(tmNode)\n    }\n    function doScroll(e: Event): void {\n      const { onScroll } = props\n      if (onScroll)\n        onScroll(e)\n    }\n    // required, scroller sync need to be triggered manually\n    function handleVirtualListScroll(e: Event): void {\n      scrollbarRef.value?.sync()\n      doScroll(e)\n    }\n    function handleVirtualListResize(): void {\n      scrollbarRef.value?.sync()\n    }\n    function getPendingTmNode(): TreeNode<SelectOption> | null {\n      const { value: pendingTmNode } = pendingNodeRef\n      if (pendingTmNode)\n        return pendingTmNode\n      return null\n    }\n    function handleOptionMouseEnter(\n      e: MouseEvent,\n      tmNode: TreeNode<SelectOption>\n    ): void {\n      if (tmNode.disabled)\n        return\n      setPendingTmNode(tmNode, false)\n    }\n    function handleOptionClick(\n      e: MouseEvent,\n      tmNode: TreeNode<SelectOption>\n    ): void {\n      if (tmNode.disabled)\n        return\n      doToggle(tmNode)\n    }\n    // keyboard related methods\n    function handleKeyUp(e: KeyboardEvent): void {\n      if (happensIn(e, 'action'))\n        return\n      props.onKeyup?.(e)\n    }\n    function handleKeyDown(e: KeyboardEvent): void {\n      if (happensIn(e, 'action'))\n        return\n      props.onKeydown?.(e)\n    }\n    function handleMouseDown(e: MouseEvent): void {\n      props.onMousedown?.(e)\n      if (props.focusable)\n        return\n      e.preventDefault()\n    }\n    function next(): void {\n      const { value: pendingTmNode } = pendingNodeRef\n      if (pendingTmNode) {\n        setPendingTmNode(pendingTmNode.getNext({ loop: true }), true)\n      }\n    }\n    function prev(): void {\n      const { value: pendingTmNode } = pendingNodeRef\n      if (pendingTmNode) {\n        setPendingTmNode(pendingTmNode.getPrev({ loop: true }), true)\n      }\n    }\n    function setPendingTmNode(\n      tmNode: TreeNode<SelectOption> | null,\n      doScroll = false\n    ): void {\n      pendingNodeRef.value = tmNode\n      if (doScroll)\n        scrollToPendingNode()\n    }\n    function scrollToPendingNode(): void {\n      const tmNode = pendingNodeRef.value\n      if (!tmNode)\n        return\n      const fIndex = fIndexGetterRef.value(tmNode.key)\n      if (fIndex === null)\n        return\n      if (props.virtualScroll) {\n        virtualListRef.value?.scrollTo({ index: fIndex })\n      }\n      else {\n        scrollbarRef.value?.scrollTo({\n          index: fIndex,\n          elSize: itemSizeRef.value\n        })\n      }\n    }\n    function handleFocusin(e: FocusEvent): void {\n      if (selfRef.value?.contains(e.target as Node | null)) {\n        props.onFocus?.(e)\n      }\n    }\n    function handleFocusout(e: FocusEvent): void {\n      if (!selfRef.value?.contains(e.relatedTarget as Node | null)) {\n        props.onBlur?.(e)\n      }\n    }\n    provide(internalSelectionMenuInjectionKey, {\n      handleOptionMouseEnter,\n      handleOptionClick,\n      valueSetRef,\n      pendingTmNodeRef: pendingNodeRef,\n      nodePropsRef: toRef(props, 'nodeProps'),\n      showCheckmarkRef: toRef(props, 'showCheckmark'),\n      multipleRef: toRef(props, 'multiple'),\n      valueRef: toRef(props, 'value'),\n      renderLabelRef: toRef(props, 'renderLabel'),\n      renderOptionRef: toRef(props, 'renderOption'),\n      labelFieldRef: toRef(props, 'labelField'),\n      valueFieldRef: toRef(props, 'valueField')\n    })\n    provide(internalSelectionMenuBodyInjectionKey, selfRef)\n    onMounted(() => {\n      const { value } = scrollbarRef\n      if (value)\n        value.sync()\n    })\n    const cssVarsRef = computed(() => {\n      const { size } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          height,\n          borderRadius,\n          color,\n          groupHeaderTextColor,\n          actionDividerColor,\n          optionTextColorPressed,\n          optionTextColor,\n          optionTextColorDisabled,\n          optionTextColorActive,\n          optionOpacityDisabled,\n          optionCheckColor,\n          actionTextColor,\n          optionColorPending,\n          optionColorActive,\n          loadingColor,\n          loadingSize,\n          optionColorActivePending,\n          [createKey('optionFontSize', size)]: fontSize,\n          [createKey('optionHeight', size)]: optionHeight,\n          [createKey('optionPadding', size)]: optionPadding\n        }\n      } = themeRef.value\n      return {\n        '--n-height': height,\n        '--n-action-divider-color': actionDividerColor,\n        '--n-action-text-color': actionTextColor,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-color': color,\n        '--n-option-font-size': fontSize,\n        '--n-group-header-text-color': groupHeaderTextColor,\n        '--n-option-check-color': optionCheckColor,\n        '--n-option-color-pending': optionColorPending,\n        '--n-option-color-active': optionColorActive,\n        '--n-option-color-active-pending': optionColorActivePending,\n        '--n-option-height': optionHeight,\n        '--n-option-opacity-disabled': optionOpacityDisabled,\n        '--n-option-text-color': optionTextColor,\n        '--n-option-text-color-active': optionTextColorActive,\n        '--n-option-text-color-disabled': optionTextColorDisabled,\n        '--n-option-text-color-pressed': optionTextColorPressed,\n        '--n-option-padding': optionPadding,\n        '--n-option-padding-left': getPadding(optionPadding, 'left'),\n        '--n-option-padding-right': getPadding(optionPadding, 'right'),\n        '--n-loading-color': loadingColor,\n        '--n-loading-size': loadingSize\n      }\n    })\n    const { inlineThemeDisabled } = props\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'internal-select-menu',\n          computed(() => props.size[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    const exposedProps: InternalExposedProps = {\n      selfRef,\n      next,\n      prev,\n      getPendingTmNode\n    }\n    useOnResize(selfRef, props.onResize)\n    return {\n      mergedTheme: themeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      // reduce dts: string ref only, type unused in render\n      virtualListRef: virtualListRef as unknown,\n      scrollbarRef: scrollbarRef as unknown,\n      itemSize: itemSizeRef,\n      padding: paddingRef,\n      flattenedNodes: flattenedNodesRef,\n      empty: emptyRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      virtualListContainer() {\n        const { value } = virtualListRef\n        return value?.listElRef\n      },\n      virtualListContent() {\n        const { value } = virtualListRef\n        return value?.itemsElRef\n      },\n      doScroll,\n      handleFocusin,\n      handleFocusout,\n      handleKeyUp,\n      handleKeyDown,\n      handleMouseDown,\n      handleVirtualListResize,\n      handleVirtualListScroll,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      ...exposedProps\n    }\n  },\n  render() {\n    const {\n      $slots,\n      virtualScroll,\n      clsPrefix,\n      mergedTheme,\n      themeClass,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={this.focusable ? 0 : -1}\n        class={[\n          `${clsPrefix}-base-select-menu`,\n          `${clsPrefix}-base-select-menu--${this.size}-size`,\n          this.rtlEnabled && `${clsPrefix}-base-select-menu--rtl`,\n          themeClass,\n          this.multiple && `${clsPrefix}-base-select-menu--multiple`\n        ]}\n        style={this.cssVars as CSSProperties}\n        onFocusin={this.handleFocusin}\n        onFocusout={this.handleFocusout}\n        onKeyup={this.handleKeyUp}\n        onKeydown={this.handleKeyDown}\n        onMousedown={this.handleMouseDown}\n        onMouseenter={this.onMouseenter}\n        onMouseleave={this.onMouseleave}\n      >\n        {resolveWrappedSlot(\n          $slots.header,\n          children =>\n            children && (\n              <div\n                class={`${clsPrefix}-base-select-menu__header`}\n                data-header\n                key=\"header\"\n              >\n                {children}\n              </div>\n            )\n        )}\n        {this.loading ? (\n          <div class={`${clsPrefix}-base-select-menu__loading`}>\n            <NInternalLoading clsPrefix={clsPrefix} strokeWidth={20} />\n          </div>\n        ) : !this.empty ? (\n          <NScrollbar\n            ref=\"scrollbarRef\"\n            theme={mergedTheme.peers.Scrollbar}\n            themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n            scrollable={this.scrollable}\n            container={virtualScroll ? this.virtualListContainer : undefined}\n            content={virtualScroll ? this.virtualListContent : undefined}\n            onScroll={virtualScroll ? undefined : this.doScroll}\n            {...this.scrollbarProps}\n          >\n            {{\n              default: () => {\n                return virtualScroll ? (\n                  <VirtualList\n                    ref=\"virtualListRef\"\n                    class={`${clsPrefix}-virtual-list`}\n                    items={this.flattenedNodes}\n                    itemSize={this.itemSize}\n                    showScrollbar={false}\n                    paddingTop={this.padding.top}\n                    paddingBottom={this.padding.bottom}\n                    onResize={this.handleVirtualListResize}\n                    onScroll={this.handleVirtualListScroll}\n                    itemResizable\n                  >\n                    {{\n                      default: ({\n                        item: tmNode\n                      }: {\n                        item: TreeNode<\n                          SelectGroupOption | SelectOption | SelectIgnoredOption\n                        >\n                      }) => {\n                        return tmNode.isGroup ? (\n                          <NSelectGroupHeader\n                            key={tmNode.key}\n                            clsPrefix={clsPrefix}\n                            tmNode={\n                              tmNode as unknown as TreeNode<SelectGroupOption>\n                            }\n                          />\n                        ) : tmNode.ignored ? null : (\n                          <NSelectOption\n                            clsPrefix={clsPrefix}\n                            key={tmNode.key}\n                            tmNode={tmNode as unknown as TreeNode<SelectOption>}\n                          />\n                        )\n                      }\n                    }}\n                  </VirtualList>\n                ) : (\n                  <div\n                    class={`${clsPrefix}-base-select-menu-option-wrapper`}\n                    style={{\n                      paddingTop: this.padding.top,\n                      paddingBottom: this.padding.bottom\n                    }}\n                  >\n                    {this.flattenedNodes.map(tmNode =>\n                      tmNode.isGroup ? (\n                        <NSelectGroupHeader\n                          key={tmNode.key}\n                          clsPrefix={clsPrefix}\n                          tmNode={\n                            tmNode as unknown as TreeNode<SelectGroupOption>\n                          }\n                        />\n                      ) : (\n                        <NSelectOption\n                          clsPrefix={clsPrefix}\n                          key={tmNode.key}\n                          tmNode={tmNode as unknown as TreeNode<SelectOption>}\n                        />\n                      )\n                    )}\n                  </div>\n                )\n              }\n            }}\n          </NScrollbar>\n        ) : (\n          <div class={`${clsPrefix}-base-select-menu__empty`} data-empty>\n            {resolveSlot($slots.empty, () => {\n              return [\n                this.mergedRenderEmpty?.() || (\n                  <NEmpty\n                    theme={mergedTheme.peers.Empty}\n                    themeOverrides={mergedTheme.peerOverrides.Empty}\n                    size={this.size}\n                  />\n                )\n              ]\n            })}\n          </div>\n        )}\n        {resolveWrappedSlot(\n          $slots.action,\n          children =>\n            children && [\n              <div\n                class={`${clsPrefix}-base-select-menu__action`}\n                data-action\n                key=\"action\"\n              >\n                {children}\n              </div>,\n              <NFocusDetector onFocus={this.onTabOut} key=\"focus-detector\" />\n            ]\n        )}\n      </div>\n    )\n  }\n})\n","export default {\n  space: '6px',\n  spaceArrow: '10px',\n  arrowOffset: '10px',\n  arrowOffsetVertical: '10px',\n  arrowHeight: '6px',\n  padding: '8px 14px'\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    boxShadow2,\n    popoverColor,\n    textColor2,\n    borderRadius,\n    fontSize,\n    dividerColor\n  } = vars\n  return {\n    ...commonVariables,\n    fontSize,\n    borderRadius,\n    color: popoverColor,\n    dividerColor,\n    textColor: textColor2,\n    boxShadow: boxShadow2\n  }\n}\n\nexport interface PopoverThemeVars extends ReturnType<typeof self> {}\n\nconst popoverLight: PopoverTheme = createTheme({\n  name: 'Popover',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface PopoverTheme extends Theme<\n  'Popover',\n  PopoverThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface PopoverThemeOverrides extends ExtractThemeOverrides<PopoverTheme> {}\n\nexport default popoverLight\n","import type { PopoverTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst popoverDark: PopoverTheme = {\n  name: 'Popover',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark\n  },\n  self\n}\n\nexport default popoverDark\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('popover', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { scrollbarRtl } from '../../_internal/scrollbar/styles/rtl'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const popoverRtl: RtlItem = {\n  name: 'Popover',\n  style: rtlStyle,\n  peers: [scrollbarRtl]\n}\n","import type { CNode } from 'css-render'\nimport type { FollowerPlacement } from 'vueuc'\nimport { map } from 'lodash-es'\nimport { c, cB, cCB, cE, cM, cNotM } from '../../../_utils/cssr'\n\nconst oppositePlacement = {\n  top: 'bottom',\n  bottom: 'top',\n  left: 'right',\n  right: 'left'\n}\n\nconst arrowSize = 'var(--n-arrow-height) * 1.414'\n\n// vars:\n// --n-bezier\n// --n-bezier-ease-in\n// --n-bezier-ease-out\n// --n-font-size\n// --n-text-color\n// --n-color\n// --n-border-radius\n// --n-arrow-height\n// --n-arrow-offset\n// --n-arrow-offset-vertical\n// --n-padding\n// --n-space\n// --n-space-arrow\n// --n-divider-color\nexport default c([\n  cB('popover', `\n    transition:\n      box-shadow .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n    position: relative;\n    font-size: var(--n-font-size);\n    color: var(--n-text-color);\n    box-shadow: var(--n-box-shadow);\n    word-break: break-word;\n  `, [\n    c('>', [\n      cB('scrollbar', `\n        height: inherit;\n        max-height: inherit;\n      `)\n    ]),\n    cNotM('raw', `\n      background-color: var(--n-color);\n      border-radius: var(--n-border-radius);\n    `, [\n      cNotM('scrollable', [\n        cNotM('show-header-or-footer', 'padding: var(--n-padding);')\n      ])\n    ]),\n    cE('header', `\n      padding: var(--n-padding);\n      border-bottom: 1px solid var(--n-divider-color);\n      transition: border-color .3s var(--n-bezier);\n    `),\n    cE('footer', `\n      padding: var(--n-padding);\n      border-top: 1px solid var(--n-divider-color);\n      transition: border-color .3s var(--n-bezier);\n    `),\n    cM('scrollable, show-header-or-footer', [\n      cE('content', `\n        padding: var(--n-padding);\n      `)\n    ])\n  ]),\n  cB('popover-shared', `\n    transform-origin: inherit;\n  `, [\n    cB('popover-arrow-wrapper', `\n      position: absolute;\n      overflow: hidden;\n      pointer-events: none;\n    `, [\n      cB('popover-arrow', `\n        transition: background-color .3s var(--n-bezier);\n        position: absolute;\n        display: block;\n        width: calc(${arrowSize});\n        height: calc(${arrowSize});\n        box-shadow: 0 0 8px 0 rgba(0, 0, 0, .12);\n        transform: rotate(45deg);\n        background-color: var(--n-color);\n        pointer-events: all;\n      `)\n    ]),\n    // body transition\n    c('&.popover-transition-enter-from, &.popover-transition-leave-to', `\n      opacity: 0;\n      transform: scale(.85);\n    `),\n    c('&.popover-transition-enter-to, &.popover-transition-leave-from', `\n      transform: scale(1);\n      opacity: 1;\n    `),\n    c('&.popover-transition-enter-active', `\n      transition:\n        box-shadow .3s var(--n-bezier),\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier),\n        opacity .15s var(--n-bezier-ease-out),\n        transform .15s var(--n-bezier-ease-out);\n    `),\n    c('&.popover-transition-leave-active', `\n      transition:\n        box-shadow .3s var(--n-bezier),\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier),\n        opacity .15s var(--n-bezier-ease-in),\n        transform .15s var(--n-bezier-ease-in);\n    `)\n  ]),\n  placementStyle('top-start', `\n    top: calc(${arrowSize} / -2);\n    left: calc(${getArrowOffset('top-start')} - var(--v-offset-left));\n  `),\n  placementStyle('top', `\n    top: calc(${arrowSize} / -2);\n    transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n    left: 50%;\n  `),\n  placementStyle('top-end', `\n    top: calc(${arrowSize} / -2);\n    right: calc(${getArrowOffset('top-end')} + var(--v-offset-left));\n  `),\n  placementStyle('bottom-start', `\n    bottom: calc(${arrowSize} / -2);\n    left: calc(${getArrowOffset('bottom-start')} - var(--v-offset-left));\n  `),\n  placementStyle('bottom', `\n    bottom: calc(${arrowSize} / -2);\n    transform: translateX(calc(${arrowSize} / -2)) rotate(45deg);\n    left: 50%;\n  `),\n  placementStyle('bottom-end', `\n    bottom: calc(${arrowSize} / -2);\n    right: calc(${getArrowOffset('bottom-end')} + var(--v-offset-left));\n  `),\n  placementStyle('left-start', `\n    left: calc(${arrowSize} / -2);\n    top: calc(${getArrowOffset('left-start')} - var(--v-offset-top));\n  `),\n  placementStyle('left', `\n    left: calc(${arrowSize} / -2);\n    transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n    top: 50%;\n  `),\n  placementStyle('left-end', `\n    left: calc(${arrowSize} / -2);\n    bottom: calc(${getArrowOffset('left-end')} + var(--v-offset-top));\n  `),\n  placementStyle('right-start', `\n    right: calc(${arrowSize} / -2);\n    top: calc(${getArrowOffset('right-start')} - var(--v-offset-top));\n  `),\n  placementStyle('right', `\n    right: calc(${arrowSize} / -2);\n    transform: translateY(calc(${arrowSize} / -2)) rotate(45deg);\n    top: 50%;\n  `),\n  placementStyle('right-end', `\n    right: calc(${arrowSize} / -2);\n    bottom: calc(${getArrowOffset('right-end')} + var(--v-offset-top));\n  `),\n  ...map(\n    {\n      top: ['right-start', 'left-start'],\n      right: ['top-end', 'bottom-end'],\n      bottom: ['right-end', 'left-end'],\n      left: ['top-start', 'bottom-start']\n    },\n    (placements, direction): CNode[] => {\n      const isVertical = ['right', 'left'].includes(direction)\n      const sizeType = isVertical ? 'width' : 'height'\n      return placements.map((placement) => {\n        const isReverse = placement.split('-')[1] === 'end'\n        const targetSize = `var(--v-target-${sizeType}, 0px)`\n        const centerOffset = `calc((${targetSize} - ${arrowSize}) / 2)`\n        const offset = getArrowOffset(placement as FollowerPlacement)\n        return c(`[v-placement=\"${placement}\"] >`, [\n          cB('popover-shared', [\n            cM('center-arrow', [\n              cB(\n                'popover-arrow',\n                `${direction}: calc(max(${centerOffset}, ${offset}) ${\n                  isReverse ? '+' : '-'\n                } var(--v-offset-${isVertical ? 'left' : 'top'}));`\n              )\n            ])\n          ])\n        ])\n      })\n    }\n  )\n])\n\nfunction getArrowOffset(placement: FollowerPlacement): string {\n  return ['top', 'bottom'].includes(placement.split('-')[0])\n    ? 'var(--n-arrow-offset)'\n    : 'var(--n-arrow-offset-vertical)'\n}\n\nfunction placementStyle(\n  placement: FollowerPlacement,\n  arrowStyleLiteral: string\n): CNode {\n  const position = placement.split('-')[0] as\n    | 'top'\n    | 'right'\n    | 'bottom'\n    | 'left'\n  const sizeStyle = ['top', 'bottom'].includes(position)\n    ? 'height: var(--n-space-arrow);'\n    : 'width: var(--n-space-arrow);'\n  return c(`[v-placement=\"${placement}\"] >`, [\n    cB('popover-shared', `\n      margin-${oppositePlacement[position]}: var(--n-space);\n    `, [\n      cM('show-arrow', `\n        margin-${oppositePlacement[position]}: var(--n-space-arrow);\n      `),\n      cM('overlap', `\n        margin: 0;\n      `),\n      cCB('popover-arrow-wrapper', `\n        right: 0;\n        left: 0;\n        top: 0;\n        bottom: 0;\n        ${position}: 100%;\n        ${oppositePlacement[position]}: auto;\n        ${sizeStyle}\n      `, [\n        cB('popover-arrow', arrowStyleLiteral)\n      ])\n    ])\n  ])\n}\n","import type {\n  CSSProperties,\n  DirectiveArguments,\n  PropType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { PopoverTheme, PopoverThemeOverrides } from '../styles'\nimport type { PopoverTrigger } from './interface'\nimport type { PopoverInjection } from './Popover'\nimport { getPreciseEventTarget } from 'seemly'\nimport { clickoutside, mousemoveoutside } from 'vdirs'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  inject,\n  mergeProps,\n  onBeforeUnmount,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  vShow,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VFocusTrap, VFollower } from 'vueuc'\nimport { NxScrollbar } from '../../_internal/scrollbar'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  formatLength,\n  isJsdom,\n  isSlotEmpty,\n  resolveWrappedSlot,\n  useAdjustedTo\n} from '../../_utils'\nimport { drawerBodyInjectionKey } from '../../drawer/src/interface'\nimport { modalBodyInjectionKey } from '../../modal/src/interface'\nimport { popoverLight } from '../styles'\nimport { popoverBodyInjectionKey } from './interface'\nimport style from './styles/index.cssr'\n\nexport const popoverBodyProps = {\n  ...(useTheme.props as ThemeProps<PopoverTheme, PopoverThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  show: Boolean,\n  trigger: String as PropType<PopoverTrigger>,\n  showArrow: Boolean,\n  delay: Number,\n  duration: Number,\n  raw: Boolean,\n  arrowPointToCenter: Boolean,\n  arrowClass: String,\n  arrowStyle: [String, Object] as PropType<string | CSSProperties>,\n  arrowWrapperClass: String,\n  arrowWrapperStyle: [String, Object] as PropType<string | CSSProperties>,\n  displayDirective: String as PropType<'if' | 'show'>,\n  x: Number,\n  y: Number,\n  flip: Boolean,\n  overlap: Boolean,\n  placement: String as PropType<FollowerPlacement>,\n  width: [Number, String] as PropType<number | 'trigger'>,\n  keepAliveOnHover: Boolean,\n  scrollable: Boolean,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<CSSProperties | string>,\n  headerClass: String,\n  headerStyle: [Object, String] as PropType<CSSProperties | string>,\n  footerClass: String,\n  footerStyle: [Object, String] as PropType<CSSProperties | string>,\n  // private\n  internalDeactivateImmediately: Boolean,\n  animated: Boolean,\n  onClickoutside: Function as PropType<(e: MouseEvent) => void>,\n  internalTrapFocus: Boolean,\n  internalOnAfterLeave: Function as PropType<() => void>,\n  // deprecated\n  minWidth: Number,\n  maxWidth: Number\n}\n\ninterface RenderArrowProps {\n  arrowClass: string | undefined\n  arrowStyle: string | CSSProperties | undefined\n  arrowWrapperClass: string | undefined\n  arrowWrapperStyle: string | CSSProperties | undefined\n  clsPrefix: string\n}\n\nexport function renderArrow({\n  arrowClass,\n  arrowStyle,\n  arrowWrapperClass,\n  arrowWrapperStyle,\n  clsPrefix\n}: RenderArrowProps): VNode | null {\n  return (\n    <div\n      key=\"__popover-arrow__\"\n      style={arrowWrapperStyle}\n      class={[`${clsPrefix}-popover-arrow-wrapper`, arrowWrapperClass]}\n    >\n      <div\n        class={[`${clsPrefix}-popover-arrow`, arrowClass]}\n        style={arrowStyle}\n      />\n    </div>\n  )\n}\n\nexport default defineComponent({\n  name: 'PopoverBody',\n  inheritAttrs: false,\n  props: popoverBodyProps,\n  setup(props, { slots, attrs }) {\n    const {\n      namespaceRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Popover',\n      '-popover',\n      style,\n      popoverLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const rtlEnabledRef = useRtl('Popover', mergedRtlRef, mergedClsPrefixRef)\n\n    const followerRef = ref<FollowerInst | null>(null)\n    const NPopover = inject<PopoverInjection>('NPopover') as PopoverInjection\n    const bodyRef = ref<HTMLElement | null>(null)\n    const followerEnabledRef = ref(props.show)\n    const displayedRef = ref(false)\n    watchEffect(() => {\n      const { show } = props\n      if (show && !isJsdom() && !props.internalDeactivateImmediately) {\n        displayedRef.value = true\n      }\n    })\n    const directivesRef = computed<DirectiveArguments>(() => {\n      const { trigger, onClickoutside } = props\n      const directives: DirectiveArguments = []\n      const {\n        positionManuallyRef: { value: positionManually }\n      } = NPopover\n      if (!positionManually) {\n        if (trigger === 'click' && !onClickoutside) {\n          directives.push([\n            clickoutside,\n            handleClickOutside,\n            undefined,\n            { capture: true }\n          ])\n        }\n        if (trigger === 'hover') {\n          directives.push([mousemoveoutside, handleMouseMoveOutside])\n        }\n      }\n      if (onClickoutside) {\n        directives.push([\n          clickoutside,\n          handleClickOutside,\n          undefined,\n          { capture: true }\n        ])\n      }\n      if (\n        props.displayDirective === 'show'\n        || (props.animated && displayedRef.value)\n      ) {\n        directives.push([vShow, props.show])\n      }\n      return directives\n    })\n\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut, cubicBezierEaseIn, cubicBezierEaseOut },\n        self: {\n          space,\n          spaceArrow,\n          padding,\n          fontSize,\n          textColor,\n          dividerColor,\n          color,\n          boxShadow,\n          borderRadius,\n          arrowHeight,\n          arrowOffset,\n          arrowOffsetVertical\n        }\n      } = themeRef.value\n\n      return {\n        '--n-box-shadow': boxShadow,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-bezier-ease-in': cubicBezierEaseIn,\n        '--n-bezier-ease-out': cubicBezierEaseOut,\n        '--n-font-size': fontSize,\n        '--n-text-color': textColor,\n        '--n-color': color,\n        '--n-divider-color': dividerColor,\n        '--n-border-radius': borderRadius,\n        '--n-arrow-height': arrowHeight,\n        '--n-arrow-offset': arrowOffset,\n        '--n-arrow-offset-vertical': arrowOffsetVertical,\n        '--n-padding': padding,\n        '--n-space': space,\n        '--n-space-arrow': spaceArrow\n      }\n    })\n    const styleRef = computed(() => {\n      const width\n        = props.width === 'trigger' ? undefined : formatLength(props.width)\n      const style: CSSProperties[] = []\n      if (width) {\n        style.push({ width })\n      }\n      const { maxWidth, minWidth } = props\n      if (maxWidth) {\n        style.push({ maxWidth: formatLength(maxWidth) })\n      }\n      if (minWidth) {\n        style.push({ maxWidth: formatLength(minWidth) })\n      }\n      if (!inlineThemeDisabled) {\n        style.push(cssVarsRef.value)\n      }\n      return style\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('popover', undefined, cssVarsRef, props)\n      : undefined\n    NPopover.setBodyInstance({\n      syncPosition\n    })\n    onBeforeUnmount(() => {\n      NPopover.setBodyInstance(null)\n    })\n    watch(toRef(props, 'show'), (value) => {\n      // If no animation, no transition component will be applied to the\n      // component. So we need to trigger follower manaully.\n      if (props.animated)\n        return\n      if (value) {\n        followerEnabledRef.value = true\n      }\n      else {\n        followerEnabledRef.value = false\n      }\n    })\n    function syncPosition(): void {\n      followerRef.value?.syncPosition()\n    }\n    function handleMouseEnter(e: MouseEvent): void {\n      if (props.trigger === 'hover' && props.keepAliveOnHover && props.show) {\n        NPopover.handleMouseEnter(e)\n      }\n    }\n    function handleMouseLeave(e: MouseEvent): void {\n      if (props.trigger === 'hover' && props.keepAliveOnHover) {\n        NPopover.handleMouseLeave(e)\n      }\n    }\n    function handleMouseMoveOutside(e: MouseEvent): void {\n      if (\n        props.trigger === 'hover'\n        && !getTriggerElement().contains(getPreciseEventTarget(e) as Node | null)\n      ) {\n        NPopover.handleMouseMoveOutside(e)\n      }\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      if (\n        (props.trigger === 'click'\n          && !getTriggerElement().contains(\n            getPreciseEventTarget(e) as Node | null\n          ))\n          || props.onClickoutside\n      ) {\n        NPopover.handleClickOutside(e)\n      }\n    }\n    function getTriggerElement(): HTMLElement {\n      return NPopover.getTriggerElement()\n    }\n    provide(popoverBodyInjectionKey, bodyRef)\n    provide(drawerBodyInjectionKey, null)\n    provide(modalBodyInjectionKey, null)\n\n    function renderContentNode(): VNode | null {\n      themeClassHandle?.onRender()\n      const shouldRenderDom\n        = props.displayDirective === 'show'\n          || props.show\n          || (props.animated && displayedRef.value)\n      if (!shouldRenderDom) {\n        return null\n      }\n      let contentNode: VNode\n      const renderBody = NPopover.internalRenderBodyRef.value\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      if (!renderBody) {\n        const { value: extraClass } = NPopover.extraClassRef\n        const { internalTrapFocus } = props\n        const hasHeaderOrFooter\n          = !isSlotEmpty(slots.header) || !isSlotEmpty(slots.footer)\n        const renderContentInnerNode = (): VNodeChild[] => {\n          const body = hasHeaderOrFooter ? (\n            <>\n              {resolveWrappedSlot(slots.header, (children) => {\n                return children ? (\n                  <div\n                    class={[\n                      `${mergedClsPrefix}-popover__header`,\n                      props.headerClass\n                    ]}\n                    style={props.headerStyle}\n                  >\n                    {children}\n                  </div>\n                ) : null\n              })}\n              {resolveWrappedSlot(slots.default, (children) => {\n                return children ? (\n                  <div\n                    class={[\n                      `${mergedClsPrefix}-popover__content`,\n                      props.contentClass\n                    ]}\n                    style={props.contentStyle}\n                  >\n                    {slots.default?.()}\n                  </div>\n                ) : null\n              })}\n              {resolveWrappedSlot(slots.footer, (children) => {\n                return children ? (\n                  <div\n                    class={[\n                      `${mergedClsPrefix}-popover__footer`,\n                      props.footerClass\n                    ]}\n                    style={props.footerStyle}\n                  >\n                    {children}\n                  </div>\n                ) : null\n              })}\n            </>\n          ) : props.scrollable ? (\n            slots.default?.()\n          ) : (\n            <div\n              class={[\n                `${mergedClsPrefix}-popover__content`,\n                props.contentClass\n              ]}\n              style={props.contentStyle}\n            >\n              {slots.default?.()}\n            </div>\n          )\n          const maybeScrollableBody = props.scrollable ? (\n            <NxScrollbar\n              themeOverrides={themeRef.value.peerOverrides.Scrollbar}\n              theme={themeRef.value.peers.Scrollbar}\n              contentClass={\n                hasHeaderOrFooter\n                  ? undefined\n                  : `${mergedClsPrefix}-popover__content ${\n                    props.contentClass ?? ''\n                  }`\n              }\n              contentStyle={hasHeaderOrFooter ? undefined : props.contentStyle}\n            >\n              {{\n                default: () => body\n              }}\n            </NxScrollbar>\n          ) : (\n            body\n          )\n          const arrow = props.showArrow\n            ? renderArrow({\n                arrowClass: props.arrowClass,\n                arrowStyle: props.arrowStyle,\n                arrowWrapperClass: props.arrowWrapperClass,\n                arrowWrapperStyle: props.arrowWrapperStyle,\n                clsPrefix: mergedClsPrefix\n              })\n            : null\n          return [maybeScrollableBody, arrow]\n        }\n        contentNode = h(\n          'div',\n          mergeProps(\n            {\n              class: [\n                `${mergedClsPrefix}-popover`,\n                `${mergedClsPrefix}-popover-shared`,\n                rtlEnabledRef?.value && `${mergedClsPrefix}-popover--rtl`,\n                themeClassHandle?.themeClass.value,\n                extraClass.map(v => `${mergedClsPrefix}-${v}`),\n                {\n                  [`${mergedClsPrefix}-popover--scrollable`]: props.scrollable,\n                  [`${mergedClsPrefix}-popover--show-header-or-footer`]:\n                    hasHeaderOrFooter,\n                  [`${mergedClsPrefix}-popover--raw`]: props.raw,\n                  [`${mergedClsPrefix}-popover-shared--overlap`]: props.overlap,\n                  [`${mergedClsPrefix}-popover-shared--show-arrow`]:\n                    props.showArrow,\n                  [`${mergedClsPrefix}-popover-shared--center-arrow`]:\n                    props.arrowPointToCenter\n                }\n              ],\n              ref: bodyRef,\n              style: styleRef.value,\n              onKeydown: NPopover.handleKeydown,\n              onMouseenter: handleMouseEnter,\n              onMouseleave: handleMouseLeave\n            },\n            attrs\n          ),\n          internalTrapFocus ? (\n            <VFocusTrap active={props.show} autoFocus>\n              {{ default: renderContentInnerNode }}\n            </VFocusTrap>\n          ) : (\n            renderContentInnerNode()\n          )\n        )\n      }\n      else {\n        contentNode = renderBody(\n          // The popover class and overlap class must exists, they will be used\n          // to place the body & transition animation.\n          // Shadow class exists for reuse box-shadow.\n          [\n            `${mergedClsPrefix}-popover-shared`,\n            rtlEnabledRef?.value && `${mergedClsPrefix}-popover--rtl`,\n            themeClassHandle?.themeClass.value,\n            props.overlap && `${mergedClsPrefix}-popover-shared--overlap`,\n            props.showArrow && `${mergedClsPrefix}-popover-shared--show-arrow`,\n            props.arrowPointToCenter\n            && `${mergedClsPrefix}-popover-shared--center-arrow`\n          ],\n          bodyRef,\n          styleRef.value,\n          handleMouseEnter,\n          handleMouseLeave\n        )\n      }\n      return withDirectives(contentNode, directivesRef.value)\n    }\n\n    return {\n      displayed: displayedRef,\n      namespace: namespaceRef,\n      isMounted: NPopover.isMountedRef,\n      zIndex: NPopover.zIndexRef,\n      // reduce dts: string ref only, type unused in render\n      followerRef: followerRef as unknown,\n      adjustedTo: useAdjustedTo(props),\n      followerEnabled: followerEnabledRef,\n      renderContentNode\n    }\n  },\n  render() {\n    return (\n      <VFollower\n        ref=\"followerRef\"\n        zIndex={this.zIndex}\n        show={this.show}\n        enabled={this.followerEnabled}\n        to={this.adjustedTo}\n        x={this.x}\n        y={this.y}\n        flip={this.flip}\n        placement={this.placement}\n        containerClass={this.namespace}\n        overlap={this.overlap}\n        width={this.width === 'trigger' ? 'target' : undefined}\n        teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n      >\n        {{\n          default: () => {\n            return this.animated ? (\n              <Transition\n                name=\"popover-transition\"\n                appear={this.isMounted}\n                // Don't use watch to enable follower, since the transition may\n                // make position sync timing very subtle and buggy.\n                onEnter={() => {\n                  this.followerEnabled = true\n                }}\n                onAfterLeave={() => {\n                  this.internalOnAfterLeave?.()\n                  this.followerEnabled = false\n                  this.displayed = false\n                }}\n              >\n                {{\n                  default: this.renderContentNode\n                }}\n              </Transition>\n            ) : (\n              this.renderContentNode()\n            )\n          }\n        }}\n      </VFollower>\n    )\n  }\n})\n","import type {\n  ComputedRef,\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { BinderInst, FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type {\n  ExtractInternalPropTypes,\n  ExtractPublicPropTypes,\n  MaybeArray\n} from '../../_utils'\nimport type { PopoverTheme, PopoverThemeOverrides } from '../styles'\nimport type {\n  InternalPopoverInst,\n  InternalRenderBody,\n  PopoverTrigger\n} from './interface'\nimport { zindexable } from 'vdirs'\nimport { useCompitable, useIsMounted, useMemo, useMergedState } from 'vooks'\nimport {\n  cloneVNode,\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  Text,\n  toRef,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VTarget } from 'vueuc'\nimport { useTheme } from '../../_mixins'\nimport {\n  call,\n  getFirstSlotVNode,\n  keep,\n  useAdjustedTo,\n  warnOnce\n} from '../../_utils'\nimport NPopoverBody, { popoverBodyProps } from './PopoverBody'\n\nconst bodyPropKeys = Object.keys(popoverBodyProps) as Array<\n  keyof typeof popoverBodyProps\n>\n\nconst triggerEventMap = {\n  focus: ['onFocus', 'onBlur'],\n  click: ['onClick'],\n  hover: ['onMouseenter', 'onMouseleave'],\n  manual: [],\n  nested: ['onFocus', 'onBlur', 'onMouseenter', 'onMouseleave', 'onClick']\n} as const\n\nexport interface TriggerEventHandlers {\n  onClick: (e: MouseEvent) => void\n  onMouseenter: (e: MouseEvent) => void\n  onMouseleave: (e: MouseEvent) => void\n  onFocus: (e: FocusEvent) => void\n  onBlur: (e: FocusEvent) => void\n}\n\nfunction appendEvents(\n  vNode: VNode,\n  trigger: PopoverTrigger | 'nested',\n  events: TriggerEventHandlers\n): void {\n  triggerEventMap[trigger].forEach((eventName) => {\n    if (!vNode.props) {\n      vNode.props = {}\n    }\n    else {\n      vNode.props = Object.assign({}, vNode.props)\n    }\n    const originalHandler = vNode.props[eventName]\n    const handler = events[eventName]\n    if (!originalHandler) {\n      vNode.props[eventName] = handler\n    }\n    else {\n      vNode.props[eventName] = (...args: unknown[]) => {\n        originalHandler(...args)\n        ;(handler as any)(...args)\n      }\n    }\n  })\n}\n\ninterface BodyInstance {\n  syncPosition: () => void\n  [key: string]: unknown\n}\n\nexport interface PopoverInjection {\n  handleMouseLeave: (e: MouseEvent) => void\n  handleMouseEnter: (e: MouseEvent) => void\n  handleMouseMoveOutside: (e: MouseEvent) => void\n  handleClickOutside: (e: MouseEvent) => void\n  handleKeydown: (e: KeyboardEvent) => void\n  getTriggerElement: () => HTMLElement\n  setBodyInstance: (value: BodyInstance | null) => void\n  zIndexRef: Ref<number | undefined>\n  internalRenderBodyRef: Ref<InternalRenderBody | undefined>\n  positionManuallyRef: ComputedRef<boolean>\n  isMountedRef: Ref<boolean>\n  extraClassRef: Ref<string[]>\n}\n\nexport const popoverBaseProps = {\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  defaultShow: Boolean,\n  showArrow: {\n    type: Boolean,\n    default: true\n  },\n  trigger: {\n    type: String as PropType<PopoverTrigger>,\n    default: 'hover'\n  },\n  delay: {\n    type: Number,\n    default: 100\n  },\n  duration: {\n    type: Number,\n    default: 100\n  },\n  raw: Boolean,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'top'\n  },\n  x: Number,\n  y: Number,\n  arrowPointToCenter: Boolean,\n  disabled: Boolean,\n  getDisabled: Function as PropType<() => boolean>,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'if'\n  },\n  arrowClass: String,\n  arrowStyle: [String, Object] as PropType<string | CSSProperties>,\n  arrowWrapperClass: String,\n  arrowWrapperStyle: [String, Object] as PropType<string | CSSProperties>,\n  flip: {\n    type: Boolean,\n    default: true\n  },\n  animated: {\n    type: Boolean,\n    default: true\n  },\n  width: {\n    type: [Number, String] as PropType<number | 'trigger'>,\n    default: undefined\n  },\n  overlap: Boolean,\n  keepAliveOnHover: {\n    type: Boolean,\n    default: true\n  },\n  zIndex: Number,\n  to: useAdjustedTo.propTo,\n  scrollable: Boolean,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<CSSProperties | string>,\n  headerClass: String,\n  headerStyle: [Object, String] as PropType<CSSProperties | string>,\n  footerClass: String,\n  footerStyle: [Object, String] as PropType<CSSProperties | string>,\n  // events\n  onClickoutside: Function as PropType<(e: MouseEvent) => void>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  // internal\n  internalDeactivateImmediately: Boolean,\n  internalSyncTargetWithParent: Boolean,\n  internalInheritedEventHandlers: {\n    type: Array as PropType<TriggerEventHandlers[]>,\n    default: () => []\n  },\n  internalTrapFocus: Boolean,\n  internalExtraClass: {\n    type: Array as PropType<string[]>,\n    default: () => []\n  },\n  // deprecated\n  onShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void> | undefined\n  >,\n  onHide: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void> | undefined\n  >,\n  arrow: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  minWidth: Number,\n  maxWidth: Number\n}\n\nexport const popoverProps = {\n  ...(useTheme.props as ThemeProps<PopoverTheme, PopoverThemeOverrides>),\n  ...popoverBaseProps,\n  internalOnAfterLeave: Function as PropType<() => void>,\n  internalRenderBody: Function as PropType<InternalRenderBody>\n}\n\nexport type PopoverProps = ExtractPublicPropTypes<typeof popoverBaseProps>\nexport type PopoverInternalProps = ExtractInternalPropTypes<typeof popoverProps>\n\nexport interface PopoverSlots {\n  trigger?: () => VNode[]\n  footer?: () => VNode[]\n  header?: () => VNode[]\n  default?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Popover',\n  inheritAttrs: false,\n  props: popoverProps,\n  slots: Object as SlotsType<PopoverSlots>,\n  __popover__: true,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.maxWidth !== undefined) {\n          warnOnce(\n            'popover',\n            '`max-width` is deprecated, please use `style` instead.'\n          )\n        }\n        if (props.minWidth !== undefined) {\n          warnOnce(\n            'popover',\n            '`min-width` is deprecated, please use `style` instead.'\n          )\n        }\n        if (props.arrow !== undefined) {\n          warnOnce(\n            'popover',\n            '`arrow` is deprecated, please use `showArrow` instead.'\n          )\n        }\n        if (props.onHide !== undefined) {\n          warnOnce(\n            'popover',\n            '`on-hide` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n        if (props.onShow !== undefined) {\n          warnOnce(\n            'popover',\n            '`on-show` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n      })\n    }\n    const isMountedRef = useIsMounted()\n    const binderInstRef = ref<BinderInst | null>(null)\n    // setup show\n    const controlledShowRef = computed(() => props.show)\n    const uncontrolledShowRef = ref(props.defaultShow)\n    const mergedShowWithoutDisabledRef = useMergedState(\n      controlledShowRef,\n      uncontrolledShowRef\n    )\n    const mergedShowConsideringDisabledPropRef = useMemo(() => {\n      if (props.disabled)\n        return false\n      return mergedShowWithoutDisabledRef.value\n    })\n    const getMergedDisabled = (): boolean => {\n      if (props.disabled)\n        return true\n      const { getDisabled } = props\n      if (getDisabled?.())\n        return true\n      return false\n    }\n    const getMergedShow = (): boolean => {\n      if (getMergedDisabled())\n        return false\n      return mergedShowWithoutDisabledRef.value\n    }\n    // setup show-arrow\n    const compatibleShowArrowRef = useCompitable(props, ['arrow', 'showArrow'])\n    const mergedShowArrowRef = computed(() => {\n      if (props.overlap)\n        return false\n      return compatibleShowArrowRef.value\n    })\n    // bodyInstance\n    let bodyInstance: BodyInstance | null = null\n    const showTimerIdRef = ref<number | null>(null)\n    const hideTimerIdRef = ref<number | null>(null)\n    const positionManuallyRef = useMemo(() => {\n      return props.x !== undefined && props.y !== undefined\n    })\n    // methods\n    function doUpdateShow(value: boolean): void {\n      const {\n        'onUpdate:show': _onUpdateShow,\n        onUpdateShow,\n        onShow,\n        onHide\n      } = props\n      uncontrolledShowRef.value = value\n      if (_onUpdateShow) {\n        call(_onUpdateShow, value)\n      }\n      if (onUpdateShow) {\n        call(onUpdateShow, value)\n      }\n      if (value && onShow) {\n        call(onShow, true)\n      }\n      if (value && onHide) {\n        call(onHide, false)\n      }\n    }\n    function syncPosition(): void {\n      if (bodyInstance) {\n        bodyInstance.syncPosition()\n      }\n    }\n    function clearShowTimer(): void {\n      const { value: showTimerId } = showTimerIdRef\n      if (showTimerId) {\n        window.clearTimeout(showTimerId)\n        showTimerIdRef.value = null\n      }\n    }\n    function clearHideTimer(): void {\n      const { value: hideTimerId } = hideTimerIdRef\n      if (hideTimerId) {\n        window.clearTimeout(hideTimerId)\n        hideTimerIdRef.value = null\n      }\n    }\n    function handleFocus(): void {\n      const mergedDisabled = getMergedDisabled()\n      if (props.trigger === 'focus' && !mergedDisabled) {\n        if (getMergedShow())\n          return\n        doUpdateShow(true)\n      }\n    }\n    function handleBlur(): void {\n      const mergedDisabled = getMergedDisabled()\n      if (props.trigger === 'focus' && !mergedDisabled) {\n        if (!getMergedShow())\n          return\n        doUpdateShow(false)\n      }\n    }\n    function handleMouseEnter(): void {\n      const mergedDisabled = getMergedDisabled()\n      if (props.trigger === 'hover' && !mergedDisabled) {\n        clearHideTimer()\n        if (showTimerIdRef.value !== null)\n          return\n        if (getMergedShow())\n          return\n        const delayCallback = (): void => {\n          doUpdateShow(true)\n          showTimerIdRef.value = null\n        }\n        const { delay } = props\n        if (delay === 0) {\n          delayCallback()\n        }\n        else {\n          showTimerIdRef.value = window.setTimeout(delayCallback, delay)\n        }\n      }\n    }\n    function handleMouseLeave(): void {\n      const mergedDisabled = getMergedDisabled()\n      if (props.trigger === 'hover' && !mergedDisabled) {\n        clearShowTimer()\n        if (hideTimerIdRef.value !== null)\n          return\n        if (!getMergedShow())\n          return\n        const delayedCallback = (): void => {\n          doUpdateShow(false)\n          hideTimerIdRef.value = null\n        }\n        const { duration } = props\n        if (duration === 0) {\n          delayedCallback()\n        }\n        else {\n          hideTimerIdRef.value = window.setTimeout(delayedCallback, duration)\n        }\n      }\n    }\n    // will be called in popover-content\n    function handleMouseMoveOutside(): void {\n      handleMouseLeave()\n    }\n    // will be called in popover-content\n    function handleClickOutside(e: MouseEvent): void {\n      if (!getMergedShow())\n        return\n      if (props.trigger === 'click') {\n        clearShowTimer()\n        clearHideTimer()\n        doUpdateShow(false)\n      }\n      props.onClickoutside?.(e)\n    }\n    function handleClick(): void {\n      if (props.trigger === 'click' && !getMergedDisabled()) {\n        clearShowTimer()\n        clearHideTimer()\n        const nextShow = !getMergedShow()\n        doUpdateShow(nextShow)\n      }\n    }\n    function handleKeydown(e: KeyboardEvent): void {\n      if (!props.internalTrapFocus)\n        return\n      if (e.key === 'Escape') {\n        clearShowTimer()\n        clearHideTimer()\n        doUpdateShow(false)\n      }\n    }\n    function setShow(value: boolean): void {\n      uncontrolledShowRef.value = value\n    }\n    function getTriggerElement(): HTMLElement {\n      return binderInstRef.value?.targetRef as HTMLElement\n    }\n    function setBodyInstance(value: BodyInstance | null): void {\n      bodyInstance = value\n    }\n    provide<PopoverInjection>('NPopover', {\n      getTriggerElement,\n      handleKeydown,\n      handleMouseEnter,\n      handleMouseLeave,\n      handleClickOutside,\n      handleMouseMoveOutside,\n      setBodyInstance,\n      positionManuallyRef,\n      isMountedRef,\n      zIndexRef: toRef(props, 'zIndex'),\n      extraClassRef: toRef(props, 'internalExtraClass'),\n      internalRenderBodyRef: toRef(props, 'internalRenderBody')\n    })\n    watchEffect(() => {\n      if (mergedShowWithoutDisabledRef.value && getMergedDisabled()) {\n        doUpdateShow(false)\n      }\n    })\n    const returned = {\n      // reduce dts: string ref only, type unused in render\n      binderInstRef: binderInstRef as unknown,\n      positionManually: positionManuallyRef,\n      mergedShowConsideringDisabledProp: mergedShowConsideringDisabledPropRef,\n      // if to show popover body\n      uncontrolledShow: uncontrolledShowRef,\n      mergedShowArrow: mergedShowArrowRef,\n      getMergedShow,\n      setShow,\n      handleClick,\n      handleMouseEnter,\n      handleMouseLeave,\n      handleFocus,\n      handleBlur,\n      syncPosition\n    }\n    return returned satisfies InternalPopoverInst\n  },\n  render() {\n    const { positionManually, $slots: slots } = this\n    let triggerVNode: VNode | null\n    let popoverInside = false\n    if (!positionManually) {\n      triggerVNode = getFirstSlotVNode(slots, 'trigger')\n      if (triggerVNode) {\n        triggerVNode = cloneVNode(triggerVNode)\n        triggerVNode\n          = triggerVNode.type === Text ? h('span', [triggerVNode]) : triggerVNode\n        const handlers = {\n          onClick: this.handleClick,\n          onMouseenter: this.handleMouseEnter,\n          onMouseleave: this.handleMouseLeave,\n          onFocus: this.handleFocus,\n          onBlur: this.handleBlur\n        }\n        if ((triggerVNode.type as any)?.__popover__) {\n          popoverInside = true\n          // We assume that there's no DOM event handlers on popover element\n          if (!triggerVNode.props) {\n            triggerVNode.props = {\n              internalSyncTargetWithParent: true,\n              internalInheritedEventHandlers: []\n            }\n          }\n          triggerVNode.props.internalSyncTargetWithParent = true\n          if (!triggerVNode.props.internalInheritedEventHandlers) {\n            triggerVNode.props.internalInheritedEventHandlers = [handlers]\n          }\n          else {\n            triggerVNode.props.internalInheritedEventHandlers = [\n              handlers,\n              ...triggerVNode.props.internalInheritedEventHandlers\n            ]\n          }\n        }\n        else {\n          const { internalInheritedEventHandlers } = this\n          const ascendantAndCurrentHandlers: TriggerEventHandlers[] = [\n            handlers,\n            ...internalInheritedEventHandlers\n          ]\n          const mergedHandlers: TriggerEventHandlers = {\n            onBlur: (e: FocusEvent) => {\n              ascendantAndCurrentHandlers.forEach((_handlers) => {\n                _handlers.onBlur(e)\n              })\n            },\n            onFocus: (e: FocusEvent) => {\n              ascendantAndCurrentHandlers.forEach((_handlers) => {\n                _handlers.onFocus(e)\n              })\n            },\n            onClick: (e: MouseEvent) => {\n              ascendantAndCurrentHandlers.forEach((_handlers) => {\n                _handlers.onClick(e)\n              })\n            },\n            onMouseenter: (e: MouseEvent) => {\n              ascendantAndCurrentHandlers.forEach((_handlers) => {\n                _handlers.onMouseenter(e)\n              })\n            },\n            onMouseleave: (e: MouseEvent) => {\n              ascendantAndCurrentHandlers.forEach((_handlers) => {\n                _handlers.onMouseleave(e)\n              })\n            }\n          }\n          appendEvents(\n            triggerVNode,\n            internalInheritedEventHandlers\n              ? 'nested'\n              : positionManually\n                ? 'manual'\n                : this.trigger,\n            mergedHandlers\n          )\n        }\n      }\n    }\n    return (\n      <VBinder\n        ref=\"binderInstRef\"\n        syncTarget={!popoverInside}\n        syncTargetWithParent={this.internalSyncTargetWithParent}\n      >\n        {{\n          default: () => {\n            // We need to subscribe it. Sometimes rerender won't ge triggered.\n            // `mergedShowConsideringDisabledProp` is not the final disabled status.\n            // In ellpisis it's dynamic.\n            void this.mergedShowConsideringDisabledProp\n            const mergedShow = this.getMergedShow()\n            return [\n              this.internalTrapFocus && mergedShow\n                ? withDirectives(\n                    <div\n                      style={{\n                        position: 'fixed',\n                        top: 0,\n                        right: 0,\n                        bottom: 0,\n                        left: 0\n                      }}\n                    />,\n                    [\n                      [\n                        zindexable,\n                        {\n                          enabled: mergedShow,\n                          zIndex: this.zIndex\n                        }\n                      ]\n                    ]\n                  )\n                : null,\n              positionManually\n                ? null\n                : h(VTarget, null, {\n                    default: () => triggerVNode\n                  }),\n              h(\n                NPopoverBody,\n                keep(this.$props, bodyPropKeys, {\n                  ...this.$attrs,\n                  showArrow: this.mergedShowArrow,\n                  show: mergedShow\n                }),\n                {\n                  default: () => this.$slots.default?.(),\n                  header: () => this.$slots.header?.(),\n                  footer: () => this.$slots.footer?.()\n                }\n              )\n            ]\n          }\n        }}\n      </VBinder>\n    )\n  }\n})\n","export default {\n  closeIconSizeTiny: '12px',\n  closeIconSizeSmall: '12px',\n  closeIconSizeMedium: '14px',\n  closeIconSizeLarge: '14px',\n  closeSizeTiny: '16px',\n  closeSizeSmall: '16px',\n  closeSizeMedium: '18px',\n  closeSizeLarge: '18px',\n  padding: '0 7px',\n  closeMargin: '0 0 0 4px'\n}\n","import type { TagTheme } from './light'\nimport { changeColor, scaleColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport commonVariables from './_common'\n\nconst tagDark: TagTheme = {\n  name: 'Tag',\n  common: commonDark,\n  self(vars) {\n    const {\n      textColor2,\n      primaryColorHover,\n      primaryColorPressed,\n      primaryColor,\n      infoColor,\n      successColor,\n      warningColor,\n      errorColor,\n      baseColor,\n      borderColor,\n      tagColor,\n      opacityDisabled,\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed,\n      closeColorHover,\n      closeColorPressed,\n      borderRadiusSmall: borderRadius,\n      fontSizeMini,\n      fontSizeTiny,\n      fontSizeSmall,\n      fontSizeMedium,\n      heightMini,\n      heightTiny,\n      heightSmall,\n      heightMedium,\n      buttonColor2Hover,\n      buttonColor2Pressed,\n      fontWeightStrong\n    } = vars\n    return {\n      ...commonVariables,\n      closeBorderRadius: borderRadius,\n      heightTiny: heightMini,\n      heightSmall: heightTiny,\n      heightMedium: heightSmall,\n      heightLarge: heightMedium,\n      borderRadius,\n      opacityDisabled,\n      fontSizeTiny: fontSizeMini,\n      fontSizeSmall: fontSizeTiny,\n      fontSizeMedium: fontSizeSmall,\n      fontSizeLarge: fontSizeMedium,\n      fontWeightStrong,\n      // checked\n      textColorCheckable: textColor2,\n      textColorHoverCheckable: textColor2,\n      textColorPressedCheckable: textColor2,\n      textColorChecked: baseColor,\n      colorCheckable: '#0000',\n      colorHoverCheckable: buttonColor2Hover,\n      colorPressedCheckable: buttonColor2Pressed,\n      colorChecked: primaryColor,\n      colorCheckedHover: primaryColorHover,\n      colorCheckedPressed: primaryColorPressed,\n      // default\n      border: `1px solid ${borderColor}`,\n      textColor: textColor2,\n      color: tagColor,\n      colorBordered: '#0000',\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed,\n      closeColorHover,\n      closeColorPressed,\n      borderPrimary: `1px solid ${changeColor(primaryColor, { alpha: 0.3 })}`,\n      textColorPrimary: primaryColor,\n      colorPrimary: changeColor(primaryColor, { alpha: 0.16 }),\n      colorBorderedPrimary: '#0000',\n      closeIconColorPrimary: scaleColor(primaryColor, { lightness: 0.7 }),\n      closeIconColorHoverPrimary: scaleColor(primaryColor, { lightness: 0.7 }),\n      closeIconColorPressedPrimary: scaleColor(primaryColor, {\n        lightness: 0.7\n      }),\n      closeColorHoverPrimary: changeColor(primaryColor, { alpha: 0.16 }),\n      closeColorPressedPrimary: changeColor(primaryColor, { alpha: 0.12 }),\n      borderInfo: `1px solid ${changeColor(infoColor, { alpha: 0.3 })}`,\n      textColorInfo: infoColor,\n      colorInfo: changeColor(infoColor, { alpha: 0.16 }),\n      colorBorderedInfo: '#0000',\n      closeIconColorInfo: scaleColor(infoColor, { alpha: 0.7 }),\n      closeIconColorHoverInfo: scaleColor(infoColor, { alpha: 0.7 }),\n      closeIconColorPressedInfo: scaleColor(infoColor, { alpha: 0.7 }),\n      closeColorHoverInfo: changeColor(infoColor, { alpha: 0.16 }),\n      closeColorPressedInfo: changeColor(infoColor, { alpha: 0.12 }),\n      borderSuccess: `1px solid ${changeColor(successColor, { alpha: 0.3 })}`,\n      textColorSuccess: successColor,\n      colorSuccess: changeColor(successColor, { alpha: 0.16 }),\n      colorBorderedSuccess: '#0000',\n      closeIconColorSuccess: scaleColor(successColor, { alpha: 0.7 }),\n      closeIconColorHoverSuccess: scaleColor(successColor, { alpha: 0.7 }),\n      closeIconColorPressedSuccess: scaleColor(successColor, { alpha: 0.7 }),\n      closeColorHoverSuccess: changeColor(successColor, { alpha: 0.16 }),\n      closeColorPressedSuccess: changeColor(successColor, { alpha: 0.12 }),\n      borderWarning: `1px solid ${changeColor(warningColor, { alpha: 0.3 })}`,\n      textColorWarning: warningColor,\n      colorWarning: changeColor(warningColor, { alpha: 0.16 }),\n      colorBorderedWarning: '#0000',\n      closeIconColorWarning: scaleColor(warningColor, { alpha: 0.7 }),\n      closeIconColorHoverWarning: scaleColor(warningColor, { alpha: 0.7 }),\n      closeIconColorPressedWarning: scaleColor(warningColor, { alpha: 0.7 }),\n      closeColorHoverWarning: changeColor(warningColor, { alpha: 0.16 }),\n      closeColorPressedWarning: changeColor(warningColor, { alpha: 0.11 }),\n      borderError: `1px solid ${changeColor(errorColor, { alpha: 0.3 })}`,\n      textColorError: errorColor,\n      colorError: changeColor(errorColor, { alpha: 0.16 }),\n      colorBorderedError: '#0000',\n      closeIconColorError: scaleColor(errorColor, { alpha: 0.7 }),\n      closeIconColorHoverError: scaleColor(errorColor, { alpha: 0.7 }),\n      closeIconColorPressedError: scaleColor(errorColor, { alpha: 0.7 }),\n      closeColorHoverError: changeColor(errorColor, { alpha: 0.16 }),\n      closeColorPressedError: changeColor(errorColor, { alpha: 0.12 })\n    }\n  }\n}\n\nexport default tagDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    primaryColorHover,\n    primaryColorPressed,\n    primaryColor,\n    infoColor,\n    successColor,\n    warningColor,\n    errorColor,\n    baseColor,\n    borderColor,\n    opacityDisabled,\n    tagColor,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    borderRadiusSmall: borderRadius,\n    fontSizeMini,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    heightMini,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    closeColorHover,\n    closeColorPressed,\n    buttonColor2Hover,\n    buttonColor2Pressed,\n    fontWeightStrong\n  } = vars\n  return {\n    ...commonVariables,\n    closeBorderRadius: borderRadius,\n    heightTiny: heightMini,\n    heightSmall: heightTiny,\n    heightMedium: heightSmall,\n    heightLarge: heightMedium,\n    borderRadius,\n    opacityDisabled,\n    fontSizeTiny: fontSizeMini,\n    fontSizeSmall: fontSizeTiny,\n    fontSizeMedium: fontSizeSmall,\n    fontSizeLarge: fontSizeMedium,\n    fontWeightStrong,\n    // checked\n    textColorCheckable: textColor2,\n    textColorHoverCheckable: textColor2,\n    textColorPressedCheckable: textColor2,\n    textColorChecked: baseColor,\n    colorCheckable: '#0000',\n    colorHoverCheckable: buttonColor2Hover,\n    colorPressedCheckable: buttonColor2Pressed,\n    colorChecked: primaryColor,\n    colorCheckedHover: primaryColorHover,\n    colorCheckedPressed: primaryColorPressed,\n    // default\n    border: `1px solid ${borderColor}`,\n    textColor: textColor2,\n    color: tagColor,\n    colorBordered: 'rgb(250, 250, 252)',\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    borderPrimary: `1px solid ${changeColor(primaryColor, { alpha: 0.3 })}`,\n    textColorPrimary: primaryColor,\n    colorPrimary: changeColor(primaryColor, { alpha: 0.12 }),\n    colorBorderedPrimary: changeColor(primaryColor, { alpha: 0.1 }),\n    closeIconColorPrimary: primaryColor,\n    closeIconColorHoverPrimary: primaryColor,\n    closeIconColorPressedPrimary: primaryColor,\n    closeColorHoverPrimary: changeColor(primaryColor, { alpha: 0.12 }),\n    closeColorPressedPrimary: changeColor(primaryColor, { alpha: 0.18 }),\n    borderInfo: `1px solid ${changeColor(infoColor, { alpha: 0.3 })}`,\n    textColorInfo: infoColor,\n    colorInfo: changeColor(infoColor, { alpha: 0.12 }),\n    colorBorderedInfo: changeColor(infoColor, { alpha: 0.1 }),\n    closeIconColorInfo: infoColor,\n    closeIconColorHoverInfo: infoColor,\n    closeIconColorPressedInfo: infoColor,\n    closeColorHoverInfo: changeColor(infoColor, { alpha: 0.12 }),\n    closeColorPressedInfo: changeColor(infoColor, { alpha: 0.18 }),\n    borderSuccess: `1px solid ${changeColor(successColor, { alpha: 0.3 })}`,\n    textColorSuccess: successColor,\n    colorSuccess: changeColor(successColor, { alpha: 0.12 }),\n    colorBorderedSuccess: changeColor(successColor, { alpha: 0.1 }),\n    closeIconColorSuccess: successColor,\n    closeIconColorHoverSuccess: successColor,\n    closeIconColorPressedSuccess: successColor,\n    closeColorHoverSuccess: changeColor(successColor, { alpha: 0.12 }),\n    closeColorPressedSuccess: changeColor(successColor, { alpha: 0.18 }),\n    borderWarning: `1px solid ${changeColor(warningColor, { alpha: 0.35 })}`,\n    textColorWarning: warningColor,\n    colorWarning: changeColor(warningColor, { alpha: 0.15 }),\n    colorBorderedWarning: changeColor(warningColor, { alpha: 0.12 }),\n    closeIconColorWarning: warningColor,\n    closeIconColorHoverWarning: warningColor,\n    closeIconColorPressedWarning: warningColor,\n    closeColorHoverWarning: changeColor(warningColor, { alpha: 0.12 }),\n    closeColorPressedWarning: changeColor(warningColor, { alpha: 0.18 }),\n    borderError: `1px solid ${changeColor(errorColor, { alpha: 0.23 })}`,\n    textColorError: errorColor,\n    colorError: changeColor(errorColor, { alpha: 0.1 }),\n    colorBorderedError: changeColor(errorColor, { alpha: 0.08 }),\n    closeIconColorError: errorColor,\n    closeIconColorHoverError: errorColor,\n    closeIconColorPressedError: errorColor,\n    closeColorHoverError: changeColor(errorColor, { alpha: 0.12 }),\n    closeColorPressedError: changeColor(errorColor, { alpha: 0.18 })\n  }\n}\n\nexport interface TagThemeVars extends ReturnType<typeof self> {}\n\nconst tagLight: TagTheme = {\n  name: 'Tag',\n  common: commonLight,\n  self\n}\n\nexport interface TagTheme extends Theme<'Tag', TagThemeVars> {}\n\nexport interface TagThemeOverrides extends ExtractThemeOverrides<TagTheme> {}\n\nexport default tagLight\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('tag', [\n  cM('rtl', `\n    direction: rtl;\n    --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-left) var(--n-close-margin-bottom) var(--n-close-margin-right);\n  `, [\n    cE('icon', `\n      margin: 0 0 0 4px;\n    `),\n    cE('avatar', `\n      margin: 0 0 0 6px;\n    `),\n    cM('round', [\n      cE('icon', `\n        margin: 0 calc((var(--n-height) - 8px) / -2) 0 4px;\n      `),\n      cE('avatar', `\n        margin: 0 calc((var(--n-height) - 8px) / -2) 0 6px;\n      `),\n      cM('closable', `\n        padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 4);\n      `)\n    ]),\n    cM('icon, avatar', [\n      cM('round', `\n        padding: 0 calc(var(--n-height) / 2) 0 calc(var(--n-height) / 3);\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const tagRtl: RtlItem = {\n  name: 'Tag',\n  style: rtlStyle\n}\n","import type { PropType } from 'vue'\nimport type { TagSize } from './public-types'\n\nexport interface TagColor {\n  color?: string\n  borderColor?: string\n  textColor?: string\n}\n\nexport default {\n  color: Object as PropType<TagColor>,\n  type: {\n    type: String as PropType<\n      'default' | 'primary' | 'success' | 'info' | 'warning' | 'error'\n    >,\n    default: 'default'\n  },\n  round: Boolean,\n  size: String as PropType<TagSize>,\n  closable: Boolean,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  }\n} as const\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-border-radius\n// --n-border\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-close-margin\n// --n-close-size\n// --n-color\n// --n-color-checkable\n// --n-color-checked\n// --n-color-checked-hover\n// --n-color-checked-pressed\n// --n-color-hover-checkable\n// --n-color-pressed-checkable\n// --n-font-size\n// --n-height\n// --n-opacity-disabled\n// --n-padding\n// --n-text-color\n// --n-text-color-checkable\n// --n-text-color-checked\n// --n-text-color-hover-checkable\n// --n-text-color-pressed-checkable\n// --n-font-weight-strong\nexport default cB('tag', `\n  --n-close-margin: var(--n-close-margin-top) var(--n-close-margin-right) var(--n-close-margin-bottom) var(--n-close-margin-left);\n  white-space: nowrap;\n  position: relative;\n  box-sizing: border-box;\n  cursor: default;\n  display: inline-flex;\n  align-items: center;\n  flex-wrap: nowrap;\n  padding: var(--n-padding);\n  border-radius: var(--n-border-radius);\n  color: var(--n-text-color);\n  background-color: var(--n-color);\n  transition: \n    border-color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier),\n    opacity .3s var(--n-bezier);\n  line-height: 1;\n  height: var(--n-height);\n  font-size: var(--n-font-size);\n`, [\n  cM('strong', `\n    font-weight: var(--n-font-weight-strong);\n  `),\n  cE('border', `\n    pointer-events: none;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    border-radius: inherit;\n    border: var(--n-border);\n    transition: border-color .3s var(--n-bezier);\n  `),\n  cE('icon', `\n    display: flex;\n    margin: 0 4px 0 0;\n    color: var(--n-text-color);\n    transition: color .3s var(--n-bezier);\n    font-size: var(--n-avatar-size-override);\n  `),\n  cE('avatar', `\n    display: flex;\n    margin: 0 6px 0 0;\n  `),\n  cE('close', `\n    margin: var(--n-close-margin);\n    transition:\n      background-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n  `),\n  cM('round', `\n    padding: 0 calc(var(--n-height) / 3);\n    border-radius: calc(var(--n-height) / 2);\n  `, [\n    cE('icon', `\n      margin: 0 4px 0 calc((var(--n-height) - 8px) / -2);\n    `),\n    cE('avatar', `\n      margin: 0 6px 0 calc((var(--n-height) - 8px) / -2);\n    `),\n    cM('closable', `\n      padding: 0 calc(var(--n-height) / 4) 0 calc(var(--n-height) / 3);\n    `)\n  ]),\n  cM('icon, avatar', [\n    cM('round', `\n      padding: 0 calc(var(--n-height) / 3) 0 calc(var(--n-height) / 2);\n    `)\n  ]),\n  cM('disabled', `\n    cursor: not-allowed !important;\n    opacity: var(--n-opacity-disabled);\n  `),\n  cM('checkable', `\n    cursor: pointer;\n    box-shadow: none;\n    color: var(--n-text-color-checkable);\n    background-color: var(--n-color-checkable);\n  `, [\n    cNotM('disabled', [\n      c('&:hover', 'background-color: var(--n-color-hover-checkable);', [\n        cNotM('checked', 'color: var(--n-text-color-hover-checkable);')\n      ]),\n      c('&:active', 'background-color: var(--n-color-pressed-checkable);', [\n        cNotM('checked', 'color: var(--n-text-color-pressed-checkable);')\n      ])\n    ]),\n    cM('checked', `\n      color: var(--n-text-color-checked);\n      background-color: var(--n-color-checked);\n    `, [\n      cNotM('disabled', [\n        c('&:hover', 'background-color: var(--n-color-checked-hover);'),\n        c('&:active', 'background-color: var(--n-color-checked-pressed);')\n      ])\n    ])\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { TagTheme, TagThemeOverrides } from '../styles'\nimport { getMargin } from 'seemly'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { NBaseClose } from '../../_internal/close'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  call,\n  color2Class,\n  createInjectionKey,\n  createKey,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../_utils'\nimport { tagLight } from '../styles'\nimport commonProps from './common-props'\nimport style from './styles/index.cssr'\n\nexport interface TagPublicMethods {\n  setTextContent: (textContent: string) => void\n}\nexport interface TagRef extends TagPublicMethods {\n  $el: HTMLElement\n}\n\nexport const tagProps = {\n  ...(useTheme.props as ThemeProps<TagTheme, TagThemeOverrides>),\n  ...commonProps,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  checked: Boolean,\n  checkable: Boolean,\n  strong: Boolean,\n  triggerClickOnClose: Boolean,\n  onClose: [Array, Function] as PropType<MaybeArray<(e: MouseEvent) => void>>,\n  onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n  onMouseleave: Function as PropType<(e: MouseEvent) => void>,\n  'onUpdate:checked': Function as PropType<(checked: boolean) => void>,\n  onUpdateChecked: Function as PropType<(checked: boolean) => void>,\n  // private\n  internalCloseFocusable: {\n    type: Boolean,\n    default: true\n  },\n  internalCloseIsButtonTag: {\n    type: Boolean,\n    default: true\n  },\n  // deprecated\n  onCheckedChange: Function as PropType<(checked: boolean) => void>\n}\n\ninterface TagInjection {\n  roundRef: Ref<boolean>\n}\n\nexport const tagInjectionKey = createInjectionKey<TagInjection>('n-tag')\n\nexport type TagProps = ExtractPublicPropTypes<typeof tagProps>\n\nexport interface TagSlots {\n  default?: () => VNode[]\n  avatar?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Tag',\n  props: tagProps,\n  slots: Object as SlotsType<TagSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onCheckedChange !== undefined) {\n          warnOnce(\n            'tag',\n            '`on-checked-change` is deprecated, please use `on-update:checked` instead'\n          )\n        }\n      })\n    }\n    const contentRef = ref<HTMLElement | null>(null)\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return props.size || mergedComponentPropsRef?.value?.Tag?.size || 'medium'\n    })\n    const themeRef = useTheme(\n      'Tag',\n      '-tag',\n      style,\n      tagLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(tagInjectionKey, {\n      roundRef: toRef(props, 'round')\n    })\n    function handleClick(): void {\n      if (!props.disabled) {\n        if (props.checkable) {\n          const {\n            checked,\n            onCheckedChange,\n            onUpdateChecked,\n            'onUpdate:checked': _onUpdateChecked\n          } = props\n          if (onUpdateChecked)\n            onUpdateChecked(!checked)\n          if (_onUpdateChecked)\n            _onUpdateChecked(!checked)\n          // deprecated\n          if (onCheckedChange)\n            onCheckedChange(!checked)\n        }\n      }\n    }\n    function handleCloseClick(e: MouseEvent): void {\n      if (!props.triggerClickOnClose) {\n        e.stopPropagation()\n      }\n      if (!props.disabled) {\n        const { onClose } = props\n        if (onClose)\n          call(onClose, e)\n      }\n    }\n    const tagPublicMethods: TagPublicMethods = {\n      setTextContent(textContent: string) {\n        const { value } = contentRef\n        if (value)\n          value.textContent = textContent\n      }\n    }\n    const rtlEnabledRef = useRtl('Tag', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { type, color: { color, textColor } = {} } = props\n      const size = mergedSizeRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          padding,\n          closeMargin,\n          borderRadius,\n          opacityDisabled,\n          textColorCheckable,\n          textColorHoverCheckable,\n          textColorPressedCheckable,\n          textColorChecked,\n          colorCheckable,\n          colorHoverCheckable,\n          colorPressedCheckable,\n          colorChecked,\n          colorCheckedHover,\n          colorCheckedPressed,\n          closeBorderRadius,\n          fontWeightStrong,\n          [createKey('colorBordered', type)]: colorBordered,\n          [createKey('closeSize', size)]: closeSize,\n          [createKey('closeIconSize', size)]: closeIconSize,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('height', size)]: height,\n          [createKey('color', type)]: typedColor,\n          [createKey('textColor', type)]: typeTextColor,\n          [createKey('border', type)]: border,\n          [createKey('closeIconColor', type)]: closeIconColor,\n          [createKey('closeIconColorHover', type)]: closeIconColorHover,\n          [createKey('closeIconColorPressed', type)]: closeIconColorPressed,\n          [createKey('closeColorHover', type)]: closeColorHover,\n          [createKey('closeColorPressed', type)]: closeColorPressed\n        }\n      } = themeRef.value\n      const closeMarginDiscrete = getMargin(closeMargin)\n      return {\n        '--n-font-weight-strong': fontWeightStrong,\n        '--n-avatar-size-override': `calc(${height} - 8px)`,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-border': border,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-close-icon-color-disabled': closeIconColor,\n        '--n-close-margin-top': closeMarginDiscrete.top,\n        '--n-close-margin-right': closeMarginDiscrete.right,\n        '--n-close-margin-bottom': closeMarginDiscrete.bottom,\n        '--n-close-margin-left': closeMarginDiscrete.left,\n        '--n-close-size': closeSize,\n        '--n-color':\n          color || (mergedBorderedRef.value ? colorBordered : typedColor),\n        '--n-color-checkable': colorCheckable,\n        '--n-color-checked': colorChecked,\n        '--n-color-checked-hover': colorCheckedHover,\n        '--n-color-checked-pressed': colorCheckedPressed,\n        '--n-color-hover-checkable': colorHoverCheckable,\n        '--n-color-pressed-checkable': colorPressedCheckable,\n        '--n-font-size': fontSize,\n        '--n-height': height,\n        '--n-opacity-disabled': opacityDisabled,\n        '--n-padding': padding,\n        '--n-text-color': textColor || typeTextColor,\n        '--n-text-color-checkable': textColorCheckable,\n        '--n-text-color-checked': textColorChecked,\n        '--n-text-color-hover-checkable': textColorHoverCheckable,\n        '--n-text-color-pressed-checkable': textColorPressedCheckable\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'tag',\n          computed(() => {\n            let hash = ''\n            const { type, color: { color, textColor } = {} } = props\n            hash += type[0]\n            hash += mergedSizeRef.value[0]\n            if (color) {\n              hash += `a${color2Class(color)}`\n            }\n            if (textColor) {\n              hash += `b${color2Class(textColor)}`\n            }\n            if (mergedBorderedRef.value) {\n              hash += 'c'\n            }\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      ...tagPublicMethods,\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      contentRef,\n      mergedBordered: mergedBorderedRef,\n      handleClick,\n      handleCloseClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      rtlEnabled,\n      closable,\n      color: { borderColor } = {},\n      round,\n      onRender,\n      $slots\n    } = this\n    onRender?.()\n    const avatarNode = resolveWrappedSlot(\n      $slots.avatar,\n      children =>\n        children && (\n          <div class={`${mergedClsPrefix}-tag__avatar`}>{children}</div>\n        )\n    )\n    const iconNode = resolveWrappedSlot(\n      $slots.icon,\n      children =>\n        children && <div class={`${mergedClsPrefix}-tag__icon`}>{children}</div>\n    )\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-tag`,\n          this.themeClass,\n          {\n            [`${mergedClsPrefix}-tag--rtl`]: rtlEnabled,\n            [`${mergedClsPrefix}-tag--strong`]: this.strong,\n            [`${mergedClsPrefix}-tag--disabled`]: this.disabled,\n            [`${mergedClsPrefix}-tag--checkable`]: this.checkable,\n            [`${mergedClsPrefix}-tag--checked`]: this.checkable && this.checked,\n            [`${mergedClsPrefix}-tag--round`]: round,\n            [`${mergedClsPrefix}-tag--avatar`]: avatarNode,\n            [`${mergedClsPrefix}-tag--icon`]: iconNode,\n            [`${mergedClsPrefix}-tag--closable`]: closable\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n        onClick={this.handleClick}\n        onMouseenter={this.onMouseenter}\n        onMouseleave={this.onMouseleave}\n      >\n        {iconNode || avatarNode}\n        <span class={`${mergedClsPrefix}-tag__content`} ref=\"contentRef\">\n          {this.$slots.default?.()}\n        </span>\n        {!this.checkable && closable ? (\n          <NBaseClose\n            clsPrefix={mergedClsPrefix}\n            class={`${mergedClsPrefix}-tag__close`}\n            disabled={this.disabled}\n            onClick={this.handleCloseClick}\n            focusable={this.internalCloseFocusable}\n            round={round}\n            isButtonTag={this.internalCloseIsButtonTag}\n            absolute\n          />\n        ) : null}\n        {!this.checkable && this.mergedBordered ? (\n          <div\n            class={`${mergedClsPrefix}-tag__border`}\n            style={{ borderColor }}\n          />\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\nimport { resolveSlot } from '../../../_utils/vue'\nimport NBaseClear from '../../clear'\nimport { NBaseIcon } from '../../icon'\nimport { ChevronDownIcon } from '../../icons'\nimport NBaseLoading from '../../loading'\n\nexport default defineComponent({\n  name: 'InternalSelectionSuffix',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    showArrow: {\n      type: Boolean,\n      default: undefined\n    },\n    showClear: {\n      type: Boolean,\n      default: undefined\n    },\n    loading: Boolean,\n    onClear: Function as PropType<(e: MouseEvent) => void>\n  },\n  setup(props, { slots }) {\n    return () => {\n      const { clsPrefix } = props\n      return (\n        <NBaseLoading\n          clsPrefix={clsPrefix}\n          class={`${clsPrefix}-base-suffix`}\n          strokeWidth={24}\n          scale={0.85}\n          show={props.loading}\n        >\n          {{\n            default: () =>\n              props.showArrow ? (\n                <NBaseClear\n                  clsPrefix={clsPrefix}\n                  show={props.showClear}\n                  onClear={props.onClear}\n                >\n                  {{\n                    placeholder: () => (\n                      <NBaseIcon\n                        clsPrefix={clsPrefix}\n                        class={`${clsPrefix}-base-suffix__arrow`}\n                      >\n                        {{\n                          default: () =>\n                            resolveSlot(slots.default, () => [\n                              <ChevronDownIcon />\n                            ])\n                        }}\n                      </NBaseIcon>\n                    )\n                  }}\n                </NBaseClear>\n              ) : null\n          }}\n        </NBaseLoading>\n      )\n    }\n  }\n})\n","export default {\n  paddingSingle: '0 26px 0 12px',\n  paddingMultiple: '3px 26px 0 12px',\n  clearSize: '16px',\n  arrowSize: '16px'\n}\n","import type { InternalSelectionTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../../_styles/common'\nimport { popoverDark } from '../../../popover/styles'\nimport commonVars from './_common'\n\nconst internalSelectionDark: InternalSelectionTheme = {\n  name: 'InternalSelection',\n  common: commonDark,\n  peers: {\n    Popover: popoverDark\n  },\n  self(vars) {\n    const {\n      borderRadius,\n      textColor2,\n      textColorDisabled,\n      inputColor,\n      inputColorDisabled,\n      primaryColor,\n      primaryColorHover,\n      warningColor,\n      warningColorHover,\n      errorColor,\n      errorColorHover,\n      iconColor,\n      iconColorDisabled,\n      clearColor,\n      clearColorHover,\n      clearColorPressed,\n      placeholderColor,\n      placeholderColorDisabled,\n      fontSizeTiny,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      heightTiny,\n      heightSmall,\n      heightMedium,\n      heightLarge,\n      fontWeight\n    } = vars\n    return {\n      ...commonVars,\n      fontWeight,\n      fontSizeTiny,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      heightTiny,\n      heightSmall,\n      heightMedium,\n      heightLarge,\n      borderRadius,\n      // default\n      textColor: textColor2,\n      textColorDisabled,\n      placeholderColor,\n      placeholderColorDisabled,\n      color: inputColor,\n      colorDisabled: inputColorDisabled,\n      colorActive: changeColor(primaryColor, { alpha: 0.1 }),\n      border: '1px solid #0000',\n      borderHover: `1px solid ${primaryColorHover}`,\n      borderActive: `1px solid ${primaryColor}`,\n      borderFocus: `1px solid ${primaryColorHover}`,\n      boxShadowHover: 'none',\n      boxShadowActive: `0 0 8px 0 ${changeColor(primaryColor, {\n        alpha: 0.4\n      })}`,\n      boxShadowFocus: `0 0 8px 0 ${changeColor(primaryColor, {\n        alpha: 0.4\n      })}`,\n      caretColor: primaryColor,\n      arrowColor: iconColor,\n      arrowColorDisabled: iconColorDisabled,\n      loadingColor: primaryColor,\n      // warning\n      borderWarning: `1px solid ${warningColor}`,\n      borderHoverWarning: `1px solid ${warningColorHover}`,\n      borderActiveWarning: `1px solid ${warningColor}`,\n      borderFocusWarning: `1px solid ${warningColorHover}`,\n      boxShadowHoverWarning: 'none',\n      boxShadowActiveWarning: `0 0 8px 0 ${changeColor(warningColor, {\n        alpha: 0.4\n      })}`,\n      boxShadowFocusWarning: `0 0 8px 0 ${changeColor(warningColor, {\n        alpha: 0.4\n      })}`,\n      colorActiveWarning: changeColor(warningColor, { alpha: 0.1 }),\n      caretColorWarning: warningColor,\n      // error\n      borderError: `1px solid ${errorColor}`,\n      borderHoverError: `1px solid ${errorColorHover}`,\n      borderActiveError: `1px solid ${errorColor}`,\n      borderFocusError: `1px solid ${errorColorHover}`,\n      boxShadowHoverError: 'none',\n      boxShadowActiveError: `0 0 8px 0 ${changeColor(errorColor, {\n        alpha: 0.4\n      })}`,\n      boxShadowFocusError: `0 0 8px 0 ${changeColor(errorColor, {\n        alpha: 0.4\n      })}`,\n      colorActiveError: changeColor(errorColor, { alpha: 0.1 }),\n      caretColorError: errorColor,\n      clearColor,\n      clearColorHover,\n      clearColorPressed\n    }\n  }\n}\n\nexport default internalSelectionDark\n","import type { ExtractThemeOverrides, Theme } from '../../../_mixins'\nimport type { ThemeCommonVars } from '../../../_styles/common'\nimport type { PopoverTheme } from '../../../popover/styles'\nimport { changeColor } from 'seemly'\nimport { createTheme } from '../../../_mixins'\nimport { commonLight } from '../../../_styles/common'\nimport { popoverLight } from '../../../popover/styles'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    textColor2,\n    textColorDisabled,\n    inputColor,\n    inputColorDisabled,\n    primaryColor,\n    primaryColorHover,\n    warningColor,\n    warningColorHover,\n    errorColor,\n    errorColorHover,\n    borderColor,\n    iconColor,\n    iconColorDisabled,\n    clearColor,\n    clearColorHover,\n    clearColorPressed,\n    placeholderColor,\n    placeholderColorDisabled,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    fontWeight\n  } = vars\n  return {\n    ...commonVariables,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    borderRadius,\n    fontWeight,\n    // default\n    textColor: textColor2,\n    textColorDisabled,\n    placeholderColor,\n    placeholderColorDisabled,\n    color: inputColor,\n    colorDisabled: inputColorDisabled,\n    colorActive: inputColor,\n    border: `1px solid ${borderColor}`,\n    borderHover: `1px solid ${primaryColorHover}`,\n    borderActive: `1px solid ${primaryColor}`,\n    borderFocus: `1px solid ${primaryColorHover}`,\n    boxShadowHover: 'none',\n    boxShadowActive: `0 0 0 2px ${changeColor(primaryColor, {\n      alpha: 0.2\n    })}`,\n    boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, {\n      alpha: 0.2\n    })}`,\n    caretColor: primaryColor,\n    arrowColor: iconColor,\n    arrowColorDisabled: iconColorDisabled,\n    loadingColor: primaryColor,\n    // warning\n    borderWarning: `1px solid ${warningColor}`,\n    borderHoverWarning: `1px solid ${warningColorHover}`,\n    borderActiveWarning: `1px solid ${warningColor}`,\n    borderFocusWarning: `1px solid ${warningColorHover}`,\n    boxShadowHoverWarning: 'none',\n    boxShadowActiveWarning: `0 0 0 2px ${changeColor(warningColor, {\n      alpha: 0.2\n    })}`,\n    boxShadowFocusWarning: `0 0 0 2px ${changeColor(warningColor, {\n      alpha: 0.2\n    })}`,\n    colorActiveWarning: inputColor,\n    caretColorWarning: warningColor,\n    // error\n    borderError: `1px solid ${errorColor}`,\n    borderHoverError: `1px solid ${errorColorHover}`,\n    borderActiveError: `1px solid ${errorColor}`,\n    borderFocusError: `1px solid ${errorColorHover}`,\n    boxShadowHoverError: 'none',\n    boxShadowActiveError: `0 0 0 2px ${changeColor(errorColor, {\n      alpha: 0.2\n    })}`,\n    boxShadowFocusError: `0 0 0 2px ${changeColor(errorColor, {\n      alpha: 0.2\n    })}`,\n    colorActiveError: inputColor,\n    caretColorError: errorColor,\n    clearColor,\n    clearColorHover,\n    clearColorPressed\n  }\n}\n\nexport interface InternalSelectionThemeVars extends ReturnType<typeof self> {}\n\nconst internalSelectionLight: InternalSelectionTheme = createTheme({\n  name: 'InternalSelection',\n  common: commonLight,\n  peers: {\n    Popover: popoverLight\n  },\n  self\n})\n\nexport interface InternalSelectionTheme extends Theme<\n  'InternalSelection',\n  InternalSelectionThemeVars,\n  {\n    Popover: PopoverTheme\n  }\n> {}\n\nexport interface InternalSelectionThemeOverrides extends ExtractThemeOverrides<InternalSelectionTheme> {}\n\nexport default internalSelectionLight\n","import { cB, cM } from '../../../../_utils/cssr'\n\nexport default cB('base-selection', [\n  cM('rtl', `\n    direction: rtl;\n    --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-left) var(--n-padding-single-bottom) var(--n-padding-single-right);\n    --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-left) var(--n-padding-multiple-bottom) var(--n-padding-multiple-right);\n  `, [\n    cB('base-suffix', `\n      right: unset;\n      left: 10px;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const internalSelectionRtl: RtlItem = {\n  name: 'InternalSelection',\n  style: rtlStyle\n}\n","import {\n  c,\n  cB,\n  cE,\n  cM,\n  cNotM\n} from '../../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-border\n// --n-border-active\n// --n-border-focus\n// --n-border-hover\n// --n-border-radius\n// --n-box-shadow-active\n// --n-box-shadow-focus\n// --n-box-shadow-hover\n// --n-caret-color\n// --n-color\n// --n-color-active\n// --n-color-disabled\n// --n-font-size\n// --n-height\n// --n-padding-single\n// --n-padding-multiple\n// --n-placeholder-color\n// --n-placeholder-color-disabled\n// --n-text-color\n// --n-text-color-disabled\n// --n-arrow-color\n// --n-arrow-size\n// --n-loading-color\n// --n-font-weight\n// ...clear vars\n// ...form item vars\nexport default c([\n  cB('base-selection', `\n    --n-padding-single: var(--n-padding-single-top) var(--n-padding-single-right) var(--n-padding-single-bottom) var(--n-padding-single-left);\n    --n-padding-multiple: var(--n-padding-multiple-top) var(--n-padding-multiple-right) var(--n-padding-multiple-bottom) var(--n-padding-multiple-left);\n    position: relative;\n    z-index: auto;\n    box-shadow: none;\n    width: 100%;\n    max-width: 100%;\n    display: inline-block;\n    vertical-align: bottom;\n    border-radius: var(--n-border-radius);\n    min-height: var(--n-height);\n    line-height: 1.5;\n    font-size: var(--n-font-size);\n  `, [\n    cB('base-loading', `\n      color: var(--n-loading-color);\n    `),\n    cB('base-selection-tags', 'min-height: var(--n-height);'),\n    cE('border, state-border', `\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n      pointer-events: none;\n      border: var(--n-border);\n      border-radius: inherit;\n      transition:\n        box-shadow .3s var(--n-bezier),\n        border-color .3s var(--n-bezier);\n    `),\n    cE('state-border', `\n      z-index: 1;\n      border-color: #0000;\n    `),\n    cB('base-suffix', `\n      cursor: pointer;\n      position: absolute;\n      top: 50%;\n      transform: translateY(-50%);\n      right: 10px;\n    `, [\n      cE('arrow', `\n        font-size: var(--n-arrow-size);\n        color: var(--n-arrow-color);\n        transition: color .3s var(--n-bezier);\n      `)\n    ]),\n    cB('base-selection-overlay', `\n      display: flex;\n      align-items: center;\n      white-space: nowrap;\n      pointer-events: none;\n      position: absolute;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      padding: var(--n-padding-single);\n      transition: color .3s var(--n-bezier);\n    `, [\n      cE('wrapper', `\n        flex-basis: 0;\n        flex-grow: 1;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      `)\n    ]),\n    cB('base-selection-placeholder', `\n      color: var(--n-placeholder-color);\n    `, [\n      cE('inner', `\n        max-width: 100%;\n        overflow: hidden;\n      `)\n    ]),\n    cB('base-selection-tags', `\n      cursor: pointer;\n      outline: none;\n      box-sizing: border-box;\n      position: relative;\n      z-index: auto;\n      display: flex;\n      padding: var(--n-padding-multiple);\n      flex-wrap: wrap;\n      align-items: center;\n      width: 100%;\n      vertical-align: bottom;\n      background-color: var(--n-color);\n      border-radius: inherit;\n      transition:\n        color .3s var(--n-bezier),\n        box-shadow .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `),\n    cB('base-selection-label', `\n      height: var(--n-height);\n      display: inline-flex;\n      width: 100%;\n      vertical-align: bottom;\n      cursor: pointer;\n      outline: none;\n      z-index: auto;\n      box-sizing: border-box;\n      position: relative;\n      transition:\n      color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n      border-radius: inherit;\n      background-color: var(--n-color);\n      align-items: center;\n    `, [\n      cB('base-selection-input', `\n        font-size: inherit;\n        line-height: inherit;\n        outline: none;\n        cursor: pointer;\n        box-sizing: border-box;\n        border:none;\n        width: 100%;\n        padding: var(--n-padding-single);\n        background-color: #0000;\n        color: var(--n-text-color);\n        transition: color .3s var(--n-bezier);\n        caret-color: var(--n-caret-color);\n      `, [\n        cE('content', `\n          text-overflow: ellipsis;\n          overflow: hidden;\n          white-space: nowrap;  \n        `)\n      ]),\n      cE('render-label', `\n        color: var(--n-text-color);\n      `)\n    ]),\n    cNotM('disabled', [\n      c('&:hover', [\n        cE('state-border', `\n          box-shadow: var(--n-box-shadow-hover);\n          border: var(--n-border-hover);\n        `)\n      ]),\n      cM('focus', [\n        cE('state-border', `\n          box-shadow: var(--n-box-shadow-focus);\n          border: var(--n-border-focus);\n        `)\n      ]),\n      cM('active', [\n        cE('state-border', `\n          box-shadow: var(--n-box-shadow-active);\n          border: var(--n-border-active);\n        `),\n        cB('base-selection-label', 'background-color: var(--n-color-active);'),\n        cB('base-selection-tags', 'background-color: var(--n-color-active);')\n      ])\n    ]),\n    cM('disabled', 'cursor: not-allowed;', [\n      cE('arrow', `\n        color: var(--n-arrow-color-disabled);\n      `),\n      cB('base-selection-label', `\n        cursor: not-allowed;\n        background-color: var(--n-color-disabled);\n      `, [\n        cB('base-selection-input', `\n          cursor: not-allowed;\n          color: var(--n-text-color-disabled);\n        `),\n        cE('render-label', `\n          color: var(--n-text-color-disabled);\n        `)\n      ]),\n      cB('base-selection-tags', `\n        cursor: not-allowed;\n        background-color: var(--n-color-disabled);\n      `),\n      cB('base-selection-placeholder', `\n        cursor: not-allowed;\n        color: var(--n-placeholder-color-disabled);\n      `)\n    ]),\n    cB('base-selection-input-tag', `\n      height: calc(var(--n-height) - 6px);\n      line-height: calc(var(--n-height) - 6px);\n      outline: none;\n      display: none;\n      position: relative;\n      margin-bottom: 3px;\n      max-width: 100%;\n      vertical-align: bottom;\n    `, [\n      cE('input', `\n        font-size: inherit;\n        font-family: inherit;\n        min-width: 1px;\n        padding: 0;\n        background-color: #0000;\n        outline: none;\n        border: none;\n        max-width: 100%;\n        overflow: hidden;\n        width: 1em;\n        line-height: inherit;\n        cursor: pointer;\n        color: var(--n-text-color);\n        caret-color: var(--n-caret-color);\n      `),\n      cE('mirror', `\n        position: absolute;\n        left: 0;\n        top: 0;\n        white-space: pre;\n        visibility: hidden;\n        user-select: none;\n        -webkit-user-select: none;\n        opacity: 0;\n      `)\n    ]),\n    ['warning', 'error'].map(status => cM(`${status}-status`, [\n      cE('state-border', `border: var(--n-border-${status});`),\n      cNotM('disabled', [\n        c('&:hover', [\n          cE('state-border', `\n            box-shadow: var(--n-box-shadow-hover-${status});\n            border: var(--n-border-hover-${status});\n          `)\n        ]),\n        cM('active', [\n          cE('state-border', `\n            box-shadow: var(--n-box-shadow-active-${status});\n            border: var(--n-border-active-${status});\n          `),\n          cB('base-selection-label', `background-color: var(--n-color-active-${status});`),\n          cB('base-selection-tags', `background-color: var(--n-color-active-${status});`)\n        ]),\n        cM('focus', [\n          cE('state-border', `\n            box-shadow: var(--n-box-shadow-focus-${status});\n            border: var(--n-border-focus-${status});\n          `)\n        ])\n      ])\n    ]))\n  ]),\n  cB('base-selection-popover', `\n    margin-bottom: -3px;\n    display: flex;\n    flex-wrap: wrap;\n    margin-right: -8px;\n  `),\n  cB('base-selection-tag-wrapper', `\n    max-width: 100%;\n    display: inline-flex;\n    padding: 0 7px 3px 0;\n  `, [\n    c('&:last-child', 'padding-right: 0;'),\n    cB('tag', `\n      font-size: 14px;\n      max-width: 100%;\n    `, [\n      cE('content', `\n        line-height: 1.25;\n        text-overflow: ellipsis;\n          overflow: hidden;\n      `)\n    ])\n  ])\n])\n","import type {\n  CSSProperties,\n  InputHTMLAttributes,\n  PropType,\n  Ref,\n  VNode\n} from 'vue'\nimport type { VOverflowInst } from 'vueuc'\nimport type { ThemeProps } from '../../../_mixins'\nimport type { FormValidationStatus } from '../../../form/src/public-types'\nimport type { PopoverProps } from '../../../popover'\nimport type { SelectBaseOption } from '../../../select/src/interface'\nimport type { TagRef } from '../../../tag/src/Tag'\nimport type {\n  RenderLabel,\n  RenderLabelImpl\n} from '../../select-menu/src/interface'\nimport type {\n  InternalSelectionTheme,\n  InternalSelectionThemeOverrides\n} from '../styles'\nimport type { RenderTag } from './interface'\nimport { getPadding } from 'seemly'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  nextTick,\n  onMounted,\n  ref,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VOverflow } from 'vueuc'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../../_mixins'\nimport {\n  createKey,\n  getTitleAttribute,\n  render,\n  useOnResize,\n  Wrapper\n} from '../../../_utils'\nimport { NPopover } from '../../../popover'\nimport { NTag } from '../../../tag'\nimport Suffix from '../../suffix'\nimport { internalSelectionLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport interface InternalSelectionInst {\n  isComposing: boolean\n  focus: () => void\n  focusInput: () => void\n  blur: () => void\n  blurInput: () => void\n  $el: HTMLElement\n}\n\nexport default defineComponent({\n  name: 'InternalSelection',\n  props: {\n    ...(useTheme.props as ThemeProps<\n      InternalSelectionTheme,\n      InternalSelectionThemeOverrides\n    >),\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    bordered: {\n      type: Boolean as PropType<boolean | undefined>,\n      default: undefined\n    },\n    active: Boolean,\n    pattern: {\n      type: String,\n      default: ''\n    },\n    placeholder: String,\n    selectedOption: {\n      type: Object as PropType<SelectBaseOption | null>,\n      default: null\n    },\n    selectedOptions: {\n      type: Array as PropType<SelectBaseOption[] | null>,\n      default: null\n    },\n    labelField: { type: String, default: 'label' },\n    valueField: {\n      type: String,\n      default: 'value'\n    },\n    multiple: Boolean,\n    filterable: Boolean,\n    clearable: Boolean,\n    disabled: Boolean,\n    size: {\n      type: String as PropType<'tiny' | 'small' | 'medium' | 'large'>,\n      default: 'medium'\n    },\n    loading: Boolean,\n    autofocus: Boolean,\n    showArrow: {\n      type: Boolean,\n      default: true\n    },\n    inputProps: Object as PropType<InputHTMLAttributes>,\n    focused: Boolean,\n    renderTag: Function as PropType<RenderTag>,\n    onKeydown: Function as PropType<(e: KeyboardEvent) => void>,\n    onClick: Function as PropType<(e: MouseEvent) => void>,\n    onBlur: Function as PropType<(e: FocusEvent) => void>,\n    onFocus: Function as PropType<(e: FocusEvent) => void>,\n    onDeleteOption: Function as PropType<(option: SelectBaseOption) => void>,\n    maxTagCount: [String, Number] as PropType<number | 'responsive'>,\n    ellipsisTagPopoverProps: Object as PropType<PopoverProps>,\n    onClear: Function as PropType<(e: MouseEvent) => void>,\n    onPatternInput: Function as PropType<(e: InputEvent) => void>,\n    onPatternFocus: Function as PropType<(e: FocusEvent) => void>,\n    onPatternBlur: Function as PropType<(e: FocusEvent) => void>,\n    renderLabel: Function as PropType<RenderLabel>,\n    status: String as PropType<FormValidationStatus>,\n    inlineThemeDisabled: Boolean,\n    ignoreComposition: { type: Boolean, default: true },\n    onResize: Function as PropType<() => void>\n  },\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    const rtlEnabledRef = useRtl(\n      'InternalSelection',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const patternInputMirrorRef = ref<HTMLElement | null>(null)\n    const patternInputRef = ref<HTMLElement | null>(null)\n    const selfRef = ref<HTMLElement | null>(null)\n    const multipleElRef = ref<HTMLElement | null>(null)\n    const singleElRef = ref<HTMLElement | null>(null)\n    const patternInputWrapperRef = ref<HTMLElement | null>(null)\n    const counterRef = ref<TagRef | null>(null)\n    const counterWrapperRef = ref<HTMLElement | null>(null)\n    const overflowRef = ref<VOverflowInst | null>(null)\n    const inputTagElRef = ref<HTMLElement | null>(null)\n\n    const showTagsPopoverRef = ref<boolean>(false)\n    const patternInputFocusedRef = ref(false)\n    const hoverRef = ref(false)\n    const themeRef = useTheme(\n      'InternalSelection',\n      '-internal-selection',\n      style,\n      internalSelectionLight,\n      props,\n      toRef(props, 'clsPrefix')\n    )\n    const mergedClearableRef = computed(() => {\n      return (\n        props.clearable && !props.disabled && (hoverRef.value || props.active)\n      )\n    })\n    const filterablePlaceholderRef = computed(() => {\n      return props.selectedOption\n        ? props.renderTag\n          ? props.renderTag({\n              option: props.selectedOption,\n              handleClose: () => {}\n            })\n          : props.renderLabel\n            ? props.renderLabel(props.selectedOption as never, true)\n            : render(\n                props.selectedOption[props.labelField],\n                props.selectedOption,\n                true\n              )\n        : props.placeholder\n    })\n    const labelRef = computed(() => {\n      const option = props.selectedOption\n      if (!option)\n        return undefined\n      return option[props.labelField]\n    })\n    const selectedRef = computed(() => {\n      if (props.multiple) {\n        return !!(\n          Array.isArray(props.selectedOptions) && props.selectedOptions.length\n        )\n      }\n      else {\n        return props.selectedOption !== null\n      }\n    })\n    function syncMirrorWidth(): void {\n      const { value: patternInputMirrorEl } = patternInputMirrorRef\n      if (patternInputMirrorEl) {\n        const { value: patternInputEl } = patternInputRef\n        if (patternInputEl) {\n          patternInputEl.style.width = `${patternInputMirrorEl.offsetWidth}px`\n          if (props.maxTagCount !== 'responsive') {\n            overflowRef.value?.sync({\n              showAllItemsBeforeCalculate: false\n            })\n          }\n        }\n      }\n    }\n    function hideInputTag(): void {\n      const { value: inputTagEl } = inputTagElRef\n      if (inputTagEl)\n        inputTagEl.style.display = 'none'\n    }\n    function showInputTag(): void {\n      const { value: inputTagEl } = inputTagElRef\n      if (inputTagEl)\n        inputTagEl.style.display = 'inline-block'\n    }\n    watch(toRef(props, 'active'), (value) => {\n      if (!value)\n        hideInputTag()\n    })\n    watch(toRef(props, 'pattern'), () => {\n      if (props.multiple) {\n        void nextTick(syncMirrorWidth)\n      }\n    })\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      if (onFocus)\n        onFocus(e)\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      if (onBlur)\n        onBlur(e)\n    }\n    function doDeleteOption(value: SelectBaseOption): void {\n      const { onDeleteOption } = props\n      if (onDeleteOption)\n        onDeleteOption(value)\n    }\n    function doClear(e: MouseEvent): void {\n      const { onClear } = props\n      if (onClear)\n        onClear(e)\n    }\n    function doPatternInput(value: InputEvent): void {\n      const { onPatternInput } = props\n      if (onPatternInput)\n        onPatternInput(value)\n    }\n    function handleFocusin(e: FocusEvent): void {\n      if (\n        !e.relatedTarget\n        || !selfRef.value?.contains(e.relatedTarget as Node)\n      ) {\n        doFocus(e)\n      }\n    }\n    function handleFocusout(e: FocusEvent): void {\n      if (selfRef.value?.contains(e.relatedTarget as Node))\n        return\n      doBlur(e)\n    }\n    function handleClear(e: MouseEvent): void {\n      doClear(e)\n    }\n    function handleMouseEnter(): void {\n      hoverRef.value = true\n    }\n    function handleMouseLeave(): void {\n      hoverRef.value = false\n    }\n    function handleMouseDown(e: MouseEvent): void {\n      if (!props.active || !props.filterable)\n        return\n      if (e.target === patternInputRef.value)\n        return\n      e.preventDefault()\n    }\n    function handleDeleteOption(option: SelectBaseOption): void {\n      doDeleteOption(option)\n    }\n    const isComposingRef = ref(false)\n    function handlePatternKeyDown(e: KeyboardEvent): void {\n      if (e.key === 'Backspace' && !isComposingRef.value) {\n        if (!props.pattern.length) {\n          const { selectedOptions } = props\n          if (selectedOptions?.length) {\n            handleDeleteOption(selectedOptions[selectedOptions.length - 1])\n          }\n        }\n      }\n    }\n    // the composition end is later than its input so we can cached the event\n    // and return the input event\n    let cachedInputEvent: InputEvent | null = null\n    function handlePatternInputInput(e: InputEvent): void {\n      // we should sync mirror width here\n      const { value: patternInputMirrorEl } = patternInputMirrorRef\n      if (patternInputMirrorEl) {\n        const inputText: string = (e.target as any).value\n        patternInputMirrorEl.textContent = inputText\n        syncMirrorWidth()\n      }\n      if (props.ignoreComposition) {\n        if (!isComposingRef.value) {\n          doPatternInput(e)\n        }\n        else {\n          cachedInputEvent = e\n        }\n      }\n      else {\n        doPatternInput(e)\n      }\n    }\n    function handleCompositionStart(): void {\n      isComposingRef.value = true\n    }\n    function handleCompositionEnd(): void {\n      isComposingRef.value = false\n      if (props.ignoreComposition) {\n        doPatternInput(cachedInputEvent!)\n      }\n      cachedInputEvent = null\n    }\n    function handlePatternInputFocus(e: FocusEvent): void {\n      patternInputFocusedRef.value = true\n      props.onPatternFocus?.(e)\n    }\n    function handlePatternInputBlur(e: FocusEvent): void {\n      patternInputFocusedRef.value = false\n      props.onPatternBlur?.(e)\n    }\n    function blur(): void {\n      if (props.filterable) {\n        patternInputFocusedRef.value = false\n        patternInputWrapperRef.value?.blur()\n        patternInputRef.value?.blur()\n      }\n      else if (props.multiple) {\n        const { value: multipleEl } = multipleElRef\n        multipleEl?.blur()\n      }\n      else {\n        const { value: singleEl } = singleElRef\n        singleEl?.blur()\n      }\n    }\n    function focus(): void {\n      if (props.filterable) {\n        patternInputFocusedRef.value = false\n        patternInputWrapperRef.value?.focus()\n      }\n      else if (props.multiple) {\n        multipleElRef.value?.focus()\n      }\n      else {\n        singleElRef.value?.focus()\n      }\n    }\n    function focusInput(): void {\n      const { value: patternInputEl } = patternInputRef\n      if (patternInputEl) {\n        showInputTag()\n        patternInputEl.focus()\n      }\n    }\n    function blurInput(): void {\n      const { value: patternInputEl } = patternInputRef\n      if (patternInputEl) {\n        patternInputEl.blur()\n      }\n    }\n    function updateCounter(count: number): void {\n      const { value } = counterRef\n      if (value) {\n        value.setTextContent(`+${count}`)\n      }\n    }\n    function getCounter(): HTMLElement | null {\n      const { value } = counterWrapperRef\n      return value\n    }\n    function getTail(): HTMLElement | null {\n      return patternInputRef.value\n    }\n    let enterTimerId: number | null = null\n    function clearEnterTimer(): void {\n      if (enterTimerId !== null)\n        window.clearTimeout(enterTimerId)\n    }\n    function handleMouseEnterCounter(): void {\n      if (props.active)\n        return\n      clearEnterTimer()\n      enterTimerId = window.setTimeout(() => {\n        if (selectedRef.value) {\n          showTagsPopoverRef.value = true\n        }\n      }, 100)\n    }\n    function handleMouseLeaveCounter(): void {\n      clearEnterTimer()\n    }\n    function onPopoverUpdateShow(show: boolean): void {\n      if (!show) {\n        clearEnterTimer()\n        showTagsPopoverRef.value = false\n      }\n    }\n    watch(selectedRef, (value) => {\n      if (!value) {\n        showTagsPopoverRef.value = false\n      }\n    })\n    onMounted(() => {\n      watchEffect(() => {\n        const patternInputWrapperEl = patternInputWrapperRef.value\n        if (!patternInputWrapperEl)\n          return\n        if (props.disabled) {\n          patternInputWrapperEl.removeAttribute('tabindex')\n        }\n        else {\n          patternInputWrapperEl.tabIndex = patternInputFocusedRef.value ? -1 : 0\n        }\n      })\n    })\n    useOnResize(selfRef, props.onResize)\n    const { inlineThemeDisabled } = props\n    const cssVarsRef = computed(() => {\n      const { size } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontWeight,\n          borderRadius,\n          color,\n          placeholderColor,\n          textColor,\n          paddingSingle,\n          paddingMultiple,\n          caretColor,\n          colorDisabled,\n          textColorDisabled,\n          placeholderColorDisabled,\n          colorActive,\n          boxShadowFocus,\n          boxShadowActive,\n          boxShadowHover,\n          border,\n          borderFocus,\n          borderHover,\n          borderActive,\n          arrowColor,\n          arrowColorDisabled,\n          loadingColor,\n          // form warning\n          colorActiveWarning,\n          boxShadowFocusWarning,\n          boxShadowActiveWarning,\n          boxShadowHoverWarning,\n          borderWarning,\n          borderFocusWarning,\n          borderHoverWarning,\n          borderActiveWarning,\n          // form error\n          colorActiveError,\n          boxShadowFocusError,\n          boxShadowActiveError,\n          boxShadowHoverError,\n          borderError,\n          borderFocusError,\n          borderHoverError,\n          borderActiveError,\n          // clear\n          clearColor,\n          clearColorHover,\n          clearColorPressed,\n          clearSize,\n          // arrow\n          arrowSize,\n          [createKey('height', size)]: height,\n          [createKey('fontSize', size)]: fontSize\n        }\n      } = themeRef.value\n\n      const paddingSingleDiscrete = getPadding(paddingSingle)\n      const paddingMultipleDiscrete = getPadding(paddingMultiple)\n\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border': border,\n        '--n-border-active': borderActive,\n        '--n-border-focus': borderFocus,\n        '--n-border-hover': borderHover,\n        '--n-border-radius': borderRadius,\n        '--n-box-shadow-active': boxShadowActive,\n        '--n-box-shadow-focus': boxShadowFocus,\n        '--n-box-shadow-hover': boxShadowHover,\n        '--n-caret-color': caretColor,\n        '--n-color': color,\n        '--n-color-active': colorActive,\n        '--n-color-disabled': colorDisabled,\n        '--n-font-size': fontSize,\n        '--n-height': height,\n        '--n-padding-single-top': paddingSingleDiscrete.top,\n        '--n-padding-multiple-top': paddingMultipleDiscrete.top,\n        '--n-padding-single-right': paddingSingleDiscrete.right,\n        '--n-padding-multiple-right': paddingMultipleDiscrete.right,\n        '--n-padding-single-left': paddingSingleDiscrete.left,\n        '--n-padding-multiple-left': paddingMultipleDiscrete.left,\n        '--n-padding-single-bottom': paddingSingleDiscrete.bottom,\n        '--n-padding-multiple-bottom': paddingMultipleDiscrete.bottom,\n        '--n-placeholder-color': placeholderColor,\n        '--n-placeholder-color-disabled': placeholderColorDisabled,\n        '--n-text-color': textColor,\n        '--n-text-color-disabled': textColorDisabled,\n        '--n-arrow-color': arrowColor,\n        '--n-arrow-color-disabled': arrowColorDisabled,\n        '--n-loading-color': loadingColor,\n        // form warning\n        '--n-color-active-warning': colorActiveWarning,\n        '--n-box-shadow-focus-warning': boxShadowFocusWarning,\n        '--n-box-shadow-active-warning': boxShadowActiveWarning,\n        '--n-box-shadow-hover-warning': boxShadowHoverWarning,\n        '--n-border-warning': borderWarning,\n        '--n-border-focus-warning': borderFocusWarning,\n        '--n-border-hover-warning': borderHoverWarning,\n        '--n-border-active-warning': borderActiveWarning,\n        // form error\n        '--n-color-active-error': colorActiveError,\n        '--n-box-shadow-focus-error': boxShadowFocusError,\n        '--n-box-shadow-active-error': boxShadowActiveError,\n        '--n-box-shadow-hover-error': boxShadowHoverError,\n        '--n-border-error': borderError,\n        '--n-border-focus-error': borderFocusError,\n        '--n-border-hover-error': borderHoverError,\n        '--n-border-active-error': borderActiveError,\n        // clear\n        '--n-clear-size': clearSize,\n        '--n-clear-color': clearColor,\n        '--n-clear-color-hover': clearColorHover,\n        '--n-clear-color-pressed': clearColorPressed,\n        // arrow-size\n        '--n-arrow-size': arrowSize,\n        // font-weight\n        '--n-font-weight': fontWeight\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'internal-selection',\n          computed(() => {\n            return props.size[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedTheme: themeRef,\n      mergedClearable: mergedClearableRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      patternInputFocused: patternInputFocusedRef,\n      filterablePlaceholder: filterablePlaceholderRef,\n      label: labelRef,\n      selected: selectedRef,\n      showTagsPanel: showTagsPopoverRef,\n      isComposing: isComposingRef,\n      // dom ref\n      counterRef,\n      counterWrapperRef,\n      patternInputMirrorRef,\n      patternInputRef,\n      selfRef,\n      multipleElRef,\n      singleElRef,\n      patternInputWrapperRef,\n      // reduce dts: string ref only, type unused in render\n      overflowRef: overflowRef as unknown,\n      inputTagElRef,\n      handleMouseDown,\n      handleFocusin,\n      handleClear,\n      handleMouseEnter,\n      handleMouseLeave,\n      handleDeleteOption,\n      handlePatternKeyDown,\n      handlePatternInputInput,\n      handlePatternInputBlur,\n      handlePatternInputFocus,\n      handleMouseEnterCounter,\n      handleMouseLeaveCounter,\n      handleFocusout,\n      handleCompositionEnd,\n      handleCompositionStart,\n      onPopoverUpdateShow,\n      focus,\n      focusInput,\n      blur,\n      blurInput,\n      updateCounter,\n      getCounter,\n      getTail,\n      renderLabel: props.renderLabel as RenderLabelImpl,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      status,\n      multiple,\n      size,\n      disabled,\n      filterable,\n      maxTagCount,\n      bordered,\n      clsPrefix,\n      ellipsisTagPopoverProps,\n      onRender,\n      renderTag,\n      renderLabel\n    } = this\n    onRender?.()\n    const maxTagCountResponsive = maxTagCount === 'responsive'\n    const maxTagCountNumeric = typeof maxTagCount === 'number'\n    const useMaxTagCount = maxTagCountResponsive || maxTagCountNumeric\n    const suffix = (\n      <Wrapper>\n        {{\n          default: () => (\n            <Suffix\n              clsPrefix={clsPrefix}\n              loading={this.loading}\n              showArrow={this.showArrow}\n              showClear={this.mergedClearable && this.selected}\n              onClear={this.handleClear}\n            >\n              {{\n                default: () => this.$slots.arrow?.()\n              }}\n            </Suffix>\n          )\n        }}\n      </Wrapper>\n    )\n    let body: JSX.Element\n    if (multiple) {\n      const { labelField } = this\n      const createTag = (option: SelectBaseOption): JSX.Element => (\n        <div\n          class={`${clsPrefix}-base-selection-tag-wrapper`}\n          key={option.value}\n        >\n          {renderTag ? (\n            renderTag({\n              option,\n              handleClose: () => {\n                this.handleDeleteOption(option)\n              }\n            })\n          ) : (\n            <NTag\n              size={size}\n              closable={!option.disabled}\n              disabled={disabled}\n              onClose={() => {\n                this.handleDeleteOption(option)\n              }}\n              internalCloseIsButtonTag={false}\n              internalCloseFocusable={false}\n            >\n              {{\n                default: () =>\n                  renderLabel\n                    ? renderLabel(option, true)\n                    : render(option[labelField], option, true)\n              }}\n            </NTag>\n          )}\n        </div>\n      )\n      const createOriginalTagNodes = (): VNode[] =>\n        (maxTagCountNumeric\n          ? this.selectedOptions!.slice(0, maxTagCount)\n          : this.selectedOptions!\n        ).map(createTag)\n      const input = filterable ? (\n        <div\n          class={`${clsPrefix}-base-selection-input-tag`}\n          ref=\"inputTagElRef\"\n          key=\"__input-tag__\"\n        >\n          <input\n            {...this.inputProps}\n            ref=\"patternInputRef\"\n            tabindex={-1}\n            disabled={disabled}\n            value={this.pattern}\n            autofocus={this.autofocus}\n            class={`${clsPrefix}-base-selection-input-tag__input`}\n            onBlur={this.handlePatternInputBlur}\n            onFocus={this.handlePatternInputFocus}\n            onKeydown={this.handlePatternKeyDown}\n            onInput={this.handlePatternInputInput as any}\n            onCompositionstart={this.handleCompositionStart}\n            onCompositionend={this.handleCompositionEnd}\n          />\n          <span\n            ref=\"patternInputMirrorRef\"\n            class={`${clsPrefix}-base-selection-input-tag__mirror`}\n          >\n            {this.pattern}\n          </span>\n        </div>\n      ) : null\n      // May Overflow\n      const renderCounter = maxTagCountResponsive\n        ? () => (\n            <div\n              class={`${clsPrefix}-base-selection-tag-wrapper`}\n              ref=\"counterWrapperRef\"\n            >\n              <NTag\n                size={size}\n                ref=\"counterRef\"\n                onMouseenter={this.handleMouseEnterCounter}\n                onMouseleave={this.handleMouseLeaveCounter}\n                disabled={disabled}\n              />\n            </div>\n          )\n        : undefined\n      let counter: JSX.Element | undefined\n      if (maxTagCountNumeric) {\n        const rest = this.selectedOptions!.length - maxTagCount\n        if (rest > 0) {\n          counter = (\n            <div\n              class={`${clsPrefix}-base-selection-tag-wrapper`}\n              key=\"__counter__\"\n            >\n              <NTag\n                size={size}\n                ref=\"counterRef\"\n                onMouseenter={this.handleMouseEnterCounter}\n                disabled={disabled}\n              >\n                {{\n                  default: () => `+${rest}`\n                }}\n              </NTag>\n            </div>\n          )\n        }\n      }\n      const tags = maxTagCountResponsive ? (\n        filterable ? (\n          <VOverflow\n            ref=\"overflowRef\"\n            updateCounter={this.updateCounter}\n            getCounter={this.getCounter}\n            getTail={this.getTail}\n            style={{\n              width: '100%',\n              display: 'flex',\n              overflow: 'hidden'\n            }}\n          >\n            {{\n              default: createOriginalTagNodes,\n              counter: renderCounter,\n              tail: () => input\n            }}\n          </VOverflow>\n        ) : (\n          <VOverflow\n            ref=\"overflowRef\"\n            updateCounter={this.updateCounter}\n            getCounter={this.getCounter}\n            style={{\n              width: '100%',\n              display: 'flex',\n              overflow: 'hidden'\n            }}\n          >\n            {{\n              default: createOriginalTagNodes,\n              counter: renderCounter\n            }}\n          </VOverflow>\n        )\n      ) : maxTagCountNumeric && counter ? (\n        createOriginalTagNodes().concat(counter)\n      ) : (\n        createOriginalTagNodes()\n      )\n      const renderPopover = useMaxTagCount\n        ? (): JSX.Element => (\n            <div class={`${clsPrefix}-base-selection-popover`}>\n              {maxTagCountResponsive\n                ? createOriginalTagNodes()\n                : this.selectedOptions!.map(createTag)}\n            </div>\n          )\n        : undefined\n      const popoverProps = useMaxTagCount\n        ? ({\n            show: this.showTagsPanel,\n            trigger: 'hover',\n            overlap: true,\n            placement: 'top',\n            width: 'trigger',\n            onUpdateShow: this.onPopoverUpdateShow,\n            theme: this.mergedTheme.peers.Popover,\n            themeOverrides: this.mergedTheme.peerOverrides.Popover,\n            ...ellipsisTagPopoverProps\n          } as const)\n        : null\n      const showPlaceholder = this.selected\n        ? false\n        : this.active\n          ? !this.pattern && !this.isComposing\n          : true\n      const placeholder = showPlaceholder ? (\n        <div\n          class={`${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`}\n        >\n          <div class={`${clsPrefix}-base-selection-placeholder__inner`}>\n            {this.placeholder}\n          </div>\n        </div>\n      ) : null\n      const popoverTrigger = filterable ? (\n        <div\n          ref=\"patternInputWrapperRef\"\n          class={`${clsPrefix}-base-selection-tags`}\n        >\n          {tags}\n          {maxTagCountResponsive ? null : input}\n          {suffix}\n        </div>\n      ) : (\n        <div\n          ref=\"multipleElRef\"\n          class={`${clsPrefix}-base-selection-tags`}\n          tabindex={disabled ? undefined : 0}\n        >\n          {tags}\n          {suffix}\n        </div>\n      )\n      body = (\n        <>\n          {useMaxTagCount ? (\n            <NPopover\n              {...popoverProps}\n              scrollable\n              style=\"max-height: calc(var(--v-target-height) * 6.6);\"\n            >\n              {{\n                trigger: () => popoverTrigger,\n                default: renderPopover\n              }}\n            </NPopover>\n          ) : (\n            popoverTrigger\n          )}\n          {placeholder}\n        </>\n      )\n    }\n    else {\n      if (filterable) {\n        const hasInput = this.pattern || this.isComposing\n        const showPlaceholder = this.active ? !hasInput : !this.selected\n        const showSelectedLabel = this.active ? false : this.selected\n        body = (\n          <div\n            ref=\"patternInputWrapperRef\"\n            class={`${clsPrefix}-base-selection-label`}\n            title={\n              this.patternInputFocused\n                ? undefined\n                : getTitleAttribute(this.label)\n            }\n          >\n            <input\n              {...this.inputProps}\n              ref=\"patternInputRef\"\n              class={`${clsPrefix}-base-selection-input`}\n              value={this.active ? this.pattern : ''}\n              placeholder=\"\"\n              readonly={disabled}\n              disabled={disabled}\n              tabindex={-1}\n              autofocus={this.autofocus}\n              onFocus={this.handlePatternInputFocus}\n              onBlur={this.handlePatternInputBlur}\n              onInput={this.handlePatternInputInput as any}\n              onCompositionstart={this.handleCompositionStart}\n              onCompositionend={this.handleCompositionEnd}\n            />\n            {showSelectedLabel ? (\n              <div\n                class={`${clsPrefix}-base-selection-label__render-label ${clsPrefix}-base-selection-overlay`}\n                key=\"input\"\n              >\n                <div class={`${clsPrefix}-base-selection-overlay__wrapper`}>\n                  {renderTag\n                    ? renderTag({\n                        option: this.selectedOption!,\n                        handleClose: () => {}\n                      })\n                    : renderLabel\n                      ? renderLabel(this.selectedOption!, true)\n                      : render(this.label, this.selectedOption, true)}\n                </div>\n              </div>\n            ) : null}\n            {showPlaceholder ? (\n              <div\n                class={`${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`}\n                key=\"placeholder\"\n              >\n                <div class={`${clsPrefix}-base-selection-overlay__wrapper`}>\n                  {this.filterablePlaceholder}\n                </div>\n              </div>\n            ) : null}\n            {suffix}\n          </div>\n        )\n      }\n      else {\n        body = (\n          <div\n            ref=\"singleElRef\"\n            class={`${clsPrefix}-base-selection-label`}\n            tabindex={this.disabled ? undefined : 0}\n          >\n            {this.label !== undefined ? (\n              <div\n                class={`${clsPrefix}-base-selection-input`}\n                title={getTitleAttribute(this.label)}\n                key=\"input\"\n              >\n                <div class={`${clsPrefix}-base-selection-input__content`}>\n                  {renderTag\n                    ? renderTag({\n                        option: this.selectedOption!,\n                        handleClose: () => {}\n                      })\n                    : renderLabel\n                      ? renderLabel(this.selectedOption!, true)\n                      : render(this.label, this.selectedOption, true)}\n                </div>\n              </div>\n            ) : (\n              <div\n                class={`${clsPrefix}-base-selection-placeholder ${clsPrefix}-base-selection-overlay`}\n                key=\"placeholder\"\n              >\n                <div class={`${clsPrefix}-base-selection-placeholder__inner`}>\n                  {this.placeholder}\n                </div>\n              </div>\n            )}\n            {suffix}\n          </div>\n        )\n      }\n    }\n    return (\n      <div\n        ref=\"selfRef\"\n        class={[\n          `${clsPrefix}-base-selection`,\n          this.rtlEnabled && `${clsPrefix}-base-selection--rtl`,\n          this.themeClass,\n          status && `${clsPrefix}-base-selection--${status}-status`,\n          {\n            [`${clsPrefix}-base-selection--active`]: this.active,\n            [`${clsPrefix}-base-selection--selected`]:\n              this.selected || (this.active && this.pattern),\n            [`${clsPrefix}-base-selection--disabled`]: this.disabled,\n            [`${clsPrefix}-base-selection--multiple`]: this.multiple,\n            // focus is not controlled by selection itself since it always need\n            // to be managed together with menu. provide :focus style will cause\n            // many redundant codes.\n            [`${clsPrefix}-base-selection--focus`]: this.focused\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n        onClick={this.onClick}\n        onMouseenter={this.handleMouseEnter}\n        onMouseleave={this.handleMouseLeave}\n        onKeydown={this.onKeydown}\n        onFocusin={this.handleFocusin}\n        onFocusout={this.handleFocusout}\n        onMousedown={this.handleMouseDown}\n      >\n        {body}\n        {bordered ? (\n          <div class={`${clsPrefix}-base-selection__border`} />\n        ) : null}\n        {bordered ? (\n          <div class={`${clsPrefix}-base-selection__state-border`} />\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { computed, defineComponent, h, nextTick, ref, toRef, watch } from 'vue'\n\nexport default defineComponent({\n  name: 'SlotMachineNumber',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    value: {\n      // could be '+', 1, 2, ...\n      type: [Number, String] as PropType<string | number>,\n      required: true\n    },\n    oldOriginalNumber: {\n      type: Number,\n      default: undefined\n    },\n    newOriginalNumber: {\n      type: Number,\n      default: undefined\n    }\n  },\n  setup(props) {\n    const numberRef = ref<HTMLElement | null>(null)\n    const oldNumberRef = ref<number | string>(props.value)\n    const newNumberRef = ref<number | string>(props.value)\n    const scrollAnimationDirectionRef = ref<'up' | 'down'>('up')\n    const activeRef = ref(false)\n    const newNumberScrollAnimationClassRef = computed(() => {\n      return activeRef.value\n        ? `${props.clsPrefix}-base-slot-machine-current-number--${scrollAnimationDirectionRef.value}-scroll`\n        : null\n    })\n    const oldNumberScrollAnimationClassRef = computed(() => {\n      return activeRef.value\n        ? `${props.clsPrefix}-base-slot-machine-old-number--${scrollAnimationDirectionRef.value}-scroll`\n        : null\n    })\n    // BUG: may be typescript bug\n    watch(toRef(props, 'value'), (value, oldValue) => {\n      oldNumberRef.value = oldValue\n      newNumberRef.value = value\n      void nextTick(scroll)\n    })\n    function scroll(): void {\n      const newOriginalNumber = props.newOriginalNumber\n      const oldOriginalNumber = props.oldOriginalNumber\n      if (oldOriginalNumber === undefined || newOriginalNumber === undefined) {\n        return\n      }\n      if (newOriginalNumber > oldOriginalNumber) {\n        scrollByDir('up')\n      }\n      else if (oldOriginalNumber > newOriginalNumber) {\n        scrollByDir('down')\n      }\n    }\n    function scrollByDir(dir: 'up' | 'down'): void {\n      scrollAnimationDirectionRef.value = dir\n      activeRef.value = false\n      void nextTick(() => {\n        void numberRef.value?.offsetWidth\n        activeRef.value = true\n      })\n    }\n    return () => {\n      const { clsPrefix } = props\n      return (\n        <span ref={numberRef} class={`${clsPrefix}-base-slot-machine-number`}>\n          {oldNumberRef.value !== null ? (\n            <span\n              class={[\n                `${clsPrefix}-base-slot-machine-old-number ${clsPrefix}-base-slot-machine-old-number--top`,\n                oldNumberScrollAnimationClassRef.value\n              ]}\n            >\n              {oldNumberRef.value}\n            </span>\n          ) : null}\n          <span\n            class={[\n              `${clsPrefix}-base-slot-machine-current-number`,\n              newNumberScrollAnimationClassRef.value\n            ]}\n          >\n            <span\n              ref=\"numberWrapper\"\n              class={[\n                `${clsPrefix}-base-slot-machine-current-number__inner`,\n                typeof props.value !== 'number'\n                && `${clsPrefix}-base-slot-machine-current-number__inner--not-number`\n              ]}\n            >\n              {newNumberRef.value}\n            </span>\n          </span>\n          {oldNumberRef.value !== null ? (\n            <span\n              class={[\n                `${clsPrefix}-base-slot-machine-old-number ${clsPrefix}-base-slot-machine-old-number--bottom`,\n                oldNumberScrollAnimationClassRef.value\n              ]}\n            >\n              {oldNumberRef.value}\n            </span>\n          ) : null}\n        </span>\n      )\n    }\n  }\n})\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseInOut } = commonVariables\n\ninterface FadeInWidthExpandTransition {\n  duration?: string\n  delay?: string\n}\n\nexport function fadeInWidthExpandTransition({\n  duration = '.2s',\n  delay = '.1s'\n}: FadeInWidthExpandTransition = {}): CNode[] {\n  return [\n    c('&.fade-in-width-expand-transition-leave-from, &.fade-in-width-expand-transition-enter-to', {\n      opacity: 1\n    }),\n    c('&.fade-in-width-expand-transition-leave-to, &.fade-in-width-expand-transition-enter-from', `\n      opacity: 0!important;\n      margin-left: 0!important;\n      margin-right: 0!important;\n    `),\n    c('&.fade-in-width-expand-transition-leave-active', `\n      overflow: hidden;\n      transition:\n        opacity ${duration} ${cubicBezierEaseInOut},\n        max-width ${duration} ${cubicBezierEaseInOut} ${delay},\n        margin-left ${duration} ${cubicBezierEaseInOut} ${delay},\n        margin-right ${duration} ${cubicBezierEaseInOut} ${delay};\n    `),\n    c('&.fade-in-width-expand-transition-enter-active', `\n      overflow: hidden;\n      transition:\n        opacity ${duration} ${cubicBezierEaseInOut} ${delay},\n        max-width ${duration} ${cubicBezierEaseInOut},\n        margin-left ${duration} ${cubicBezierEaseInOut},\n        margin-right ${duration} ${cubicBezierEaseInOut};\n    `)\n  ]\n}\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseOut } = commonVariables\n\ninterface FadeUpWidthExpandTransition {\n  duration?: string\n}\n\nexport function fadeUpWidthExpandTransition({\n  duration = '.2s'\n}: FadeUpWidthExpandTransition = {}): CNode[] {\n  return [\n    c('&.fade-up-width-expand-transition-leave-active', {\n      transition: `\n        opacity ${duration} ${cubicBezierEaseOut},\n        max-width ${duration} ${cubicBezierEaseOut},\n        transform ${duration} ${cubicBezierEaseOut}\n      `\n    }),\n    c('&.fade-up-width-expand-transition-enter-active', {\n      transition: `\n        opacity ${duration} ${cubicBezierEaseOut},\n        max-width ${duration} ${cubicBezierEaseOut},\n        transform ${duration} ${cubicBezierEaseOut}\n      `\n    }),\n    c('&.fade-up-width-expand-transition-enter-to', {\n      opacity: 1,\n      transform: 'translateX(0) translateY(0)'\n    }),\n    c('&.fade-up-width-expand-transition-enter-from', {\n      maxWidth: '0 !important',\n      opacity: 0,\n      transform: 'translateY(60%)'\n    }),\n    c('&.fade-up-width-expand-transition-leave-from', {\n      opacity: 1,\n      transform: 'translateY(0)'\n    }),\n    c('&.fade-up-width-expand-transition-leave-to', {\n      maxWidth: '0 !important',\n      opacity: 0,\n      transform: 'translateY(60%)'\n    })\n  ]\n}\n","import { fadeInWidthExpandTransition } from '../../../../_styles/transitions/fade-in-width-expand.cssr'\nimport { fadeUpWidthExpandTransition } from '../../../../_styles/transitions/fade-up-width-expand.cssr'\nimport { c, cB, cE, cM } from '../../../../_utils/cssr'\n\n// ease-out: cubic-bezier(0, 0, .2, 1)\nexport default c([\n  c('@keyframes n-base-slot-machine-fade-up-in', `\n    from {\n      transform: translateY(60%);\n      opacity: 0;\n    }\n    to {\n      transform: translateY(0);\n      opacity: 1;\n    }\n  `),\n  c('@keyframes n-base-slot-machine-fade-down-in', `\n    from {\n      transform: translateY(-60%);\n      opacity: 0;\n    }\n    to {\n      transform: translateY(0);\n      opacity: 1;\n    }\n  `),\n  c('@keyframes n-base-slot-machine-fade-up-out', `\n    from {\n      transform: translateY(0%);\n      opacity: 1;\n    }\n    to {\n      transform: translateY(-60%);\n      opacity: 0;\n    }\n  `),\n  c('@keyframes n-base-slot-machine-fade-down-out', `\n    from {\n      transform: translateY(0%);\n      opacity: 1;\n    }\n    to {\n      transform: translateY(60%);\n      opacity: 0;\n    }\n  `),\n  cB('base-slot-machine', `\n    overflow: hidden;\n    white-space: nowrap;\n    display: inline-block;\n    height: 18px;\n    line-height: 18px;\n  `, [\n    cB('base-slot-machine-number', `\n      display: inline-block;\n      position: relative;\n      height: 18px;\n      width: .6em;\n      max-width: .6em;\n    `, [\n      fadeUpWidthExpandTransition({ duration: '.2s' }),\n      // use 0s, not 0\n      fadeInWidthExpandTransition({ duration: '.2s', delay: '0s' }),\n      cB('base-slot-machine-old-number', `\n        display: inline-block;\n        opacity: 0;\n        position: absolute;\n        left: 0;\n        right: 0;\n      `, [\n        cM('top', {\n          transform: 'translateY(-100%)'\n        }),\n        cM('bottom', {\n          transform: 'translateY(100%)'\n        }),\n        cM('down-scroll', {\n          animation: 'n-base-slot-machine-fade-down-out .2s cubic-bezier(0, 0, .2, 1)',\n          animationIterationCount: 1\n        }),\n        cM('up-scroll', {\n          animation: 'n-base-slot-machine-fade-up-out .2s cubic-bezier(0, 0, .2, 1)',\n          animationIterationCount: 1\n        })\n      ]),\n      cB('base-slot-machine-current-number', `\n        display: inline-block;\n        position: absolute;\n        left: 0;\n        top: 0;\n        bottom: 0;\n        right: 0;\n        opacity: 1;\n        transform: translateY(0);\n        width: .6em;\n      `, [\n        cM('down-scroll', {\n          animation: 'n-base-slot-machine-fade-down-in .2s cubic-bezier(0, 0, .2, 1)',\n          animationIterationCount: 1\n        }),\n        cM('up-scroll', {\n          animation: 'n-base-slot-machine-fade-up-in .2s cubic-bezier(0, 0, .2, 1)',\n          animationIterationCount: 1\n        }),\n        cE('inner', `\n            display: inline-block;\n            position: absolute;\n            right: 0;\n            top: 0;\n            width: .6em;\n          `, [\n          cM('not-number', `\n            right: unset;\n            left: 0;\n          `)\n        ])\n      ])\n    ])\n  ])\n])\n","import {\n  computed,\n  defineComponent,\n  h,\n  ref,\n  toRef,\n  TransitionGroup,\n  watch\n} from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport NFadeInExpandTransition from '../../fade-in-expand-transition'\nimport SlotMachineNumber from './SlotMachineNumber'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'BaseSlotMachine',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: [Number, String],\n      default: 0\n    },\n    max: {\n      type: Number,\n      default: undefined\n    },\n    appeared: {\n      type: Boolean,\n      required: true\n    }\n  },\n  setup(props) {\n    useStyle('-base-slot-machine', style, toRef(props, 'clsPrefix'))\n    const oldValueRef = ref<number>()\n    const newValueRef = ref<number>()\n    const numbersRef = computed(() => {\n      if (typeof props.value === 'string')\n        return []\n      if (props.value < 1)\n        return [0]\n      const numbers: number[] = []\n      let value = props.value\n      if (props.max !== undefined) {\n        value = Math.min(props.max, value)\n      }\n      while (value >= 1) {\n        numbers.push(value % 10)\n        value /= 10\n        value = Math.floor(value)\n      }\n      numbers.reverse()\n      return numbers\n    })\n    watch(toRef(props, 'value'), (value, oldValue) => {\n      if (typeof value === 'string') {\n        newValueRef.value = undefined\n        oldValueRef.value = undefined\n      }\n      else {\n        if (typeof oldValue === 'string') {\n          newValueRef.value = value\n          oldValueRef.value = undefined\n        }\n        else {\n          newValueRef.value = value\n          oldValueRef.value = oldValue\n        }\n      }\n    })\n    return () => {\n      const { value, clsPrefix } = props\n      return typeof value === 'number' ? (\n        <span class={`${clsPrefix}-base-slot-machine`}>\n          <TransitionGroup name=\"fade-up-width-expand-transition\" tag=\"span\">\n            {{\n              default: () =>\n                numbersRef.value.map((number, i) => (\n                  <SlotMachineNumber\n                    clsPrefix={clsPrefix}\n                    key={numbersRef.value.length - i - 1}\n                    oldOriginalNumber={oldValueRef.value}\n                    newOriginalNumber={newValueRef.value}\n                    value={number}\n                  />\n                ))\n            }}\n          </TransitionGroup>\n          <NFadeInExpandTransition key=\"+\" width>\n            {{\n              default: () =>\n                props.max !== undefined && props.max < value ? (\n                  <SlotMachineNumber clsPrefix={clsPrefix} value=\"+\" />\n                ) : null\n            }}\n          </NFadeInExpandTransition>\n        </span>\n      ) : (\n        <span class={`${clsPrefix}-base-slot-machine`}>{value}</span>\n      )\n    }\n  }\n})\n","import { cB } from '../../../../_utils/cssr/index'\n\nexport default cB('base-wave', `\n  position: absolute;\n  left: 0;\n  right: 0;\n  top: 0;\n  bottom: 0;\n  border-radius: inherit;\n`)\n","import { defineComponent, h, nextTick, onBeforeUnmount, ref, toRef } from 'vue'\nimport { useStyle } from '../../../_mixins'\nimport style from './styles/index.cssr'\n\nexport interface BaseWaveRef {\n  play: () => void\n}\n\nexport default defineComponent({\n  name: 'BaseWave',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    useStyle('-base-wave', style, toRef(props, 'clsPrefix'))\n    const selfRef = ref<HTMLElement | null>(null)\n    const activeRef = ref(false)\n    let animationTimerId: number | null = null\n    onBeforeUnmount(() => {\n      if (animationTimerId !== null) {\n        window.clearTimeout(animationTimerId)\n      }\n    })\n    return {\n      active: activeRef,\n      selfRef,\n      play() {\n        if (animationTimerId !== null) {\n          window.clearTimeout(animationTimerId)\n          activeRef.value = false\n          animationTimerId = null\n        }\n        void nextTick(() => {\n          void selfRef.value?.offsetHeight\n          activeRef.value = true\n          animationTimerId = window.setTimeout(() => {\n            activeRef.value = false\n            animationTimerId = null\n          }, 1000)\n        })\n      }\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div\n        ref=\"selfRef\"\n        aria-hidden\n        class={[\n          `${clsPrefix}-base-wave`,\n          this.active && `${clsPrefix}-base-wave--active`\n        ]}\n      />\n    )\n  }\n})\n","export default {\n  iconMargin: '11px 8px 0 12px',\n  iconMarginRtl: '11px 12px 0 8px',\n  iconSize: '24px',\n  closeIconSize: '16px',\n  closeSize: '20px',\n  closeMargin: '13px 14px 0 0',\n  closeMarginRtl: '13px 0 0 14px',\n  padding: '13px'\n}\n","import type { AlertTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport commonVars from './_common'\n\nconst alertDark: AlertTheme = {\n  name: 'Alert',\n  common: commonDark,\n  self(vars) {\n    const {\n      lineHeight,\n      borderRadius,\n      fontWeightStrong,\n      dividerColor,\n      inputColor,\n      textColor1,\n      textColor2,\n      closeColorHover,\n      closeColorPressed,\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed,\n      infoColorSuppl,\n      successColorSuppl,\n      warningColorSuppl,\n      errorColorSuppl,\n      fontSize\n    } = vars\n    return {\n      ...commonVars,\n      fontSize,\n      lineHeight,\n      titleFontWeight: fontWeightStrong,\n      borderRadius,\n      border: `1px solid ${dividerColor}`,\n      color: inputColor,\n      titleTextColor: textColor1,\n      iconColor: textColor2,\n      contentTextColor: textColor2,\n      closeBorderRadius: borderRadius,\n      closeColorHover,\n      closeColorPressed,\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed,\n      borderInfo: `1px solid ${changeColor(infoColorSuppl, { alpha: 0.35 })}`,\n      colorInfo: changeColor(infoColorSuppl, { alpha: 0.25 }),\n      titleTextColorInfo: textColor1,\n      iconColorInfo: infoColorSuppl,\n      contentTextColorInfo: textColor2,\n      closeColorHoverInfo: closeColorHover,\n      closeColorPressedInfo: closeColorPressed,\n      closeIconColorInfo: closeIconColor,\n      closeIconColorHoverInfo: closeIconColorHover,\n      closeIconColorPressedInfo: closeIconColorPressed,\n      borderSuccess: `1px solid ${changeColor(successColorSuppl, {\n        alpha: 0.35\n      })}`,\n      colorSuccess: changeColor(successColorSuppl, { alpha: 0.25 }),\n      titleTextColorSuccess: textColor1,\n      iconColorSuccess: successColorSuppl,\n      contentTextColorSuccess: textColor2,\n      closeColorHoverSuccess: closeColorHover,\n      closeColorPressedSuccess: closeColorPressed,\n      closeIconColorSuccess: closeIconColor,\n      closeIconColorHoverSuccess: closeIconColorHover,\n      closeIconColorPressedSuccess: closeIconColorPressed,\n      borderWarning: `1px solid ${changeColor(warningColorSuppl, {\n        alpha: 0.35\n      })}`,\n      colorWarning: changeColor(warningColorSuppl, { alpha: 0.25 }),\n      titleTextColorWarning: textColor1,\n      iconColorWarning: warningColorSuppl,\n      contentTextColorWarning: textColor2,\n      closeColorHoverWarning: closeColorHover,\n      closeColorPressedWarning: closeColorPressed,\n      closeIconColorWarning: closeIconColor,\n      closeIconColorHoverWarning: closeIconColorHover,\n      closeIconColorPressedWarning: closeIconColorPressed,\n      borderError: `1px solid ${changeColor(errorColorSuppl, { alpha: 0.35 })}`,\n      colorError: changeColor(errorColorSuppl, { alpha: 0.25 }),\n      titleTextColorError: textColor1,\n      iconColorError: errorColorSuppl,\n      contentTextColorError: textColor2,\n      closeColorHoverError: closeColorHover,\n      closeColorPressedError: closeColorPressed,\n      closeIconColorError: closeIconColor,\n      closeIconColorHoverError: closeIconColorHover,\n      closeIconColorPressedError: closeIconColorPressed\n    }\n  }\n}\n\nexport default alertDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor, composite } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    lineHeight,\n    borderRadius,\n    fontWeightStrong,\n    baseColor,\n    dividerColor,\n    actionColor,\n    textColor1,\n    textColor2,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    infoColor,\n    successColor,\n    warningColor,\n    errorColor,\n    fontSize\n  } = vars\n  return {\n    ...commonVars,\n    fontSize,\n    lineHeight,\n    titleFontWeight: fontWeightStrong,\n    borderRadius,\n    border: `1px solid ${dividerColor}`,\n    color: actionColor,\n    titleTextColor: textColor1,\n    iconColor: textColor2,\n    contentTextColor: textColor2,\n    closeBorderRadius: borderRadius,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    borderInfo: `1px solid ${composite(\n      baseColor,\n      changeColor(infoColor, { alpha: 0.25 })\n    )}`,\n    colorInfo: composite(baseColor, changeColor(infoColor, { alpha: 0.08 })),\n    titleTextColorInfo: textColor1,\n    iconColorInfo: infoColor,\n    contentTextColorInfo: textColor2,\n    closeColorHoverInfo: closeColorHover,\n    closeColorPressedInfo: closeColorPressed,\n    closeIconColorInfo: closeIconColor,\n    closeIconColorHoverInfo: closeIconColorHover,\n    closeIconColorPressedInfo: closeIconColorPressed,\n    borderSuccess: `1px solid ${composite(\n      baseColor,\n      changeColor(successColor, { alpha: 0.25 })\n    )}`,\n    colorSuccess: composite(\n      baseColor,\n      changeColor(successColor, { alpha: 0.08 })\n    ),\n    titleTextColorSuccess: textColor1,\n    iconColorSuccess: successColor,\n    contentTextColorSuccess: textColor2,\n    closeColorHoverSuccess: closeColorHover,\n    closeColorPressedSuccess: closeColorPressed,\n    closeIconColorSuccess: closeIconColor,\n    closeIconColorHoverSuccess: closeIconColorHover,\n    closeIconColorPressedSuccess: closeIconColorPressed,\n    borderWarning: `1px solid ${composite(\n      baseColor,\n      changeColor(warningColor, { alpha: 0.33 })\n    )}`,\n    colorWarning: composite(\n      baseColor,\n      changeColor(warningColor, { alpha: 0.08 })\n    ),\n    titleTextColorWarning: textColor1,\n    iconColorWarning: warningColor,\n    contentTextColorWarning: textColor2,\n    closeColorHoverWarning: closeColorHover,\n    closeColorPressedWarning: closeColorPressed,\n    closeIconColorWarning: closeIconColor,\n    closeIconColorHoverWarning: closeIconColorHover,\n    closeIconColorPressedWarning: closeIconColorPressed,\n    borderError: `1px solid ${composite(\n      baseColor,\n      changeColor(errorColor, { alpha: 0.25 })\n    )}`,\n    colorError: composite(baseColor, changeColor(errorColor, { alpha: 0.08 })),\n    titleTextColorError: textColor1,\n    iconColorError: errorColor,\n    contentTextColorError: textColor2,\n    closeColorHoverError: closeColorHover,\n    closeColorPressedError: closeColorPressed,\n    closeIconColorError: closeIconColor,\n    closeIconColorHoverError: closeIconColorHover,\n    closeIconColorPressedError: closeIconColorPressed\n  }\n}\n\nexport interface AlertThemeVars extends ReturnType<typeof self> {}\n\nconst alertLight: AlertTheme = {\n  name: 'Alert',\n  common: commonLight,\n  self\n}\n\nexport interface AlertTheme extends Theme<'Alert', AlertThemeVars> {}\n\nexport interface AlertThemeOverrides extends ExtractThemeOverrides<AlertTheme> {}\n\nexport default alertLight\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('alert', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cE('icon', `\n      left: unset;\n      right: 0;\n      margin: var(--n-icon-margin-rtl);\n    `),\n    cM('show-icon', [\n      cB('alert-body', `\n        padding-left: var(--n-padding);\n        padding-right: calc(var(--n-icon-margin-left) + var(--n-icon-size) + var(--n-icon-margin-right));\n      `)\n    ]),\n    cE('close', `\n      position: absolute;\n      right: unset;\n      left: 0;\n      margin: var(--n-close-margin-rtl);\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const alertRtl: RtlItem = {\n  name: 'Alert',\n  style: rtlStyle\n}\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst {\n  cubicBezierEaseInOut,\n  cubicBezierEaseOut,\n  cubicBezierEaseIn\n} = commonVariables\n\ninterface FadeInHeightExpandTransitionOption {\n  overflow?: string\n  duration?: string\n  originalTransition?: string\n  leavingDelay?: string\n  foldPadding?: boolean\n  enterToProps?: Record<string, string | number> | undefined\n  leaveToProps?: Record<string, string | number> | undefined\n  reverse?: boolean\n}\n\nexport function fadeInHeightExpandTransition({\n  overflow = 'hidden',\n  duration = '.3s',\n  originalTransition = '',\n  leavingDelay = '0s',\n  foldPadding = false,\n  enterToProps = undefined,\n  leaveToProps = undefined,\n  reverse = false\n}: FadeInHeightExpandTransitionOption = {}): CNode[] {\n  const enterClass = reverse ? 'leave' : 'enter'\n  const leaveClass = reverse ? 'enter' : 'leave'\n  return [\n    c(`&.fade-in-height-expand-transition-${leaveClass}-from,\n      &.fade-in-height-expand-transition-${enterClass}-to`, {\n      ...enterToProps,\n      opacity: 1\n    }),\n    c(`&.fade-in-height-expand-transition-${leaveClass}-to,\n      &.fade-in-height-expand-transition-${enterClass}-from`, {\n      ...leaveToProps,\n      opacity: 0,\n      marginTop: '0 !important',\n      marginBottom: '0 !important',\n      paddingTop: foldPadding ? '0 !important' : undefined,\n      paddingBottom: foldPadding ? '0 !important' : undefined\n    }),\n    c(`&.fade-in-height-expand-transition-${leaveClass}-active`, `\n      overflow: ${overflow};\n      transition:\n        max-height ${duration} ${cubicBezierEaseInOut} ${leavingDelay},\n        opacity ${duration} ${cubicBezierEaseOut} ${leavingDelay},\n        margin-top ${duration} ${cubicBezierEaseInOut} ${leavingDelay},\n        margin-bottom ${duration} ${cubicBezierEaseInOut} ${leavingDelay},\n        padding-top ${duration} ${cubicBezierEaseInOut} ${leavingDelay},\n        padding-bottom ${duration} ${cubicBezierEaseInOut} ${leavingDelay}\n        ${originalTransition ? `,${originalTransition}` : ''}\n    `),\n    c(`&.fade-in-height-expand-transition-${enterClass}-active`, `\n      overflow: ${overflow};\n      transition:\n        max-height ${duration} ${cubicBezierEaseInOut},\n        opacity ${duration} ${cubicBezierEaseIn},\n        margin-top ${duration} ${cubicBezierEaseInOut},\n        margin-bottom ${duration} ${cubicBezierEaseInOut},\n        padding-top ${duration} ${cubicBezierEaseInOut},\n        padding-bottom ${duration} ${cubicBezierEaseInOut}\n        ${originalTransition ? `,${originalTransition}` : ''}\n    `)\n  ]\n}\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-icon-color\n// --n-border\n// --n-title-text-color\n// --n-content-text-color\n// --n-line-height\n// --n-border-radius\n// --n-font-size\n// --n-title-font-weight\n// --n-icon-size\n// --n-icon-margin\n// --n-close-size\n// --n-close-icon-size\n// --n-close-margin\n// --n-padding\n// --n-icon-margin-left\n// --n-icon-margin-right\nexport default cB('alert', `\n  line-height: var(--n-line-height);\n  border-radius: var(--n-border-radius);\n  position: relative;\n  transition: background-color .3s var(--n-bezier);\n  background-color: var(--n-color);\n  text-align: start;\n  word-break: break-word;\n`, [\n  cE('border', `\n    border-radius: inherit;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    transition: border-color .3s var(--n-bezier);\n    border: var(--n-border);\n    pointer-events: none;\n  `),\n  cM('closable', [\n    cB('alert-body', [\n      cE('title', `\n        padding-right: 24px;\n      `)\n    ])\n  ]),\n  cE('icon', {\n    color: 'var(--n-icon-color)'\n  }),\n  cB('alert-body', {\n    padding: 'var(--n-padding)'\n  }, [\n    cE('title', {\n      color: 'var(--n-title-text-color)'\n    }),\n    cE('content', {\n      color: 'var(--n-content-text-color)'\n    })\n  ]),\n  fadeInHeightExpandTransition({\n    originalTransition: 'transform .3s var(--n-bezier)',\n    enterToProps: {\n      transform: 'scale(1)'\n    },\n    leaveToProps: {\n      transform: 'scale(0.9)'\n    }\n  }),\n  cE('icon', `\n    position: absolute;\n    left: 0;\n    top: 0;\n    align-items: center;\n    justify-content: center;\n    display: flex;\n    width: var(--n-icon-size);\n    height: var(--n-icon-size);\n    font-size: var(--n-icon-size);\n    margin: var(--n-icon-margin);\n  `),\n  cE('close', `\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    position: absolute;\n    right: 0;\n    top: 0;\n    margin: var(--n-close-margin);\n  `),\n  cM('show-icon', [\n    cB('alert-body', {\n      paddingLeft: 'calc(var(--n-icon-margin-left) + var(--n-icon-size) + var(--n-icon-margin-right))'\n    })\n  ]),\n  // fix: https://github.com/tusen-ai/naive-ui/issues/4588\n  cM('right-adjust', [\n    cB('alert-body', {\n      paddingRight: 'calc(var(--n-close-size) + var(--n-padding) + 2px)'\n    })\n  ]),\n  cB('alert-body', `\n    border-radius: var(--n-border-radius);\n    transition: border-color .3s var(--n-bezier);\n  `, [\n    cE('title', `\n      transition: color .3s var(--n-bezier);\n      font-size: 16px;\n      line-height: 19px;\n      font-weight: var(--n-title-font-weight);\n    `, [\n      c('& +', [\n        cE('content', {\n          marginTop: '9px'\n        })\n      ])\n    ]),\n    cE('content', {\n      transition: 'color .3s var(--n-bezier)',\n      fontSize: 'var(--n-font-size)'\n    })\n  ]),\n  cE('icon', {\n    transition: 'color .3s var(--n-bezier)'\n  })\n])\n","import type {\n  CSSProperties,\n  HTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { AlertTheme, AlertThemeOverrides } from '../styles'\nimport { getMargin } from 'seemly'\nimport { computed, defineComponent, h, mergeProps, ref, watchEffect } from 'vue'\nimport { NBaseClose, NBaseIcon, NFadeInExpandTransition } from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  createKey,\n  resolveSlot,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../_utils'\nimport { alertLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const alertProps = {\n  ...(useTheme.props as ThemeProps<AlertTheme, AlertThemeOverrides>),\n  title: String,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  type: {\n    type: String as PropType<\n      'info' | 'warning' | 'error' | 'success' | 'default'\n    >,\n    default: 'default'\n  },\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  closable: Boolean,\n  onClose: Function,\n  onAfterLeave: Function,\n  /** @deprecated */\n  onAfterHide: Function\n}\n\nexport type AlertProps = ExtractPublicPropTypes<typeof alertProps>\n\nexport interface AlertSlots {\n  default?: () => VNode[]\n  icon?: () => VNode[]\n  header?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Alert',\n  inheritAttrs: false,\n  props: alertProps,\n  slots: Object as SlotsType<AlertSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onAfterHide !== undefined) {\n          warnOnce(\n            'alert',\n            '`on-after-hide` is deprecated, please use `on-after-leave` instead.'\n          )\n        }\n      })\n    }\n    const {\n      mergedClsPrefixRef,\n      mergedBorderedRef,\n      inlineThemeDisabled,\n      mergedRtlRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Alert',\n      '-alert',\n      style,\n      alertLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Alert', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const {\n        fontSize,\n        borderRadius,\n        titleFontWeight,\n        lineHeight,\n        iconSize,\n        iconMargin,\n        iconMarginRtl,\n        closeIconSize,\n        closeBorderRadius,\n        closeSize,\n        closeMargin,\n        closeMarginRtl,\n        padding\n      } = self\n      const { type } = props\n      const { left, right } = getMargin(iconMargin)\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color': self[createKey('color', type)],\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-color-hover': self[createKey('closeColorHover', type)],\n        '--n-close-color-pressed': self[createKey('closeColorPressed', type)],\n        '--n-close-icon-color': self[createKey('closeIconColor', type)],\n        '--n-close-icon-color-hover':\n          self[createKey('closeIconColorHover', type)],\n        '--n-close-icon-color-pressed':\n          self[createKey('closeIconColorPressed', type)],\n        '--n-icon-color': self[createKey('iconColor', type)],\n        '--n-border': self[createKey('border', type)],\n        '--n-title-text-color': self[createKey('titleTextColor', type)],\n        '--n-content-text-color': self[createKey('contentTextColor', type)],\n        '--n-line-height': lineHeight,\n        '--n-border-radius': borderRadius,\n        '--n-font-size': fontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-icon-size': iconSize,\n        '--n-icon-margin': iconMargin,\n        '--n-icon-margin-rtl': iconMarginRtl,\n        '--n-close-size': closeSize,\n        '--n-close-margin': closeMargin,\n        '--n-close-margin-rtl': closeMarginRtl,\n        '--n-padding': padding,\n        '--n-icon-margin-left': left,\n        '--n-icon-margin-right': right\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'alert',\n          computed(() => {\n            return props.type[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    const visibleRef = ref(true)\n    const doAfterLeave = (): void => {\n      const {\n        onAfterLeave,\n        onAfterHide // deprecated\n      } = props\n      if (onAfterLeave)\n        onAfterLeave()\n      if (onAfterHide)\n        onAfterHide()\n    }\n    const handleCloseClick = (): void => {\n      void Promise.resolve(props.onClose?.()).then((result) => {\n        if (result === false)\n          return\n        visibleRef.value = false\n      })\n    }\n    const handleAfterLeave = (): void => {\n      doAfterLeave()\n    }\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      visible: visibleRef,\n      handleCloseClick,\n      handleAfterLeave,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <NFadeInExpandTransition onAfterLeave={this.handleAfterLeave}>\n        {{\n          default: () => {\n            const { mergedClsPrefix, $slots } = this\n            const attrs: HTMLAttributes = {\n              class: [\n                `${mergedClsPrefix}-alert`,\n                this.themeClass,\n                this.closable && `${mergedClsPrefix}-alert--closable`,\n                this.showIcon && `${mergedClsPrefix}-alert--show-icon`,\n                // fix: https://github.com/tusen-ai/naive-ui/issues/4588\n                !this.title\n                && this.closable\n                && `${mergedClsPrefix}-alert--right-adjust`,\n                this.rtlEnabled && `${mergedClsPrefix}-alert--rtl`\n              ],\n              style: this.cssVars as any,\n              role: 'alert'\n            }\n            return this.visible ? (\n              <div {...mergeProps(this.$attrs, attrs as any)}>\n                {this.closable && (\n                  <NBaseClose\n                    clsPrefix={mergedClsPrefix}\n                    class={`${mergedClsPrefix}-alert__close`}\n                    onClick={this.handleCloseClick}\n                  />\n                )}\n                {this.bordered && (\n                  <div class={`${mergedClsPrefix}-alert__border`} />\n                )}\n                {this.showIcon && (\n                  <div\n                    class={`${mergedClsPrefix}-alert__icon`}\n                    aria-hidden=\"true\"\n                  >\n                    {resolveSlot($slots.icon, () => [\n                      <NBaseIcon clsPrefix={mergedClsPrefix}>\n                        {{\n                          default: () => {\n                            switch (this.type) {\n                              case 'success':\n                                return <SuccessIcon />\n                              case 'info':\n                                return <InfoIcon />\n                              case 'warning':\n                                return <WarningIcon />\n                              case 'error':\n                                return <ErrorIcon />\n                              default:\n                                return null\n                            }\n                          }\n                        }}\n                      </NBaseIcon>\n                    ])}\n                  </div>\n                )}\n                <div\n                  class={[\n                    `${mergedClsPrefix}-alert-body`,\n                    this.mergedBordered\n                    && `${mergedClsPrefix}-alert-body--bordered`\n                  ]}\n                >\n                  {resolveWrappedSlot($slots.header, (children) => {\n                    const mergedChildren = children || this.title\n                    return mergedChildren ? (\n                      <div class={`${mergedClsPrefix}-alert-body__title`}>\n                        {mergedChildren}\n                      </div>\n                    ) : null\n                  })}\n                  {$slots.default && (\n                    <div class={`${mergedClsPrefix}-alert-body__content`}>\n                      {$slots.default()}\n                    </div>\n                  )}\n                </div>\n              </div>\n            ) : null\n          }\n        }}\n      </NFadeInExpandTransition>\n    )\n  }\n})\n","export default {\n  linkFontSize: '13px',\n  linkPadding: '0 0 0 16px',\n  railWidth: '4px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    railColor,\n    primaryColor,\n    primaryColorHover,\n    primaryColorPressed,\n    textColor2\n  } = vars\n  return {\n    ...commonVars,\n    borderRadius,\n    railColor,\n    railColorActive: primaryColor,\n    linkColor: changeColor(primaryColor, { alpha: 0.15 }),\n    linkTextColor: textColor2,\n    linkTextColorHover: primaryColorHover,\n    linkTextColorPressed: primaryColorPressed,\n    linkTextColorActive: primaryColor\n  }\n}\n\nexport interface AnchorThemeVars extends ReturnType<typeof self> {}\n\nconst anchorLight: AnchorTheme = {\n  name: 'Anchor',\n  common: commonLight,\n  self\n}\n\nexport interface AnchorTheme extends Theme<'Anchor', AnchorThemeVars> {}\n\nexport interface AnchorThemeOverrides extends ExtractThemeOverrides<AnchorTheme> {}\n\nexport default anchorLight\n","import type { AnchorTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst anchorDark: AnchorTheme = {\n  name: 'Anchor',\n  common: commonDark,\n  self\n}\n\nexport default anchorDark\n","import type { Ref, SlotsType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { AnchorLinkSlots } from './public-types'\nimport { useMemo } from 'vooks'\nimport { defineComponent, h, inject, ref, toRef, watch } from 'vue'\nimport {\n  createInjectionKey,\n  getTitleAttribute,\n  resolveSlot\n} from '../../_utils'\nimport {\n  useInjectionCollection,\n  useInjectionElementCollection\n} from '../../_utils/composable'\n\nexport interface AnchorInjection {\n  activeHref: Ref<string | null>\n  mergedClsPrefix: Ref<string>\n  updateBarPosition: (el: HTMLElement) => void\n  setActiveHref: (href: string, transition?: boolean) => void\n  collectedLinkHrefs: string[]\n  titleEls: HTMLElement[]\n}\n\nexport const anchorInjectionKey\n  = createInjectionKey<AnchorInjection>('n-anchor')\n\nexport const anchorLinkProps = {\n  title: String,\n  href: String\n} as const\n\nexport type AnchorLinkProps = ExtractPublicPropTypes<typeof anchorLinkProps>\n\nexport default defineComponent({\n  name: 'AnchorLink',\n  props: anchorLinkProps,\n  slots: Object as SlotsType<AnchorLinkSlots>,\n  setup(props, { slots }) {\n    const titleRef = ref<HTMLElement | null>(null)\n    const NAnchor = inject(anchorInjectionKey)!\n    const hrefRef = toRef(props, 'href')\n    const activeRef = useMemo(() => {\n      return hrefRef.value && hrefRef.value === NAnchor.activeHref.value\n    })\n    useInjectionCollection(anchorInjectionKey, 'collectedLinkHrefs', hrefRef)\n    useInjectionElementCollection(\n      anchorInjectionKey,\n      'titleEls',\n      () => titleRef.value\n    )\n    watch(activeRef, (value) => {\n      if (value && titleRef.value) {\n        NAnchor.updateBarPosition(titleRef.value)\n      }\n    })\n    function handleClick(): void {\n      if (props.href !== undefined) {\n        NAnchor.setActiveHref(props.href)\n      }\n    }\n    return () => {\n      const { value: mergedClsPrefix } = NAnchor.mergedClsPrefix\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-anchor-link`,\n            activeRef.value && `${mergedClsPrefix}-anchor-link--active`\n          ]}\n        >\n          <a\n            ref={titleRef}\n            class={[`${mergedClsPrefix}-anchor-link__title`]}\n            href={props.href}\n            title={getTitleAttribute(props.title)}\n            onClick={handleClick}\n          >\n            {resolveSlot(slots.title, () => [props.title])}\n          </a>\n          {slots.default?.()}\n        </div>\n      )\n    }\n  }\n})\n","export type OffsetTarget = Window | Document | HTMLElement\n\nexport function getOffset(\n  el: HTMLElement,\n  scrollTarget: OffsetTarget\n): {\n  top: number\n  height: number\n} {\n  const { top: elTop, height } = el.getBoundingClientRect()\n  const scrollTargetTop\n    = scrollTarget instanceof HTMLElement\n      ? scrollTarget.getBoundingClientRect().top\n      : 0\n  return {\n    top: elTop - scrollTargetTop,\n    height\n  }\n}\n","import type { PropType } from 'vue'\nimport type { OffsetTarget } from './utils'\nimport { unwrapElement } from 'seemly'\nimport { onFontsReady } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  watch\n} from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { keysOf } from '../../_utils'\nimport { anchorInjectionKey } from './Link'\nimport { getOffset } from './utils'\n\ninterface LinkInfo {\n  top: number\n  height: number\n  href: string\n}\n\nexport interface BaseAnchorInst {\n  setActiveHref: (href: string) => void\n}\n\nexport const baseAnchorProps = {\n  type: {\n    type: String as PropType<'block' | 'rail'>,\n    default: 'rail'\n  },\n  showRail: {\n    type: Boolean,\n    default: true\n  },\n  showBackground: {\n    type: Boolean,\n    default: true\n  },\n  bound: {\n    type: Number,\n    default: 12\n  },\n  internalScrollable: Boolean,\n  ignoreGap: Boolean,\n  offsetTarget: [String, Object, Function] as PropType<\n    string | OffsetTarget | (() => HTMLElement)\n  >\n} as const\n\nexport const baseAnchorPropKeys = keysOf(baseAnchorProps)\n\nexport default defineComponent({\n  name: 'BaseAnchor',\n  props: {\n    ...baseAnchorProps,\n    mergedClsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    const collectedLinkHrefs: string[] = []\n    const titleEls: HTMLElement[] = []\n    const activeHrefRef = ref<string | null>(null)\n    const slotRef = ref<HTMLElement | null>(null)\n    const barRef = ref<HTMLElement | null>(null)\n    const selfRef = ref<HTMLElement | null>(null)\n    let skipScrollHandling = false\n    const isBlockTypeRef = computed(() => {\n      return props.type === 'block'\n    })\n    const mergedShowRailRef = computed(() => {\n      return !isBlockTypeRef.value && props.showRail\n    })\n    function disableTransitionOneTick(): void {\n      const { value: barEl } = barRef\n      const { value: slotEl } = slotRef\n      if (barEl) {\n        barEl.style.transition = 'none'\n      }\n      if (slotEl) {\n        slotEl.style.transition = 'none'\n      }\n      if (titleEls) {\n        titleEls.forEach((titleEl) => {\n          titleEl.style.transition = 'none'\n        })\n      }\n      void nextTick(() => {\n        const { value: nextBarEl } = barRef\n        const { value: nextSlotEl } = slotRef\n        if (nextBarEl) {\n          void nextBarEl.offsetWidth\n          nextBarEl.style.transition = ''\n        }\n        if (nextSlotEl) {\n          void nextSlotEl.offsetWidth\n          nextSlotEl.style.transition = ''\n        }\n        if (titleEls) {\n          titleEls.forEach((titleEl) => {\n            void titleEl.offsetWidth\n            titleEl.style.transition = ''\n          })\n        }\n      })\n    }\n    function updateBarPosition(\n      linkTitleEl: HTMLElement,\n      transition = true\n    ): void {\n      const { value: barEl } = barRef\n      const { value: slotEl } = slotRef\n      const { value: selfEl } = selfRef\n      if (!selfEl || !barEl)\n        return\n      if (!transition) {\n        barEl.style.transition = 'none'\n        if (slotEl)\n          slotEl.style.transition = 'none'\n      }\n      const { offsetHeight, offsetWidth } = linkTitleEl\n      const { top: linkTitleClientTop, left: linkTitleClientLeft }\n        = linkTitleEl.getBoundingClientRect()\n      const { top: anchorClientTop, left: anchorClientLeft }\n        = selfEl.getBoundingClientRect()\n      const offsetTop = linkTitleClientTop - anchorClientTop\n      const offsetLeft = linkTitleClientLeft - anchorClientLeft\n      barEl.style.top = `${offsetTop}px`\n      barEl.style.height = `${offsetHeight}px`\n      if (slotEl) {\n        slotEl.style.top = `${offsetTop}px`\n        slotEl.style.height = `${offsetHeight}px`\n        slotEl.style.maxWidth = `${offsetWidth + offsetLeft}px`\n      }\n      void barEl.offsetHeight\n      if (slotEl)\n        void slotEl.offsetHeight\n\n      if (!transition) {\n        barEl.style.transition = ''\n        if (slotEl)\n          slotEl.style.transition = ''\n      }\n    }\n\n    let currentThrottleTimerId: ReturnType<typeof setTimeout> | undefined\n    let hasTrailingThrottledTask = false\n    let isInThrottledPeriod = false\n    const handleScroll = () => {\n      if (isInThrottledPeriod) {\n        hasTrailingThrottledTask = true\n      }\n      else {\n        if (skipScrollHandling) {\n          return\n        }\n        _handleScroll(true)\n        isInThrottledPeriod = true\n        clearTimeout(currentThrottleTimerId)\n        currentThrottleTimerId = setTimeout(() => {\n          isInThrottledPeriod = false\n          if (hasTrailingThrottledTask) {\n            hasTrailingThrottledTask = false\n            handleScroll()\n          }\n        }, 128)\n      }\n    }\n    function setActiveHref(href: string, transition = true): void {\n      const idMatchResult = /^#([^#]+)$/.exec(href)\n      if (!idMatchResult)\n        return\n      const linkEl = document.getElementById(idMatchResult[1])\n      if (!linkEl)\n        return\n      skipScrollHandling = true\n      activeHrefRef.value = href\n      linkEl.scrollIntoView()\n      if (!transition) {\n        disableTransitionOneTick()\n      }\n      hasTrailingThrottledTask = false\n      setTimeout(() => {\n        skipScrollHandling = false\n      }, 0)\n    }\n\n    function _handleScroll(transition = true): void {\n      const links: LinkInfo[] = []\n      const offsetTarget = unwrapElement(props.offsetTarget ?? document)\n      collectedLinkHrefs.forEach((href) => {\n        const idMatchResult = /#([^#]+)$/.exec(href)\n        if (!idMatchResult)\n          return\n        const linkEl = document.getElementById(idMatchResult[1])\n        if (linkEl && offsetTarget) {\n          const { top, height } = getOffset(linkEl, offsetTarget)\n          links.push({\n            top,\n            height,\n            href\n          })\n        }\n      })\n      links.sort((a, b) => {\n        // ascend top\n        if (a.top > b.top) {\n          return 1\n          // descend height\n        }\n        else if (a.top === b.top && a.height < b.height) {\n          return -1\n        }\n        return -1\n      })\n      const currentActiveHref = activeHrefRef.value\n      const { bound, ignoreGap } = props\n      const activeLink = links.reduce((prevLink: LinkInfo | null, link) => {\n        if (link.top + link.height < 0) {\n          if (ignoreGap) {\n            return link\n          }\n          else {\n            return prevLink\n          }\n        }\n        if (link.top <= bound) {\n          if (prevLink === null) {\n            return link\n          }\n          else if (link.top === prevLink.top) {\n            if (link.href === currentActiveHref) {\n              return link\n            }\n            else {\n              return prevLink\n            }\n          }\n          else if (link.top > prevLink.top) {\n            return link\n          }\n          else {\n            return prevLink\n          }\n        }\n        return prevLink\n      }, null)\n      if (!transition)\n        disableTransitionOneTick()\n      if (activeLink) {\n        activeHrefRef.value = activeLink.href\n      }\n      else {\n        activeHrefRef.value = null\n      }\n    }\n    provide(anchorInjectionKey, {\n      activeHref: activeHrefRef,\n      mergedClsPrefix: toRef(props, 'mergedClsPrefix'),\n      updateBarPosition,\n      setActiveHref,\n      collectedLinkHrefs,\n      titleEls\n    })\n    onMounted(() => {\n      document.addEventListener('scroll', handleScroll, true)\n      setActiveHref(window.location.hash)\n      _handleScroll(false)\n    })\n    onFontsReady(() => {\n      setActiveHref(window.location.hash)\n      _handleScroll(false)\n    })\n    onBeforeUnmount(() => {\n      clearTimeout(currentThrottleTimerId)\n      document.removeEventListener('scroll', handleScroll, true)\n    })\n    watch(activeHrefRef, (value) => {\n      if (value === null) {\n        const { value: slotEl } = slotRef\n        if (slotEl && !isBlockTypeRef.value) {\n          slotEl.style.maxWidth = '0'\n        }\n      }\n    })\n    return {\n      selfRef,\n      barRef,\n      slotRef,\n      setActiveHref,\n      activeHref: activeHrefRef,\n      isBlockType: isBlockTypeRef,\n      mergedShowRail: mergedShowRailRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix, mergedShowRail, isBlockType, $slots } = this\n\n    const Anchor = (\n      <div\n        class={[\n          `${mergedClsPrefix}-anchor`,\n          isBlockType && `${mergedClsPrefix}-anchor--block`,\n          mergedShowRail && `${mergedClsPrefix}-anchor--show-rail`\n        ]}\n        ref=\"selfRef\"\n      >\n        {mergedShowRail && this.showBackground ? (\n          <div\n            ref=\"slotRef\"\n            class={`${mergedClsPrefix}-anchor-link-background`}\n          />\n        ) : null}\n        {mergedShowRail ? (\n          <div class={`${mergedClsPrefix}-anchor-rail`}>\n            <div\n              ref=\"barRef\"\n              class={[\n                `${mergedClsPrefix}-anchor-rail__bar`,\n                this.activeHref !== null\n                && `${mergedClsPrefix}-anchor-rail__bar--active`\n              ]}\n            />\n          </div>\n        ) : null}\n        {$slots.default?.()}\n      </div>\n    )\n\n    return this.internalScrollable ? (\n      <NScrollbar>\n        {{\n          default: () => Anchor\n        }}\n      </NScrollbar>\n    ) : (\n      Anchor\n    )\n  }\n})\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-link-color\n// --n-link-font-size\n// --n-link-text-color\n// --n-link-text-color-hover\n// --n-link-text-color-active\n// --n-link-text-color-pressed\n// --n-bezier\n// --n-rail-color\n// --n-rail-color-active\n// --n-rail-width\n// --n-link-padding\n// --n-link-border-radius\nexport default cB('anchor', `\n  position: relative;\n`, [\n  cNotM('block', `\n    padding-left: var(--n-rail-width);\n  `, [\n    cB('anchor-link', [\n      c('+, >', [\n        cB('anchor-link', `\n          margin-top: .5em;\n        `)\n      ])\n    ]),\n    cB('anchor-link-background', `\n      max-width: 0;\n      border-top-right-radius: 10.5px;\n      border-bottom-right-radius: 10.5px;\n    `),\n    cNotM('show-rail', [\n      c('>', [\n        cB('anchor-link', 'padding-left: 0;')\n      ])\n    ])\n  ]),\n  cM('block', [\n    cB('anchor-link', `\n      margin-bottom: 4px;\n      padding: 2px 8px;\n      transition: background-color .3s var(--n-bezier);\n      background-color: transparent;\n      border-radius: var(--n-link-border-radius);\n    `, [\n      cM('active', `\n        background-color: var(--n-link-color);\n      `)\n    ])\n  ]),\n  cB('anchor-link-background', `\n    position: absolute;\n    left: calc(var(--n-rail-width) / 2);\n    width: 100%;\n    background-color: var(--n-link-color);\n    transition:\n      top .15s var(--n-bezier),\n      max-width .15s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n  `),\n  cB('anchor-rail', `\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n    width: var(--n-rail-width);\n    border-radius: calc(var(--n-rail-width) / 2);\n    overflow: hidden;\n    transition: background-color .3s var(--n-bezier);\n    background-color: var(--n-rail-color);\n  `, [\n    cE('bar', `\n      position: absolute;\n      left: 0;\n      width: var(--n-rail-width);\n      height: 21px;\n      background-color: #0000;\n      transition: \n        top .15s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `, [\n      cM('active', {\n        backgroundColor: 'var(--n-rail-color-active)'\n      })\n    ])\n  ]),\n  cB('anchor-link', `\n    padding: var(--n-link-padding);\n    position: relative;\n    line-height: 1.5;\n    font-size: var(--n-link-font-size);\n    min-height: 1.5em;\n    display: flex;\n    flex-direction: column;\n  `, [\n    cM('active', [\n      c('>', [\n        cE('title', `\n          color: var(--n-link-text-color-active);\n        `)\n      ])\n    ]),\n    cE('title', `\n      outline: none;\n      max-width: 100%;\n      text-decoration: none;\n      white-space: nowrap;\n      text-overflow: ellipsis;\n      overflow: hidden;\n      cursor: pointer;\n      display: inline-block;\n      padding-right: 16px;\n      transition: color .3s var(--n-bezier);\n      color: var(--n-link-text-color);\n    `, [\n      c('&:hover, &:focus', `\n        color: var(--n-link-text-color-hover);\n      `),\n      c('&:active', `\n        color: var(--n-link-text-color-pressed);\n      `)\n    ])\n  ])\n])\n","import type { CSSProperties } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { AnchorTheme, AnchorThemeOverrides } from '../styles'\nimport type { BaseAnchorInst } from './BaseAnchor'\nimport { computed, defineComponent, h, ref } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { keep } from '../../_utils'\nimport { NAffix } from '../../affix'\nimport { affixPropKeys, affixProps } from '../../affix/src/Affix'\nimport { anchorLight } from '../styles'\nimport NBaseAnchor, { baseAnchorPropKeys, baseAnchorProps } from './BaseAnchor'\nimport style from './styles/index.cssr'\n\nexport interface AnchorInst {\n  scrollTo: (href: string) => void\n}\n\nexport const anchorProps = {\n  ...(useTheme.props as ThemeProps<AnchorTheme, AnchorThemeOverrides>),\n  affix: Boolean,\n  ...affixProps,\n  ...baseAnchorProps\n} as const\n\nexport type AnchorProps = ExtractPublicPropTypes<typeof anchorProps>\n\nexport default defineComponent({\n  name: 'Anchor',\n  props: anchorProps,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Anchor',\n      '-anchor',\n      style,\n      anchorLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const anchorRef = ref<BaseAnchorInst | null>(null)\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          railColor,\n          linkColor,\n          railColorActive,\n          linkTextColor,\n          linkTextColorHover,\n          linkTextColorPressed,\n          linkTextColorActive,\n          linkFontSize,\n          railWidth,\n          linkPadding,\n          borderRadius\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-link-border-radius': borderRadius,\n        '--n-link-color': linkColor,\n        '--n-link-font-size': linkFontSize,\n        '--n-link-text-color': linkTextColor,\n        '--n-link-text-color-hover': linkTextColorHover,\n        '--n-link-text-color-active': linkTextColorActive,\n        '--n-link-text-color-pressed': linkTextColorPressed,\n        '--n-link-padding': linkPadding,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-rail-color': railColor,\n        '--n-rail-color-active': railColorActive,\n        '--n-rail-width': railWidth\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('anchor', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      scrollTo(href: string) {\n        anchorRef.value?.setActiveHref(href)\n      },\n      renderAnchor: () => {\n        themeClassHandle?.onRender()\n        return (\n          <NBaseAnchor\n            ref={anchorRef}\n            style={\n              inlineThemeDisabled\n                ? undefined\n                : (cssVarsRef.value as CSSProperties)\n            }\n            class={themeClassHandle?.themeClass.value}\n            {...keep(props, baseAnchorPropKeys)}\n            mergedClsPrefix={mergedClsPrefixRef.value}\n          >\n            {slots}\n          </NBaseAnchor>\n        )\n      }\n    }\n  },\n  render() {\n    return !this.affix ? (\n      this.renderAnchor()\n    ) : (\n      <NAffix {...keep(this, affixPropKeys)}>\n        {{ default: this.renderAnchor }}\n      </NAffix>\n    )\n  }\n})\n","import { isBrowser } from './is-browser'\n\nexport const isChrome = isBrowser && 'chrome' in window\nexport const isFirefox = isBrowser && navigator.userAgent.includes('Firefox')\nexport const isSafari\n  = isBrowser && navigator.userAgent.includes('Safari') && !isChrome\n","export default {\n  paddingTiny: '0 8px',\n  paddingSmall: '0 10px',\n  paddingMedium: '0 12px',\n  paddingLarge: '0 14px',\n  clearSize: '16px'\n}\n","import type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonDark } from '../../_styles/common'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    textColor3,\n    textColorDisabled,\n    primaryColor,\n    primaryColorHover,\n    inputColor,\n    inputColorDisabled,\n    warningColor,\n    warningColorHover,\n    errorColor,\n    errorColorHover,\n    borderRadius,\n    lineHeight,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    clearColor,\n    clearColorHover,\n    clearColorPressed,\n    placeholderColor,\n    placeholderColorDisabled,\n    iconColor,\n    iconColorDisabled,\n    iconColorHover,\n    iconColorPressed,\n    fontWeight\n  } = vars\n  return {\n    ...commonVariables,\n    fontWeight,\n    countTextColorDisabled: textColorDisabled,\n    countTextColor: textColor3,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    lineHeight,\n    lineHeightTextarea: lineHeight,\n    borderRadius,\n    iconSize: '16px',\n    groupLabelColor: inputColor,\n    textColor: textColor2,\n    textColorDisabled,\n    textDecorationColor: textColor2,\n    groupLabelTextColor: textColor2,\n    caretColor: primaryColor,\n    placeholderColor,\n    placeholderColorDisabled,\n    color: inputColor,\n    colorHover: inputColor,\n    colorDisabled: inputColorDisabled,\n    colorFocus: changeColor(primaryColor, { alpha: 0.1 }),\n    groupLabelBorder: '1px solid #0000',\n    border: '1px solid #0000',\n    borderHover: `1px solid ${primaryColorHover}`,\n    borderDisabled: '1px solid #0000',\n    borderFocus: `1px solid ${primaryColorHover}`,\n    boxShadowFocus: `0 0 8px 0 ${changeColor(primaryColor, { alpha: 0.3 })}`,\n    loadingColor: primaryColor,\n    // warning\n    loadingColorWarning: warningColor,\n    borderWarning: `1px solid ${warningColor}`,\n    borderHoverWarning: `1px solid ${warningColorHover}`,\n    colorFocusWarning: changeColor(warningColor, { alpha: 0.1 }),\n    borderFocusWarning: `1px solid ${warningColorHover}`,\n    boxShadowFocusWarning: `0 0 8px 0 ${changeColor(warningColor, {\n      alpha: 0.3\n    })}`,\n    caretColorWarning: warningColor,\n    // error\n    loadingColorError: errorColor,\n    borderError: `1px solid ${errorColor}`,\n    borderHoverError: `1px solid ${errorColorHover}`,\n    colorFocusError: changeColor(errorColor, { alpha: 0.1 }),\n    borderFocusError: `1px solid ${errorColorHover}`,\n    boxShadowFocusError: `0 0 8px 0 ${changeColor(errorColor, {\n      alpha: 0.3\n    })}`,\n    caretColorError: errorColor,\n    clearColor,\n    clearColorHover,\n    clearColorPressed,\n    iconColor,\n    iconColorDisabled,\n    iconColorHover,\n    iconColorPressed,\n    suffixTextColor: textColor2\n  }\n}\n\nconst inputDark = createTheme({\n  name: 'Input',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark\n  },\n  self\n})\n\nexport type InputThemeVars = ReturnType<typeof self>\nexport default inputDark\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    textColor3,\n    textColorDisabled,\n    primaryColor,\n    primaryColorHover,\n    inputColor,\n    inputColorDisabled,\n    borderColor,\n    warningColor,\n    warningColorHover,\n    errorColor,\n    errorColorHover,\n    borderRadius,\n    lineHeight,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    actionColor,\n    clearColor,\n    clearColorHover,\n    clearColorPressed,\n    placeholderColor,\n    placeholderColorDisabled,\n    iconColor,\n    iconColorDisabled,\n    iconColorHover,\n    iconColorPressed,\n    fontWeight\n  } = vars\n  return {\n    ...commonVariables,\n    fontWeight,\n    countTextColorDisabled: textColorDisabled,\n    countTextColor: textColor3,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    lineHeight,\n    lineHeightTextarea: lineHeight,\n    borderRadius,\n    iconSize: '16px',\n    groupLabelColor: actionColor,\n    groupLabelTextColor: textColor2,\n    textColor: textColor2,\n    textColorDisabled,\n    textDecorationColor: textColor2,\n    caretColor: primaryColor,\n    placeholderColor,\n    placeholderColorDisabled,\n    color: inputColor,\n    colorHover: inputColor,\n    colorDisabled: inputColorDisabled,\n    colorFocus: inputColor,\n    groupLabelBorder: `1px solid ${borderColor}`,\n    border: `1px solid ${borderColor}`,\n    borderHover: `1px solid ${primaryColorHover}`,\n    borderDisabled: `1px solid ${borderColor}`,\n    borderFocus: `1px solid ${primaryColorHover}`,\n    boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, { alpha: 0.2 })}`,\n    loadingColor: primaryColor,\n    // warning\n    loadingColorWarning: warningColor,\n    borderWarning: `1px solid ${warningColor}`,\n    borderHoverWarning: `1px solid ${warningColorHover}`,\n    colorFocusWarning: inputColor,\n    borderFocusWarning: `1px solid ${warningColorHover}`,\n    boxShadowFocusWarning: `0 0 0 2px ${changeColor(warningColor, {\n      alpha: 0.2\n    })}`,\n    caretColorWarning: warningColor,\n    // error\n    loadingColorError: errorColor,\n    borderError: `1px solid ${errorColor}`,\n    borderHoverError: `1px solid ${errorColorHover}`,\n    colorFocusError: inputColor,\n    borderFocusError: `1px solid ${errorColorHover}`,\n    boxShadowFocusError: `0 0 0 2px ${changeColor(errorColor, {\n      alpha: 0.2\n    })}`,\n    caretColorError: errorColor,\n    clearColor,\n    clearColorHover,\n    clearColorPressed,\n    iconColor,\n    iconColorDisabled,\n    iconColorHover,\n    iconColorPressed,\n    suffixTextColor: textColor2\n  }\n}\n\nconst inputLight: InputTheme = createTheme({\n  name: 'Input',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface InputThemeVars extends ReturnType<typeof self> {}\nexport interface InputTheme extends Theme<\n  'Input',\n  InputThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface InputThemeOverrides extends ExtractThemeOverrides<InputTheme> {}\n\nexport default inputLight\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('input', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cE('prefix', {\n      marginRight: 0,\n      marginLeft: '4px'\n    }),\n    cE('suffix', {\n      marginRight: '4px',\n      marginLeft: 0\n    }),\n    cM('textarea', 'width: 100%;', [\n      cB('input-word-count', `\n      left: var(--n-padding-right);\n      right: unset;\n    `)\n    ]),\n    cB('input-word-count', `\n      margin-left: 0;\n      margin-right: 4px;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const inputRtl: RtlItem = {\n  name: 'Input',\n  style: rtlStyle\n}\n","import type { Ref } from 'vue'\nimport { createInjectionKey } from '../../_utils'\n\nexport type OnUpdateValue = (\n  value: string & [string, string],\n  meta: { source: 0 | 1 | 'clear' }\n) => void\nexport type OnUpdateValueImpl = (\n  value: string | [string, string],\n  meta: { source: 0 | 1 | 'clear' }\n) => void\n\nexport interface InputWrappedRef {\n  wrapperElRef: Ref<HTMLElement | null>\n  textareaElRef: Ref<HTMLTextAreaElement | null>\n  inputElRef: Ref<HTMLInputElement | null>\n  isCompositing: Ref<boolean>\n  blur: () => void\n  clear: () => void\n  focus: () => void\n  select: () => void\n  activate: () => void\n  deactivate: () => void\n  scrollTo: (options: ScrollToOptions) => void\n}\n\nexport const inputInjectionKey = createInjectionKey<{\n  countGraphemesRef: Ref<((input: string) => number) | undefined>\n  mergedValueRef: Ref<string | [string, string] | null>\n  maxlengthRef: Ref<number | undefined>\n  mergedClsPrefixRef: Ref<string>\n}>('n-input')\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-color-hover\n// --n-font-size\n// --n-border-radius\n// --n-height\n// --n-padding-left\n// --n-padding-right\n// --n-text-color\n// --n-text-color-disabled\n// --n-caret-color\n// --n-text-decoration-color\n// --n-border\n// --n-border-disabled\n// --n-border-hover\n// --n-border-focus\n// --n-placeholder-color\n// --n-placeholder-color-disabled\n// --n-line-height-textarea\n// --n-color-disabled\n// --n-color-focus\n// --n-box-shadow-focus\n// --n-clear-color\n// --n-clear-size\n// --n-clear-color-hover\n// --n-clear-color-pressed\n// --n-suffix-text-color\n// --n-icon-color\n// --n-icon-color-hover\n// --n-icon-color-pressed\n// --n-icon-color-disabled\n// --n-count-text-color\n// --n-count-text-color-disabled\n// --n-loading-color\n// ...form item vars\nexport default cB('input', `\n  max-width: 100%;\n  cursor: text;\n  line-height: 1.5;\n  z-index: auto;\n  outline: none;\n  box-sizing: border-box;\n  position: relative;\n  display: inline-flex;\n  border-radius: var(--n-border-radius);\n  background-color: var(--n-color);\n  transition: background-color .3s var(--n-bezier);\n  font-size: var(--n-font-size);\n  font-weight: var(--n-font-weight);\n  --n-padding-vertical: calc((var(--n-height) - 1.5 * var(--n-font-size)) / 2);\n`, [\n  // common\n  cE('input, textarea', `\n    overflow: hidden;\n    flex-grow: 1;\n    position: relative;\n  `),\n  cE('input-el, textarea-el, input-mirror, textarea-mirror, separator, placeholder', `\n    box-sizing: border-box;\n    font-size: inherit;\n    line-height: 1.5;\n    font-family: inherit;\n    border: none;\n    outline: none;\n    background-color: #0000;\n    text-align: inherit;\n    transition:\n      -webkit-text-fill-color .3s var(--n-bezier),\n      caret-color .3s var(--n-bezier),\n      color .3s var(--n-bezier),\n      text-decoration-color .3s var(--n-bezier);\n  `),\n  cE('input-el, textarea-el', `\n    -webkit-appearance: none;\n    scrollbar-width: none;\n    width: 100%;\n    min-width: 0;\n    text-decoration-color: var(--n-text-decoration-color);\n    color: var(--n-text-color);\n    caret-color: var(--n-caret-color);\n    background-color: transparent;\n  `, [\n    c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', `\n      width: 0;\n      height: 0;\n      display: none;\n    `),\n    c('&::placeholder', `\n      color: #0000;\n      -webkit-text-fill-color: transparent !important;\n    `),\n    c('&:-webkit-autofill ~', [\n      cE('placeholder', 'display: none;')\n    ])\n  ]),\n  cM('round', [\n    cNotM('textarea', 'border-radius: calc(var(--n-height) / 2);')\n  ]),\n  cE('placeholder', `\n    pointer-events: none;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    overflow: hidden;\n    color: var(--n-placeholder-color);\n  `, [\n    c('span', `\n      width: 100%;\n      display: inline-block;\n    `)\n  ]),\n  cM('textarea', [\n    cE('placeholder', 'overflow: visible;')\n  ]),\n  cNotM('autosize', 'width: 100%;'),\n  cM('autosize', [\n    cE('textarea-el, input-el', `\n      position: absolute;\n      top: 0;\n      left: 0;\n      height: 100%;\n    `)\n  ]),\n  // input\n  cB('input-wrapper', `\n    overflow: hidden;\n    display: inline-flex;\n    flex-grow: 1;\n    position: relative;\n    padding-left: var(--n-padding-left);\n    padding-right: var(--n-padding-right);\n  `),\n  cE('input-mirror', `\n    padding: 0;\n    height: var(--n-height);\n    line-height: var(--n-height);\n    overflow: hidden;\n    visibility: hidden;\n    position: static;\n    white-space: pre;\n    pointer-events: none;\n  `),\n  cE('input-el', `\n    padding: 0;\n    height: var(--n-height);\n    line-height: var(--n-height);\n  `, [\n    c('&[type=password]::-ms-reveal', 'display: none;'),\n    c('+', [\n      cE('placeholder', `\n        display: flex;\n        align-items: center;  \n      `)\n    ])\n  ]),\n  cNotM('textarea', [\n    cE('placeholder', 'white-space: nowrap;')\n  ]),\n  cE('eye', `\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: color .3s var(--n-bezier);\n  `),\n  // textarea\n  cM('textarea', 'width: 100%;', [\n    cB('input-word-count', `\n      position: absolute;\n      right: var(--n-padding-right);\n      bottom: var(--n-padding-vertical);\n    `),\n    cM('resizable', [\n      cB('input-wrapper', `\n        resize: vertical;\n        min-height: var(--n-height);\n      `)\n    ]),\n    cE('textarea-el, textarea-mirror, placeholder', `\n      height: 100%;\n      padding-left: 0;\n      padding-right: 0;\n      padding-top: var(--n-padding-vertical);\n      padding-bottom: var(--n-padding-vertical);\n      word-break: break-word;\n      display: inline-block;\n      vertical-align: bottom;\n      box-sizing: border-box;\n      line-height: var(--n-line-height-textarea);\n      margin: 0;\n      resize: none;\n      white-space: pre-wrap;\n      scroll-padding-block-end: var(--n-padding-vertical);\n    `),\n    cE('textarea-mirror', `\n      width: 100%;\n      pointer-events: none;\n      overflow: hidden;\n      visibility: hidden;\n      position: static;\n      white-space: pre-wrap;\n      overflow-wrap: break-word;\n    `)\n  ]),\n  // pair\n  cM('pair', [\n    cE('input-el, placeholder', 'text-align: center;'),\n    cE('separator', `\n      display: flex;\n      align-items: center;\n      transition: color .3s var(--n-bezier);\n      color: var(--n-text-color);\n      white-space: nowrap;\n    `, [\n      cB('icon', `\n        color: var(--n-icon-color);\n      `),\n      cB('base-icon', `\n        color: var(--n-icon-color);\n      `)\n    ])\n  ]),\n  cM('disabled', `\n    cursor: not-allowed;\n    background-color: var(--n-color-disabled);\n  `, [\n    cE('border', 'border: var(--n-border-disabled);'),\n    cE('input-el, textarea-el', `\n      cursor: not-allowed;\n      color: var(--n-text-color-disabled);\n      text-decoration-color: var(--n-text-color-disabled);\n    `),\n    cE('placeholder', 'color: var(--n-placeholder-color-disabled);'),\n    cE('separator', 'color: var(--n-text-color-disabled);', [\n      cB('icon', `\n        color: var(--n-icon-color-disabled);\n      `),\n      cB('base-icon', `\n        color: var(--n-icon-color-disabled);\n      `)\n    ]),\n    cB('input-word-count', `\n      color: var(--n-count-text-color-disabled);\n    `),\n    cE('suffix, prefix', 'color: var(--n-text-color-disabled);', [\n      cB('icon', `\n        color: var(--n-icon-color-disabled);\n      `),\n      cB('internal-icon', `\n        color: var(--n-icon-color-disabled);\n      `)\n    ])\n  ]),\n  cNotM('disabled', [\n    cE('eye', `\n      color: var(--n-icon-color);\n      cursor: pointer;\n    `, [\n      c('&:hover', `\n        color: var(--n-icon-color-hover);\n      `),\n      c('&:active', `\n        color: var(--n-icon-color-pressed);\n      `)\n    ]),\n    c('&:hover', 'background-color: var(--n-color-hover);', [\n      cE('state-border', 'border: var(--n-border-hover);')\n    ]),\n    cM('focus', 'background-color: var(--n-color-focus);', [\n      cE('state-border', `\n        border: var(--n-border-focus);\n        box-shadow: var(--n-box-shadow-focus);\n      `)\n    ])\n  ]),\n  cE('border, state-border', `\n    box-sizing: border-box;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    pointer-events: none;\n    border-radius: inherit;\n    border: var(--n-border);\n    transition:\n      box-shadow .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n  `),\n  cE('state-border', `\n    border-color: #0000;\n    z-index: 1;\n  `),\n  cE('prefix', 'margin-right: 4px;'),\n  cE('suffix', `\n    margin-left: 4px;\n  `),\n  cE('suffix, prefix', `\n    transition: color .3s var(--n-bezier);\n    flex-wrap: nowrap;\n    flex-shrink: 0;\n    line-height: var(--n-height);\n    white-space: nowrap;\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    color: var(--n-suffix-text-color);\n  `, [\n    cB('base-loading', `\n      font-size: var(--n-icon-size);\n      margin: 0 2px;\n      color: var(--n-loading-color);\n    `),\n    cB('base-clear', `\n      font-size: var(--n-icon-size);\n    `, [\n      cE('placeholder', [\n        cB('base-icon', `\n          transition: color .3s var(--n-bezier);\n          color: var(--n-icon-color);\n          font-size: var(--n-icon-size);\n        `)\n      ])\n    ]),\n    c('>', [\n      cB('icon', `\n        transition: color .3s var(--n-bezier);\n        color: var(--n-icon-color);\n        font-size: var(--n-icon-size);\n      `)\n    ]),\n    cB('base-icon', `\n      font-size: var(--n-icon-size);\n    `)\n  ]),\n  cB('input-word-count', `\n    pointer-events: none;\n    line-height: 1.5;\n    font-size: .85em;\n    color: var(--n-count-text-color);\n    transition: color .3s var(--n-bezier);\n    margin-left: 4px;\n    font-variant: tabular-nums;\n  `),\n  ['warning', 'error'].map(status => cM(`${status}-status`, [\n    cNotM('disabled', [\n      cB('base-loading', `\n        color: var(--n-loading-color-${status})\n      `),\n      cE('input-el, textarea-el', `\n        caret-color: var(--n-caret-color-${status});\n      `),\n      cE('state-border', `\n        border: var(--n-border-${status});\n      `),\n      c('&:hover', [\n        cE('state-border', `\n          border: var(--n-border-hover-${status});\n        `)\n      ]),\n      c('&:focus', `\n        background-color: var(--n-color-focus-${status});\n      `, [\n        cE('state-border', `\n          box-shadow: var(--n-box-shadow-focus-${status});\n          border: var(--n-border-focus-${status});\n        `)\n      ]),\n      cM('focus', `\n        background-color: var(--n-color-focus-${status});\n      `, [\n        cE('state-border', `\n          box-shadow: var(--n-box-shadow-focus-${status});\n          border: var(--n-border-focus-${status});\n        `)\n      ])\n    ])\n  ]))\n])\n\nexport const safariStyle = cB('input', [\n  cM('disabled', [\n    cE('input-el, textarea-el', `\n      -webkit-text-fill-color: var(--n-text-color-disabled);\n    `)\n  ])\n])\n","import type { Ref } from 'vue'\nimport { ref, watch } from 'vue'\n\nexport function len(s: string): number {\n  let count = 0\n  for (const _ of s) {\n    count++\n  }\n  return count\n}\n\nexport function isEmptyInputValue(value: unknown): boolean {\n  return value === '' || value == null\n}\n\nexport interface UseCursorControl {\n  recordCursor: () => void\n  restoreCursor: () => void\n}\n\nexport function useCursor(\n  inputElRef: Ref<HTMLInputElement | HTMLTextAreaElement | null>\n): UseCursorControl {\n  const selectionRef = ref<{\n    start: number\n    end: number\n    beforeText: string\n    afterText: string\n  } | null>(null)\n\n  function recordCursor(): void {\n    const { value: input } = inputElRef\n    if (!input?.focus) {\n      reset()\n      return\n    }\n    const { selectionStart, selectionEnd, value } = input\n    if (selectionStart == null || selectionEnd == null) {\n      reset()\n      return\n    }\n    selectionRef.value = {\n      start: selectionStart,\n      end: selectionEnd,\n      beforeText: value.slice(0, selectionStart),\n      afterText: value.slice(selectionEnd)\n    }\n  }\n\n  function restoreCursor(): void {\n    const { value: selection } = selectionRef\n    const { value: inputEl } = inputElRef\n    if (!selection || !inputEl) {\n      return\n    }\n    const { value } = inputEl\n    const { start, beforeText, afterText } = selection\n    let startPos = value.length\n    if (value.endsWith(afterText)) {\n      startPos = value.length - afterText.length\n    }\n    else if (value.startsWith(beforeText)) {\n      startPos = beforeText.length\n    }\n    else {\n      const beforeLastChar = beforeText[start - 1]\n      const newIndex = value.indexOf(beforeLastChar, start - 1)\n      if (newIndex !== -1) {\n        startPos = newIndex + 1\n      }\n    }\n    inputEl.setSelectionRange?.(startPos, startPos)\n  }\n\n  function reset(): void {\n    selectionRef.value = null\n  }\n  watch(inputElRef, reset)\n\n  return {\n    recordCursor,\n    restoreCursor\n  }\n}\n","import { computed, defineComponent, h, inject } from 'vue'\nimport { resolveSlotWithTypedProps } from '../../_utils'\nimport { inputInjectionKey } from './interface'\nimport { len } from './utils'\n\nexport default defineComponent({\n  name: 'InputWordCount',\n  setup(_, { slots }) {\n    const {\n      mergedValueRef,\n      maxlengthRef,\n      mergedClsPrefixRef,\n      countGraphemesRef\n    } = inject(inputInjectionKey)!\n    const wordCountRef = computed(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (mergedValue === null || Array.isArray(mergedValue))\n        return 0\n      return (countGraphemesRef.value || len)(mergedValue)\n    })\n    return () => {\n      const { value: maxlength } = maxlengthRef\n      const { value: mergedValue } = mergedValueRef\n      return (\n        <span class={`${mergedClsPrefixRef.value}-input-word-count`}>\n          {resolveSlotWithTypedProps(\n            slots.default,\n            {\n              value:\n                mergedValue === null || Array.isArray(mergedValue)\n                  ? ''\n                  : mergedValue\n            },\n            () => [\n              maxlength === undefined\n                ? wordCountRef.value\n                : `${wordCountRef.value} / ${maxlength}`\n            ]\n          )}\n        </span>\n      )\n    }\n  }\n})\n","import type {\n  CSSProperties,\n  InputHTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  TextareaHTMLAttributes,\n  VNode,\n  VNodeChild,\n  WatchStopHandle\n} from 'vue'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputTheme, InputThemeOverrides } from '../styles'\nimport type {\n  InputWrappedRef,\n  OnUpdateValue,\n  OnUpdateValueImpl\n} from './interface'\nimport type { InputSize } from './public-types'\nimport { off, on } from 'evtd'\nimport { getPadding } from 'seemly'\nimport { useMemo, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  getCurrentInstance,\n  h,\n  nextTick,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { NBaseClear, NBaseIcon, NBaseSuffix, NScrollbar } from '../../_internal'\nimport { EyeIcon, EyeOffIcon } from '../../_internal/icons'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useStyle,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, createKey, resolveSlot, resolveWrappedSlot } from '../../_utils'\nimport { isSafari } from '../../_utils/env/browser'\nimport { inputLight } from '../styles'\nimport { inputInjectionKey } from './interface'\nimport style, { safariStyle } from './styles/input.cssr'\nimport { isEmptyInputValue, useCursor } from './utils'\nimport WordCount from './WordCount'\n\nexport const inputProps = {\n  ...(useTheme.props as ThemeProps<InputTheme, InputThemeOverrides>),\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  type: {\n    type: String as PropType<'text' | 'textarea' | 'password'>,\n    default: 'text'\n  },\n  placeholder: [Array, String] as PropType<string | [string, string]>,\n  defaultValue: {\n    type: [String, Array] as PropType<null | string | [string, string]>,\n    default: null\n  },\n  value: [String, Array] as PropType<null | string | [string, string]>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  size: String as PropType<InputSize>,\n  rows: {\n    type: [Number, String] as PropType<number | string>,\n    default: 3\n  },\n  round: Boolean,\n  minlength: [String, Number] as PropType<number | string>,\n  maxlength: [String, Number] as PropType<number | string>,\n  clearable: Boolean,\n  autosize: {\n    type: [Boolean, Object] as PropType<\n      boolean | { minRows?: number, maxRows?: number }\n    >,\n    default: false\n  },\n  pair: Boolean,\n  separator: String,\n  readonly: {\n    type: [String, Boolean],\n    default: false\n  },\n  passivelyActivated: Boolean,\n  showPasswordOn: String as PropType<'mousedown' | 'click'>,\n  stateful: {\n    type: Boolean,\n    default: true\n  },\n  autofocus: Boolean,\n  inputProps: Object as PropType<TextareaHTMLAttributes | InputHTMLAttributes>,\n  resizable: {\n    type: Boolean,\n    default: true\n  },\n  showCount: Boolean,\n  loading: {\n    type: Boolean,\n    default: undefined\n  },\n  allowInput: Function as PropType<(value: string) => boolean>,\n  renderCount: Function as PropType<(props: { value: string }) => VNodeChild>,\n  onMousedown: Function as PropType<(e: MouseEvent) => void>,\n  onKeydown: Function as PropType<(e: KeyboardEvent) => void>,\n  onKeyup: [Function, Array] as PropType<(e: KeyboardEvent) => void>,\n  onInput: [Function, Array] as PropType<OnUpdateValue>,\n  onFocus: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onBlur: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onClick: [Function, Array] as PropType<MaybeArray<(e: MouseEvent) => void>>,\n  onChange: [Function, Array] as PropType<OnUpdateValue>,\n  onClear: [Function, Array] as PropType<MaybeArray<(e: MouseEvent) => void>>,\n  countGraphemes: Function as PropType<(value: string) => number>,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  /** private */\n  textDecoration: [String, Array] as PropType<string | [string, string]>,\n  attrSize: {\n    type: Number,\n    default: 20\n  },\n  onInputBlur: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void>\n  >,\n  onInputFocus: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void>\n  >,\n  onDeactivate: [Function, Array] as PropType<MaybeArray<() => void>>,\n  onActivate: [Function, Array] as PropType<MaybeArray<() => void>>,\n  onWrapperFocus: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void>\n  >,\n  onWrapperBlur: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void>\n  >,\n  internalDeactivateOnEnter: Boolean,\n  internalForceFocus: Boolean,\n  internalLoadingBeforeSuffix: {\n    type: Boolean,\n    default: true\n  },\n  /** deprecated */\n  showPasswordToggle: Boolean\n}\n\nexport type InputProps = ExtractPublicPropTypes<typeof inputProps>\n\nexport interface InputSlots {\n  'clear-icon'?: () => VNode[]\n  count?: (props: { value: string }) => VNode[]\n  'password-invisible-icon'?: () => VNode[]\n  'password-visible-icon'?: () => VNode[]\n  prefix?: () => VNode[]\n  separator?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Input',\n  props: inputProps,\n  slots: Object as SlotsType<InputSlots>,\n  setup(props) {\n    const {\n      mergedClsPrefixRef,\n      mergedBorderedRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Input',\n      '-input',\n      style,\n      inputLight,\n      props,\n      mergedClsPrefixRef\n    )\n    if (isSafari) {\n      useStyle('-input-safari', safariStyle, mergedClsPrefixRef)\n    }\n    // dom refs\n    const wrapperElRef = ref<HTMLElement | null>(null)\n    const textareaElRef = ref<HTMLTextAreaElement | null>(null)\n    const textareaMirrorElRef = ref<HTMLElement | null>(null)\n    const inputMirrorElRef = ref<HTMLElement | null>(null)\n    const inputElRef = ref<HTMLInputElement | null>(null)\n    const inputEl2Ref = ref<HTMLInputElement | null>(null)\n    const currentFocusedInputRef = ref<\n      HTMLInputElement | HTMLTextAreaElement | null\n    >(null)\n    const focusedInputCursorControl = useCursor(currentFocusedInputRef)\n    const textareaScrollbarInstRef = ref<ScrollbarInst | null>(null)\n    // local\n    const { localeRef } = useLocale('Input')\n    // value\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    // form-item\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as InputSize\n        const configSize = mergedComponentPropsRef?.value?.Input?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    // states\n    const focusedRef = ref(false)\n    const hoverRef = ref(false)\n    const isComposingRef = ref(false)\n    const activatedRef = ref(false)\n    let syncSource: string | null = null\n    // placeholder\n    const mergedPlaceholderRef = computed<[string, string] | [string]>(() => {\n      const { placeholder, pair } = props\n      if (pair) {\n        if (Array.isArray(placeholder)) {\n          return placeholder\n        }\n        else if (placeholder === undefined) {\n          return ['', '']\n        }\n        return [placeholder, placeholder]\n      }\n      else if (placeholder === undefined) {\n        return [localeRef.value.placeholder]\n      }\n      else {\n        return [placeholder] as [string]\n      }\n    })\n    const showPlaceholder1Ref = computed(() => {\n      const { value: isComposing } = isComposingRef\n      const { value: mergedValue } = mergedValueRef\n      const { value: mergedPlaceholder } = mergedPlaceholderRef\n      return (\n        !isComposing\n        && (isEmptyInputValue(mergedValue)\n          || (Array.isArray(mergedValue) && isEmptyInputValue(mergedValue[0])))\n        && mergedPlaceholder[0]\n      )\n    })\n    const showPlaceholder2Ref = computed(() => {\n      const { value: isComposing } = isComposingRef\n      const { value: mergedValue } = mergedValueRef\n      const { value: mergedPlaceholder } = mergedPlaceholderRef\n      return (\n        !isComposing\n        && mergedPlaceholder[1]\n        && (isEmptyInputValue(mergedValue)\n          || (Array.isArray(mergedValue) && isEmptyInputValue(mergedValue[1])))\n      )\n    })\n    // focus\n    const mergedFocusRef = useMemo(() => {\n      return props.internalForceFocus || focusedRef.value\n    })\n    // clear\n    const showClearButton = useMemo(() => {\n      if (\n        mergedDisabledRef.value\n        || props.readonly\n        || !props.clearable\n        || (!mergedFocusRef.value && !hoverRef.value)\n      ) {\n        return false\n      }\n      const { value: mergedValue } = mergedValueRef\n      const { value: mergedFocus } = mergedFocusRef\n      if (props.pair) {\n        return (\n          !!(\n            Array.isArray(mergedValue)\n            && (mergedValue[0] || mergedValue[1])\n          )\n          && (hoverRef.value || mergedFocus)\n        )\n      }\n      else {\n        return !!mergedValue && (hoverRef.value || mergedFocus)\n      }\n    })\n    // passwordVisible\n    const mergedShowPasswordOnRef = computed(() => {\n      const { showPasswordOn } = props\n      if (showPasswordOn) {\n        return showPasswordOn\n      }\n      if (props.showPasswordToggle)\n        return 'click'\n      return undefined\n    })\n    const passwordVisibleRef = ref<boolean>(false)\n    // text-decoration\n    const textDecorationStyleRef = computed(() => {\n      const { textDecoration } = props\n      if (!textDecoration)\n        return ['', '']\n      if (Array.isArray(textDecoration)) {\n        return textDecoration.map(v => ({\n          textDecoration: v\n        }))\n      }\n      return [\n        {\n          textDecoration\n        }\n      ]\n    })\n    const textAreaScrollContainerWidthRef = ref<number | undefined>(undefined)\n    // textarea autosize\n    const updateTextAreaStyle = (): void => {\n      if (props.type === 'textarea') {\n        const { autosize } = props\n        if (autosize) {\n          textAreaScrollContainerWidthRef.value\n            = textareaScrollbarInstRef.value?.$el?.offsetWidth\n        }\n        if (!textareaElRef.value)\n          return\n        if (typeof autosize === 'boolean')\n          return\n        const {\n          paddingTop: stylePaddingTop,\n          paddingBottom: stylePaddingBottom,\n          lineHeight: styleLineHeight\n        } = window.getComputedStyle(textareaElRef.value)\n        const paddingTop = Number(stylePaddingTop.slice(0, -2))\n        const paddingBottom = Number(stylePaddingBottom.slice(0, -2))\n        const lineHeight = Number(styleLineHeight.slice(0, -2))\n        const { value: textareaMirrorEl } = textareaMirrorElRef\n        if (!textareaMirrorEl)\n          return\n        if (autosize.minRows) {\n          const minRows = Math.max(autosize.minRows, 1)\n          const styleMinHeight = `${\n            paddingTop + paddingBottom + lineHeight * minRows\n          }px`\n          textareaMirrorEl.style.minHeight = styleMinHeight\n        }\n        if (autosize.maxRows) {\n          const styleMaxHeight = `${\n            paddingTop + paddingBottom + lineHeight * autosize.maxRows\n          }px`\n          textareaMirrorEl.style.maxHeight = styleMaxHeight\n        }\n      }\n    }\n    // word count\n    const maxlengthRef = computed(() => {\n      const { maxlength } = props\n      return maxlength === undefined ? undefined : Number(maxlength)\n    })\n    onMounted(() => {\n      // sync mirror if is not pair\n      const { value } = mergedValueRef\n      if (!Array.isArray(value)) {\n        syncMirror(value)\n      }\n    })\n    // other methods\n    const vm = getCurrentInstance()!.proxy!\n    function doUpdateValue(\n      value: [string, string],\n      meta: { source: 0 | 1 | 'clear' }\n    ): void\n    function doUpdateValue(\n      value: string,\n      meta: { source: 0 | 1 | 'clear' }\n    ): void\n    function doUpdateValue(\n      value: string | [string, string],\n      meta: { source: 0 | 1 | 'clear' }\n    ): void {\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue, onInput } = props\n      const { nTriggerFormInput } = formItem\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value, meta)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, value, meta)\n      if (onInput)\n        call(onInput as OnUpdateValueImpl, value, meta)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n    }\n    function doChange(\n      value: [string, string],\n      meta: { source: 0 | 1 | 'clear' }\n    ): void\n    function doChange(value: string, meta: { source: 0 | 1 | 'clear' }): void\n    function doChange(\n      value: string | [string, string],\n      meta: { source: 0 | 1 | 'clear' }\n    ): void {\n      const { onChange } = props\n      const { nTriggerFormChange } = formItem\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value, meta)\n      uncontrolledValueRef.value = value\n      nTriggerFormChange()\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function doClear(e: MouseEvent): void {\n      const { onClear } = props\n      if (onClear)\n        call(onClear, e)\n    }\n    function doUpdateValueBlur(e: FocusEvent): void {\n      const { onInputBlur } = props\n      if (onInputBlur)\n        call(onInputBlur, e)\n    }\n    function doUpdateValueFocus(e: FocusEvent): void {\n      const { onInputFocus } = props\n      if (onInputFocus)\n        call(onInputFocus, e)\n    }\n    function doDeactivate(): void {\n      const { onDeactivate } = props\n      if (onDeactivate)\n        call(onDeactivate)\n    }\n    function doActivate(): void {\n      const { onActivate } = props\n      if (onActivate)\n        call(onActivate)\n    }\n    function doClick(e: MouseEvent): void {\n      const { onClick } = props\n      if (onClick)\n        call(onClick, e)\n    }\n    function doWrapperFocus(e: FocusEvent): void {\n      const { onWrapperFocus } = props\n      if (onWrapperFocus)\n        call(onWrapperFocus, e)\n    }\n    function doWrapperBlur(e: FocusEvent): void {\n      const { onWrapperBlur } = props\n      if (onWrapperBlur)\n        call(onWrapperBlur, e)\n    }\n    // methods\n    function handleCompositionStart(): void {\n      isComposingRef.value = true\n    }\n    function handleCompositionEnd(e: CompositionEvent): void {\n      isComposingRef.value = false\n      if (e.target === inputEl2Ref.value) {\n        handleInput(e, 1)\n      }\n      else {\n        handleInput(e, 0)\n      }\n    }\n    function handleInput(\n      e: InputEvent | CompositionEvent | Event,\n      index: 0 | 1 = 0,\n      event = 'input'\n    ): void {\n      const targetValue = (e.target as HTMLInputElement).value\n      syncMirror(targetValue)\n      if (e instanceof InputEvent && !e.isComposing) {\n        isComposingRef.value = false\n      }\n      if (props.type === 'textarea') {\n        const { value: textareaScrollbarInst } = textareaScrollbarInstRef\n        if (textareaScrollbarInst) {\n          textareaScrollbarInst.syncUnifiedContainer()\n        }\n      }\n      syncSource = targetValue\n      if (isComposingRef.value)\n        return\n      focusedInputCursorControl.recordCursor()\n      const isIncomingValueValid = allowInput(targetValue)\n      if (isIncomingValueValid) {\n        if (!props.pair) {\n          if (event === 'input') {\n            doUpdateValue(targetValue, { source: index })\n          }\n          else {\n            doChange(targetValue, { source: index })\n          }\n        }\n        else {\n          let { value } = mergedValueRef\n          if (!Array.isArray(value)) {\n            value = ['', '']\n          }\n          else {\n            value = [value[0], value[1]]\n          }\n          value[index] = targetValue\n          if (event === 'input') {\n            doUpdateValue(value, { source: index })\n          }\n          else {\n            doChange(value, { source: index })\n          }\n        }\n      }\n      // force update to sync input's view with value\n      // if not set, after input, input value won't sync with dom input value\n      vm.$forceUpdate()\n      if (!isIncomingValueValid) {\n        void nextTick(focusedInputCursorControl.restoreCursor)\n      }\n    }\n    function allowInput(value: string): boolean {\n      const { countGraphemes, maxlength, minlength } = props\n      if (countGraphemes) {\n        let graphemesCount: number | undefined\n        if (maxlength !== undefined) {\n          if (graphemesCount === undefined) {\n            graphemesCount = countGraphemes(value)\n          }\n          if (graphemesCount > Number(maxlength))\n            return false\n        }\n        if (minlength !== undefined) {\n          if (graphemesCount === undefined) {\n            graphemesCount = countGraphemes(value)\n          }\n          if (graphemesCount < Number(maxlength))\n            return false\n        }\n      }\n      const { allowInput } = props\n      if (typeof allowInput === 'function') {\n        return allowInput(value)\n      }\n      return true\n    }\n    function handleInputBlur(e: FocusEvent): void {\n      doUpdateValueBlur(e)\n      if (e.relatedTarget === wrapperElRef.value) {\n        doDeactivate()\n      }\n      if (!(\n        e.relatedTarget !== null\n        && (e.relatedTarget === inputElRef.value\n          || e.relatedTarget === inputEl2Ref.value\n          || e.relatedTarget === textareaElRef.value)\n      )) {\n        activatedRef.value = false\n      }\n      dealWithEvent(e, 'blur')\n      currentFocusedInputRef.value = null\n    }\n    function handleInputFocus(e: FocusEvent, index: number): void {\n      doUpdateValueFocus(e)\n      focusedRef.value = true\n      activatedRef.value = true\n      doActivate()\n      dealWithEvent(e, 'focus')\n      if (index === 0) {\n        currentFocusedInputRef.value = inputElRef.value\n      }\n      else if (index === 1) {\n        currentFocusedInputRef.value = inputEl2Ref.value\n      }\n      else if (index === 2) {\n        currentFocusedInputRef.value = textareaElRef.value\n      }\n    }\n    function handleWrapperBlur(e: FocusEvent): void {\n      if (props.passivelyActivated) {\n        doWrapperBlur(e)\n        dealWithEvent(e, 'blur')\n      }\n    }\n    function handleWrapperFocus(e: FocusEvent): void {\n      if (props.passivelyActivated) {\n        focusedRef.value = true\n        doWrapperFocus(e)\n        dealWithEvent(e, 'focus')\n      }\n    }\n    function dealWithEvent(e: FocusEvent, type: 'focus' | 'blur'): void {\n      if (\n        e.relatedTarget !== null\n        && (e.relatedTarget === inputElRef.value\n          || e.relatedTarget === inputEl2Ref.value\n          || e.relatedTarget === textareaElRef.value\n          || e.relatedTarget === wrapperElRef.value)\n      ) {\n        /**\n         * activeElement transfer inside the input, do nothing\n         */\n      }\n      else {\n        if (type === 'focus') {\n          doFocus(e)\n          focusedRef.value = true\n        }\n        else if (type === 'blur') {\n          doBlur(e)\n          focusedRef.value = false\n        }\n      }\n    }\n    function handleChange(e: Event, index?: 0 | 1): void {\n      handleInput(e, index, 'change')\n    }\n    function handleClick(e: MouseEvent): void {\n      doClick(e)\n    }\n    function handleClear(e: MouseEvent): void {\n      doClear(e)\n      clearValue()\n    }\n    function clearValue(): void {\n      if (props.pair) {\n        doUpdateValue(['', ''], { source: 'clear' })\n        doChange(['', ''], { source: 'clear' })\n      }\n      else {\n        doUpdateValue('', { source: 'clear' })\n        doChange('', { source: 'clear' })\n      }\n    }\n    function handleMouseDown(e: MouseEvent): void {\n      const { onMousedown } = props\n      if (onMousedown)\n        onMousedown(e)\n      const { tagName } = e.target as HTMLElement\n      if (tagName !== 'INPUT' && tagName !== 'TEXTAREA') {\n        if (props.resizable) {\n          const { value: wrapperEl } = wrapperElRef\n          if (wrapperEl) {\n            const { left, top, width, height }\n              = wrapperEl.getBoundingClientRect()\n            const resizeHandleSize = 14\n            if (\n              left + width - resizeHandleSize < e.clientX\n              && e.clientX < left + width\n              && top + height - resizeHandleSize < e.clientY\n              && e.clientY < top + height\n            ) {\n              // touching resize handle, just let it go.\n              // resize won't take focus, maybe there is a better way to do this.\n              // hope someone can figure out a better solution\n              return\n            }\n          }\n        }\n        e.preventDefault()\n        if (!focusedRef.value) {\n          focus()\n        }\n      }\n    }\n    function handleMouseEnter(): void {\n      hoverRef.value = true\n      if (props.type === 'textarea') {\n        textareaScrollbarInstRef.value?.handleMouseEnterWrapper()\n      }\n    }\n    function handleMouseLeave(): void {\n      hoverRef.value = false\n      if (props.type === 'textarea') {\n        textareaScrollbarInstRef.value?.handleMouseLeaveWrapper()\n      }\n    }\n    function handlePasswordToggleClick(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (mergedShowPasswordOnRef.value !== 'click')\n        return\n      passwordVisibleRef.value = !passwordVisibleRef.value\n    }\n    function handlePasswordToggleMousedown(e: MouseEvent): void {\n      if (mergedDisabledRef.value)\n        return\n      e.preventDefault()\n      const preventDefaultOnce = (e: MouseEvent): void => {\n        e.preventDefault()\n        off('mouseup', document, preventDefaultOnce)\n      }\n      on('mouseup', document, preventDefaultOnce)\n      if (mergedShowPasswordOnRef.value !== 'mousedown')\n        return\n      passwordVisibleRef.value = true\n      const hidePassword = (): void => {\n        passwordVisibleRef.value = false\n        off('mouseup', document, hidePassword)\n      }\n      on('mouseup', document, hidePassword)\n    }\n    function handleWrapperKeyup(e: KeyboardEvent): void {\n      if (props.onKeyup)\n        call(props.onKeyup, e)\n    }\n    function handleWrapperKeydown(e: KeyboardEvent): void {\n      if (props.onKeydown)\n        call(props.onKeydown, e)\n      switch (e.key) {\n        case 'Escape':\n          handleWrapperKeydownEsc()\n          break\n        case 'Enter':\n          handleWrapperKeydownEnter(e)\n          break\n      }\n    }\n    function handleWrapperKeydownEnter(e: KeyboardEvent): void {\n      if (props.passivelyActivated) {\n        const { value: focused } = activatedRef\n        if (focused) {\n          if (props.internalDeactivateOnEnter) {\n            handleWrapperKeydownEsc()\n          }\n          return\n        }\n        e.preventDefault()\n        if (props.type === 'textarea') {\n          textareaElRef.value?.focus()\n        }\n        else {\n          inputElRef.value?.focus()\n        }\n      }\n    }\n    function handleWrapperKeydownEsc(): void {\n      if (props.passivelyActivated) {\n        activatedRef.value = false\n        void nextTick(() => {\n          wrapperElRef.value?.focus()\n        })\n      }\n    }\n    function focus(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (props.passivelyActivated) {\n        wrapperElRef.value?.focus()\n      }\n      else {\n        textareaElRef.value?.focus()\n        inputElRef.value?.focus()\n      }\n    }\n    function blur(): void {\n      if (wrapperElRef.value?.contains(document.activeElement)) {\n        ;(document.activeElement as HTMLElement).blur()\n      }\n    }\n    function select(): void {\n      textareaElRef.value?.select()\n      inputElRef.value?.select()\n    }\n    function activate(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (textareaElRef.value)\n        textareaElRef.value.focus()\n      else if (inputElRef.value)\n        inputElRef.value.focus()\n    }\n    function deactivate(): void {\n      const { value: wrapperEl } = wrapperElRef\n      if (\n        wrapperEl?.contains(document.activeElement)\n        && wrapperEl !== document.activeElement\n      ) {\n        handleWrapperKeydownEsc()\n      }\n    }\n\n    function scrollTo(options: ScrollToOptions): void {\n      if (props.type === 'textarea') {\n        const { value: textareaEl } = textareaElRef\n        textareaEl?.scrollTo(options)\n      }\n      else {\n        const { value: inputEl } = inputElRef\n        inputEl?.scrollTo(options)\n      }\n    }\n\n    function syncMirror(value: string | null): void {\n      const { type, pair, autosize } = props\n      if (!pair && autosize) {\n        if (type === 'textarea') {\n          const { value: textareaMirrorEl } = textareaMirrorElRef\n          if (textareaMirrorEl) {\n            textareaMirrorEl.textContent = `${value ?? ''}\\r\\n`\n          }\n        }\n        else {\n          const { value: inputMirrorEl } = inputMirrorElRef\n          if (inputMirrorEl) {\n            if (value) {\n              inputMirrorEl.textContent = value\n            }\n            else {\n              inputMirrorEl.innerHTML = '&nbsp;'\n            }\n          }\n        }\n      }\n    }\n    function handleTextAreaMirrorResize(): void {\n      updateTextAreaStyle()\n    }\n\n    const placeholderStyleRef = ref({\n      top: '0'\n    })\n    function handleTextAreaScroll(e: Event): void {\n      const { scrollTop } = e.target as HTMLElement\n      placeholderStyleRef.value.top = `${-scrollTop}px`\n      textareaScrollbarInstRef.value?.syncUnifiedContainer()\n    }\n\n    let stopWatchMergedValue1: WatchStopHandle | null = null\n    watchEffect(() => {\n      const { autosize, type } = props\n      if (autosize && type === 'textarea') {\n        stopWatchMergedValue1 = watch(mergedValueRef, (value) => {\n          if (!Array.isArray(value) && value !== syncSource) {\n            syncMirror(value)\n          }\n        })\n      }\n      else {\n        stopWatchMergedValue1?.()\n      }\n    })\n\n    let stopWatchMergedValue2: WatchStopHandle | null = null\n    watchEffect(() => {\n      if (props.type === 'textarea') {\n        stopWatchMergedValue2 = watch(mergedValueRef, (value) => {\n          if (!Array.isArray(value) && value !== syncSource) {\n            textareaScrollbarInstRef.value?.syncUnifiedContainer()\n          }\n        })\n      }\n      else {\n        stopWatchMergedValue2?.()\n      }\n    })\n\n    provide(inputInjectionKey, {\n      mergedValueRef,\n      maxlengthRef,\n      mergedClsPrefixRef,\n      countGraphemesRef: toRef(props, 'countGraphemes')\n    })\n\n    const exposedProps: InputWrappedRef = {\n      wrapperElRef,\n      inputElRef,\n      textareaElRef,\n      isCompositing: isComposingRef,\n      clear: clearValue,\n      focus,\n      blur,\n      select,\n      deactivate,\n      activate,\n      scrollTo\n    }\n\n    const rtlEnabledRef = useRtl('Input', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          color,\n          colorHover,\n          borderRadius,\n          textColor,\n          caretColor,\n          caretColorError,\n          caretColorWarning,\n          textDecorationColor,\n          border,\n          borderDisabled,\n          borderHover,\n          borderFocus,\n          placeholderColor,\n          placeholderColorDisabled,\n          lineHeightTextarea,\n          colorDisabled,\n          colorFocus,\n          textColorDisabled,\n          boxShadowFocus,\n          iconSize,\n          colorFocusWarning,\n          boxShadowFocusWarning,\n          borderWarning,\n          borderFocusWarning,\n          borderHoverWarning,\n          colorFocusError,\n          boxShadowFocusError,\n          borderError,\n          borderFocusError,\n          borderHoverError,\n          clearSize,\n          clearColor,\n          clearColorHover,\n          clearColorPressed,\n          iconColor,\n          iconColorDisabled,\n          suffixTextColor,\n          countTextColor,\n          countTextColorDisabled,\n          iconColorHover,\n          iconColorPressed,\n          loadingColor,\n          loadingColorError,\n          loadingColorWarning,\n          fontWeight,\n          [createKey('padding', size)]: padding,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('height', size)]: height\n        }\n      } = themeRef.value\n      const { left: paddingLeft, right: paddingRight } = getPadding(padding)\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-count-text-color': countTextColor,\n        '--n-count-text-color-disabled': countTextColorDisabled,\n        '--n-color': color,\n        '--n-color-hover': colorHover,\n        '--n-font-size': fontSize,\n        '--n-font-weight': fontWeight,\n        '--n-border-radius': borderRadius,\n        '--n-height': height,\n        '--n-padding-left': paddingLeft,\n        '--n-padding-right': paddingRight,\n        '--n-text-color': textColor,\n        '--n-caret-color': caretColor,\n        '--n-text-decoration-color': textDecorationColor,\n        '--n-border': border,\n        '--n-border-disabled': borderDisabled,\n        '--n-border-hover': borderHover,\n        '--n-border-focus': borderFocus,\n        '--n-placeholder-color': placeholderColor,\n        '--n-placeholder-color-disabled': placeholderColorDisabled,\n        '--n-icon-size': iconSize,\n        '--n-line-height-textarea': lineHeightTextarea,\n        '--n-color-disabled': colorDisabled,\n        '--n-color-focus': colorFocus,\n        '--n-text-color-disabled': textColorDisabled,\n        '--n-box-shadow-focus': boxShadowFocus,\n        '--n-loading-color': loadingColor,\n        // form warning\n        '--n-caret-color-warning': caretColorWarning,\n        '--n-color-focus-warning': colorFocusWarning,\n        '--n-box-shadow-focus-warning': boxShadowFocusWarning,\n        '--n-border-warning': borderWarning,\n        '--n-border-focus-warning': borderFocusWarning,\n        '--n-border-hover-warning': borderHoverWarning,\n        '--n-loading-color-warning': loadingColorWarning,\n        // form error\n        '--n-caret-color-error': caretColorError,\n        '--n-color-focus-error': colorFocusError,\n        '--n-box-shadow-focus-error': boxShadowFocusError,\n        '--n-border-error': borderError,\n        '--n-border-focus-error': borderFocusError,\n        '--n-border-hover-error': borderHoverError,\n        '--n-loading-color-error': loadingColorError,\n        // clear-button\n        '--n-clear-color': clearColor,\n        '--n-clear-size': clearSize,\n        '--n-clear-color-hover': clearColorHover,\n        '--n-clear-color-pressed': clearColorPressed,\n        '--n-icon-color': iconColor,\n        '--n-icon-color-hover': iconColorHover,\n        '--n-icon-color-pressed': iconColorPressed,\n        '--n-icon-color-disabled': iconColorDisabled,\n        '--n-suffix-text-color': suffixTextColor\n      }\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'input',\n          computed(() => {\n            const { value: size } = mergedSizeRef\n            return size[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      ...exposedProps,\n      // DOM ref\n      wrapperElRef,\n      inputElRef,\n      inputMirrorElRef,\n      inputEl2Ref,\n      textareaElRef,\n      textareaMirrorElRef,\n      // reduce dts: string ref only, type unused in render\n      textareaScrollbarInstRef: textareaScrollbarInstRef as unknown,\n      // value\n      rtlEnabled: rtlEnabledRef,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      passwordVisible: passwordVisibleRef,\n      mergedPlaceholder: mergedPlaceholderRef,\n      showPlaceholder1: showPlaceholder1Ref,\n      showPlaceholder2: showPlaceholder2Ref,\n      mergedFocus: mergedFocusRef,\n      isComposing: isComposingRef,\n      activated: activatedRef,\n      showClearButton,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      textDecorationStyle: textDecorationStyleRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      mergedShowPasswordOn: mergedShowPasswordOnRef,\n      placeholderStyle: placeholderStyleRef,\n      mergedStatus: mergedStatusRef,\n      textAreaScrollContainerWidth: textAreaScrollContainerWidthRef,\n      // methods\n      handleTextAreaScroll,\n      handleCompositionStart,\n      handleCompositionEnd,\n      handleInput,\n      handleInputBlur,\n      handleInputFocus,\n      handleWrapperBlur,\n      handleWrapperFocus,\n      handleMouseEnter,\n      handleMouseLeave,\n      handleMouseDown,\n      handleChange,\n      handleClick,\n      handleClear,\n      handlePasswordToggleClick,\n      handlePasswordToggleMousedown,\n      handleWrapperKeydown,\n      handleWrapperKeyup,\n      handleTextAreaMirrorResize,\n      getTextareaScrollContainer: () => {\n        return textareaElRef.value\n      },\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedStatus,\n      themeClass,\n      type,\n      countGraphemes,\n      onRender\n    } = this\n    const $slots = this.$slots as {\n      prefix?: () => VNode[]\n      suffix?: () => VNode[]\n      separator?: () => VNode[]\n      count?: (props: unknown) => VNode[]\n      ['clear-icon']?: () => VNode[]\n      ['clear-icon-placeholder']?: () => VNode[]\n      ['password-visible-icon']?: () => VNode[]\n      ['password-invisible-icon']?: () => VNode[]\n    }\n    onRender?.()\n    return (\n      <div\n        ref=\"wrapperElRef\"\n        class={[\n          `${mergedClsPrefix}-input`,\n          `${mergedClsPrefix}-input--${this.mergedSize}-size`,\n          themeClass,\n          mergedStatus && `${mergedClsPrefix}-input--${mergedStatus}-status`,\n          {\n            [`${mergedClsPrefix}-input--rtl`]: this.rtlEnabled,\n            [`${mergedClsPrefix}-input--disabled`]: this.mergedDisabled,\n            [`${mergedClsPrefix}-input--textarea`]: type === 'textarea',\n            [`${mergedClsPrefix}-input--resizable`]:\n              this.resizable && !this.autosize,\n            [`${mergedClsPrefix}-input--autosize`]: this.autosize,\n            [`${mergedClsPrefix}-input--round`]:\n              this.round && !(type === 'textarea'),\n            [`${mergedClsPrefix}-input--pair`]: this.pair,\n            [`${mergedClsPrefix}-input--focus`]: this.mergedFocus,\n            [`${mergedClsPrefix}-input--stateful`]: this.stateful\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n        tabindex={\n          !this.mergedDisabled && this.passivelyActivated && !this.activated\n            ? 0\n            : undefined\n        }\n        onFocus={this.handleWrapperFocus}\n        onBlur={this.handleWrapperBlur}\n        onClick={this.handleClick}\n        onMousedown={this.handleMouseDown}\n        onMouseenter={this.handleMouseEnter}\n        onMouseleave={this.handleMouseLeave}\n        onCompositionstart={this.handleCompositionStart}\n        onCompositionend={this.handleCompositionEnd}\n        onKeyup={this.handleWrapperKeyup}\n        onKeydown={this.handleWrapperKeydown}\n      >\n        {/* textarea & basic input */}\n        <div class={`${mergedClsPrefix}-input-wrapper`}>\n          {resolveWrappedSlot(\n            $slots.prefix,\n            children =>\n              children && (\n                <div class={`${mergedClsPrefix}-input__prefix`}>{children}</div>\n              )\n          )}\n          {type === 'textarea' ? (\n            <NScrollbar\n              ref=\"textareaScrollbarInstRef\"\n              class={`${mergedClsPrefix}-input__textarea`}\n              container={this.getTextareaScrollContainer}\n              theme={this.theme?.peers?.Scrollbar}\n              themeOverrides={this.themeOverrides?.peers?.Scrollbar}\n              triggerDisplayManually\n              useUnifiedContainer\n              internalHoistYRail\n            >\n              {{\n                default: () => {\n                  const { textAreaScrollContainerWidth } = this\n                  const scrollContainerWidthStyle = {\n                    width:\n                      this.autosize\n                      && textAreaScrollContainerWidth\n                      && `${textAreaScrollContainerWidth}px`\n                  }\n                  return (\n                    <>\n                      <textarea\n                        {...this.inputProps}\n                        ref=\"textareaElRef\"\n                        class={[\n                          `${mergedClsPrefix}-input__textarea-el`,\n                          this.inputProps?.class\n                        ]}\n                        autofocus={this.autofocus}\n                        rows={Number(this.rows)}\n                        placeholder={this.placeholder as string | undefined}\n                        value={this.mergedValue as string | undefined}\n                        disabled={this.mergedDisabled}\n                        maxlength={countGraphemes ? undefined : this.maxlength}\n                        minlength={countGraphemes ? undefined : this.minlength}\n                        readonly={this.readonly as any}\n                        tabindex={\n                          this.passivelyActivated && !this.activated\n                            ? -1\n                            : undefined\n                        }\n                        style={[\n                          this.textDecorationStyle[0] as any,\n                          this.inputProps?.style,\n                          scrollContainerWidthStyle\n                        ]}\n                        onBlur={this.handleInputBlur}\n                        onFocus={(e) => {\n                          this.handleInputFocus(e, 2)\n                        }}\n                        onInput={this.handleInput}\n                        onChange={this.handleChange}\n                        onScroll={this.handleTextAreaScroll}\n                      />\n                      {this.showPlaceholder1 ? (\n                        <div\n                          class={`${mergedClsPrefix}-input__placeholder`}\n                          style={[\n                            this.placeholderStyle as any,\n                            scrollContainerWidthStyle\n                          ]}\n                          key=\"placeholder\"\n                        >\n                          {this.mergedPlaceholder[0]}\n                        </div>\n                      ) : null}\n                      {this.autosize ? (\n                        <VResizeObserver\n                          onResize={this.handleTextAreaMirrorResize}\n                        >\n                          {{\n                            default: () => (\n                              <div\n                                ref=\"textareaMirrorElRef\"\n                                class={`${mergedClsPrefix}-input__textarea-mirror`}\n                                key=\"mirror\"\n                              />\n                            )\n                          }}\n                        </VResizeObserver>\n                      ) : null}\n                    </>\n                  )\n                }\n              }}\n            </NScrollbar>\n          ) : (\n            <div class={`${mergedClsPrefix}-input__input`}>\n              <input\n                type={\n                  type === 'password'\n                  && this.mergedShowPasswordOn\n                  && this.passwordVisible\n                    ? 'text'\n                    : type\n                }\n                {...this.inputProps}\n                ref=\"inputElRef\"\n                class={[\n                  `${mergedClsPrefix}-input__input-el`,\n                  this.inputProps?.class\n                ]}\n                style={[\n                  this.textDecorationStyle[0] as any,\n                  this.inputProps?.style\n                ]}\n                tabindex={\n                  this.passivelyActivated && !this.activated\n                    ? -1\n                    : this.inputProps?.tabindex\n                }\n                placeholder={this.mergedPlaceholder[0]}\n                disabled={this.mergedDisabled}\n                maxlength={countGraphemes ? undefined : this.maxlength}\n                minlength={countGraphemes ? undefined : this.minlength}\n                value={\n                  Array.isArray(this.mergedValue)\n                    ? this.mergedValue[0]\n                    : (this.mergedValue as any)\n                }\n                readonly={this.readonly as any}\n                autofocus={this.autofocus}\n                size={this.attrSize}\n                onBlur={this.handleInputBlur}\n                onFocus={(e) => {\n                  this.handleInputFocus(e, 0)\n                }}\n                onInput={(e) => {\n                  this.handleInput(e, 0)\n                }}\n                onChange={(e) => {\n                  this.handleChange(e, 0)\n                }}\n              />\n              {this.showPlaceholder1 ? (\n                <div class={`${mergedClsPrefix}-input__placeholder`}>\n                  <span>{this.mergedPlaceholder[0]}</span>\n                </div>\n              ) : null}\n              {this.autosize ? (\n                <div\n                  class={`${mergedClsPrefix}-input__input-mirror`}\n                  key=\"mirror\"\n                  ref=\"inputMirrorElRef\"\n                >\n                  &nbsp;\n                </div>\n              ) : null}\n            </div>\n          )}\n          {!this.pair\n            && resolveWrappedSlot($slots.suffix, (children) => {\n              return children\n                || this.clearable\n                || this.showCount\n                || this.mergedShowPasswordOn\n                || this.loading !== undefined ? (\n                    <div class={`${mergedClsPrefix}-input__suffix`}>\n                      {[\n                        resolveWrappedSlot(\n                          $slots['clear-icon-placeholder'],\n                          (children) => {\n                            return (\n                              (this.clearable || children) && (\n                                <NBaseClear\n                                  clsPrefix={mergedClsPrefix}\n                                  show={this.showClearButton}\n                                  onClear={this.handleClear}\n                                >\n                                  {{\n                                    placeholder: () => children,\n                                    icon: () => this.$slots['clear-icon']?.()\n                                  }}\n                                </NBaseClear>\n                              )\n                            )\n                          }\n                        ),\n                        !this.internalLoadingBeforeSuffix ? children : null,\n                        this.loading !== undefined ? (\n                          <NBaseSuffix\n                            clsPrefix={mergedClsPrefix}\n                            loading={this.loading}\n                            showArrow={false}\n                            showClear={false}\n                            style={this.cssVars as CSSProperties}\n                          />\n                        ) : null,\n                        this.internalLoadingBeforeSuffix ? children : null,\n                        this.showCount && this.type !== 'textarea' ? (\n                          <WordCount>\n                            {{\n                              default: (props: unknown) => {\n                                const { renderCount } = this\n                                if (renderCount) {\n                                  return renderCount(props as { value: string })\n                                }\n                                return $slots.count?.(props)\n                              }\n                            }}\n                          </WordCount>\n                        ) : null,\n                        this.mergedShowPasswordOn && this.type === 'password' ? (\n                          <div\n                            class={`${mergedClsPrefix}-input__eye`}\n                            onMousedown={this.handlePasswordToggleMousedown}\n                            onClick={this.handlePasswordToggleClick}\n                          >\n                            {this.passwordVisible\n                              ? resolveSlot($slots['password-visible-icon'], () => [\n                                  <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                    {{ default: () => <EyeIcon /> }}\n                                  </NBaseIcon>\n                                ])\n                              : resolveSlot(\n                                  $slots['password-invisible-icon'],\n                                  () => [\n                                    <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                      {{ default: () => <EyeOffIcon /> }}\n                                    </NBaseIcon>\n                                  ]\n                                )}\n                          </div>\n                        ) : null\n                      ]}\n                    </div>\n                  ) : null\n            })}\n        </div>\n        {/* pair input */}\n        {this.pair ? (\n          <span class={`${mergedClsPrefix}-input__separator`}>\n            {resolveSlot($slots.separator, () => [this.separator])}\n          </span>\n        ) : null}\n        {this.pair ? (\n          <div class={`${mergedClsPrefix}-input-wrapper`}>\n            <div class={`${mergedClsPrefix}-input__input`}>\n              <input\n                ref=\"inputEl2Ref\"\n                type={this.type}\n                class={`${mergedClsPrefix}-input__input-el`}\n                tabindex={\n                  this.passivelyActivated && !this.activated ? -1 : undefined\n                }\n                placeholder={this.mergedPlaceholder[1]}\n                disabled={this.mergedDisabled}\n                maxlength={countGraphemes ? undefined : this.maxlength}\n                minlength={countGraphemes ? undefined : this.minlength}\n                value={\n                  Array.isArray(this.mergedValue)\n                    ? this.mergedValue[1]\n                    : undefined\n                }\n                readonly={this.readonly as any}\n                style={this.textDecorationStyle[1] as any}\n                onBlur={this.handleInputBlur}\n                onFocus={(e) => {\n                  this.handleInputFocus(e, 1)\n                }}\n                onInput={(e) => {\n                  this.handleInput(e, 1)\n                }}\n                onChange={(e) => {\n                  this.handleChange(e, 1)\n                }}\n              />\n              {this.showPlaceholder2 ? (\n                <div class={`${mergedClsPrefix}-input__placeholder`}>\n                  <span>{this.mergedPlaceholder[1]}</span>\n                </div>\n              ) : null}\n            </div>\n            {resolveWrappedSlot($slots.suffix, (children) => {\n              return (\n                (this.clearable || children) && (\n                  <div class={`${mergedClsPrefix}-input__suffix`}>\n                    {[\n                      this.clearable && (\n                        <NBaseClear\n                          clsPrefix={mergedClsPrefix}\n                          show={this.showClearButton}\n                          onClear={this.handleClear}\n                        >\n                          {{\n                            icon: () => $slots['clear-icon']?.(),\n                            placeholder: () =>\n                              $slots['clear-icon-placeholder']?.()\n                          }}\n                        </NBaseClear>\n                      ),\n                      children\n                    ]}\n                  </div>\n                )\n              )\n            })}\n          </div>\n        ) : null}\n        {/* border */}\n        {this.mergedBordered ? (\n          <div class={`${mergedClsPrefix}-input__border`} />\n        ) : null}\n        {this.mergedBordered ? (\n          <div class={`${mergedClsPrefix}-input__state-border`} />\n        ) : null}\n        {this.showCount && type === 'textarea' ? (\n          <WordCount>\n            {{\n              default: (props: unknown) => {\n                const { renderCount } = this\n                if (renderCount) {\n                  return renderCount(props as { value: string })\n                }\n                return $slots.count?.(props)\n              }\n            }}\n          </WordCount>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import { c, cB, cE } from '../../../_utils/cssr'\n\nexport default cB('input-group', `\n  display: inline-flex;\n  width: 100%;\n  flex-wrap: nowrap;\n  vertical-align: bottom;\n`, [\n  c('>', [\n    cB('input', [\n      c('&:not(:last-child)', `\n        border-top-right-radius: 0!important;\n        border-bottom-right-radius: 0!important;\n      `),\n      c('&:not(:first-child)', `\n        border-top-left-radius: 0!important;\n        border-bottom-left-radius: 0!important;\n        margin-left: -1px!important;\n      `)\n    ]),\n    cB('button', [\n      c('&:not(:last-child)', `\n        border-top-right-radius: 0!important;\n        border-bottom-right-radius: 0!important;\n      `, [\n        cE('state-border, border', `\n          border-top-right-radius: 0!important;\n          border-bottom-right-radius: 0!important;\n        `)\n      ]),\n      c('&:not(:first-child)', `\n        border-top-left-radius: 0!important;\n        border-bottom-left-radius: 0!important;\n      `, [\n        cE('state-border, border', `\n          border-top-left-radius: 0!important;\n          border-bottom-left-radius: 0!important;\n        `)\n      ])\n    ]),\n    c('*', [\n      c('&:not(:last-child)', `\n        border-top-right-radius: 0!important;\n        border-bottom-right-radius: 0!important;\n      `, [\n        c('>', [\n          cB('input', `\n            border-top-right-radius: 0!important;\n            border-bottom-right-radius: 0!important;\n          `),\n          cB('base-selection', [\n            cB('base-selection-label', `\n              border-top-right-radius: 0!important;\n              border-bottom-right-radius: 0!important;\n            `),\n            cB('base-selection-tags', `\n              border-top-right-radius: 0!important;\n              border-bottom-right-radius: 0!important;\n            `),\n            cE('box-shadow, border, state-border', `\n              border-top-right-radius: 0!important;\n              border-bottom-right-radius: 0!important;\n            `)\n          ])\n        ])\n      ]),\n      c('&:not(:first-child)', `\n        margin-left: -1px!important;\n        border-top-left-radius: 0!important;\n        border-bottom-left-radius: 0!important;\n      `, [\n        c('>', [\n          cB('input', `\n            border-top-left-radius: 0!important;\n            border-bottom-left-radius: 0!important;\n          `),\n          cB('base-selection', [\n            cB('base-selection-label', `\n              border-top-left-radius: 0!important;\n              border-bottom-left-radius: 0!important;\n            `),\n            cB('base-selection-tags', `\n              border-top-left-radius: 0!important;\n              border-bottom-left-radius: 0!important;\n            `),\n            cE('box-shadow, border, state-border', `\n              border-top-left-radius: 0!important;\n              border-bottom-left-radius: 0!important;\n            `)\n          ])\n        ])\n      ])\n    ])\n  ])\n])\n","import type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent, h } from 'vue'\nimport { useConfig, useStyle } from '../../_mixins'\nimport style from './styles/input-group.cssr'\n\nexport const inputGroupProps: { [key in any]: never } = {}\n\nexport type InputGroupProps = ExtractPublicPropTypes<typeof inputGroupProps>\n\nexport default defineComponent({\n  name: 'InputGroup',\n  props: inputGroupProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    useStyle('-input-group', style, mergedClsPrefixRef)\n    return {\n      mergedClsPrefix: mergedClsPrefixRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div class={`${mergedClsPrefix}-input-group`}>\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import { cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-group-label-color\n// --n-border-radius\n// --n-group-label-text-color\n// --n-font-size\n// --n-height\n// --n-group-label-border\nexport default cB('input-group-label', `\n  position: relative;\n  user-select: none;\n  -webkit-user-select: none;\n  box-sizing: border-box;\n  padding: 0 12px;\n  display: inline-block;\n  border-radius: var(--n-border-radius);\n  background-color: var(--n-group-label-color);\n  color: var(--n-group-label-text-color);\n  font-size: var(--n-font-size);\n  line-height: var(--n-height);\n  height: var(--n-height);\n  flex-shrink: 0;\n  white-space: nowrap;\n  transition: \n    color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier);\n`, [\n  cE('border', `\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    border-radius: inherit;\n    border: var(--n-group-label-border);\n    transition: border-color .3s var(--n-bezier);\n  `)\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { InputTheme, InputThemeOverrides } from '../styles'\nimport type { InputSize } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey } from '../../_utils'\nimport { inputLight } from '../styles'\nimport style from './styles/input-group-label.cssr'\n\nexport const inputGroupLabelProps = {\n  ...(useTheme.props as ThemeProps<InputTheme, InputThemeOverrides>),\n  size: String as PropType<InputSize>,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  }\n} as const\n\nexport type InputGroupLabelProps = ExtractPublicPropTypes<\n  typeof inputGroupLabelProps\n>\n\nexport default defineComponent({\n  name: 'InputGroupLabel',\n  props: inputGroupLabelProps,\n  setup(props) {\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Input',\n      '-input-group-label',\n      style,\n      inputLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { mergedSizeRef } = useFormItem(props, {\n      mergedSize(NFormItem) {\n        if (props.size !== undefined)\n          return props.size\n        if (NFormItem) {\n          return NFormItem.mergedSize.value as InputSize\n        }\n        const configSize = mergedComponentPropsRef?.value?.Input?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          groupLabelColor,\n          borderRadius,\n          groupLabelTextColor,\n          lineHeight,\n          groupLabelBorder,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('height', size)]: height\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-group-label-color': groupLabelColor,\n        '--n-group-label-border': groupLabelBorder,\n        '--n-border-radius': borderRadius,\n        '--n-group-label-text-color': groupLabelTextColor,\n        '--n-font-size': fontSize,\n        '--n-line-height': lineHeight,\n        '--n-height': height\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'input-group-label',\n          computed(() => mergedSizeRef.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-input-group-label`, this.themeClass]}\n        style={this.cssVars as any}\n      >\n        {this.$slots.default?.()}\n        {this.mergedBordered ? (\n          <div class={`${mergedClsPrefix}-input-group-label__border`} />\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { TreeMateOptions } from 'treemate'\nimport type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption,\n  SelectMixedOption,\n  SelectOption\n} from './interface'\n\nexport function getIsGroup(option: SelectMixedOption): boolean {\n  return option.type === 'group'\n}\n\nexport function getIgnored(option: SelectMixedOption): boolean {\n  return option.type === 'ignored'\n}\n\nexport function patternMatched(pattern: string, value: string): boolean {\n  try {\n    return !!(\n      1 + value.toString().toLowerCase().indexOf(pattern.trim().toLowerCase())\n    )\n  }\n  catch {\n    return false\n  }\n}\n\nexport function createTmOptions(\n  valueField: string,\n  childrenField: string\n): TreeMateOptions<SelectBaseOption, SelectGroupOption, SelectIgnoredOption> {\n  const options: TreeMateOptions<\n    SelectBaseOption,\n    SelectGroupOption,\n    SelectIgnoredOption\n  > = {\n    getIsGroup,\n    getIgnored,\n    getKey(option: SelectMixedOption): string | number {\n      if (getIsGroup(option)) {\n        return (\n          ((option as SelectGroupOption).name as any)\n          || (option as SelectGroupOption).key\n          || 'key-required'\n        )\n      }\n      // Required for non-custom label & value field\n      return (option as SelectBaseOption | SelectIgnoredOption)[\n        valueField\n      ] as NonNullable<SelectOption['value']>\n    },\n    getChildren(option) {\n      return option[childrenField] as SelectBaseOption[]\n    }\n  }\n  return options\n}\n\nexport function filterOptions(\n  originalOpts: SelectMixedOption[],\n  filter: (pattern: string, option: SelectBaseOption) => boolean,\n  pattern: string,\n  childrenField: string\n): SelectMixedOption[] {\n  if (!filter)\n    return originalOpts\n  function traverse(options: SelectMixedOption[]): SelectMixedOption[] {\n    if (!Array.isArray(options))\n      return []\n    const filteredOptions: SelectMixedOption[] = []\n    for (const option of options) {\n      if (getIsGroup(option)) {\n        const children = traverse(option[childrenField] as SelectBaseOption[])\n        if (children.length) {\n          filteredOptions.push(\n            Object.assign({}, option, {\n              [childrenField]: children\n            })\n          )\n        }\n      }\n      else if (getIgnored(option)) {\n        continue\n      }\n      else if (filter(pattern, option as SelectBaseOption)) {\n        filteredOptions.push(option)\n      }\n    }\n    return filteredOptions\n  }\n  return traverse(originalOpts)\n}\n\nexport function createValOptMap(\n  options: SelectMixedOption[],\n  valueField: string,\n  childrenField: string\n): Map<string | number, SelectBaseOption> {\n  const valOptMap = new Map<string | number, SelectBaseOption>()\n  options.forEach((option) => {\n    if (getIsGroup(option)) {\n      ;(option[childrenField] as SelectBaseOption[]).forEach(\n        (selectGroupOption: SelectBaseOption) => {\n          valOptMap.set(\n            selectGroupOption[valueField] as NonNullable<\n              SelectBaseOption['value']\n            >,\n            selectGroupOption\n          )\n        }\n      )\n    }\n    else {\n      valOptMap.set(\n        option[valueField] as NonNullable<SelectBaseOption['value']>,\n        option as SelectBaseOption\n      )\n    }\n  })\n  return valOptMap\n}\n","import type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { InputTheme } from '../../input/styles'\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { inputLight } from '../../input/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const { boxShadow2 } = vars\n  return {\n    menuBoxShadow: boxShadow2\n  }\n}\n\nconst autoCompleteLight: AutoCompleteTheme = createTheme({\n  name: 'AutoComplete',\n  common: commonLight,\n  peers: {\n    InternalSelectMenu: internalSelectMenuLight,\n    Input: inputLight\n  },\n  self\n})\n\nexport interface AutoCompleteTheme extends Theme<\n  'AutoComplete',\n  AutoCompleteThemeVars,\n  {\n    InternalSelectMenu: InternalSelectMenuTheme\n    Input: InputTheme\n  }\n> {}\n\nexport interface AutoCompleteThemeOverrides extends ExtractThemeOverrides<AutoCompleteTheme> {}\n\nexport default autoCompleteLight\nexport interface AutoCompleteThemeVars extends ReturnType<typeof self> {}\n","import type { AutoCompleteTheme } from './light'\nimport { internalSelectMenuDark } from '../../_internal/select-menu/styles'\nimport { commonDark } from '../../_styles/common'\nimport { inputDark } from '../../input/styles'\nimport { self } from './light'\n\nconst autoCompleteDark: AutoCompleteTheme = {\n  name: 'AutoComplete',\n  common: commonDark,\n  peers: {\n    InternalSelectMenu: internalSelectMenuDark,\n    Input: inputDark\n  },\n  self\n}\n\nexport default autoCompleteDark\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-menu-box-shadow\nexport default c([\n  cB('auto-complete', `\n    z-index: auto;\n    position: relative;\n    display: inline-flex;\n    width: 100%;\n  `),\n  cB('auto-complete-menu', `\n    margin: 4px 0;\n    box-shadow: var(--n-menu-box-shadow);\n  `, [\n    fadeInScaleUpTransition({\n      originalTransition: 'background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)'\n    })\n  ])\n])\n","import type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectMixedOption\n} from '../../select/src/interface'\nimport type {\n  AutoCompleteGroupOption,\n  AutoCompleteOption,\n  AutoCompleteOptions\n} from './interface'\n\nexport function mapAutoCompleteOptionsToSelectOptions(\n  options: AutoCompleteOptions\n): SelectMixedOption[] {\n  return options.map(convertAutoCompleteOptionToSelectOption)\n}\n\nfunction convertAutoCompleteOptionToSelectOption(\n  option: AutoCompleteOption | AutoCompleteGroupOption | string\n): SelectMixedOption {\n  if (typeof option === 'string') {\n    return {\n      label: option,\n      value: option\n    }\n  }\n  else if (option.type === 'group') {\n    const groupOption: SelectGroupOption = {\n      type: 'group',\n      label: option.label ?? (option.name as any),\n      value: option.value ?? (option.name as any),\n      key: (option.key || option.name) as any,\n      children: (option.children as Array<string | AutoCompleteOption>).map(\n        groupOption =>\n          convertAutoCompleteOptionToSelectOption(\n            groupOption\n          ) as SelectBaseOption\n      )\n    }\n    return groupOption\n  }\n  else {\n    return option as SelectMixedOption\n  }\n}\n","import type { TreeNode } from 'treemate'\nimport type {\n  CSSProperties,\n  HTMLAttributes,\n  InputHTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { InternalSelectMenuRef, ScrollbarProps } from '../../_internal'\nimport type {\n  RenderLabel,\n  RenderOption\n} from '../../_internal/select-menu/src/interface'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputInst } from '../../input'\nimport type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption\n} from '../../select/src/interface'\nimport type { AutoCompleteTheme, AutoCompleteThemeOverrides } from '../styles'\nimport type {\n  AutoCompleteDefaultSlotProps,\n  AutoCompleteInst,\n  AutoCompleteOption,\n  AutoCompleteOptions,\n  OnSelect,\n  OnSelectImpl,\n  OnUpdateImpl,\n  OnUpdateValue\n} from './interface'\nimport type { AutoCompleteSize } from './public-types'\nimport { getPreciseEventTarget } from 'seemly'\nimport { createTreeMate } from 'treemate'\nimport { clickoutside } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  ref,\n  toRef,\n  Transition,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NInternalSelectMenu } from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  call,\n  getFirstSlotVNodeWithTypedProps,\n  useAdjustedTo,\n  warnOnce\n} from '../../_utils'\nimport { NInput } from '../../input'\nimport { createTmOptions } from '../../select/src/utils'\nimport { autoCompleteLight } from '../styles'\nimport style from './styles/index.cssr'\nimport { mapAutoCompleteOptionsToSelectOptions } from './utils'\n\nexport const autoCompleteProps = {\n  ...(useTheme.props as ThemeProps<\n    AutoCompleteTheme,\n    AutoCompleteThemeOverrides\n  >),\n  to: useAdjustedTo.propTo,\n  menuProps: Object as PropType<HTMLAttributes>,\n  append: Boolean,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  clearable: {\n    type: Boolean,\n    default: undefined\n  },\n  defaultValue: {\n    type: String as PropType<string | null>,\n    default: null\n  },\n  loading: {\n    type: Boolean,\n    default: undefined\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  placeholder: String,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  value: String,\n  blurAfterSelect: Boolean,\n  clearAfterSelect: Boolean,\n  getShow: Function as PropType<(inputValue: string) => boolean>,\n  showEmpty: Boolean,\n  inputProps: Object as PropType<InputHTMLAttributes>,\n  renderOption: Function as PropType<RenderOption>,\n  renderLabel: Function as PropType<RenderLabel>,\n  size: String as PropType<AutoCompleteSize>,\n  options: {\n    type: Array as PropType<AutoCompleteOptions>,\n    default: () => []\n  },\n  zIndex: Number,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onSelect: [Function, Array] as PropType<MaybeArray<OnSelect>>,\n  onBlur: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onFocus: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  // deprecated\n  onInput: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n} as const\n\nexport type AutoCompleteProps = ExtractPublicPropTypes<typeof autoCompleteProps>\n\nexport interface AutoCompleteSlots {\n  default?: (options: AutoCompleteDefaultSlotProps) => VNode[]\n  empty?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'AutoComplete',\n  props: autoCompleteProps,\n  slots: Object as SlotsType<AutoCompleteSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onInput !== undefined) {\n          warnOnce(\n            'auto-complete',\n            '`on-input` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const {\n      mergedBorderedRef,\n      namespaceRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as AutoCompleteSize\n        const configSize = mergedComponentPropsRef?.value?.AutoComplete?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    const triggerElRef = ref<HTMLElement | null>(null)\n    const menuInstRef = ref<InternalSelectMenuRef | null>(null)\n\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const canBeActivatedRef = ref(false)\n    const isComposingRef = ref(false)\n\n    const themeRef = useTheme(\n      'AutoComplete',\n      '-auto-complete',\n      style,\n      autoCompleteLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const selectOptionsRef = computed(() => {\n      return mapAutoCompleteOptionsToSelectOptions(props.options)\n    })\n    const mergedShowOptionsRef = computed(() => {\n      const { getShow } = props\n      if (getShow) {\n        return getShow(mergedValueRef.value || '')\n      }\n      return !!mergedValueRef.value\n    })\n    const activeRef = computed(() => {\n      return (\n        mergedShowOptionsRef.value\n        && canBeActivatedRef.value\n        && (props.showEmpty ? true : !!selectOptionsRef.value.length)\n      )\n    })\n    const treeMateRef = computed(() =>\n      createTreeMate<SelectBaseOption, SelectGroupOption, SelectIgnoredOption>(\n        selectOptionsRef.value,\n        createTmOptions('value', 'children')\n      )\n    )\n    function doUpdateValue(value: string | null): void {\n      const { 'onUpdate:value': _onUpdateValue, onUpdateValue, onInput } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateImpl, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateImpl, value)\n      if (onInput)\n        call(onInput as OnUpdateImpl, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function doSelect(value: string | number): void {\n      const { onSelect } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onSelect)\n        call(onSelect as OnSelectImpl, value)\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function handleCompositionStart(): void {\n      isComposingRef.value = true\n    }\n    function handleCompositionEnd(): void {\n      window.setTimeout(() => {\n        isComposingRef.value = false\n      }, 0)\n    }\n    function handleKeyDown(e: KeyboardEvent): void {\n      switch (e.key) {\n        case 'Enter':\n          if (!isComposingRef.value) {\n            const pendingOptionTmNode = menuInstRef.value?.getPendingTmNode()\n            if (pendingOptionTmNode) {\n              select(pendingOptionTmNode.rawNode as AutoCompleteOption)\n              e.preventDefault()\n            }\n          }\n          break\n        case 'ArrowDown':\n          menuInstRef.value?.next()\n          break\n        case 'ArrowUp':\n          menuInstRef.value?.prev()\n          break\n      }\n    }\n    function select(option: AutoCompleteOption): void {\n      if (option?.value !== undefined) {\n        doSelect(option.value)\n        if (props.clearAfterSelect) {\n          doUpdateValue(null)\n        }\n        else if (option.label !== undefined) {\n          doUpdateValue(\n            props.append\n              ? `${mergedValueRef.value}${option.label}`\n              : option.label\n          )\n        }\n        canBeActivatedRef.value = false\n        if (props.blurAfterSelect) {\n          blur()\n        }\n      }\n    }\n    function handleClear(): void {\n      doUpdateValue(null)\n    }\n    function handleFocus(e: FocusEvent): void {\n      canBeActivatedRef.value = true\n      doFocus(e)\n    }\n    function handleBlur(e: FocusEvent): void {\n      canBeActivatedRef.value = false\n      doBlur(e)\n    }\n    function handleInput(value: string): void {\n      canBeActivatedRef.value = true\n      doUpdateValue(value)\n    }\n    function handleToggle(option: TreeNode<SelectBaseOption>): void {\n      select(option.rawNode as AutoCompleteOption)\n    }\n    function handleClickOutsideMenu(e: MouseEvent): void {\n      if (\n        !triggerElRef.value?.contains(getPreciseEventTarget(e) as Node | null)\n      ) {\n        canBeActivatedRef.value = false\n      }\n    }\n    function blur(): void {\n      if (triggerElRef.value?.contains(document.activeElement)) {\n        ;(document.activeElement as HTMLElement)?.blur()\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { menuBoxShadow }\n      } = themeRef.value\n      return {\n        '--n-menu-box-shadow': menuBoxShadow,\n        '--n-bezier': cubicBezierEaseInOut\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('auto-complete', undefined, cssVarsRef, props)\n      : undefined\n    const inputInstRef = ref<InputInst | null>(null)\n    const exposedMethods: AutoCompleteInst = {\n      focus: () => {\n        inputInstRef.value?.focus()\n      },\n      blur: () => {\n        inputInstRef.value?.blur()\n      }\n    }\n    return {\n      focus: exposedMethods.focus,\n      blur: exposedMethods.blur,\n      // reduce dts: string ref only, type unused in render\n      inputInstRef: inputInstRef as unknown,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      isMounted: useIsMounted(),\n      adjustedTo: useAdjustedTo(props),\n      // reduce dts: string ref only, type unused in render\n      menuInstRef: menuInstRef as unknown,\n      triggerElRef,\n      treeMate: treeMateRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      active: activeRef,\n      mergedStatus: mergedStatusRef,\n      handleClear,\n      handleFocus,\n      handleBlur,\n      handleInput,\n      handleToggle,\n      handleClickOutsideMenu,\n      handleCompositionStart,\n      handleCompositionEnd,\n      handleKeyDown,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      mergedBordered: mergedBorderedRef,\n      namespace: namespaceRef,\n      mergedClsPrefix: mergedClsPrefixRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        class={`${mergedClsPrefix}-auto-complete`}\n        ref=\"triggerElRef\"\n        onKeydown={this.handleKeyDown}\n        onCompositionstart={this.handleCompositionStart}\n        onCompositionend={this.handleCompositionEnd}\n      >\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => {\n                    const defaultSlot = this.$slots.default\n                    if (defaultSlot) {\n                      return getFirstSlotVNodeWithTypedProps(\n                        'default',\n                        defaultSlot,\n                        {\n                          handleInput: this.handleInput,\n                          handleFocus: this.handleFocus,\n                          handleBlur: this.handleBlur,\n                          value: this.mergedValue\n                        }\n                      )\n                    }\n                    const { mergedTheme } = this\n                    return (\n                      <NInput\n                        ref=\"inputInstRef\"\n                        status={this.mergedStatus}\n                        theme={mergedTheme.peers.Input}\n                        themeOverrides={mergedTheme.peerOverrides.Input}\n                        bordered={this.mergedBordered}\n                        value={this.mergedValue}\n                        placeholder={this.placeholder}\n                        size={this.mergedSize}\n                        disabled={this.mergedDisabled}\n                        clearable={this.clearable}\n                        loading={this.loading}\n                        inputProps={this.inputProps}\n                        onClear={this.handleClear}\n                        onFocus={this.handleFocus}\n                        onUpdateValue={this.handleInput}\n                        onBlur={this.handleBlur}\n                      >\n                        {{\n                          suffix: () => this.$slots.suffix?.(),\n                          prefix: () => this.$slots.prefix?.()\n                        }}\n                      </NInput>\n                    )\n                  }\n                }}\n              </VTarget>,\n              <VFollower\n                show={this.active}\n                to={this.adjustedTo}\n                containerClass={this.namespace}\n                zIndex={this.zIndex}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                placement={this.placement}\n                width=\"target\"\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                    >\n                      {{\n                        default: () => {\n                          this.onRender?.()\n                          if (!this.active)\n                            return null\n                          const { menuProps } = this\n                          return withDirectives(\n                            <NInternalSelectMenu\n                              {...(menuProps as any)}\n                              clsPrefix={mergedClsPrefix}\n                              ref=\"menuInstRef\"\n                              theme={this.mergedTheme.peers.InternalSelectMenu}\n                              themeOverrides={\n                                this.mergedTheme.peerOverrides\n                                  .InternalSelectMenu\n                              }\n                              auto-pending\n                              class={[\n                                `${mergedClsPrefix}-auto-complete-menu`,\n                                this.themeClass,\n                                menuProps?.class\n                              ]}\n                              style={[\n                                menuProps?.style,\n                                this.cssVars as CSSProperties\n                              ]}\n                              treeMate={this.treeMate}\n                              multiple={false}\n                              renderLabel={this.renderLabel}\n                              renderOption={this.renderOption}\n                              size=\"medium\"\n                              onToggle={this.handleToggle}\n                              scrollbarProps={this.scrollbarProps}\n                            >\n                              {{ empty: () => this.$slots.empty?.() }}\n                            </NInternalSelectMenu>,\n                            [\n                              [\n                                clickoutside,\n                                this.handleClickOutsideMenu,\n                                undefined,\n                                { capture: true }\n                              ]\n                            ]\n                          )\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import { isBrowser } from './is-browser'\n\nexport const isImageSupportNativeLazy\n  = isBrowser && 'loading' in document.createElement('img')\n","import type { Ref } from 'vue'\n\nexport type IntersectionObserverOptions = Omit<\n  IntersectionObserverInit,\n  'root'\n> & {\n  root?: Element | Document | null | string\n}\n\nexport function resolveOptionsAndHash(\n  options: IntersectionObserverOptions | undefined = {}\n): {\n  hash: string\n  options: Omit<IntersectionObserverInit, 'root'> & { root: Element | Document }\n} {\n  const { root = null } = options\n  return {\n    hash: `${options.rootMargin || '0px 0px 0px 0px'}-${\n      Array.isArray(options.threshold)\n        ? options.threshold.join(',')\n        : (options.threshold ?? '0')\n    }`,\n    options: {\n      ...options,\n      root:\n        (typeof root === 'string' ? document.querySelector(root) : root)\n        || document.documentElement\n    }\n  }\n}\n\n// root -> options -> [observer, elements]\nconst observers = new WeakMap<\n  Document | Element,\n  Map<string, [IntersectionObserver, Set<Element | Document>]>\n>()\n\nconst unobserveHandleMap = new WeakMap<HTMLElement, () => void>()\nconst shouldStartLoadingRefMap = new WeakMap<HTMLElement, Ref<boolean>>()\n\nexport const observeIntersection: (\n  el: HTMLElement | null,\n  options: IntersectionObserverOptions | undefined,\n  shouldStartLoadingRef: Ref<boolean>\n) => () => void = (el, options, shouldStartLoadingRef) => {\n  if (!el)\n    return () => {}\n  const resolvedOptionsAndHash = resolveOptionsAndHash(options)\n  const { root } = resolvedOptionsAndHash.options\n  let rootObservers: Map<\n    string,\n    [IntersectionObserver, Set<Element | Document>]\n  >\n  const _rootObservers = observers.get(root)\n  if (_rootObservers) {\n    rootObservers = _rootObservers\n  }\n  else {\n    rootObservers = new Map()\n    observers.set(root, rootObservers)\n  }\n  let observer: IntersectionObserver\n  let observerAndObservedElements: [\n    IntersectionObserver,\n    Set<Element | Document>\n  ]\n  if (rootObservers.has(resolvedOptionsAndHash.hash)) {\n    observerAndObservedElements = rootObservers.get(\n      resolvedOptionsAndHash.hash\n    )!\n    if (!observerAndObservedElements[1].has(el)) {\n      observer = observerAndObservedElements[0]\n      observerAndObservedElements[1].add(el)\n      observer.observe(el)\n    }\n  }\n  else {\n    observer = new IntersectionObserver((entries) => {\n      entries.forEach((entry) => {\n        if (entry.isIntersecting) {\n          const _unobserve = unobserveHandleMap.get(\n            entry.target as HTMLImageElement\n          )\n          const _shouldStartLoadingRef = shouldStartLoadingRefMap.get(\n            entry.target as HTMLImageElement\n          )\n          if (_unobserve)\n            _unobserve()\n          if (_shouldStartLoadingRef) {\n            _shouldStartLoadingRef.value = true\n          }\n        }\n      })\n    }, resolvedOptionsAndHash.options)\n    observer.observe(el)\n    observerAndObservedElements = [observer, new Set([el])]\n    rootObservers.set(resolvedOptionsAndHash.hash, observerAndObservedElements)\n  }\n  let unobservered = false\n  const unobserve = (): void => {\n    if (unobservered)\n      return\n    unobserveHandleMap.delete(el)\n    shouldStartLoadingRefMap.delete(el)\n    unobservered = true\n    if (observerAndObservedElements[1].has(el)) {\n      observerAndObservedElements[0].unobserve(el)\n      observerAndObservedElements[1].delete(el)\n    }\n    if (observerAndObservedElements[1].size <= 0) {\n      rootObservers.delete(resolvedOptionsAndHash.hash)\n    }\n    if (!rootObservers.size) {\n      observers.delete(root)\n    }\n  }\n  unobserveHandleMap.set(el, unobserve)\n  shouldStartLoadingRefMap.set(el, shouldStartLoadingRef)\n  return unobserve\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { composite } from 'seemly'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    avatarColor,\n    cardColor,\n    fontSize,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    heightHuge,\n    modalColor,\n    popoverColor\n  } = vars\n  return {\n    borderRadius,\n    fontSize,\n    border: `2px solid ${cardColor}`,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    heightHuge,\n    color: composite(cardColor, avatarColor),\n    colorModal: composite(modalColor, avatarColor),\n    colorPopover: composite(popoverColor, avatarColor)\n  }\n}\n\nexport interface AvatarThemeVars extends ReturnType<typeof self> {}\n\nconst avatarLight: AvatarTheme = {\n  name: 'Avatar',\n  common: commonLight,\n  self\n}\n\nexport interface AvatarTheme extends Theme<'Avatar', AvatarThemeVars> {}\n\nexport interface AvatarThemeOverrides extends ExtractThemeOverrides<AvatarTheme> {}\n\nexport default avatarLight\nexport type AvatarGroupTheme = AvatarTheme\nexport type AvatarGroupThemeOverrides = AvatarThemeOverrides\n","import type { AvatarTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst avatarDark: AvatarTheme = {\n  name: 'Avatar',\n  common: commonDark,\n  self\n}\n\nexport default avatarDark\n","import type { AvatarGroupInjection } from '../../avatar-group/src/AvatarGroup'\nimport { createInjectionKey } from '../../_utils'\n\nexport const avatarGroupInjectionKey\n  = createInjectionKey<AvatarGroupInjection>('n-avatar-group')\n","import { c, cB, cE, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-border-radius\n// --n-color\n// --n-color-modal\n// --n-color-popover\n// --n-bezier\n// --n-merged-size\nexport default cB('avatar', `\n  width: var(--n-merged-size);\n  height: var(--n-merged-size);\n  color: #FFF;\n  font-size: var(--n-font-size);\n  display: inline-flex;\n  position: relative;\n  overflow: hidden;\n  text-align: center;\n  border: var(--n-border);\n  border-radius: var(--n-border-radius);\n  --n-merged-color: var(--n-color);\n  background-color: var(--n-merged-color);\n  transition:\n    border-color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    color .3s var(--n-bezier);\n`, [\n  insideModal(c('&', '--n-merged-color: var(--n-color-modal);')),\n  insidePopover(c('&', '--n-merged-color: var(--n-color-popover);')),\n  c('img', `\n    width: 100%;\n    height: 100%;\n  `),\n  cE('text', `\n    white-space: nowrap;\n    display: inline-block;\n    position: absolute;\n    left: 50%;\n    top: 50%;\n  `),\n  cB('icon', `\n    vertical-align: bottom;\n    font-size: calc(var(--n-merged-size) - 6px);\n  `),\n  cE('text', 'line-height: 1.25')\n])\n","import type {\n  CSSProperties,\n  ImgHTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { IntersectionObserverOptions } from '../../image/src/utils'\nimport type { AvatarTheme, AvatarThemeOverrides } from '../styles'\nimport type { ObjectFit, Size } from './interface'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  color2Class,\n  createKey,\n  resolveSlot,\n  resolveWrappedSlot\n} from '../../_utils'\nimport { isImageSupportNativeLazy } from '../../_utils/env/is-native-lazy-load'\nimport { observeIntersection } from '../../image/src/utils'\nimport { tagInjectionKey } from '../../tag/src/Tag'\nimport { avatarLight } from '../styles'\nimport { avatarGroupInjectionKey } from './context'\nimport style from './styles/index.cssr'\n\nexport const avatarProps = {\n  ...(useTheme.props as ThemeProps<AvatarTheme, AvatarThemeOverrides>),\n  size: [String, Number] as PropType<Size>,\n  src: String,\n  circle: {\n    type: Boolean,\n    default: undefined\n  },\n  objectFit: String as PropType<ObjectFit>,\n  round: {\n    type: Boolean,\n    default: undefined\n  },\n  bordered: {\n    type: Boolean,\n    default: undefined\n  },\n  onError: Function as PropType<(e: Event) => void>,\n  fallbackSrc: String,\n  intersectionObserverOptions: Object as PropType<IntersectionObserverOptions>,\n  lazy: Boolean,\n  onLoad: Function as PropType<(e: Event) => void>,\n  renderPlaceholder: Function as PropType<() => VNodeChild>,\n  renderFallback: Function as PropType<() => VNodeChild>,\n  imgProps: Object as PropType<ImgHTMLAttributes>,\n  /** @deprecated */\n  color: String\n} as const\n\nexport type AvatarProps = ExtractPublicPropTypes<typeof avatarProps>\n\nexport interface AvatarSlots {\n  default?: () => VNode[]\n  placeholder?: () => VNode[]\n  fallback?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Avatar',\n  props: avatarProps,\n  slots: Object as SlotsType<AvatarSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const hasLoadErrorRef = ref(false)\n    let memoedTextHtml: string | null = null\n    const textRef = ref<HTMLElement | null>(null)\n    const selfRef = ref<HTMLElement | null>(null)\n    const fitTextTransform = (): void => {\n      const { value: textEl } = textRef\n      if (textEl) {\n        if (memoedTextHtml === null || memoedTextHtml !== textEl.innerHTML) {\n          memoedTextHtml = textEl.innerHTML\n          const { value: selfEl } = selfRef\n          if (selfEl) {\n            const { offsetWidth: elWidth, offsetHeight: elHeight } = selfEl\n            const { offsetWidth: textWidth, offsetHeight: textHeight } = textEl\n            const radix = 0.9\n            const ratio = Math.min(\n              (elWidth / textWidth) * radix,\n              (elHeight / textHeight) * radix,\n              1\n            )\n            textEl.style.transform = `translateX(-50%) translateY(-50%) scale(${ratio})`\n          }\n        }\n      }\n    }\n    const NAvatarGroup = inject(avatarGroupInjectionKey, null)\n    const mergedSizeRef = computed(() => {\n      const { size } = props\n      if (size)\n        return size\n      const { size: avatarGroupSize } = NAvatarGroup || {}\n      if (avatarGroupSize)\n        return avatarGroupSize\n      return 'medium'\n    })\n    const themeRef = useTheme(\n      'Avatar',\n      '-avatar',\n      style,\n      avatarLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const TagInjection = inject(tagInjectionKey, null)\n    const mergedRoundRef = computed(() => {\n      if (NAvatarGroup)\n        return true\n      const { round, circle } = props\n      if (round !== undefined || circle !== undefined)\n        return round || circle\n      if (TagInjection) {\n        return TagInjection.roundRef.value\n      }\n      return false\n    })\n    const mergedBorderedRef = computed(() => {\n      if (NAvatarGroup)\n        return true\n      return props.bordered || false\n    })\n    const cssVarsRef = computed(() => {\n      const size = mergedSizeRef.value\n      const round = mergedRoundRef.value\n      const bordered = mergedBorderedRef.value\n      const { color: propColor } = props\n      const {\n        self: {\n          borderRadius,\n          fontSize,\n          color,\n          border,\n          colorModal,\n          colorPopover\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      let height: string\n      if (typeof size === 'number') {\n        height = `${size}px`\n      }\n      else {\n        height = themeRef.value.self[createKey('height', size)]\n      }\n      return {\n        '--n-font-size': fontSize,\n        '--n-border': bordered ? border : 'none',\n        '--n-border-radius': round ? '50%' : borderRadius,\n        '--n-color': propColor || color,\n        '--n-color-modal': propColor || colorModal,\n        '--n-color-popover': propColor || colorPopover,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-merged-size': `var(--n-avatar-size-override, ${height})`\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'avatar',\n          computed(() => {\n            const size = mergedSizeRef.value\n            const round = mergedRoundRef.value\n            const bordered = mergedBorderedRef.value\n            const { color } = props\n            let hash = ''\n            if (size) {\n              if (typeof size === 'number') {\n                hash += `a${size}`\n              }\n              else {\n                hash += size[0]\n              }\n            }\n            if (round) {\n              hash += 'b'\n            }\n            if (bordered) {\n              hash += 'c'\n            }\n            if (color) {\n              hash += color2Class(color)\n            }\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    const shouldStartLoadingRef = ref(!props.lazy)\n\n    onMounted(() => {\n      // Use IntersectionObserver if lazy and intersectionObserverOptions is set\n      if (props.lazy && props.intersectionObserverOptions) {\n        let unobserve: (() => void) | undefined\n        const stopWatchHandle = watchEffect(() => {\n          unobserve?.()\n          unobserve = undefined\n          if (props.lazy) {\n            unobserve = observeIntersection(\n              selfRef.value,\n              props.intersectionObserverOptions,\n              shouldStartLoadingRef\n            )\n          }\n        })\n        onBeforeUnmount(() => {\n          stopWatchHandle()\n          unobserve?.()\n        })\n      }\n    })\n\n    watch(\n      () => props.src || props.imgProps?.src,\n      () => {\n        hasLoadErrorRef.value = false\n      }\n    )\n\n    const loadedRef = ref(!props.lazy)\n\n    return {\n      textRef,\n      selfRef,\n      mergedRoundRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      fitTextTransform,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      hasLoadError: hasLoadErrorRef,\n      shouldStartLoading: shouldStartLoadingRef,\n      loaded: loadedRef,\n      mergedOnError: (e: Event) => {\n        if (!shouldStartLoadingRef.value)\n          return\n        hasLoadErrorRef.value = true\n        const { onError, imgProps: { onError: imgPropsOnError } = {} } = props\n        onError?.(e)\n        imgPropsOnError?.(e)\n      },\n      mergedOnLoad: (e: Event) => {\n        const { onLoad, imgProps: { onLoad: imgPropsOnLoad } = {} } = props\n        onLoad?.(e)\n        imgPropsOnLoad?.(e)\n        loadedRef.value = true\n      }\n    }\n  },\n  render() {\n    const {\n      $slots,\n      src,\n      mergedClsPrefix,\n      lazy,\n      onRender,\n      loaded,\n      hasLoadError,\n      imgProps = {}\n    } = this\n    onRender?.()\n    let img: VNodeChild\n    const placeholderNode\n      = !loaded\n        && !hasLoadError\n        && (this.renderPlaceholder\n          ? this.renderPlaceholder()\n          : this.$slots.placeholder?.())\n\n    if (this.hasLoadError) {\n      img = this.renderFallback\n        ? this.renderFallback()\n        : resolveSlot($slots.fallback, () => [\n            <img src={this.fallbackSrc} style={{ objectFit: this.objectFit }} />\n          ])\n    }\n    else {\n      img = resolveWrappedSlot($slots.default, (children) => {\n        if (children) {\n          return (\n            <VResizeObserver onResize={this.fitTextTransform}>\n              {{\n                default: () => (\n                  <span ref=\"textRef\" class={`${mergedClsPrefix}-avatar__text`}>\n                    {children}\n                  </span>\n                )\n              }}\n            </VResizeObserver>\n          )\n        }\n        else if (src || imgProps.src) {\n          const loadSrc = this.src || imgProps.src\n          return h('img', {\n            ...imgProps,\n            loading:\n              // If interseciton observer options is set, do not use native lazy\n              isImageSupportNativeLazy\n              && !this.intersectionObserverOptions\n              && lazy\n                ? 'lazy'\n                : 'eager',\n            src:\n              lazy && this.intersectionObserverOptions\n                ? this.shouldStartLoading\n                  ? loadSrc\n                  : undefined\n                : loadSrc,\n            'data-image-src': loadSrc,\n            onLoad: this.mergedOnLoad,\n            onError: this.mergedOnError,\n            style: [\n              imgProps.style || '',\n              { objectFit: this.objectFit },\n              placeholderNode\n                ? {\n                    height: '0',\n                    width: '0',\n                    visibility: 'hidden',\n                    position: 'absolute'\n                  }\n                : ''\n            ]\n          })\n        }\n      })\n    }\n    return (\n      <span\n        ref=\"selfRef\"\n        class={[`${mergedClsPrefix}-avatar`, this.themeClass]}\n        style={this.cssVars as any}\n      >\n        {img}\n        {lazy && placeholderNode}\n      </span>\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { AvatarTheme } from '../../avatar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { avatarLight } from '../../avatar/styles'\n\nexport function self() {\n  return {\n    gap: '-12px'\n  }\n}\n\nexport interface AvatarGroupThemeVars extends ReturnType<typeof self> {}\n\nconst avatarGroupLight: AvatarGroupTheme = createTheme({\n  name: 'AvatarGroup',\n  common: commonLight,\n  peers: {\n    Avatar: avatarLight\n  },\n  self\n})\n\nexport interface AvatarGroupTheme extends Theme<\n  'AvatarGroup',\n  AvatarGroupThemeVars,\n  {\n    Avatar: AvatarTheme\n  }\n> {}\n\nexport interface AvatarGroupThemeOverrides extends ExtractThemeOverrides<AvatarGroupTheme> {}\n\nexport default avatarGroupLight\n","import type { AvatarGroupTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { avatarDark } from '../../avatar/styles'\nimport { self } from './light'\n\nconst avatarGroupDark: AvatarGroupTheme = {\n  name: 'AvatarGroup',\n  common: commonDark,\n  peers: {\n    Avatar: avatarDark\n  },\n  self\n}\n\nexport default avatarGroupDark\n","import { c, cB, cM, cNotM } from '../../../_utils/cssr'\n\n// --n-gap\nexport default cB('avatar-group', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cNotM('vertical', `\n      flex-direction: row;\n    `, [\n      cB('avatar', [\n        c('&:not(:first-child)', `\n          margin-right: var(--n-gap);\n          margin-left: 0;\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/avatar-group-rtl.cssr'\n\nexport const avatarGroupRtl: RtlItem = {\n  name: 'AvatarGroup',\n  style: rtlStyle\n}\n","import { c, cB, cM, cNotM } from '../../../_utils/cssr/index'\n\n// --n-gap\nexport default cB('avatar-group', `\n  flex-wrap: nowrap;\n  display: inline-flex;\n  position: relative;\n`, [\n  cM('expand-on-hover', [\n    cB('avatar', [\n      c('&:not(:first-child)', `\n         transition: margin .3s var(--n-bezier);\n      `)\n    ]),\n    c('&:hover', [\n      cNotM('vertical', [\n        cB('avatar', [\n          c('&:not(:first-child)', `\n             margin-left: 0 !important;\n          `)\n        ])\n      ]),\n      cM('vertical', [\n        cB('avatar', [\n          c('&:not(:first-child)', `\n             margin-top: 0 !important;\n          `)\n        ])\n      ])\n    ])\n  ]),\n  cNotM('vertical', `\n    flex-direction: row;\n  `, [\n    cB('avatar', [\n      c('&:not(:first-child)', `\n         margin-left: var(--n-gap);\n      `)\n    ])\n  ]),\n  cM('vertical', `\n    flex-direction: column;\n  `, [\n    cB('avatar', [\n      c('&:not(:first-child)', `\n         margin-top: var(--n-gap);\n      `)\n    ])\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { Size } from '../../avatar/src/interface'\nimport type { AvatarGroupTheme, AvatarGroupThemeOverrides } from '../styles'\nimport type {\n  AvatarGroupAvatarSlotProps,\n  AvatarGroupOption,\n  AvatarGroupRestSlotProps\n} from './public-types'\nimport { computed, defineComponent, h, provide } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport NAvatar from '../../avatar/src/Avatar'\nimport { avatarGroupInjectionKey } from '../../avatar/src/context'\nimport { avatarGroupLight } from '../styles'\nimport style from './styles/avatar-group.cssr'\n\nexport interface AvatarGroupInjection {\n  size?: Size | undefined\n}\n\nexport const avatarGroupProps = {\n  ...(useTheme.props as ThemeProps<\n    AvatarGroupTheme,\n    AvatarGroupThemeOverrides\n  >),\n  max: Number,\n  maxStyle: [Object, String] as PropType<CSSProperties | string>,\n  options: {\n    type: Array as PropType<AvatarGroupOption[]>,\n    default: () => []\n  },\n  vertical: Boolean,\n  expandOnHover: Boolean,\n  size: [String, Number] as PropType<Size | undefined>\n} as const\n\nexport type AvatarGroupProps = ExtractPublicPropTypes<typeof avatarGroupProps>\n\nexport interface AvatarGroupSlots {\n  avatar?: (props: AvatarGroupAvatarSlotProps) => VNode[]\n  rest?: (props: AvatarGroupRestSlotProps) => VNode[]\n  default?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'AvatarGroup',\n  props: avatarGroupProps,\n  slots: Object as SlotsType<AvatarGroupSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    const mergedThemeRef = useTheme(\n      'AvatarGroup',\n      '-avatar-group',\n      style,\n      avatarGroupLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(avatarGroupInjectionKey, props)\n    const rtlEnabledRef = useRtl(\n      'AvatarGroup',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const restOptionsRef = computed(() => {\n      const { max } = props\n      if (max === undefined)\n        return undefined\n      const { options } = props\n      if (options.length > max)\n        return options.slice(max - 1, options.length)\n      return []\n    })\n    const displayedOptionsRef = computed(() => {\n      const { options, max } = props\n      if (max === undefined)\n        return options\n      if (options.length > max)\n        return options.slice(0, max - 1)\n      if (options.length === max)\n        return options.slice(0, max)\n      return options\n    })\n    return {\n      mergedTheme: mergedThemeRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      restOptions: restOptionsRef,\n      displayedOptions: displayedOptionsRef,\n      cssVars: computed(() => {\n        return {\n          '--n-gap': mergedThemeRef.value.self.gap\n        }\n      }) as Ref<CSSProperties>\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      displayedOptions,\n      restOptions,\n      mergedTheme,\n      $slots\n    } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-avatar-group`,\n          this.rtlEnabled && `${mergedClsPrefix}-avatar-group--rtl`,\n          this.vertical && `${mergedClsPrefix}-avatar-group--vertical`,\n          this.expandOnHover\n          && `${mergedClsPrefix}-avatar-group--expand-on-hover`\n        ]}\n        style={this.cssVars}\n        role=\"group\"\n      >\n        {displayedOptions.map((option) => {\n          return $slots.avatar ? (\n            $slots.avatar({ option })\n          ) : (\n            <NAvatar\n              src={option.src}\n              theme={mergedTheme.peers.Avatar}\n              themeOverrides={mergedTheme.peerOverrides.Avatar}\n            />\n          )\n        })}\n        {restOptions !== undefined\n          && restOptions.length > 0\n          && ($slots.rest ? (\n            $slots.rest({ options: restOptions, rest: restOptions.length })\n          ) : (\n            <NAvatar\n              style={this.maxStyle}\n              theme={mergedTheme.peers.Avatar}\n              themeOverrides={mergedTheme.peerOverrides.Avatar}\n            >\n              {{\n                default: () => `+${restOptions.length}`\n              }}\n            </NAvatar>\n          ))}\n      </div>\n    )\n  }\n})\n","export default {\n  width: '44px',\n  height: '44px',\n  borderRadius: '22px',\n  iconSize: '26px'\n}\n","import type { BackTopTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport commonVariables from './_common'\n\nconst backTopDark: BackTopTheme = {\n  name: 'BackTop',\n  common: commonDark,\n  self(vars) {\n    const { popoverColor, textColor2, primaryColorHover, primaryColorPressed }\n      = vars\n    return {\n      ...commonVariables,\n      color: popoverColor,\n      textColor: textColor2,\n      iconColor: textColor2,\n      iconColorHover: primaryColorHover,\n      iconColorPressed: primaryColorPressed,\n      boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)',\n      boxShadowHover: '0 2px 12px 0px rgba(0, 0, 0, .18)',\n      boxShadowPressed: '0 2px 12px 0px rgba(0, 0, 0, .18)'\n    }\n  }\n}\n\nexport default backTopDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { popoverColor, textColor2, primaryColorHover, primaryColorPressed }\n    = vars\n  return {\n    ...commonVariables,\n    color: popoverColor,\n    textColor: textColor2,\n    iconColor: textColor2,\n    iconColorHover: primaryColorHover,\n    iconColorPressed: primaryColorPressed,\n    boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)',\n    boxShadowHover: '0 2px 12px 0px rgba(0, 0, 0, .18)',\n    boxShadowPressed: '0 2px 12px 0px rgba(0, 0, 0, .18)'\n  }\n}\n\nexport interface BackTopThemeVars extends ReturnType<typeof self> {}\n\nconst backTopLight: BackTopTheme = {\n  name: 'BackTop',\n  common: commonLight,\n  self\n}\n\nexport interface BackTopTheme extends Theme<'BackTop', BackTopThemeVars> {}\n\nexport interface BackTopThemeOverrides extends ExtractThemeOverrides<BackTopTheme> {}\n\nexport default backTopLight\n","import { h } from 'vue'\n\nexport default () => (\n  <svg\n    viewBox=\"0 0 24 24\"\n    version=\"1.1\"\n    xmlns=\"http://www.w3.org/2000/svg\"\n    xlinkHref=\"http://www.w3.org/1999/xlink\"\n  >\n    <g stroke=\"none\" stroke-width=\"1\" fill-rule=\"evenodd\">\n      <g transform=\"translate(-139.000000, -4423.000000)\" fill-rule=\"nonzero\">\n        <g transform=\"translate(120.000000, 4285.000000)\">\n          <g transform=\"translate(7.000000, 126.000000)\">\n            <g transform=\"translate(24.000000, 24.000000) scale(1, -1) translate(-24.000000, -24.000000) translate(12.000000, 12.000000)\">\n              <g transform=\"translate(4.000000, 2.000000)\">\n                <path d=\"M8,0 C8.51283584,0 8.93550716,0.38604019 8.99327227,0.883378875 L9,1 L9,10.584 L12.2928932,7.29289322 C12.6834175,6.90236893 13.3165825,6.90236893 13.7071068,7.29289322 C14.0675907,7.65337718 14.0953203,8.22060824 13.7902954,8.61289944 L13.7071068,8.70710678 L8.70710678,13.7071068 L8.62544899,13.7803112 L8.618,13.784 L8.59530661,13.8036654 L8.4840621,13.8753288 L8.37133602,13.9287745 L8.22929083,13.9735893 L8.14346259,13.9897165 L8.03324678,13.9994506 L7.9137692,13.9962979 L7.77070917,13.9735893 L7.6583843,13.9401293 L7.57677845,13.9063266 L7.47929125,13.8540045 L7.4048407,13.8036865 L7.38131006,13.7856883 C7.35030318,13.7612383 7.32077858,13.7349921 7.29289322,13.7071068 L2.29289322,8.70710678 L2.20970461,8.61289944 C1.90467972,8.22060824 1.93240926,7.65337718 2.29289322,7.29289322 C2.65337718,6.93240926 3.22060824,6.90467972 3.61289944,7.20970461 L3.70710678,7.29289322 L7,10.585 L7,1 L7.00672773,0.883378875 C7.06449284,0.38604019 7.48716416,0 8,0 Z\" />\n                <path d=\"M14.9333333,15.9994506 C15.5224371,15.9994506 16,16.4471659 16,16.9994506 C16,17.5122865 15.5882238,17.9349578 15.0577292,17.9927229 L14.9333333,17.9994506 L1.06666667,17.9994506 C0.477562934,17.9994506 0,17.5517354 0,16.9994506 C0,16.4866148 0.411776203,16.0639435 0.9422708,16.0061783 L1.06666667,15.9994506 L14.9333333,15.9994506 Z\" />\n              </g>\n            </g>\n          </g>\n        </g>\n      </g>\n    </g>\n  </svg>\n)\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-border-radius\n// --n-height\n// --n-width\n// --n-box-shadow\n// --n-box-shadow-hover\n// --n-box-shadow-pressed\n// --n-color\n// --n-icon-size\n// --n-icon-color\n// --n-icon-color-hover\n// --n-icon-color-pressed\n// --n-text-color\nexport default cB('back-top', `\n  position: fixed;\n  right: 40px;\n  bottom: 40px;\n  cursor: pointer;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--n-text-color);\n  transition:\n    color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier),\n    background-color .3s var(--n-bezier);\n  border-radius: var(--n-border-radius);\n  height: var(--n-height);\n  min-width: var(--n-width);\n  box-shadow: var(--n-box-shadow);\n  background-color: var(--n-color);\n`, [\n  fadeInScaleUpTransition(),\n  cM('transition-disabled', {\n    transition: 'none !important'\n  }),\n  cB('base-icon', `\n    font-size: var(--n-icon-size);\n    color: var(--n-icon-color);\n    transition: color .3s var(--n-bezier);\n  `),\n  c('svg', {\n    pointerEvents: 'none'\n  }),\n  c('&:hover', {\n    boxShadow: 'var(--n-box-shadow-hover)'\n  }, [\n    cB('base-icon', {\n      color: 'var(--n-icon-color-hover)'\n    })\n  ]),\n  c('&:active', {\n    boxShadow: 'var(--n-box-shadow-pressed)'\n  }, [\n    cB('base-icon', {\n      color: 'var(--n-icon-color-pressed)'\n    })\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { BackTopTheme, BackTopThemeOverrides } from '../styles'\nimport { getScrollParent, unwrapElement } from 'seemly'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  nextTick,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  toRef,\n  Transition,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VLazyTeleport } from 'vueuc'\nimport { NBaseIcon } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  formatLength,\n  isDocument,\n  lockHtmlScrollRightCompensationRef,\n  resolveSlot,\n  warn,\n  warnOnce\n} from '../../_utils'\nimport { backTopLight } from '../styles'\nimport renderBackTopIcon from './BackTopIcon'\nimport style from './styles/index.cssr'\n\nexport const backTopProps = {\n  ...(useTheme.props as ThemeProps<BackTopTheme, BackTopThemeOverrides>),\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  right: {\n    type: [Number, String] as PropType<string | number>,\n    default: 40\n  },\n  bottom: {\n    type: [Number, String] as PropType<string | number>,\n    default: 40\n  },\n  to: {\n    type: [String, Object] as PropType<HTMLElement | string>,\n    default: 'body'\n  },\n  visibilityHeight: {\n    type: Number,\n    default: 180\n  },\n  listenTo: [String, Object, Function] as PropType<\n    string | HTMLElement | Document | (() => HTMLElement | Document)\n  >,\n  'onUpdate:show': {\n    type: Function,\n    default: () => {}\n  },\n  // deprecated\n  target: Function as PropType<() => HTMLElement>,\n  onShow: Function as unknown as PropType<() => void>,\n  onHide: Function as unknown as PropType<() => void>\n} as const\n\nexport type BackTopProps = ExtractPublicPropTypes<typeof backTopProps>\n\nexport default defineComponent({\n  name: 'BackTop',\n  // make style applied to back-top button\n  inheritAttrs: false,\n  props: backTopProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.target !== undefined) {\n          warnOnce(\n            'back-top',\n            '`target` is deprecated, please use `listen-to` instead.'\n          )\n        }\n        if (props.onShow !== undefined) {\n          warnOnce(\n            'back-top',\n            '`on-show` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n        if (props.onHide !== undefined) {\n          warnOnce(\n            'back-top',\n            '`on-hide` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n\n    const scrollTopRef = ref<number | null>(null)\n    const uncontrolledShowRef = ref(false)\n    watchEffect(() => {\n      const { value: scrollTop } = scrollTopRef\n      if (scrollTop === null) {\n        uncontrolledShowRef.value = false\n        return\n      }\n      uncontrolledShowRef.value = scrollTop >= props.visibilityHeight\n    })\n    const DomInfoReadyRef = ref(false)\n    watch(uncontrolledShowRef, (value) => {\n      if (DomInfoReadyRef.value) {\n        props['onUpdate:show']?.(value)\n      }\n    })\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n    const transitionDisabledRef = ref(true)\n    const placeholderRef = ref<HTMLElement | null>(null)\n    const styleRef = computed(\n      (): {\n        right: string\n        bottom: string\n      } => {\n        return {\n          right: `calc(${formatLength(props.right)} + ${\n            lockHtmlScrollRightCompensationRef.value\n          })`,\n          bottom: formatLength(props.bottom)\n        }\n      }\n    )\n    let scrollElement: HTMLElement | Document\n    let scrollListenerRegistered: boolean\n    // deprecated\n    watch(mergedShowRef, (value) => {\n      if (DomInfoReadyRef.value) {\n        if (value) {\n          props.onShow?.()\n        }\n        props.onHide?.()\n      }\n    })\n    const themeRef = useTheme(\n      'BackTop',\n      '-back-top',\n      style,\n      backTopLight,\n      props,\n      mergedClsPrefixRef\n    )\n    function init(): void {\n      if (scrollListenerRegistered)\n        return\n      scrollListenerRegistered = true\n      const scrollEl\n        = props.target?.()\n          || unwrapElement(props.listenTo)\n          || getScrollParent(placeholderRef.value)\n      if (!scrollEl) {\n        if (__DEV__) {\n          warn(\n            'back-top',\n            'Container of back-top element is not found. This could be a bug of naive-ui.'\n          )\n        }\n        return\n      }\n      scrollElement\n        = scrollEl === document.documentElement ? document : scrollEl\n      const { to } = props\n      const target = typeof to === 'string' ? document.querySelector(to) : to\n      if (__DEV__ && !target) {\n        warn('back-top', 'Target is not found.')\n      }\n      scrollElement.addEventListener('scroll', handleScroll)\n      handleScroll()\n    }\n    function handleClick(): void {\n      ;(isDocument(scrollElement)\n        ? document.documentElement\n        : scrollElement\n      ).scrollTo({\n        top: 0,\n        behavior: 'smooth'\n      })\n    }\n    function handleScroll(): void {\n      scrollTopRef.value = (\n        isDocument(scrollElement) ? document.documentElement : scrollElement\n      ).scrollTop\n      if (!DomInfoReadyRef.value) {\n        void nextTick(() => {\n          DomInfoReadyRef.value = true\n        })\n      }\n    }\n    function handleAfterEnter(): void {\n      transitionDisabledRef.value = false\n    }\n    onMounted(() => {\n      init()\n      transitionDisabledRef.value = mergedShowRef.value\n    })\n    onBeforeUnmount(() => {\n      if (scrollElement) {\n        scrollElement.removeEventListener('scroll', handleScroll)\n      }\n    })\n\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          color,\n          boxShadow,\n          boxShadowHover,\n          boxShadowPressed,\n          iconColor,\n          iconColorHover,\n          iconColorPressed,\n          width,\n          height,\n          iconSize,\n          borderRadius,\n          textColor\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-height': height,\n        '--n-width': width,\n        '--n-box-shadow': boxShadow,\n        '--n-box-shadow-hover': boxShadowHover,\n        '--n-box-shadow-pressed': boxShadowPressed,\n        '--n-color': color,\n        '--n-icon-size': iconSize,\n        '--n-icon-color': iconColor,\n        '--n-icon-color-hover': iconColorHover,\n        '--n-icon-color-pressed': iconColorPressed,\n        '--n-text-color': textColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('back-top', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      placeholderRef,\n      style: styleRef,\n      mergedShow: mergedShowRef,\n      isMounted: useIsMounted(),\n      scrollElement: ref(null),\n      scrollTop: scrollTopRef,\n      DomInfoReady: DomInfoReadyRef,\n      transitionDisabled: transitionDisabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      handleAfterEnter,\n      handleScroll,\n      handleClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        ref=\"placeholderRef\"\n        class={`${mergedClsPrefix}-back-top-placeholder`}\n        style=\"display: none\"\n        aria-hidden\n      >\n        <VLazyTeleport to={this.to} show={this.mergedShow}>\n          {{\n            default: () => (\n              <Transition\n                name=\"fade-in-scale-up-transition\"\n                appear={this.isMounted}\n                onAfterEnter={this.handleAfterEnter}\n              >\n                {{\n                  default: () => {\n                    this.onRender?.()\n                    return this.mergedShow\n                      ? h(\n                          'div',\n                          mergeProps(this.$attrs, {\n                            class: [\n                              `${mergedClsPrefix}-back-top`,\n                              this.themeClass,\n                              this.transitionDisabled\n                              && `${mergedClsPrefix}-back-top--transition-disabled`\n                            ],\n                            style: [this.style, this.cssVars],\n                            onClick: this.handleClick\n                          }),\n                          resolveSlot(this.$slots.default, () => [\n                            <NBaseIcon clsPrefix={mergedClsPrefix}>\n                              {{ default: renderBackTopIcon }}\n                            </NBaseIcon>\n                          ])\n                        )\n                      : null\n                  }\n                }}\n              </Transition>\n            )\n          }}\n        </VLazyTeleport>\n      </div>\n    )\n  }\n})\n","import type { BadgeTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst badgeDark: BadgeTheme = {\n  name: 'Badge',\n  common: commonDark,\n  self(vars) {\n    const {\n      errorColorSuppl,\n      infoColorSuppl,\n      successColorSuppl,\n      warningColorSuppl,\n      fontFamily\n    } = vars\n    return {\n      color: errorColorSuppl,\n      colorInfo: infoColorSuppl,\n      colorSuccess: successColorSuppl,\n      colorError: errorColorSuppl,\n      colorWarning: warningColorSuppl,\n      fontSize: '12px',\n      fontFamily\n    }\n  }\n}\n\nexport default badgeDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { errorColor, infoColor, successColor, warningColor, fontFamily } = vars\n  return {\n    color: errorColor,\n    colorInfo: infoColor,\n    colorSuccess: successColor,\n    colorError: errorColor,\n    colorWarning: warningColor,\n    fontSize: '12px',\n    fontFamily\n  }\n}\n\nexport interface BadgeThemeVars extends ReturnType<typeof self> {}\n\nconst badgeLight: BadgeTheme = {\n  name: 'Badge',\n  common: commonLight,\n  self\n}\n\nexport interface BadgeTheme extends Theme<'Badge', BadgeThemeVars> {}\n\nexport interface BadgeThemeOverrides extends ExtractThemeOverrides<BadgeTheme> {}\n\nexport default badgeLight\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('badge', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('badge-sup', `\n      right: 100%;\n      left: unset;\n      transform: translateX(50%);\n      direction: initial;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const badgeRtl: RtlItem = {\n  name: 'Badge',\n  style: rtlStyle\n}\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-color\n// --n-ripple-color\n// --n-bezier\n// --n-ripple-bezier\n// --n-font-size\n// --n-font-family\nexport default c([\n  c('@keyframes badge-wave-spread', {\n    from: {\n      boxShadow: '0 0 0.5px 0px var(--n-ripple-color)',\n      opacity: 0.6\n    },\n    to: {\n      // don't use exact 5px since chrome will display the animation with glitches\n      boxShadow: '0 0 0.5px 4.5px var(--n-ripple-color)',\n      opacity: 0\n    }\n  }),\n  cB('badge', `\n    display: inline-flex;\n    position: relative;\n    vertical-align: middle;\n    font-family: var(--n-font-family);\n  `, [\n    cM('as-is', [\n      cB('badge-sup', {\n        position: 'static',\n        transform: 'translateX(0)'\n      }, [\n        fadeInScaleUpTransition({\n          transformOrigin: 'left bottom',\n          originalTransform: 'translateX(0)'\n        })\n      ])\n    ]),\n    cM('dot', [\n      cB('badge-sup', `\n        height: 8px;\n        width: 8px;\n        padding: 0;\n        min-width: 8px;\n        left: 100%;\n        bottom: calc(100% - 4px);\n      `, [\n        c('::before', 'border-radius: 4px;')\n      ])\n    ]),\n    cB('badge-sup', `\n      background: var(--n-color);\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      color: #FFF;\n      position: absolute;\n      height: 18px;\n      line-height: 18px;\n      border-radius: 9px;\n      padding: 0 6px;\n      text-align: center;\n      font-size: var(--n-font-size);\n      transform: translateX(-50%);\n      left: 100%;\n      bottom: calc(100% - 9px);\n      font-variant-numeric: tabular-nums;\n      z-index: 2;\n      display: flex;\n      align-items: center;\n    `, [\n      fadeInScaleUpTransition({\n        transformOrigin: 'left bottom',\n        originalTransform: 'translateX(-50%)'\n      }),\n      cB('base-wave', {\n        zIndex: 1,\n        animationDuration: '2s',\n        animationIterationCount: 'infinite',\n        animationDelay: '1s',\n        animationTimingFunction: 'var(--n-ripple-bezier)',\n        animationName: 'badge-wave-spread'\n      }),\n      c('&::before', `\n        opacity: 0;\n        transform: scale(1);\n        border-radius: 9px;\n        content: \"\";\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `)\n    ])\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { BadgeTheme, BadgeThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, onMounted, ref, Transition } from 'vue'\nimport { NBaseSlotMachine, NBaseWave } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  color2Class,\n  createKey,\n  getTitleAttribute,\n  isSlotEmpty,\n  resolveSlot\n} from '../../_utils'\nimport { badgeLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const badgeProps = {\n  ...(useTheme.props as ThemeProps<BadgeTheme, BadgeThemeOverrides>),\n  value: [String, Number] as PropType<string | number>,\n  max: Number,\n  dot: Boolean,\n  type: {\n    type: String as PropType<\n      'success' | 'error' | 'warning' | 'info' | 'default'\n    >,\n    default: 'default'\n  },\n  show: {\n    type: Boolean,\n    default: true\n  },\n  showZero: Boolean,\n  processing: Boolean,\n  color: String,\n  offset: Array as unknown as PropType<\n    readonly [number | string, number | string]\n  >\n} as const\n\nexport type BadgeProps = ExtractPublicPropTypes<typeof badgeProps>\n\nexport default defineComponent({\n  name: 'Badge',\n  props: badgeProps,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Badge',\n      '-badge',\n      style,\n      badgeLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const appearedRef = ref(false)\n    const handleAfterEnter = (): void => {\n      appearedRef.value = true\n    }\n    const handleAfterLeave = (): void => {\n      appearedRef.value = false\n    }\n    const showBadgeRef = computed(() => {\n      return (\n        props.show\n        && (props.dot\n          || (props.value !== undefined\n            && !(!props.showZero && Number(props.value) <= 0))\n          || !isSlotEmpty(slots.value))\n      )\n    })\n    onMounted(() => {\n      if (showBadgeRef.value)\n        appearedRef.value = true\n    })\n\n    const rtlEnabledRef = useRtl('Badge', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { type, color: propColor } = props\n      const {\n        common: { cubicBezierEaseInOut, cubicBezierEaseOut },\n        self: { [createKey('color', type)]: color, fontFamily, fontSize }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-font-family': fontFamily,\n        '--n-color': propColor || color,\n        '--n-ripple-color': propColor || color,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-ripple-bezier': cubicBezierEaseOut\n      }\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'badge',\n          computed(() => {\n            let hash = ''\n            const { type, color } = props\n            if (type) {\n              hash += type[0]\n            }\n            if (color) {\n              hash += color2Class(color)\n            }\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    const offsetStyleRef = computed(() => {\n      const { offset } = props\n      if (!offset)\n        return undefined\n      const [x, y] = offset\n      const reslovedOffsetX = typeof x === 'number' ? `${x}px` : x\n      const reslovedOffsetY = typeof y === 'number' ? `${y}px` : y\n      return {\n        transform: `translate(calc(${\n          rtlEnabledRef?.value ? '50%' : '-50%'\n        } + ${reslovedOffsetX}), ${reslovedOffsetY})`\n      }\n    })\n\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      appeared: appearedRef,\n      showBadge: showBadgeRef,\n      handleAfterEnter,\n      handleAfterLeave,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      offsetStyle: offsetStyleRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix, onRender, themeClass, $slots } = this\n    onRender?.()\n    const children = $slots.default?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-badge`,\n          this.rtlEnabled && `${mergedClsPrefix}-badge--rtl`,\n          themeClass,\n          {\n            [`${mergedClsPrefix}-badge--dot`]: this.dot,\n            [`${mergedClsPrefix}-badge--as-is`]: !children\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {children}\n        <Transition\n          name=\"fade-in-scale-up-transition\"\n          onAfterEnter={this.handleAfterEnter}\n          onAfterLeave={this.handleAfterLeave}\n        >\n          {{\n            default: () =>\n              this.showBadge ? (\n                <sup\n                  class={`${mergedClsPrefix}-badge-sup`}\n                  title={getTitleAttribute(this.value)}\n                  style={this.offsetStyle}\n                >\n                  {resolveSlot($slots.value, () => [\n                    !this.dot ? (\n                      <NBaseSlotMachine\n                        clsPrefix={mergedClsPrefix}\n                        appeared={this.appeared}\n                        max={this.max}\n                        value={this.value}\n                      />\n                    ) : null\n                  ])}\n                  {this.processing ? (\n                    <NBaseWave clsPrefix={mergedClsPrefix} />\n                  ) : null}\n                </sup>\n              ) : null\n          }}\n        </Transition>\n      </div>\n    )\n  }\n})\n","export default {\n  fontWeightActive: '400'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    fontSize,\n    textColor3,\n    textColor2,\n    borderRadius,\n    buttonColor2Hover,\n    buttonColor2Pressed\n  } = vars\n  return {\n    ...commonVariables,\n    fontSize,\n    itemLineHeight: '1.25',\n    itemTextColor: textColor3,\n    itemTextColorHover: textColor2,\n    itemTextColorPressed: textColor2,\n    itemTextColorActive: textColor2,\n    itemBorderRadius: borderRadius,\n    itemColorHover: buttonColor2Hover,\n    itemColorPressed: buttonColor2Pressed,\n    separatorColor: textColor3\n  }\n}\n\nexport interface BreadcrumbThemeVars extends ReturnType<typeof self> {}\n\nconst breadcrumbLight: BreadcrumbTheme = {\n  name: 'Breadcrumb',\n  common: commonLight,\n  self\n}\n\nexport interface BreadcrumbTheme extends Theme<\n  'Breadcrumb',\n  BreadcrumbThemeVars\n> {}\n\nexport interface BreadcrumbThemeOverrides extends ExtractThemeOverrides<BreadcrumbTheme> {}\n\nexport default breadcrumbLight\n","import type { BreadcrumbTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst breadcrumbDark: BreadcrumbTheme = {\n  name: 'Breadcrumb',\n  common: commonDark,\n  self\n}\n\nexport default breadcrumbDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-bezier\n// --n-item-text-color\n// --n-item-text-color-hover\n// --n-item-text-color-pressed\n// --n-item-text-color-active\n// --n-separator-color\n// --n-font-weight-active\n// --n-item-border-radius\n// --n-item-color-hover\n// --n-item-color-active\n// --n-item-line-height\nexport default cB('breadcrumb', `\n  white-space: nowrap;\n  cursor: default;\n  line-height: var(--n-item-line-height);\n`, [\n  c('ul', `\n    list-style: none;\n    padding: 0;\n    margin: 0;\n  `),\n  c('a', `\n    color: inherit;\n    text-decoration: inherit;\n  `),\n  cB('breadcrumb-item', `\n    font-size: var(--n-font-size);\n    transition: color .3s var(--n-bezier);\n    display: inline-flex;\n    align-items: center;\n  `, [\n    cB('icon', `\n      font-size: 18px;\n      vertical-align: -.2em;\n      transition: color .3s var(--n-bezier);\n      color: var(--n-item-text-color);\n    `),\n    c('&:not(:last-child)', [\n      cM('clickable', [\n        cE('link', `\n          cursor: pointer;\n        `, [\n          c('&:hover', `\n            background-color: var(--n-item-color-hover);\n          `),\n          c('&:active', `\n            background-color: var(--n-item-color-pressed);  \n          `)\n        ])\n      ])\n    ]),\n    cE('link', `\n      padding: 4px;\n      border-radius: var(--n-item-border-radius);\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      color: var(--n-item-text-color);\n      position: relative;\n    `, [\n      c('&:hover', `\n        color: var(--n-item-text-color-hover);\n      `, [\n        cB('icon', `\n          color: var(--n-item-text-color-hover);\n        `)\n      ]),\n      c('&:active', `\n        color: var(--n-item-text-color-pressed);\n      `, [\n        cB('icon', `\n          color: var(--n-item-text-color-pressed);\n        `)\n      ])\n    ]),\n    cE('separator', `\n      margin: 0 8px;\n      color: var(--n-separator-color);\n      transition: color .3s var(--n-bezier);\n      user-select: none;\n      -webkit-user-select: none;\n    `),\n    c('&:last-child', [\n      cE('link', `\n        font-weight: var(--n-font-weight-active);\n        cursor: unset;\n        color: var(--n-item-text-color-active);\n      `, [\n        cB('icon', `\n          color: var(--n-item-text-color-active);\n        `)\n      ]),\n      cE('separator', `\n        display: none;\n      `)\n    ])\n  ])\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { BreadcrumbTheme, BreadcrumbThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, provide, toRef } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createInjectionKey } from '../../_utils'\nimport { breadcrumbLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport interface BreadcrumbInjection {\n  separatorRef: Ref<string>\n  mergedClsPrefixRef: Ref<string>\n}\n\nexport const breadcrumbInjectionKey\n  = createInjectionKey<BreadcrumbInjection>('n-breadcrumb')\n\nexport const breadcrumbProps = {\n  ...(useTheme.props as ThemeProps<BreadcrumbTheme, BreadcrumbThemeOverrides>),\n  separator: {\n    type: String,\n    default: '/'\n  }\n} as const\n\nexport type BreadcrumbProps = ExtractPublicPropTypes<typeof breadcrumbProps>\n\nexport default defineComponent({\n  name: 'Breadcrumb',\n  props: breadcrumbProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Breadcrumb',\n      '-breadcrumb',\n      style,\n      breadcrumbLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(breadcrumbInjectionKey, {\n      separatorRef: toRef(props, 'separator'),\n      mergedClsPrefixRef\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          separatorColor,\n          itemTextColor,\n          itemTextColorHover,\n          itemTextColorPressed,\n          itemTextColorActive,\n          fontSize,\n          fontWeightActive,\n          itemBorderRadius,\n          itemColorHover,\n          itemColorPressed,\n          itemLineHeight\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-item-text-color': itemTextColor,\n        '--n-item-text-color-hover': itemTextColorHover,\n        '--n-item-text-color-pressed': itemTextColorPressed,\n        '--n-item-text-color-active': itemTextColorActive,\n        '--n-separator-color': separatorColor,\n        '--n-item-color-hover': itemColorHover,\n        '--n-item-color-pressed': itemColorPressed,\n        '--n-item-border-radius': itemBorderRadius,\n        '--n-font-weight-active': fontWeightActive,\n        '--n-item-line-height': itemLineHeight\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('breadcrumb', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <nav\n        class={[`${this.mergedClsPrefix}-breadcrumb`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n        aria-label=\"Breadcrumb\"\n      >\n        <ul>{this.$slots.default?.()}</ul>\n      </nav>\n    )\n  }\n})\n","import type { Ref } from 'vue'\nimport { onMounted, onUnmounted, ref } from 'vue'\nimport { isBrowser } from '../env/is-browser'\n\nexport interface IWindowLocation {\n  hash?: string\n  host?: string\n  hostname?: string\n  href?: string\n  origin?: string\n  pathname?: string\n  port?: string\n  protocol?: string\n  search?: string\n}\n\nexport function useBrowserLocation(\n  customWindow = isBrowser ? window : null\n): Ref<IWindowLocation> {\n  const getWindowLocation = (): IWindowLocation => {\n    const {\n      hash,\n      host,\n      hostname,\n      href,\n      origin,\n      pathname,\n      port,\n      protocol,\n      search\n    } = customWindow?.location || {}\n\n    return {\n      hash,\n      host,\n      hostname,\n      href,\n      origin,\n      pathname,\n      port,\n      protocol,\n      search\n    }\n  }\n\n  const locationState = ref(getWindowLocation())\n\n  const updateLocation = (): void => {\n    locationState.value = getWindowLocation()\n  }\n\n  onMounted(() => {\n    if (customWindow) {\n      customWindow.addEventListener('popstate', updateLocation)\n      customWindow.addEventListener('hashchange', updateLocation)\n    }\n  })\n\n  onUnmounted(() => {\n    if (customWindow) {\n      customWindow.removeEventListener('popstate', updateLocation)\n      customWindow.removeEventListener('hashchange', updateLocation)\n    }\n  })\n\n  return locationState\n}\n","import type { ExtractPropTypes, PropType, SlotsType, VNode } from 'vue'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { resolveSlot, warn } from '../../_utils'\nimport { useBrowserLocation } from '../../_utils/composable/use-browser-location'\nimport { breadcrumbInjectionKey } from './Breadcrumb'\n\nexport const breadcrumbItemProps = {\n  separator: String,\n  href: String,\n  clickable: {\n    type: Boolean,\n    default: true\n  },\n  showSeparator: {\n    type: Boolean,\n    default: true\n  },\n  onClick: Function as PropType<(e: MouseEvent) => void>\n} as const\n\nexport type BreadcrumbItemProps = Partial<\n  ExtractPropTypes<typeof breadcrumbItemProps>\n>\n\nexport interface BreadcrumbItemSlots {\n  default?: () => VNode[]\n  separator?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'BreadcrumbItem',\n  props: breadcrumbItemProps,\n  slots: Object as SlotsType<BreadcrumbItemSlots>,\n  setup(props, { slots }) {\n    const NBreadcrumb = inject(breadcrumbInjectionKey, null)\n    if (!NBreadcrumb) {\n      if (__DEV__) {\n        warn(\n          'breadcrumb',\n          '`n-breadcrumb-item` must be placed inside `n-breadcrumb`.'\n        )\n      }\n      return () => null\n    }\n    const { separatorRef, mergedClsPrefixRef } = NBreadcrumb\n    const browserLocationRef = useBrowserLocation()\n\n    const htmlTagRef = computed(() => (props.href ? 'a' : 'span'))\n\n    const ariaCurrentRef = computed(() =>\n      browserLocationRef.value.href === props.href ? 'location' : null\n    )\n\n    return () => {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      return (\n        <li\n          class={[\n            `${mergedClsPrefix}-breadcrumb-item`,\n            props.clickable && `${mergedClsPrefix}-breadcrumb-item--clickable`\n          ]}\n        >\n          {h(\n            htmlTagRef.value,\n            {\n              class: `${mergedClsPrefix}-breadcrumb-item__link`,\n              'aria-current': ariaCurrentRef.value,\n              href: props.href,\n              onClick: props.onClick\n            },\n            slots\n          )}\n          {props.showSeparator && (\n            <span\n              class={`${mergedClsPrefix}-breadcrumb-item__separator`}\n              aria-hidden=\"true\"\n            >\n              {resolveSlot(slots.separator, () => [\n                props.separator ?? separatorRef.value\n              ])}\n            </span>\n          )}\n        </li>\n      )\n    }\n  }\n})\n","import { composite } from 'seemly'\n\nexport function createHoverColor(rgb: string): string {\n  return composite(rgb, [255, 255, 255, 0.16])\n}\n\nexport function createPressedColor(rgb: string): string {\n  return composite(rgb, [0, 0, 0, 0.12])\n}\n","import type { ButtonGroupInjection } from './ButtonGroup'\nimport { createInjectionKey } from '../../_utils'\n\nexport const buttonGroupInjectionKey\n  = createInjectionKey<ButtonGroupInjection>('n-button-group')\n","export default {\n  paddingTiny: '0 6px',\n  paddingSmall: '0 10px',\n  paddingMedium: '0 14px',\n  paddingLarge: '0 18px',\n  paddingRoundTiny: '0 10px',\n  paddingRoundSmall: '0 14px',\n  paddingRoundMedium: '0 18px',\n  paddingRoundLarge: '0 22px',\n  iconMarginTiny: '6px',\n  iconMarginSmall: '6px',\n  iconMarginMedium: '6px',\n  iconMarginLarge: '6px',\n  iconSizeTiny: '14px',\n  iconSizeSmall: '18px',\n  iconSizeMedium: '18px',\n  iconSizeLarge: '20px',\n  rippleDuration: '.6s'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    borderRadius,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    opacityDisabled,\n    textColor2,\n    textColor3,\n    primaryColorHover,\n    primaryColorPressed,\n    borderColor,\n    primaryColor,\n    baseColor,\n    infoColor,\n    infoColorHover,\n    infoColorPressed,\n    successColor,\n    successColorHover,\n    successColorPressed,\n    warningColor,\n    warningColorHover,\n    warningColorPressed,\n    errorColor,\n    errorColorHover,\n    errorColorPressed,\n    fontWeight,\n    buttonColor2,\n    buttonColor2Hover,\n    buttonColor2Pressed,\n    fontWeightStrong\n  } = vars\n  return {\n    ...commonVariables,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    borderRadiusTiny: borderRadius,\n    borderRadiusSmall: borderRadius,\n    borderRadiusMedium: borderRadius,\n    borderRadiusLarge: borderRadius,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    opacityDisabled,\n    // secondary\n    colorOpacitySecondary: '0.16',\n    colorOpacitySecondaryHover: '0.22',\n    colorOpacitySecondaryPressed: '0.28',\n    colorSecondary: buttonColor2,\n    colorSecondaryHover: buttonColor2Hover,\n    colorSecondaryPressed: buttonColor2Pressed,\n    // tertiary\n    colorTertiary: buttonColor2,\n    colorTertiaryHover: buttonColor2Hover,\n    colorTertiaryPressed: buttonColor2Pressed,\n    // quaternary\n    colorQuaternary: '#0000',\n    colorQuaternaryHover: buttonColor2Hover,\n    colorQuaternaryPressed: buttonColor2Pressed,\n    // default type\n    color: '#0000',\n    colorHover: '#0000',\n    colorPressed: '#0000',\n    colorFocus: '#0000',\n    colorDisabled: '#0000',\n    textColor: textColor2,\n    textColorTertiary: textColor3, // tertiary\n    textColorHover: primaryColorHover,\n    textColorPressed: primaryColorPressed,\n    textColorFocus: primaryColorHover,\n    textColorDisabled: textColor2,\n    textColorText: textColor2,\n    textColorTextHover: primaryColorHover,\n    textColorTextPressed: primaryColorPressed,\n    textColorTextFocus: primaryColorHover,\n    textColorTextDisabled: textColor2,\n    textColorGhost: textColor2,\n    textColorGhostHover: primaryColorHover,\n    textColorGhostPressed: primaryColorPressed,\n    textColorGhostFocus: primaryColorHover,\n    textColorGhostDisabled: textColor2,\n    border: `1px solid ${borderColor}`,\n    borderHover: `1px solid ${primaryColorHover}`,\n    borderPressed: `1px solid ${primaryColorPressed}`,\n    borderFocus: `1px solid ${primaryColorHover}`,\n    borderDisabled: `1px solid ${borderColor}`,\n    rippleColor: primaryColor,\n    // primary\n    colorPrimary: primaryColor,\n    colorHoverPrimary: primaryColorHover,\n    colorPressedPrimary: primaryColorPressed,\n    colorFocusPrimary: primaryColorHover,\n    colorDisabledPrimary: primaryColor,\n    textColorPrimary: baseColor,\n    textColorHoverPrimary: baseColor,\n    textColorPressedPrimary: baseColor,\n    textColorFocusPrimary: baseColor,\n    textColorDisabledPrimary: baseColor,\n    textColorTextPrimary: primaryColor,\n    textColorTextHoverPrimary: primaryColorHover,\n    textColorTextPressedPrimary: primaryColorPressed,\n    textColorTextFocusPrimary: primaryColorHover,\n    textColorTextDisabledPrimary: textColor2,\n    textColorGhostPrimary: primaryColor,\n    textColorGhostHoverPrimary: primaryColorHover,\n    textColorGhostPressedPrimary: primaryColorPressed,\n    textColorGhostFocusPrimary: primaryColorHover,\n    textColorGhostDisabledPrimary: primaryColor,\n    borderPrimary: `1px solid ${primaryColor}`,\n    borderHoverPrimary: `1px solid ${primaryColorHover}`,\n    borderPressedPrimary: `1px solid ${primaryColorPressed}`,\n    borderFocusPrimary: `1px solid ${primaryColorHover}`,\n    borderDisabledPrimary: `1px solid ${primaryColor}`,\n    rippleColorPrimary: primaryColor,\n    // info\n    colorInfo: infoColor,\n    colorHoverInfo: infoColorHover,\n    colorPressedInfo: infoColorPressed,\n    colorFocusInfo: infoColorHover,\n    colorDisabledInfo: infoColor,\n    textColorInfo: baseColor,\n    textColorHoverInfo: baseColor,\n    textColorPressedInfo: baseColor,\n    textColorFocusInfo: baseColor,\n    textColorDisabledInfo: baseColor,\n    textColorTextInfo: infoColor,\n    textColorTextHoverInfo: infoColorHover,\n    textColorTextPressedInfo: infoColorPressed,\n    textColorTextFocusInfo: infoColorHover,\n    textColorTextDisabledInfo: textColor2,\n    textColorGhostInfo: infoColor,\n    textColorGhostHoverInfo: infoColorHover,\n    textColorGhostPressedInfo: infoColorPressed,\n    textColorGhostFocusInfo: infoColorHover,\n    textColorGhostDisabledInfo: infoColor,\n    borderInfo: `1px solid ${infoColor}`,\n    borderHoverInfo: `1px solid ${infoColorHover}`,\n    borderPressedInfo: `1px solid ${infoColorPressed}`,\n    borderFocusInfo: `1px solid ${infoColorHover}`,\n    borderDisabledInfo: `1px solid ${infoColor}`,\n    rippleColorInfo: infoColor,\n    // success\n    colorSuccess: successColor,\n    colorHoverSuccess: successColorHover,\n    colorPressedSuccess: successColorPressed,\n    colorFocusSuccess: successColorHover,\n    colorDisabledSuccess: successColor,\n    textColorSuccess: baseColor,\n    textColorHoverSuccess: baseColor,\n    textColorPressedSuccess: baseColor,\n    textColorFocusSuccess: baseColor,\n    textColorDisabledSuccess: baseColor,\n    textColorTextSuccess: successColor,\n    textColorTextHoverSuccess: successColorHover,\n    textColorTextPressedSuccess: successColorPressed,\n    textColorTextFocusSuccess: successColorHover,\n    textColorTextDisabledSuccess: textColor2,\n    textColorGhostSuccess: successColor,\n    textColorGhostHoverSuccess: successColorHover,\n    textColorGhostPressedSuccess: successColorPressed,\n    textColorGhostFocusSuccess: successColorHover,\n    textColorGhostDisabledSuccess: successColor,\n    borderSuccess: `1px solid ${successColor}`,\n    borderHoverSuccess: `1px solid ${successColorHover}`,\n    borderPressedSuccess: `1px solid ${successColorPressed}`,\n    borderFocusSuccess: `1px solid ${successColorHover}`,\n    borderDisabledSuccess: `1px solid ${successColor}`,\n    rippleColorSuccess: successColor,\n    // warning\n    colorWarning: warningColor,\n    colorHoverWarning: warningColorHover,\n    colorPressedWarning: warningColorPressed,\n    colorFocusWarning: warningColorHover,\n    colorDisabledWarning: warningColor,\n    textColorWarning: baseColor,\n    textColorHoverWarning: baseColor,\n    textColorPressedWarning: baseColor,\n    textColorFocusWarning: baseColor,\n    textColorDisabledWarning: baseColor,\n    textColorTextWarning: warningColor,\n    textColorTextHoverWarning: warningColorHover,\n    textColorTextPressedWarning: warningColorPressed,\n    textColorTextFocusWarning: warningColorHover,\n    textColorTextDisabledWarning: textColor2,\n    textColorGhostWarning: warningColor,\n    textColorGhostHoverWarning: warningColorHover,\n    textColorGhostPressedWarning: warningColorPressed,\n    textColorGhostFocusWarning: warningColorHover,\n    textColorGhostDisabledWarning: warningColor,\n    borderWarning: `1px solid ${warningColor}`,\n    borderHoverWarning: `1px solid ${warningColorHover}`,\n    borderPressedWarning: `1px solid ${warningColorPressed}`,\n    borderFocusWarning: `1px solid ${warningColorHover}`,\n    borderDisabledWarning: `1px solid ${warningColor}`,\n    rippleColorWarning: warningColor,\n    // error\n    colorError: errorColor,\n    colorHoverError: errorColorHover,\n    colorPressedError: errorColorPressed,\n    colorFocusError: errorColorHover,\n    colorDisabledError: errorColor,\n    textColorError: baseColor,\n    textColorHoverError: baseColor,\n    textColorPressedError: baseColor,\n    textColorFocusError: baseColor,\n    textColorDisabledError: baseColor,\n    textColorTextError: errorColor,\n    textColorTextHoverError: errorColorHover,\n    textColorTextPressedError: errorColorPressed,\n    textColorTextFocusError: errorColorHover,\n    textColorTextDisabledError: textColor2,\n    textColorGhostError: errorColor,\n    textColorGhostHoverError: errorColorHover,\n    textColorGhostPressedError: errorColorPressed,\n    textColorGhostFocusError: errorColorHover,\n    textColorGhostDisabledError: errorColor,\n    borderError: `1px solid ${errorColor}`,\n    borderHoverError: `1px solid ${errorColorHover}`,\n    borderPressedError: `1px solid ${errorColorPressed}`,\n    borderFocusError: `1px solid ${errorColorHover}`,\n    borderDisabledError: `1px solid ${errorColor}`,\n    rippleColorError: errorColor,\n    waveOpacity: '0.6',\n    fontWeight,\n    fontWeightStrong\n  }\n}\n\nexport interface ButtonThemeVars extends ReturnType<typeof self> {}\n\nconst buttonLight: ButtonTheme = {\n  name: 'Button',\n  common: commonLight,\n  self\n}\n\nexport interface ButtonTheme extends Theme<'Button', ButtonThemeVars> {}\n\nexport interface ButtonThemeOverrides extends ExtractThemeOverrides<ButtonTheme> {}\n\nexport default buttonLight\n","import type { ButtonTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst buttonDark: ButtonTheme = {\n  name: 'Button',\n  common: commonDark,\n  self(vars) {\n    const commonSelf = self(vars)\n    commonSelf.waveOpacity = '0.8'\n    commonSelf.colorOpacitySecondary = '0.16'\n    commonSelf.colorOpacitySecondaryHover = '0.2'\n    commonSelf.colorOpacitySecondaryPressed = '0.12'\n    return commonSelf\n  }\n}\n\nexport default buttonDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('button', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cE('icon', {\n      margin: 'var(--n-icon-margin)',\n      marginRight: 0\n    }),\n    cE('content', [\n      c('~', [\n        cE('icon', {\n          margin: 'var(--n-icon-margin)',\n          marginLeft: 0\n        })\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const buttonRtl: RtlItem = {\n  name: 'Button',\n  style: rtlStyle\n}\n","import { fadeInWidthExpandTransition } from '../../../_styles/transitions/fade-in-width-expand.cssr'\nimport { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { isBrowser } from '../../../_utils'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-bezier-ease-out\n// --n-ripple-duration\n// --n-opacity-disabled\n// --n-text-color\n// --n-text-color-hover\n// --n-text-color-pressed\n// --n-text-color-focus\n// --n-text-color-disabled\n// --n-color\n// --n-color-hover\n// --n-color-pressed\n// --n-color-focus\n// --n-color-disabled\n// --n-border\n// --n-border-hover\n// --n-border-pressed\n// --n-border-focus\n// --n-border-disabled\n// --n-ripple-color\n// --n-border-radius\n// --n-height\n// --n-width\n// --n-font-size\n// --n-padding\n// --n-icon-size\n// --n-icon-margin\n// --n-wave-opacity\n// --n-font-weight\n//\n// private-vars:\n// --n-border-color-xxx, used for custom color\nexport default c([\n  cB('button', `\n    margin: 0;\n    font-weight: var(--n-font-weight);\n    line-height: 1;\n    font-family: inherit;\n    padding: var(--n-padding);\n    height: var(--n-height);\n    font-size: var(--n-font-size);\n    border-radius: var(--n-border-radius);\n    color: var(--n-text-color);\n    background-color: var(--n-color);\n    width: var(--n-width);\n    white-space: nowrap;\n    outline: none;\n    position: relative;\n    z-index: auto;\n    border: none;\n    display: inline-flex;\n    flex-wrap: nowrap;\n    flex-shrink: 0;\n    align-items: center;\n    justify-content: center;\n    user-select: none;\n    -webkit-user-select: none;\n    text-align: center;\n    cursor: pointer;\n    text-decoration: none;\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      opacity .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n  `, [\n    cM('color', [\n      cE('border', {\n        borderColor: 'var(--n-border-color)'\n      }),\n      cM('disabled', [\n        cE('border', {\n          borderColor: 'var(--n-border-color-disabled)'\n        })\n      ]),\n      cNotM('disabled', [\n        c('&:focus', [\n          cE('state-border', {\n            borderColor: 'var(--n-border-color-focus)'\n          })\n        ]),\n        c('&:hover', [\n          cE('state-border', {\n            borderColor: 'var(--n-border-color-hover)'\n          })\n        ]),\n        c('&:active', [\n          cE('state-border', {\n            borderColor: 'var(--n-border-color-pressed)'\n          })\n        ]),\n        cM('pressed', [\n          cE('state-border', {\n            borderColor: 'var(--n-border-color-pressed)'\n          })\n        ])\n      ])\n    ]),\n    cM('disabled', {\n      backgroundColor: 'var(--n-color-disabled)',\n      color: 'var(--n-text-color-disabled)'\n    }, [\n      cE('border', {\n        border: 'var(--n-border-disabled)'\n      })\n    ]),\n    cNotM('disabled', [\n      c('&:focus', {\n        backgroundColor: 'var(--n-color-focus)',\n        color: 'var(--n-text-color-focus)'\n      }, [\n        cE('state-border', {\n          border: 'var(--n-border-focus)'\n        })\n      ]),\n      c('&:hover', {\n        backgroundColor: 'var(--n-color-hover)',\n        color: 'var(--n-text-color-hover)'\n      }, [\n        cE('state-border', {\n          border: 'var(--n-border-hover)'\n        })\n      ]),\n      c('&:active', {\n        backgroundColor: 'var(--n-color-pressed)',\n        color: 'var(--n-text-color-pressed)'\n      }, [\n        cE('state-border', {\n          border: 'var(--n-border-pressed)'\n        })\n      ]),\n      cM('pressed', {\n        backgroundColor: 'var(--n-color-pressed)',\n        color: 'var(--n-text-color-pressed)'\n      }, [\n        cE('state-border', {\n          border: 'var(--n-border-pressed)'\n        })\n      ])\n    ]),\n    cM('loading', 'cursor: wait;'),\n    cB('base-wave', `\n      pointer-events: none;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      left: 0;\n      animation-iteration-count: 1;\n      animation-duration: var(--n-ripple-duration);\n      animation-timing-function: var(--n-bezier-ease-out), var(--n-bezier-ease-out);\n    `, [\n      cM('active', {\n        zIndex: 1,\n        animationName: 'button-wave-spread, button-wave-opacity'\n      })\n    ]),\n    (isBrowser && 'MozBoxSizing' in document.createElement('div').style)\n      ? c('&::moz-focus-inner', {\n          border: 0\n        })\n      : null,\n    cE('border, state-border', `\n      position: absolute;\n      left: 0;\n      top: 0;\n      right: 0;\n      bottom: 0;\n      border-radius: inherit;\n      transition: border-color .3s var(--n-bezier);\n      pointer-events: none;\n    `),\n    cE('border', `\n      border: var(--n-border);\n    `),\n    cE('state-border', `\n      border: var(--n-border);\n      border-color: #0000;\n      z-index: 1;\n    `),\n    cE('icon', `\n      margin: var(--n-icon-margin);\n      margin-left: 0;\n      height: var(--n-icon-size);\n      width: var(--n-icon-size);\n      max-width: var(--n-icon-size);\n      font-size: var(--n-icon-size);\n      position: relative;\n      flex-shrink: 0;\n    `, [\n      cB('icon-slot', `\n        height: var(--n-icon-size);\n        width: var(--n-icon-size);\n        position: absolute;\n        left: 0;\n        top: 50%;\n        transform: translateY(-50%);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `, [\n        iconSwitchTransition({\n          top: '50%',\n          originalTransform: 'translateY(-50%)'\n        })\n      ]),\n      fadeInWidthExpandTransition()\n    ]),\n    cE('content', `\n      display: flex;\n      align-items: center;\n      flex-wrap: nowrap;\n      min-width: 0;\n    `, [\n      c('~', [\n        cE('icon', {\n          margin: 'var(--n-icon-margin)',\n          marginRight: 0\n        })\n      ])\n    ]),\n    cM('block', `\n      display: flex;\n      width: 100%;\n    `),\n    cM('dashed', [\n      cE('border, state-border', {\n        borderStyle: 'dashed !important'\n      })\n    ]),\n    cM('disabled', {\n      cursor: 'not-allowed',\n      opacity: 'var(--n-opacity-disabled)'\n    })\n  ]),\n  c('@keyframes button-wave-spread', {\n    from: {\n      boxShadow: '0 0 0.5px 0 var(--n-ripple-color)'\n    },\n    to: {\n      // don't use exact 5px since chrome will display the animation with glitches\n      boxShadow: '0 0 0.5px 4.5px var(--n-ripple-color)'\n    }\n  }),\n  c('@keyframes button-wave-opacity', {\n    from: {\n      opacity: 'var(--n-wave-opacity)'\n    },\n    to: {\n      opacity: 0\n    }\n  })\n])\n","import type {\n  ButtonHTMLAttributes,\n  CSSProperties,\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { BaseWaveRef } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ButtonTheme, ButtonThemeOverrides } from '../styles'\nimport type { ButtonSize, ButtonSpinProps, ButtonType } from './public-types'\nimport { changeColor } from 'seemly'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, ref, watchEffect } from 'vue'\nimport {\n  NBaseLoading,\n  NBaseWave,\n  NFadeInExpandTransition,\n  NIconSwitchTransition\n} from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  call,\n  color2Class,\n  createKey,\n  isSlotEmpty,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../_utils'\nimport { createHoverColor, createPressedColor } from '../../_utils/color/index'\nimport { isSafari } from '../../_utils/env/browser'\nimport { buttonGroupInjectionKey } from '../../button-group/src/context'\nimport { buttonLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const buttonProps = {\n  ...(useTheme.props as ThemeProps<ButtonTheme, ButtonThemeOverrides>),\n  color: String,\n  textColor: String,\n  text: Boolean,\n  block: Boolean,\n  loading: Boolean,\n  disabled: Boolean,\n  circle: Boolean,\n  size: String as PropType<ButtonSize>,\n  ghost: Boolean,\n  round: Boolean,\n  secondary: Boolean,\n  tertiary: Boolean,\n  quaternary: Boolean,\n  strong: Boolean,\n  focusable: {\n    type: Boolean,\n    default: true\n  },\n  keyboard: {\n    type: Boolean,\n    default: true\n  },\n  tag: {\n    type: String as PropType<keyof HTMLElementTagNameMap>,\n    default: 'button'\n  },\n  type: {\n    type: String as PropType<ButtonType>,\n    default: 'default'\n  },\n  dashed: Boolean,\n  renderIcon: Function as PropType<() => VNodeChild>,\n  iconPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'left'\n  },\n  attrType: {\n    type: String as PropType<'button' | 'submit' | 'reset'>,\n    default: 'button'\n  },\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  onClick: [Function, Array] as PropType<MaybeArray<(e: MouseEvent) => void>>,\n  nativeFocusBehavior: {\n    type: Boolean,\n    default: !isSafari\n  },\n  spinProps: Object as PropType<ButtonSpinProps>\n} as const\n\nexport type ButtonProps = ExtractPublicPropTypes<typeof buttonProps>\n\nexport interface ButtonSlots {\n  default?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nconst Button = defineComponent({\n  name: 'Button',\n  props: buttonProps,\n  slots: Object as SlotsType<ButtonSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        const { dashed, ghost, text, secondary, tertiary, quaternary } = props\n        if (\n          (dashed || ghost || text)\n          && (secondary || tertiary || quaternary)\n        ) {\n          warnOnce(\n            'button',\n            '`dashed`, `ghost` and `text` props can\\'t be used along with `secondary`, `tertiary` and `quaternary` props.'\n          )\n        }\n      })\n    }\n    const selfElRef = ref<HTMLElement | null>(null)\n    const waveElRef = ref<BaseWaveRef | null>(null)\n    const enterPressedRef = ref(false)\n    const showBorderRef = useMemo(() => {\n      return (\n        !props.quaternary\n        && !props.tertiary\n        && !props.secondary\n        && !props.text\n        && (!props.color || props.ghost || props.dashed)\n        && props.bordered\n      )\n    })\n    const NButtonGroup = inject(buttonGroupInjectionKey, {})\n    const {\n      inlineThemeDisabled,\n      mergedClsPrefixRef,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const { mergedSizeRef } = useFormItem(\n      {},\n      {\n        defaultSize: 'medium',\n        mergedSize: (NFormItem) => {\n          const { size } = props\n          if (size)\n            return size\n          const { size: buttonGroupSize } = NButtonGroup\n          if (buttonGroupSize)\n            return buttonGroupSize\n\n          const { mergedSize: formItemSize } = NFormItem || {}\n          if (formItemSize)\n            return formItemSize.value\n\n          const configSize = mergedComponentPropsRef?.value?.Button?.size\n          if (configSize)\n            return configSize\n\n          return 'medium'\n        }\n      }\n    )\n    const mergedFocusableRef = computed(() => {\n      return props.focusable && !props.disabled\n    })\n    const handleMousedown = (e: MouseEvent): void => {\n      if (!mergedFocusableRef.value) {\n        e.preventDefault()\n      }\n      if (props.nativeFocusBehavior) {\n        return\n      }\n      e.preventDefault()\n      // normally this won't be called if disabled (when tag is button)\n      // if not, we try to make it behave like a button\n      if (props.disabled) {\n        return\n      }\n      if (mergedFocusableRef.value) {\n        selfElRef.value?.focus({ preventScroll: true })\n      }\n    }\n    const handleClick = (e: MouseEvent): void => {\n      if (!props.disabled && !props.loading) {\n        const { onClick } = props\n        if (onClick)\n          call(onClick, e)\n        if (!props.text) {\n          waveElRef.value?.play()\n        }\n      }\n    }\n    const handleKeyup = (e: KeyboardEvent): void => {\n      switch (e.key) {\n        case 'Enter':\n          if (!props.keyboard) {\n            return\n          }\n          enterPressedRef.value = false\n      }\n    }\n    const handleKeydown = (e: KeyboardEvent): void => {\n      switch (e.key) {\n        case 'Enter':\n          if (!props.keyboard || props.loading) {\n            e.preventDefault()\n            return\n          }\n          enterPressedRef.value = true\n      }\n    }\n    const handleBlur = (): void => {\n      enterPressedRef.value = false\n    }\n    const themeRef = useTheme(\n      'Button',\n      '-button',\n      style,\n      buttonLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Button', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const theme = themeRef.value\n      const {\n        common: { cubicBezierEaseInOut, cubicBezierEaseOut },\n        self\n      } = theme\n      const { rippleDuration, opacityDisabled, fontWeight, fontWeightStrong }\n        = self\n      const size = mergedSizeRef.value\n      const {\n        dashed,\n        type,\n        ghost,\n        text,\n        color,\n        round,\n        circle,\n        textColor,\n        secondary,\n        tertiary,\n        quaternary,\n        strong\n      } = props\n      // font\n      const fontProps = {\n        '--n-font-weight': strong ? fontWeightStrong : fontWeight\n      }\n      // color\n      let colorProps = {\n        '--n-color': 'initial',\n        '--n-color-hover': 'initial',\n        '--n-color-pressed': 'initial',\n        '--n-color-focus': 'initial',\n        '--n-color-disabled': 'initial',\n        '--n-ripple-color': 'initial',\n        '--n-text-color': 'initial',\n        '--n-text-color-hover': 'initial',\n        '--n-text-color-pressed': 'initial',\n        '--n-text-color-focus': 'initial',\n        '--n-text-color-disabled': 'initial'\n      }\n      const typeIsTertiary = type === 'tertiary'\n      const typeIsDefault = type === 'default'\n      const mergedType = typeIsTertiary ? 'default' : type\n      if (text) {\n        const propTextColor = textColor || color\n        const mergedTextColor\n          = propTextColor || self[createKey('textColorText', mergedType)]\n        colorProps = {\n          '--n-color': '#0000',\n          '--n-color-hover': '#0000',\n          '--n-color-pressed': '#0000',\n          '--n-color-focus': '#0000',\n          '--n-color-disabled': '#0000',\n          '--n-ripple-color': '#0000',\n          '--n-text-color': mergedTextColor,\n          '--n-text-color-hover': propTextColor\n            ? createHoverColor(propTextColor)\n            : self[createKey('textColorTextHover', mergedType)],\n          '--n-text-color-pressed': propTextColor\n            ? createPressedColor(propTextColor)\n            : self[createKey('textColorTextPressed', mergedType)],\n          '--n-text-color-focus': propTextColor\n            ? createHoverColor(propTextColor)\n            : self[createKey('textColorTextHover', mergedType)],\n          '--n-text-color-disabled':\n            propTextColor\n            || self[createKey('textColorTextDisabled', mergedType)]\n        }\n      }\n      else if (ghost || dashed) {\n        const mergedTextColor = textColor || color\n        colorProps = {\n          '--n-color': '#0000',\n          '--n-color-hover': '#0000',\n          '--n-color-pressed': '#0000',\n          '--n-color-focus': '#0000',\n          '--n-color-disabled': '#0000',\n          '--n-ripple-color':\n            color || self[createKey('rippleColor', mergedType)],\n          '--n-text-color':\n            mergedTextColor || self[createKey('textColorGhost', mergedType)],\n          '--n-text-color-hover': mergedTextColor\n            ? createHoverColor(mergedTextColor)\n            : self[createKey('textColorGhostHover', mergedType)],\n          '--n-text-color-pressed': mergedTextColor\n            ? createPressedColor(mergedTextColor)\n            : self[createKey('textColorGhostPressed', mergedType)],\n          '--n-text-color-focus': mergedTextColor\n            ? createHoverColor(mergedTextColor)\n            : self[createKey('textColorGhostHover', mergedType)],\n          '--n-text-color-disabled':\n            mergedTextColor\n            || self[createKey('textColorGhostDisabled', mergedType)]\n        }\n      }\n      else if (secondary) {\n        const typeTextColor = typeIsDefault\n          ? self.textColor\n          : typeIsTertiary\n            ? self.textColorTertiary\n            : self[createKey('color', mergedType)]\n        const mergedTextColor = color || typeTextColor\n        const isColoredType = type !== 'default' && type !== 'tertiary'\n        colorProps = {\n          '--n-color': isColoredType\n            ? changeColor(mergedTextColor, {\n                alpha: Number(self.colorOpacitySecondary)\n              })\n            : self.colorSecondary,\n          '--n-color-hover': isColoredType\n            ? changeColor(mergedTextColor, {\n                alpha: Number(self.colorOpacitySecondaryHover)\n              })\n            : self.colorSecondaryHover,\n          '--n-color-pressed': isColoredType\n            ? changeColor(mergedTextColor, {\n                alpha: Number(self.colorOpacitySecondaryPressed)\n              })\n            : self.colorSecondaryPressed,\n          '--n-color-focus': isColoredType\n            ? changeColor(mergedTextColor, {\n                alpha: Number(self.colorOpacitySecondaryHover)\n              })\n            : self.colorSecondaryHover,\n          '--n-color-disabled': self.colorSecondary,\n          '--n-ripple-color': '#0000',\n          '--n-text-color': mergedTextColor,\n          '--n-text-color-hover': mergedTextColor,\n          '--n-text-color-pressed': mergedTextColor,\n          '--n-text-color-focus': mergedTextColor,\n          '--n-text-color-disabled': mergedTextColor\n        }\n      }\n      else if (tertiary || quaternary) {\n        const typeColor = typeIsDefault\n          ? self.textColor\n          : typeIsTertiary\n            ? self.textColorTertiary\n            : self[createKey('color', mergedType)]\n        const mergedColor = color || typeColor\n        if (tertiary) {\n          colorProps['--n-color'] = self.colorTertiary\n          colorProps['--n-color-hover'] = self.colorTertiaryHover\n          colorProps['--n-color-pressed'] = self.colorTertiaryPressed\n          colorProps['--n-color-focus'] = self.colorSecondaryHover\n          colorProps['--n-color-disabled'] = self.colorTertiary\n        }\n        else {\n          colorProps['--n-color'] = self.colorQuaternary\n          colorProps['--n-color-hover'] = self.colorQuaternaryHover\n          colorProps['--n-color-pressed'] = self.colorQuaternaryPressed\n          colorProps['--n-color-focus'] = self.colorQuaternaryHover\n          colorProps['--n-color-disabled'] = self.colorQuaternary\n        }\n        colorProps['--n-ripple-color'] = '#0000'\n        colorProps['--n-text-color'] = mergedColor\n        colorProps['--n-text-color-hover'] = mergedColor\n        colorProps['--n-text-color-pressed'] = mergedColor\n        colorProps['--n-text-color-focus'] = mergedColor\n        colorProps['--n-text-color-disabled'] = mergedColor\n      }\n      else {\n        colorProps = {\n          '--n-color': color || self[createKey('color', mergedType)],\n          '--n-color-hover': color\n            ? createHoverColor(color)\n            : self[createKey('colorHover', mergedType)],\n          '--n-color-pressed': color\n            ? createPressedColor(color)\n            : self[createKey('colorPressed', mergedType)],\n          '--n-color-focus': color\n            ? createHoverColor(color)\n            : self[createKey('colorFocus', mergedType)],\n          '--n-color-disabled':\n            color || self[createKey('colorDisabled', mergedType)],\n          '--n-ripple-color':\n            color || self[createKey('rippleColor', mergedType)],\n          '--n-text-color':\n            textColor\n            || (color\n              ? self.textColorPrimary\n              : typeIsTertiary\n                ? self.textColorTertiary\n                : self[createKey('textColor', mergedType)]),\n          '--n-text-color-hover':\n            textColor\n            || (color\n              ? self.textColorHoverPrimary\n              : self[createKey('textColorHover', mergedType)]),\n          '--n-text-color-pressed':\n            textColor\n            || (color\n              ? self.textColorPressedPrimary\n              : self[createKey('textColorPressed', mergedType)]),\n          '--n-text-color-focus':\n            textColor\n            || (color\n              ? self.textColorFocusPrimary\n              : self[createKey('textColorFocus', mergedType)]),\n          '--n-text-color-disabled':\n            textColor\n            || (color\n              ? self.textColorDisabledPrimary\n              : self[createKey('textColorDisabled', mergedType)])\n        }\n      }\n      // border\n      let borderProps = {\n        '--n-border': 'initial',\n        '--n-border-hover': 'initial',\n        '--n-border-pressed': 'initial',\n        '--n-border-focus': 'initial',\n        '--n-border-disabled': 'initial'\n      }\n      if (text) {\n        borderProps = {\n          '--n-border': 'none',\n          '--n-border-hover': 'none',\n          '--n-border-pressed': 'none',\n          '--n-border-focus': 'none',\n          '--n-border-disabled': 'none'\n        }\n      }\n      else {\n        borderProps = {\n          '--n-border': self[createKey('border', mergedType)],\n          '--n-border-hover': self[createKey('borderHover', mergedType)],\n          '--n-border-pressed': self[createKey('borderPressed', mergedType)],\n          '--n-border-focus': self[createKey('borderFocus', mergedType)],\n          '--n-border-disabled': self[createKey('borderDisabled', mergedType)]\n        }\n      }\n      // size\n      const {\n        [createKey('height', size)]: height,\n        [createKey('fontSize', size)]: fontSize,\n        [createKey('padding', size)]: padding,\n        [createKey('paddingRound', size)]: paddingRound,\n        [createKey('iconSize', size)]: iconSize,\n        [createKey('borderRadius', size)]: borderRadius,\n        [createKey('iconMargin', size)]: iconMargin,\n        waveOpacity\n      } = self\n      const sizeProps = {\n        '--n-width': circle && !text ? height : 'initial',\n        '--n-height': text ? 'initial' : height,\n        '--n-font-size': fontSize,\n        '--n-padding': circle\n          ? 'initial'\n          : text\n            ? 'initial'\n            : round\n              ? paddingRound\n              : padding,\n        '--n-icon-size': iconSize,\n        '--n-icon-margin': iconMargin,\n        '--n-border-radius': text\n          ? 'initial'\n          : circle || round\n            ? height\n            : borderRadius\n      }\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-bezier-ease-out': cubicBezierEaseOut,\n        '--n-ripple-duration': rippleDuration,\n        '--n-opacity-disabled': opacityDisabled,\n        '--n-wave-opacity': waveOpacity,\n        ...fontProps,\n        ...colorProps,\n        ...borderProps,\n        ...sizeProps\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'button',\n          computed(() => {\n            let hash = ''\n            const {\n              dashed,\n              type,\n              ghost,\n              text,\n              color,\n              round,\n              circle,\n              textColor,\n              secondary,\n              tertiary,\n              quaternary,\n              strong\n            } = props\n            if (dashed)\n              hash += 'a'\n            if (ghost)\n              hash += 'b'\n            if (text)\n              hash += 'c'\n            if (round)\n              hash += 'd'\n            if (circle)\n              hash += 'e'\n            if (secondary)\n              hash += 'f'\n            if (tertiary)\n              hash += 'g'\n            if (quaternary)\n              hash += 'h'\n            if (strong)\n              hash += 'i'\n            if (color)\n              hash += `j${color2Class(color)}`\n            if (textColor)\n              hash += `k${color2Class(textColor)}`\n            const { value: size } = mergedSizeRef\n            hash += `l${size[0]}`\n            hash += `m${type[0]}`\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      selfElRef,\n      // reduce dts: string ref only, type unused in render\n      waveElRef: waveElRef as unknown,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedFocusable: mergedFocusableRef,\n      mergedSize: mergedSizeRef,\n      showBorder: showBorderRef,\n      enterPressed: enterPressedRef,\n      rtlEnabled: rtlEnabledRef,\n      handleMousedown,\n      handleKeydown,\n      handleBlur,\n      handleKeyup,\n      handleClick,\n      customColorCssVars: computed(() => {\n        const { color } = props\n        if (!color)\n          return null\n        const hoverColor = createHoverColor(color)\n        return {\n          '--n-border-color': color,\n          '--n-border-color-hover': hoverColor,\n          '--n-border-color-pressed': createPressedColor(color),\n          '--n-border-color-focus': hoverColor,\n          '--n-border-color-disabled': color\n        }\n      }) as Ref<CSSProperties>,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, tag: Component, onRender } = this\n    onRender?.()\n    const children = resolveWrappedSlot(\n      this.$slots.default,\n      children =>\n        children && (\n          <span class={`${mergedClsPrefix}-button__content`}>{children}</span>\n        )\n    )\n    return (\n      <Component\n        ref=\"selfElRef\"\n        class={[\n          this.themeClass,\n          `${mergedClsPrefix}-button`,\n          `${mergedClsPrefix}-button--${this.type}-type`,\n          `${mergedClsPrefix}-button--${this.mergedSize}-type`,\n          this.rtlEnabled && `${mergedClsPrefix}-button--rtl`,\n          this.disabled && `${mergedClsPrefix}-button--disabled`,\n          this.block && `${mergedClsPrefix}-button--block`,\n          this.enterPressed && `${mergedClsPrefix}-button--pressed`,\n          !this.text && this.dashed && `${mergedClsPrefix}-button--dashed`,\n          this.color && `${mergedClsPrefix}-button--color`,\n          this.secondary && `${mergedClsPrefix}-button--secondary`,\n          this.loading && `${mergedClsPrefix}-button--loading`,\n          this.ghost && `${mergedClsPrefix}-button--ghost` // required for button group border collapse\n        ]}\n        tabindex={this.mergedFocusable ? 0 : -1}\n        type={this.attrType}\n        style={this.cssVars}\n        disabled={this.disabled}\n        onClick={this.handleClick}\n        onBlur={this.handleBlur}\n        onMousedown={this.handleMousedown}\n        onKeyup={this.handleKeyup}\n        onKeydown={this.handleKeydown}\n      >\n        {this.iconPlacement === 'right' && children}\n        <NFadeInExpandTransition width>\n          {{\n            default: () =>\n              resolveWrappedSlot(\n                this.$slots.icon,\n                children =>\n                  (this.loading || this.renderIcon || children) && (\n                    <span\n                      class={`${mergedClsPrefix}-button__icon`}\n                      style={{\n                        margin: isSlotEmpty(this.$slots.default) ? '0' : ''\n                      }}\n                    >\n                      <NIconSwitchTransition>\n                        {{\n                          default: () =>\n                            this.loading ? (\n                              <NBaseLoading\n                                clsPrefix={mergedClsPrefix}\n                                key=\"loading\"\n                                class={`${mergedClsPrefix}-icon-slot`}\n                                strokeWidth={20}\n                                {...this.spinProps}\n                              />\n                            ) : (\n                              <div\n                                key=\"icon\"\n                                class={`${mergedClsPrefix}-icon-slot`}\n                                role=\"none\"\n                              >\n                                {this.renderIcon ? this.renderIcon() : children}\n                              </div>\n                            )\n                        }}\n                      </NIconSwitchTransition>\n                    </span>\n                  )\n              )\n          }}\n        </NFadeInExpandTransition>\n        {this.iconPlacement === 'left' && children}\n        {!this.text ? (\n          <NBaseWave ref=\"waveElRef\" clsPrefix={mergedClsPrefix} />\n        ) : null}\n        {this.showBorder ? (\n          <div\n            aria-hidden\n            class={`${mergedClsPrefix}-button__border`}\n            style={this.customColorCssVars as CSSProperties}\n          />\n        ) : null}\n        {this.showBorder ? (\n          <div\n            aria-hidden\n            class={`${mergedClsPrefix}-button__state-border`}\n            style={this.customColorCssVars as CSSProperties}\n          />\n        ) : null}\n      </Component>\n    )\n  }\n})\n\ntype InternalButtonProps = ExtractPropTypes<typeof buttonProps>\ntype NativeButtonProps = Omit<ButtonHTMLAttributes, keyof InternalButtonProps>\ntype MergedProps = Partial<InternalButtonProps & NativeButtonProps>\n\nexport default Button\n\n// XButton is for tsx type checking\n// It's not compatible with render function `h`\n// Currently we don't expose it as public\n// If there's any issue about this, we may expose it\n// Since most people use template, the type checking phase doesn't work as tsx\nexport const XButton: new () => { $props: MergedProps } = Button as any\n\n// Also, we may make XButton a generic type which support `tag` prop\n// but currently vue doesn't export IntrinsicElementAttributes from runtime-dom\n// so we can't easily make an attr map by hand\n// just leave it for later\n","import type { CNode } from 'css-render'\nimport type { ButtonType } from '../../../button/src/public-types'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr/index'\n\nexport const zero = '0!important'\nexport const n1 = '-1px!important'\n\nfunction createLeftBorderStyle(type: ButtonType): CNode {\n  return cM(`${type}-type`, [\n    c('& +', [\n      cB('button', {}, [\n        cM(`${type}-type`, [\n          cE('border', {\n            borderLeftWidth: zero\n          }),\n          cE('state-border', {\n            left: n1\n          })\n        ])\n      ])\n    ])\n  ])\n}\n\nfunction createTopBorderStyle(type: ButtonType): CNode {\n  return cM(`${type}-type`, [\n    c('& +', [\n      cB('button', [\n        cM(`${type}-type`, [\n          cE('border', {\n            borderTopWidth: zero\n          }),\n          cE('state-border', {\n            top: n1\n          })\n        ])\n      ])\n    ])\n  ])\n}\n\nexport default cB('button-group', `\n  flex-wrap: nowrap;\n  display: inline-flex;\n  position: relative;\n`, [\n  cNotM('vertical', {\n    flexDirection: 'row'\n  }, [\n    cNotM('rtl', [\n      cB('button', [\n        c('&:first-child:not(:last-child)', `\n          margin-right: ${zero};\n          border-top-right-radius: ${zero};\n          border-bottom-right-radius: ${zero};\n        `),\n        c('&:last-child:not(:first-child)', `\n          margin-left: ${zero};\n          border-top-left-radius: ${zero};\n          border-bottom-left-radius: ${zero};\n        `),\n        c('&:not(:first-child):not(:last-child)', `\n          margin-left: ${zero};\n          margin-right: ${zero};\n          border-radius: ${zero};\n        `),\n        createLeftBorderStyle('default'),\n        cM('ghost', [\n          createLeftBorderStyle('primary'),\n          createLeftBorderStyle('info'),\n          createLeftBorderStyle('success'),\n          createLeftBorderStyle('warning'),\n          createLeftBorderStyle('error')\n        ])\n      ])\n    ])\n  ]),\n  cM('vertical', {\n    flexDirection: 'column'\n  }, [\n    cB('button', [\n      c('&:first-child:not(:last-child)', `\n        margin-bottom: ${zero};\n        margin-left: ${zero};\n        margin-right: ${zero};\n        border-bottom-left-radius: ${zero};\n        border-bottom-right-radius: ${zero};\n      `),\n      c('&:last-child:not(:first-child)', `\n        margin-top: ${zero};\n        margin-left: ${zero};\n        margin-right: ${zero};\n        border-top-left-radius: ${zero};\n        border-top-right-radius: ${zero};\n      `),\n      c('&:not(:first-child):not(:last-child)', `\n        margin: ${zero};\n        border-radius: ${zero};\n      `),\n      createTopBorderStyle('default'),\n      cM('ghost', [\n        createTopBorderStyle('primary'),\n        createTopBorderStyle('info'),\n        createTopBorderStyle('success'),\n        createTopBorderStyle('warning'),\n        createTopBorderStyle('error')\n      ])\n    ])\n  ])\n])\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ButtonSize } from '../../button/src/public-types'\nimport { defineComponent, h, provide } from 'vue'\nimport { useConfig, useStyle } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { buttonGroupInjectionKey } from './context'\nimport style from './styles/index.cssr'\n\nexport interface ButtonGroupInjection {\n  size?: ButtonSize | undefined\n}\n\nexport const buttonGroupProps = {\n  size: String as PropType<ButtonSize | undefined>,\n  vertical: Boolean\n} as const\n\nexport type ButtonGroupProps = ExtractPublicPropTypes<typeof buttonGroupProps>\n\nexport default defineComponent({\n  name: 'ButtonGroup',\n  props: buttonGroupProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    useStyle('-button-group', style, mergedClsPrefixRef)\n    provide(buttonGroupInjectionKey, props)\n    const rtlEnabledRef = useRtl(\n      'ButtonGroup',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-button-group`,\n          this.rtlEnabled && `${mergedClsPrefix}-button-group--rtl`,\n          this.vertical && `${mergedClsPrefix}-button-group--vertical`\n        ]}\n        role=\"group\"\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\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 * **You don't need date-fns\\***:\n *\n * Temporal has a built-in `add` method on all its classes:\n *\n * - [`Temporal.Instant.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/Instant/add)\n * - [`Temporal.PlainDate.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDate/add)\n * - [`Temporal.PlainDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainDateTime/add)\n * - [`Temporal.PlainTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainTime/add)\n * - [`Temporal.PlainYearMonth.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/PlainYearMonth/add)\n * - [`Temporal.ZonedDateTime.prototype.add()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/add)\n *\n * \\* **Not really**, see: https://date-fns.org/you-dont-need-date-fns\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 *\n * @example\n * // Using Temporal:\n * // Add 10 days to 1 September 2014:\n * Temporal.PlainDate.from(\"2014-09-01\").add({ days: 10 }).toString();\n * //=> \"2014-09-11\"\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 { 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 { 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","import { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { startOfDay } from \"./startOfDay.js\";\n\n/**\n * The {@link isSameDay} function options.\n */\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\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 day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(laterDate, earlierDate, options) {\n  const [dateLeft_, dateRight_] = normalizeDates(\n    options?.in,\n    laterDate,\n    earlierDate,\n  );\n  return +startOfDay(dateLeft_) === +startOfDay(dateRight_);\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\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","export function getRoundingMethod(method) {\n  return (number) => {\n    const round = method ? Math[method] : Math.trunc;\n    const result = round(number);\n    // Prevent negative zero\n    return result === 0 ? 0 : result;\n  };\n}\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 { 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 { 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 { defaultLocale } from \"./_lib/defaultLocale.js\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.js\";\nimport { getRoundingMethod } from \"./_lib/getRoundingMethod.js\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.js\";\nimport { normalizeDates } from \"./_lib/normalizeDates.js\";\nimport { compareAsc } from \"./compareAsc.js\";\nimport {\n  millisecondsInMinute,\n  minutesInDay,\n  minutesInMonth,\n  minutesInYear,\n} from \"./constants.js\";\n\n/**\n * The {@link formatDistanceStrict} function options.\n */\n\n/**\n * The unit used to format the distance in {@link formatDistanceStrict}.\n */\n\n/**\n * @name formatDistanceStrict\n * @category Common Helpers\n * @summary Return the distance between the given dates in words.\n *\n * @description\n * Return the distance between the given dates in words, using strict units.\n * This is like `formatDistance`, but does not use helpers like 'almost', 'over',\n * 'less than' and the like.\n *\n * | Distance between dates | Result              |\n * |------------------------|---------------------|\n * | 0 ... 59 secs          | [0..59] seconds     |\n * | 1 ... 59 mins          | [1..59] minutes     |\n * | 1 ... 23 hrs           | [1..23] hours       |\n * | 1 ... 29 days          | [1..29] days        |\n * | 1 ... 11 months        | [1..11] months      |\n * | 1 ... N years          | [1..N]  years       |\n *\n * @param laterDate - The date\n * @param earlierDate - The date to compare with\n * @param options - An object with options\n *\n * @returns The distance in words\n *\n * @throws `date` must not be Invalid Date\n * @throws `baseDate` must not be Invalid Date\n * @throws `options.unit` must be 'second', 'minute', 'hour', 'day', 'month' or 'year'\n * @throws `options.locale` must contain `formatDistance` property\n *\n * @example\n * // What is the distance between 2 July 2014 and 1 January 2015?\n * const result = formatDistanceStrict(new Date(2014, 6, 2), new Date(2015, 0, 2))\n * //=> '6 months'\n *\n * @example\n * // What is the distance between 1 January 2015 00:00:15\n * // and 1 January 2015 00:00:00?\n * const result = formatDistanceStrict(\n *   new Date(2015, 0, 1, 0, 0, 15),\n *   new Date(2015, 0, 1, 0, 0, 0)\n * )\n * //=> '15 seconds'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, with a suffix?\n * const result = formatDistanceStrict(new Date(2015, 0, 1), new Date(2016, 0, 1), {\n *   addSuffix: true\n * })\n * //=> '1 year ago'\n *\n * @example\n * // What is the distance from 1 January 2016\n * // to 1 January 2015, in minutes?\n * const result = formatDistanceStrict(new Date(2016, 0, 1), new Date(2015, 0, 1), {\n *   unit: 'minute'\n * })\n * //=> '525600 minutes'\n *\n * @example\n * // What is the distance from 1 January 2015\n * // to 28 January 2015, in months, rounded up?\n * const result = formatDistanceStrict(new Date(2015, 0, 28), new Date(2015, 0, 1), {\n *   unit: 'month',\n *   roundingMethod: 'ceil'\n * })\n * //=> '1 month'\n *\n * @example\n * // What is the distance between 1 August 2016 and 1 January 2015 in Esperanto?\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = formatDistanceStrict(new Date(2016, 7, 1), new Date(2015, 0, 1), {\n *   locale: eoLocale\n * })\n * //=> '1 jaro'\n */\n\nexport function formatDistanceStrict(laterDate, earlierDate, options) {\n  const defaultOptions = getDefaultOptions();\n  const locale = options?.locale ?? defaultOptions.locale ?? defaultLocale;\n\n  const comparison = compareAsc(laterDate, earlierDate);\n\n  if (isNaN(comparison)) {\n    throw new RangeError(\"Invalid time value\");\n  }\n\n  const localizeOptions = Object.assign({}, options, {\n    addSuffix: options?.addSuffix,\n    comparison: comparison,\n  });\n\n  const [laterDate_, earlierDate_] = normalizeDates(\n    options?.in,\n    ...(comparison > 0 ? [earlierDate, laterDate] : [laterDate, earlierDate]),\n  );\n\n  const roundingMethod = getRoundingMethod(options?.roundingMethod ?? \"round\");\n\n  const milliseconds = earlierDate_.getTime() - laterDate_.getTime();\n  const minutes = milliseconds / millisecondsInMinute;\n\n  const timezoneOffset =\n    getTimezoneOffsetInMilliseconds(earlierDate_) -\n    getTimezoneOffsetInMilliseconds(laterDate_);\n\n  // Use DST-normalized difference in minutes for years, months and days;\n  // use regular difference in minutes for hours, minutes and seconds.\n  const dstNormalizedMinutes =\n    (milliseconds - timezoneOffset) / millisecondsInMinute;\n\n  const defaultUnit = options?.unit;\n  let unit;\n  if (!defaultUnit) {\n    if (minutes < 1) {\n      unit = \"second\";\n    } else if (minutes < 60) {\n      unit = \"minute\";\n    } else if (minutes < minutesInDay) {\n      unit = \"hour\";\n    } else if (dstNormalizedMinutes < minutesInMonth) {\n      unit = \"day\";\n    } else if (dstNormalizedMinutes < minutesInYear) {\n      unit = \"month\";\n    } else {\n      unit = \"year\";\n    }\n  } else {\n    unit = defaultUnit;\n  }\n\n  // 0 up to 60 seconds\n  if (unit === \"second\") {\n    const seconds = roundingMethod(milliseconds / 1000);\n    return locale.formatDistance(\"xSeconds\", seconds, localizeOptions);\n\n    // 1 up to 60 mins\n  } else if (unit === \"minute\") {\n    const roundedMinutes = roundingMethod(minutes);\n    return locale.formatDistance(\"xMinutes\", roundedMinutes, localizeOptions);\n\n    // 1 up to 24 hours\n  } else if (unit === \"hour\") {\n    const hours = roundingMethod(minutes / 60);\n    return locale.formatDistance(\"xHours\", hours, localizeOptions);\n\n    // 1 up to 30 days\n  } else if (unit === \"day\") {\n    const days = roundingMethod(dstNormalizedMinutes / minutesInDay);\n    return locale.formatDistance(\"xDays\", days, localizeOptions);\n\n    // 1 up to 12 months\n  } else if (unit === \"month\") {\n    const months = roundingMethod(dstNormalizedMinutes / minutesInMonth);\n    return months === 12 && defaultUnit !== \"month\"\n      ? locale.formatDistance(\"xYears\", 1, localizeOptions)\n      : locale.formatDistance(\"xMonths\", months, localizeOptions);\n\n    // 1 year up to max Date\n  } else {\n    const years = roundingMethod(dstNormalizedMinutes / minutesInYear);\n    return locale.formatDistance(\"xYears\", years, localizeOptions);\n  }\n}\n\n// Fallback for modularized imports:\nexport default formatDistanceStrict;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link fromUnixTime} function options.\n */\n\n/**\n * @name fromUnixTime\n * @category Timestamp Helpers\n * @summary Create a date from a Unix timestamp.\n *\n * @description\n * Create a date from a Unix timestamp (in seconds). Decimal values will be discarded.\n *\n * @param unixTime - The given Unix timestamp (in seconds)\n * @param options - An object with options. Allows to pass a context.\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 * @returns The date\n *\n * @example\n * // Create the date 29 February 2012 11:45:05:\n * const result = fromUnixTime(1330515905)\n * //=> Wed Feb 29 2012 11:45:05\n */\nexport function fromUnixTime(unixTime, options) {\n  return toDate(unixTime * 1000, options?.in);\n}\n\n// Fallback for modularized imports:\nexport default fromUnixTime;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link getDate} function options.\n */\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @param date - The given date\n * @param options - An object with options.\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport function getDate(date, options) {\n  return toDate(date, options?.in).getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDate;\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 * @name getMilliseconds\n * @category Millisecond Helpers\n * @summary Get the milliseconds of the given date.\n *\n * @description\n * Get the milliseconds of the given date.\n *\n * @param date - The given date\n *\n * @returns The milliseconds\n *\n * @example\n * // Get the milliseconds of 29 February 2012 11:45:05.123:\n * const result = getMilliseconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 123\n */\nexport function getMilliseconds(date) {\n  return toDate(date).getMilliseconds();\n}\n\n// Fallback for modularized imports:\nexport default getMilliseconds;\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 * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * @param date - The given date\n *\n * @returns The timestamp\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * const result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\nexport function getTime(date) {\n  return +toDate(date);\n}\n\n// Fallback for modularized imports:\nexport default getTime;\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 { 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    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 { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfHour} function options.\n */\n\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour 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 an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nexport function startOfHour(date, options) {\n  const _date = toDate(date, options?.in);\n  _date.setMinutes(0, 0, 0);\n  return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfHour;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfMinute} function options.\n */\n\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute 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 minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nexport function startOfMinute(date, options) {\n  const date_ = toDate(date, options?.in);\n  date_.setSeconds(0, 0);\n  return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfMinute;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameMonth} function options.\n */\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (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 month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(laterDate, earlierDate, options) {\n  const [laterDate_, earlierDate_] = normalizeDates(\n    options?.in,\n    laterDate,\n    earlierDate,\n  );\n  return (\n    laterDate_.getFullYear() === earlierDate_.getFullYear() &&\n    laterDate_.getMonth() === earlierDate_.getMonth()\n  );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\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 { toDate } from \"./toDate.js\";\n\n/**\n * The {@link startOfSecond} function options.\n */\n\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second 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 second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nexport function startOfSecond(date, options) {\n  const date_ = toDate(date, options?.in);\n  date_.setMilliseconds(0);\n  return date_;\n}\n\n// Fallback for modularized imports:\nexport default startOfSecond;\n","import { normalizeDates } from \"./_lib/normalizeDates.js\";\n\n/**\n * The {@link isSameYear} function options.\n */\n\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same 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 year\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\nexport function isSameYear(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 isSameYear;\n","import { toDate } from \"./toDate.js\";\n\n/**\n * The {@link isWithinInterval} function options.\n */\n\n/**\n * @name isWithinInterval\n * @category Interval Helpers\n * @summary Is the given date within the interval?\n *\n * @description\n * Is the given date within the interval? (Including start and end.)\n *\n * @param date - The date to check\n * @param interval - The interval to check\n * @param options - An object with options\n *\n * @returns The date is within the interval\n *\n * @example\n * // For the date within the interval:\n * isWithinInterval(new Date(2014, 0, 3), {\n *   start: new Date(2014, 0, 1),\n *   end: new Date(2014, 0, 7)\n * })\n * // => true\n *\n * @example\n * // For the date outside of the interval:\n * isWithinInterval(new Date(2014, 0, 10), {\n *   start: new Date(2014, 0, 1),\n *   end: new Date(2014, 0, 7)\n * })\n * // => false\n *\n * @example\n * // For date equal to the interval start:\n * isWithinInterval(date, { start, end: date })\n * // => true\n *\n * @example\n * // For date equal to the interval end:\n * isWithinInterval(date, { start: date, end })\n * // => true\n */\nexport function isWithinInterval(date, interval, options) {\n  const time = +toDate(date, options?.in);\n  const [startTime, endTime] = [\n    +toDate(interval.start, options?.in),\n    +toDate(interval.end, options?.in),\n  ].sort((a, b) => a - b);\n\n  return time >= startTime && time <= endTime;\n}\n\n// Fallback for modularized imports:\nexport default isWithinInterval;\n","import {\n  millisecondsInHour,\n  millisecondsInMinute,\n} from \"./constants.js\";\nimport { constructFrom } from \"./constructFrom.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link parseISO} function options.\n */\n\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid 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 argument - The value to convert\n * @param options - An object with options\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function parseISO(argument, options) {\n  const invalidDate = () => constructFrom(options?.in, NaN);\n\n  const additionalDigits = options?.additionalDigits ?? 2;\n  const dateStrings = splitDateString(argument);\n\n  let date;\n  if (dateStrings.date) {\n    const parseYearResult = parseYear(dateStrings.date, additionalDigits);\n    date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n  }\n\n  if (!date || isNaN(+date)) return invalidDate();\n\n  const timestamp = +date;\n  let time = 0;\n  let offset;\n\n  if (dateStrings.time) {\n    time = parseTime(dateStrings.time);\n    if (isNaN(time)) return invalidDate();\n  }\n\n  if (dateStrings.timezone) {\n    offset = parseTimezone(dateStrings.timezone);\n    if (isNaN(offset)) return invalidDate();\n  } else {\n    const tmpDate = new Date(timestamp + time);\n    const result = toDate(0, options?.in);\n    result.setFullYear(\n      tmpDate.getUTCFullYear(),\n      tmpDate.getUTCMonth(),\n      tmpDate.getUTCDate(),\n    );\n    result.setHours(\n      tmpDate.getUTCHours(),\n      tmpDate.getUTCMinutes(),\n      tmpDate.getUTCSeconds(),\n      tmpDate.getUTCMilliseconds(),\n    );\n    return result;\n  }\n\n  return toDate(timestamp + time + offset, options?.in);\n}\n\nconst patterns = {\n  dateTimeDelimiter: /[T ]/,\n  timeZoneDelimiter: /[Z ]/i,\n  timezone: /([Z+-].*)$/,\n};\n\nconst dateRegex =\n  /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nconst timeRegex =\n  /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nconst timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n  const dateStrings = {};\n  const array = dateString.split(patterns.dateTimeDelimiter);\n  let timeString;\n\n  // The regex match should only return at maximum two array elements.\n  // [date], [time], or [date, time].\n  if (array.length > 2) {\n    return dateStrings;\n  }\n\n  if (/:/.test(array[0])) {\n    timeString = array[0];\n  } else {\n    dateStrings.date = array[0];\n    timeString = array[1];\n    if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n      dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n      timeString = dateString.substr(\n        dateStrings.date.length,\n        dateString.length,\n      );\n    }\n  }\n\n  if (timeString) {\n    const token = patterns.timezone.exec(timeString);\n    if (token) {\n      dateStrings.time = timeString.replace(token[1], \"\");\n      dateStrings.timezone = token[1];\n    } else {\n      dateStrings.time = timeString;\n    }\n  }\n\n  return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n  const regex = new RegExp(\n    \"^(?:(\\\\d{4}|[+-]\\\\d{\" +\n      (4 + additionalDigits) +\n      \"})|(\\\\d{2}|[+-]\\\\d{\" +\n      (2 + additionalDigits) +\n      \"})$)\",\n  );\n\n  const captures = dateString.match(regex);\n  // Invalid ISO-formatted year\n  if (!captures) return { year: NaN, restDateString: \"\" };\n\n  const year = captures[1] ? parseInt(captures[1]) : null;\n  const century = captures[2] ? parseInt(captures[2]) : null;\n\n  // either year or century is null, not both\n  return {\n    year: century === null ? year : century * 100,\n    restDateString: dateString.slice((captures[1] || captures[2]).length),\n  };\n}\n\nfunction parseDate(dateString, year) {\n  // Invalid ISO-formatted year\n  if (year === null) return new Date(NaN);\n\n  const captures = dateString.match(dateRegex);\n  // Invalid ISO-formatted string\n  if (!captures) return new Date(NaN);\n\n  const isWeekDate = !!captures[4];\n  const dayOfYear = parseDateUnit(captures[1]);\n  const month = parseDateUnit(captures[2]) - 1;\n  const day = parseDateUnit(captures[3]);\n  const week = parseDateUnit(captures[4]);\n  const dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n  if (isWeekDate) {\n    if (!validateWeekDate(year, week, dayOfWeek)) {\n      return new Date(NaN);\n    }\n    return dayOfISOWeekYear(year, week, dayOfWeek);\n  } else {\n    const date = new Date(0);\n    if (\n      !validateDate(year, month, day) ||\n      !validateDayOfYearDate(year, dayOfYear)\n    ) {\n      return new Date(NaN);\n    }\n    date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n    return date;\n  }\n}\n\nfunction parseDateUnit(value) {\n  return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n  const captures = timeString.match(timeRegex);\n  if (!captures) return NaN; // Invalid ISO-formatted time\n\n  const hours = parseTimeUnit(captures[1]);\n  const minutes = parseTimeUnit(captures[2]);\n  const seconds = parseTimeUnit(captures[3]);\n\n  if (!validateTime(hours, minutes, seconds)) {\n    return NaN;\n  }\n\n  return (\n    hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000\n  );\n}\n\nfunction parseTimeUnit(value) {\n  return (value && parseFloat(value.replace(\",\", \".\"))) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n  if (timezoneString === \"Z\") return 0;\n\n  const captures = timezoneString.match(timezoneRegex);\n  if (!captures) return 0;\n\n  const sign = captures[1] === \"+\" ? -1 : 1;\n  const hours = parseInt(captures[2]);\n  const minutes = (captures[3] && parseInt(captures[3])) || 0;\n\n  if (!validateTimezone(hours, minutes)) {\n    return NaN;\n  }\n\n  return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n  const date = new Date(0);\n  date.setUTCFullYear(isoWeekYear, 0, 4);\n  const fourthOfJanuaryDay = date.getUTCDay() || 7;\n  const diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n  date.setUTCDate(date.getUTCDate() + diff);\n  return date;\n}\n\n// Validation functions\n\n// February is null to handle the leap year (using ||)\nconst daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n  return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\n\nfunction validateDate(year, month, date) {\n  return (\n    month >= 0 &&\n    month <= 11 &&\n    date >= 1 &&\n    date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28))\n  );\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n  return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n  return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n  if (hours === 24) {\n    return minutes === 0 && seconds === 0;\n  }\n\n  return (\n    seconds >= 0 &&\n    seconds < 60 &&\n    minutes >= 0 &&\n    minutes < 60 &&\n    hours >= 0 &&\n    hours < 25\n  );\n}\n\nfunction validateTimezone(_hours, minutes) {\n  return minutes >= 0 && minutes <= 59;\n}\n\n// Fallback for modularized imports:\nexport default parseISO;\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 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 { setMonth } from \"./setMonth.js\";\nimport { toDate } from \"./toDate.js\";\n\n/**\n * The {@link setQuarter} function options.\n */\n\n/**\n * @name setQuarter\n * @category Quarter Helpers\n * @summary Set the year quarter to the given date.\n *\n * @description\n * Set the year quarter 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 quarter - The quarter of the new date\n * @param options - The options\n *\n * @returns The new date with the quarter set\n *\n * @example\n * // Set the 2nd quarter to 2 July 2014:\n * const result = setQuarter(new Date(2014, 6, 2), 2)\n * //=> Wed Apr 02 2014 00:00:00\n */\nexport function setQuarter(date, quarter, options) {\n  const date_ = toDate(date, options?.in);\n  const oldQuarter = Math.trunc(date_.getMonth() / 3) + 1;\n  const diff = quarter - oldQuarter;\n  return setMonth(date_, date_.getMonth() + diff * 3);\n}\n\n// Fallback for modularized imports:\nexport default setQuarter;\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 { 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 type { Ref } from 'vue'\nimport type { NDateLocale } from '../../locales'\nimport type {\n  DatePickerGetDefaultTime,\n  DatePickerGetRangeDefaultTime,\n  FirstDayOfWeek,\n  Value\n} from './interface'\nimport {\n  addDays,\n  addMonths,\n  addQuarters,\n  addYears,\n  format,\n  getDate,\n  getDay,\n  getMonth,\n  getQuarter,\n  getTime,\n  getYear,\n  isSameDay,\n  isSameMonth,\n  isSameQuarter,\n  isSameWeek,\n  isSameYear,\n  isValid,\n  parse,\n  setYear,\n  startOfMonth,\n  startOfYear\n} from 'date-fns'\n\nfunction getDerivedTimeFromKeyboardEvent(\n  prevValue: number | null,\n  event: KeyboardEvent\n): number {\n  const now = getTime(Date.now())\n  if (typeof prevValue !== 'number')\n    return now\n  switch (event.key) {\n    case 'ArrowUp':\n      return getTime(addDays(prevValue, -7))\n    case 'ArrowDown':\n      return getTime(addDays(prevValue, 7))\n    case 'ArrowRight':\n      return getTime(addDays(prevValue, 1))\n    case 'ArrowLeft':\n      return getTime(addDays(prevValue, -1))\n  }\n  return now\n}\n\nconst matcherMap = {\n  date: isSameDay,\n  month: isSameMonth,\n  year: isSameYear,\n  quarter: isSameQuarter\n} as const\n\nfunction makeWeekMatcher(firstDayOfWeek: FirstDayOfWeek) {\n  return (sourceTime: number, patternTime: number | Date) => {\n    // date-fns: 0 - Sunday\n    // naive-ui: 0 - Monday\n    const weekStartsOn = transformNaiveFirstDayOfWeekToDateFns(firstDayOfWeek)\n    return isSameWeek(sourceTime, patternTime, { weekStartsOn })\n  }\n}\n\nexport function transformNaiveFirstDayOfWeekToDateFns(\n  firstDayOfWeek: FirstDayOfWeek\n): FirstDayOfWeek {\n  return ((firstDayOfWeek + 1) % 7) as FirstDayOfWeek\n}\n\nfunction matchDate(\n  sourceTime: number,\n  patternTime: number | Date,\n  type: 'date' | 'month' | 'year' | 'quarter'\n): boolean\nfunction matchDate(\n  sourceTime: number,\n  patternTime: number | Date,\n  type: 'week',\n  firstDayOfWeek: FirstDayOfWeek\n): boolean\nfunction matchDate(\n  sourceTime: number,\n  patternTime: number | Date,\n  type: 'date' | 'month' | 'year' | 'quarter' | 'week',\n  firstDayOfWeek: FirstDayOfWeek = 0\n): boolean {\n  const matcher\n    = type === 'week' ? makeWeekMatcher(firstDayOfWeek) : matcherMap[type]\n  return matcher(sourceTime, patternTime)\n}\n\nexport interface DateItem {\n  type: 'date'\n  dateObject: {\n    date: number\n    month: number\n    year: number\n  }\n  inCurrentMonth: boolean\n  isCurrentDate: boolean\n  inSpan: boolean\n  startOfSpan: boolean\n  endOfSpan: boolean\n  selected: boolean\n  inSelectedWeek: boolean\n  ts: number\n}\n\nexport interface MonthItem {\n  type: 'month'\n  monthFormat: string\n  dateObject: {\n    month: number\n    year: number\n  }\n  isCurrent: boolean\n  selected: boolean\n  ts: number\n}\n\nexport interface YearItem {\n  type: 'year'\n  yearFormat: string\n  dateObject: {\n    year: number\n  }\n  isCurrent: boolean\n  selected: boolean\n  ts: number\n}\n\nexport interface QuarterItem {\n  type: 'quarter'\n  quarterFormat: string\n  dateObject: {\n    quarter: number\n    year: number\n  }\n  isCurrent: boolean\n  selected: boolean\n  ts: number\n}\n\nfunction dateOrWeekItem(\n  time: number,\n  monthTs: number,\n  valueTs: number | [number, number] | null,\n  currentTs: number,\n  mode: 'date' | 'week',\n  firstDayOfWeek: FirstDayOfWeek\n): DateItem {\n  if (mode === 'date') {\n    return dateItem(time, monthTs, valueTs, currentTs)\n  }\n  else {\n    return weekItem(time, monthTs, valueTs, currentTs, firstDayOfWeek)\n  }\n}\n\n// date item's valueTs can be a tuple since two date may show in one panel, so\n// any matched value would make it shown as selected\nfunction dateItem(\n  time: number,\n  monthTs: number,\n  valueTs: number | [number, number] | null,\n  currentTs: number\n): DateItem {\n  let inSpan = false\n  let startOfSpan = false\n  let endOfSpan = false\n  if (Array.isArray(valueTs)) {\n    if (valueTs[0] < time && time < valueTs[1]) {\n      inSpan = true\n    }\n    if (matchDate(valueTs[0], time, 'date'))\n      startOfSpan = true\n    if (matchDate(valueTs[1], time, 'date'))\n      endOfSpan = true\n  }\n  const selected\n    = valueTs !== null\n      && (Array.isArray(valueTs)\n        ? matchDate(valueTs[0], time, 'date')\n        || matchDate(valueTs[1], time, 'date')\n        : matchDate(valueTs, time, 'date'))\n  return {\n    type: 'date',\n    dateObject: {\n      date: getDate(time),\n      month: getMonth(time),\n      year: getYear(time)\n    },\n    inCurrentMonth: isSameMonth(time, monthTs),\n    isCurrentDate: matchDate(currentTs, time, 'date'),\n    inSpan,\n    inSelectedWeek: false,\n    startOfSpan,\n    endOfSpan,\n    selected,\n    ts: getTime(time)\n  }\n}\n\nfunction getMonthString(\n  month: number,\n  monthFormat: string,\n  locale: NDateLocale['locale']\n): string {\n  const date = new Date(2000, month, 1).getTime()\n  return format(date, monthFormat, { locale })\n}\n\nfunction getYearString(\n  year: number,\n  yearFormat: string,\n  locale: NDateLocale['locale']\n): string {\n  const date = new Date(year, 1, 1).getTime()\n  return format(date, yearFormat, { locale })\n}\n\nfunction getQuarterString(\n  quarter: number,\n  quarterFormat: string,\n  locale: NDateLocale['locale']\n): string {\n  const date = new Date(2000, quarter * 3 - 2, 1).getTime()\n  return format(date, quarterFormat, { locale })\n}\n\nfunction weekItem(\n  time: number,\n  monthTs: number,\n  valueTs: number | [number, number] | null,\n  currentTs: number,\n  firstDayOfWeek: FirstDayOfWeek\n): DateItem {\n  let inSpan = false\n  let startOfSpan = false\n  let endOfSpan = false\n  if (Array.isArray(valueTs)) {\n    if (valueTs[0] < time && time < valueTs[1]) {\n      inSpan = true\n    }\n    if (matchDate(valueTs[0], time, 'week', firstDayOfWeek))\n      startOfSpan = true\n    if (matchDate(valueTs[1], time, 'week', firstDayOfWeek))\n      endOfSpan = true\n  }\n  const inSelectedWeek\n    = valueTs !== null\n      && (Array.isArray(valueTs)\n        ? matchDate(valueTs[0], time, 'week', firstDayOfWeek)\n        || matchDate(valueTs[1], time, 'week', firstDayOfWeek)\n        : matchDate(valueTs, time, 'week', firstDayOfWeek))\n  return {\n    type: 'date',\n    dateObject: {\n      date: getDate(time),\n      month: getMonth(time),\n      year: getYear(time)\n    },\n    inCurrentMonth: isSameMonth(time, monthTs),\n    isCurrentDate: matchDate(currentTs, time, 'date'),\n    inSpan,\n    startOfSpan,\n    endOfSpan,\n    selected: false,\n    inSelectedWeek,\n    ts: getTime(time)\n  }\n}\n\nfunction monthItem(\n  monthTs: number,\n  valueTs: number | null,\n  currentTs: number,\n  {\n    monthFormat\n  }: {\n    monthFormat: string\n  }\n): MonthItem {\n  return {\n    type: 'month',\n    monthFormat,\n    dateObject: {\n      month: getMonth(monthTs),\n      year: getYear(monthTs)\n    },\n    isCurrent: isSameMonth(currentTs, monthTs),\n    selected: valueTs !== null && matchDate(valueTs, monthTs, 'month'),\n    ts: getTime(monthTs)\n  }\n}\n\nfunction yearItem(\n  yearTs: number,\n  valueTs: number | null,\n  currentTs: number,\n  {\n    yearFormat\n  }: {\n    yearFormat: string\n  }\n): YearItem {\n  return {\n    type: 'year',\n    yearFormat,\n    dateObject: {\n      year: getYear(yearTs)\n    },\n    isCurrent: isSameYear(currentTs, yearTs),\n    selected: valueTs !== null && matchDate(valueTs, yearTs, 'year'),\n    ts: getTime(yearTs)\n  }\n}\n\nfunction quarterItem(\n  quarterTs: number,\n  valueTs: number | null,\n  currentTs: number,\n  {\n    quarterFormat\n  }: {\n    quarterFormat: string\n  }\n): QuarterItem {\n  return {\n    type: 'quarter',\n    quarterFormat,\n    dateObject: {\n      quarter: getQuarter(quarterTs),\n      year: getYear(quarterTs)\n    },\n    isCurrent: isSameQuarter(currentTs, quarterTs),\n    selected: valueTs !== null && matchDate(valueTs, quarterTs, 'quarter'),\n    ts: getTime(quarterTs)\n  }\n}\n\n/**\n * Given time to display calendar, given the selected time, given current time,\n * return the date array of display time's month.\n */\nfunction dateArray(\n  monthTs: number,\n  valueTs: number | [number, number] | null,\n  currentTs: number,\n  startDay: 0 | 1 | 2 | 3 | 4 | 5 | 6,\n  strip: boolean = false,\n  weekMode: boolean = false\n): DateItem[] {\n  const granularity = weekMode ? 'week' : 'date'\n  const displayMonth = getMonth(monthTs)\n  // First day of current month\n  let displayMonthIterator = getTime(startOfMonth(monthTs))\n  // Last day of last month\n  let lastMonthIterator = getTime(addDays(displayMonthIterator, -1))\n  const calendarDays: DateItem[] = []\n  let protectLastMonthDateIsShownFlag = !strip\n  while (\n    getDay(lastMonthIterator) !== startDay\n    || protectLastMonthDateIsShownFlag\n  ) {\n    calendarDays.unshift(\n      dateOrWeekItem(\n        lastMonthIterator,\n        monthTs,\n        valueTs,\n        currentTs,\n        granularity,\n        startDay\n      )\n    )\n    lastMonthIterator = getTime(addDays(lastMonthIterator, -1))\n    protectLastMonthDateIsShownFlag = false\n  }\n  while (getMonth(displayMonthIterator) === displayMonth) {\n    calendarDays.push(\n      dateOrWeekItem(\n        displayMonthIterator,\n        monthTs,\n        valueTs,\n        currentTs,\n        granularity,\n        startDay\n      )\n    )\n    displayMonthIterator = getTime(addDays(displayMonthIterator, 1))\n  }\n  const endIndex = strip\n    ? calendarDays.length <= 28\n      ? 28\n      : calendarDays.length <= 35\n        ? 35\n        : 42\n    : 42\n  while (calendarDays.length < endIndex) {\n    calendarDays.push(\n      dateOrWeekItem(\n        displayMonthIterator,\n        monthTs,\n        valueTs,\n        currentTs,\n        granularity,\n        startDay\n      )\n    )\n    displayMonthIterator = getTime(addDays(displayMonthIterator, 1))\n  }\n  return calendarDays\n}\n\nfunction monthArray(\n  yearAnchorTs: number,\n  valueTs: number | null,\n  currentTs: number,\n  format: {\n    monthFormat: string\n  }\n): MonthItem[] {\n  const calendarMonths: MonthItem[] = []\n  const yearStart = startOfYear(yearAnchorTs)\n  for (let i = 0; i < 12; i++) {\n    calendarMonths.push(\n      monthItem(getTime(addMonths(yearStart, i)), valueTs, currentTs, format)\n    )\n  }\n  return calendarMonths\n}\n\nfunction quarterArray(\n  yearAnchorTs: number,\n  valueTs: number | null,\n  currentTs: number,\n  format: {\n    quarterFormat: string\n  }\n): QuarterItem[] {\n  const calendarQuarters: QuarterItem[] = []\n  const yearStart = startOfYear(yearAnchorTs)\n  for (let i = 0; i < 4; i++) {\n    calendarQuarters.push(\n      quarterItem(\n        getTime(addQuarters(yearStart, i)),\n        valueTs,\n        currentTs,\n        format\n      )\n    )\n  }\n  return calendarQuarters\n}\n\nfunction yearArray(\n  valueTs: number | null,\n  currentTs: number,\n  format: {\n    yearFormat: string\n  },\n  rangeRef: Ref<[number, number]>\n): YearItem[] {\n  const range = rangeRef.value\n  const calendarYears: YearItem[] = []\n  const startTime = startOfYear(setYear(new Date(), range[0]))\n  for (let i = 0; i < range[1] - range[0]; i++) {\n    calendarYears.push(\n      yearItem(getTime(addYears(startTime, i)), valueTs, currentTs, format)\n    )\n  }\n  return calendarYears\n}\n\nfunction strictParse(\n  string: string,\n  pattern: string,\n  backup: Date,\n  option: {\n    locale: NDateLocale['locale']\n  }\n): Date {\n  const result = parse(string, pattern, backup, option)\n  if (!isValid(result))\n    return result\n  else if (format(result, pattern, option) === string)\n    return result\n  else return new Date(Number.NaN)\n}\n\nfunction extractSingleDefaultTime(\n  timestamp: number,\n  defaultTimeExtractor: DatePickerGetDefaultTime\n):\n  | {\n    hours: number\n    minutes: number\n    seconds: number\n  }\n  | undefined {\n  const extractedTime = defaultTimeExtractor(timestamp)\n\n  return getDefaultTime(extractedTime as string)\n}\n\nfunction extractRangeDefaultTime(\n  timestamp: number,\n  defaultTimeExtractor: DatePickerGetRangeDefaultTime,\n  position: 'start' | 'end',\n  value: [number, number] | null\n):\n  | {\n    hours: number\n    minutes: number\n    seconds: number\n  }\n  | undefined {\n  const extractedTime = defaultTimeExtractor(timestamp, position, value)\n\n  return getDefaultTime(extractedTime as string)\n}\n\nfunction getDefaultTime(timeValue: string | undefined):\n  | {\n    hours: number\n    minutes: number\n    seconds: number\n  }\n  | undefined {\n  if (timeValue === undefined) {\n    return undefined\n  }\n  if (typeof timeValue === 'number') {\n    return timeValue\n  }\n  const [hour, minute, second] = timeValue.split(':')\n  return {\n    hours: Number(hour),\n    minutes: Number(minute),\n    seconds: Number(second)\n  }\n}\n\nfunction pluckValueFromRange(\n  value: Value | null,\n  type: 'start' | 'end'\n): number | null {\n  return Array.isArray(value) ? value[type === 'start' ? 0 : 1] : null\n}\n\nexport {\n  dateArray,\n  extractRangeDefaultTime,\n  extractSingleDefaultTime,\n  getDefaultTime,\n  getDerivedTimeFromKeyboardEvent,\n  getMonthString,\n  getQuarterString,\n  getYearString,\n  monthArray,\n  pluckValueFromRange,\n  quarterArray,\n  strictParse,\n  yearArray\n}\n","export default {\n  titleFontSize: '22px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport { composite } from 'seemly'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    fontSize,\n    lineHeight,\n    textColor2,\n    textColor1,\n    textColorDisabled,\n    dividerColor,\n    fontWeightStrong,\n    primaryColor,\n    baseColor,\n    hoverColor,\n    cardColor,\n    modalColor,\n    popoverColor\n  } = vars\n  return {\n    ...commonVariables,\n    borderRadius,\n    borderColor: composite(cardColor, dividerColor),\n    borderColorModal: composite(modalColor, dividerColor),\n    borderColorPopover: composite(popoverColor, dividerColor),\n    textColor: textColor2,\n    titleFontWeight: fontWeightStrong,\n    titleTextColor: textColor1,\n    dayTextColor: textColorDisabled,\n    fontSize,\n    lineHeight,\n    dateColorCurrent: primaryColor,\n    dateTextColorCurrent: baseColor,\n    cellColorHover: composite(cardColor, hoverColor),\n    cellColorHoverModal: composite(modalColor, hoverColor),\n    cellColorHoverPopover: composite(popoverColor, hoverColor),\n    cellColor: cardColor,\n    cellColorModal: modalColor,\n    cellColorPopover: popoverColor,\n    barColor: primaryColor\n  }\n}\n\nexport interface CalendarThemeVars extends ReturnType<typeof self> {}\n\nconst calendarLight: CalendarTheme = createTheme({\n  name: 'Calendar',\n  common: commonLight,\n  peers: {\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface CalendarTheme extends Theme<\n  'Calendar',\n  CalendarThemeVars,\n  {\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface CalendarThemeOverrides extends ExtractThemeOverrides<CalendarTheme> {}\n\nexport default calendarLight\n","import type { CalendarTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { self } from './light'\n\nconst calendarDark: CalendarTheme = {\n  name: 'Calendar',\n  common: commonDark,\n  peers: {\n    Button: buttonDark\n  },\n  self\n}\n\nexport default calendarDark\n","import { c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-border-color\n// --n-border-color-modal\n// --n-border-color-popover\n// --n-border-radius\n// --n-text-color\n// --n-title-font-weight\n// --n-title-font-size\n// --n-title-text-color\n// --n-day-text-color\n// --n-font-size\n// --n-line-height\n// --n-date-color-current\n// --n-cell-color\n// --n-cell-color-hover\n// --n-cell-color-hover-modal\n// --n-cell-color-hover-popover\n// --n-bar-color\nexport default c([\n  cB('calendar', `\n    line-height: var(--n-line-height);\n    font-size: var(--n-font-size);\n    color: var(--n-text-color);\n    height: 720px;\n    display: flex;\n    flex-direction: column;\n  `, [\n    cB('calendar-prev-btn', `\n      cursor: pointer;\n    `),\n    cB('calendar-next-btn', `\n      cursor: pointer;\n    `),\n    cB('calendar-header', `\n      display: flex;\n      align-items: center;\n      line-height: 1;\n      font-size: var(--n-title-font-size);\n      padding: 0 0 18px 0;\n      justify-content: space-between;\n    `, [\n      cE('title', `\n        color: var(--n-title-text-color);\n        font-weight: var(--n-title-font-weight);\n        transition: color .3s var(--n-bezier);\n      `),\n      cE('extra', `\n        display: flex;\n        align-items: center;\n      `)\n    ]),\n    cB('calendar-dates', `\n      display: grid;\n      grid-template-columns: repeat(7, minmax(0, 1fr));\n      grid-auto-rows: 1fr;\n      border-radius: var(--n-border-radius);\n      flex: 1;\n      border-top: 1px solid;\n      border-left: 1px solid;\n      border-color: var(--n-border-color);\n      transition: border-color .3s var(--n-bezier);\n    `),\n    cB('calendar-cell', `\n      box-sizing: border-box;\n      padding: 10px;\n      border-right: 1px solid;\n      border-bottom: 1px solid;\n      border-color: var(--n-border-color);\n      cursor: pointer;\n      position: relative;\n      transition:\n        color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `, [\n      c('&:nth-child(7)', `\n        border-top-right-radius: var(--n-border-radius);\n      `),\n      c('&:nth-last-child(7)', `\n        border-bottom-left-radius: var(--n-border-radius);\n      `),\n      c('&:last-child', `\n        border-bottom-right-radius: var(--n-border-radius);\n      `),\n      c('&:hover', `\n        background-color: var(--n-cell-color-hover);\n      `),\n      cE('bar', `\n        position: absolute;\n        left: 0;\n        right: 0;\n        bottom: -1px;\n        height: 3px;\n        background-color: #0000;\n        transition: background-color .3s var(--n-bezier);\n      `),\n      cM('selected', [\n        cE('bar', `\n          background-color: var(--n-bar-color);\n        `)\n      ]),\n      cB('calendar-date', `\n        transition:\n          color .3s var(--n-bezier),\n          border-color .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n        color: var(--n-text-color);\n      `, [\n        cE('date', `\n          color: var(--n-text-color);\n        `)\n      ]),\n      cM('disabled, other-month', `\n        color: var(--n-day-text-color);\n      `, [\n        cB('calendar-date', [\n          cE('date', `\n            color: var(--n-day-text-color);\n          `)\n        ])\n      ]),\n      cM('disabled', `\n        cursor: not-allowed;\n      `),\n      cM('current', [\n        cB('calendar-date', [\n          cE('date', `\n            color: var(--n-date-text-color-current);\n            background-color: var(--n-date-color-current);\n          `)\n        ])\n      ]),\n      cB('calendar-date', `\n        position: relative;\n        line-height: 1;\n        display: flex;\n        align-items: center;\n        height: 1em;\n        justify-content: space-between;\n        padding-bottom: .75em;\n      `, [\n        cE('date', `\n          border-radius: 50%;\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          margin-left: -0.4em;\n          width: 1.8em;\n          height: 1.8em;\n          transition:\n            color .3s var(--n-bezier),\n            background-color .3s var(--n-bezier);\n        `),\n        cE('day', `\n          color: var(--n-day-text-color);\n          transition: color .3s var(--n-bezier);\n        `)\n      ])\n    ])\n  ]),\n  insideModal(cB('calendar', [\n    cB('calendar-dates', `\n      border-color: var(--n-border-color-modal);\n    `),\n    cB('calendar-cell', `\n      border-color: var(--n-border-color-modal);\n    `, [\n      c('&:hover', `\n        background-color: var(--n-cell-color-hover-modal);\n      `)\n    ])\n  ])),\n  insidePopover(cB('calendar', [\n    cB('calendar-dates', `\n      border-color: var(--n-border-color-popover);\n    `),\n    cB('calendar-cell', `\n      border-color: var(--n-border-color-popover);\n    `, [\n      c('&:hover', `\n        background-color: var(--n-cell-color-hover-popover);\n      `)\n    ])\n  ]))\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { CalendarTheme, CalendarThemeOverrides } from '../styles'\nimport type {\n  CalendarDefaultSlotProps,\n  CalendarHeaderSlotProps,\n  DateItem,\n  OnPanelChange,\n  OnUpdateValue\n} from './interface'\nimport {\n  addMonths,\n  format,\n  getMonth,\n  getYear,\n  startOfDay,\n  startOfMonth\n} from 'date-fns'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, Fragment, h, ref, toRef } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../_internal/icons'\nimport { useConfig, useLocale, useTheme, useThemeClass } from '../../_mixins'\nimport { call, resolveSlotWithTypedProps } from '../../_utils'\nimport { NButton } from '../../button'\nimport { NButtonGroup } from '../../button-group'\nimport { dateArray } from '../../date-picker/src/utils'\nimport { calendarLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const calendarProps = {\n  ...(useTheme.props as ThemeProps<CalendarTheme, CalendarThemeOverrides>),\n  isDateDisabled: Function as PropType<(date: number) => boolean | undefined>,\n  value: Number,\n  defaultValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  onPanelChange: Function as PropType<OnPanelChange>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type CalendarProps = ExtractPublicPropTypes<typeof calendarProps>\n\nexport interface CalendarSlots {\n  default?: (props: CalendarDefaultSlotProps) => VNode[]\n  header?: (props: CalendarHeaderSlotProps) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Calendar',\n  props: calendarProps,\n  slots: Object as SlotsType<CalendarSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Calendar',\n      '-calendar',\n      style,\n      calendarLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { localeRef, dateLocaleRef } = useLocale('DatePicker')\n    const now = Date.now()\n    // ts => timestamp\n    const monthTsRef = ref(startOfMonth(props.defaultValue ?? now).valueOf())\n    const uncontrolledValueRef = ref<number | null>(props.defaultValue || null)\n    const mergedValueRef = useMergedState(\n      toRef(props, 'value'),\n      uncontrolledValueRef\n    )\n\n    function doUpdateValue(value: number, time: DateItem): void {\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props\n      if (onUpdateValue) {\n        call(onUpdateValue, value, time)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue, value, time)\n      }\n      uncontrolledValueRef.value = value\n    }\n\n    function handlePrevClick(): void {\n      const monthTs = addMonths(monthTsRef.value, -1).valueOf()\n      monthTsRef.value = monthTs\n      props.onPanelChange?.({\n        year: getYear(monthTs),\n        month: getMonth(monthTs) + 1\n      })\n    }\n    function handleNextClick(): void {\n      const monthTs = addMonths(monthTsRef.value, 1).valueOf()\n      monthTsRef.value = monthTs\n      props.onPanelChange?.({\n        year: getYear(monthTs),\n        month: getMonth(monthTs) + 1\n      })\n    }\n    function handleTodayClick(): void {\n      const { value: monthTs } = monthTsRef\n      const oldYear = getYear(monthTs)\n      const oldMonth = getMonth(monthTs)\n      const newMonthTs = startOfMonth(now).valueOf()\n      monthTsRef.value = newMonthTs\n      const newYear = getYear(newMonthTs)\n      const newMonth = getMonth(newMonthTs)\n      if (oldYear !== newYear || oldMonth !== newMonth) {\n        props.onPanelChange?.({\n          year: newYear,\n          month: newMonth + 1\n        })\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          borderColor,\n          borderColorModal,\n          borderColorPopover,\n          borderRadius,\n          titleFontSize,\n          textColor,\n          titleFontWeight,\n          titleTextColor,\n          dayTextColor,\n          fontSize,\n          lineHeight,\n          dateColorCurrent,\n          dateTextColorCurrent,\n          cellColorHover,\n          cellColor,\n          cellColorModal,\n          barColor,\n          cellColorPopover,\n          cellColorHoverModal,\n          cellColorHoverPopover\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-color': borderColor,\n        '--n-border-color-modal': borderColorModal,\n        '--n-border-color-popover': borderColorPopover,\n        '--n-border-radius': borderRadius,\n        '--n-text-color': textColor,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-text-color': titleTextColor,\n        '--n-day-text-color': dayTextColor,\n        '--n-font-size': fontSize,\n        '--n-line-height': lineHeight,\n        '--n-date-color-current': dateColorCurrent,\n        '--n-date-text-color-current': dateTextColorCurrent,\n        '--n-cell-color': cellColor,\n        '--n-cell-color-modal': cellColorModal,\n        '--n-cell-color-popover': cellColorPopover,\n        '--n-cell-color-hover': cellColorHover,\n        '--n-cell-color-hover-modal': cellColorHoverModal,\n        '--n-cell-color-hover-popover': cellColorHoverPopover,\n        '--n-bar-color': barColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('calendar', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      locale: localeRef,\n      dateLocale: dateLocaleRef,\n      now,\n      mergedValue: mergedValueRef,\n      monthTs: monthTsRef,\n      dateItems: computed(() => {\n        return dateArray(\n          monthTsRef.value,\n          mergedValueRef.value,\n          now,\n          localeRef.value.firstDayOfWeek,\n          true\n        )\n      }),\n      doUpdateValue,\n      handleTodayClick,\n      handlePrevClick,\n      handleNextClick,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      isDateDisabled,\n      mergedClsPrefix,\n      monthTs,\n      cssVars,\n      mergedValue,\n      mergedTheme,\n      $slots,\n      locale: { monthBeforeYear, today },\n      dateLocale: { locale },\n      handleTodayClick,\n      handlePrevClick,\n      handleNextClick,\n      onRender\n    } = this\n    onRender?.()\n    const normalizedValue = mergedValue && startOfDay(mergedValue).valueOf()\n    const year = getYear(monthTs)\n    const calendarMonth = getMonth(monthTs) + 1\n    return (\n      <div\n        class={[`${mergedClsPrefix}-calendar`, this.themeClass]}\n        style={cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-calendar-header`}>\n          <div class={`${mergedClsPrefix}-calendar-header__title`}>\n            {resolveSlotWithTypedProps(\n              $slots.header,\n              { year, month: calendarMonth },\n              () => {\n                const localeMonth = format(monthTs, 'MMMM', { locale })\n                return [\n                  monthBeforeYear\n                    ? `${localeMonth} ${year}`\n                    : `${year} ${localeMonth}`\n                ]\n              }\n            )}\n          </div>\n          <div class={`${mergedClsPrefix}-calendar-header__extra`}>\n            <NButtonGroup>\n              {{\n                default: () => (\n                  <>\n                    <NButton\n                      size=\"small\"\n                      onClick={handlePrevClick}\n                      theme={mergedTheme.peers.Button}\n                      themeOverrides={mergedTheme.peerOverrides.Button}\n                    >\n                      {{\n                        icon: () => (\n                          <NBaseIcon\n                            clsPrefix={mergedClsPrefix}\n                            class={`${mergedClsPrefix}-calendar-prev-btn`}\n                          >\n                            {{ default: () => <ChevronLeftIcon /> }}\n                          </NBaseIcon>\n                        )\n                      }}\n                    </NButton>\n                    <NButton\n                      size=\"small\"\n                      onClick={handleTodayClick}\n                      theme={mergedTheme.peers.Button}\n                      themeOverrides={mergedTheme.peerOverrides.Button}\n                    >\n                      {{ default: () => today }}\n                    </NButton>\n                    <NButton\n                      size=\"small\"\n                      onClick={handleNextClick}\n                      theme={mergedTheme.peers.Button}\n                      themeOverrides={mergedTheme.peerOverrides.Button}\n                    >\n                      {{\n                        icon: () => (\n                          <NBaseIcon\n                            clsPrefix={mergedClsPrefix}\n                            class={`${mergedClsPrefix}-calendar-next-btn`}\n                          >\n                            {{ default: () => <ChevronRightIcon /> }}\n                          </NBaseIcon>\n                        )\n                      }}\n                    </NButton>\n                  </>\n                )\n              }}\n            </NButtonGroup>\n          </div>\n        </div>\n        <div class={`${mergedClsPrefix}-calendar-dates`}>\n          {this.dateItems.map(\n            ({ dateObject, ts, inCurrentMonth, isCurrentDate }, index) => {\n              const { year, month, date } = dateObject\n              const fullDate = format(ts, 'yyyy-MM-dd')\n              // 'notInCurrentMonth' and 'disabled' are both disabled styles, but 'disabled''s cursor are not-allowed\n              const notInCurrentMonth = !inCurrentMonth\n              const disabled = isDateDisabled?.(ts) === true\n              const selected = normalizedValue === startOfDay(ts).valueOf()\n              return (\n                <div\n                  key={`${calendarMonth}-${index}`}\n                  class={[\n                    `${mergedClsPrefix}-calendar-cell`,\n                    disabled && `${mergedClsPrefix}-calendar-cell--disabled`,\n                    notInCurrentMonth\n                    && `${mergedClsPrefix}-calendar-cell--other-month`,\n                    disabled && `${mergedClsPrefix}-calendar-cell--not-allowed`,\n                    isCurrentDate\n                    && `${mergedClsPrefix}-calendar-cell--current`,\n                    selected && `${mergedClsPrefix}-calendar-cell--selected`\n                  ]}\n                  onClick={() => {\n                    if (disabled)\n                      return\n                    const monthTs = startOfMonth(ts).valueOf()\n                    this.monthTs = monthTs\n                    if (notInCurrentMonth) {\n                      this.onPanelChange?.({\n                        year: getYear(monthTs),\n                        month: getMonth(monthTs) + 1\n                      })\n                    }\n                    this.doUpdateValue(ts, {\n                      year,\n                      month: month + 1,\n                      date\n                    })\n                  }}\n                >\n                  <div class={`${mergedClsPrefix}-calendar-date`}>\n                    <div\n                      class={`${mergedClsPrefix}-calendar-date__date`}\n                      title={fullDate}\n                    >\n                      {date}\n                    </div>\n                    {index < 7 && (\n                      <div\n                        class={`${mergedClsPrefix}-calendar-date__day`}\n                        title={fullDate}\n                      >\n                        {format(ts, 'EEE', {\n                          locale\n                        })}\n                      </div>\n                    )}\n                  </div>\n                  {$slots.default?.({\n                    year,\n                    month: month + 1,\n                    date\n                  })}\n                  <div class={`${mergedClsPrefix}-calendar-cell__bar`} />\n                </div>\n              )\n            }\n          )}\n        </div>\n      </div>\n    )\n  }\n})\n","export default {\n  paddingSmall: '12px 16px 12px',\n  paddingMedium: '19px 24px 20px',\n  paddingLarge: '23px 32px 24px',\n  paddingHuge: '27px 40px 28px',\n  titleFontSizeSmall: '16px',\n  titleFontSizeMedium: '18px',\n  titleFontSizeLarge: '18px',\n  titleFontSizeHuge: '18px',\n  closeIconSize: '18px',\n  closeSize: '22px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    primaryColor,\n    borderRadius,\n    lineHeight,\n    fontSize,\n    cardColor,\n    textColor2,\n    textColor1,\n    dividerColor,\n    fontWeightStrong,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    modalColor,\n    boxShadow1,\n    popoverColor,\n    actionColor\n  } = vars\n  return {\n    ...commonVariables,\n    lineHeight,\n    color: cardColor,\n    colorModal: modalColor,\n    colorPopover: popoverColor,\n    colorTarget: primaryColor,\n    colorEmbedded: actionColor,\n    colorEmbeddedModal: actionColor,\n    colorEmbeddedPopover: actionColor,\n    textColor: textColor2,\n    titleTextColor: textColor1,\n    borderColor: dividerColor,\n    actionColor,\n    titleFontWeight: fontWeightStrong,\n    closeColorHover,\n    closeColorPressed,\n    closeBorderRadius: borderRadius,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    fontSizeSmall: fontSize,\n    fontSizeMedium: fontSize,\n    fontSizeLarge: fontSize,\n    fontSizeHuge: fontSize,\n    boxShadow: boxShadow1,\n    borderRadius\n  }\n}\n\nexport interface CardThemeVars extends ReturnType<typeof self> {}\n\nconst cardLight: CardTheme = {\n  name: 'Card',\n  common: commonLight,\n  self\n}\n\nexport interface CardTheme extends Theme<'Card', CardThemeVars> {}\n\nexport interface CardThemeOverrides extends ExtractThemeOverrides<CardTheme> {}\n\nexport default cardLight\n","import type { CardTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst cardDark: CardTheme = {\n  name: 'Card',\n  common: commonDark,\n  self(vars) {\n    const commonSelf = self(vars)\n    const { cardColor, modalColor, popoverColor } = vars\n    commonSelf.colorEmbedded = cardColor\n    commonSelf.colorEmbeddedModal = modalColor\n    commonSelf.colorEmbeddedPopover = popoverColor\n    return commonSelf\n  }\n}\n\nexport default cardDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('card', [\n  cM('rtl', `\n    direction: rtl;\n  `),\n  c('>', [\n    cB('card-header', [\n      c('>', [\n        cE('close', `\n          margin: 0 8px 0 0;\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const cardRtl: RtlItem = {\n  name: 'Card',\n  style: rtlStyle\n}\n","import { asModal, c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr'\n\nconst contentBaseStyle = cB('card-content', `\n  flex: 1;\n  min-width: 0;\n  box-sizing: border-box;\n  padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left);\n  font-size: var(--n-font-size);\n`)\n\n// vars:\n// --n-bezier\n// --n-border-radius\n// --n-color\n// --n-color-modal\n// --n-color-popover\n// --n-text-color\n// --n-line-height\n// --n-padding-top\n// --n-padding-bottom\n// --n-padding-left\n// --n-font-size\n// --n-action-color\n// --n-title-font-weight\n// --n-title-font-size\n// --n-title-text-color\n// --n-close-size\n// --n-close-icon-size\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-border-color\n// --n-box-shadow\n// --n-color-embedded\n// --n-color-embedded-modal\n// --n-color-embedded-popover\nexport default c([\n  cB('card', `\n    font-size: var(--n-font-size);\n    line-height: var(--n-line-height);\n    display: flex;\n    flex-direction: column;\n    width: 100%;\n    box-sizing: border-box;\n    position: relative;\n    border-radius: var(--n-border-radius);\n    background-color: var(--n-color);\n    color: var(--n-text-color);\n    word-break: break-word;\n    transition: \n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n  `, [\n    asModal({\n      background: 'var(--n-color-modal)'\n    }),\n    cM('hoverable', [\n      c('&:hover', 'box-shadow: var(--n-box-shadow);')\n    ]),\n    cM('content-segmented', [\n      c('>', [\n        cB('card-content', `\n          padding-top: var(--n-padding-bottom);\n        `),\n        cE('content-scrollbar', [\n          c('>', [\n            cB('scrollbar-container', [\n              c('>', [\n                cB('card-content', `\n                  padding-top: var(--n-padding-bottom);\n                `)\n              ])\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cM('content-soft-segmented', [\n      c('>', [\n        cB('card-content', `\n          margin: 0 var(--n-padding-left);\n          padding: var(--n-padding-bottom) 0;\n        `),\n        cE('content-scrollbar', [\n          c('>', [\n            cB('scrollbar-container', [\n              c('>', [\n                cB('card-content', `\n                  margin: 0 var(--n-padding-left);\n                  padding: var(--n-padding-bottom) 0;\n                `)\n              ])\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cM('footer-segmented', [\n      c('>', [\n        cE('footer', `\n          padding-top: var(--n-padding-bottom);\n        `)\n      ])\n    ]),\n    cM('footer-soft-segmented', [\n      c('>', [\n        cE('footer', `\n          padding: var(--n-padding-bottom) 0;\n          margin: 0 var(--n-padding-left);\n        `)\n      ])\n    ]),\n    c('>', [\n      cB('card-header', `\n        box-sizing: border-box;\n        display: flex;\n        align-items: center;\n        font-size: var(--n-title-font-size);\n        padding:\n          var(--n-padding-top)\n          var(--n-padding-left)\n          var(--n-padding-bottom)\n          var(--n-padding-left);\n      `, [\n        cE('main', `\n          font-weight: var(--n-title-font-weight);\n          transition: color .3s var(--n-bezier);\n          flex: 1;\n          min-width: 0;\n          color: var(--n-title-text-color);\n        `),\n        cE('extra', `\n          display: flex;\n          align-items: center;\n          font-size: var(--n-font-size);\n          font-weight: 400;\n          transition: color .3s var(--n-bezier);\n          color: var(--n-text-color);\n        `),\n        cE('close', `\n          margin: 0 0 0 8px;\n          transition:\n            background-color .3s var(--n-bezier),\n            color .3s var(--n-bezier);\n        `)\n      ]),\n      cE('action', `\n        box-sizing: border-box;\n        transition:\n          background-color .3s var(--n-bezier),\n          border-color .3s var(--n-bezier);\n        background-clip: padding-box;\n        background-color: var(--n-action-color);\n      `),\n      contentBaseStyle,\n      cB('card-content', [\n        c('&:first-child', `\n          padding-top: var(--n-padding-bottom);\n        `)\n      ]),\n      cE('content-scrollbar', `\n        display: flex;\n        flex-direction: column;\n      `, [\n        c('>', [\n          cB('scrollbar-container', [\n            c('>', [\n              contentBaseStyle\n            ])\n          ])\n        ]),\n        c('&:first-child >', [\n          cB('scrollbar-container', [\n            c('>', [\n              cB('card-content', `\n                padding-top: var(--n-padding-bottom);\n              `)\n            ])\n          ])\n        ])\n      ]),\n      cE('footer', `\n        box-sizing: border-box;\n        padding: 0 var(--n-padding-left) var(--n-padding-bottom) var(--n-padding-left);\n        font-size: var(--n-font-size);\n      `, [\n        c('&:first-child', `\n          padding-top: var(--n-padding-bottom);\n        `)\n      ]),\n      cE('action', `\n        background-color: var(--n-action-color);\n        padding: var(--n-padding-bottom) var(--n-padding-left);\n        border-bottom-left-radius: var(--n-border-radius);\n        border-bottom-right-radius: var(--n-border-radius);\n      `)\n    ]),\n    cB('card-cover', `\n      overflow: hidden;\n      width: 100%;\n      border-radius: var(--n-border-radius) var(--n-border-radius) 0 0;\n    `, [\n      c('img', `\n        display: block;\n        width: 100%;\n      `)\n    ]),\n    cM('bordered', `\n      border: 1px solid var(--n-border-color);\n    `, [\n      c('&:target', 'border-color: var(--n-color-target);')\n    ]),\n    cM('action-segmented', [\n      c('>', [\n        cE('action', [\n          c('&:not(:first-child)', `\n            border-top: 1px solid var(--n-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('content-segmented, content-soft-segmented', [\n      c('>', [\n        cB('card-content', `\n          transition: border-color 0.3s var(--n-bezier);\n        `, [\n          c('&:not(:first-child)', `\n            border-top: 1px solid var(--n-border-color);\n          `)\n        ]),\n        cE('content-scrollbar', `\n          transition: border-color 0.3s var(--n-bezier);\n        `, [\n          c('&:not(:first-child)', `\n            border-top: 1px solid var(--n-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('footer-segmented, footer-soft-segmented', [\n      c('>', [\n        cE('footer', `\n          transition: border-color 0.3s var(--n-bezier);\n        `, [\n          c('&:not(:first-child)', `\n            border-top: 1px solid var(--n-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('embedded', `\n      background-color: var(--n-color-embedded);\n    `)\n  ]),\n  insideModal(cB('card', `\n    background: var(--n-color-modal);\n  `, [\n    cM('embedded', `\n      background-color: var(--n-color-embedded-modal);\n    `)\n  ])),\n  insidePopover(cB('card', `\n    background: var(--n-color-popover);\n  `, [\n    cM('embedded', `\n      background-color: var(--n-color-embedded-popover);\n    `)\n  ]))\n])\n","import type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { CardTheme, CardThemeOverrides } from '../styles'\nimport type { CardSize } from './public-types'\nimport { getPadding } from 'seemly'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseClose, NScrollbar } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, createKey, keysOf, resolveWrappedSlot } from '../../_utils'\nimport { ensureValidVNode } from '../../_utils/vue/resolve-slot'\nimport { cardLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport interface CardSegmented {\n  content?: boolean | 'soft'\n  footer?: boolean | 'soft'\n  action?: boolean | 'soft'\n}\n\nexport const cardBaseProps = {\n  title: [String, Function] as PropType<string | (() => VNodeChild)>,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<CSSProperties | string>,\n  contentScrollable: Boolean,\n  headerClass: String,\n  headerStyle: [Object, String] as PropType<CSSProperties | string>,\n  headerExtraClass: String,\n  headerExtraStyle: [Object, String] as PropType<CSSProperties | string>,\n  footerClass: String,\n  footerStyle: [Object, String] as PropType<CSSProperties | string>,\n  embedded: Boolean,\n  segmented: {\n    type: [Boolean, Object] as PropType<boolean | CardSegmented>,\n    default: false\n  },\n  size: String as PropType<CardSize>,\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  closable: Boolean,\n  hoverable: Boolean,\n  role: String,\n  onClose: [Function, Array] as PropType<MaybeArray<() => void>>,\n  tag: {\n    type: String as PropType<keyof HTMLElementTagNameMap>,\n    default: 'div'\n  },\n  cover: Function as PropType<() => VNodeChild>,\n  content: [String, Function] as PropType<string | (() => VNodeChild)>,\n  footer: Function as PropType<() => VNodeChild>,\n  action: Function as PropType<() => VNodeChild>,\n  headerExtra: Function as PropType<() => VNodeChild>,\n  closeFocusable: Boolean\n} as const\n\nexport const cardBasePropKeys = keysOf(cardBaseProps)\n\nexport const cardProps = {\n  ...(useTheme.props as ThemeProps<CardTheme, CardThemeOverrides>),\n  ...cardBaseProps\n}\n\nexport type CardProps = ExtractPublicPropTypes<typeof cardProps>\n\nexport interface CardSlots {\n  default?: () => VNode[]\n  cover?: () => VNode[]\n  header?: () => VNode[]\n  'header-extra'?: () => VNode[]\n  footer?: () => VNode[]\n  action?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Card',\n  props: cardProps,\n  slots: Object as SlotsType<CardSlots>,\n  setup(props) {\n    const handleCloseClick = (): void => {\n      const { onClose } = props\n      if (onClose) {\n        call(onClose)\n      }\n    }\n    const {\n      inlineThemeDisabled,\n      mergedClsPrefixRef,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Card',\n      '-card',\n      style,\n      cardLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Card', mergedRtlRef, mergedClsPrefixRef)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size || mergedComponentPropsRef?.value?.Card?.size || 'medium'\n      )\n    })\n    const cssVarsRef = computed(() => {\n      const mergedSize = mergedSizeRef.value\n      const {\n        self: {\n          color,\n          colorModal,\n          colorTarget,\n          textColor,\n          titleTextColor,\n          titleFontWeight,\n          borderColor,\n          actionColor,\n          borderRadius,\n          lineHeight,\n          closeIconColor,\n          closeIconColorHover,\n          closeIconColorPressed,\n          closeColorHover,\n          closeColorPressed,\n          closeBorderRadius,\n          closeIconSize,\n          closeSize,\n          boxShadow,\n          colorPopover,\n          colorEmbedded,\n          colorEmbeddedModal,\n          colorEmbeddedPopover,\n          [createKey('padding', mergedSize)]: padding,\n          [createKey('fontSize', mergedSize)]: fontSize,\n          [createKey('titleFontSize', mergedSize)]: titleFontSize\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      const {\n        top: paddingTop,\n        left: paddingLeft,\n        bottom: paddingBottom\n      } = getPadding(padding)\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-color': color,\n        '--n-color-modal': colorModal,\n        '--n-color-popover': colorPopover,\n        '--n-color-embedded': colorEmbedded,\n        '--n-color-embedded-modal': colorEmbeddedModal,\n        '--n-color-embedded-popover': colorEmbeddedPopover,\n        '--n-color-target': colorTarget,\n        '--n-text-color': textColor,\n        '--n-line-height': lineHeight,\n        '--n-action-color': actionColor,\n        '--n-title-text-color': titleTextColor,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-border-color': borderColor,\n        '--n-box-shadow': boxShadow,\n        // size\n        '--n-padding-top': paddingTop,\n        '--n-padding-bottom': paddingBottom,\n        '--n-padding-left': paddingLeft,\n        '--n-font-size': fontSize,\n        '--n-title-font-size': titleFontSize,\n        '--n-close-size': closeSize,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-border-radius': closeBorderRadius\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'card',\n          computed(() => {\n            return mergedSizeRef.value[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: themeRef,\n      handleCloseClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      segmented,\n      bordered,\n      hoverable,\n      mergedClsPrefix,\n      rtlEnabled,\n      onRender,\n      embedded,\n      tag: Component,\n      $slots\n    } = this\n    onRender?.()\n    return (\n      <Component\n        class={[\n          `${mergedClsPrefix}-card`,\n          this.themeClass,\n          embedded && `${mergedClsPrefix}-card--embedded`,\n          {\n            [`${mergedClsPrefix}-card--rtl`]: rtlEnabled,\n            [`${mergedClsPrefix}-card--content-scrollable`]:\n              this.contentScrollable,\n            [`${mergedClsPrefix}-card--content${\n              typeof segmented !== 'boolean' && segmented.content === 'soft'\n                ? '-soft'\n                : ''\n            }-segmented`]:\n              segmented === true || (segmented !== false && segmented.content),\n            [`${mergedClsPrefix}-card--footer${\n              typeof segmented !== 'boolean' && segmented.footer === 'soft'\n                ? '-soft'\n                : ''\n            }-segmented`]:\n              segmented === true || (segmented !== false && segmented.footer),\n            [`${mergedClsPrefix}-card--action-segmented`]:\n              segmented === true || (segmented !== false && segmented.action),\n            [`${mergedClsPrefix}-card--bordered`]: bordered,\n            [`${mergedClsPrefix}-card--hoverable`]: hoverable\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n        role={this.role}\n      >\n        {resolveWrappedSlot($slots.cover, (children) => {\n          const mergedChildren = this.cover\n            ? ensureValidVNode([this.cover()])\n            : children\n          return (\n            mergedChildren && (\n              <div class={`${mergedClsPrefix}-card-cover`} role=\"none\">\n                {mergedChildren}\n              </div>\n            )\n          )\n        })}\n        {resolveWrappedSlot($slots.header, (children) => {\n          const { title } = this\n          const mergedChildren = title\n            ? ensureValidVNode(\n                typeof title === 'function' ? [title()] : [title]\n              )\n            : children\n          return mergedChildren || this.closable ? (\n            <div\n              class={[`${mergedClsPrefix}-card-header`, this.headerClass]}\n              style={this.headerStyle}\n              role=\"heading\"\n            >\n              <div\n                class={`${mergedClsPrefix}-card-header__main`}\n                role=\"heading\"\n              >\n                {mergedChildren}\n              </div>\n              {resolveWrappedSlot($slots['header-extra'], (children) => {\n                const mergedChildren = this.headerExtra\n                  ? ensureValidVNode([this.headerExtra()])\n                  : children\n                return (\n                  mergedChildren && (\n                    <div\n                      class={[\n                        `${mergedClsPrefix}-card-header__extra`,\n                        this.headerExtraClass\n                      ]}\n                      style={this.headerExtraStyle}\n                    >\n                      {mergedChildren}\n                    </div>\n                  )\n                )\n              })}\n              {this.closable && (\n                <NBaseClose\n                  clsPrefix={mergedClsPrefix}\n                  class={`${mergedClsPrefix}-card-header__close`}\n                  onClick={this.handleCloseClick}\n                  focusable={this.closeFocusable}\n                  absolute\n                />\n              )}\n            </div>\n          ) : null\n        })}\n        {resolveWrappedSlot($slots.default, (children) => {\n          const { content } = this\n          const mergedChildren = content\n            ? ensureValidVNode(\n                typeof content === 'function' ? [content()] : [content]\n              )\n            : children\n          return mergedChildren ? (\n            this.contentScrollable ? (\n              <NScrollbar\n                class={`${mergedClsPrefix}-card__content-scrollbar`}\n                contentClass={[\n                  `${mergedClsPrefix}-card-content`,\n                  this.contentClass\n                ]}\n                contentStyle={this.contentStyle}\n              >\n                {{ default: () => mergedChildren }}\n              </NScrollbar>\n            ) : (\n              <div\n                class={[`${mergedClsPrefix}-card-content`, this.contentClass]}\n                style={this.contentStyle}\n                role=\"none\"\n              >\n                {mergedChildren}\n              </div>\n            )\n          ) : null\n        })}\n        {resolveWrappedSlot($slots.footer, (children) => {\n          const mergedChildren = this.footer\n            ? ensureValidVNode([this.footer()])\n            : children\n          return (\n            mergedChildren && (\n              <div\n                class={[`${mergedClsPrefix}-card__footer`, this.footerClass]}\n                style={this.footerStyle}\n                role=\"none\"\n              >\n                {mergedChildren}\n              </div>\n            )\n          )\n        })}\n        {resolveWrappedSlot($slots.action, (children) => {\n          const mergedChildren = this.action\n            ? ensureValidVNode([this.action()])\n            : children\n          return (\n            mergedChildren && (\n              <div class={`${mergedClsPrefix}-card__action`} role=\"none\">\n                {mergedChildren}\n              </div>\n            )\n          )\n        })}\n      </Component>\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self() {\n  return {\n    dotSize: '8px',\n    dotColor: 'rgba(255, 255, 255, .3)',\n    dotColorActive: 'rgba(255, 255, 255, 1)',\n    dotColorFocus: 'rgba(255, 255, 255, .5)',\n    dotLineWidth: '16px',\n    dotLineWidthActive: '24px',\n    arrowColor: '#eee'\n  }\n}\n\nexport interface CarouselThemeVars extends ReturnType<typeof self> {}\n\nconst carouselLight: CarouselTheme = {\n  name: 'Carousel',\n  common: commonLight,\n  self\n}\n\nexport interface CarouselTheme extends Theme<'Carousel', CarouselThemeVars> {}\n\nexport interface CarouselThemeOverrides extends ExtractThemeOverrides<CarouselTheme> {}\n\nexport default carouselLight\n","import type { CarouselTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst carouselDark: CarouselTheme = {\n  name: 'Carousel',\n  common: commonDark,\n  self\n}\n\nexport default carouselDark\n","import type { ComputedRef } from 'vue'\nimport { inject, provide } from 'vue'\nimport { createInjectionKey, throwError } from '../../_utils'\n\nexport interface CarouselContextValue {\n  currentIndexRef: ComputedRef<number>\n  to: (index: number) => void\n  prev: () => void\n  next: () => void\n  isVertical: () => boolean\n  isHorizontal: () => boolean\n  isPrev: (slideOrIndex: HTMLElement | number) => boolean\n  isNext: (slideOrIndex: HTMLElement | number) => boolean\n  isActive: (slideOrIndex: HTMLElement | number) => boolean\n  isPrevDisabled: () => boolean\n  isNextDisabled: () => boolean\n  getSlideIndex: (slideOrIndex?: HTMLElement | number) => number\n  getSlideStyle: (\n    slideOrIndex: HTMLElement | number\n  ) => string | Record<string, string | number> | undefined\n  addSlide: (slide?: HTMLElement) => void\n  removeSlide: (slide?: HTMLElement) => void\n  onCarouselItemClick: (index: number, event: MouseEvent) => void\n}\n\nconst carouselMethodsInjectionKey\n  = createInjectionKey<CarouselContextValue>('n-carousel-methods')\n\nexport function provideCarouselContext(\n  contextValue: CarouselContextValue\n): void {\n  provide(carouselMethodsInjectionKey, contextValue)\n}\n\nexport function useCarouselContext(\n  location: string = 'unknown',\n  component: string = 'component'\n): CarouselContextValue {\n  const CarouselContext = inject(carouselMethodsInjectionKey)\n  if (!CarouselContext) {\n    throwError(\n      location,\n      `\\`${component}\\` must be placed inside \\`n-carousel\\`.`\n    )\n  }\n  return CarouselContext\n}\n","import { defineComponent, h } from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { useCarouselContext } from './CarouselContext'\n\nfunction renderBackwardIcon() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n      <g fill=\"none\">\n        <path\n          d=\"M10.26 3.2a.75.75 0 0 1 .04 1.06L6.773 8l3.527 3.74a.75.75 0 1 1-1.1 1.02l-4-4.25a.75.75 0 0 1 0-1.02l4-4.25a.75.75 0 0 1 1.06-.04z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </g>\n    </svg>\n  )\n}\n\nfunction renderForwardIcon() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n      <g fill=\"none\">\n        <path\n          d=\"M5.74 3.2a.75.75 0 0 0-.04 1.06L9.227 8L5.7 11.74a.75.75 0 1 0 1.1 1.02l4-4.25a.75.75 0 0 0 0-1.02l-4-4.25a.75.75 0 0 0-1.06-.04z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </g>\n    </svg>\n  )\n}\n\nexport default defineComponent({\n  name: 'CarouselArrow',\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const { isVertical, isPrevDisabled, isNextDisabled, prev, next }\n      = useCarouselContext()\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      isVertical,\n      isPrevDisabled,\n      isNextDisabled,\n      prev,\n      next\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div class={`${mergedClsPrefix}-carousel__arrow-group`}>\n        <div\n          class={[\n            `${mergedClsPrefix}-carousel__arrow`,\n            this.isPrevDisabled()\n            && `${mergedClsPrefix}-carousel__arrow--disabled`\n          ]}\n          role=\"button\"\n          onClick={this.prev}\n        >\n          {renderBackwardIcon()}\n        </div>\n        <div\n          class={[\n            `${mergedClsPrefix}-carousel__arrow`,\n            this.isNextDisabled()\n            && `${mergedClsPrefix}-carousel__arrow--disabled`\n          ]}\n          role=\"button\"\n          onClick={this.next}\n        >\n          {renderForwardIcon()}\n        </div>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { indexMap } from 'seemly'\nimport { defineComponent, h, onBeforeUpdate, ref } from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { useCarouselContext } from './CarouselContext'\n\nconst carouselDotsProps = {\n  total: {\n    type: Number,\n    default: 0\n  },\n  currentIndex: {\n    type: Number,\n    default: 0\n  },\n  dotType: {\n    type: String as PropType<'dot' | 'line' | 'never'>,\n    default: 'dot'\n  },\n  trigger: {\n    type: String as PropType<'click' | 'hover'>,\n    default: 'click'\n  },\n  keyboard: Boolean\n}\n\nexport type CarouselDotsProps = ExtractPublicPropTypes<typeof carouselDotsProps>\n\nexport default defineComponent({\n  name: 'CarouselDots',\n  props: carouselDotsProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const dotElsRef = ref<HTMLElement[]>([])\n    const NCarousel = useCarouselContext()\n    function handleKeydown(e: KeyboardEvent, current: number): void {\n      switch (e.key) {\n        case 'Enter':\n        case ' ':\n          e.preventDefault()\n          NCarousel.to(current)\n          return\n      }\n      if (props.keyboard) {\n        handleKeyboard(e)\n      }\n    }\n    function handleMouseenter(current: number): void {\n      if (props.trigger === 'hover') {\n        NCarousel.to(current)\n      }\n    }\n    function handleClick(current: number): void {\n      if (props.trigger === 'click') {\n        NCarousel.to(current)\n      }\n    }\n    function handleKeyboard(e: KeyboardEvent): void {\n      if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n        return\n      }\n      const nodeName = document.activeElement?.nodeName.toLowerCase()\n      if (nodeName === 'input' || nodeName === 'textarea') {\n        return\n      }\n      const { code: keycode } = e\n      const isVerticalNext = keycode === 'PageUp' || keycode === 'ArrowUp'\n      const isVerticalPrev = keycode === 'PageDown' || keycode === 'ArrowDown'\n      const isHorizontalNext = keycode === 'PageUp' || keycode === 'ArrowRight'\n      const isHorizontalPrev = keycode === 'PageDown' || keycode === 'ArrowLeft'\n      const vertical = NCarousel.isVertical()\n      const wantToNext = vertical ? isVerticalNext : isHorizontalNext\n      const wantToPrev = vertical ? isVerticalPrev : isHorizontalPrev\n      if (!wantToNext && !wantToPrev) {\n        return\n      }\n      e.preventDefault()\n      if (wantToNext && !NCarousel.isNextDisabled()) {\n        NCarousel.next()\n        focusDot(NCarousel.currentIndexRef.value)\n      }\n      else if (wantToPrev && !NCarousel.isPrevDisabled()) {\n        NCarousel.prev()\n        focusDot(NCarousel.currentIndexRef.value)\n      }\n    }\n    function focusDot(index: number): void {\n      dotElsRef.value[index]?.focus()\n    }\n    onBeforeUpdate(() => (dotElsRef.value.length = 0))\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      dotEls: dotElsRef,\n      handleKeydown,\n      handleMouseenter,\n      handleClick\n    }\n  },\n  render() {\n    const { mergedClsPrefix, dotEls } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-carousel__dots`,\n          `${mergedClsPrefix}-carousel__dots--${this.dotType}`\n        ]}\n        role=\"tablist\"\n      >\n        {indexMap(this.total, (i) => {\n          const selected = i === this.currentIndex\n          return (\n            <div\n              aria-selected={selected}\n              ref={el => dotEls.push(el as HTMLElement)}\n              role=\"button\"\n              tabindex=\"0\"\n              class={[\n                `${mergedClsPrefix}-carousel__dot`,\n                selected && `${mergedClsPrefix}-carousel__dot--active`\n              ]}\n              key={i}\n              onClick={() => {\n                this.handleClick(i)\n              }}\n              onMouseenter={() => {\n                this.handleMouseenter(i)\n              }}\n              onKeydown={(e) => {\n                this.handleKeydown(e, i)\n              }}\n            />\n          )\n        })}\n      </div>\n    )\n  }\n})\n","import type { VNode } from 'vue'\nimport { camelCase } from 'lodash-es'\nimport {\n  computed,\n  defineComponent,\n  h,\n  onBeforeUnmount,\n  onMounted,\n  ref\n} from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { useCarouselContext } from './CarouselContext'\n\nconst CarouselItemName = 'CarouselItem'\n\nexport function isCarouselItem(child: VNode): boolean {\n  return (child.type as any)?.name === CarouselItemName\n}\n\nexport default defineComponent({\n  name: CarouselItemName,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const NCarousel = useCarouselContext(\n      camelCase(CarouselItemName),\n      `n-${camelCase(CarouselItemName)}`\n    )\n    const selfElRef = ref<HTMLElement>()\n    const indexRef = computed(() => {\n      const { value: selfEl } = selfElRef\n      return selfEl ? NCarousel.getSlideIndex(selfEl) : -1\n    })\n    const isPrevRef = computed(() => NCarousel.isPrev(indexRef.value))\n    const isNextRef = computed(() => NCarousel.isNext(indexRef.value))\n    const isActiveRef = computed(() => NCarousel.isActive(indexRef.value))\n    const styleRef = computed(() => NCarousel.getSlideStyle(indexRef.value))\n    onMounted(() => {\n      NCarousel.addSlide(selfElRef.value)\n    })\n    onBeforeUnmount(() => {\n      NCarousel.removeSlide(selfElRef.value)\n    })\n    function handleClick(event: MouseEvent): void {\n      const { value: index } = indexRef\n      if (index !== undefined) {\n        NCarousel?.onCarouselItemClick(index, event)\n      }\n    }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      selfElRef,\n      isPrev: isPrevRef,\n      isNext: isNextRef,\n      isActive: isActiveRef,\n      index: indexRef,\n      style: styleRef,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      $slots: slots,\n      mergedClsPrefix,\n      isPrev,\n      isNext,\n      isActive,\n      index,\n      style\n    } = this\n    const className = [\n      `${mergedClsPrefix}-carousel__slide`,\n      {\n        [`${mergedClsPrefix}-carousel__slide--current`]: isActive,\n        [`${mergedClsPrefix}-carousel__slide--prev`]: isPrev,\n        [`${mergedClsPrefix}-carousel__slide--next`]: isNext\n      }\n    ]\n    return (\n      <div\n        ref=\"selfElRef\"\n        class={className}\n        role=\"option\"\n        tabindex=\"-1\"\n        data-index={index}\n        aria-hidden={!isActive}\n        style={style}\n        // We use ts-ignore for vue-tsc, since it seems to patch native event\n        // for vue components\n        // @ts-expect-error vue's tsx has type for capture events\n        onClickCapture={this.handleClick}\n      >\n        {slots.default?.({\n          isPrev,\n          isNext,\n          isActive,\n          index\n        })}\n      </div>\n    )\n  }\n})\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-dot-color\n// --n-dot-color-focus\n// --n-dot-color-active\n// --n-dot-size\n// --n-dot-line-width\n// --n-dot-line-width-active\n// --n-arrow-color\nexport default cB('carousel', `\n  position: relative;\n  width: 100%;\n  height: 100%;\n  touch-action: pan-y;\n  overflow: hidden;\n`, [\n  cE('slides', `\n    display: flex;\n    width: 100%;\n    height: 100%;\n    transition-timing-function: var(--n-bezier);\n    transition-property: transform;\n  `, [\n    cE('slide', `\n      flex-shrink: 0;\n      position: relative;\n      width: 100%;\n      height: 100%;\n      outline: none;\n      overflow: hidden;\n    `, [\n      c('> img', `\n        display: block;\n      `)\n    ])\n  ]),\n  cE('dots', `\n    position: absolute;\n    display: flex;\n    flex-wrap: nowrap;\n  `, [\n    cM('dot', [\n      cE('dot', `\n        height: var(--n-dot-size);\n        width: var(--n-dot-size);\n        background-color: var(--n-dot-color);\n        border-radius: 50%;\n        cursor: pointer;\n        transition:\n          box-shadow .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n        outline: none;\n      `, [\n        c('&:focus', `\n          background-color: var(--n-dot-color-focus);\n        `),\n        cM('active', `\n          background-color: var(--n-dot-color-active);\n        `)\n      ])\n    ]),\n    cM('line', [\n      cE('dot', `\n        border-radius: 9999px;\n        width: var(--n-dot-line-width);\n        height: 4px;\n        background-color: var(--n-dot-color);\n        cursor: pointer;\n        transition:\n          width .3s var(--n-bezier),\n          box-shadow .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n        outline: none;\n      `, [\n        c('&:focus', `\n          background-color: var(--n-dot-color-focus);\n        `),\n        cM('active', `\n          width: var(--n-dot-line-width-active);\n          background-color: var(--n-dot-color-active);\n        `)\n      ])\n    ])\n  ]),\n  cE('arrow', `\n    transition: background-color .3s var(--n-bezier);\n    cursor: pointer;\n    height: 28px;\n    width: 28px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background-color: rgba(255, 255, 255, .2);\n    color: var(--n-arrow-color);\n    border-radius: 8px;\n    user-select: none;\n    -webkit-user-select: none;\n    font-size: 18px;\n  `, [\n    c('svg', `\n      height: 1em;\n      width: 1em;\n    `),\n    c('&:hover', `\n      background-color: rgba(255, 255, 255, .3);\n    `)\n  ]),\n  cM('vertical', `\n    touch-action: pan-x;\n  `, [\n    cE('slides', `\n      flex-direction: column;\n    `),\n    cM('fade', [\n      cE('slide', `\n        top: 50%;\n        left: unset;\n        transform: translateY(-50%);\n      `)\n    ]),\n    cM('card', [\n      cE('slide', `\n        top: 50%;\n        left: unset;\n        transform: translateY(-50%) translateZ(-400px);\n      `, [\n        cM('current', `\n          transform: translateY(-50%) translateZ(0);\n        `),\n        cM('prev', `\n          transform: translateY(-100%) translateZ(-200px);\n        `),\n        cM('next', `\n          transform: translateY(0%) translateZ(-200px);\n        `)\n      ])\n    ])\n  ]),\n  cM('usercontrol', [\n    cE('slides', [\n      c('>', [\n        c('div', `\n          position: absolute;\n          top: 50%;\n          left: 50%;\n          width: 100%;\n          height: 100%;\n          transform: translate(-50%, -50%);\n        `)\n      ])\n    ])\n  ]),\n  cM('left', [\n    cE('dots', `\n      transform: translateY(-50%);\n      top: 50%;\n      left: 12px;\n      flex-direction: column;\n    `, [\n      cM('line', [\n        cE('dot', `\n          width: 4px;\n          height: var(--n-dot-line-width);\n          margin: 4px 0;\n          transition:\n            height .3s var(--n-bezier),\n            box-shadow .3s var(--n-bezier),\n            background-color .3s var(--n-bezier);\n          outline: none;\n        `, [\n          cM('active', `\n            height: var(--n-dot-line-width-active);\n          `)\n        ])\n      ])\n    ]),\n    cE('dot', `\n      margin: 4px 0;\n    `)\n  ]),\n  cE('arrow-group', `\n    position: absolute;\n    display: flex;\n    flex-wrap: nowrap;\n  `),\n  cM('vertical', [\n    cE('arrow', `\n      transform: rotate(90deg);\n    `)\n  ]),\n  cM('show-arrow', [\n    cM('bottom', [\n      cE('dots', `\n        transform: translateX(0);\n        bottom: 18px;\n        left: 18px;\n      `)\n    ]),\n    cM('top', [\n      cE('dots', `\n        transform: translateX(0);\n        top: 18px;\n        left: 18px;\n      `)\n    ]),\n    cM('left', [\n      cE('dots', `\n        transform: translateX(0);\n        top: 18px;\n        left: 18px;\n      `)\n    ]),\n    cM('right', [\n      cE('dots', `\n        transform: translateX(0);\n        top: 18px;\n        right: 18px;\n      `)\n    ])\n  ]),\n  cM('left', [\n    cE('arrow-group', `\n      bottom: 12px;\n      left: 12px;\n      flex-direction: column;\n    `, [\n      c('> *:first-child', `\n        margin-bottom: 12px;\n      `)\n    ])\n  ]),\n  cM('right', [\n    cE('dots', `\n      transform: translateY(-50%);\n      top: 50%;\n      right: 12px;\n      flex-direction: column;\n    `, [\n      cM('line', [\n        cE('dot', `\n          width: 4px;\n          height: var(--n-dot-line-width);\n          margin: 4px 0;\n          transition:\n            height .3s var(--n-bezier),\n            box-shadow .3s var(--n-bezier),\n            background-color .3s var(--n-bezier);\n          outline: none;\n        `, [\n          cM('active', `\n            height: var(--n-dot-line-width-active);\n          `)\n        ])\n      ])\n    ]),\n    cE('dot', `\n      margin: 4px 0;\n    `),\n    cE('arrow-group', `\n      bottom: 12px;\n      right: 12px;\n      flex-direction: column;\n    `, [\n      c('> *:first-child', `\n        margin-bottom: 12px;\n      `)\n    ])\n  ]),\n  cM('top', [\n    cE('dots', `\n      transform: translateX(-50%);\n      top: 12px;\n      left: 50%;\n    `, [\n      cM('line', [\n        cE('dot', `\n          margin: 0 4px;\n        `)\n      ])\n    ]),\n    cE('dot', `\n      margin: 0 4px;\n    `),\n    cE('arrow-group', `\n      top: 12px;\n      right: 12px;\n    `, [\n      c('> *:first-child', `\n        margin-right: 12px;\n      `)\n    ])\n  ]),\n  cM('bottom', [\n    cE('dots', `\n      transform: translateX(-50%);\n      bottom: 12px;\n      left: 50%;\n    `, [\n      cM('line', [\n        cE('dot', `\n          margin: 0 4px;\n        `)\n      ])\n    ]),\n    cE('dot', `\n      margin: 0 4px;\n    `),\n    cE('arrow-group', `\n      bottom: 12px;\n      right: 12px;\n    `, [\n      c('> *:first-child', `\n        margin-right: 12px;\n      `)\n    ])\n  ]),\n  cM('fade', [\n    cE('slide', `\n      position: absolute;\n      opacity: 0;\n      transition-property: opacity;\n      pointer-events: none;\n    `, [\n      cM('current', `\n        opacity: 1;\n        pointer-events: auto;\n      `)\n    ])\n  ]),\n  cM('card', [\n    cE('slides', `\n      perspective: 1000px;\n    `),\n    cE('slide', `\n      position: absolute;\n      left: 50%;\n      opacity: 0;\n      transform: translateX(-50%) translateZ(-400px);\n      transition-property: opacity, transform;\n    `, [\n      cM('current', `\n        opacity: 1;\n        transform: translateX(-50%) translateZ(0);\n        z-index: 1;\n      `),\n      cM('prev', `\n        opacity: 0.4;\n        transform: translateX(-100%) translateZ(-200px);\n      `),\n      cM('next', `\n        opacity: 0.4;\n        transform: translateX(0%) translateZ(-200px);\n      `)\n    ])\n  ])\n])\n","// Because of the nature of the loop slide work,\n// we need to add duplicates to the left and right of the carousel\n// slot    [ 0 1 2 ]\n// display 2 0 1 2 0\n// real    0 1 2 3 4\n\nimport type { VNode } from 'vue'\nimport { cloneVNode } from 'vue'\n\nexport function addDuplicateSlides(slides: VNode[]): VNode[] {\n  const { length } = slides\n  if (length > 1) {\n    slides.push(duplicateSlide(slides[0], 0, 'append'))\n    slides.unshift(duplicateSlide(slides[length - 1], length - 1, 'prepend'))\n    return slides\n  }\n  return slides\n}\n\nfunction duplicateSlide(\n  child: VNode,\n  index: number,\n  position: 'prepend' | 'append'\n): VNode {\n  return cloneVNode(child, {\n    // for patch\n    key: `carousel-item-duplicate-${index}-${position}`\n  })\n}\n\nexport function getDisplayIndex(\n  current: number,\n  length: number,\n  duplicatedable: boolean\n): number {\n  if (length === 1)\n    return 0\n  return !duplicatedable\n    ? current\n    : current === 0\n      ? length - 3\n      : current === length - 1\n        ? 0\n        : current - 1\n}\n\nexport function getRealIndex(\n  current: number,\n  duplicatedable?: boolean\n): number {\n  return !duplicatedable ? current : current + 1\n}\n\nexport function getPrevIndex(\n  current: number,\n  length: number,\n  duplicatedable?: boolean\n): number | null {\n  if (current < 0)\n    return null\n  return current === 0 ? (duplicatedable ? length - 1 : null) : current - 1\n}\n\nexport function getNextIndex(\n  current: number,\n  length: number,\n  duplicatedable?: boolean\n): number | null {\n  if (current > length - 1)\n    return null\n  return current === length - 1 ? (duplicatedable ? 0 : null) : current + 1\n}\n\nexport function getDisplayTotalView(\n  total: number,\n  duplicatedable?: boolean\n): number {\n  return duplicatedable && total > 3 ? total - 2 : total\n}\n","export function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n  return window.TouchEvent && e instanceof window.TouchEvent\n}\n","import type { Size } from '../interface'\n\nexport * from './duplicatedLogic'\nexport * from './event'\n\nexport function calculateSize(element: HTMLElement, innerOnly?: boolean): Size {\n  let { offsetWidth: width, offsetHeight: height } = element\n  if (innerOnly) {\n    const style = getComputedStyle(element)\n    width\n      = width\n        - Number.parseFloat(style.getPropertyValue('padding-left'))\n        - Number.parseFloat(style.getPropertyValue('padding-right'))\n    height\n      = height\n        - Number.parseFloat(style.getPropertyValue('padding-top'))\n        - Number.parseFloat(style.getPropertyValue('padding-bottom'))\n  }\n  return { width, height }\n}\n\nexport function clampValue(value: number, min: number, max: number): number {\n  return value < min ? min : value > max ? max : value\n}\n\nexport function resolveSpeed(value?: string | number): number {\n  if (value === undefined)\n    return 0\n  if (typeof value === 'number')\n    return value\n  const timeRE = /^((\\d+)?\\.?\\d+?)(ms|s)?$/\n  const match = value.match(timeRE)\n  if (match) {\n    const [, number, , unit = 'ms'] = match\n    return Number(number) * (unit === 'ms' ? 1 : 1000)\n  }\n  return 0\n}\n","import type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  TransitionProps,\n  VNode\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { CarouselTheme, CarouselThemeOverrides } from '../styles'\nimport type { CarouselContextValue } from './CarouselContext'\nimport type {\n  ArrowScopedSlotProps,\n  CarouselArrowSlotProps,\n  CarouselDotSlotProps,\n  CarouselInst,\n  DotScopedSlotProps,\n  Size\n} from './interface'\nimport { off, on } from 'evtd'\nimport { getPreciseEventTarget } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport {\n  cloneVNode,\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  normalizeStyle,\n  onBeforeUnmount,\n  onMounted,\n  onUpdated,\n  ref,\n  toRef,\n  Transition,\n  vShow,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { flatten, keep, resolveSlotWithTypedProps } from '../../_utils'\nimport { carouselLight } from '../styles'\nimport NCarouselArrow from './CarouselArrow'\nimport { provideCarouselContext } from './CarouselContext'\nimport NCarouselDots from './CarouselDots'\nimport NCarouselItem, { isCarouselItem } from './CarouselItem'\nimport style from './styles/index.cssr'\nimport {\n  addDuplicateSlides,\n  calculateSize,\n  clampValue,\n  getDisplayIndex,\n  getDisplayTotalView,\n  getNextIndex,\n  getPrevIndex,\n  getRealIndex,\n  isTouchEvent,\n  resolveSpeed\n} from './utils'\n\nconst transitionProperties = [\n  'transitionDuration',\n  'transitionTimingFunction'\n] as const\n\ntype TransitionStyle = Partial<\n  Pick<CSSProperties, (typeof transitionProperties)[number]>\n>\n\nexport const carouselProps = {\n  ...(useTheme.props as ThemeProps<CarouselTheme, CarouselThemeOverrides>),\n  defaultIndex: {\n    type: Number,\n    default: 0\n  },\n  currentIndex: Number,\n  showArrow: Boolean,\n  dotType: {\n    type: String as PropType<'dot' | 'line'>,\n    default: 'dot'\n  },\n  dotPlacement: {\n    type: String as PropType<'top' | 'bottom' | 'left' | 'right'>,\n    default: 'bottom'\n  },\n  slidesPerView: {\n    type: [Number, String] as PropType<number | 'auto'>,\n    default: 1\n  },\n  spaceBetween: {\n    type: Number,\n    default: 0\n  },\n  centeredSlides: Boolean,\n  direction: {\n    type: String as PropType<'horizontal' | 'vertical'>,\n    default: 'horizontal'\n  },\n  autoplay: Boolean,\n  interval: {\n    type: Number,\n    default: 5000\n  },\n  loop: {\n    type: Boolean,\n    default: true\n  },\n  effect: {\n    type: String as PropType<'slide' | 'fade' | 'card' | 'custom'>,\n    default: 'slide'\n  },\n  showDots: {\n    type: Boolean,\n    default: true\n  },\n  trigger: {\n    type: String as PropType<'click' | 'hover'>,\n    default: 'click'\n  },\n  transitionStyle: {\n    type: Object as PropType<TransitionStyle>,\n    default: (): TransitionStyle => ({\n      transitionDuration: '300ms'\n    })\n  },\n  transitionProps: Object as PropType<TransitionProps>,\n  draggable: Boolean,\n  prevSlideStyle: [Object, String] as PropType<CSSProperties | string>,\n  nextSlideStyle: [Object, String] as PropType<CSSProperties | string>,\n  touchable: {\n    type: Boolean,\n    default: true\n  },\n  mousewheel: Boolean,\n  keyboard: Boolean,\n  'onUpdate:currentIndex': Function as PropType<\n    (currentIndex: number, lastIndex: number) => void\n  >,\n  onUpdateCurrentIndex: Function as PropType<\n    (currentIndex: number, lastIndex: number) => void\n  >\n}\n\nexport type CarouselProps = ExtractPublicPropTypes<typeof carouselProps>\n\nexport interface CarouselSlots {\n  default?: () => VNode[]\n  arrow?: (props: CarouselArrowSlotProps) => VNode[]\n  dots?: (props: CarouselDotSlotProps) => VNode[]\n}\n\n// only one carousel is allowed to trigger touch globally\nlet globalDragging = false\n\nexport default defineComponent({\n  name: 'Carousel',\n  props: carouselProps,\n  slots: Object as SlotsType<CarouselSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    // Dom\n    const selfElRef = ref<HTMLDivElement | null>(null)\n    const slidesElRef = ref<HTMLDivElement | null>(null)\n    const slideElsRef = ref<HTMLElement[]>([])\n    const slideVNodesRef = { value: [] as VNode[] }\n\n    // Computed states\n    const verticalRef = computed(() => props.direction === 'vertical')\n    const sizeAxisRef = computed(() => (verticalRef.value ? 'height' : 'width'))\n    const spaceAxisRef = computed(() =>\n      verticalRef.value ? 'bottom' : 'right'\n    )\n    const sequenceLayoutRef = computed(() => props.effect === 'slide')\n    const duplicatedableRef = computed(\n      // duplicate the copy operation in `slide` mode,\n      // because only its DOM is sequence layout\n      () => props.loop && props.slidesPerView === 1 && sequenceLayoutRef.value\n    )\n    // user wants to control the transition animation\n    const userWantsControlRef = computed(() => props.effect === 'custom')\n\n    // used to calculate total views\n    const displaySlidesPerViewRef = computed(() =>\n      !sequenceLayoutRef.value || props.centeredSlides ? 1 : props.slidesPerView\n    )\n    // used to calculate the size of each slide\n    const realSlidesPerViewRef = computed(() =>\n      userWantsControlRef.value ? 1 : props.slidesPerView\n    )\n    // we automatically calculate total view for special slides per view\n    const autoSlideSizeRef = computed(\n      () =>\n        displaySlidesPerViewRef.value === 'auto'\n        || (props.slidesPerView === 'auto' && props.centeredSlides)\n    )\n\n    // Carousel size\n    const perViewSizeRef = ref({ width: 0, height: 0 })\n    const slideSizesTrigger = ref(0)\n    const slideSizesRef = computed(() => {\n      const { value: slidesEls } = slideElsRef\n      if (!slidesEls.length)\n        return []\n      // eslint-disable-next-line ts/no-unused-expressions\n      slideSizesTrigger.value\n      const { value: autoSlideSize } = autoSlideSizeRef\n      if (autoSlideSize) {\n        return slidesEls.map(slide => calculateSize(slide))\n      }\n      const { value: slidesPerView } = realSlidesPerViewRef\n      const { value: perViewSize } = perViewSizeRef\n      const { value: axis } = sizeAxisRef\n      let axisSize = perViewSize[axis]\n      if (slidesPerView !== 'auto') {\n        const { spaceBetween } = props\n        const remaining = axisSize - (slidesPerView - 1) * spaceBetween\n        const percentage = 1 / Math.max(1, slidesPerView)\n        axisSize = remaining * percentage\n      }\n      const slideSize = { ...perViewSize, [axis]: axisSize }\n      return slidesEls.map(() => slideSize)\n    })\n\n    // The translate required to reach each slide\n    const slideTranlatesRef = computed(() => {\n      const { value: slideSizes } = slideSizesRef\n      if (!slideSizes.length)\n        return []\n      const { centeredSlides, spaceBetween } = props\n      const { value: axis } = sizeAxisRef\n      const { [axis]: perViewSize } = perViewSizeRef.value\n      let previousTranslate = 0\n      return slideSizes.map(({ [axis]: slideSize }) => {\n        let translate = previousTranslate\n        if (centeredSlides) {\n          translate += (slideSize - perViewSize) / 2\n        }\n        previousTranslate += slideSize + spaceBetween\n        return translate\n      })\n    })\n\n    // Styles\n    const isMountedRef = ref(false)\n    const transitionStyleRef = computed(() => {\n      const { transitionStyle } = props\n      return transitionStyle\n        ? keep(transitionStyle, transitionProperties as any)\n        : {}\n    })\n    const speedRef = computed(() =>\n      userWantsControlRef.value\n        ? 0\n        : resolveSpeed(transitionStyleRef.value.transitionDuration)\n    )\n    const slideStylesRef = computed(() => {\n      const { value: slidesEls } = slideElsRef\n      if (!slidesEls.length)\n        return []\n      const useComputedSize = !(\n        autoSlideSizeRef.value || realSlidesPerViewRef.value === 1\n      )\n      const getSlideSize = (index: number): Partial<Size> | undefined => {\n        if (useComputedSize) {\n          const { value: axis } = sizeAxisRef\n          return {\n            [axis]: `${slideSizesRef.value[index][axis]}px`\n          }\n        }\n      }\n      if (userWantsControlRef.value) {\n        // We center each slide when user wants to control the transition animation,\n        // so there is no need to calculate the offset\n        return slidesEls.map((_, i) => getSlideSize(i))\n      }\n      const { effect, spaceBetween } = props\n      const { value: spaceAxis } = spaceAxisRef\n      return slidesEls.reduce<CSSProperties[]>((styles, _, i) => {\n        const style = {\n          ...getSlideSize(i),\n          [`margin-${spaceAxis}`]: `${spaceBetween}px`\n        }\n        styles.push(style)\n        if (isMountedRef.value && (effect === 'fade' || effect === 'card')) {\n          Object.assign(style, transitionStyleRef.value)\n        }\n        return styles\n      }, [])\n    })\n\n    // Total\n    const totalViewRef = computed(() => {\n      const { value: slidesPerView } = displaySlidesPerViewRef\n      const { length: totalSlides } = slideElsRef.value\n      if (slidesPerView !== 'auto') {\n        return Math.max(totalSlides - slidesPerView, 0) + 1\n      }\n      else {\n        const { value: slideSizes } = slideSizesRef\n        const { length } = slideSizes\n        if (!length)\n          return totalSlides\n        const { value: translates } = slideTranlatesRef\n        const { value: axis } = sizeAxisRef\n        const perViewSize = perViewSizeRef.value[axis]\n        let lastViewSize = slideSizes[slideSizes.length - 1][axis]\n        let i = length\n        while (i > 1 && lastViewSize < perViewSize) {\n          i--\n          lastViewSize += translates[i] - translates[i - 1]\n        }\n        return clampValue(i + 1, 1, length)\n      }\n    })\n    const displayTotalViewRef = computed(() =>\n      getDisplayTotalView(totalViewRef.value, duplicatedableRef.value)\n    )\n\n    // Index\n    const defaultRealIndex = getRealIndex(\n      props.defaultIndex,\n      duplicatedableRef.value\n    )\n    const uncontrolledDisplayIndexRef = ref(\n      getDisplayIndex(\n        defaultRealIndex,\n        totalViewRef.value,\n        duplicatedableRef.value\n      )\n    )\n    const mergedDisplayIndexRef = useMergedState(\n      toRef(props, 'currentIndex'),\n      uncontrolledDisplayIndexRef\n    )\n    const realIndexRef = computed(() =>\n      getRealIndex(mergedDisplayIndexRef.value, duplicatedableRef.value)\n    )\n\n    // Reality methods\n    function toRealIndex(index: number): void {\n      index = clampValue(index, 0, totalViewRef.value - 1)\n      const displayIndex = getDisplayIndex(\n        index,\n        totalViewRef.value,\n        duplicatedableRef.value\n      )\n      const { value: lastDisplayIndex } = mergedDisplayIndexRef\n      if (displayIndex !== mergedDisplayIndexRef.value) {\n        uncontrolledDisplayIndexRef.value = displayIndex\n        props['onUpdate:currentIndex']?.(displayIndex, lastDisplayIndex)\n        props.onUpdateCurrentIndex?.(displayIndex, lastDisplayIndex)\n      }\n    }\n    function getRealPrevIndex(\n      index: number = realIndexRef.value\n    ): number | null {\n      return getPrevIndex(index, totalViewRef.value, props.loop)\n    }\n    function getRealNextIndex(\n      index: number = realIndexRef.value\n    ): number | null {\n      return getNextIndex(index, totalViewRef.value, props.loop)\n    }\n    function isRealPrev(slideOrIndex: HTMLElement | number): boolean {\n      const index = getSlideIndex(slideOrIndex)\n      return (\n        index !== null && getRealPrevIndex() === index && totalViewRef.value > 1\n      )\n    }\n    function isRealNext(slideOrIndex: HTMLElement | number): boolean {\n      const index = getSlideIndex(slideOrIndex)\n      return (\n        index !== null && getRealNextIndex() === index && totalViewRef.value > 1\n      )\n    }\n    function isRealActive(slideOrIndex: HTMLElement | number): boolean {\n      return realIndexRef.value === getSlideIndex(slideOrIndex)\n    }\n\n    // Display methods\n    // They are used to deal with the actual values displayed on the UI\n    function isDisplayActive(index: number): boolean {\n      return mergedDisplayIndexRef.value === index\n    }\n    function isPrevDisabled(): boolean {\n      return getRealPrevIndex() === null\n    }\n    function isNextDisabled(): boolean {\n      return getRealNextIndex() === null\n    }\n\n    // To\n    let expectedTransitionDirection = 0\n    function to(index: number): void {\n      const realIndex = clampValue(\n        getRealIndex(index, duplicatedableRef.value),\n        0,\n        totalViewRef.value\n      )\n      if (\n        index !== mergedDisplayIndexRef.value\n        || realIndex !== realIndexRef.value\n      ) {\n        toRealIndex(realIndex)\n      }\n    }\n    function prev(): void {\n      const prevIndex = getRealPrevIndex()\n      if (prevIndex !== null) {\n        expectedTransitionDirection = -1\n        toRealIndex(prevIndex)\n      }\n    }\n    function next(): void {\n      const nextIndex = getRealNextIndex()\n      if (nextIndex !== null) {\n        expectedTransitionDirection = 1\n        toRealIndex(nextIndex)\n      }\n    }\n\n    // Translate to\n    let inTransition = false\n\n    function prevIfSlideTransitionEnd(): void {\n      if (!inTransition || !duplicatedableRef.value)\n        prev()\n    }\n    function nextIfSlideTransitionEnd(): void {\n      if (!inTransition || !duplicatedableRef.value)\n        next()\n    }\n\n    // record the translate of each slide, so that it can be restored at touch\n    let previousTranslate = 0\n    const translateStyleRef = ref({}) as Ref<CSSProperties>\n    function updateTranslate(translate: number, speed = 0): void {\n      translateStyleRef.value = Object.assign({}, transitionStyleRef.value, {\n        transform: verticalRef.value\n          ? `translateY(${-translate}px)`\n          : `translateX(${-translate}px)`,\n        transitionDuration: `${speed}ms`\n      })\n    }\n    function fixTranslate(speed = 0): void {\n      if (sequenceLayoutRef.value) {\n        translateTo(realIndexRef.value, speed)\n      }\n      else if (previousTranslate !== 0) {\n        if (!inTransition && speed > 0) {\n          inTransition = true\n        }\n        updateTranslate((previousTranslate = 0), speed)\n      }\n    }\n    function translateTo(index: number, speed: number): void {\n      const translate = getTranslate(index)\n      if (translate !== previousTranslate && speed > 0) {\n        inTransition = true\n      }\n      previousTranslate = getTranslate(realIndexRef.value)\n      updateTranslate(translate, speed)\n    }\n    function getTranslate(index: number): number {\n      let translate\n      // Deal with auto slides pre view\n      if (index >= totalViewRef.value - 1) {\n        translate = getLastViewTranslate()\n      }\n      else {\n        translate = slideTranlatesRef.value[index] || 0\n      }\n      return translate\n    }\n    function getLastViewTranslate(): number {\n      if (displaySlidesPerViewRef.value === 'auto') {\n        const { value: axis } = sizeAxisRef\n        const { [axis]: perViewSize } = perViewSizeRef.value\n        const { value: translates } = slideTranlatesRef\n        const lastTranslate = translates[translates.length - 1]\n        let overallSize\n        if (lastTranslate === undefined) {\n          overallSize = perViewSize\n        }\n        else {\n          const { value: slideSizes } = slideSizesRef\n          overallSize = lastTranslate + slideSizes[slideSizes.length - 1][axis]\n        }\n        // Bring the last slide to the edge\n        return overallSize - perViewSize\n      }\n      else {\n        const { value: translates } = slideTranlatesRef\n        return translates[totalViewRef.value - 1] || 0\n      }\n    }\n\n    // Provide\n    const carouselContext: CarouselContextValue = {\n      currentIndexRef: mergedDisplayIndexRef,\n      to,\n      prev: prevIfSlideTransitionEnd,\n      next: nextIfSlideTransitionEnd,\n      isVertical: () => verticalRef.value,\n      isHorizontal: () => !verticalRef.value,\n      isPrev: isRealPrev,\n      isNext: isRealNext,\n      isActive: isRealActive,\n      isPrevDisabled,\n      isNextDisabled,\n      getSlideIndex,\n      getSlideStyle,\n      addSlide,\n      removeSlide,\n      onCarouselItemClick\n    }\n    provideCarouselContext(carouselContext)\n    function addSlide(slide?: HTMLElement): void {\n      if (!slide)\n        return\n      slideElsRef.value.push(slide)\n    }\n    function removeSlide(slide?: HTMLElement): void {\n      if (!slide)\n        return\n      const index = getSlideIndex(slide)\n      if (index !== -1) {\n        slideElsRef.value.splice(index, 1)\n      }\n    }\n    function getSlideIndex(slideOrIndex?: HTMLElement | number): number {\n      return typeof slideOrIndex === 'number'\n        ? slideOrIndex\n        : slideOrIndex\n          ? slideElsRef.value.indexOf(slideOrIndex)\n          : -1\n    }\n    function getSlideStyle(\n      slide: HTMLElement | number\n    ): string | Record<string, string | number> | undefined {\n      const index = getSlideIndex(slide)\n      if (index !== -1) {\n        const styles: any[] = [slideStylesRef.value[index]]\n        const isPrev = carouselContext.isPrev(index)\n        const isNext = carouselContext.isNext(index)\n        if (isPrev) {\n          styles.push(props.prevSlideStyle || '')\n        }\n        if (isNext) {\n          styles.push(props.nextSlideStyle || '')\n        }\n        return normalizeStyle(styles)\n      }\n    }\n    // Drag\n    let dragStartX = 0\n    let dragStartY = 0\n    let dragOffset = 0\n    let dragStartTime = 0\n    let dragging = false\n    let isEffectiveDrag = false\n    function onCarouselItemClick(index: number, event: MouseEvent): void {\n      let allowClick = !inTransition && !dragging && !isEffectiveDrag\n      if (props.effect === 'card' && allowClick && !isRealActive(index)) {\n        to(index)\n        allowClick = false\n      }\n      if (!allowClick) {\n        event.preventDefault()\n        event.stopPropagation()\n      }\n    }\n\n    // Autoplay\n    let autoplayTimer: number | null = null\n    function stopAutoplay(): void {\n      if (autoplayTimer) {\n        clearInterval(autoplayTimer)\n        autoplayTimer = null\n      }\n    }\n    function resetAutoplay(): void {\n      stopAutoplay()\n      const disabled = !props.autoplay || displayTotalViewRef.value < 2\n      if (!disabled) {\n        autoplayTimer = window.setInterval(next, props.interval)\n      }\n    }\n\n    function handleTouchstart(event: MouseEvent | TouchEvent): void {\n      if (globalDragging)\n        return\n      if (\n        !slidesElRef.value?.contains(\n          getPreciseEventTarget(event) as Node | null\n        )\n      ) {\n        return\n      }\n      globalDragging = true\n      dragging = true\n      isEffectiveDrag = false\n      dragStartTime = Date.now()\n      stopAutoplay()\n      if (\n        event.type !== 'touchstart'\n        && !(event.target as HTMLElement).isContentEditable\n      ) {\n        event.preventDefault()\n      }\n      const touchEvent = isTouchEvent(event) ? event.touches[0] : event\n      if (verticalRef.value) {\n        dragStartY = touchEvent.clientY\n      }\n      else {\n        dragStartX = touchEvent.clientX\n      }\n      if (props.touchable) {\n        on('touchmove', document, handleTouchmove)\n        on('touchend', document, handleTouchend)\n        on('touchcancel', document, handleTouchend)\n      }\n      if (props.draggable) {\n        on('mousemove', document, handleTouchmove)\n        on('mouseup', document, handleTouchend)\n      }\n    }\n    function handleTouchmove(event: MouseEvent | TouchEvent): void {\n      const { value: vertical } = verticalRef\n      const { value: axis } = sizeAxisRef\n      const touchEvent = isTouchEvent(event) ? event.touches[0] : event\n      const offset = vertical\n        ? touchEvent.clientY - dragStartY\n        : touchEvent.clientX - dragStartX\n      const perViewSize = perViewSizeRef.value[axis]\n      dragOffset = clampValue(offset, -perViewSize, perViewSize)\n      if (event.cancelable) {\n        event.preventDefault()\n      }\n      if (sequenceLayoutRef.value) {\n        updateTranslate(previousTranslate - dragOffset, 0)\n      }\n    }\n    function handleTouchend(): void {\n      const { value: realIndex } = realIndexRef\n      let currentIndex: number | null = realIndex\n      if (!inTransition && dragOffset !== 0 && sequenceLayoutRef.value) {\n        const currentTranslate = previousTranslate - dragOffset\n        const translates = [\n          ...slideTranlatesRef.value.slice(0, totalViewRef.value - 1),\n          getLastViewTranslate()\n        ]\n        let prevOffset: number | null = null\n        for (let i = 0; i < translates.length; i++) {\n          const offset = Math.abs(translates[i] - currentTranslate)\n          if (prevOffset !== null && prevOffset < offset) {\n            break\n          }\n          prevOffset = offset\n          currentIndex = i\n        }\n      }\n      if (currentIndex === realIndex) {\n        const timeElapsed = Date.now() - dragStartTime\n        const { value: axis } = sizeAxisRef\n        const perViewSize = perViewSizeRef.value[axis]\n        // more than 50% width or faster than 0.4px per ms\n        if (dragOffset > perViewSize / 2 || dragOffset / timeElapsed > 0.4) {\n          prev()\n        }\n        else if (\n          dragOffset < -perViewSize / 2\n          || dragOffset / timeElapsed < -0.4\n        ) {\n          next()\n        }\n      }\n      if (currentIndex !== null && currentIndex !== realIndex) {\n        isEffectiveDrag = true\n        toRealIndex(currentIndex)\n        void nextTick(() => {\n          if (\n            !duplicatedableRef.value\n            || uncontrolledDisplayIndexRef.value !== mergedDisplayIndexRef.value\n          ) {\n            fixTranslate(speedRef.value)\n          }\n        })\n      }\n      else {\n        fixTranslate(speedRef.value)\n      }\n      resetDragStatus()\n      resetAutoplay()\n    }\n    function resetDragStatus(): void {\n      if (dragging) {\n        globalDragging = false\n      }\n      dragging = false\n      dragStartX = 0\n      dragStartY = 0\n      dragOffset = 0\n      dragStartTime = 0\n      off('touchmove', document, handleTouchmove)\n      off('touchend', document, handleTouchend)\n      off('touchcancel', document, handleTouchend)\n      off('mousemove', document, handleTouchmove)\n      off('mouseup', document, handleTouchend)\n    }\n\n    function handleTransitionEnd(): void {\n      if (sequenceLayoutRef.value && inTransition) {\n        const { value: realIndex } = realIndexRef\n        translateTo(realIndex, 0)\n      }\n      else {\n        resetAutoplay()\n      }\n      if (sequenceLayoutRef.value) {\n        translateStyleRef.value.transitionDuration = '0ms'\n      }\n      inTransition = false\n    }\n    function handleMousewheel(event: WheelEvent): void {\n      event.preventDefault()\n      if (inTransition)\n        return\n      let { deltaX, deltaY } = event\n      if (event.shiftKey && !deltaX) {\n        deltaX = deltaY\n      }\n      const prevMultiplier = -1\n      const nextMultiplier = 1\n      const m = (deltaX || deltaY) > 0 ? nextMultiplier : prevMultiplier\n      let rx = 0\n      let ry = 0\n      if (verticalRef.value) {\n        ry = m\n      }\n      else {\n        rx = m\n      }\n      const responseStep = 10\n      if (ry * deltaY >= responseStep || rx * deltaX >= responseStep) {\n        if (m === nextMultiplier && !isNextDisabled()) {\n          next()\n        }\n        else if (m === prevMultiplier && !isPrevDisabled()) {\n          prev()\n        }\n      }\n    }\n    function handleResize(): void {\n      perViewSizeRef.value = calculateSize(selfElRef.value as HTMLElement, true)\n      resetAutoplay()\n    }\n    function handleSlideResize(): void {\n      if (autoSlideSizeRef.value) {\n        slideSizesTrigger.value++\n      }\n    }\n    function handleMouseenter(): void {\n      if (props.autoplay) {\n        stopAutoplay()\n      }\n    }\n    function handleMouseleave(): void {\n      if (props.autoplay) {\n        resetAutoplay()\n      }\n    }\n    onMounted(() => {\n      watchEffect(resetAutoplay)\n      requestAnimationFrame(() => (isMountedRef.value = true))\n    })\n    onBeforeUnmount(() => {\n      resetDragStatus()\n      stopAutoplay()\n    })\n    // Fix index when remounting\n    onUpdated(() => {\n      const { value: slidesEls } = slideElsRef\n      const { value: slideVNodes } = slideVNodesRef\n      const indexMap = new Map<HTMLElement, number>()\n      const getDisplayIndex = (el: HTMLElement): number =>\n        indexMap.has(el) ? indexMap.get(el)! : -1\n      let isChanged = false\n      for (let i = 0; i < slidesEls.length; i++) {\n        const index = slideVNodes.findIndex(v => v.el === slidesEls[i])\n        if (index !== i) {\n          isChanged = true\n        }\n        indexMap.set(slidesEls[i], index)\n      }\n      if (isChanged) {\n        slidesEls.sort((a, b) => getDisplayIndex(a) - getDisplayIndex(b))\n      }\n    })\n    watch(\n      realIndexRef,\n      (nextRealIndex, lastRealIndex) => {\n        if (nextRealIndex === lastRealIndex) {\n          expectedTransitionDirection = 0\n          return\n        }\n        resetAutoplay()\n        if (sequenceLayoutRef.value) {\n          if (duplicatedableRef.value) {\n            const { value: length } = totalViewRef\n            if (\n              expectedTransitionDirection === -1\n              && lastRealIndex === 1\n              && nextRealIndex === length - 2\n            ) {\n              nextRealIndex = 0\n            }\n            else if (\n              expectedTransitionDirection === 1\n              && lastRealIndex === length - 2\n              && nextRealIndex === 1\n            ) {\n              nextRealIndex = length - 1\n            }\n          }\n          translateTo(nextRealIndex, speedRef.value)\n        }\n        else {\n          fixTranslate()\n        }\n        expectedTransitionDirection = 0\n      },\n      { immediate: true }\n    )\n    watch(\n      [duplicatedableRef, displaySlidesPerViewRef],\n      () =>\n        void nextTick(() => {\n          toRealIndex(realIndexRef.value)\n        })\n    )\n    watch(\n      slideTranlatesRef,\n      () => {\n        if (sequenceLayoutRef.value) {\n          fixTranslate()\n        }\n      },\n      {\n        deep: true\n      }\n    )\n    watch(sequenceLayoutRef, (value) => {\n      if (!value) {\n        inTransition = false\n        // if the current mode does not support translate, reset the position of the wrapper\n        updateTranslate((previousTranslate = 0))\n      }\n      else {\n        fixTranslate()\n      }\n    })\n    const slidesControlListenersRef = computed(() => {\n      return {\n        onTouchstartPassive: props.touchable ? handleTouchstart : undefined,\n        onMousedown: props.draggable ? handleTouchstart : undefined,\n        onWheel: props.mousewheel ? handleMousewheel : undefined\n      }\n    })\n    const arrowSlotPropsRef = computed<ArrowScopedSlotProps>(() => ({\n      ...keep(carouselContext, [\n        'to',\n        'prev',\n        'next',\n        'isPrevDisabled',\n        'isNextDisabled'\n      ]),\n      total: displayTotalViewRef.value,\n      currentIndex: mergedDisplayIndexRef.value\n    }))\n    const dotSlotPropsRef = computed<DotScopedSlotProps>(() => ({\n      total: displayTotalViewRef.value,\n      currentIndex: mergedDisplayIndexRef.value,\n      to: carouselContext.to\n    }))\n    const caroulseExposedMethod: CarouselInst = {\n      getCurrentIndex: () => mergedDisplayIndexRef.value,\n      to,\n      prev,\n      next\n    }\n    const themeRef = useTheme(\n      'Carousel',\n      '-carousel',\n      style,\n      carouselLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          dotSize,\n          dotColor,\n          dotColorActive,\n          dotColorFocus,\n          dotLineWidth,\n          dotLineWidthActive,\n          arrowColor\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-dot-color': dotColor,\n        '--n-dot-color-focus': dotColorFocus,\n        '--n-dot-color-active': dotColorActive,\n        '--n-dot-size': dotSize,\n        '--n-dot-line-width': dotLineWidth,\n        '--n-dot-line-width-active': dotLineWidthActive,\n        '--n-arrow-color': arrowColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('carousel', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      selfElRef,\n      slidesElRef,\n      slideVNodes: slideVNodesRef,\n      duplicatedable: duplicatedableRef,\n      userWantsControl: userWantsControlRef,\n      autoSlideSize: autoSlideSizeRef,\n      realIndex: realIndexRef,\n      slideStyles: slideStylesRef,\n      translateStyle: translateStyleRef,\n      slidesControlListeners: slidesControlListenersRef,\n      handleTransitionEnd,\n      handleResize,\n      handleSlideResize,\n      handleMouseenter,\n      handleMouseleave,\n      isActive: isDisplayActive,\n      arrowSlotProps: arrowSlotPropsRef,\n      dotSlotProps: dotSlotPropsRef,\n      ...caroulseExposedMethod,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      showArrow,\n      userWantsControl,\n      slideStyles,\n      dotType,\n      dotPlacement,\n      slidesControlListeners,\n      transitionProps = {},\n      arrowSlotProps,\n      dotSlotProps,\n      $slots: { default: defaultSlot, dots: dotsSlot, arrow: arrowSlot }\n    } = this\n    const children = (defaultSlot && flatten(defaultSlot())) || []\n    let slides = filterCarouselItem(children)\n    if (!slides.length) {\n      slides = children.map(ch => (\n        <NCarouselItem>\n          {{\n            default: () => cloneVNode(ch)\n          }}\n        </NCarouselItem>\n      ))\n    }\n    if (this.duplicatedable) {\n      slides = addDuplicateSlides(slides)\n    }\n    this.slideVNodes.value = slides\n    // When users need to customize the size of the slide,\n    // we listen to them to fix the current translate\n    if (this.autoSlideSize) {\n      slides = slides.map(slide => (\n        <VResizeObserver onResize={this.handleSlideResize}>\n          {{\n            default: () => slide\n          }}\n        </VResizeObserver>\n      ))\n    }\n    this.onRender?.()\n    return (\n      <div\n        ref=\"selfElRef\"\n        class={[\n          this.themeClass,\n          `${mergedClsPrefix}-carousel`,\n          this.direction === 'vertical'\n          && `${mergedClsPrefix}-carousel--vertical`,\n          this.showArrow && `${mergedClsPrefix}-carousel--show-arrow`,\n          `${mergedClsPrefix}-carousel--${dotPlacement}`,\n          `${mergedClsPrefix}-carousel--${this.direction}`,\n          `${mergedClsPrefix}-carousel--${this.effect}`,\n          userWantsControl && `${mergedClsPrefix}-carousel--usercontrol`\n        ]}\n        style={this.cssVars as CSSProperties}\n        {...slidesControlListeners}\n        onMouseenter={this.handleMouseenter}\n        onMouseleave={this.handleMouseleave}\n      >\n        <VResizeObserver onResize={this.handleResize}>\n          {{\n            default: () => (\n              <div\n                ref=\"slidesElRef\"\n                class={`${mergedClsPrefix}-carousel__slides`}\n                role=\"listbox\"\n                style={this.translateStyle}\n                onTransitionend={this.handleTransitionEnd}\n              >\n                {userWantsControl\n                  ? slides.map((slide, i) => (\n                      <div style={slideStyles[i]} key={i}>\n                        {withDirectives(\n                          <Transition {...transitionProps}>\n                            {{\n                              default: () => slide\n                            }}\n                          </Transition>,\n                          [[vShow, this.isActive(i)]]\n                        )}\n                      </div>\n                    ))\n                  : slides}\n              </div>\n            )\n          }}\n        </VResizeObserver>\n        {this.showDots\n          && dotSlotProps.total > 1\n          && resolveSlotWithTypedProps(dotsSlot, dotSlotProps, () => [\n            <NCarouselDots\n              key={dotType + dotPlacement}\n              total={dotSlotProps.total}\n              currentIndex={dotSlotProps.currentIndex}\n              dotType={dotType}\n              trigger={this.trigger}\n              keyboard={this.keyboard}\n            />\n          ])}\n        {showArrow\n          && resolveSlotWithTypedProps(arrowSlot, arrowSlotProps, () => [\n            <NCarouselArrow />\n          ])}\n      </div>\n    )\n  }\n})\n\nfunction filterCarouselItem(vnodes: VNode[]): VNode[] {\n  return vnodes.reduce<VNode[]>((carouselItems, vnode) => {\n    if (isCarouselItem(vnode)) {\n      carouselItems.push(vnode)\n    }\n    return carouselItems\n  }, [])\n}\n","export default {\n  sizeSmall: '14px',\n  sizeMedium: '16px',\n  sizeLarge: '18px',\n  labelPadding: '0 8px',\n  labelFontWeight: '400'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    baseColor,\n    inputColorDisabled,\n    cardColor,\n    modalColor,\n    popoverColor,\n    textColorDisabled,\n    borderColor,\n    primaryColor,\n    textColor2,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    borderRadiusSmall,\n    lineHeight\n  } = vars\n  return {\n    ...commonVariables,\n    labelLineHeight: lineHeight,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    borderRadius: borderRadiusSmall,\n    color: baseColor,\n    colorChecked: primaryColor,\n    colorDisabled: inputColorDisabled,\n    colorDisabledChecked: inputColorDisabled,\n    colorTableHeader: cardColor,\n    colorTableHeaderModal: modalColor,\n    colorTableHeaderPopover: popoverColor,\n    checkMarkColor: baseColor,\n    checkMarkColorDisabled: textColorDisabled,\n    checkMarkColorDisabledChecked: textColorDisabled,\n    border: `1px solid ${borderColor}`,\n    borderDisabled: `1px solid ${borderColor}`,\n    borderDisabledChecked: `1px solid ${borderColor}`,\n    borderChecked: `1px solid ${primaryColor}`,\n    borderFocus: `1px solid ${primaryColor}`,\n    boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, { alpha: 0.3 })}`,\n    textColor: textColor2,\n    textColorDisabled\n  }\n}\n\nexport interface CheckboxThemeVars extends ReturnType<typeof self> {}\n\nconst checkboxLight: CheckboxTheme = {\n  name: 'Checkbox',\n  common: commonLight,\n  self\n}\n\nexport interface CheckboxTheme extends Theme<'Checkbox', CheckboxThemeVars> {}\n\nexport interface CheckboxThemeOverrides extends ExtractThemeOverrides<CheckboxTheme> {}\n\nexport default checkboxLight\n","import type { CheckboxTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst checkboxDark: CheckboxTheme = {\n  name: 'Checkbox',\n  common: commonDark,\n  self(vars) {\n    const { cardColor } = vars\n    const commonSelf = self(vars)\n    commonSelf.color = '#0000'\n    commonSelf.checkMarkColor = cardColor\n    return commonSelf\n  }\n}\n\nexport default checkboxDark\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('checkbox', [\n  cM('rtl', `\n    direction: rtl;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const checkboxRtl: RtlItem = {\n  name: 'Checkbox',\n  style: rtlStyle\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'\nimport type { InternalSelectionTheme } from '../../_internal/selection/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { CheckboxTheme } from '../../checkbox/styles'\nimport type { EmptyTheme } from '../../empty/styles'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles'\nimport { internalSelectionLight } from '../../_internal/selection/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { checkboxLight } from '../../checkbox/styles'\nimport { emptyLight } from '../../empty/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    boxShadow2,\n    popoverColor,\n    textColor2,\n    textColor3,\n    primaryColor,\n    textColorDisabled,\n    dividerColor,\n    hoverColor,\n    fontSizeMedium,\n    heightMedium\n  } = vars\n  return {\n    menuBorderRadius: borderRadius,\n    menuColor: popoverColor,\n    menuBoxShadow: boxShadow2,\n    menuDividerColor: dividerColor,\n    menuHeight: 'calc(var(--n-option-height) * 6.6)',\n    optionArrowColor: textColor3,\n    optionHeight: heightMedium,\n    optionFontSize: fontSizeMedium,\n    optionColorHover: hoverColor,\n    optionTextColor: textColor2,\n    optionTextColorActive: primaryColor,\n    optionTextColorDisabled: textColorDisabled,\n    optionCheckMarkColor: primaryColor,\n    loadingColor: primaryColor,\n    columnWidth: '180px'\n  }\n}\n\nexport interface CascaderThemeVars extends ReturnType<typeof self> {}\n\nconst cascaderLight: CascaderTheme = createTheme({\n  name: 'Cascader',\n  common: commonLight,\n  peers: {\n    InternalSelectMenu: internalSelectMenuLight,\n    InternalSelection: internalSelectionLight,\n    Scrollbar: scrollbarLight,\n    Checkbox: checkboxLight,\n    Empty: emptyLight\n  },\n  self\n})\n\nexport interface CascaderTheme extends Theme<\n  'Cascader',\n  CascaderThemeVars,\n  {\n    InternalSelectMenu: InternalSelectMenuTheme\n    InternalSelection: InternalSelectionTheme\n    Scrollbar: ScrollbarTheme\n    Checkbox: CheckboxTheme\n    Empty: EmptyTheme\n  }\n> {}\n\nexport interface CascaderThemeOverrides extends ExtractThemeOverrides<CascaderTheme> {}\n\nexport default cascaderLight\n","import type { CascaderTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { internalSelectMenuDark } from '../../_internal/select-menu/styles'\nimport { internalSelectionDark } from '../../_internal/selection/styles'\nimport { commonDark } from '../../_styles/common'\nimport { checkboxDark } from '../../checkbox/styles'\nimport { emptyLight } from '../../empty/styles'\nimport { self } from './light'\n\nconst cascaderDark: CascaderTheme = {\n  name: 'Cascader',\n  common: commonDark,\n  peers: {\n    InternalSelectMenu: internalSelectMenuDark,\n    InternalSelection: internalSelectionDark,\n    Scrollbar: scrollbarDark,\n    Checkbox: checkboxDark,\n    Empty: emptyLight\n  },\n  self\n}\n\nexport default cascaderDark\n","import type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { useConfig, useFormItem } from '../../_mixins'\nimport { call, createInjectionKey, warnOnce } from '../../_utils'\nimport NCheckbox from './Checkbox'\n\nexport interface CheckboxGroupInjection {\n  checkedCountRef: ComputedRef<number>\n  maxRef: Ref<number | undefined>\n  minRef: Ref<number | undefined>\n  disabledRef: Ref<boolean>\n  valueSetRef: Ref<Set<string | number>>\n  mergedSizeRef: Ref<'small' | 'medium' | 'large'>\n  toggleCheckbox: (checked: boolean, checkboxValue: string | number) => void\n}\n\nexport const checkboxGroupInjectionKey\n  = createInjectionKey<CheckboxGroupInjection>('n-checkbox-group')\n\nexport interface CheckboxGroupOption {\n  label?: string\n  value?: string | number\n  disabled?: boolean\n  [key: string]: unknown\n}\n\nexport const checkboxGroupProps = {\n  min: Number,\n  max: Number,\n  size: String as PropType<'small' | 'medium' | 'large'>,\n  options: Array as PropType<CheckboxGroupOption[]>,\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  valueField: {\n    type: String,\n    default: 'value'\n  },\n  value: Array as PropType<Array<string | number> | null>,\n  defaultValue: {\n    type: Array as PropType<Array<string | number> | null>,\n    default: null\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  'onUpdate:value': [Function, Array] as PropType<\n    MaybeArray<\n      (\n        value: Array<string | number>,\n        meta: {\n          actionType: 'check' | 'uncheck'\n          value: string | number\n        }\n      ) => void\n    >\n  >,\n  onUpdateValue: [Function, Array] as PropType<\n    MaybeArray<\n      (\n        value: Array<string | number>,\n        meta: {\n          actionType: 'check' | 'uncheck'\n          value: string | number\n        }\n      ) => void\n    >\n  >,\n  // deprecated\n  onChange: [Function, Array] as PropType<\n    MaybeArray<(value: Array<string | number>) => void> | undefined\n  >\n} as const\n\nexport type CheckboxGroupProps = ExtractPublicPropTypes<\n  typeof checkboxGroupProps\n>\n\nexport default defineComponent({\n  name: 'CheckboxGroup',\n  props: checkboxGroupProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'checkbox-group',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef } = useConfig(props)\n    const formItem = useFormItem(props)\n    const { mergedSizeRef, mergedDisabledRef } = formItem\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = computed(() => props.value)\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const checkedCount = computed(() => {\n      return mergedValueRef.value?.length || 0\n    })\n\n    const valueSetRef = computed<Set<string | number>>(() => {\n      if (Array.isArray(mergedValueRef.value)) {\n        return new Set(mergedValueRef.value)\n      }\n      return new Set()\n    })\n    function toggleCheckbox(\n      checked: boolean,\n      checkboxValue: string | number\n    ): void {\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      const {\n        onChange,\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue\n      } = props\n\n      if (Array.isArray(mergedValueRef.value)) {\n        const groupValue = Array.from(mergedValueRef.value)\n        const index = groupValue.findIndex(value => value === checkboxValue)\n        if (checked) {\n          if (!~index) {\n            groupValue.push(checkboxValue)\n            if (onUpdateValue) {\n              call(onUpdateValue, groupValue, {\n                actionType: 'check',\n                value: checkboxValue\n              })\n            }\n            if (_onUpdateValue) {\n              call(_onUpdateValue, groupValue, {\n                actionType: 'check',\n                value: checkboxValue\n              })\n            }\n            nTriggerFormInput()\n            nTriggerFormChange()\n            uncontrolledValueRef.value = groupValue\n            // deprecated\n            if (onChange)\n              call(onChange, groupValue)\n          }\n        }\n        else {\n          if (~index) {\n            groupValue.splice(index, 1)\n            if (onUpdateValue) {\n              call(onUpdateValue, groupValue, {\n                actionType: 'uncheck',\n                value: checkboxValue\n              })\n            }\n            if (_onUpdateValue) {\n              call(_onUpdateValue, groupValue, {\n                actionType: 'uncheck',\n                value: checkboxValue\n              })\n            }\n            if (onChange)\n              call(onChange, groupValue) // deprecated\n            uncontrolledValueRef.value = groupValue\n            nTriggerFormInput()\n            nTriggerFormChange()\n          }\n        }\n      }\n      else {\n        if (checked) {\n          if (onUpdateValue) {\n            call(onUpdateValue, [checkboxValue], {\n              actionType: 'check',\n              value: checkboxValue\n            })\n          }\n          if (_onUpdateValue) {\n            call(_onUpdateValue, [checkboxValue], {\n              actionType: 'check',\n              value: checkboxValue\n            })\n          }\n          if (onChange)\n            call(onChange, [checkboxValue]) // deprecated\n          uncontrolledValueRef.value = [checkboxValue]\n          nTriggerFormInput()\n          nTriggerFormChange()\n        }\n        else {\n          if (onUpdateValue) {\n            call(onUpdateValue, [], {\n              actionType: 'uncheck',\n              value: checkboxValue\n            })\n          }\n          if (_onUpdateValue) {\n            call(_onUpdateValue, [], {\n              actionType: 'uncheck',\n              value: checkboxValue\n            })\n          }\n          if (onChange)\n            call(onChange, []) // deprecated\n          uncontrolledValueRef.value = []\n          nTriggerFormInput()\n          nTriggerFormChange()\n        }\n      }\n    }\n    provide(checkboxGroupInjectionKey, {\n      checkedCountRef: checkedCount,\n      maxRef: toRef(props, 'max'),\n      minRef: toRef(props, 'min'),\n      valueSetRef,\n      disabledRef: mergedDisabledRef,\n      mergedSizeRef,\n      toggleCheckbox\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef\n    }\n  },\n  render() {\n    const { options, labelField, valueField } = this.$props\n    return (\n      <div class={`${this.mergedClsPrefix}-checkbox-group`} role=\"group\">\n        {options\n          ? options.map((option) => {\n              const value = option[valueField] as string | number\n              return (\n                <NCheckbox\n                  key={value}\n                  value={value}\n                  disabled={option.disabled}\n                  label={option[labelField] as string | undefined}\n                />\n              )\n            })\n          : this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { VNode } from 'vue'\nimport { h } from 'vue'\n\nexport default (): VNode => (\n  <svg viewBox=\"0 0 64 64\" class=\"check-icon\">\n    <path d=\"M50.42,16.76L22.34,39.45l-8.1-11.46c-1.12-1.58-3.3-1.96-4.88-0.84c-1.58,1.12-1.95,3.3-0.84,4.88l10.26,14.51  c0.56,0.79,1.42,1.31,2.38,1.45c0.16,0.02,0.32,0.03,0.48,0.03c0.8,0,1.57-0.27,2.2-0.78l30.99-25.03c1.5-1.21,1.74-3.42,0.52-4.92  C54.13,15.78,51.93,15.55,50.42,16.76z\" />\n  </svg>\n)\n","import type { VNode } from 'vue'\nimport { h } from 'vue'\n\nexport default (): VNode => (\n  <svg viewBox=\"0 0 100 100\" class=\"line-icon\">\n    <path d=\"M80.2,55.5H21.4c-2.8,0-5.1-2.5-5.1-5.5l0,0c0-3,2.3-5.5,5.1-5.5h58.7c2.8,0,5.1,2.5,5.1,5.5l0,0C85.2,53.1,82.9,55.5,80.2,55.5z\" />\n  </svg>\n)\n","import { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-label-line-height\n// --n-bezier\n// --n-size\n// --n-border\n// --n-border-focus\n// --n-border-checked\n// --n-border-disabled\n// --n-border-disabled-checked\n// --n-box-shadow-focus\n// --n-color\n// --n-color-checked\n// --n-color-table\n// --n-color-table-modal\n// --n-color-disabled\n// --n-color-disabled-checked\n// --n-text-color\n// --n-text-color-disabled\n// --n-check-mark-color\n// --n-check-mark-color-disabled\n// --n-check-mark-color-disabled-checked\n// --n-border-radius\n// --n-font-size\n// --n-label-padding\nexport default c([\n  cB('checkbox', `\n    font-size: var(--n-font-size);\n    outline: none;\n    cursor: pointer;\n    display: inline-flex;\n    flex-wrap: nowrap;\n    align-items: flex-start;\n    word-break: break-word;\n    line-height: var(--n-size);\n    --n-merged-color-table: var(--n-color-table);\n  `, [\n    cM('show-label', 'line-height: var(--n-label-line-height);'),\n    c('&:hover', [\n      cB('checkbox-box', [\n        cE('border', 'border: var(--n-border-checked);')\n      ])\n    ]),\n    c('&:focus:not(:active)', [\n      cB('checkbox-box', [\n        cE('border', `\n          border: var(--n-border-focus);\n          box-shadow: var(--n-box-shadow-focus);\n        `)\n      ])\n    ]),\n    cM('inside-table', [\n      cB('checkbox-box', `\n        background-color: var(--n-merged-color-table);\n      `)\n    ]),\n    cM('checked', [\n      cB('checkbox-box', `\n        background-color: var(--n-color-checked);\n      `, [\n        cB('checkbox-icon', [\n          // if not set width to 100%, safari & old chrome won't display the icon\n          c('.check-icon', `\n            opacity: 1;\n            transform: scale(1);\n          `)\n        ])\n      ])\n    ]),\n    cM('indeterminate', [\n      cB('checkbox-box', [\n        cB('checkbox-icon', [\n          c('.check-icon', `\n            opacity: 0;\n            transform: scale(.5);\n          `),\n          c('.line-icon', `\n            opacity: 1;\n            transform: scale(1);\n          `)\n        ])\n      ])\n    ]),\n    cM('checked, indeterminate', [\n      c('&:focus:not(:active)', [\n        cB('checkbox-box', [\n          cE('border', `\n            border: var(--n-border-checked);\n            box-shadow: var(--n-box-shadow-focus);\n          `)\n        ])\n      ]),\n      cB('checkbox-box', `\n        background-color: var(--n-color-checked);\n        border-left: 0;\n        border-top: 0;\n      `, [\n        cE('border', {\n          border: 'var(--n-border-checked)'\n        })\n      ])\n    ]),\n    cM('disabled', {\n      cursor: 'not-allowed'\n    }, [\n      cM('checked', [\n        cB('checkbox-box', `\n          background-color: var(--n-color-disabled-checked);\n        `, [\n          cE('border', {\n            border: 'var(--n-border-disabled-checked)'\n          }),\n          cB('checkbox-icon', [\n            c('.check-icon, .line-icon', {\n              fill: 'var(--n-check-mark-color-disabled-checked)'\n            })\n          ])\n        ])\n      ]),\n      cB('checkbox-box', `\n        background-color: var(--n-color-disabled);\n      `, [\n        cE('border', `\n          border: var(--n-border-disabled);\n        `),\n        cB('checkbox-icon', [\n          c('.check-icon, .line-icon', `\n            fill: var(--n-check-mark-color-disabled);\n          `)\n        ])\n      ]),\n      cE('label', `\n        color: var(--n-text-color-disabled);\n      `)\n    ]),\n    cB('checkbox-box-wrapper', `\n      position: relative;\n      width: var(--n-size);\n      flex-shrink: 0;\n      flex-grow: 0;\n      user-select: none;\n      -webkit-user-select: none;\n    `),\n    cB('checkbox-box', `\n      position: absolute;\n      left: 0;\n      top: 50%;\n      transform: translateY(-50%);\n      height: var(--n-size);\n      width: var(--n-size);\n      display: inline-block;\n      box-sizing: border-box;\n      border-radius: var(--n-border-radius);\n      background-color: var(--n-color);\n      transition: background-color 0.3s var(--n-bezier);\n    `, [\n      cE('border', `\n        transition:\n          border-color .3s var(--n-bezier),\n          box-shadow .3s var(--n-bezier);\n        border-radius: inherit;\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n        border: var(--n-border);\n      `),\n      cB('checkbox-icon', `\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        position: absolute;\n        left: 1px;\n        right: 1px;\n        top: 1px;\n        bottom: 1px;\n      `, [\n        c('.check-icon, .line-icon', `\n          width: 100%;\n          fill: var(--n-check-mark-color);\n          opacity: 0;\n          transform: scale(0.5);\n          transform-origin: center;\n          transition:\n            fill 0.3s var(--n-bezier),\n            transform 0.3s var(--n-bezier),\n            opacity 0.3s var(--n-bezier),\n            border-color 0.3s var(--n-bezier);\n        `),\n        iconSwitchTransition({\n          left: '1px',\n          top: '1px'\n        })\n      ])\n    ]),\n    cE('label', `\n      color: var(--n-text-color);\n      transition: color .3s var(--n-bezier);\n      user-select: none;\n      -webkit-user-select: none;\n      padding: var(--n-label-padding);\n      font-weight: var(--n-label-font-weight);\n    `, [\n      c('&:empty', {\n        display: 'none'\n      })\n    ])\n  ]),\n  // modal table header checkbox\n  insideModal(\n    cB('checkbox', `\n      --n-merged-color-table: var(--n-color-table-modal);\n    `)\n  ),\n  // popover table header checkbox\n  insidePopover(\n    cB('checkbox', `\n      --n-merged-color-table: var(--n-color-table-popover);\n    `)\n  )\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { CheckboxTheme, CheckboxThemeOverrides } from '../styles'\nimport type {\n  CheckboxInst,\n  OnUpdateChecked,\n  OnUpdateCheckedImpl\n} from './interface'\nimport type { CheckboxSize } from './public-types'\nimport { on } from 'evtd'\nimport { createId } from 'seemly'\nimport { useMemo, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { NIconSwitchTransition } from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, createKey, resolveWrappedSlot, warnOnce } from '../../_utils'\nimport { checkboxLight } from '../styles'\nimport { checkboxGroupInjectionKey } from './CheckboxGroup'\nimport renderCheckMark from './CheckMark'\nimport renderLineMark from './LineMark'\nimport style from './styles/index.cssr'\n\nexport const checkboxProps = {\n  ...(useTheme.props as ThemeProps<CheckboxTheme, CheckboxThemeOverrides>),\n  size: String as PropType<CheckboxSize>,\n  checked: {\n    type: [Boolean, String, Number] as PropType<\n      boolean | string | number | undefined\n    >,\n    default: undefined\n  },\n  defaultChecked: {\n    type: [Boolean, String, Number] as PropType<boolean | string | number>,\n    default: false\n  },\n  value: [String, Number] as PropType<string | number>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  indeterminate: Boolean,\n  label: String,\n  focusable: {\n    type: Boolean,\n    default: true\n  },\n  checkedValue: {\n    type: [Boolean, String, Number],\n    default: true\n  },\n  uncheckedValue: {\n    type: [Boolean, String, Number],\n    default: false\n  },\n  'onUpdate:checked': [Function, Array] as PropType<\n    MaybeArray<OnUpdateChecked>\n  >,\n  onUpdateChecked: [Function, Array] as PropType<MaybeArray<OnUpdateChecked>>,\n  // private\n  privateInsideTable: Boolean,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateChecked>>\n}\n\nexport type CheckboxProps = ExtractPublicPropTypes<typeof checkboxProps>\n\nexport default defineComponent({\n  name: 'Checkbox',\n  props: checkboxProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange) {\n          warnOnce(\n            'checkbox',\n            '`on-change` is deprecated, please use `on-update:checked` instead.'\n          )\n        }\n      })\n    }\n    const NCheckboxGroup = inject(checkboxGroupInjectionKey, null)\n    const selfRef = ref<HTMLDivElement | null>(null)\n    const {\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const uncontrolledCheckedRef = ref(props.defaultChecked)\n    const controlledCheckedRef = toRef(props, 'checked')\n    const mergedCheckedRef = useMergedState(\n      controlledCheckedRef,\n      uncontrolledCheckedRef\n    )\n    const renderedCheckedRef = useMemo(() => {\n      if (NCheckboxGroup) {\n        const groupValueSet = NCheckboxGroup.valueSetRef.value\n        if (groupValueSet && props.value !== undefined) {\n          return groupValueSet.has(props.value)\n        }\n        return false\n      }\n      else {\n        return mergedCheckedRef.value === props.checkedValue\n      }\n    })\n    const formItem = useFormItem(props, {\n      mergedSize(NFormItem) {\n        const { size } = props\n        if (size !== undefined)\n          return size\n        if (NCheckboxGroup) {\n          const { value: mergedSize } = NCheckboxGroup.mergedSizeRef\n          if (mergedSize !== undefined) {\n            return mergedSize\n          }\n        }\n        if (NFormItem) {\n          const { mergedSize } = NFormItem\n          if (mergedSize !== undefined)\n            return mergedSize.value\n        }\n        const configSize = mergedComponentPropsRef?.value?.Checkbox?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      },\n      mergedDisabled(NFormItem) {\n        const { disabled } = props\n        if (disabled !== undefined)\n          return disabled\n        if (NCheckboxGroup) {\n          if (NCheckboxGroup.disabledRef.value)\n            return true\n          const {\n            maxRef: { value: max },\n            checkedCountRef\n          } = NCheckboxGroup\n          if (\n            max !== undefined\n            && checkedCountRef.value >= max\n            && !renderedCheckedRef.value\n          ) {\n            return true\n          }\n          const {\n            minRef: { value: min }\n          } = NCheckboxGroup\n          if (\n            min !== undefined\n            && checkedCountRef.value <= min\n            && renderedCheckedRef.value\n          ) {\n            return true\n          }\n        }\n        if (NFormItem) {\n          return NFormItem.disabled.value\n        }\n        return false\n      }\n    })\n    const { mergedDisabledRef, mergedSizeRef } = formItem\n    const themeRef = useTheme(\n      'Checkbox',\n      '-checkbox',\n      style,\n      checkboxLight,\n      props,\n      mergedClsPrefixRef\n    )\n    function toggle(e: MouseEvent | KeyboardEvent): void {\n      if (NCheckboxGroup && props.value !== undefined) {\n        NCheckboxGroup.toggleCheckbox(!renderedCheckedRef.value, props.value)\n      }\n      else {\n        const {\n          onChange,\n          'onUpdate:checked': _onUpdateCheck,\n          onUpdateChecked\n        } = props\n        const { nTriggerFormInput, nTriggerFormChange } = formItem\n        const nextChecked = renderedCheckedRef.value\n          ? props.uncheckedValue\n          : props.checkedValue\n        if (_onUpdateCheck) {\n          call(_onUpdateCheck as OnUpdateCheckedImpl, nextChecked, e)\n        }\n        if (onUpdateChecked) {\n          call(onUpdateChecked as OnUpdateCheckedImpl, nextChecked, e)\n        }\n        if (onChange)\n          call(onChange as OnUpdateCheckedImpl, nextChecked, e) // deprecated\n        nTriggerFormInput()\n        nTriggerFormChange()\n        uncontrolledCheckedRef.value = nextChecked\n      }\n    }\n    function handleClick(e: MouseEvent): void {\n      if (!mergedDisabledRef.value) {\n        toggle(e)\n      }\n    }\n    function handleKeyUp(e: KeyboardEvent): void {\n      if (mergedDisabledRef.value)\n        return\n      switch (e.key) {\n        case ' ':\n        case 'Enter':\n          toggle(e)\n      }\n    }\n    function handleKeyDown(e: KeyboardEvent): void {\n      switch (e.key) {\n        case ' ':\n          e.preventDefault()\n      }\n    }\n    const exposedMethods: CheckboxInst = {\n      focus: () => {\n        selfRef.value?.focus()\n      },\n      blur: () => {\n        selfRef.value?.blur()\n      }\n    }\n    const rtlEnabledRef = useRtl('Checkbox', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { value: mergedSize } = mergedSizeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          borderRadius,\n          color,\n          colorChecked,\n          colorDisabled,\n          colorTableHeader,\n          colorTableHeaderModal,\n          colorTableHeaderPopover,\n          checkMarkColor,\n          checkMarkColorDisabled,\n          border,\n          borderFocus,\n          borderDisabled,\n          borderChecked,\n          boxShadowFocus,\n          textColor,\n          textColorDisabled,\n          checkMarkColorDisabledChecked,\n          colorDisabledChecked,\n          borderDisabledChecked,\n          labelPadding,\n          labelLineHeight,\n          labelFontWeight,\n          [createKey('fontSize', mergedSize)]: fontSize,\n          [createKey('size', mergedSize)]: size\n        }\n      } = themeRef.value\n      return {\n        '--n-label-line-height': labelLineHeight,\n        '--n-label-font-weight': labelFontWeight,\n        '--n-size': size,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-border': border,\n        '--n-border-checked': borderChecked,\n        '--n-border-focus': borderFocus,\n        '--n-border-disabled': borderDisabled,\n        '--n-border-disabled-checked': borderDisabledChecked,\n        '--n-box-shadow-focus': boxShadowFocus,\n        '--n-color': color,\n        '--n-color-checked': colorChecked,\n        '--n-color-table': colorTableHeader,\n        '--n-color-table-modal': colorTableHeaderModal,\n        '--n-color-table-popover': colorTableHeaderPopover,\n        '--n-color-disabled': colorDisabled,\n        '--n-color-disabled-checked': colorDisabledChecked,\n        '--n-text-color': textColor,\n        '--n-text-color-disabled': textColorDisabled,\n        '--n-check-mark-color': checkMarkColor,\n        '--n-check-mark-color-disabled': checkMarkColorDisabled,\n        '--n-check-mark-color-disabled-checked': checkMarkColorDisabledChecked,\n        '--n-font-size': fontSize,\n        '--n-label-padding': labelPadding\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'checkbox',\n          computed(() => mergedSizeRef.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return Object.assign(formItem, exposedMethods, {\n      rtlEnabled: rtlEnabledRef,\n      selfRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedDisabled: mergedDisabledRef,\n      renderedChecked: renderedCheckedRef,\n      mergedTheme: themeRef,\n      labelId: createId(),\n      handleClick,\n      handleKeyUp,\n      handleKeyDown,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    })\n  },\n  render() {\n    const {\n      $slots,\n      renderedChecked,\n      mergedDisabled,\n      indeterminate,\n      privateInsideTable,\n      cssVars,\n      labelId,\n      label,\n      mergedClsPrefix,\n      focusable,\n      handleKeyUp,\n      handleKeyDown,\n      handleClick\n    } = this\n    this.onRender?.()\n    const labelNode = resolveWrappedSlot($slots.default, (children) => {\n      if (label || children) {\n        return (\n          <span class={`${mergedClsPrefix}-checkbox__label`} id={labelId}>\n            {label || children}\n          </span>\n        )\n      }\n      return null\n    })\n    return (\n      <div\n        ref=\"selfRef\"\n        class={[\n          `${mergedClsPrefix}-checkbox`,\n          this.themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-checkbox--rtl`,\n          renderedChecked && `${mergedClsPrefix}-checkbox--checked`,\n          mergedDisabled && `${mergedClsPrefix}-checkbox--disabled`,\n          indeterminate && `${mergedClsPrefix}-checkbox--indeterminate`,\n          privateInsideTable && `${mergedClsPrefix}-checkbox--inside-table`,\n          labelNode && `${mergedClsPrefix}-checkbox--show-label`\n        ]}\n        tabindex={mergedDisabled || !focusable ? undefined : 0}\n        role=\"checkbox\"\n        aria-checked={indeterminate ? 'mixed' : renderedChecked}\n        aria-labelledby={labelId}\n        style={cssVars as CSSProperties}\n        onKeyup={handleKeyUp}\n        onKeydown={handleKeyDown}\n        onClick={handleClick}\n        onMousedown={() => {\n          on(\n            'selectstart',\n            window,\n            (e: Event): void => {\n              e.preventDefault()\n            },\n            {\n              once: true\n            }\n          )\n        }}\n      >\n        <div class={`${mergedClsPrefix}-checkbox-box-wrapper`}>\n          &nbsp;\n          <div class={`${mergedClsPrefix}-checkbox-box`}>\n            <NIconSwitchTransition>\n              {{\n                default: () =>\n                  this.indeterminate ? (\n                    <div\n                      key=\"indeterminate\"\n                      class={`${mergedClsPrefix}-checkbox-icon`}\n                    >\n                      {renderLineMark()}\n                    </div>\n                  ) : (\n                    <div key=\"check\" class={`${mergedClsPrefix}-checkbox-icon`}>\n                      {renderCheckMark()}\n                    </div>\n                  )\n              }}\n            </NIconSwitchTransition>\n            <div class={`${mergedClsPrefix}-checkbox-box__border`} />\n          </div>\n        </div>\n        {labelNode}\n      </div>\n    )\n  }\n})\n","import type { CheckStrategy, TreeNode } from 'treemate'\nimport type { CSSProperties, Ref, Slots, VNode, VNodeChild } from 'vue'\nimport type { ScrollbarProps } from '../../_internal'\nimport type { MergedTheme } from '../../_mixins'\nimport type { NLocale } from '../../locales'\nimport type { CascaderTheme } from '../styles'\nimport type { CascaderSpinProps } from './public-types'\nimport { createInjectionKey } from '../../_utils'\n\nexport type ValueAtom = string | number\nexport type Value = ValueAtom | ValueAtom[]\n\nexport type Key = ValueAtom\n\nexport interface CascaderOption {\n  label?: string\n  value?: ValueAtom\n  disabled?: boolean\n  children?: CascaderOption[]\n  [key: string]: unknown\n}\n\nexport type ExpandTrigger = 'hover' | 'click'\n\nexport type TmNode = TreeNode<CascaderOption>\n\nexport type Filter = (\n  pattern: string,\n  option: CascaderOption,\n  path: CascaderOption[]\n) => boolean\n\nexport type OnLoad = (option: CascaderOption) => Promise<void>\n\nexport type OnUpdateValue = (\n  value: string\n    & number\n    & string[]\n    & number[]\n    & Array<string | number>\n    & (string | null)\n    & (number | null)\n    & (string[] | null)\n    & (number[] | null)\n    & (Array<string | number> | null),\n  option: null\n    & CascaderOption\n    & CascaderOption[]\n    & Array<CascaderOption | null>,\n  path: null & CascaderOption[] & Array<CascaderOption[] | null>\n) => void\n\nexport type OnUpdateValueImpl = (\n  value: Value | null,\n  option: CascaderOption | null | Array<CascaderOption | null>,\n  path: Array<CascaderOption[] | null> | CascaderOption[] | null\n) => void\n\nexport type MenuModel = TmNode[][]\n\nexport interface CascaderInjection {\n  slots: Slots\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<CascaderTheme>>\n  mergedValueRef: Ref<Value | null>\n  checkedKeysRef: Ref<Key[]>\n  indeterminateKeysRef: Ref<Key[]>\n  hoverKeyPathRef: Ref<Key[]>\n  mergedCheckStrategyRef: Ref<CheckStrategy>\n  multipleRef: Ref<boolean>\n  keyboardKeyRef: Ref<Key | null>\n  hoverKeyRef: Ref<Key | null>\n  remoteRef: Ref<boolean>\n  loadingKeySetRef: Ref<Set<Key>>\n  expandTriggerRef: Ref<ExpandTrigger>\n  isMountedRef: Ref<boolean>\n  cascadeRef: Ref<boolean>\n  onLoadRef: Ref<((value: CascaderOption) => Promise<void>) | undefined>\n  localeRef: Ref<NLocale['Cascader']>\n  virtualScrollRef: Ref<boolean>\n  optionHeightRef: Ref<string>\n  labelFieldRef: Ref<string>\n  showCheckboxRef: Ref<boolean>\n  getColumnStyleRef: Ref<\n    ((detail: { level: number }) => string | CSSProperties) | undefined\n  >\n  renderPrefixRef: Ref<\n    | ((info: {\n      option: CascaderOption\n      checked: boolean\n      node: VNode | null\n    }) => VNodeChild)\n    | undefined\n  >\n  renderSuffixRef: Ref<\n    | ((info: {\n      option: CascaderOption\n      checked: boolean\n      node: VNode | null\n    }) => VNodeChild)\n    | undefined\n  >\n  syncCascaderMenuPosition: () => void\n  syncSelectMenuPosition: () => void\n  updateKeyboardKey: (value: Key | null) => void\n  updateHoverKey: (value: Key | null) => void\n  addLoadingKey: (value: Key) => void\n  deleteLoadingKey: (value: Key) => void\n  doCheck: (value: Key) => void\n  doUncheck: (value: Key) => void\n  closeMenu: (returnFocus?: boolean) => void\n  handleSelectMenuClickOutside: (e: MouseEvent) => void\n  handleCascaderMenuClickOutside: (e: MouseEvent) => void\n  renderLabelRef: Ref<\n    ((option: CascaderOption, checked: boolean) => VNodeChild) | undefined\n  >\n  spinPropsRef: Ref<CascaderSpinProps | undefined>\n  scrollbarPropsRef: Ref<ScrollbarProps | undefined>\n  clearPattern: () => void\n}\n\nexport interface CascaderSubmenuInstance {\n  scroll: (index: number, elSize: number) => void\n}\n\nexport interface CascaderMenuExposedMethods {\n  scroll: (depth: number, index: number, elSize: number) => void\n  showErrorMessage: (label: string) => void\n}\n\nexport type CascaderMenuInstance = {\n  $el: HTMLElement\n} & CascaderMenuExposedMethods\n\nexport interface SelectMenuInstance {\n  prev: () => void\n  next: () => void\n  enter: () => boolean\n}\n\nexport const cascaderInjectionKey\n  = createInjectionKey<CascaderInjection>('n-cascader')\n\nexport interface CascaderInst {\n  focus: () => void\n  blur: () => void\n  getCheckedData: () => { keys: Key[], options: Array<CascaderOption | null> }\n  getIndeterminateData: () => {\n    keys: Key[]\n    options: Array<CascaderOption | null>\n  }\n}\n","import type { PropType, VNode } from 'vue'\nimport type { TmNode } from './interface'\nimport { happensIn } from 'seemly'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, Transition } from 'vue'\nimport { NBaseIcon, NBaseLoading } from '../../_internal'\nimport { CheckmarkIcon, ChevronRightIcon } from '../../_internal/icons'\nimport { NCheckbox } from '../../checkbox'\nimport { cascaderInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NCascaderOption',\n  props: {\n    tmNode: {\n      type: Object as PropType<TmNode>,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      expandTriggerRef,\n      remoteRef,\n      multipleRef,\n      mergedValueRef,\n      checkedKeysRef,\n      indeterminateKeysRef,\n      hoverKeyPathRef,\n      keyboardKeyRef,\n      loadingKeySetRef,\n      cascadeRef,\n      mergedCheckStrategyRef,\n      onLoadRef,\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      labelFieldRef,\n      showCheckboxRef,\n      renderPrefixRef,\n      renderSuffixRef,\n      spinPropsRef,\n      updateHoverKey,\n      updateKeyboardKey,\n      addLoadingKey,\n      deleteLoadingKey,\n      closeMenu,\n      doCheck,\n      doUncheck,\n      renderLabelRef\n    } = inject(cascaderInjectionKey)!\n    const valueRef = computed(() => props.tmNode.key)\n    const useHoverTriggerRef = computed(() => {\n      const { value: expandTrigger } = expandTriggerRef\n      const { value: remote } = remoteRef\n      return !remote && expandTrigger === 'hover'\n    })\n    const mergedHandleMouseEnterRef = computed(() => {\n      if (useHoverTriggerRef.value) {\n        return handleMouseEnter\n      }\n      return undefined\n    })\n    const mergedHandleMouseMoveRef = computed(() => {\n      if (useHoverTriggerRef.value) {\n        return handleMouseMove\n      }\n      return undefined\n    })\n    const checkedRef = useMemo(() => {\n      const { value: multiple } = multipleRef\n      if (!multiple)\n        return mergedValueRef.value === valueRef.value\n      return checkedKeysRef.value.includes(valueRef.value)\n    })\n    const indeterminateRef = useMemo(() => {\n      if (!multipleRef.value)\n        return false\n      return indeterminateKeysRef.value.includes(valueRef.value)\n    })\n    const hoverPendingRef = useMemo(() => {\n      return hoverKeyPathRef.value.includes(valueRef.value)\n    })\n    const keyboardPendingRef = useMemo(() => {\n      const { value: keyboardKey } = keyboardKeyRef\n      if (keyboardKey === null)\n        return false\n      return keyboardKey === valueRef.value\n    })\n    const isLoadingRef = useMemo(() => {\n      if (remoteRef.value) {\n        return loadingKeySetRef.value.has(valueRef.value)\n      }\n      return false\n    })\n    const isLeafRef = computed(() => props.tmNode.isLeaf)\n    const disabledRef = computed(() => props.tmNode.disabled)\n    const labelRef = computed(\n      () => (props.tmNode.rawNode as any)[labelFieldRef.value]\n    )\n    const isShallowLoadedRef = computed(() => {\n      return props.tmNode.shallowLoaded\n    })\n    function handleClick(e: MouseEvent): void {\n      if (disabledRef.value)\n        return\n      const { value: remote } = remoteRef\n      const { value: loadingKeySet } = loadingKeySetRef\n      const { value: onLoad } = onLoadRef\n      const { value } = valueRef\n      const { value: isLeaf } = isLeafRef\n      const { value: isShallowLoaded } = isShallowLoadedRef\n      if (!happensIn(e, 'checkbox')) {\n        if (remote && !isShallowLoaded && !loadingKeySet.has(value) && onLoad) {\n          addLoadingKey(value)\n          onLoad(props.tmNode.rawNode)\n            .then(() => {\n              deleteLoadingKey(value)\n            })\n            .catch(() => {\n              deleteLoadingKey(value)\n            })\n        }\n        updateHoverKey(value)\n        updateKeyboardKey(value)\n      }\n      if (isLeaf) {\n        toggleCheckbox()\n      }\n    }\n    function handleMouseEnter(): void {\n      if (!useHoverTriggerRef.value || disabledRef.value)\n        return\n      const { value } = valueRef\n      updateHoverKey(value)\n      updateKeyboardKey(value)\n    }\n    function handleMouseMove(): void {\n      if (!useHoverTriggerRef.value)\n        return\n      handleMouseEnter()\n    }\n    function handleCheckboxUpdateValue(): void {\n      const { value: isLeaf } = isLeafRef\n      if (!isLeaf)\n        toggleCheckbox()\n    }\n    function toggleCheckbox(): void {\n      const { value: multiple } = multipleRef\n      const { value } = valueRef\n      if (multiple) {\n        if (indeterminateRef.value || checkedRef.value) {\n          doUncheck(value)\n        }\n        else {\n          doCheck(value)\n        }\n      }\n      else {\n        doCheck(value)\n        closeMenu(true)\n      }\n    }\n    return {\n      checkStrategy: mergedCheckStrategyRef,\n      multiple: multipleRef,\n      cascade: cascadeRef,\n      checked: checkedRef,\n      indeterminate: indeterminateRef,\n      hoverPending: hoverPendingRef,\n      keyboardPending: keyboardPendingRef,\n      isLoading: isLoadingRef,\n      showCheckbox: showCheckboxRef,\n      isLeaf: isLeafRef,\n      disabled: disabledRef,\n      label: labelRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef,\n      spinProps: spinPropsRef,\n      handleClick,\n      handleCheckboxUpdateValue,\n      mergedHandleMouseEnter: mergedHandleMouseEnterRef,\n      mergedHandleMouseMove: mergedHandleMouseMoveRef,\n      renderLabel: renderLabelRef,\n      renderPrefix: renderPrefixRef,\n      renderSuffix: renderSuffixRef\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      showCheckbox,\n      renderLabel,\n      renderPrefix,\n      renderSuffix\n    } = this\n\n    let prefixNode: VNode | null = null\n    if (showCheckbox || renderPrefix) {\n      const originalNode = this.showCheckbox ? (\n        <NCheckbox\n          focusable={false}\n          data-checkbox\n          disabled={this.disabled}\n          checked={this.checked}\n          indeterminate={this.indeterminate}\n          theme={this.mergedTheme.peers.Checkbox}\n          themeOverrides={this.mergedTheme.peerOverrides.Checkbox}\n          onUpdateChecked={this.handleCheckboxUpdateValue}\n        />\n      ) : null\n      prefixNode = (\n        <div class={`${mergedClsPrefix}-cascader-option__prefix`}>\n          {renderPrefix\n            ? renderPrefix({\n                option: this.tmNode.rawNode,\n                checked: this.checked,\n                node: originalNode\n              })\n            : originalNode}\n        </div>\n      )\n    }\n    let suffixNode: VNode | null = null\n    const originalSuffixChild = (\n      <div class={`${mergedClsPrefix}-cascader-option-icon-placeholder`}>\n        {!this.isLeaf ? (\n          <NBaseLoading\n            clsPrefix={mergedClsPrefix}\n            scale={0.85}\n            strokeWidth={24}\n            show={this.isLoading}\n            class={`${mergedClsPrefix}-cascader-option-icon`}\n            {...this.spinProps}\n          >\n            {{\n              default: () => (\n                <NBaseIcon\n                  clsPrefix={mergedClsPrefix}\n                  key=\"arrow\"\n                  class={`${mergedClsPrefix}-cascader-option-icon ${mergedClsPrefix}-cascader-option-icon--arrow`}\n                >\n                  {{\n                    default: () => <ChevronRightIcon />\n                  }}\n                </NBaseIcon>\n              )\n            }}\n          </NBaseLoading>\n        ) : this.checkStrategy === 'child'\n          && !(this.multiple && this.cascade) ? (\n              <Transition name=\"fade-in-scale-up-transition\">\n                {{\n                  default: () =>\n                    this.checked ? (\n                      <NBaseIcon\n                        clsPrefix={mergedClsPrefix}\n                        class={`${mergedClsPrefix}-cascader-option-icon ${mergedClsPrefix}-cascader-option-icon--checkmark`}\n                      >\n                        {{ default: () => <CheckmarkIcon /> }}\n                      </NBaseIcon>\n                    ) : null\n                }}\n              </Transition>\n            ) : null}\n      </div>\n    )\n    suffixNode = (\n      <div class={`${mergedClsPrefix}-cascader-option__suffix`}>\n        {renderSuffix\n          ? renderSuffix({\n              option: this.tmNode.rawNode,\n              checked: this.checked,\n              node: originalSuffixChild\n            })\n          : originalSuffixChild}\n      </div>\n    )\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-cascader-option`,\n          this.keyboardPending\n          || (this.hoverPending\n            && `${mergedClsPrefix}-cascader-option--pending`),\n          this.disabled && `${mergedClsPrefix}-cascader-option--disabled`,\n          this.showCheckbox && `${mergedClsPrefix}-cascader-option--show-prefix`\n        ]}\n        onMouseenter={this.mergedHandleMouseEnter}\n        onMousemove={this.mergedHandleMouseMove}\n        onClick={this.handleClick}\n      >\n        {prefixNode}\n        <span class={`${mergedClsPrefix}-cascader-option__label`}>\n          {renderLabel\n            ? renderLabel(this.tmNode.rawNode, this.checked)\n            : this.label}\n        </span>\n        {suffixNode}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { CascaderSubmenuInstance, TmNode } from './interface'\nimport { depx } from 'seemly'\nimport { computed, defineComponent, h, inject, ref } from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NScrollbar } from '../../_internal'\nimport NCascaderOption from './CascaderOption'\nimport { cascaderInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'CascaderSubmenu',\n  props: {\n    depth: {\n      type: Number,\n      required: true\n    },\n    tmNodes: {\n      type: Array as PropType<TmNode[]>,\n      required: true\n    }\n  },\n  setup() {\n    const {\n      virtualScrollRef,\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      optionHeightRef\n    } = inject(cascaderInjectionKey)!\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n    const vlInstRef = ref<VirtualListInst | null>(null)\n    const inst: CascaderSubmenuInstance = {\n      scroll(index: number, elSize: number) {\n        if (virtualScrollRef.value) {\n          vlInstRef.value?.scrollTo({\n            index\n          })\n        }\n        else {\n          scrollbarInstRef.value?.scrollTo({\n            index,\n            elSize\n          })\n        }\n      }\n    }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef,\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      vlInstRef: vlInstRef as unknown,\n      virtualScroll: virtualScrollRef,\n      itemSize: computed(() => depx(optionHeightRef.value)),\n      handleVlScroll: () => {\n        scrollbarInstRef.value?.sync()\n      },\n      getVlContainer: () => {\n        return vlInstRef.value?.listElRef\n      },\n      getVlContent: () => {\n        return vlInstRef.value?.itemsElRef\n      },\n      ...inst\n    }\n  },\n  render() {\n    const { mergedClsPrefix, mergedTheme, virtualScroll } = this\n    return (\n      <div\n        class={[\n          virtualScroll && `${mergedClsPrefix}-cascader-submenu--virtual`,\n          `${mergedClsPrefix}-cascader-submenu`\n        ]}\n      >\n        <NScrollbar\n          ref=\"scrollbarInstRef\"\n          theme={mergedTheme.peers.Scrollbar}\n          themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n          container={virtualScroll ? this.getVlContainer : undefined}\n          content={virtualScroll ? this.getVlContent : undefined}\n        >\n          {{\n            default: () =>\n              virtualScroll ? (\n                <VirtualList\n                  items={this.tmNodes}\n                  itemSize={this.itemSize}\n                  onScroll={this.handleVlScroll}\n                  showScrollbar={false}\n                  ref=\"vlInstRef\"\n                >\n                  {{\n                    default: ({ item: tmNode }: { item: TmNode }) => (\n                      <NCascaderOption key={tmNode.key} tmNode={tmNode} />\n                    )\n                  }}\n                </VirtualList>\n              ) : (\n                this.tmNodes.map(tmNode => (\n                  <NCascaderOption key={tmNode.key} tmNode={tmNode} />\n                ))\n              )\n          }}\n        </NScrollbar>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { MenuMaskRef } from '../../_internal/menu-mask'\nimport type {\n  CascaderMenuExposedMethods,\n  CascaderSubmenuInstance,\n  MenuModel,\n  Value\n} from './interface'\nimport { clickoutside } from 'vdirs'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  ref,\n  Transition,\n  withDirectives\n} from 'vue'\nimport { NBaseMenuMask } from '../../_internal'\nimport FocusDetector from '../../_internal/focus-detector'\nimport { useConfig } from '../../_mixins'\nimport { resolveSlot, resolveWrappedSlot, useOnResize } from '../../_utils'\nimport { NEmpty } from '../../empty'\nimport NCascaderSubmenu from './CascaderSubmenu'\nimport { cascaderInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NCascaderMenu',\n  props: {\n    value: [String, Number, Array] as PropType<Value | null>,\n    placement: {\n      type: String as PropType<FollowerPlacement>,\n      default: 'bottom-start'\n    },\n    show: Boolean,\n    menuModel: {\n      type: Array as PropType<MenuModel>,\n      required: true\n    },\n    loading: Boolean,\n    onFocus: {\n      type: Function as PropType<(e: FocusEvent) => void>,\n      required: true\n    },\n    onBlur: {\n      type: Function as PropType<(e: FocusEvent) => void>,\n      required: true\n    },\n    onKeydown: {\n      type: Function as PropType<(e: KeyboardEvent) => void>,\n      required: true\n    },\n    onMousedown: {\n      type: Function as PropType<(e: MouseEvent) => void>,\n      required: true\n    },\n    onTabout: {\n      type: Function as PropType<() => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      localeRef,\n      isMountedRef,\n      mergedClsPrefixRef,\n      syncCascaderMenuPosition,\n      handleCascaderMenuClickOutside,\n      mergedThemeRef,\n      getColumnStyleRef\n    } = inject(cascaderInjectionKey)!\n    const { mergedComponentPropsRef } = useConfig()\n    const submenuInstRefs: CascaderSubmenuInstance[] = []\n    const maskInstRef = ref<MenuMaskRef | null>(null)\n    const selfElRef = ref<HTMLElement | null>(null)\n    function handleResize(): void {\n      syncCascaderMenuPosition()\n    }\n    useOnResize(selfElRef, handleResize)\n    function showErrorMessage(label: string): void {\n      const {\n        value: { loadingRequiredMessage }\n      } = localeRef\n      maskInstRef.value?.showOnce(loadingRequiredMessage(label))\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      handleCascaderMenuClickOutside(e)\n    }\n    function handleFocusin(e: FocusEvent): void {\n      const { value: selfEl } = selfElRef\n      if (!selfEl)\n        return\n      if (!selfEl.contains(e.relatedTarget as Node)) {\n        props.onFocus(e)\n      }\n    }\n    function handleFocusout(e: FocusEvent): void {\n      const { value: selfEl } = selfElRef\n      if (!selfEl)\n        return\n      if (!selfEl.contains(e.relatedTarget as Node)) {\n        props.onBlur(e)\n      }\n    }\n    const exposedRef: CascaderMenuExposedMethods = {\n      scroll(depth: number, index: number, elSize: number) {\n        const submenuInst = submenuInstRefs[depth]\n        if (submenuInst) {\n          submenuInst.scroll(index, elSize)\n        }\n      },\n      showErrorMessage\n    }\n    return {\n      isMounted: isMountedRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      selfElRef,\n      submenuInstRefs,\n      // reduce dts: string ref only, type unused in render\n      maskInstRef: maskInstRef as unknown,\n      mergedTheme: mergedThemeRef,\n      mergedRenderEmpty: computed(() => {\n        return mergedComponentPropsRef?.value?.Cascader?.renderEmpty\n      }),\n      getColumnStyle: getColumnStyleRef,\n      handleFocusin,\n      handleFocusout,\n      handleClickOutside,\n      ...exposedRef\n    }\n  },\n  render() {\n    const { submenuInstRefs, mergedClsPrefix, mergedTheme } = this\n    return (\n      <Transition name=\"fade-in-scale-up-transition\" appear={this.isMounted}>\n        {{\n          default: () => {\n            if (!this.show)\n              return null\n            return withDirectives(\n              <div\n                tabindex=\"0\"\n                ref=\"selfElRef\"\n                class={`${mergedClsPrefix}-cascader-menu`}\n                onMousedown={this.onMousedown}\n                onFocusin={this.handleFocusin}\n                onFocusout={this.handleFocusout}\n                onKeydown={this.onKeydown}\n              >\n                {this.menuModel[0].length ? (\n                  <div class={`${mergedClsPrefix}-cascader-submenu-wrapper`}>\n                    {this.menuModel.map((submenuOptions, index) => (\n                      <NCascaderSubmenu\n                        style={this.getColumnStyle?.({ level: index })}\n                        ref={\n                          ((instance: CascaderSubmenuInstance) => {\n                            if (instance) {\n                              submenuInstRefs[index] = instance\n                            }\n                          }) as any\n                        }\n                        key={index}\n                        tmNodes={submenuOptions}\n                        depth={index + 1}\n                      />\n                    ))}\n                    <NBaseMenuMask\n                      clsPrefix={mergedClsPrefix}\n                      ref=\"maskInstRef\"\n                    />\n                  </div>\n                ) : (\n                  <div class={`${mergedClsPrefix}-cascader-menu__empty`}>\n                    {resolveSlot(this.$slots.empty, () => {\n                      return [\n                        this.mergedRenderEmpty?.() || (\n                          <NEmpty\n                            theme={mergedTheme.peers.Empty}\n                            themeOverrides={mergedTheme.peerOverrides.Empty}\n                          />\n                        )\n                      ]\n                    })}\n                  </div>\n                )}\n                {resolveWrappedSlot(\n                  this.$slots.action,\n                  children =>\n                    children && (\n                      <div\n                        class={`${mergedClsPrefix}-cascader-menu-action`}\n                        data-action\n                      >\n                        {children}\n                      </div>\n                    )\n                )}\n                <FocusDetector onFocus={this.onTabout} />\n              </div>,\n              [\n                [\n                  clickoutside,\n                  this.handleClickOutside,\n                  undefined,\n                  { capture: true }\n                ]\n              ]\n            )\n          }\n        }}\n      </Transition>\n    )\n  }\n})\n","import type { SelectBaseOption } from '../../select/src/interface'\nimport type { CascaderOption, TmNode } from './interface'\n\nfunction getRawNodePath(tmNodes: TmNode[]): CascaderOption[]\nfunction getRawNodePath(tmNodes: TmNode[] | undefined): CascaderOption[] | null\nfunction getRawNodePath(\n  tmNodes: TmNode[] | undefined\n): CascaderOption[] | null {\n  if (!tmNodes)\n    return null\n  return tmNodes.map(tmNode => tmNode.rawNode)\n}\n\nexport { getRawNodePath }\n\nfunction createSelectOptions(\n  tmNodes: TmNode[],\n  checkStrategyIsChild: boolean,\n  labelField: string,\n  separator: string\n): Array<\n  SelectBaseOption & { rawNode: CascaderOption, path: CascaderOption[] }\n> {\n  const selectOptions: Array<\n    SelectBaseOption & { rawNode: CascaderOption, path: CascaderOption[] }\n  > = []\n  const path: CascaderOption[] = []\n  function traverse(_tmNodes: TmNode[]): void {\n    for (const tmNode of _tmNodes) {\n      if (tmNode.disabled)\n        continue\n      const { rawNode } = tmNode\n      path.push(rawNode)\n      if (tmNode.isLeaf || !checkStrategyIsChild) {\n        selectOptions.push({\n          label: getPathLabel(tmNode, separator, labelField),\n          value: tmNode.key,\n          rawNode: tmNode.rawNode,\n          path: Array.from(path)\n        })\n      }\n      if (!tmNode.isLeaf && tmNode.children) {\n        traverse(tmNode.children)\n      }\n      path.pop()\n    }\n  }\n  traverse(tmNodes)\n  return selectOptions\n}\n\nfunction getPathLabel(\n  node: TmNode | null,\n  separator: string,\n  labelField: string\n): string {\n  const path: string[] = []\n  while (node) {\n    path.push((node.rawNode as any)[labelField] as string)\n    node = node.parent\n  }\n  return path.reverse().join(separator)\n}\n\nexport { createSelectOptions, getPathLabel }\n","import type { TreeNode } from 'treemate'\nimport type { PropType } from 'vue'\nimport type { InternalSelectMenuRef } from '../../_internal'\nimport type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption\n} from '../../select/src/interface'\nimport type {\n  CascaderOption,\n  Filter,\n  SelectMenuInstance,\n  TmNode,\n  Value\n} from './interface'\nimport { createTreeMate } from 'treemate'\nimport { clickoutside } from 'vdirs'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  ref,\n  Transition,\n  withDirectives\n} from 'vue'\nimport { NInternalSelectMenu } from '../../_internal'\nimport { resolveSlot } from '../../_utils'\nimport { createTmOptions } from '../../select/src/utils'\nimport { cascaderInjectionKey } from './interface'\nimport { createSelectOptions } from './utils'\n\nexport default defineComponent({\n  name: 'NCascaderSelectMenu',\n  props: {\n    value: {\n      type: [String, Number, Array] as PropType<Value | null>,\n      default: null\n    },\n    show: Boolean,\n    pattern: {\n      type: String,\n      default: ''\n    },\n    multiple: Boolean,\n    tmNodes: {\n      type: Array as PropType<TmNode[]>,\n      default: () => []\n    },\n    filter: Function as PropType<Filter>,\n    labelField: {\n      type: String,\n      required: true\n    },\n    separator: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      isMountedRef,\n      mergedValueRef,\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      mergedCheckStrategyRef,\n      slots: cascaderSlots,\n      syncSelectMenuPosition,\n      closeMenu,\n      handleSelectMenuClickOutside,\n      doUncheck: cascaderDoUncheck,\n      doCheck: cascaderDoCheck,\n      scrollbarPropsRef,\n      clearPattern\n    } = inject(cascaderInjectionKey)!\n    const menuInstRef = ref<InternalSelectMenuRef | null>(null)\n    const selectOptionsRef = computed(() => {\n      return createSelectOptions(\n        props.tmNodes,\n        mergedCheckStrategyRef.value === 'child',\n        props.labelField,\n        props.separator\n      )\n    })\n    const mergedFilterRef = computed(() => {\n      const { filter } = props\n      if (filter)\n        return filter\n      const { labelField } = props\n      return (pattern: string, _: CascaderOption, path: CascaderOption[]) =>\n        path.some(\n          option =>\n            option[labelField]\n            && ~(option[labelField] as any)\n              .toLowerCase()\n              .indexOf(pattern.toLowerCase())\n        )\n    })\n    const filteredSelectOptionsRef = computed(() => {\n      const { pattern } = props\n      const { value: mergedFilter } = mergedFilterRef\n      return (\n        pattern\n          ? selectOptionsRef.value.filter((option) => {\n              return mergedFilter(pattern, option.rawNode, option.path)\n            })\n          : selectOptionsRef.value\n      ).map(option => ({\n        value: option.value,\n        label: option.label\n      }))\n    })\n    const selectTreeMateRef = computed(() => {\n      return createTreeMate<\n        SelectBaseOption,\n        SelectGroupOption,\n        SelectIgnoredOption\n      >(filteredSelectOptionsRef.value, createTmOptions('value', 'children'))\n    })\n    function handleResize(): void {\n      syncSelectMenuPosition()\n    }\n    function handleToggle(tmNode: TreeNode<SelectBaseOption>): void {\n      doCheck(tmNode)\n    }\n    // We don't care what type the tmNode is, we only care about its key\n    function doCheck(tmNode: TreeNode<SelectBaseOption>): void {\n      if (props.multiple) {\n        const { value: mergedValue } = mergedValueRef\n        if (Array.isArray(mergedValue)) {\n          if (!mergedValue.includes(tmNode.key)) {\n            cascaderDoCheck(tmNode.key)\n          }\n          else {\n            cascaderDoUncheck(tmNode.key)\n          }\n        }\n        else if (mergedValue === null) {\n          cascaderDoCheck(tmNode.key)\n        }\n        clearPattern()\n      }\n      else {\n        cascaderDoCheck(tmNode.key)\n        // currently the select menu is set to focusable\n        // however just leave it here\n        closeMenu(true)\n      }\n    }\n    function prev(): void {\n      menuInstRef.value?.prev()\n    }\n    function next(): void {\n      menuInstRef.value?.next()\n    }\n    function enter(): boolean {\n      if (menuInstRef) {\n        const pendingOptionTmNode = menuInstRef.value?.getPendingTmNode()\n        if (pendingOptionTmNode) {\n          doCheck(pendingOptionTmNode)\n        }\n        return true\n      }\n      return false\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      handleSelectMenuClickOutside(e)\n    }\n    const exposedRef: SelectMenuInstance = {\n      prev,\n      next,\n      enter\n    }\n    return {\n      isMounted: isMountedRef,\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      // reduce dts: string ref only, type unused in render\n      menuInstRef: menuInstRef as unknown,\n      selectTreeMate: selectTreeMateRef,\n      handleResize,\n      handleToggle,\n      handleClickOutside,\n      cascaderSlots,\n      scrollbarProps: scrollbarPropsRef,\n      ...exposedRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix, isMounted, mergedTheme, cascaderSlots } = this\n    return (\n      <Transition name=\"fade-in-scale-up-transition\" appear={isMounted}>\n        {{\n          default: () =>\n            this.show\n              ? withDirectives(\n                  <NInternalSelectMenu\n                    ref=\"menuInstRef\"\n                    onResize={this.handleResize}\n                    clsPrefix={mergedClsPrefix}\n                    class={`${mergedClsPrefix}-cascader-menu`}\n                    autoPending\n                    themeOverrides={\n                      mergedTheme.peerOverrides.InternalSelectMenu\n                    }\n                    theme={mergedTheme.peers.InternalSelectMenu}\n                    treeMate={this.selectTreeMate}\n                    multiple={this.multiple}\n                    value={this.value}\n                    onToggle={this.handleToggle}\n                    scrollbarProps={this.scrollbarProps}\n                  >\n                    {{\n                      empty: () =>\n                        resolveSlot(cascaderSlots['not-found'], () => [])\n                    }}\n                  </NInternalSelectMenu>,\n                  [\n                    [\n                      clickoutside,\n                      this.handleClickOutside,\n                      undefined,\n                      { capture: true }\n                    ]\n                  ]\n                )\n              : null\n        }}\n      </Transition>\n    )\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-menu-border-radius\n// --n-menu-box-shadow\n// --n-menu-height\n// --n-menu-color\n// --n-menu-divider-color\n// --n-option-height\n// --n-option-font-size\n// --n-option-text-color\n// --n-option-text-color-disabled\n// --n-option-text-color-active\n// --n-option-color-hover\n// --n-option-check-mark-color\n// --n-option-arrow-color\n// --n-menu-mask-color\n// --n-loading-color\nexport default c([\n  cB('cascader-menu', `\n    outline: none;\n    position: relative;\n    margin: 4px 0;\n    display: flex;\n    flex-flow: column nowrap;\n    border-radius: var(--n-menu-border-radius);\n    overflow: hidden;\n    box-shadow: var(--n-menu-box-shadow);\n    color: var(--n-option-text-color);\n    background-color: var(--n-menu-color);\n  `, [\n    fadeInScaleUpTransition({ transformOrigin: 'inherit', duration: '0.2s' }),\n    cE('empty', `\n      display: flex;\n      padding: 12px 32px;\n      flex: 1;\n      justify-content: center;\n    `),\n    // if width not set, cascader select menu's inner scroll area's width is\n    // not correct, which won't change after select menu width is set\n    cB('scrollbar', `\n      width: 100%;\n    `),\n    cB('base-menu-mask', `\n      background-color: var(--n-menu-mask-color);\n    `),\n    cB('base-loading', `\n      color: var(--n-loading-color);\n    `),\n    cB('cascader-submenu-wrapper', `\n      position: relative;\n      display: flex;\n      flex-wrap: nowrap;\n    `),\n    cB('cascader-submenu', `\n      height: var(--n-menu-height);\n      min-width: var(--n-column-width);\n      position: relative;\n    `, [\n      cM('virtual', `\n        width: var(--n-column-width);\n      `),\n      cB('scrollbar-content', `\n        position: relative;\n      `),\n      c('&:first-child', `\n        border-top-left-radius: var(--n-menu-border-radius);\n        border-bottom-left-radius: var(--n-menu-border-radius);\n      `),\n      c('&:last-child', `\n        border-top-right-radius: var(--n-menu-border-radius);\n        border-bottom-right-radius: var(--n-menu-border-radius);\n      `),\n      c('&:not(:first-child)', `\n        border-left: 1px solid var(--n-menu-divider-color);\n      `)\n    ]),\n    cB('cascader-menu-action', `\n      box-sizing: border-box;\n      padding: 8px;\n      border-top: 1px solid var(--n-menu-divider-color);\n    `),\n    cB('cascader-option', `\n      height: var(--n-option-height);\n      line-height: var(--n-option-height);\n      font-size: var(--n-option-font-size);\n      padding: 0 0 0 18px;\n      box-sizing: border-box;\n      min-width: 182px;\n      background-color: #0000;\n      display: flex;\n      align-items: center;\n      white-space: nowrap;\n      position: relative;\n      cursor: pointer;\n      transition:\n        background-color .2s var(--n-bezier),\n        color 0.2s var(--n-bezier);\n    `, [\n      cM('show-prefix', `\n        padding-left: 0;\n      `),\n      cE('label', `\n        flex: 1 0 0;\n        overflow: hidden;\n        text-overflow: ellipsis;\n      `),\n      cE('prefix', `\n        min-width: 32px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `),\n      cE('suffix', `\n        min-width: 32px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `),\n      cB('cascader-option-icon-placeholder', `\n        line-height: 0;\n        position: relative;\n        width: 16px;\n        height: 16px;\n        font-size: 16px;\n      `, [\n        cB('cascader-option-icon', [\n          cM('checkmark', `\n            color: var(--n-option-check-mark-color);\n          `, [\n            fadeInScaleUpTransition({\n              originalTransition: 'background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)'\n            })\n          ]),\n          cM('arrow', `\n            color: var(--n-option-arrow-color);\n          `)\n        ])\n      ]),\n      cM('selected', `\n        color: var(--n-option-text-color-active);\n      `),\n      cM('active', `\n        color: var(--n-option-text-color-active);\n        background-color: var(--n-option-color-hover);\n      `),\n      cM('pending', `\n        background-color: var(--n-option-color-hover);\n      `),\n      c('&:hover', `\n        background-color: var(--n-option-color-hover);\n      `),\n      cM('disabled', `\n        color: var(--n-option-text-color-disabled);\n        background-color: #0000;\n        cursor: not-allowed;\n      `, [\n        cB('cascader-option-icon', [\n          cM('arrow', `\n            color: var(--n-option-text-color-disabled);\n          `)\n        ])\n      ])\n    ])\n  ]),\n  cB('cascader', `\n    z-index: auto;\n    position: relative;\n    width: 100%;\n  `)\n])\n","import type { CheckStrategy } from 'treemate'\nimport type {\n  CSSProperties,\n  HTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type { InternalSelectionInst, ScrollbarProps } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { PopoverProps } from '../../popover'\nimport type { SelectBaseOption } from '../../select/src/interface'\nimport type { CascaderTheme, CascaderThemeOverrides } from '../styles'\nimport type {\n  CascaderInst,\n  CascaderMenuInstance,\n  CascaderOption,\n  ExpandTrigger,\n  Filter,\n  Key,\n  OnLoad,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  SelectMenuInstance,\n  Value\n} from './interface'\nimport type { CascaderSize, CascaderSpinProps } from './public-types'\nimport { changeColor, depx, getPreciseEventTarget, happensIn } from 'seemly'\nimport { createTreeMate, SubtreeNotLoadedError } from 'treemate'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  isReactive,\n  nextTick,\n  provide,\n  ref,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NInternalSelection } from '../../_internal'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  markEventEffectPerformed,\n  useAdjustedTo,\n  warnOnce\n} from '../../_utils'\nimport { cascaderLight } from '../styles'\nimport CascaderMenu from './CascaderMenu'\nimport CascaderSelectMenu from './CascaderSelectMenu'\nimport { cascaderInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport { getPathLabel, getRawNodePath } from './utils'\n\nexport const cascaderProps = {\n  ...(useTheme.props as ThemeProps<CascaderTheme, CascaderThemeOverrides>),\n  allowCheckingNotLoaded: Boolean,\n  to: useAdjustedTo.propTo,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  options: {\n    type: Array as PropType<CascaderOption[]>,\n    default: () => []\n  },\n  value: [String, Number, Array] as PropType<Value | null>,\n  defaultValue: {\n    type: [String, Number, Array] as PropType<Value | null>,\n    default: null\n  },\n  placeholder: String,\n  multiple: Boolean,\n  size: String as PropType<CascaderSize>,\n  filterable: Boolean,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  disabledField: {\n    type: String,\n    default: 'disabled'\n  },\n  expandTrigger: {\n    type: String as PropType<ExpandTrigger>,\n    default: 'click'\n  },\n  clearable: Boolean,\n  clearFilterAfterSelect: {\n    type: Boolean,\n    default: true\n  },\n  remote: Boolean,\n  onLoad: Function as PropType<OnLoad>,\n  separator: {\n    type: String,\n    default: ' / '\n  },\n  filter: Function as PropType<Filter>,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  cascade: {\n    type: Boolean,\n    default: true\n  },\n  leafOnly: Boolean,\n  showPath: {\n    type: Boolean,\n    default: true\n  },\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  maxTagCount: [String, Number] as PropType<number | 'responsive'>,\n  ellipsisTagPopoverProps: Object as PropType<PopoverProps>,\n  menuProps: Object as PropType<HTMLAttributes>,\n  filterMenuProps: Object as PropType<HTMLAttributes>,\n  virtualScroll: {\n    type: Boolean,\n    default: true\n  },\n  checkStrategy: {\n    type: String as PropType<CheckStrategy>,\n    default: 'all'\n  },\n  valueField: {\n    type: String,\n    default: 'value'\n  },\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  childrenField: {\n    type: String,\n    default: 'children'\n  },\n  renderLabel: Function as PropType<\n    (option: CascaderOption, checked: boolean) => VNodeChild\n  >,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onBlur: Function as PropType<(e: FocusEvent) => void>,\n  onFocus: Function as PropType<(e: FocusEvent) => void>,\n  getColumnStyle: Function as PropType<\n    (detail: { level: number }) => string | CSSProperties\n  >,\n  spinProps: Object as PropType<CascaderSpinProps>,\n  renderPrefix: Function as PropType<\n    (props: {\n      option: CascaderOption\n      checked: boolean\n      node: VNode | null\n    }) => VNodeChild\n  >,\n  renderSuffix: Function as PropType<\n    (props: {\n      option: CascaderOption\n      checked: boolean\n      node: VNode | null\n    }) => VNodeChild\n  >,\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n} as const\n\nexport type CascaderProps = ExtractPublicPropTypes<typeof cascaderProps>\n\nexport interface CascaderSlots {\n  action?: () => VNode[]\n  arrow?: () => VNode[]\n  empty?: () => VNode[]\n  'not-found'?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Cascader',\n  props: cascaderProps,\n  slots: Object as SlotsType<CascaderSlots>,\n  setup(props, { slots }) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.leafOnly) {\n          warnOnce(\n            'cascader',\n            '`leaf-only` is deprecated, please use `check-strategy=\"child\"` instead'\n          )\n        }\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'cascader',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      namespaceRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Cascader',\n      '-cascader',\n      style,\n      cascaderLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { localeRef } = useLocale('Cascader')\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = computed(() => props.value)\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const mergedCheckStrategyRef = computed(() => {\n      return props.leafOnly ? 'child' : props.checkStrategy\n    })\n    const patternRef = ref('')\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as CascaderSize\n        const configSize = mergedComponentPropsRef?.value?.Cascader?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    const cascaderMenuInstRef = ref<CascaderMenuInstance | null>(null)\n    const selectMenuInstRef = ref<SelectMenuInstance | null>(null)\n    const triggerInstRef = ref<InternalSelectionInst | null>(null)\n    const keyboardKeyRef = ref<Key | null>(null)\n    const hoverKeyRef = ref<Key | null>(null)\n    const loadingKeySetRef = ref<Set<Key>>(new Set())\n    const selectMenuFollowerRef = ref<FollowerInst | null>(null)\n    const cascaderMenuFollowerRef = ref<FollowerInst | null>(null)\n    const adjustedToRef = useAdjustedTo(props)\n    const focusedRef = ref(false)\n    const addLoadingKey = (key: Key): void => {\n      loadingKeySetRef.value.add(key)\n    }\n    const deleteLoadingKey = (key: Key): void => {\n      loadingKeySetRef.value.delete(key)\n    }\n    const treeMateRef = computed(() => {\n      const { valueField, childrenField, disabledField } = props\n      return createTreeMate(props.options, {\n        getDisabled(node) {\n          return (node as any)[disabledField]\n        },\n        getKey(node) {\n          return (node as any)[valueField]\n        },\n        getChildren(node) {\n          return (node as any)[childrenField]\n        }\n      })\n    })\n    const mergedKeysRef = computed(() => {\n      const { cascade, multiple } = props\n      if (multiple && Array.isArray(mergedValueRef.value)) {\n        return treeMateRef.value.getCheckedKeys(mergedValueRef.value, {\n          cascade,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        })\n      }\n      else {\n        return {\n          checkedKeys: [],\n          indeterminateKeys: []\n        }\n      }\n    })\n    const checkedKeysRef = computed(() => mergedKeysRef.value.checkedKeys)\n    const indeterminateKeysRef = computed(\n      () => mergedKeysRef.value.indeterminateKeys\n    )\n    const menuModelRef = computed(() => {\n      const { treeNodePath, treeNode } = treeMateRef.value.getPath(\n        hoverKeyRef.value\n      )\n      let ret\n      if (treeNode === null) {\n        ret = [treeMateRef.value.treeNodes]\n      }\n      else {\n        ret = treeNodePath.map(treeNode => treeNode.siblings)\n        if (\n          !treeNode.isLeaf\n          && !loadingKeySetRef.value.has(treeNode.key)\n          && treeNode.children\n        ) {\n          ret.push(treeNode.children)\n        }\n      }\n      return ret\n    })\n    const hoverKeyPathRef = computed(() => {\n      const { keyPath } = treeMateRef.value.getPath(hoverKeyRef.value)\n      return keyPath\n    })\n    const optionHeightRef = computed(() => {\n      return themeRef.value.self.optionHeight\n    })\n    if (isReactive(props.options)) {\n      watch(props.options, (value, oldValue) => {\n        if (!(value === oldValue)) {\n          hoverKeyRef.value = null\n          keyboardKeyRef.value = null\n        }\n      })\n    }\n    const uncontrolledShowRef = ref(false)\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow) {\n        call(onUpdateShow, value)\n      }\n      if (_onUpdateShow) {\n        call(_onUpdateShow, value)\n      }\n      uncontrolledShowRef.value = value\n    }\n    function doUpdateValue(\n      value: Value | null,\n      option: CascaderOption | null | Array<CascaderOption | null>,\n      optionPath: null | CascaderOption[] | Array<CascaderOption[] | null>\n    ): void {\n      const {\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value, option, optionPath)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, option, optionPath)\n      }\n      if (onChange) {\n        call(onChange as OnUpdateValueImpl, value, option, optionPath)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function updateKeyboardKey(key: Key | null): void {\n      keyboardKeyRef.value = key\n    }\n    function updateHoverKey(key: Key | null): void {\n      hoverKeyRef.value = key\n    }\n    function getOptionsByKeys(keys: Key[]): Array<CascaderOption | null> {\n      const {\n        value: { getNode }\n      } = treeMateRef\n      return keys.map(keys => getNode(keys)?.rawNode || null)\n    }\n    function doCheck(key: Key): boolean {\n      const { cascade, multiple, filterable } = props\n      const {\n        value: { check, getNode, getPath }\n      } = treeMateRef\n      if (multiple) {\n        try {\n          const { checkedKeys } = check(key, mergedKeysRef.value.checkedKeys, {\n            cascade,\n            checkStrategy: mergedCheckStrategyRef.value,\n            allowNotLoaded: props.allowCheckingNotLoaded\n          })\n          doUpdateValue(\n            checkedKeys,\n            getOptionsByKeys(checkedKeys),\n            checkedKeys.map(checkedKey =>\n              getRawNodePath(getPath(checkedKey)?.treeNodePath)\n            )\n          )\n          if (filterable)\n            focusSelectionInput()\n          keyboardKeyRef.value = key\n          hoverKeyRef.value = key\n        }\n        catch (err) {\n          if (err instanceof SubtreeNotLoadedError) {\n            if (cascaderMenuInstRef.value) {\n              const tmNode = getNode(key)\n              if (tmNode !== null) {\n                cascaderMenuInstRef.value.showErrorMessage(\n                  (tmNode.rawNode as any)[props.labelField] as string\n                )\n              }\n            }\n          }\n          else {\n            throw err\n          }\n        }\n      }\n      else {\n        if (mergedCheckStrategyRef.value === 'child') {\n          const tmNode = getNode(key)\n          if (tmNode?.isLeaf) {\n            doUpdateValue(\n              key,\n              tmNode.rawNode,\n              getRawNodePath(getPath(key).treeNodePath)\n            )\n          }\n          else {\n            return false\n          }\n        }\n        else {\n          const tmNode = getNode(key)\n          doUpdateValue(\n            key,\n            tmNode?.rawNode || null,\n            getRawNodePath(getPath(key)?.treeNodePath)\n          )\n        }\n      }\n      return true\n    }\n    function doUncheck(key: Key): void {\n      const { cascade, multiple } = props\n      if (multiple) {\n        const {\n          value: { uncheck, getNode, getPath }\n        } = treeMateRef\n        const { checkedKeys } = uncheck(key, mergedKeysRef.value.checkedKeys, {\n          cascade,\n          checkStrategy: mergedCheckStrategyRef.value,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        })\n        doUpdateValue(\n          checkedKeys,\n          checkedKeys.map(checkedKey => getNode(checkedKey)?.rawNode || null),\n          checkedKeys.map(checkedKey =>\n            getRawNodePath(getPath(checkedKey)?.treeNodePath)\n          )\n        )\n        keyboardKeyRef.value = key\n        hoverKeyRef.value = key\n      }\n    }\n    const selectedOptionsRef = computed(() => {\n      if (props.multiple) {\n        const { showPath, separator, labelField, cascade } = props\n        const { getCheckedKeys, getNode } = treeMateRef.value\n        const value = getCheckedKeys(checkedKeysRef.value, {\n          cascade,\n          checkStrategy: mergedCheckStrategyRef.value,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        }).checkedKeys\n        return value.map((key) => {\n          const node = getNode(key)\n          if (node === null) {\n            return {\n              label: String(key),\n              value: key\n            }\n          }\n          else {\n            return {\n              label: showPath\n                ? getPathLabel(node, separator, labelField)\n                : (node.rawNode as any)[labelField],\n              value: node.key\n            }\n          }\n        })\n      }\n      else {\n        return []\n      }\n    })\n    const selectedOptionRef = computed(() => {\n      const { multiple, showPath, separator, labelField } = props\n      const { value } = mergedValueRef\n      if (!multiple && !Array.isArray(value)) {\n        const { getNode } = treeMateRef.value\n        if (value === null) {\n          return null\n        }\n        const node = getNode(value)\n        if (node === null) {\n          return {\n            label: String(value),\n            value\n          }\n        }\n        else {\n          return {\n            label: showPath\n              ? getPathLabel(node, separator, labelField)\n              : (node.rawNode as any)[labelField],\n            value: node.key\n          }\n        }\n      }\n      else {\n        return null\n      }\n    })\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n    const localizedPlaceholderRef = computed(() => {\n      const { placeholder } = props\n      if (placeholder !== undefined)\n        return placeholder\n      return localeRef.value.placeholder\n    })\n    // select option related\n    const showSelectMenuRef = computed(() => {\n      return !!(props.filterable && patternRef.value)\n    })\n    // init hover key\n    watch(\n      mergedShowRef,\n      (show) => {\n        if (!show)\n          return\n        if (props.multiple)\n          return\n        const { value } = mergedValueRef\n        if (!Array.isArray(value) && value !== null) {\n          keyboardKeyRef.value = value\n          hoverKeyRef.value = value\n          void nextTick(() => {\n            if (!mergedShowRef.value)\n              return\n            const { value: hoverKey } = hoverKeyRef\n            if (mergedValueRef.value !== null) {\n              const node = treeMateRef.value.getNode(hoverKey)\n              if (node) {\n                cascaderMenuInstRef.value?.scroll(\n                  node.level,\n                  node.index,\n                  depx(optionHeightRef.value)\n                )\n              }\n            }\n          })\n        }\n        else {\n          keyboardKeyRef.value = null\n          hoverKeyRef.value = null\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n    // --- methods\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function focusSelectionInput(): void {\n      triggerInstRef.value?.focusInput()\n    }\n    function focusSelection(): void {\n      triggerInstRef.value?.focus()\n    }\n    function openMenu(): void {\n      if (!mergedDisabledRef.value) {\n        patternRef.value = ''\n        doUpdateShow(true)\n        if (props.filterable) {\n          focusSelectionInput()\n        }\n      }\n    }\n    function closeMenu(returnFocus = false): void {\n      if (returnFocus) {\n        focusSelection()\n      }\n      doUpdateShow(false)\n      patternRef.value = ''\n    }\n    function handleCascaderMenuClickOutside(e: MouseEvent): void {\n      if (showSelectMenuRef.value)\n        return\n      if (mergedShowRef.value) {\n        if (\n          !triggerInstRef.value?.$el.contains(\n            getPreciseEventTarget(e) as Node | null\n          )\n        ) {\n          closeMenu()\n        }\n      }\n    }\n    function handleSelectMenuClickOutside(e: MouseEvent): void {\n      if (!showSelectMenuRef.value)\n        return\n      handleCascaderMenuClickOutside(e)\n    }\n    function clearPattern(): void {\n      if (props.clearFilterAfterSelect)\n        patternRef.value = ''\n    }\n    // --- keyboard\n    function move(direction: 'prev' | 'next' | 'child' | 'parent'): void {\n      const { value: keyboardKey } = keyboardKeyRef\n      const { value: treeMate } = treeMateRef\n      switch (direction) {\n        case 'prev':\n          if (keyboardKey !== null) {\n            const node = treeMate.getPrev(keyboardKey, { loop: true })\n            if (node !== null) {\n              updateKeyboardKey(node.key)\n              cascaderMenuInstRef.value?.scroll(\n                node.level,\n                node.index,\n                depx(optionHeightRef.value)\n              )\n            }\n          }\n          break\n        case 'next':\n          if (keyboardKey === null) {\n            const node = treeMate.getFirstAvailableNode()\n            if (node !== null) {\n              updateKeyboardKey(node.key)\n              cascaderMenuInstRef.value?.scroll(\n                node.level,\n                node.index,\n                depx(optionHeightRef.value)\n              )\n            }\n          }\n          else {\n            const node = treeMate.getNext(keyboardKey, { loop: true })\n            if (node !== null) {\n              updateKeyboardKey(node.key)\n              cascaderMenuInstRef.value?.scroll(\n                node.level,\n                node.index,\n                depx(optionHeightRef.value)\n              )\n            }\n          }\n          break\n        case 'child':\n          if (keyboardKey !== null) {\n            const currentNode = treeMate.getNode(keyboardKey)\n            if (currentNode !== null) {\n              if (currentNode.shallowLoaded) {\n                const node = treeMate.getChild(keyboardKey)\n                if (node !== null) {\n                  updateHoverKey(keyboardKey)\n                  updateKeyboardKey(node.key)\n                }\n              }\n              else {\n                const { value: loadingKeySet } = loadingKeySetRef\n                if (!loadingKeySet.has(keyboardKey)) {\n                  addLoadingKey(keyboardKey)\n                  updateHoverKey(keyboardKey)\n                  const { onLoad } = props\n                  if (onLoad) {\n                    onLoad(currentNode.rawNode)\n                      .then(() => {\n                        deleteLoadingKey(keyboardKey)\n                      })\n                      .catch(() => {\n                        deleteLoadingKey(keyboardKey)\n                      })\n                  }\n                }\n              }\n            }\n          }\n          break\n        case 'parent':\n          if (keyboardKey !== null) {\n            const node = treeMate.getParent(keyboardKey)\n            if (node !== null) {\n              updateKeyboardKey(node.key)\n              const parentNode = node.getParent()\n              if (parentNode === null) {\n                updateHoverKey(null)\n              }\n              else {\n                updateHoverKey(parentNode.key)\n              }\n            }\n          }\n          break\n      }\n    }\n    function handleKeydown(e: KeyboardEvent): void {\n      switch (e.key) {\n        case ' ':\n        case 'ArrowDown':\n        case 'ArrowUp':\n          if (props.filterable && mergedShowRef.value) {\n            break\n          }\n          e.preventDefault()\n          break\n      }\n      if (happensIn(e, 'action'))\n        return\n      switch (e.key) {\n        case ' ':\n          if (props.filterable)\n            return\n        // eslint-disable-next-line no-fallthrough\n        case 'Enter':\n          if (!mergedShowRef.value) {\n            openMenu()\n          }\n          else {\n            const { value: showSelectMenu } = showSelectMenuRef\n            const { value: keyboardKey } = keyboardKeyRef\n            if (!showSelectMenu) {\n              if (keyboardKey !== null) {\n                if (\n                  checkedKeysRef.value.includes(keyboardKey)\n                  || indeterminateKeysRef.value.includes(keyboardKey)\n                ) {\n                  doUncheck(keyboardKey)\n                }\n                else {\n                  const checkIsValid = doCheck(keyboardKey)\n                  if (!props.multiple && checkIsValid) {\n                    closeMenu(true)\n                  }\n                }\n              }\n            }\n            else {\n              if (selectMenuInstRef.value) {\n                const hasCorrespondingOption = selectMenuInstRef.value.enter()\n                if (hasCorrespondingOption)\n                  clearPattern()\n              }\n            }\n          }\n          break\n        case 'ArrowUp':\n          e.preventDefault()\n          if (mergedShowRef.value) {\n            if (showSelectMenuRef.value) {\n              selectMenuInstRef.value?.prev()\n            }\n            else {\n              move('prev')\n            }\n          }\n          break\n        case 'ArrowDown':\n          e.preventDefault()\n          if (mergedShowRef.value) {\n            if (showSelectMenuRef.value) {\n              selectMenuInstRef.value?.next()\n            }\n            else {\n              move('next')\n            }\n          }\n          else {\n            openMenu()\n          }\n          break\n        case 'ArrowLeft':\n          e.preventDefault()\n          if (mergedShowRef.value && !showSelectMenuRef.value) {\n            move('parent')\n          }\n          break\n        case 'ArrowRight':\n          e.preventDefault()\n          if (mergedShowRef.value && !showSelectMenuRef.value) {\n            move('child')\n          }\n          break\n        case 'Escape':\n          if (mergedShowRef.value) {\n            markEventEffectPerformed(e)\n            closeMenu(true)\n          }\n      }\n    }\n    function handleMenuKeydown(e: KeyboardEvent): void {\n      handleKeydown(e)\n    }\n    // --- search\n    function handleClear(e: MouseEvent): void {\n      e.stopPropagation()\n      if (props.multiple) {\n        doUpdateValue([], [], [])\n      }\n      else {\n        doUpdateValue(null, null, null)\n      }\n    }\n    function handleTriggerFocus(e: FocusEvent): void {\n      if (!cascaderMenuInstRef.value?.$el.contains(e.relatedTarget as Node)) {\n        focusedRef.value = true\n        doFocus(e)\n      }\n    }\n    function handleTriggerBlur(e: FocusEvent): void {\n      if (!cascaderMenuInstRef.value?.$el.contains(e.relatedTarget as Node)) {\n        focusedRef.value = false\n        doBlur(e)\n        closeMenu()\n      }\n    }\n    function handleMenuFocus(e: FocusEvent): void {\n      if (!triggerInstRef.value?.$el.contains(e.relatedTarget as Node)) {\n        focusedRef.value = true\n        doFocus(e)\n      }\n    }\n    function handleMenuBlur(e: FocusEvent): void {\n      if (!triggerInstRef.value?.$el.contains(e.relatedTarget as Node)) {\n        focusedRef.value = false\n        doBlur(e)\n      }\n    }\n    function handleMenuMousedown(e: MouseEvent): void {\n      if (!happensIn(e, 'action')) {\n        if (props.multiple && props.filter) {\n          e.preventDefault()\n          focusSelectionInput()\n        }\n      }\n    }\n    function handleMenuTabout(): void {\n      closeMenu(true)\n    }\n    function handleTriggerClick(): void {\n      if (props.filterable) {\n        openMenu()\n      }\n      else {\n        if (mergedShowRef.value) {\n          closeMenu(true)\n        }\n        else {\n          openMenu()\n        }\n      }\n    }\n    function handlePatternInput(e: InputEvent): void {\n      patternRef.value = (e.target as HTMLInputElement).value\n    }\n    function handleDeleteOption(option: SelectBaseOption): void {\n      const { multiple } = props\n      const { value: mergedValue } = mergedValueRef\n      if (\n        multiple\n        && Array.isArray(mergedValue)\n        && option.value !== undefined\n      ) {\n        doUncheck(option.value)\n      }\n      else {\n        doUpdateValue(null, null, null)\n      }\n    }\n    // sync position\n    function syncSelectMenuPosition(): void {\n      selectMenuFollowerRef.value?.syncPosition()\n    }\n    function syncCascaderMenuPosition(): void {\n      cascaderMenuFollowerRef.value?.syncPosition()\n    }\n    function handleTriggerResize(): void {\n      if (mergedShowRef.value) {\n        if (showSelectMenuRef.value) {\n          syncSelectMenuPosition()\n        }\n        else {\n          syncCascaderMenuPosition()\n        }\n      }\n    }\n    const showCheckboxRef = computed(() => {\n      if (props.multiple && props.cascade)\n        return true\n      if (mergedCheckStrategyRef.value !== 'child')\n        return true\n      return false\n    })\n    provide(cascaderInjectionKey, {\n      slots,\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      mergedValueRef,\n      checkedKeysRef,\n      indeterminateKeysRef,\n      hoverKeyPathRef,\n      mergedCheckStrategyRef,\n      showCheckboxRef,\n      cascadeRef: toRef(props, 'cascade'),\n      multipleRef: toRef(props, 'multiple'),\n      keyboardKeyRef,\n      hoverKeyRef,\n      remoteRef: toRef(props, 'remote'),\n      loadingKeySetRef,\n      expandTriggerRef: toRef(props, 'expandTrigger'),\n      isMountedRef: useIsMounted(),\n      onLoadRef: toRef(props, 'onLoad'),\n      virtualScrollRef: toRef(props, 'virtualScroll'),\n      optionHeightRef,\n      localeRef,\n      labelFieldRef: toRef(props, 'labelField'),\n      renderLabelRef: toRef(props, 'renderLabel'),\n      getColumnStyleRef: toRef(props, 'getColumnStyle'),\n      renderPrefixRef: toRef(props, 'renderPrefix'),\n      renderSuffixRef: toRef(props, 'renderSuffix'),\n      spinPropsRef: toRef(props, 'spinProps'),\n      syncCascaderMenuPosition,\n      syncSelectMenuPosition,\n      updateKeyboardKey,\n      updateHoverKey,\n      addLoadingKey,\n      deleteLoadingKey,\n      doCheck,\n      doUncheck,\n      closeMenu,\n      handleSelectMenuClickOutside,\n      handleCascaderMenuClickOutside,\n      scrollbarPropsRef: toRef(props, 'scrollbarProps'),\n      clearPattern\n    })\n    const exposedMethods: CascaderInst = {\n      focus: () => {\n        triggerInstRef.value?.focus()\n      },\n      blur: () => {\n        triggerInstRef.value?.blur()\n      },\n      getCheckedData: () => {\n        if (showCheckboxRef.value) {\n          const checkedKeys = checkedKeysRef.value\n          return {\n            keys: checkedKeys,\n            options: getOptionsByKeys(checkedKeys)\n          }\n        }\n        return {\n          keys: [],\n          options: []\n        }\n      },\n      getIndeterminateData: () => {\n        if (showCheckboxRef.value) {\n          const indeterminateKeys = indeterminateKeysRef.value\n          return {\n            keys: indeterminateKeys,\n            options: getOptionsByKeys(indeterminateKeys)\n          }\n        }\n        return {\n          keys: [],\n          options: []\n        }\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          optionArrowColor,\n          optionTextColor,\n          optionTextColorActive,\n          optionTextColorDisabled,\n          optionCheckMarkColor,\n          menuColor,\n          menuBoxShadow,\n          menuDividerColor,\n          menuBorderRadius,\n          menuHeight,\n          optionColorHover,\n          optionHeight,\n          optionFontSize,\n          loadingColor,\n          columnWidth\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-menu-border-radius': menuBorderRadius,\n        '--n-menu-box-shadow': menuBoxShadow,\n        '--n-menu-height': menuHeight,\n        '--n-column-width': columnWidth,\n        '--n-menu-color': menuColor,\n        '--n-menu-divider-color': menuDividerColor,\n        '--n-option-height': optionHeight,\n        '--n-option-font-size': optionFontSize,\n        '--n-option-text-color': optionTextColor,\n        '--n-option-text-color-disabled': optionTextColorDisabled,\n        '--n-option-text-color-active': optionTextColorActive,\n        '--n-option-color-hover': optionColorHover,\n        '--n-option-check-mark-color': optionCheckMarkColor,\n        '--n-option-arrow-color': optionArrowColor,\n        '--n-menu-mask-color': changeColor(menuColor, { alpha: 0.75 }),\n        '--n-loading-color': loadingColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('cascader', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      ...exposedMethods,\n      handleTriggerResize,\n      mergedStatus: mergedStatusRef,\n      // reduce dts: string ref only, type unused in render\n      selectMenuFollowerRef: selectMenuFollowerRef as unknown,\n      cascaderMenuFollowerRef: cascaderMenuFollowerRef as unknown,\n      triggerInstRef: triggerInstRef as unknown,\n      selectMenuInstRef: selectMenuInstRef as unknown,\n      cascaderMenuInstRef: cascaderMenuInstRef as unknown,\n      mergedBordered: mergedBorderedRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      mergedValue: mergedValueRef,\n      mergedShow: mergedShowRef,\n      showSelectMenu: showSelectMenuRef,\n      pattern: patternRef,\n      treeMate: treeMateRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      localizedPlaceholder: localizedPlaceholderRef,\n      selectedOption: selectedOptionRef,\n      selectedOptions: selectedOptionsRef,\n      adjustedTo: adjustedToRef,\n      menuModel: menuModelRef,\n      handleMenuTabout,\n      handleMenuFocus,\n      handleMenuBlur,\n      handleMenuKeydown,\n      handleMenuMousedown,\n      handleTriggerFocus,\n      handleTriggerBlur,\n      handleTriggerClick,\n      handleClear,\n      handleDeleteOption,\n      handlePatternInput,\n      handleKeydown,\n      focused: focusedRef,\n      optionHeight: optionHeightRef,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div class={`${mergedClsPrefix}-cascader`}>\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => (\n                    <NInternalSelection\n                      onResize={this.handleTriggerResize}\n                      ref=\"triggerInstRef\"\n                      status={this.mergedStatus}\n                      clsPrefix={mergedClsPrefix}\n                      maxTagCount={this.maxTagCount}\n                      ellipsisTagPopoverProps={this.ellipsisTagPopoverProps}\n                      bordered={this.mergedBordered}\n                      size={this.mergedSize}\n                      theme={this.mergedTheme.peers.InternalSelection}\n                      themeOverrides={\n                        this.mergedTheme.peerOverrides.InternalSelection\n                      }\n                      active={this.mergedShow}\n                      pattern={this.pattern}\n                      placeholder={this.localizedPlaceholder}\n                      selectedOption={this.selectedOption}\n                      selectedOptions={this.selectedOptions}\n                      multiple={this.multiple}\n                      filterable={this.filterable}\n                      clearable={this.clearable}\n                      disabled={this.mergedDisabled}\n                      focused={this.focused}\n                      onFocus={this.handleTriggerFocus}\n                      onBlur={this.handleTriggerBlur}\n                      onClick={this.handleTriggerClick}\n                      onClear={this.handleClear}\n                      onDeleteOption={this.handleDeleteOption}\n                      onPatternInput={this.handlePatternInput}\n                      onKeydown={this.handleKeydown}\n                    >\n                      {{\n                        arrow: () => this.$slots.arrow?.()\n                      }}\n                    </NInternalSelection>\n                  )\n                }}\n              </VTarget>,\n              <VFollower\n                key=\"cascaderMenu\"\n                ref=\"cascaderMenuFollowerRef\"\n                show={this.mergedShow && !this.showSelectMenu}\n                containerClass={this.namespace}\n                placement={this.placement}\n                width={!this.options.length ? 'target' : undefined}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                to={this.adjustedTo}\n              >\n                {{\n                  default: () => {\n                    this.onRender?.()\n                    const { menuProps } = this\n                    return (\n                      <CascaderMenu\n                        {...menuProps}\n                        ref=\"cascaderMenuInstRef\"\n                        class={[this.themeClass, menuProps?.class]}\n                        value={this.mergedValue}\n                        show={this.mergedShow && !this.showSelectMenu}\n                        menuModel={this.menuModel}\n                        style={[\n                          this.cssVars as CSSProperties,\n                          menuProps?.style\n                        ]}\n                        onFocus={this.handleMenuFocus}\n                        onBlur={this.handleMenuBlur}\n                        onKeydown={this.handleMenuKeydown}\n                        onMousedown={this.handleMenuMousedown}\n                        onTabout={this.handleMenuTabout}\n                      >\n                        {{\n                          action: () => this.$slots.action?.(),\n                          empty: () => this.$slots.empty?.()\n                        }}\n                      </CascaderMenu>\n                    )\n                  }\n                }}\n              </VFollower>,\n              <VFollower\n                key=\"selectMenu\"\n                ref=\"selectMenuFollowerRef\"\n                show={this.mergedShow && this.showSelectMenu}\n                containerClass={this.namespace}\n                width=\"target\"\n                placement={this.placement}\n                to={this.adjustedTo}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n              >\n                {{\n                  default: () => {\n                    this.onRender?.()\n                    const { filterMenuProps } = this\n                    return (\n                      <CascaderSelectMenu\n                        {...filterMenuProps}\n                        ref=\"selectMenuInstRef\"\n                        class={[this.themeClass, filterMenuProps?.class]}\n                        value={this.mergedValue}\n                        show={this.mergedShow && this.showSelectMenu}\n                        pattern={this.pattern}\n                        multiple={this.multiple}\n                        tmNodes={this.treeMate.treeNodes}\n                        filter={this.filter}\n                        labelField={this.labelField}\n                        separator={this.separator}\n                        style={[\n                          this.cssVars as CSSProperties,\n                          filterMenuProps?.style\n                        ]}\n                      />\n                    )\n                  }\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import type { CodeTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst codeDark: CodeTheme = {\n  name: 'Code',\n  common: commonDark,\n  self(vars) {\n    const { textColor2, fontSize, fontWeightStrong, textColor3 } = vars\n    return {\n      textColor: textColor2,\n      fontSize,\n      fontWeightStrong,\n      // extracted from hljs atom-one-dark.scss\n      'mono-3': '#5c6370',\n      'hue-1': '#56b6c2',\n      'hue-2': '#61aeee',\n      'hue-3': '#c678dd',\n      'hue-4': '#98c379',\n      'hue-5': '#e06c75',\n      'hue-5-2': '#be5046',\n      'hue-6': '#d19a66',\n      'hue-6-2': '#e6c07b',\n      // line-number styles\n      lineNumberTextColor: textColor3\n    }\n  }\n}\n\nexport default codeDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { textColor2, fontSize, fontWeightStrong, textColor3 } = vars\n  return {\n    textColor: textColor2,\n    fontSize,\n    fontWeightStrong,\n    // extracted from hljs atom-one-light.scss\n    'mono-3': '#a0a1a7',\n    'hue-1': '#0184bb',\n    'hue-2': '#4078f2',\n    'hue-3': '#a626a4',\n    'hue-4': '#50a14f',\n    'hue-5': '#e45649',\n    'hue-5-2': '#c91243',\n    'hue-6': '#986801',\n    'hue-6-2': '#c18401',\n    // line-number styles\n    lineNumberTextColor: textColor3\n  }\n}\n\nexport interface CodeThemeVars extends ReturnType<typeof self> {}\n\nconst codeLight: CodeTheme = {\n  name: 'Code',\n  common: commonLight,\n  self\n}\n\nexport interface CodeTheme extends Theme<'Code', CodeThemeVars> {}\n\nexport interface CodeThemeOverrides extends ExtractThemeOverrides<CodeTheme> {}\n\nexport default codeLight\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-font-family\n// --n-font-weight-strong\n// --n-bezier\n// --n-text-color\n// --n-mono-3\n// --n-hue-1\n// --n-hue-2\n// --n-hue-3\n// --n-hue-4\n// --n-hue-5\n// --n-hue-5-2\n// --n-hue-6\n// --n-hue-6-2\n// --n-line-number-color\n// --n-line-number-text-color\nexport default c([\n  cB('code', `\n    font-size: var(--n-font-size);\n    font-family: var(--n-font-family);\n  `, [\n    cM('show-line-numbers', `\n      display: flex;\n    `),\n    cE('line-numbers', `\n      user-select: none;\n      padding-right: 12px;\n      text-align: right;\n      transition: color .3s var(--n-bezier);\n      color: var(--n-line-number-text-color);\n    `),\n    cM('word-wrap', [\n      c('pre', `\n        white-space: pre-wrap;\n        word-break: break-all;\n      `)\n    ]),\n    c('pre', `\n      margin: 0;\n      line-height: inherit;\n      font-size: inherit;\n      font-family: inherit;\n    `),\n    c('[class^=hljs]', `\n      color: var(--n-text-color);\n      transition: \n        color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `)\n  ]),\n  ({ props }) => {\n    const codeClass = `${props.bPrefix}code`\n    return [\n      `${codeClass} .hljs-comment,\n      ${codeClass} .hljs-quote {\n        color: var(--n-mono-3);\n        font-style: italic;\n      }`,\n      `${codeClass} .hljs-doctag,\n      ${codeClass} .hljs-keyword,\n      ${codeClass} .hljs-formula {\n        color: var(--n-hue-3);\n      }`,\n      `${codeClass} .hljs-section,\n      ${codeClass} .hljs-name,\n      ${codeClass} .hljs-selector-tag,\n      ${codeClass} .hljs-deletion,\n      ${codeClass} .hljs-subst {\n        color: var(--n-hue-5);\n      }`,\n      `${codeClass} .hljs-literal {\n        color: var(--n-hue-1);\n      }`,\n      `${codeClass} .hljs-string,\n      ${codeClass} .hljs-regexp,\n      ${codeClass} .hljs-addition,\n      ${codeClass} .hljs-attribute,\n      ${codeClass} .hljs-meta-string {\n        color: var(--n-hue-4);\n      }`,\n      `${codeClass} .hljs-built_in,\n      ${codeClass} .hljs-class .hljs-title {\n        color: var(--n-hue-6-2);\n      }`,\n      `${codeClass} .hljs-attr,\n      ${codeClass} .hljs-variable,\n      ${codeClass} .hljs-template-variable,\n      ${codeClass} .hljs-type,\n      ${codeClass} .hljs-selector-class,\n      ${codeClass} .hljs-selector-attr,\n      ${codeClass} .hljs-selector-pseudo,\n      ${codeClass} .hljs-number {\n        color: var(--n-hue-6);\n      }`,\n      `${codeClass} .hljs-symbol,\n      ${codeClass} .hljs-bullet,\n      ${codeClass} .hljs-link,\n      ${codeClass} .hljs-meta,\n      ${codeClass} .hljs-selector-id,\n      ${codeClass} .hljs-title {\n        color: var(--n-hue-2);\n      }`,\n      `${codeClass} .hljs-emphasis {\n        font-style: italic;\n      }`,\n      `${codeClass} .hljs-strong {\n        font-weight: var(--n-font-weight-strong);\n      }`,\n      `${codeClass} .hljs-link {\n        text-decoration: underline;\n      }`\n    ]\n  }\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { Hljs, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { CodeTheme, CodeThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, onMounted, ref, toRef, watch } from 'vue'\nimport { useConfig, useHljs, useTheme, useThemeClass } from '../../_mixins'\nimport { codeLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const codeProps = {\n  ...(useTheme.props as ThemeProps<CodeTheme, CodeThemeOverrides>),\n  language: String,\n  code: {\n    type: String,\n    default: ''\n  },\n  trim: {\n    type: Boolean,\n    default: true\n  },\n  hljs: Object as PropType<Hljs>,\n  uri: Boolean,\n  inline: Boolean,\n  wordWrap: Boolean,\n  showLineNumbers: Boolean,\n  // In n-log, we only need to mount code's style for highlight\n  internalFontSize: Number,\n  internalNoHighlight: Boolean\n}\n\nexport type CodeProps = ExtractPublicPropTypes<typeof codeProps>\n\nexport default defineComponent({\n  name: 'Code',\n  props: codeProps,\n  setup(props, { slots }) {\n    const { internalNoHighlight } = props\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig()\n    const codeRef = ref<HTMLElement | null>(null)\n    const hljsRef = internalNoHighlight ? { value: undefined } : useHljs(props)\n    const createCodeHtml = (\n      language: string,\n      code: string,\n      trim: boolean\n    ): string | null => {\n      const { value: hljs } = hljsRef\n      if (!hljs) {\n        return null\n      }\n      if (!(language && hljs.getLanguage(language))) {\n        return null\n      }\n      return hljs.highlight(trim ? code.trim() : code, {\n        language\n      }).value\n    }\n    const mergedShowLineNumbersRef = computed(() => {\n      if (props.inline || props.wordWrap)\n        return false\n      return props.showLineNumbers\n    })\n    const setCode = (): void => {\n      if (slots.default)\n        return\n      const { value: codeEl } = codeRef\n      if (!codeEl)\n        return\n      const { language } = props\n      const code = props.uri\n        ? window.decodeURIComponent(props.code)\n        : props.code\n      if (language) {\n        const html = createCodeHtml(language, code, props.trim)\n        if (html !== null) {\n          if (props.inline) {\n            codeEl.innerHTML = html\n          }\n          else {\n            const prevPreEl = codeEl.querySelector('.__code__')\n            if (prevPreEl)\n              codeEl.removeChild(prevPreEl)\n            const preEl = document.createElement('pre')\n            preEl.className = '__code__'\n            preEl.innerHTML = html\n            codeEl.appendChild(preEl)\n          }\n          return\n        }\n      }\n      if (props.inline) {\n        codeEl.textContent = code\n        return\n      }\n      const maybePreEl = codeEl.querySelector('.__code__')\n      if (maybePreEl) {\n        maybePreEl.textContent = code\n      }\n      else {\n        const wrap = document.createElement('pre')\n        wrap.className = '__code__'\n        wrap.textContent = code\n        codeEl.innerHTML = ''\n        codeEl.appendChild(wrap)\n      }\n    }\n    onMounted(setCode)\n    watch(toRef(props, 'language'), setCode)\n    watch(toRef(props, 'code'), setCode)\n    if (!internalNoHighlight)\n      watch(hljsRef, setCode)\n    const themeRef = useTheme(\n      'Code',\n      '-code',\n      style,\n      codeLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut, fontFamilyMono },\n        self: {\n          textColor,\n          fontSize,\n          fontWeightStrong,\n          lineNumberTextColor,\n          // extracted from hljs atom-one-light.scss\n          'mono-3': $1,\n          'hue-1': $2,\n          'hue-2': $3,\n          'hue-3': $4,\n          'hue-4': $5,\n          'hue-5': $6,\n          'hue-5-2': $7,\n          'hue-6': $8,\n          'hue-6-2': $9\n        }\n      } = themeRef.value\n      const { internalFontSize } = props\n      return {\n        '--n-font-size': internalFontSize ? `${internalFontSize}px` : fontSize,\n        '--n-font-family': fontFamilyMono,\n        '--n-font-weight-strong': fontWeightStrong,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-mono-3': $1,\n        '--n-hue-1': $2,\n        '--n-hue-2': $3,\n        '--n-hue-3': $4,\n        '--n-hue-4': $5,\n        '--n-hue-5': $6,\n        '--n-hue-5-2': $7,\n        '--n-hue-6': $8,\n        '--n-hue-6-2': $9,\n        '--n-line-number-text-color': lineNumberTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'code',\n          computed(() => {\n            return `${props.internalFontSize || 'a'}`\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      codeRef,\n      mergedShowLineNumbers: mergedShowLineNumbersRef,\n      lineNumbers: computed(() => {\n        let number = 1\n        const numbers: number[] = []\n        let lastIsLineWrap = false\n        for (const char of props.code) {\n          if (char === '\\n') {\n            lastIsLineWrap = true\n            numbers.push(number++)\n          }\n          else {\n            lastIsLineWrap = false\n          }\n        }\n        if (!lastIsLineWrap) {\n          numbers.push(number++)\n        }\n        return numbers.join('\\n')\n      }),\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, wordWrap, mergedShowLineNumbers, onRender } = this\n    onRender?.()\n    return (\n      <code\n        class={[\n          `${mergedClsPrefix}-code`,\n          this.themeClass,\n          wordWrap && `${mergedClsPrefix}-code--word-wrap`,\n          mergedShowLineNumbers && `${mergedClsPrefix}-code--show-line-numbers`\n        ]}\n        style={this.cssVars as any}\n        ref=\"codeRef\"\n      >\n        {mergedShowLineNumbers ? (\n          <pre class={`${mergedClsPrefix}-code__line-numbers`}>\n            {this.lineNumbers}\n          </pre>\n        ) : null}\n        {this.$slots.default?.()}\n      </code>\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    fontWeight,\n    textColor1,\n    textColor2,\n    textColorDisabled,\n    dividerColor,\n    fontSize\n  } = vars\n  return {\n    titleFontSize: fontSize,\n    titleFontWeight: fontWeight,\n    dividerColor,\n    titleTextColor: textColor1,\n    titleTextColorDisabled: textColorDisabled,\n    fontSize,\n    textColor: textColor2,\n    arrowColor: textColor2,\n    arrowColorDisabled: textColorDisabled,\n    itemMargin: '16px 0 0 0',\n    titlePadding: '16px 0 0 0'\n  }\n}\n\nexport interface CollapseThemeVars extends ReturnType<typeof self> {}\n\nconst collapseLight: CollapseTheme = {\n  name: 'Collapse',\n  common: commonLight,\n  self\n}\n\nexport interface CollapseTheme extends Theme<'Collapse', CollapseThemeVars> {}\n\nexport interface CollapseThemeOverrides extends ExtractThemeOverrides<CollapseTheme> {}\n\nexport default collapseLight\n","import type { CollapseTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst collapseDark: CollapseTheme = {\n  name: 'Collapse',\n  common: commonDark,\n  self\n}\n\nexport default collapseDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('collapse', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('collapse-item', [\n      cB('collapse-item', {\n        marginRight: '32px',\n        marginLeft: 0\n      }),\n      cM('left-arrow-placement', [\n        cE('header', [\n          cB('collapse-item-arrow', {\n            marginRight: 0,\n            marginLeft: '4px'\n          })\n        ])\n      ]),\n      cM('right-arrow-placement', [\n        cE('header', [\n          cB('collapse-item-arrow', {\n            marginLeft: 0,\n            marginRight: '4px'\n          })\n        ])\n      ]),\n      cM('active', [\n        cE('header', [\n          cM('active', [\n            cB('collapse-item-arrow', {\n              transform: 'rotate(-90deg)'\n            })\n          ])\n        ])\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const collapseRtl: RtlItem = {\n  name: 'Collapse',\n  style: rtlStyle\n}\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-bezier\n// --n-text-color\n// --n-divider-color\n// --n-title-padding\n// --n-title-font-size\n// --n-title-text-color\n// --n-title-font-weight\n// --n-arrow-color\n// --n-arrow-color-disabled\n// --n-title-text-color-disabled\n// --n-item-margin\nexport default cB('collapse', 'width: 100%;', [\n  cB('collapse-item', `\n    font-size: var(--n-font-size);\n    color: var(--n-text-color);\n    transition:\n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n    margin: var(--n-item-margin);\n  `, [\n    cM('disabled', [\n      cE('header', 'cursor: not-allowed;', [\n        cE('header-main', `\n          color: var(--n-title-text-color-disabled);\n        `),\n        cB('collapse-item-arrow', `\n          color: var(--n-arrow-color-disabled);\n        `)\n      ])\n    ]),\n    cB('collapse-item', 'margin-left: 32px;'),\n    c('&:first-child', 'margin-top: 0;'),\n    c('&:first-child >', [\n      cE('header', 'padding-top: 0;')\n    ]),\n    cM('left-arrow-placement', [\n      cE('header', [\n        cB('collapse-item-arrow', 'margin-right: 4px;')\n      ])\n    ]),\n    cM('right-arrow-placement', [\n      cE('header', [\n        cB('collapse-item-arrow', 'margin-left: 4px;')\n      ])\n    ]),\n    cE('content-wrapper', [\n      cE('content-inner', 'padding-top: 16px;'),\n      fadeInHeightExpandTransition({ duration: '0.15s' })\n    ]),\n    cM('active', [\n      cE('header', [\n        cM('active', [\n          cB('collapse-item-arrow', 'transform: rotate(90deg);')\n        ])\n      ])\n    ]),\n    c('&:not(:first-child)', 'border-top: 1px solid var(--n-divider-color);'),\n    cNotM('disabled', [\n      cM('trigger-area-main', [\n        cE('header', [\n          cE('header-main', 'cursor: pointer;'),\n          cB('collapse-item-arrow', 'cursor: default;')\n        ])\n      ]),\n      cM('trigger-area-arrow', [\n        cE('header', [\n          cB('collapse-item-arrow', 'cursor: pointer;')\n        ])\n      ]),\n      cM('trigger-area-extra', [\n        cE('header', [\n          cE('header-extra', 'cursor: pointer;')\n        ])\n      ])\n    ]),\n    cE('header', `\n      font-size: var(--n-title-font-size);\n      display: flex;\n      flex-wrap: nowrap;\n      align-items: center;\n      transition: color .3s var(--n-bezier);\n      position: relative;\n      padding: var(--n-title-padding);\n      color: var(--n-title-text-color);\n    `, [\n      cE('header-main', `\n        display: flex;\n        flex-wrap: nowrap;\n        align-items: center;\n        font-weight: var(--n-title-font-weight);\n        transition: color .3s var(--n-bezier);\n        flex: 1;\n        color: var(--n-title-text-color);\n      `),\n      cE('header-extra', `\n        display: flex;\n        align-items: center;\n        transition: color .3s var(--n-bezier);\n        color: var(--n-text-color);\n      `),\n      cB('collapse-item-arrow', `\n        display: flex;\n        transition:\n          transform .15s var(--n-bezier),\n          color .3s var(--n-bezier);\n        font-size: 18px;\n        color: var(--n-arrow-color);\n      `)\n    ])\n  ])\n])\n","import type {\n  CSSProperties,\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { CollapseTheme, CollapseThemeOverrides } from '../styles'\nimport type {\n  CollapseArrowSlotProps,\n  CollapseItemHeaderExtraSlotProps,\n  CollapseItemHeaderSlotProps,\n  HeaderClickInfo,\n  OnItemHeaderClick,\n  OnItemHeaderClickImpl,\n  OnUpdateExpandedNames,\n  OnUpdateExpandedNamesImpl\n} from './interface'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, provide, ref } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, createInjectionKey, warn } from '../../_utils'\nimport { collapseLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const collapseProps = {\n  ...(useTheme.props as ThemeProps<CollapseTheme, CollapseThemeOverrides>),\n  defaultExpandedNames: {\n    type: [Array, String] as PropType<\n      string | number | Array<string | number> | null\n    >,\n    default: null\n  },\n  expandedNames: [Array, String] as PropType<\n    string | number | Array<string | number> | null\n  >,\n  arrowPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'left'\n  },\n  accordion: Boolean,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'if'\n  },\n  triggerAreas: {\n    type: Array as PropType<Array<'main' | 'extra' | 'arrow'>>,\n    default: () => ['main', 'extra', 'arrow']\n  },\n  onItemHeaderClick: [Function, Array] as PropType<\n    MaybeArray<OnItemHeaderClick>\n  >,\n  'onUpdate:expandedNames': [Function, Array] as PropType<\n    MaybeArray<OnUpdateExpandedNames>\n  >,\n  onUpdateExpandedNames: [Function, Array] as PropType<\n    MaybeArray<OnUpdateExpandedNames>\n  >,\n  // deprecated\n  onExpandedNamesChange: {\n    type: [Function, Array] as PropType<\n      MaybeArray<OnUpdateExpandedNames> | undefined\n    >,\n    validator: () => {\n      if (__DEV__) {\n        warn(\n          'collapse',\n          '`on-expanded-names-change` is deprecated, please use `on-update:expanded-names` instead.'\n        )\n      }\n      return true\n    },\n    default: undefined\n  }\n} as const\n\nexport type CollapseProps = ExtractPublicPropTypes<typeof collapseProps>\n\nexport interface CollapseSlots {\n  default?: () => VNode[]\n  arrow?: (props: CollapseArrowSlotProps) => VNode[]\n  header?: (props: CollapseItemHeaderSlotProps) => VNode[]\n  'header-extra'?: (props: CollapseItemHeaderExtraSlotProps) => VNode[]\n}\n\nexport interface NCollapseInjection {\n  props: ExtractPropTypes<typeof collapseProps>\n  expandedNamesRef: Ref<string | number | Array<string | number> | null>\n  mergedClsPrefixRef: Ref<string>\n  slots: CollapseSlots\n  toggleItem: (\n    collapse: boolean,\n    name: string | number,\n    event: MouseEvent\n  ) => void\n}\n\nexport const collapseInjectionKey\n  = createInjectionKey<NCollapseInjection>('n-collapse')\n\nexport default defineComponent({\n  name: 'Collapse',\n  props: collapseProps,\n  slots: Object as SlotsType<CollapseSlots>,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const uncontrolledExpandedNamesRef = ref<\n      string | number | Array<string | number> | null\n    >(props.defaultExpandedNames)\n    const controlledExpandedNamesRef = computed(() => props.expandedNames)\n    const mergedExpandedNamesRef = useMergedState(\n      controlledExpandedNamesRef,\n      uncontrolledExpandedNamesRef\n    )\n    const themeRef = useTheme(\n      'Collapse',\n      '-collapse',\n      style,\n      collapseLight,\n      props,\n      mergedClsPrefixRef\n    )\n    function doUpdateExpandedNames(\n      names: Array<string | number> | string | number\n    ): void {\n      const {\n        'onUpdate:expandedNames': _onUpdateExpandedNames,\n        onUpdateExpandedNames,\n        onExpandedNamesChange\n      } = props\n      if (onUpdateExpandedNames) {\n        call(onUpdateExpandedNames as OnUpdateExpandedNamesImpl, names)\n      }\n      if (_onUpdateExpandedNames) {\n        call(_onUpdateExpandedNames as OnUpdateExpandedNamesImpl, names)\n      }\n      if (onExpandedNamesChange) {\n        call(onExpandedNamesChange as OnUpdateExpandedNamesImpl, names)\n      }\n      uncontrolledExpandedNamesRef.value = names\n    }\n    function doItemHeaderClick<T extends string | number>(\n      info: HeaderClickInfo<T>\n    ): void {\n      const { onItemHeaderClick } = props\n      if (onItemHeaderClick) {\n        call(onItemHeaderClick as OnItemHeaderClickImpl, info)\n      }\n    }\n    function toggleItem(\n      collapse: boolean,\n      name: string | number,\n      event: MouseEvent\n    ): void {\n      const { accordion } = props\n      const { value: expandedNames } = mergedExpandedNamesRef\n      if (accordion) {\n        if (collapse) {\n          doUpdateExpandedNames([name])\n          doItemHeaderClick({ name, expanded: true, event })\n        }\n        else {\n          doUpdateExpandedNames([])\n          doItemHeaderClick({ name, expanded: false, event })\n        }\n      }\n      else {\n        if (!Array.isArray(expandedNames)) {\n          doUpdateExpandedNames([name])\n          doItemHeaderClick({ name, expanded: true, event })\n        }\n        else {\n          const activeNames = expandedNames.slice()\n          const index = activeNames.findIndex(\n            activeName => name === activeName\n          )\n          if (~index) {\n            activeNames.splice(index, 1)\n            doUpdateExpandedNames(activeNames)\n            doItemHeaderClick({ name, expanded: false, event })\n          }\n          else {\n            activeNames.push(name)\n            doUpdateExpandedNames(activeNames)\n            doItemHeaderClick({ name, expanded: true, event })\n          }\n        }\n      }\n    }\n    provide(collapseInjectionKey, {\n      props,\n      mergedClsPrefixRef,\n      expandedNamesRef: mergedExpandedNamesRef,\n      slots,\n      toggleItem\n    })\n    const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          titleFontWeight,\n          dividerColor,\n          titlePadding,\n          titleTextColor,\n          titleTextColorDisabled,\n          textColor,\n          arrowColor,\n          fontSize,\n          titleFontSize,\n          arrowColorDisabled,\n          itemMargin\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-divider-color': dividerColor,\n        '--n-title-padding': titlePadding,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-text-color': titleTextColor,\n        '--n-title-text-color-disabled': titleTextColorDisabled,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-arrow-color': arrowColor,\n        '--n-arrow-color-disabled': arrowColorDisabled,\n        '--n-item-margin': itemMargin\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('collapse', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedTheme: themeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${this.mergedClsPrefix}-collapse`,\n          this.rtlEnabled && `${this.mergedClsPrefix}-collapse--rtl`,\n          this.themeClass\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { useFalseUntilTruthy } from 'vooks'\nimport { defineComponent, h, toRef, vShow, withDirectives } from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\n\nexport default defineComponent({\n  name: 'CollapseItemContent',\n  props: {\n    displayDirective: {\n      type: String as PropType<'if' | 'show'>,\n      required: true\n    },\n    show: Boolean,\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    const onceTrueRef = useFalseUntilTruthy(toRef(props, 'show'))\n    return {\n      onceTrue: onceTrueRef\n    }\n  },\n  render() {\n    return (\n      <NFadeInExpandTransition>\n        {{\n          default: () => {\n            const { show, displayDirective, onceTrue, clsPrefix } = this\n            const useVShow = displayDirective === 'show' && onceTrue\n            const contentNode = (\n              <div class={`${clsPrefix}-collapse-item__content-wrapper`}>\n                <div class={`${clsPrefix}-collapse-item__content-inner`}>\n                  {this.$slots.default?.()}\n                </div>\n              </div>\n            )\n            return useVShow\n              ? withDirectives(contentNode, [[vShow, show]])\n              : show\n                ? contentNode\n                : null\n          }\n        }}\n      </NFadeInExpandTransition>\n    )\n  }\n})\n","import type { PropType, VNode } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type {\n  CollapseItemArrowSlotProps,\n  CollapseItemHeaderExtraSlotProps,\n  CollapseItemHeaderSlotProps\n} from './interface'\nimport { createId, happensIn } from 'seemly'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, toRef } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  ChevronLeftIcon as ArrowLeftIcon,\n  ChevronRightIcon as ArrowRightIcon\n} from '../../_internal/icons'\nimport { useConfig } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  resolveSlotWithTypedProps,\n  resolveWrappedSlotWithProps,\n  throwError\n} from '../../_utils'\nimport { collapseInjectionKey } from './Collapse'\nimport NCollapseItemContent from './CollapseItemContent'\n\nexport const collapseItemProps = {\n  title: String,\n  name: [String, Number] as PropType<string | number>,\n  disabled: Boolean,\n  displayDirective: String as PropType<'if' | 'show'>\n} as const\n\nexport type CollapseItemProps = ExtractPublicPropTypes<typeof collapseItemProps>\n\nexport interface CollapseItemSlots {\n  default?: () => VNode[]\n  header?: (props: CollapseItemHeaderSlotProps) => VNode[]\n  'header-extra'?: (props: CollapseItemHeaderExtraSlotProps) => VNode[]\n  arrow?: (props: CollapseItemArrowSlotProps) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'CollapseItem',\n  props: collapseItemProps,\n  setup(props) {\n    const { mergedRtlRef } = useConfig(props)\n    const randomName = createId()\n    const mergedNameRef = useMemo(() => {\n      return props.name ?? randomName\n    })\n    const NCollapse = inject(collapseInjectionKey)\n    if (!NCollapse) {\n      throwError(\n        'collapse-item',\n        '`n-collapse-item` must be placed inside `n-collapse`.'\n      )\n    }\n    const {\n      expandedNamesRef,\n      props: collapseProps,\n      mergedClsPrefixRef,\n      slots: collapseSlots\n    } = NCollapse\n\n    const collapsedRef = computed<boolean>(() => {\n      const { value: expandedNames } = expandedNamesRef\n      if (Array.isArray(expandedNames)) {\n        const { value: name } = mergedNameRef\n        return !~expandedNames.findIndex(\n          expandedName => expandedName === name\n        )\n      }\n      else if (expandedNames) {\n        const { value: name } = mergedNameRef\n        return name !== expandedNames\n      }\n      return true\n    })\n    const rtlEnabledRef = useRtl('Collapse', mergedRtlRef, mergedClsPrefixRef)\n    return {\n      rtlEnabled: rtlEnabledRef,\n      collapseSlots,\n      randomName,\n      mergedClsPrefix: mergedClsPrefixRef,\n      collapsed: collapsedRef,\n      triggerAreas: toRef(collapseProps, 'triggerAreas'),\n      mergedDisplayDirective: computed<'if' | 'show'>(() => {\n        const { displayDirective } = props\n        if (displayDirective) {\n          return displayDirective\n        }\n        else {\n          return collapseProps.displayDirective\n        }\n      }),\n      arrowPlacement: computed<'left' | 'right'>(() => {\n        return collapseProps.arrowPlacement\n      }),\n      handleClick(e: MouseEvent) {\n        let happensInArea: 'arrow' | 'main' | 'extra' = 'main'\n        if (happensIn(e, 'arrow'))\n          happensInArea = 'arrow'\n        if (happensIn(e, 'extra'))\n          happensInArea = 'extra'\n        if (!collapseProps.triggerAreas.includes(happensInArea)) {\n          return\n        }\n        if (NCollapse && !props.disabled) {\n          NCollapse.toggleItem(collapsedRef.value, mergedNameRef.value, e)\n        }\n      }\n    }\n  },\n  render() {\n    const {\n      collapseSlots,\n      $slots,\n      arrowPlacement,\n      collapsed,\n      mergedDisplayDirective,\n      mergedClsPrefix,\n      disabled,\n      triggerAreas\n    } = this\n    const headerNode = resolveSlotWithTypedProps(\n      $slots.header,\n      { collapsed },\n      () => [this.title]\n    )\n    const headerExtraSlot\n      = $slots['header-extra'] || collapseSlots['header-extra']\n    const arrowSlot = $slots.arrow || collapseSlots.arrow\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-collapse-item`,\n          `${mergedClsPrefix}-collapse-item--${arrowPlacement}-arrow-placement`,\n          disabled && `${mergedClsPrefix}-collapse-item--disabled`,\n          !collapsed && `${mergedClsPrefix}-collapse-item--active`,\n          triggerAreas.map((area) => {\n            return `${mergedClsPrefix}-collapse-item--trigger-area-${area}`\n          })\n        ]}\n      >\n        <div\n          class={[\n            `${mergedClsPrefix}-collapse-item__header`,\n            !collapsed && `${mergedClsPrefix}-collapse-item__header--active`\n          ]}\n        >\n          <div\n            class={`${mergedClsPrefix}-collapse-item__header-main`}\n            onClick={this.handleClick}\n          >\n            {arrowPlacement === 'right' && headerNode}\n            <div\n              class={`${mergedClsPrefix}-collapse-item-arrow`}\n              key={this.rtlEnabled ? 0 : 1}\n              data-arrow\n            >\n              {resolveSlotWithTypedProps(arrowSlot, { collapsed }, () => [\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{\n                    default: () =>\n                      this.rtlEnabled ? <ArrowLeftIcon /> : <ArrowRightIcon />\n                  }}\n                </NBaseIcon>\n              ])}\n            </div>\n            {arrowPlacement === 'left' && headerNode}\n          </div>\n          {resolveWrappedSlotWithProps(\n            headerExtraSlot,\n            { collapsed },\n            children => (\n              <div\n                class={`${mergedClsPrefix}-collapse-item__header-extra`}\n                onClick={this.handleClick}\n                data-extra\n              >\n                {children}\n              </div>\n            )\n          )}\n        </div>\n        <NCollapseItemContent\n          clsPrefix={mergedClsPrefix}\n          displayDirective={mergedDisplayDirective}\n          show={!collapsed}\n        >\n          {$slots}\n        </NCollapseItemContent>\n      </div>\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { cubicBezierEaseInOut } = vars\n  return {\n    bezier: cubicBezierEaseInOut\n  }\n}\n\nexport interface CollapseTransitionThemeVars extends ReturnType<typeof self> {}\n\nconst collapseTransitionLight: CollapseTransitionTheme = {\n  name: 'CollapseTransition',\n  common: commonLight,\n  self\n}\n\nexport interface CollapseTransitionTheme extends Theme<\n  'CollapseTransition',\n  CollapseTransitionThemeVars\n> {}\n\nexport interface CollapseTransitionThemeOverrides extends ExtractThemeOverrides<CollapseTransitionTheme> {}\n\nexport default collapseTransitionLight\n","import type { CollapseTransitionTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst collapseTransitionDark: CollapseTransitionTheme = {\n  name: 'CollapseTransition',\n  common: commonDark,\n  self\n}\n\nexport default collapseTransitionDark\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('collapse-transition', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const collapseTransitionRtl: RtlItem = {\n  name: 'CollapseTransition',\n  style: rtlStyle\n}\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { cB } from '../../../_utils/cssr'\n\nexport default cB('collapse-transition', {\n  width: '100%'\n}, [\n  fadeInHeightExpandTransition()\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type {\n  CollapseTransitionTheme,\n  CollapseTransitionThemeOverrides\n} from '../styles'\nimport { useFalseUntilTruthy } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  vShow,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { warnOnce } from '../../_utils'\nimport { collapseTransitionLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const collapseTransitionProps = {\n  ...(useTheme.props as ThemeProps<\n    CollapseTransitionTheme,\n    CollapseTransitionThemeOverrides\n  >),\n  show: {\n    type: Boolean,\n    default: true\n  },\n  appear: Boolean,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'if'\n  },\n  // The collapsed is implemented with mistake, collapsed=true would make it show\n  // However there's no possibility to change so I just let it deprecated and use\n  // `show` prop instead.\n  /** @deprecated */\n  collapsed: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  }\n} as const\n\nexport type CollapseTransitionProps = ExtractPublicPropTypes<\n  typeof collapseTransitionProps\n>\n\nexport default defineComponent({\n  name: 'CollapseTransition',\n  props: collapseTransitionProps,\n  inheritAttrs: false,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.collapsed !== undefined) {\n          warnOnce(\n            'collapse-transition',\n            '`collapsed` is deprecated, please use `show` instead'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const mergedThemeRef = useTheme(\n      'CollapseTransition',\n      '-collapse-transition',\n      style,\n      collapseTransitionLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl(\n      'CollapseTransition',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const mergedShowRef = computed(() => {\n      if (props.collapsed !== undefined) {\n        // No mistake, it's implemented with error at first, just keep it here\n        return props.collapsed\n      }\n      return props.show\n    })\n    const onceTrueRef = useFalseUntilTruthy(mergedShowRef)\n\n    const cssVarsRef = computed(() => {\n      const {\n        self: { bezier }\n      } = mergedThemeRef.value\n      return {\n        '--n-bezier': bezier\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('collapse-transition', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedShow: mergedShowRef,\n      onceTrue: onceTrueRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    return (\n      <NFadeInExpandTransition appear={this.appear}>\n        {{\n          default: () => {\n            const { mergedShow, displayDirective, onceTrue } = this\n            const useVShow = displayDirective === 'show' && onceTrue\n            if (!useVShow && !mergedShow)\n              return\n            this.onRender?.()\n            const contentNode = h(\n              'div', // Don't use jsx since it would cause useless spread in each rendering\n              mergeProps(\n                {\n                  class: [\n                    `${this.mergedClsPrefix}-collapse-transition`,\n                    this.rtlEnabled\n                    && `${this.mergedClsPrefix}-collapse-transition--rtl`,\n                    this.themeClass\n                  ],\n                  style: this.cssVars\n                },\n                this.$attrs\n              ),\n              this.$slots\n            )\n            return useVShow\n              ? withDirectives(contentNode, [[vShow, mergedShow]])\n              : contentNode\n          }\n        }}\n      </NFadeInExpandTransition>\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    fontSize,\n    boxShadow2,\n    popoverColor,\n    textColor2,\n    borderRadius,\n    borderColor,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    dividerColor\n  } = vars\n  return {\n    panelFontSize: fontSize,\n    boxShadow: boxShadow2,\n    color: popoverColor,\n    textColor: textColor2,\n    borderRadius,\n    border: `1px solid ${borderColor}`,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    dividerColor\n  }\n}\n\nexport interface ColorPickerThemeVars extends ReturnType<typeof self> {}\n\nconst colorPickerLight: ColorPickerTheme = createTheme({\n  name: 'ColorPicker',\n  common: commonLight,\n  peers: {\n    Input: inputLight,\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface ColorPickerTheme extends Theme<\n  'ColorPicker',\n  ColorPickerThemeVars,\n  {\n    Input: InputTheme\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface ColorPickerThemeOverrides extends ExtractThemeOverrides<ColorPickerTheme> {}\n\nexport default colorPickerLight\n","import type { ColorPickerTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\nimport { self } from './light'\n\nconst colorPickerDark: ColorPickerTheme = {\n  name: 'ColorPicker',\n  common: commonDark,\n  peers: {\n    Input: inputDark,\n    Button: buttonDark\n  },\n  self\n}\n\nexport default colorPickerDark\n","import type { HSLA, RGB } from 'seemly'\nimport {\n  hsl2hsv,\n  hsl2rgb,\n  hsla,\n  hsv2hsl,\n  hsv2rgb,\n  hsva,\n  rgb2hsl,\n  rgb2hsv,\n  rgba,\n  toHexaString,\n  toHslaString,\n  toHsvaString,\n  toRgbaString\n} from 'seemly'\nimport { warn } from '../../_utils'\n\nexport type ColorPickerMode = 'rgb' | 'hsl' | 'hsv' | 'hex'\n\nexport type ActionType = 'confirm' | 'clear'\n\nexport function deriveDefaultValue(\n  modes: ColorPickerMode[],\n  showAlpha: boolean\n): string {\n  const mode = modes[0]\n  switch (mode) {\n    case 'hex':\n      return showAlpha ? '#000000FF' : '#000000'\n    case 'rgb':\n      return showAlpha ? 'rgba(0, 0, 0, 1)' : 'rgb(0, 0, 0)'\n    case 'hsl':\n      return showAlpha ? 'hsla(0, 0%, 0%, 1)' : 'hsl(0, 0%, 0%)'\n    case 'hsv':\n      return showAlpha ? 'hsva(0, 0%, 0%, 1)' : 'hsv(0, 0%, 0%)'\n  }\n  if (__DEV__)\n    warn('color-picker', 'props.modes is invalid.')\n  // in case of invalid modes\n  return '#000000'\n}\n\nexport function getModeFromValue(color: string | null): ColorPickerMode | null {\n  if (color === null)\n    return null\n  if (/^ *#/.test(color))\n    return 'hex'\n  if (color.includes('rgb'))\n    return 'rgb'\n  if (color.includes('hsl'))\n    return 'hsl'\n  if (color.includes('hsv'))\n    return 'hsv'\n  return null\n}\n\nexport function getWCAGContrast(\n  hsla: HSLA,\n  contrastColor: RGB = [255, 255, 255],\n  level: 'AA' | 'AAA' = 'AA'\n): boolean {\n  const [r, g, b, a] = rgba(toHslaString(hsla))\n\n  if (a === 1) {\n    const luminance1 = rgb2luminance([r, g, b])\n    const luminance2 = rgb2luminance(contrastColor)\n    const contrast\n      = (Math.max(luminance1, luminance2) + 0.05)\n        / (Math.min(luminance1, luminance2) + 0.05)\n    return contrast >= (level === 'AA' ? 4.5 : 7)\n  }\n\n  const blendedR = Math.round(r * a + contrastColor[0] * (1 - a))\n  const blendedG = Math.round(g * a + contrastColor[1] * (1 - a))\n  const blendedB = Math.round(b * a + contrastColor[2] * (1 - a))\n\n  const luminanceBlended = rgb2luminance([blendedR, blendedG, blendedB])\n  const luminanceWhite = rgb2luminance(contrastColor)\n  const contrastBlended\n    = (Math.max(luminanceBlended, luminanceWhite) + 0.05)\n      / (Math.min(luminanceBlended, luminanceWhite) + 0.05)\n\n  return contrastBlended >= (level === 'AA' ? 4.5 : 7)\n}\n\nfunction rgb2luminance(rgb: RGB): number {\n  const [cr, cg, cb] = rgb.map((c) => {\n    c /= 255\n    return c <= 0.03928 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4\n  })\n  return 0.2126 * cr + 0.7152 * cg + 0.0722 * cb\n}\n\nexport function floor(color: number[]): number[] {\n  return color.map(channel => Math.floor(channel))\n}\n\nexport function normalizeHue(hue: number): number {\n  hue = Math.round(hue)\n  return hue >= 360 ? 359 : hue < 0 ? 0 : hue\n}\n\nexport function normalizeAlpha(alpha: number): number {\n  alpha = Math.round(alpha * 100) / 100\n  return alpha > 1 ? 1 : alpha < 0 ? 0 : alpha\n}\n\nconst convert = {\n  rgb: {\n    hex(value: string): string {\n      return toHexaString(rgba(value))\n    },\n    hsl(value: string): string {\n      const [r, g, b, a] = rgba(value)\n      return toHslaString([...rgb2hsl(r, g, b), a])\n    },\n    hsv(value: string): string {\n      const [r, g, b, a] = rgba(value)\n      return toHsvaString([...rgb2hsv(r, g, b), a])\n    }\n  },\n  hex: {\n    rgb(value: string): string {\n      return toRgbaString(rgba(value))\n    },\n    hsl(value: string): string {\n      const [r, g, b, a] = rgba(value)\n      return toHslaString([...rgb2hsl(r, g, b), a])\n    },\n    hsv(value: string): string {\n      const [r, g, b, a] = rgba(value)\n      return toHsvaString([...rgb2hsv(r, g, b), a])\n    }\n  },\n  hsl: {\n    hex(value: string): string {\n      const [h, s, l, a] = hsla(value)\n      return toHexaString([...hsl2rgb(h, s, l), a])\n    },\n    rgb(value: string): string {\n      const [h, s, l, a] = hsla(value)\n      return toRgbaString([...hsl2rgb(h, s, l), a])\n    },\n    hsv(value: string): string {\n      const [h, s, l, a] = hsla(value)\n      return toHsvaString([...hsl2hsv(h, s, l), a])\n    }\n  },\n  hsv: {\n    hex(value: string): string {\n      const [h, s, v, a] = hsva(value)\n      return toHexaString([...hsv2rgb(h, s, v), a])\n    },\n    rgb(value: string) {\n      const [h, s, v, a] = hsva(value)\n      return toRgbaString([...hsv2rgb(h, s, v), a])\n    },\n    hsl(value: string): string {\n      const [h, s, v, a] = hsva(value)\n      return toHslaString([...hsv2hsl(h, s, v), a])\n    }\n  }\n} as const\n\n/**\n * Convert color value by mode\n */\n// overload 1: known type of color conversion\n// we have built-in color conversion\n// return value can be determined as `string`\nexport function convertColor(\n  value: string,\n  mode: ColorPickerMode,\n  originalMode: ColorPickerMode\n): string\n// overload 2: unknown type of color conversion\n// the color value may be invalid\n// so the return value may be `null`\nexport function convertColor(\n  value: string,\n  mode: ColorPickerMode,\n  originalMode?: null\n): string | null\n// implementation\nexport function convertColor(\n  value: string,\n  mode: ColorPickerMode,\n  originalMode?: ColorPickerMode | null\n): string | null {\n  originalMode = originalMode || getModeFromValue(value)\n\n  if (!originalMode)\n    return null\n  if (originalMode === mode)\n    return value\n\n  const conversions = convert[originalMode]\n  return (conversions as any)[mode](value)\n}\n","import type { RGBA } from 'seemly'\nimport type { PropType } from 'vue'\nimport { off, on } from 'evtd'\nimport { toRgbaString } from 'seemly'\nimport { computed, defineComponent, h, ref } from 'vue'\nimport { normalizeAlpha } from './utils'\n\nconst HANDLE_SIZE = '12px'\nconst HANDLE_SIZE_NUM = 12\nconst RADIUS = '6px'\n\nexport default defineComponent({\n  name: 'AlphaSlider',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    rgba: {\n      type: Array as unknown as PropType<RGBA | null>,\n      default: null\n    },\n    alpha: {\n      type: Number,\n      default: 0\n    },\n    onUpdateAlpha: {\n      type: Function as PropType<(value: number) => void>,\n      required: true\n    },\n    onComplete: Function as PropType<() => void>\n  },\n  setup(props) {\n    const railRef = ref<HTMLElement | null>(null)\n    function handleMouseDown(e: MouseEvent): void {\n      if (!railRef.value || !props.rgba)\n        return\n      on('mousemove', document, handleMouseMove)\n      on('mouseup', document, handleMouseUp)\n      handleMouseMove(e)\n    }\n    function handleMouseMove(e: MouseEvent): void {\n      const { value: railEl } = railRef\n      if (!railEl)\n        return\n      const { width, left } = railEl.getBoundingClientRect()\n      const newAlpha = (e.clientX - left) / (width - HANDLE_SIZE_NUM)\n      props.onUpdateAlpha(normalizeAlpha(newAlpha))\n    }\n    function handleMouseUp(): void {\n      off('mousemove', document, handleMouseMove)\n      off('mouseup', document, handleMouseUp)\n      props.onComplete?.()\n    }\n    return {\n      railRef,\n      railBackgroundImage: computed(() => {\n        const { rgba } = props\n        if (!rgba)\n          return ''\n        return `linear-gradient(to right, rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, 0) 0%, rgba(${rgba[0]}, ${rgba[1]}, ${rgba[2]}, 1) 100%)`\n      }),\n      handleMouseDown\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div\n        class={`${clsPrefix}-color-picker-slider`}\n        ref=\"railRef\"\n        style={{\n          height: HANDLE_SIZE,\n          borderRadius: RADIUS\n        }}\n        onMousedown={this.handleMouseDown}\n      >\n        <div\n          style={{\n            borderRadius: RADIUS,\n            position: 'absolute',\n            left: 0,\n            right: 0,\n            top: 0,\n            bottom: 0,\n            overflow: 'hidden'\n          }}\n        >\n          <div class={`${clsPrefix}-color-picker-checkboard`} />\n          <div\n            class={`${clsPrefix}-color-picker-slider__image`}\n            style={{\n              backgroundImage: this.railBackgroundImage\n            }}\n          />\n        </div>\n        {this.rgba && (\n          <div\n            style={{\n              position: 'absolute',\n              left: RADIUS,\n              right: RADIUS,\n              top: 0,\n              bottom: 0\n            }}\n          >\n            <div\n              class={`${clsPrefix}-color-picker-handle`}\n              style={{\n                left: `calc(${this.alpha * 100}% - ${RADIUS})`,\n                borderRadius: RADIUS,\n                width: HANDLE_SIZE,\n                height: HANDLE_SIZE\n              }}\n            >\n              <div\n                class={`${clsPrefix}-color-picker-handle__fill`}\n                style={{\n                  backgroundColor: toRgbaString(this.rgba),\n                  borderRadius: RADIUS,\n                  width: HANDLE_SIZE,\n                  height: HANDLE_SIZE\n                }}\n              />\n            </div>\n          </div>\n        )}\n      </div>\n    )\n  }\n})\n","import type { ComputedRef, Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { ColorPickerTheme } from '../styles'\nimport type { ColorPickerSlots } from './ColorPicker'\nimport type { RenderLabel } from './interface'\nimport { createInjectionKey } from '../../_utils'\n\nexport const colorPickerInjectionKey = createInjectionKey<{\n  themeRef: ComputedRef<MergedTheme<ColorPickerTheme>>\n  colorPickerSlots: ColorPickerSlots\n  renderLabelRef: Ref<RenderLabel | undefined>\n}>('n-color-picker')\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject, ref, watchEffect } from 'vue'\nimport { NInput } from '../../input'\nimport { colorPickerInjectionKey } from './context'\n\n// 0 - 255\nfunction normalizeRgbUnit(value: string): number | false {\n  if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n    return Math.max(0, Math.min(Number.parseInt(value), 255))\n  }\n  return false\n}\n\n// 0 - 360\nfunction normalizeHueUnit(value: string): number | false {\n  if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n    return Math.max(0, Math.min(Number.parseInt(value), 360))\n  }\n  return false\n}\n\n// 0 - 100\nfunction normalizeSlvUnit(value: string): number | false {\n  if (/^\\d{1,3}\\.?\\d*$/.test(value.trim())) {\n    return Math.max(0, Math.min(Number.parseInt(value), 100))\n  }\n  return false\n}\n\nfunction normalizeHexaUnit(value: string): boolean {\n  const trimmedValue = value.trim()\n  if (/^#[0-9a-fA-F]+$/.test(trimmedValue)) {\n    return [4, 5, 7, 9].includes(trimmedValue.length)\n  }\n  return false\n}\n\n// 0 - 100%\nfunction normalizeAlphaUnit(value: string): number | false {\n  if (/^\\d{1,3}\\.?\\d*%$/.test(value.trim())) {\n    return Math.max(0, Math.min(Number.parseInt(value) / 100, 100))\n  }\n  return false\n}\n\nconst inputThemeOverrides = {\n  paddingSmall: '0 4px'\n}\n\nexport default defineComponent({\n  name: 'ColorInputUnit',\n  props: {\n    label: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: [Number, String] as PropType<number | string | null>,\n      default: null\n    },\n    showAlpha: Boolean,\n    onUpdateValue: {\n      type: Function as PropType<(value: number | string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const inputValueRef = ref<string>('')\n    const { themeRef } = inject(colorPickerInjectionKey, null)!\n    watchEffect(() => {\n      inputValueRef.value = getInputString()\n    })\n    function getInputString(): string {\n      const { value } = props\n      if (value === null)\n        return ''\n      const { label } = props\n      if (label === 'HEX') {\n        return value as string\n      }\n      if (label === 'A') {\n        return `${Math.floor((value as number) * 100)}%`\n      }\n      return String(Math.floor(value as number))\n    }\n    function handleInputUpdateValue(value: string): void {\n      inputValueRef.value = value\n    }\n    function handleInputChange(value: string): void {\n      let unit: number | false\n      let valid: boolean\n      switch (props.label) {\n        case 'HEX':\n          valid = normalizeHexaUnit(value)\n          if (valid) {\n            props.onUpdateValue(value)\n          }\n          inputValueRef.value = getInputString() // to normalized new value\n          break\n        case 'H':\n          unit = normalizeHueUnit(value)\n          if (unit === false) {\n            inputValueRef.value = getInputString()\n          }\n          else {\n            props.onUpdateValue(unit)\n          }\n          break\n        case 'S':\n        case 'L':\n        case 'V':\n          unit = normalizeSlvUnit(value)\n          if (unit === false) {\n            inputValueRef.value = getInputString()\n          }\n          else {\n            props.onUpdateValue(unit)\n          }\n          break\n        case 'A':\n          unit = normalizeAlphaUnit(value)\n          if (unit === false) {\n            inputValueRef.value = getInputString()\n          }\n          else {\n            props.onUpdateValue(unit)\n          }\n          break\n        case 'R':\n        case 'G':\n        case 'B':\n          unit = normalizeRgbUnit(value)\n          if (unit === false) {\n            inputValueRef.value = getInputString()\n          }\n          else {\n            props.onUpdateValue(unit)\n          }\n          break\n      }\n    }\n    return {\n      mergedTheme: themeRef,\n      inputValue: inputValueRef,\n      handleInputChange,\n      handleInputUpdateValue\n    }\n  },\n  render() {\n    const { mergedTheme } = this\n    return (\n      <NInput\n        size=\"small\"\n        placeholder={this.label}\n        theme={mergedTheme.peers.Input}\n        themeOverrides={mergedTheme.peerOverrides.Input}\n        builtinThemeOverrides={inputThemeOverrides}\n        value={this.inputValue}\n        onUpdateValue={this.handleInputUpdateValue}\n        onChange={this.handleInputChange}\n        // add more space for xxx% input\n        style={this.label === 'A' ? 'flex-grow: 1.25;' : ''}\n      />\n    )\n  }\n})\n","import type { HSL, HSLA, HSV, HSVA, RGB, RGBA } from 'seemly'\nimport type { PropType } from 'vue'\nimport type { ColorPickerMode } from './utils'\nimport {\n  toHexaString,\n  toHexString,\n  toHslaString,\n  toHslString,\n  toHsvaString,\n  toHsvString,\n  toRgbaString,\n  toRgbString\n} from 'seemly'\nimport { defineComponent, h } from 'vue'\nimport { NInputGroup } from '../../input'\nimport ColorInputUnit from './ColorInputUnit'\n\nexport default defineComponent({\n  name: 'ColorInput',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    mode: {\n      type: String as PropType<ColorPickerMode>,\n      required: true\n    },\n    modes: {\n      type: Array as PropType<ColorPickerMode[]>,\n      required: true\n    },\n    showAlpha: {\n      type: Boolean,\n      required: true\n    },\n    value: {\n      // for hex to get percise value\n      type: String as PropType<string | null>,\n      default: null\n    },\n    valueArr: {\n      type: Array as unknown as PropType<HSVA | RGBA | HSLA | null>,\n      default: null\n    },\n    onUpdateValue: {\n      type: Function as PropType<(value: string) => void>,\n      required: true\n    },\n    onUpdateMode: {\n      type: Function as PropType<() => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    return {\n      handleUnitUpdateValue(index: number, value: number | string) {\n        const { showAlpha } = props\n        if (props.mode === 'hex') {\n          props.onUpdateValue(\n            (showAlpha ? toHexaString : toHexString)(value as string)\n          )\n          return\n        }\n        let nextValueArr: any\n        if (props.valueArr === null) {\n          nextValueArr = [0, 0, 0, 0]\n        }\n        else {\n          nextValueArr = Array.from(props.valueArr) as typeof props.valueArr\n        }\n        switch (props.mode) {\n          case 'hsv':\n            nextValueArr[index] = value\n            props.onUpdateValue(\n              (showAlpha ? toHsvaString : toHsvString)(\n                nextValueArr as HSVA | HSV\n              )\n            )\n            break\n          case 'rgb':\n            nextValueArr[index] = value\n            props.onUpdateValue(\n              (showAlpha ? toRgbaString : toRgbString)(\n                nextValueArr as RGBA | RGB\n              )\n            )\n            break\n          case 'hsl':\n            nextValueArr[index] = value\n            props.onUpdateValue(\n              (showAlpha ? toHslaString : toHslString)(\n                nextValueArr as HSLA | HSL\n              )\n            )\n            break\n        }\n      }\n    }\n  },\n  render() {\n    const { clsPrefix, modes } = this\n    return (\n      <div class={`${clsPrefix}-color-picker-input`}>\n        <div\n          class={`${clsPrefix}-color-picker-input__mode`}\n          onClick={this.onUpdateMode}\n          style={{\n            cursor: modes.length === 1 ? '' : 'pointer'\n          }}\n        >\n          {this.mode.toUpperCase() + (this.showAlpha ? 'A' : '')}\n        </div>\n        <NInputGroup>\n          {{\n            default: () => {\n              const { mode, valueArr, showAlpha } = this\n              if (mode === 'hex') {\n                // hex and rgba shares the same value arr\n                let hexValue: string | null = null\n                try {\n                  hexValue\n                    = valueArr === null\n                      ? null\n                      : (showAlpha ? toHexaString : toHexString)(\n                          valueArr as RGBA\n                        )\n                }\n                catch {}\n                return (\n                  <ColorInputUnit\n                    label=\"HEX\"\n                    showAlpha={showAlpha}\n                    value={hexValue}\n                    onUpdateValue={(unitValue) => {\n                      this.handleUnitUpdateValue(0, unitValue)\n                    }}\n                  />\n                )\n              }\n              return (mode + (showAlpha ? 'a' : '')).split('').map((v, i) => (\n                <ColorInputUnit\n                  label={v.toUpperCase()}\n                  value={valueArr === null ? null : valueArr[i]}\n                  onUpdateValue={(unitValue) => {\n                    this.handleUnitUpdateValue(i, unitValue)\n                  }}\n                />\n              ))\n            }\n          }}\n        </NInputGroup>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ColorPickerMode } from './utils'\nimport { hsv2rgb, hsva, toRgbaString } from 'seemly'\nimport { computed, defineComponent, h } from 'vue'\nimport { warn } from '../../_utils'\nimport { convertColor, getModeFromValue } from './utils'\n\n// Try to normalize the color values to ensure that they are valid CSS colors\nfunction normalizeColor(color: string, mode: ColorPickerMode | null): string {\n  if (mode === 'hsv') {\n    const [h, s, v, a] = hsva(color)\n    return toRgbaString([...hsv2rgb(h, s, v), a])\n  }\n  // For the mode that is not in preset, we keep the original value.\n  // For color names, they are legal to CSS, so we don’t deal with them,\n  // and only standardize them when outputting.\n  return color\n}\n\nfunction getHexFromName(color: string): string {\n  const ctx = document.createElement('canvas').getContext('2d')\n  if (!ctx) {\n    return '#000000'\n  }\n  ctx.fillStyle = color\n  return ctx.fillStyle\n}\n\ninterface ParsedColor {\n  value: string\n  mode: ColorPickerMode | null\n  legalValue: string\n}\n\nexport default defineComponent({\n  name: 'ColorPickerSwatches',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    mode: {\n      type: String as PropType<ColorPickerMode>,\n      required: true\n    },\n    swatches: {\n      type: Array as PropType<string[]>,\n      required: true\n    },\n    onUpdateColor: {\n      type: Function as PropType<(value: string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const parsedSwatchesRef = computed<ParsedColor[]>(() =>\n      props.swatches.map((value) => {\n        const mode = getModeFromValue(value)\n        return {\n          value,\n          mode,\n          legalValue: normalizeColor(value, mode)\n        }\n      })\n    )\n\n    function normalizeOutput(parsed: ParsedColor): string {\n      const { mode: modeProp } = props\n      let { value, mode: swatchColorMode } = parsed\n      // color name is converted to hex\n      if (!swatchColorMode) {\n        swatchColorMode = 'hex'\n        if (/^[a-zA-Z]+$/.test(value)) {\n          value = getHexFromName(value)\n        }\n        else {\n          // for invalid color, we make it black\n          warn('color-picker', `color ${value} in swatches is invalid.`)\n          value = '#000000'\n        }\n      }\n\n      if (swatchColorMode === modeProp)\n        return value\n\n      // swatch value to current mode value\n      return convertColor(value, modeProp, swatchColorMode)\n    }\n\n    function handleSwatchSelect(parsed: ParsedColor): void {\n      props.onUpdateColor(normalizeOutput(parsed))\n    }\n\n    function handleSwatchKeyDown(e: KeyboardEvent, parsed: ParsedColor): void {\n      if (e.key === 'Enter')\n        handleSwatchSelect(parsed)\n    }\n\n    return {\n      parsedSwatchesRef,\n      handleSwatchSelect,\n      handleSwatchKeyDown\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div class={`${clsPrefix}-color-picker-swatches`}>\n        {this.parsedSwatchesRef.map(swatch => (\n          <div\n            class={`${clsPrefix}-color-picker-swatch`}\n            tabindex={0}\n            onClick={() => {\n              this.handleSwatchSelect(swatch)\n            }}\n            onKeydown={(e) => {\n              this.handleSwatchKeyDown(e, swatch)\n            }}\n          >\n            <div\n              class={`${clsPrefix}-color-picker-swatch__fill`}\n              style={{ background: swatch.legalValue }}\n            />\n          </div>\n        ))}\n      </div>\n    )\n  }\n})\n","import type { HSLA } from 'seemly'\nimport type { PropType, SlotsType } from 'vue'\nimport { toHslaString } from 'seemly'\nimport { defineComponent, h, inject } from 'vue'\nimport { colorPickerInjectionKey } from './context'\nimport { getWCAGContrast } from './utils'\n\nexport default defineComponent({\n  name: 'ColorPickerTrigger',\n  slots: Object as SlotsType<Record<string, never>>,\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: String as PropType<string | null>,\n      default: null\n    },\n    hsla: {\n      type: Array as unknown as PropType<HSLA | null>,\n      default: null\n    },\n    disabled: Boolean,\n    onClick: Function as PropType<() => void>\n  },\n  setup(props) {\n    const { colorPickerSlots, renderLabelRef } = inject(\n      colorPickerInjectionKey,\n      null\n    )!\n    return () => {\n      const { hsla, value, clsPrefix, onClick, disabled } = props\n      const renderLabel = colorPickerSlots.label || renderLabelRef.value\n      return (\n        <div\n          class={[\n            `${clsPrefix}-color-picker`,\n            disabled && `${clsPrefix}-color-picker--disabled`\n          ]}\n          onClick={disabled ? undefined : onClick}\n        >\n          <div class={`${clsPrefix}-color-picker__fill`}>\n            <div class={`${clsPrefix}-color-picker-checkboard`} />\n            <div\n              style={{\n                position: 'absolute',\n                left: 0,\n                right: 0,\n                top: 0,\n                bottom: 0,\n                backgroundColor: hsla ? toHslaString(hsla) : ''\n              }}\n            />\n            {value && hsla ? (\n              <div\n                class={`${clsPrefix}-color-picker__value`}\n                style={{\n                  color: getWCAGContrast(hsla) ? 'white' : 'black'\n                }}\n              >\n                {renderLabel ? renderLabel(value) : value}\n              </div>\n            ) : null}\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ColorPickerMode } from './utils'\nimport { defineComponent, h } from 'vue'\nimport { convertColor, getModeFromValue } from './utils'\n\nexport default defineComponent({\n  name: 'ColorPreview',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    mode: {\n      type: String as PropType<ColorPickerMode>,\n      required: true\n    },\n    color: {\n      type: String as PropType<string | null>,\n      default: null,\n      validator: (value: string) => {\n        const mode = getModeFromValue(value)\n        return Boolean(!value || (mode && mode !== 'hsv'))\n      }\n    },\n    onUpdateColor: {\n      type: Function as PropType<(value: string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    function handleChange(e: Event): void {\n      // hex\n      const value = (e.target as HTMLInputElement).value\n      props.onUpdateColor?.(\n        convertColor(value.toUpperCase(), props.mode, 'hex')\n      )\n      e.stopPropagation()\n    }\n\n    return {\n      handleChange\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div class={`${clsPrefix}-color-picker-preview__preview`}>\n        <span\n          class={`${clsPrefix}-color-picker-preview__fill`}\n          style={{\n            background: this.color || '#000000'\n          }}\n        />\n        <input\n          class={`${clsPrefix}-color-picker-preview__input`}\n          type=\"color\"\n          value={this.color}\n          onChange={this.handleChange}\n        />\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { off, on } from 'evtd'\nimport { defineComponent, h, ref } from 'vue'\nimport { normalizeHue } from './utils'\n\nconst HANDLE_SIZE = '12px'\nconst HANDLE_SIZE_NUM = 12\nconst RADIUS = '6px'\nconst RADIUS_NUM = 6\n\nconst GRADIENT\n  = 'linear-gradient(90deg,red,#ff0 16.66%,#0f0 33.33%,#0ff 50%,#00f 66.66%,#f0f 83.33%,red)'\n\nexport default defineComponent({\n  name: 'HueSlider',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    hue: {\n      type: Number,\n      required: true\n    },\n    onUpdateHue: {\n      type: Function as PropType<(value: number) => void>,\n      required: true\n    },\n    onComplete: Function as PropType<() => void>\n  },\n  setup(props) {\n    const railRef = ref<HTMLElement | null>(null)\n    function handleMouseDown(e: MouseEvent): void {\n      if (!railRef.value)\n        return\n      on('mousemove', document, handleMouseMove)\n      on('mouseup', document, handleMouseUp)\n      handleMouseMove(e)\n    }\n    function handleMouseMove(e: MouseEvent): void {\n      const { value: railEl } = railRef\n      if (!railEl)\n        return\n      const { width, left } = railEl.getBoundingClientRect()\n      const newHue = normalizeHue(\n        ((e.clientX - left - RADIUS_NUM) / (width - HANDLE_SIZE_NUM)) * 360\n      )\n      props.onUpdateHue(newHue)\n    }\n    function handleMouseUp(): void {\n      off('mousemove', document, handleMouseMove)\n      off('mouseup', document, handleMouseUp)\n      props.onComplete?.()\n    }\n    return {\n      railRef,\n      handleMouseDown\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div\n        class={`${clsPrefix}-color-picker-slider`}\n        style={{\n          height: HANDLE_SIZE,\n          borderRadius: RADIUS\n        }}\n      >\n        <div\n          ref=\"railRef\"\n          style={{\n            boxShadow: 'inset 0 0 2px 0 rgba(0, 0, 0, .24)',\n            boxSizing: 'border-box',\n            backgroundImage: GRADIENT,\n            height: HANDLE_SIZE,\n            borderRadius: RADIUS,\n            position: 'relative'\n          }}\n          onMousedown={this.handleMouseDown}\n        >\n          <div\n            style={{\n              position: 'absolute',\n              left: RADIUS,\n              right: RADIUS,\n              top: 0,\n              bottom: 0\n            }}\n          >\n            <div\n              class={`${clsPrefix}-color-picker-handle`}\n              style={{\n                left: `calc((${this.hue}%) / 359 * 100 - ${RADIUS})`,\n                borderRadius: RADIUS,\n                width: HANDLE_SIZE,\n                height: HANDLE_SIZE\n              }}\n            >\n              <div\n                class={`${clsPrefix}-color-picker-handle__fill`}\n                style={{\n                  backgroundColor: `hsl(${this.hue}, 100%, 50%)`,\n                  borderRadius: RADIUS,\n                  width: HANDLE_SIZE,\n                  height: HANDLE_SIZE\n                }}\n              />\n            </div>\n          </div>\n        </div>\n      </div>\n    )\n  }\n})\n","import type { HSVA } from 'seemly'\nimport type { PropType } from 'vue'\nimport { off, on } from 'evtd'\nimport { computed, defineComponent, h, ref } from 'vue'\n\nconst HANDLE_SIZE = '12px'\nconst RADIUS = '6px'\n\nexport default defineComponent({\n  name: 'Pallete',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    rgba: {\n      type: Array as unknown as PropType<HSVA | null>,\n      default: null\n    },\n    // 0 - 360\n    displayedHue: {\n      type: Number,\n      required: true\n    },\n    displayedSv: {\n      type: Array as unknown as PropType<[number, number]>,\n      required: true\n    },\n    onUpdateSV: {\n      type: Function as PropType<(s: number, v: number) => void>,\n      required: true\n    },\n    onComplete: Function as PropType<() => void>\n  },\n  setup(props) {\n    const palleteRef = ref<HTMLElement | null>(null)\n    function handleMouseDown(e: MouseEvent): void {\n      if (!palleteRef.value)\n        return\n      on('mousemove', document, handleMouseMove)\n      on('mouseup', document, handleMouseUp)\n      handleMouseMove(e)\n    }\n    function handleMouseMove(e: MouseEvent): void {\n      const { value: palleteEl } = palleteRef\n      if (!palleteEl)\n        return\n      const { width, height, left, bottom } = palleteEl.getBoundingClientRect()\n      const newV = (bottom - e.clientY) / height\n      const newS = (e.clientX - left) / width\n      const normalizedNewS = 100 * (newS > 1 ? 1 : newS < 0 ? 0 : newS)\n      const normalizedNewV = 100 * (newV > 1 ? 1 : newV < 0 ? 0 : newV)\n      props.onUpdateSV(normalizedNewS, normalizedNewV)\n    }\n    function handleMouseUp(): void {\n      off('mousemove', document, handleMouseMove)\n      off('mouseup', document, handleMouseUp)\n      props.onComplete?.()\n    }\n    return {\n      palleteRef,\n      handleColor: computed(() => {\n        const { rgba } = props\n        if (!rgba)\n          return ''\n        return `rgb(${rgba[0]}, ${rgba[1]}, ${rgba[2]})`\n      }),\n      handleMouseDown\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div\n        class={`${clsPrefix}-color-picker-pallete`}\n        onMousedown={this.handleMouseDown}\n        ref=\"palleteRef\"\n      >\n        <div\n          class={`${clsPrefix}-color-picker-pallete__layer`}\n          style={{\n            backgroundImage: `linear-gradient(90deg, white, hsl(${this.displayedHue}, 100%, 50%))`\n          }}\n        />\n        <div\n          class={`${clsPrefix}-color-picker-pallete__layer ${clsPrefix}-color-picker-pallete__layer--shadowed`}\n          style={{\n            backgroundImage:\n              'linear-gradient(180deg, rgba(0, 0, 0, 0%), rgba(0, 0, 0, 100%))'\n          }}\n        />\n        {this.rgba && (\n          <div\n            class={`${clsPrefix}-color-picker-handle`}\n            style={{\n              width: HANDLE_SIZE,\n              height: HANDLE_SIZE,\n              borderRadius: RADIUS,\n              left: `calc(${this.displayedSv[0]}% - ${RADIUS})`,\n              bottom: `calc(${this.displayedSv[1]}% - ${RADIUS})`\n            }}\n          >\n            <div\n              class={`${clsPrefix}-color-picker-handle__fill`}\n              style={{\n                backgroundColor: this.handleColor,\n                borderRadius: RADIUS,\n                width: HANDLE_SIZE,\n                height: HANDLE_SIZE\n              }}\n            />\n          </div>\n        )}\n      </div>\n    )\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-color\n// --n-text-color\n// --n-border-radius\n// --n-panel-font-size\n// --n-font-size\n// --n-bezier\n// --n-height\n// --n-box-shadow\n// --n-divider-color\nexport default c([\n  cB('color-picker-panel', `\n    margin: 4px 0;\n    width: 240px;\n    font-size: var(--n-panel-font-size);\n    color: var(--n-text-color);\n    background-color: var(--n-color);\n    transition:\n      box-shadow .3s var(--n-bezier),\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    border-radius: var(--n-border-radius);\n    box-shadow: var(--n-box-shadow);\n  `, [\n    fadeInScaleUpTransition(),\n    cB('input', `\n      text-align: center;\n    `)\n  ]),\n  cB('color-picker-checkboard', `\n    background: white; \n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n  `, [\n    c('&::after', `\n      background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%);\n      background-size: 12px 12px;\n      background-position: 0 0, 0 6px, 6px -6px, -6px 0px;\n      background-repeat: repeat;\n      content: \"\";\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n    `)\n  ]),\n  cB('color-picker-slider', `\n    margin-bottom: 8px;\n    position: relative;\n    box-sizing: border-box;\n  `, [\n    cE('image', `\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n    `),\n    c('&::after', `\n      content: \"\";\n      position: absolute;\n      border-radius: inherit;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n      box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24);\n      pointer-events: none;\n    `)\n  ]),\n  cB('color-picker-handle', `\n    z-index: 1;\n    box-shadow: 0 0 2px 0 rgba(0, 0, 0, .45);\n    position: absolute;\n    background-color: white;\n    overflow: hidden;\n  `, [\n    cE('fill', `\n      box-sizing: border-box;\n      border: 2px solid white;\n    `)\n  ]),\n  cB('color-picker-pallete', `\n    height: 180px;\n    position: relative;\n    margin-bottom: 8px;\n    cursor: crosshair;\n  `, [\n    cE('layer', `\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n    `, [\n      cM('shadowed', `\n        box-shadow: inset 0 0 2px 0 rgba(0, 0, 0, .24);\n      `)\n    ])\n  ]),\n  cB('color-picker-preview', `\n    display: flex;\n  `, [\n    cE('sliders', `\n      flex: 1 0 auto;\n    `),\n    cE('preview', `\n      position: relative;\n      height: 30px;\n      width: 30px;\n      margin: 0 0 8px 6px;\n      border-radius: 50%;\n      box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset;\n      overflow: hidden;\n    `),\n    cE('fill', `\n      display: block;\n      width: 30px;\n      height: 30px;\n    `),\n    cE('input', `\n      position: absolute;\n      top: 0;\n      left: 0;\n      width: 30px;\n      height: 30px;\n      opacity: 0;\n      z-index: 1;\n    `)\n  ]),\n  cB('color-picker-input', `\n    display: flex;\n    align-items: center;\n  `, [\n    cB('input', `\n      flex-grow: 1;\n      flex-basis: 0;\n    `),\n    cE('mode', `\n      width: 72px;\n      text-align: center;\n    `)\n  ]),\n  cB('color-picker-control', `\n    padding: 12px;\n  `),\n  cB('color-picker-action', `\n    display: flex;\n    margin-top: -4px;\n    border-top: 1px solid var(--n-divider-color);\n    padding: 8px 12px;\n    justify-content: flex-end;\n  `, [\n    cB('button', 'margin-left: 8px;')\n  ]),\n  cB('color-picker', `\n    display: inline-block;\n    box-sizing: border-box;\n    height: var(--n-height);\n    font-size: var(--n-font-size);\n    width: 100%;\n    position: relative;\n    cursor: pointer;\n    border: var(--n-border);\n    border-radius: var(--n-border-radius);\n    transition: border-color .3s var(--n-bezier);\n  `, [\n    cM('disabled', 'cursor: not-allowed'),\n    cE('value', `\n      white-space: nowrap;\n      position: relative;\n    `),\n    cE('fill', `\n      border-radius: var(--n-border-radius);\n      position: absolute;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      left: 4px;\n      right: 4px;\n      top: 4px;\n      bottom: 4px;\n    `),\n    cB('color-picker-checkboard', `\n      border-radius: var(--n-border-radius);\n    `, [\n      c('&::after', `\n        --n-block-size: calc((var(--n-height) - 8px) / 3);\n        background-size: calc(var(--n-block-size) * 2) calc(var(--n-block-size) * 2);\n        background-position: 0 0, 0 var(--n-block-size), var(--n-block-size) calc(-1 * var(--n-block-size)), calc(-1 * var(--n-block-size)) 0px;  \n      `)\n    ])\n  ]),\n  cB('color-picker-swatches', `\n    display: grid;\n    grid-gap: 8px;\n    flex-wrap: wrap;\n    position: relative;\n    grid-template-columns: repeat(auto-fill, 18px);\n    margin-top: 10px;\n  `, [\n    cB('color-picker-swatch', `\n      width: 18px;\n      height: 18px;\n      background-image: linear-gradient(45deg, #DDD 25%, #0000 25%), linear-gradient(-45deg, #DDD 25%, #0000 25%), linear-gradient(45deg, #0000 75%, #DDD 75%), linear-gradient(-45deg, #0000 75%, #DDD 75%);\n      background-size: 8px 8px;\n      background-position: 0px 0, 0px 4px, 4px -4px, -4px 0px;\n      background-repeat: repeat;\n    `, [\n      cE('fill', `\n        position: relative;\n        width: 100%;\n        height: 100%;\n        border-radius: 3px;\n        box-shadow: rgba(0, 0, 0, .15) 0px 0px 0px 1px inset;\n        cursor: pointer;\n      `),\n      c('&:focus', `\n        outline: none;\n      `, [\n        cE('fill', [\n          c('&::after', `\n            position: absolute;\n            top: 0;\n            right: 0;\n            bottom: 0;\n            left: 0;\n            background: inherit;\n            filter: blur(2px);\n            content: \"\";\n          `)\n        ])\n      ])\n    ])\n  ])\n])\n","import type { HSLA, HSVA, RGBA } from 'seemly'\nimport type {\n  ComponentPublicInstance,\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ColorPickerTheme, ColorPickerThemeOverrides } from '../styles'\nimport type {\n  OnClear,\n  OnConfirmImpl,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  RenderLabel\n} from './interface'\nimport type { ColorPickerSize } from './public-types'\nimport type { ActionType, ColorPickerMode } from './utils'\nimport {\n  getPreciseEventTarget,\n  hsl2hsv,\n  hsl2rgb,\n  hsla,\n  hsv2hsl,\n  hsv2rgb,\n  hsva,\n  rgb2hsl,\n  rgb2hsv,\n  rgba,\n  toHexaString,\n  toHexString,\n  toHslaString,\n  toHslString,\n  toHsvaString,\n  toHsvString,\n  toRgbaString,\n  toRgbString\n} from 'seemly'\nimport { clickoutside } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  nextTick,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  createKey,\n  keep,\n  mergeEventHandlers,\n  resolveWrappedSlotWithProps,\n  useAdjustedTo\n} from '../../_utils'\nimport { NButton } from '../../button'\nimport { colorPickerLight } from '../styles'\nimport AlphaSlider from './AlphaSlider'\nimport ColorInput from './ColorInput'\nimport ColorPickerSwatches from './ColorPickerSwatches'\nimport ColorPickerTrigger from './ColorPickerTrigger'\nimport ColorPreview from './ColorPreview'\nimport { colorPickerInjectionKey } from './context'\nimport HueSlider from './HueSlider'\nimport Pallete from './Pallete'\nimport style from './styles/index.cssr'\nimport { deriveDefaultValue, getModeFromValue } from './utils'\n\nexport const colorPickerProps = {\n  ...(useTheme.props as ThemeProps<\n    ColorPickerTheme,\n    ColorPickerThemeOverrides\n  >),\n  value: String as PropType<string | null>,\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  defaultShow: Boolean,\n  defaultValue: String as PropType<string | null>,\n  modes: {\n    type: Array as PropType<ColorPickerMode[]>,\n    // no hsva by default since browser doesn't support it\n    default: () => ['rgb', 'hex', 'hsl']\n  },\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  to: useAdjustedTo.propTo,\n  showAlpha: {\n    type: Boolean,\n    default: true\n  },\n  showPreview: Boolean,\n  swatches: Array as PropType<string[]>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  actions: {\n    type: Array as PropType<ActionType[]>,\n    default: null\n  },\n  internalActions: Array as PropType<ReadonlyArray<'redo' | 'undo'>>,\n  size: String as PropType<ColorPickerSize>,\n  renderLabel: Function as PropType<RenderLabel>,\n  onComplete: Function as PropType<OnUpdateValue>,\n  onConfirm: Function as PropType<OnUpdateValue>,\n  onClear: Function as PropType<OnClear>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type ColorPickerProps = ExtractPublicPropTypes<typeof colorPickerProps>\n\nexport interface ColorPickerSlots {\n  default?: () => VNode[]\n  label?: (color: string | null) => VNode[]\n  action?: () => VNode[]\n  trigger?: (props: {\n    value: string | null\n    onClick: (() => void) | undefined\n    ref: (el: any) => void\n  }) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'ColorPicker',\n  inheritAttrs: false,\n  props: colorPickerProps,\n  slots: Object as SlotsType<ColorPickerSlots>,\n  setup(props, { slots }) {\n    let triggerRef: Element | ComponentPublicInstance | null = null\n    function setTriggerRef(el: Element | ComponentPublicInstance | null): void {\n      triggerRef = el\n    }\n    let upcomingValue: string | null = null\n\n    const {\n      mergedClsPrefixRef,\n      namespaceRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as ColorPickerSize\n        const configSize = mergedComponentPropsRef?.value?.ColorPicker?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef } = formItem\n    const { localeRef } = useLocale('global')\n\n    const themeRef = useTheme(\n      'ColorPicker',\n      '-color-picker',\n      style,\n      colorPickerLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    provide(colorPickerInjectionKey, {\n      themeRef,\n      renderLabelRef: toRef(props, 'renderLabel'),\n      colorPickerSlots: slots\n    })\n\n    const uncontrolledShowRef = ref(props.defaultShow)\n    const mergedShowRef = useMergedState(\n      toRef(props, 'show'),\n      uncontrolledShowRef\n    )\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n      uncontrolledShowRef.value = value\n    }\n\n    const { defaultValue } = props\n    const uncontrolledValueRef = ref(\n      defaultValue === undefined\n        ? deriveDefaultValue(props.modes, props.showAlpha)\n        : defaultValue\n    )\n    const mergedValueRef = useMergedState(\n      toRef(props, 'value'),\n      uncontrolledValueRef\n    )\n\n    const undoStackRef: Ref<Array<string | null>> = ref([mergedValueRef.value])\n    const valueIndexRef = ref(0)\n\n    const valueModeRef = computed(() => getModeFromValue(mergedValueRef.value))\n\n    const { modes } = props\n    const displayedModeRef = ref<ColorPickerMode>(\n      getModeFromValue(mergedValueRef.value) || modes[0] || 'rgb'\n    )\n\n    function handleUpdateDisplayedMode(): void {\n      const { modes } = props\n      const { value: displayedMode } = displayedModeRef\n      const currentModeIndex = modes.findIndex(mode => mode === displayedMode)\n      if (~currentModeIndex) {\n        displayedModeRef.value = modes[(currentModeIndex + 1) % modes.length]\n      }\n      else {\n        displayedModeRef.value = 'rgb'\n      }\n    }\n\n    let _h: number, // avoid conflict with render function's h\n      s: number,\n      l: number,\n      v: number,\n      r: number,\n      g: number,\n      b: number,\n      a: number\n\n    const hsvaRef = computed<HSVA | null>(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (!mergedValue)\n        return null\n      switch (valueModeRef.value!) {\n        case 'hsv':\n          return hsva(mergedValue)\n        case 'hsl':\n          ;[_h, s, l, a] = hsla(mergedValue)\n          return [...hsl2hsv(_h, s, l), a]\n        case 'rgb':\n        case 'hex':\n          ;[r, g, b, a] = rgba(mergedValue)\n          return [...rgb2hsv(r, g, b), a]\n      }\n    })\n\n    const rgbaRef = computed<RGBA | null>(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (!mergedValue)\n        return null\n      switch (valueModeRef.value!) {\n        case 'rgb':\n        case 'hex':\n          return rgba(mergedValue)\n        case 'hsv':\n          ;[_h, s, v, a] = hsva(mergedValue)\n          return [...hsv2rgb(_h, s, v), a]\n        case 'hsl':\n          ;[_h, s, l, a] = hsla(mergedValue)\n          return [...hsl2rgb(_h, s, l), a]\n      }\n    })\n\n    const hslaRef = computed<HSLA | null>(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (!mergedValue)\n        return null\n      switch (valueModeRef.value!) {\n        case 'hsl':\n          return hsla(mergedValue)\n        case 'hsv':\n          ;[_h, s, v, a] = hsva(mergedValue)\n          return [...hsv2hsl(_h, s, v), a]\n        case 'rgb':\n        case 'hex':\n          ;[r, g, b, a] = rgba(mergedValue)\n          return [...rgb2hsl(r, g, b), a]\n      }\n    })\n\n    const mergedValueArrRef = computed(() => {\n      switch (displayedModeRef.value) {\n        case 'rgb':\n        case 'hex':\n          return rgbaRef.value\n        case 'hsv':\n          return hsvaRef.value\n        case 'hsl':\n          return hslaRef.value\n      }\n    })\n\n    const displayedHueRef = ref<number>(0)\n    const displayedAlphaRef = ref<number>(1)\n    const displayedSvRef = ref<[number, number]>([0, 0])\n\n    function handleUpdateSv(s: number, v: number): void {\n      const { value: hsvaArr } = hsvaRef\n      const hue = displayedHueRef.value\n      const alpha = hsvaArr ? hsvaArr[3] : 1\n      displayedSvRef.value = [s, v]\n      const { showAlpha } = props\n      switch (displayedModeRef.value) {\n        case 'hsv':\n          doUpdateValue(\n            (showAlpha ? toHsvaString : toHsvString)([hue, s, v, alpha]),\n            'cursor'\n          )\n          break\n        case 'hsl':\n          doUpdateValue(\n            (showAlpha ? toHslaString : toHslString)([\n              ...hsv2hsl(hue, s, v),\n              alpha\n            ]),\n            'cursor'\n          )\n          break\n        case 'rgb':\n          doUpdateValue(\n            (showAlpha ? toRgbaString : toRgbString)([\n              ...hsv2rgb(hue, s, v),\n              alpha\n            ]),\n            'cursor'\n          )\n          break\n        case 'hex':\n          doUpdateValue(\n            (showAlpha ? toHexaString : toHexString)([\n              ...hsv2rgb(hue, s, v),\n              alpha\n            ]),\n            'cursor'\n          )\n          break\n      }\n    }\n\n    function handleUpdateHue(hue: number): void {\n      displayedHueRef.value = hue\n      const { value: hsvaArr } = hsvaRef\n      if (!hsvaArr) {\n        return\n      }\n      const [, s, v, a] = hsvaArr\n      const { showAlpha } = props\n      switch (displayedModeRef.value) {\n        case 'hsv':\n          doUpdateValue(\n            (showAlpha ? toHsvaString : toHsvString)([hue, s, v, a]),\n            'cursor'\n          )\n          break\n        case 'rgb':\n          doUpdateValue(\n            (showAlpha ? toRgbaString : toRgbString)([\n              ...hsv2rgb(hue, s, v),\n              a\n            ]),\n            'cursor'\n          )\n          break\n        case 'hex':\n          doUpdateValue(\n            (showAlpha ? toHexaString : toHexString)([\n              ...hsv2rgb(hue, s, v),\n              a\n            ]),\n            'cursor'\n          )\n          break\n        case 'hsl':\n          doUpdateValue(\n            (showAlpha ? toHslaString : toHslString)([\n              ...hsv2hsl(hue, s, v),\n              a\n            ]),\n            'cursor'\n          )\n          break\n      }\n    }\n\n    function handleUpdateAlpha(alpha: number): void {\n      switch (displayedModeRef.value) {\n        case 'hsv':\n          ;[_h, s, v] = hsvaRef.value!\n          doUpdateValue(toHsvaString([_h, s, v, alpha]), 'cursor')\n          break\n        case 'rgb':\n          ;[r, g, b] = rgbaRef.value!\n          doUpdateValue(toRgbaString([r, g, b, alpha]), 'cursor')\n          break\n        case 'hex':\n          ;[r, g, b] = rgbaRef.value!\n          doUpdateValue(toHexaString([r, g, b, alpha]), 'cursor')\n          break\n        case 'hsl':\n          ;[_h, s, l] = hslaRef.value!\n          doUpdateValue(toHslaString([_h, s, l, alpha]), 'cursor')\n          break\n      }\n      displayedAlphaRef.value = alpha\n    }\n\n    function doUpdateValue(\n      value: string | null,\n      updateSource: 'cursor' | 'input'\n    ): void {\n      if (updateSource === 'cursor') {\n        upcomingValue = value\n      }\n      else {\n        upcomingValue = null\n      }\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, value)\n      nTriggerFormChange()\n      nTriggerFormInput()\n      uncontrolledValueRef.value = value\n    }\n\n    function handleInputUpdateValue(value: string): void {\n      doUpdateValue(value, 'input')\n      void nextTick(handleComplete)\n    }\n\n    function handleComplete(pushStack: boolean = true): void {\n      const { value } = mergedValueRef\n      // no value & only hue changes will complete with no value\n      if (value) {\n        const { nTriggerFormChange, nTriggerFormInput } = formItem\n        const { onComplete } = props\n        if (onComplete) {\n          ;(onComplete as OnUpdateValueImpl)(value)\n        }\n        const { value: undoStack } = undoStackRef\n        const { value: valueIndex } = valueIndexRef\n        if (pushStack) {\n          undoStack.splice(valueIndex + 1, undoStack.length, value)\n          valueIndexRef.value = valueIndex + 1\n        }\n        nTriggerFormChange()\n        nTriggerFormInput()\n      }\n    }\n\n    function undo(): void {\n      const { value: valueIndex } = valueIndexRef\n      if (valueIndex - 1 < 0)\n        return\n      doUpdateValue(undoStackRef.value[valueIndex - 1], 'input')\n      handleComplete(false)\n      valueIndexRef.value = valueIndex - 1\n    }\n\n    function redo(): void {\n      const { value: valueIndex } = valueIndexRef\n      if (valueIndex < 0 || valueIndex + 1 >= undoStackRef.value.length)\n        return\n      doUpdateValue(undoStackRef.value[valueIndex + 1], 'input')\n      handleComplete(false)\n      valueIndexRef.value = valueIndex + 1\n    }\n\n    function handleClear(): void {\n      doUpdateValue(null, 'input')\n      const { onClear } = props\n      if (onClear) {\n        onClear()\n      }\n      doUpdateShow(false)\n    }\n\n    function handleConfirm(): void {\n      const { value } = mergedValueRef\n      const { onConfirm } = props\n      if (onConfirm) {\n        ;(onConfirm as OnConfirmImpl)(value)\n      }\n      doUpdateShow(false)\n    }\n\n    const undoableRef = computed(() => valueIndexRef.value >= 1)\n    const redoableRef = computed(() => {\n      const { value: undoStack } = undoStackRef\n      return undoStack.length > 1 && valueIndexRef.value < undoStack.length - 1\n    })\n\n    watch(mergedShowRef, (value) => {\n      if (!value) {\n        undoStackRef.value = [mergedValueRef.value]\n        valueIndexRef.value = 0\n      }\n    })\n\n    watchEffect(() => {\n      if (upcomingValue && upcomingValue === mergedValueRef.value) {\n        // let it works in uncontrolled mode\n      }\n      else {\n        const { value } = hsvaRef\n        if (value) {\n          displayedHueRef.value = value[0]\n          displayedAlphaRef.value = value[3]\n          displayedSvRef.value = [value[1], value[2]]\n        }\n      }\n      upcomingValue = null\n    })\n\n    const cssVarsRef = computed(() => {\n      const { value: mergedSize } = mergedSizeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          textColor,\n          color,\n          panelFontSize,\n          boxShadow,\n          border,\n          borderRadius,\n          dividerColor,\n          [createKey('height', mergedSize)]: height,\n          [createKey('fontSize', mergedSize)]: fontSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-color': color,\n        '--n-panel-font-size': panelFontSize,\n        '--n-font-size': fontSize,\n        '--n-box-shadow': boxShadow,\n        '--n-border': border,\n        '--n-border-radius': borderRadius,\n        '--n-height': height,\n        '--n-divider-color': dividerColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'color-picker',\n          computed(() => {\n            return mergedSizeRef.value[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    function renderPanel(): VNode {\n      const { value: rgba } = rgbaRef\n      const { value: displayedHue } = displayedHueRef\n      const { internalActions, modes, actions } = props\n      const { value: mergedTheme } = themeRef\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-color-picker-panel`,\n            themeClassHandle?.themeClass.value\n          ]}\n          onDragstart={(e) => {\n            e.preventDefault()\n          }}\n          style={\n            inlineThemeDisabled\n              ? undefined\n              : (cssVarsRef.value as CSSProperties)\n          }\n        >\n          <div class={`${mergedClsPrefix}-color-picker-control`}>\n            <Pallete\n              clsPrefix={mergedClsPrefix}\n              rgba={rgba}\n              displayedHue={displayedHue}\n              displayedSv={displayedSvRef.value}\n              onUpdateSV={handleUpdateSv}\n              onComplete={handleComplete}\n            />\n            <div class={`${mergedClsPrefix}-color-picker-preview`}>\n              <div class={`${mergedClsPrefix}-color-picker-preview__sliders`}>\n                <HueSlider\n                  clsPrefix={mergedClsPrefix}\n                  hue={displayedHue}\n                  onUpdateHue={handleUpdateHue}\n                  onComplete={handleComplete}\n                />\n                {props.showAlpha ? (\n                  <AlphaSlider\n                    clsPrefix={mergedClsPrefix}\n                    rgba={rgba}\n                    alpha={displayedAlphaRef.value}\n                    onUpdateAlpha={handleUpdateAlpha}\n                    onComplete={handleComplete}\n                  />\n                ) : null}\n              </div>\n              {props.showPreview ? (\n                <ColorPreview\n                  clsPrefix={mergedClsPrefix}\n                  mode={displayedModeRef.value}\n                  color={rgbaRef.value && toHexString(rgbaRef.value)}\n                  onUpdateColor={(color) => {\n                    doUpdateValue(color, 'input')\n                  }}\n                />\n              ) : null}\n            </div>\n            <ColorInput\n              clsPrefix={mergedClsPrefix}\n              showAlpha={props.showAlpha}\n              mode={displayedModeRef.value}\n              modes={modes}\n              onUpdateMode={handleUpdateDisplayedMode}\n              value={mergedValueRef.value}\n              valueArr={mergedValueArrRef.value}\n              onUpdateValue={handleInputUpdateValue}\n            />\n            {props.swatches?.length && (\n              <ColorPickerSwatches\n                clsPrefix={mergedClsPrefix}\n                mode={displayedModeRef.value}\n                swatches={props.swatches}\n                onUpdateColor={(color) => {\n                  doUpdateValue(color, 'input')\n                }}\n              />\n            )}\n          </div>\n          {actions?.length ? (\n            <div class={`${mergedClsPrefix}-color-picker-action`}>\n              {actions.includes('confirm') && (\n                <NButton\n                  size=\"small\"\n                  onClick={handleConfirm}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                >\n                  {{ default: () => localeRef.value.confirm }}\n                </NButton>\n              )}\n              {actions.includes('clear') && (\n                <NButton\n                  size=\"small\"\n                  onClick={handleClear}\n                  disabled={!mergedValueRef.value}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                >\n                  {{ default: () => localeRef.value.clear }}\n                </NButton>\n              )}\n            </div>\n          ) : null}\n          {slots.action ? (\n            <div class={`${mergedClsPrefix}-color-picker-action`}>\n              {slots.action?.()}\n            </div>\n          ) : internalActions ? (\n            <div class={`${mergedClsPrefix}-color-picker-action`}>\n              {internalActions.includes('undo') && (\n                <NButton\n                  size=\"small\"\n                  onClick={undo}\n                  disabled={!undoableRef.value}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                >\n                  {{ default: () => localeRef.value.undo }}\n                </NButton>\n              )}\n              {internalActions.includes('redo') && (\n                <NButton\n                  size=\"small\"\n                  onClick={redo}\n                  disabled={!redoableRef.value}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                >\n                  {{ default: () => localeRef.value.redo }}\n                </NButton>\n              )}\n            </div>\n          ) : null}\n        </div>\n      )\n    }\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      hsla: hslaRef,\n      rgba: rgbaRef,\n      mergedShow: mergedShowRef,\n      mergedDisabled: mergedDisabledRef,\n      isMounted: useIsMounted(),\n      adjustedTo: useAdjustedTo(props),\n      mergedValue: mergedValueRef,\n      handleTriggerClick() {\n        if (mergedDisabledRef.value) {\n          return\n        }\n        doUpdateShow(true)\n      },\n      setTriggerRef,\n      handleClickOutside(e: MouseEvent) {\n        if (triggerRef instanceof Element) {\n          if (triggerRef.contains(getPreciseEventTarget(e) as Node | null)) {\n            return\n          }\n        }\n        else if (triggerRef) {\n          if (\n            triggerRef.$el.contains(getPreciseEventTarget(e) as Node | null)\n          ) {\n            return\n          }\n        }\n        doUpdateShow(false)\n      },\n      renderPanel,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, onRender } = this\n    onRender?.()\n    return (\n      <VBinder>\n        {{\n          default: () => [\n            <VTarget>\n              {{\n                default: () => {\n                  const triggerProps = mergeProps(this.$attrs, {\n                    ref: this.setTriggerRef,\n                    value: this.mergedValue,\n                    style: this.cssVars,\n                    class: this.themeClass\n                  })\n                  const onClick = mergeEventHandlers([\n                    this.mergedDisabled ? undefined : this.handleTriggerClick,\n                    this.$attrs.onClick as ((e: MouseEvent) => void) | undefined\n                  ])\n                  triggerProps.onClick = onClick\n                  return resolveWrappedSlotWithProps(\n                    this.$slots.trigger,\n                    keep(triggerProps, ['value', 'onClick', 'ref']),\n                    (children) => {\n                      const triggerNode = children || (\n                        <ColorPickerTrigger\n                          {...triggerProps}\n                          clsPrefix={mergedClsPrefix}\n                          hsla={this.hsla}\n                          disabled={this.mergedDisabled}\n                        />\n                      )\n                      return triggerNode\n                    }\n                  )\n                }\n              }}\n            </VTarget>,\n            <VFollower\n              placement={this.placement}\n              show={this.mergedShow}\n              containerClass={this.namespace}\n              teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n              to={this.adjustedTo}\n            >\n              {{\n                default: () => (\n                  <Transition\n                    name=\"fade-in-scale-up-transition\"\n                    appear={this.isMounted}\n                  >\n                    {{\n                      default: () =>\n                        this.mergedShow\n                          ? withDirectives(this.renderPanel(), [\n                              [\n                                clickoutside,\n                                this.handleClickOutside,\n                                undefined,\n                                { capture: true }\n                              ]\n                            ])\n                          : null\n                    }}\n                  </Transition>\n                )\n              }}\n            </VFollower>\n          ]\n        }}\n      </VBinder>\n    )\n  }\n})\n","import type { ComputedRef, ExtractPropTypes, PropType } from 'vue'\nimport type { Hljs } from '../../_mixins'\nimport type { NDateLocale, NLocale } from '../../locales'\nimport type {\n  GlobalComponentConfig,\n  GlobalIconConfig,\n  GlobalTheme,\n  GlobalThemeOverrides\n} from './interface'\nimport type {\n  Breakpoints,\n  RtlEnabledState,\n  RtlProp\n} from './internal-interface'\nimport type { Katex } from './katex'\nimport { hash } from 'css-render'\nimport { merge } from 'lodash-es'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, markRaw, provide } from 'vue'\nimport { defaultClsPrefix } from '../../_mixins'\nimport { warn } from '../../_utils'\nimport { configProviderInjectionKey } from './context'\n\nexport const configProviderProps = {\n  abstract: Boolean,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  clsPrefix: String,\n  locale: Object as PropType<NLocale | null>,\n  dateLocale: Object as PropType<NDateLocale | null>,\n  namespace: String,\n  rtl: Array as PropType<RtlProp>,\n  tag: {\n    type: String,\n    default: 'div'\n  },\n  hljs: Object as PropType<Hljs>,\n  katex: Object as PropType<Katex>,\n  theme: Object as PropType<GlobalTheme | null>,\n  themeOverrides: Object as PropType<GlobalThemeOverrides | null>,\n  componentOptions: Object as PropType<GlobalComponentConfig>,\n  icons: Object as PropType<GlobalIconConfig>,\n  breakpoints: Object as PropType<Breakpoints>,\n  preflightStyleDisabled: Boolean,\n  styleMountTarget: Object as PropType<ParentNode | null>,\n  inlineThemeDisabled: {\n    type: Boolean,\n    default: undefined\n  },\n  // deprecated\n  as: {\n    type: String as PropType<string | undefined>,\n    validator: () => {\n      warn('config-provider', '`as` is deprecated, please use `tag` instead.')\n      return true\n    },\n    default: undefined\n  }\n} as const\n\nexport type ConfigProviderProps = Partial<\n  ExtractPropTypes<typeof configProviderProps>\n>\n\nexport default defineComponent({\n  name: 'ConfigProvider',\n  alias: ['App'],\n  props: configProviderProps,\n  setup(props) {\n    const NConfigProvider = inject(configProviderInjectionKey, null)\n    const mergedThemeRef = computed(() => {\n      const { theme } = props\n      if (theme === null)\n        return undefined\n      const inheritedTheme = NConfigProvider?.mergedThemeRef.value\n      return theme === undefined\n        ? inheritedTheme\n        : inheritedTheme === undefined\n          ? theme\n          : Object.assign({}, inheritedTheme, theme)\n    })\n    const mergedThemeOverridesRef = computed(() => {\n      const { themeOverrides } = props\n      // stop inheriting themeOverrides\n      if (themeOverrides === null)\n        return undefined\n      // use inherited themeOverrides\n      if (themeOverrides === undefined) {\n        return NConfigProvider?.mergedThemeOverridesRef.value\n      }\n      else {\n        const inheritedThemeOverrides\n          = NConfigProvider?.mergedThemeOverridesRef.value\n        if (inheritedThemeOverrides === undefined) {\n          // no inherited, use self overrides\n          return themeOverrides\n        }\n        else {\n          // merge overrides\n          return merge({}, inheritedThemeOverrides, themeOverrides)\n        }\n      }\n    })\n    const mergedNamespaceRef = useMemo(() => {\n      const { namespace } = props\n      return namespace === undefined\n        ? NConfigProvider?.mergedNamespaceRef.value\n        : namespace\n    })\n    const mergedBorderedRef = useMemo(() => {\n      const { bordered } = props\n      return bordered === undefined\n        ? NConfigProvider?.mergedBorderedRef.value\n        : bordered\n    })\n    const mergedIconsRef = computed(() => {\n      const { icons } = props\n      return icons === undefined ? NConfigProvider?.mergedIconsRef.value : icons\n    })\n    const mergedComponentPropsRef = computed(() => {\n      const { componentOptions } = props\n      if (componentOptions !== undefined)\n        return componentOptions\n      return NConfigProvider?.mergedComponentPropsRef.value\n    })\n    const mergedClsPrefixRef = computed(() => {\n      const { clsPrefix } = props\n      if (clsPrefix !== undefined)\n        return clsPrefix\n      if (NConfigProvider)\n        return NConfigProvider.mergedClsPrefixRef.value\n      return defaultClsPrefix\n    })\n    const mergedRtlRef: ComputedRef<RtlEnabledState | undefined> = computed(\n      () => {\n        const { rtl } = props\n        if (rtl === undefined) {\n          return NConfigProvider?.mergedRtlRef.value\n        }\n        const rtlEnabledState: RtlEnabledState = {}\n        for (const rtlInfo of rtl) {\n          rtlEnabledState[rtlInfo.name] = markRaw(rtlInfo)\n          rtlInfo.peers?.forEach((peerRtlInfo) => {\n            if (!(peerRtlInfo.name in rtlEnabledState)) {\n              rtlEnabledState[peerRtlInfo.name] = markRaw(peerRtlInfo)\n            }\n          })\n        }\n        return rtlEnabledState\n      }\n    )\n    const mergedBreakpointsRef = computed(() => {\n      return props.breakpoints || NConfigProvider?.mergedBreakpointsRef.value\n    })\n    const inlineThemeDisabled\n      = props.inlineThemeDisabled || NConfigProvider?.inlineThemeDisabled\n    const preflightStyleDisabled\n      = props.preflightStyleDisabled || NConfigProvider?.preflightStyleDisabled\n    const styleMountTarget\n      = props.styleMountTarget || NConfigProvider?.styleMountTarget\n    const mergedThemeHashRef = computed(() => {\n      const { value: theme } = mergedThemeRef\n      const { value: mergedThemeOverrides } = mergedThemeOverridesRef\n      const hasThemeOverrides\n        = mergedThemeOverrides && Object.keys(mergedThemeOverrides).length !== 0\n      const themeName = theme?.name\n      if (themeName) {\n        if (hasThemeOverrides) {\n          return `${themeName}-${hash(\n            JSON.stringify(mergedThemeOverridesRef.value)\n          )}`\n        }\n        return themeName\n      }\n      else {\n        if (hasThemeOverrides) {\n          return hash(JSON.stringify(mergedThemeOverridesRef.value))\n        }\n        return ''\n      }\n    })\n    provide(configProviderInjectionKey, {\n      mergedThemeHashRef,\n      mergedBreakpointsRef,\n      mergedRtlRef,\n      mergedIconsRef,\n      mergedComponentPropsRef,\n      mergedBorderedRef,\n      mergedNamespaceRef,\n      mergedClsPrefixRef,\n      mergedLocaleRef: computed(() => {\n        const { locale } = props\n        if (locale === null)\n          return undefined\n        return locale === undefined\n          ? NConfigProvider?.mergedLocaleRef.value\n          : locale\n      }),\n      mergedDateLocaleRef: computed(() => {\n        const { dateLocale } = props\n        if (dateLocale === null)\n          return undefined\n        return dateLocale === undefined\n          ? NConfigProvider?.mergedDateLocaleRef.value\n          : dateLocale\n      }),\n      mergedHljsRef: computed(() => {\n        const { hljs } = props\n        return hljs === undefined ? NConfigProvider?.mergedHljsRef.value : hljs\n      }),\n      mergedKatexRef: computed(() => {\n        const { katex } = props\n        return katex === undefined\n          ? NConfigProvider?.mergedKatexRef.value\n          : katex\n      }),\n      mergedThemeRef,\n      mergedThemeOverridesRef,\n      inlineThemeDisabled: inlineThemeDisabled || false,\n      preflightStyleDisabled: preflightStyleDisabled || false,\n      styleMountTarget\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      mergedNamespace: mergedNamespaceRef,\n      mergedTheme: mergedThemeRef,\n      mergedThemeOverrides: mergedThemeOverridesRef\n    }\n  },\n  render() {\n    return !this.abstract\n      ? h(\n          this.as || this.tag,\n          {\n            class: `${this.mergedClsPrefix || defaultClsPrefix}-config-provider`\n          },\n          this.$slots.default?.()\n        )\n      : this.$slots.default?.()\n  }\n})\n","import type { PropType, VNodeChild } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport {\n  defineComponent,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  watchEffect\n} from 'vue'\n\nexport interface CountdownTimeInfo {\n  hours: number\n  minutes: number\n  seconds: number\n  milliseconds: number\n}\n\nexport interface CountdownInst {\n  reset: () => void\n}\n\nexport const countdownProps = {\n  duration: {\n    type: Number,\n    default: 0\n  },\n  active: {\n    type: Boolean,\n    default: true\n  },\n  precision: {\n    type: Number as PropType<0 | 1 | 2 | 3>,\n    default: 0\n  },\n  render: Function as PropType<(props: CountdownTimeInfo) => VNodeChild>,\n  onFinish: Function as PropType<() => void>\n}\n\nexport type CountdownProps = ExtractPublicPropTypes<typeof countdownProps>\n\nexport default defineComponent({\n  name: 'Countdown',\n  props: countdownProps,\n  setup(props) {\n    let timerId: number | null = null\n    let elapsed = 0\n    let finished = false\n\n    // in ms\n    const distanceRef = ref(0)\n    watchEffect(() => {\n      distanceRef.value = props.duration\n    })\n\n    let pnow = -1\n\n    function getDistance(time: DOMHighResTimeStamp): number {\n      return props.duration - elapsed + pnow - time\n    }\n\n    function getTimeInfo(distance: number): CountdownTimeInfo {\n      const hours = Math.floor(distance / 3600000)\n      const minutes = Math.floor((distance % 3600000) / 60000)\n      const seconds = Math.floor((distance % 60000) / 1000)\n      const milliseconds = Math.floor(distance % 1000)\n      return {\n        hours,\n        minutes,\n        seconds,\n        milliseconds\n      }\n    }\n\n    function getDisplayValue(info: CountdownTimeInfo): string {\n      const { hours, minutes, seconds, milliseconds } = info\n      const { precision } = props\n      switch (precision) {\n        case 0:\n          return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(\n            2,\n            '0'\n          )}:${String(seconds).padStart(2, '0')}`\n        default:\n          return `${String(hours).padStart(2, '0')}:${String(minutes).padStart(\n            2,\n            '0'\n          )}:${String(seconds).padStart(2, '0')}.${String(\n            Math.floor(\n              milliseconds / (precision === 1 ? 100 : precision === 2 ? 10 : 1)\n            )\n          ).padStart(precision, '0')}`\n      }\n    }\n\n    const frame = (): void => {\n      const { precision } = props\n      const distance = getDistance(performance.now())\n      if (distance <= 0) {\n        distanceRef.value = 0\n        stopTimer()\n        if (!finished) {\n          finished = true\n          props.onFinish?.()\n        }\n        return\n      }\n      let leftTime: number\n      switch (precision) {\n        case 3:\n        case 2:\n          leftTime = distance % 34 // about 30 fps\n          break\n        case 1:\n          leftTime = distance % 100\n          break\n        default:\n          leftTime = distance % 1000\n      }\n      distanceRef.value = distance\n      timerId = window.setTimeout(() => {\n        frame()\n      }, leftTime)\n    }\n\n    function stopTimer(): void {\n      if (timerId !== null) {\n        window.clearTimeout(timerId)\n        timerId = null\n      }\n    }\n    onMounted(() => {\n      watchEffect(() => {\n        if (props.active) {\n          pnow = performance.now()\n          frame()\n        }\n        else {\n          const now = performance.now()\n          if (pnow !== -1) {\n            elapsed += now - pnow\n          }\n          stopTimer()\n        }\n      })\n    })\n    onBeforeUnmount(() => {\n      stopTimer()\n    })\n\n    function reset(): void {\n      distanceRef.value = props.duration\n      elapsed = 0\n      pnow = performance.now()\n      if (props.active && finished) {\n        frame()\n      }\n      finished = false\n    }\n\n    const countdownExposedMethod: CountdownInst = {\n      reset\n    }\n    return Object.assign(countdownExposedMethod, {\n      distance: distanceRef,\n      getTimeInfo,\n      getDisplayValue\n    })\n  },\n  render() {\n    const { render, precision, distance, getTimeInfo, getDisplayValue } = this\n    let timeInfo: CountdownTimeInfo\n    switch (precision) {\n      case 0:\n        timeInfo = getTimeInfo(distance + 999)\n        timeInfo.milliseconds = 0\n        break\n      case 1:\n        timeInfo = getTimeInfo(distance + 99)\n        timeInfo.milliseconds = Math.floor(timeInfo.milliseconds / 100) * 100\n        break\n      case 2:\n        timeInfo = getTimeInfo(distance + 9)\n        timeInfo.milliseconds = Math.floor(timeInfo.milliseconds / 10) * 10\n        break\n      case 3:\n        timeInfo = getTimeInfo(distance)\n    }\n    if (render) {\n      return render(timeInfo)\n    }\n    else {\n      return getDisplayValue(timeInfo)\n    }\n  }\n})\n","import type { PopselectTheme } from './light'\nimport { internalSelectMenuDark } from '../../_internal/select-menu/styles'\nimport { commonDark } from '../../_styles/common'\nimport { popoverDark } from '../../popover/styles'\n\nconst popselect: PopselectTheme = {\n  name: 'Popselect',\n  common: commonDark,\n  peers: {\n    Popover: popoverDark,\n    InternalSelectMenu: internalSelectMenuDark\n  }\n}\n\nexport default popselect\n","import type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../config-provider'\nimport type { PopoverTheme } from '../../popover/styles'\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { popoverLight } from '../../popover/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const { boxShadow2 } = vars\n  return {\n    menuBoxShadow: boxShadow2\n  }\n}\n\nexport interface PopselectThemeVars extends ReturnType<typeof self> {}\n\nconst popselectLight: PopselectTheme = createTheme({\n  name: 'Popselect',\n  common: commonLight,\n  peers: {\n    Popover: popoverLight,\n    InternalSelectMenu: internalSelectMenuLight\n  },\n  self\n})\n\nexport interface PopselectTheme extends Theme<\n  'Popselect',\n  PopselectThemeVars,\n  {\n    Popover: PopoverTheme\n    InternalSelectMenu: InternalSelectMenuTheme\n  }\n> {}\n\nexport interface PopselectThemeOverrides extends ExtractThemeOverrides<PopselectTheme> {}\n\nexport default popselectLight\n","import type { Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { PopoverInst } from '../../popover/src/interface'\nimport type { PopselectTheme } from '../styles'\nimport type { PopselectSetupProps } from './Popselect'\nimport { createInjectionKey } from '../../_utils'\n\nexport interface PopselectInjection {\n  props: PopselectSetupProps\n  mergedThemeRef: Ref<MergedTheme<PopselectTheme>>\n  setShow: (value: boolean) => void\n  syncPosition: () => void\n}\n\nexport type PopselectInst = PopoverInst\n\nexport const popselectInjectionKey\n  = createInjectionKey<PopselectInjection>('n-popselect')\n","import { cB } from '../../../_utils/cssr'\n\n// --n-menu-box-shadow\nexport default cB('popselect-menu', `\n  box-shadow: var(--n-menu-box-shadow);\n`)\n","import type { TreeNode } from 'treemate'\nimport type { CSSProperties, PropType, Ref } from 'vue'\nimport type {\n  NodeProps,\n  RenderLabel\n} from '../../_internal/select-menu/src/interface'\nimport type { MaybeArray } from '../../_utils'\nimport type {\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption,\n  SelectMixedOption,\n  Value,\n  ValueAtom\n} from '../../select/src/interface'\nimport type { PopselectSize } from './public-types'\nimport { happensIn } from 'seemly'\nimport { createTreeMate } from 'treemate'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  nextTick,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { NInternalSelectMenu } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { call, keysOf, warn } from '../../_utils'\nimport { createTmOptions } from '../../select/src/utils'\nimport { popselectLight } from '../styles'\nimport { popselectInjectionKey } from './interface'\nimport style from './styles/index.cssr'\n\nexport const panelProps = {\n  multiple: Boolean,\n  value: {\n    type: [String, Number, Array] as PropType<Value | null>,\n    default: null\n  },\n  cancelable: Boolean,\n  options: {\n    type: Array as PropType<SelectMixedOption[]>,\n    default: () => []\n  },\n  size: String as PropType<PopselectSize>,\n  scrollable: Boolean,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n  onMouseleave: Function as PropType<(e: MouseEvent) => void>,\n  renderLabel: Function as PropType<RenderLabel>,\n  showCheckmark: {\n    type: Boolean,\n    default: undefined\n  },\n  nodeProps: Function as PropType<NodeProps>,\n  virtualScroll: Boolean,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n} as const\n\nexport const panelPropKeys = keysOf(panelProps)\n\nexport default defineComponent({\n  name: 'PopselectPanel',\n  props: panelProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warn(\n            'popselect',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n\n    const NPopselect = inject(popselectInjectionKey)!\n\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed<PopselectSize>(() => {\n      return (\n        props.size\n        || mergedComponentPropsRef?.value?.Popselect?.size\n        || 'medium'\n      )\n    })\n\n    const themeRef = useTheme(\n      'Popselect',\n      '-pop-select',\n      style,\n      popselectLight,\n      NPopselect.props,\n      mergedClsPrefixRef\n    )\n\n    const treeMateRef = computed(() => {\n      return createTreeMate<\n        SelectBaseOption,\n        SelectGroupOption,\n        SelectIgnoredOption\n      >(props.options, createTmOptions('value', 'children'))\n    })\n\n    function doUpdateValue(\n      value: Value | null,\n      option: SelectBaseOption | null | SelectBaseOption[]\n    ): void {\n      const {\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue,\n        onChange\n      } = props\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value, option)\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, option)\n      }\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value, option)\n    }\n    function handleToggle(tmNode: TreeNode<SelectBaseOption>): void {\n      toggle(tmNode.key)\n    }\n    function handleMenuMousedown(e: MouseEvent): void {\n      if (\n        !happensIn(e, 'action')\n        && !happensIn(e, 'empty')\n        && !happensIn(e, 'header')\n      ) {\n        e.preventDefault()\n      }\n    }\n    function toggle(value: ValueAtom): void {\n      const {\n        value: { getNode }\n      } = treeMateRef\n      if (props.multiple) {\n        if (Array.isArray(props.value)) {\n          const newValue: ValueAtom[] = []\n          const newOptions: SelectBaseOption[] = []\n          let shouldAddValue = true\n          props.value.forEach((v) => {\n            if (v === value) {\n              shouldAddValue = false\n              return\n            }\n            const tmNode = getNode(v)\n            if (tmNode) {\n              newValue.push(tmNode.key)\n              newOptions.push(tmNode.rawNode)\n            }\n          })\n          if (shouldAddValue) {\n            newValue.push(value)\n            newOptions.push(getNode(value)!.rawNode)\n          }\n          doUpdateValue(newValue, newOptions)\n        }\n        else {\n          const tmNode = getNode(value)\n          if (tmNode) {\n            doUpdateValue([value], [tmNode.rawNode])\n          }\n        }\n      }\n      else {\n        if (props.value === value && props.cancelable) {\n          doUpdateValue(null, null)\n        }\n        else {\n          const tmNode = getNode(value)\n          if (tmNode) {\n            doUpdateValue(value, tmNode.rawNode)\n          }\n          const { 'onUpdate:show': _onUpdateShow, onUpdateShow }\n            = NPopselect.props\n          if (_onUpdateShow)\n            call(_onUpdateShow, false)\n          if (onUpdateShow)\n            call(onUpdateShow, false)\n          NPopselect.setShow(false)\n        }\n      }\n      void nextTick(() => {\n        NPopselect.syncPosition()\n      })\n    }\n    watch(toRef(props, 'options'), () => {\n      void nextTick(() => {\n        NPopselect.syncPosition()\n      })\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        self: { menuBoxShadow }\n      } = themeRef.value\n      return {\n        '--n-menu-box-shadow': menuBoxShadow\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('select', undefined, cssVarsRef, NPopselect.props)\n      : undefined\n\n    return {\n      mergedTheme: NPopselect.mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      treeMate: treeMateRef,\n      handleToggle,\n      handleMenuMousedown,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      mergedSize: mergedSizeRef,\n      scrollbarProps: NPopselect.props.scrollbarProps\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <NInternalSelectMenu\n        clsPrefix={this.mergedClsPrefix}\n        focusable\n        nodeProps={this.nodeProps}\n        class={[`${this.mergedClsPrefix}-popselect-menu`, this.themeClass]}\n        style={this.cssVars}\n        theme={this.mergedTheme.peers.InternalSelectMenu}\n        themeOverrides={this.mergedTheme.peerOverrides.InternalSelectMenu}\n        multiple={this.multiple}\n        treeMate={this.treeMate}\n        size={this.mergedSize}\n        value={this.value}\n        virtualScroll={this.virtualScroll}\n        scrollable={this.scrollable}\n        scrollbarProps={this.scrollbarProps}\n        renderLabel={this.renderLabel}\n        onToggle={this.handleToggle}\n        onMouseenter={this.onMouseenter}\n        onMouseleave={this.onMouseenter}\n        onMousedown={this.handleMenuMousedown}\n        showCheckmark={this.showCheckmark}\n      >\n        {{\n          header: () => this.$slots.header?.() || [],\n          action: () => this.$slots.action?.() || [],\n          empty: () => this.$slots.empty?.() || []\n        }}\n      </NInternalSelectMenu>\n    )\n  }\n})\n","import type { ExtractPropTypes, PropType, SlotsType, VNode } from 'vue'\nimport type { ScrollbarProps } from '../../_internal/scrollbar/src/Scrollbar'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { PopoverInst, PopoverTrigger } from '../../popover'\nimport type { PopoverInternalProps } from '../../popover/src/Popover'\nimport type { PopselectTheme, PopselectThemeOverrides } from '../styles'\nimport type { PopselectInst } from './interface'\nimport { defineComponent, h, provide, ref } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { createRefSetter, keep, mergeEventHandlers, omit } from '../../_utils'\nimport { NPopover } from '../../popover'\nimport { popoverBaseProps } from '../../popover/src/Popover'\nimport { popselectLight } from '../styles'\nimport { popselectInjectionKey } from './interface'\nimport NPopselectPanel, { panelPropKeys, panelProps } from './PopselectPanel'\n\nexport const popselectProps = {\n  ...(useTheme.props as ThemeProps<PopselectTheme, PopselectThemeOverrides>),\n  ...omit(popoverBaseProps, ['showArrow', 'arrow']),\n  placement: {\n    ...popoverBaseProps.placement,\n    default: 'bottom'\n  },\n  trigger: {\n    type: String as PropType<PopoverTrigger>,\n    default: 'hover'\n  },\n  ...panelProps,\n  scrollbarProps: Object as PropType<ScrollbarProps>\n}\n\nexport type PopselectSetupProps = ExtractPropTypes<typeof popselectProps>\nexport type PopselectProps = ExtractPublicPropTypes<typeof popselectProps>\n\nexport interface PopselectSlots {\n  default?: () => VNode[]\n  header?: () => VNode[]\n  action?: () => VNode[]\n  empty?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Popselect',\n  props: popselectProps,\n  slots: Object as SlotsType<PopselectSlots>,\n  inheritAttrs: false,\n  __popover__: true,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Popselect',\n      '-popselect',\n      undefined,\n      popselectLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const popoverInstRef = ref<PopoverInst | null>(null)\n    function syncPosition(): void {\n      popoverInstRef.value?.syncPosition()\n    }\n    function setShow(value: boolean): void {\n      popoverInstRef.value?.setShow(value)\n    }\n    provide(popselectInjectionKey, {\n      props,\n      mergedThemeRef: themeRef,\n      syncPosition,\n      setShow\n    })\n    const exposedMethods: PopselectInst = {\n      syncPosition,\n      setShow\n    }\n    return {\n      ...exposedMethods,\n      // reduce dts: string ref only, type unused in render\n      popoverInstRef: popoverInstRef as unknown,\n      mergedTheme: themeRef\n    }\n  },\n  render() {\n    const { mergedTheme } = this\n    const popoverProps: PopoverInternalProps & { ref: string } = {\n      theme: mergedTheme.peers.Popover,\n      themeOverrides: mergedTheme.peerOverrides.Popover,\n      builtinThemeOverrides: {\n        padding: '0'\n      },\n      ref: 'popoverInstRef',\n      internalRenderBody: (\n        className,\n        ref,\n        style,\n        onMouseenter,\n        onMouseleave\n      ) => {\n        const { $attrs } = this\n        return (\n          <NPopselectPanel\n            {...$attrs}\n            class={[$attrs.class, className]}\n            style={[$attrs.style, ...style]}\n            {...keep(this.$props, panelPropKeys)}\n            ref={createRefSetter(ref)}\n            onMouseenter={mergeEventHandlers([\n              onMouseenter,\n              $attrs.onMouseenter as ((e: MouseEvent) => void) | undefined\n            ])}\n            onMouseleave={mergeEventHandlers([\n              onMouseleave,\n              $attrs.onMouseleave as ((e: MouseEvent) => void) | undefined\n            ])}\n          >\n            {{\n              header: () => this.$slots.header?.(),\n              action: () => this.$slots.action?.(),\n              empty: () => this.$slots.empty?.()\n            }}\n          </NPopselectPanel>\n        )\n      }\n    }\n    return (\n      <NPopover\n        {...omit(this.$props, panelPropKeys)}\n        {...popoverProps}\n        internalDeactivateImmediately\n      >\n        {{\n          trigger: () => this.$slots.default?.()\n        }}\n      </NPopover>\n    )\n  }\n})\n","import type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'\nimport type { InternalSelectionTheme } from '../../_internal/selection/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles'\nimport { internalSelectionLight } from '../../_internal/selection/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { boxShadow2 } = vars\n  return {\n    menuBoxShadow: boxShadow2\n  }\n}\n\nconst selectLight: SelectTheme = createTheme({\n  name: 'Select',\n  common: commonLight,\n  peers: {\n    InternalSelection: internalSelectionLight,\n    InternalSelectMenu: internalSelectMenuLight\n  },\n  self\n})\n\nexport interface SelectTheme extends Theme<\n  'Select',\n  SelectThemeVars,\n  {\n    InternalSelection: InternalSelectionTheme\n    InternalSelectMenu: InternalSelectMenuTheme\n  }\n> {}\n\nexport interface SelectThemeOverrides extends ExtractThemeOverrides<SelectTheme> {}\n\nexport default selectLight\nexport interface SelectThemeVars extends ReturnType<typeof self> {}\n","import type { SelectTheme } from './light'\nimport { internalSelectMenuDark } from '../../_internal/select-menu/styles'\nimport { internalSelectionDark } from '../../_internal/selection/styles'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst selectDark: SelectTheme = {\n  name: 'Select',\n  common: commonDark,\n  peers: {\n    InternalSelection: internalSelectionDark,\n    InternalSelectMenu: internalSelectMenuDark\n  },\n  self\n}\n\nexport default selectDark\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { scrollbarRtl } from '../../_internal/scrollbar/styles'\nimport { internalSelectMenuRtl } from '../../_internal/select-menu/styles'\nimport { internalSelectionRtl } from '../../_internal/selection/styles'\nimport { c } from '../../_utils/cssr'\nimport { tagRtl } from '../../tag/styles'\n\nexport const selectRtl: RtlItem = {\n  name: 'Select',\n  style: c([]),\n  peers: [internalSelectionRtl, internalSelectMenuRtl, tagRtl, scrollbarRtl]\n}\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB } from '../../../_utils/cssr'\n\n// --n-menu-box-shadow\nexport default c([\n  cB('select', `\n    z-index: auto;\n    outline: none;\n    width: 100%;\n    position: relative;\n    font-weight: var(--n-font-weight);\n  `),\n  cB('select-menu', `\n    margin: 4px 0;\n    box-shadow: var(--n-menu-box-shadow);\n  `, [\n    fadeInScaleUpTransition({\n      originalTransition: 'background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)'\n    })\n  ])\n])\n","import type { TreeNode } from 'treemate'\nimport type {\n  CSSProperties,\n  HTMLAttributes,\n  InputHTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type {\n  InternalSelectionInst,\n  InternalSelectMenuRef,\n  ScrollbarProps\n} from '../../_internal'\nimport type {\n  NodeProps,\n  RenderLabel,\n  RenderOption\n} from '../../_internal/select-menu/src/interface'\nimport type { RenderTag } from '../../_internal/selection/src/interface'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { PopoverProps } from '../../popover'\nimport type { SelectTheme, SelectThemeOverrides } from '../styles'\nimport type {\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  SelectBaseOption,\n  SelectFallbackOption,\n  SelectFallbackOptionImpl,\n  SelectFilter,\n  SelectGroupOption,\n  SelectIgnoredOption,\n  SelectInst,\n  SelectMixedOption,\n  SelectOption,\n  Value,\n  ValueAtom\n} from './interface'\nimport type { SelectSize } from './public-types'\nimport { getPreciseEventTarget, happensIn } from 'seemly'\nimport { createTreeMate } from 'treemate'\nimport { clickoutside } from 'vdirs'\nimport { useCompitable, useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  ref,\n  toRef,\n  Transition,\n  vShow,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NInternalSelection, NInternalSelectMenu } from '../../_internal'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  markEventEffectPerformed,\n  useAdjustedTo,\n  warnOnce\n} from '../../_utils'\nimport { selectLight } from '../styles'\nimport style from './styles/index.cssr'\nimport {\n  createTmOptions,\n  createValOptMap,\n  filterOptions,\n  patternMatched\n} from './utils'\n\nexport const selectProps = {\n  ...(useTheme.props as ThemeProps<SelectTheme, SelectThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  clearable: Boolean,\n  clearCreatedOptionsOnClear: {\n    type: Boolean,\n    default: true\n  },\n  clearFilterAfterSelect: {\n    type: Boolean,\n    default: true\n  },\n  options: {\n    type: Array as PropType<SelectMixedOption[]>,\n    default: () => []\n  },\n  defaultValue: {\n    type: [String, Number, Array] as PropType<Value | null>,\n    default: null\n  },\n  keyboard: {\n    type: Boolean,\n    default: true\n  },\n  value: [String, Number, Array] as PropType<Value | null>,\n  placeholder: String,\n  menuProps: Object as PropType<HTMLAttributes>,\n  multiple: Boolean,\n  size: String as PropType<SelectSize>,\n  menuSize: {\n    type: String as PropType<SelectSize>\n  },\n  filterable: Boolean,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  remote: Boolean,\n  loading: Boolean,\n  filter: Function as PropType<SelectFilter>,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  widthMode: {\n    type: String,\n    default: 'trigger'\n  },\n  tag: Boolean,\n  onCreate: Function as PropType<(label: string) => SelectOption>,\n  fallbackOption: {\n    type: [Function, Boolean] as PropType<\n      SelectFallbackOption | false | undefined\n    >,\n    default: undefined\n  },\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  showArrow: {\n    type: Boolean,\n    default: true\n  },\n  maxTagCount: [Number, String] as PropType<number | 'responsive'>,\n  ellipsisTagPopoverProps: Object as PropType<PopoverProps>,\n  consistentMenuWidth: {\n    type: Boolean,\n    default: true\n  },\n  virtualScroll: {\n    type: Boolean,\n    default: true\n  },\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  valueField: {\n    type: String,\n    default: 'value'\n  },\n  childrenField: {\n    type: String,\n    default: 'children'\n  },\n  renderLabel: Function as PropType<RenderLabel>,\n  renderOption: Function as PropType<RenderOption>,\n  renderTag: Function as PropType<RenderTag>,\n  'onUpdate:value': [Function, Array] as PropType<\n    MaybeArray<OnUpdateValue> | undefined\n  >,\n  inputProps: Object as PropType<InputHTMLAttributes>,\n  nodeProps: Function as PropType<NodeProps>,\n  ignoreComposition: { type: Boolean, default: true },\n  showOnFocus: Boolean,\n  // for jsx\n  onUpdateValue: [Function, Array] as PropType<\n    MaybeArray<OnUpdateValue> | undefined\n  >,\n  onBlur: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void> | undefined\n  >,\n  onClear: [Function, Array] as PropType<MaybeArray<() => void> | undefined>,\n  onFocus: [Function, Array] as PropType<\n    MaybeArray<(e: FocusEvent) => void> | undefined\n  >,\n  onScroll: [Function, Array] as PropType<\n    MaybeArray<(e: Event) => void> | undefined\n  >,\n  onSearch: [Function, Array] as PropType<\n    MaybeArray<(value: string) => void> | undefined\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'show'\n  },\n  resetMenuOnOptionsChange: {\n    type: Boolean,\n    default: true\n  },\n  status: String as PropType<FormValidationStatus>,\n  showCheckmark: {\n    type: Boolean,\n    default: true\n  },\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  /** deprecated */\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  items: Array as PropType<SelectMixedOption[]>\n} as const\n\nexport type SelectProps = ExtractPublicPropTypes<typeof selectProps>\n\nexport interface SelectSlots {\n  default?: () => VNode[]\n  header?: () => VNode[]\n  action?: () => VNode[]\n  empty?: () => VNode[]\n  arrow?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Select',\n  props: selectProps,\n  slots: Object as SlotsType<SelectSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.items !== undefined) {\n          warnOnce(\n            'select',\n            '`items` is deprecated, please use `options` instead.'\n          )\n        }\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'select',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n\n    const {\n      mergedClsPrefixRef,\n      mergedBorderedRef,\n      namespaceRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Select',\n      '-select',\n      style,\n      selectLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const focusedRef = ref(false)\n    const patternRef = ref('')\n    const compitableOptionsRef = useCompitable(props, ['items', 'options'])\n    const createdOptionsRef = ref<SelectOption[]>([])\n    const beingCreatedOptionsRef = ref<SelectOption[]>([])\n    const localOptionsRef = computed<SelectMixedOption[]>(() => {\n      return (\n        beingCreatedOptionsRef.value.concat(\n          createdOptionsRef.value\n        ) as SelectMixedOption[]\n      ).concat(compitableOptionsRef.value)\n    })\n    const resolvedFilterRef = computed(() => {\n      const { filter } = props\n      if (filter)\n        return filter\n      const { labelField, valueField } = props\n      return (pattern: string, option: SelectBaseOption): boolean => {\n        if (!option)\n          return false\n        const label = option[labelField]\n        if (typeof label === 'string') {\n          return patternMatched(pattern, label)\n        }\n        const value = option[valueField]\n        if (typeof value === 'string') {\n          return patternMatched(pattern, value)\n        }\n        if (typeof value === 'number') {\n          return patternMatched(pattern, String(value))\n        }\n        return false\n      }\n    })\n    const filteredOptionsRef = computed(() => {\n      if (props.remote) {\n        return compitableOptionsRef.value\n      }\n      else {\n        const { value: localOptions } = localOptionsRef\n        const { value: pattern } = patternRef\n        if (!pattern.length || !props.filterable) {\n          return localOptions\n        }\n        else {\n          return filterOptions(\n            localOptions,\n            resolvedFilterRef.value,\n            pattern,\n            props.childrenField\n          )\n        }\n      }\n    })\n    const treeMateRef = computed(() => {\n      const { valueField, childrenField } = props\n      const options = createTmOptions(valueField, childrenField)\n      return createTreeMate<\n        SelectOption,\n        SelectGroupOption,\n        SelectIgnoredOption\n      >(filteredOptionsRef.value, options)\n    })\n    const valOptMapRef = computed(() =>\n      createValOptMap(\n        localOptionsRef.value,\n        props.valueField,\n        props.childrenField\n      )\n    )\n    const uncontrolledShowRef = ref(false)\n    const mergedShowRef = useMergedState(\n      toRef(props, 'show'),\n      uncontrolledShowRef\n    )\n    const triggerRef = ref<InternalSelectionInst | null>(null)\n    const followerRef = ref<FollowerInst | null>(null)\n    const menuRef = ref<InternalSelectMenuRef | null>(null)\n    const { localeRef } = useLocale('Select')\n    const localizedPlaceholderRef = computed<string>(() => {\n      return props.placeholder ?? localeRef.value.placeholder\n    })\n\n    const emptyArray: SelectOption[] = []\n    const memoValOptMapRef = ref(new Map<string | number, SelectOption>())\n\n    const wrappedFallbackOptionRef = computed(() => {\n      const { fallbackOption } = props\n      if (fallbackOption === undefined) {\n        const { labelField, valueField } = props\n        return (value: string | number) => ({\n          [labelField]: String(value),\n          [valueField]: value\n        })\n      }\n      if (fallbackOption === false)\n        return false\n      return (value: string | number) => {\n        return Object.assign(\n          (fallbackOption as SelectFallbackOptionImpl)(value),\n          {\n            value\n          }\n        ) as SelectOption\n      }\n    })\n    function getMergedOptions(values: ValueAtom[]): SelectOption[] {\n      const remote = props.remote\n      const { value: memoValOptMap } = memoValOptMapRef\n      const { value: valOptMap } = valOptMapRef\n      const { value: wrappedFallbackOption } = wrappedFallbackOptionRef\n      const options: SelectOption[] = []\n      values.forEach((value) => {\n        if (valOptMap.has(value)) {\n          options.push(valOptMap.get(value)!)\n        }\n        else if (remote && memoValOptMap.has(value)) {\n          options.push(memoValOptMap.get(value)!)\n        }\n        else if (wrappedFallbackOption) {\n          const option = wrappedFallbackOption(value)\n          if (option) {\n            options.push(option)\n          }\n        }\n      })\n      return options\n    }\n    const selectedOptionsRef = computed(() => {\n      if (props.multiple) {\n        const { value: values } = mergedValueRef\n        if (!Array.isArray(values))\n          return []\n        return getMergedOptions(values)\n      }\n      return null\n    })\n    const selectedOptionRef = computed<SelectOption | null>(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (!props.multiple && !Array.isArray(mergedValue)) {\n        if (mergedValue === null)\n          return null\n        return getMergedOptions([mergedValue])[0] || null\n      }\n      return null\n    })\n\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as SelectSize\n        const configSize = mergedComponentPropsRef?.value?.Select?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    function doUpdateValue(\n      value: string | number | Array<string | number> | null,\n      option: SelectOption | null | SelectOption[]\n    ): void {\n      const {\n        onChange,\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue\n      } = props\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value, option)\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value, option)\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, option)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormChange()\n      nTriggerFormInput()\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doClear(): void {\n      const { onClear } = props\n      if (onClear)\n        call(onClear)\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus, showOnFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n      if (showOnFocus) {\n        openMenu()\n      }\n    }\n    function doSearch(value: string): void {\n      const { onSearch } = props\n      if (onSearch)\n        call(onSearch, value)\n    }\n    function doScroll(e: Event): void {\n      const { onScroll } = props\n      if (onScroll)\n        call(onScroll, e)\n    }\n    // remote related methods\n    function updateMemorizedOptions(): void {\n      const { remote, multiple } = props\n      if (remote) {\n        const { value: memoValOptMap } = memoValOptMapRef\n        if (multiple) {\n          const { valueField } = props\n          selectedOptionsRef.value?.forEach((option) => {\n            memoValOptMap.set(\n              option[valueField] as NonNullable<SelectOption['value']>,\n              option\n            )\n          })\n        }\n        else {\n          const option = selectedOptionRef.value\n          if (option) {\n            memoValOptMap.set(\n              option[props.valueField] as NonNullable<SelectOption['value']>,\n              option\n            )\n          }\n        }\n      }\n    }\n    // menu related methods\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n      uncontrolledShowRef.value = value\n    }\n    function openMenu(): void {\n      if (!mergedDisabledRef.value) {\n        doUpdateShow(true)\n        uncontrolledShowRef.value = true\n        if (props.filterable) {\n          focusSelectionInput()\n        }\n      }\n    }\n    function closeMenu(): void {\n      doUpdateShow(false)\n    }\n    function handleMenuAfterLeave(): void {\n      patternRef.value = ''\n      beingCreatedOptionsRef.value = emptyArray\n    }\n    const activeWithoutMenuOpenRef = ref(false)\n    function onTriggerInputFocus(): void {\n      if (props.filterable) {\n        activeWithoutMenuOpenRef.value = true\n      }\n    }\n    function onTriggerInputBlur(): void {\n      if (props.filterable) {\n        activeWithoutMenuOpenRef.value = false\n        if (!mergedShowRef.value) {\n          handleMenuAfterLeave()\n        }\n      }\n    }\n    function handleTriggerClick(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (!mergedShowRef.value) {\n        openMenu()\n      }\n      else {\n        if (!props.filterable) {\n          // already focused, don't need to return focus\n          closeMenu()\n        }\n        else {\n          focusSelectionInput()\n        }\n      }\n    }\n    function handleTriggerBlur(e: FocusEvent): void {\n      if (menuRef.value?.selfRef?.contains(e.relatedTarget as Node | null)) {\n        return\n      }\n      focusedRef.value = false\n      doBlur(e)\n      // outside select, don't need to return focus\n      closeMenu()\n    }\n    function handleTriggerFocus(e: FocusEvent): void {\n      doFocus(e)\n      focusedRef.value = true\n    }\n    function handleMenuFocus(): void {\n      focusedRef.value = true\n    }\n    function handleMenuBlur(e: FocusEvent): void {\n      if (triggerRef.value?.$el.contains(e.relatedTarget as Node | null))\n        return\n      focusedRef.value = false\n      doBlur(e)\n      // outside select, don't need to return focus\n      closeMenu()\n    }\n    function handleMenuTabOut(): void {\n      triggerRef.value?.focus()\n      closeMenu()\n    }\n    function handleMenuClickOutside(e: MouseEvent): void {\n      if (mergedShowRef.value) {\n        if (\n          !triggerRef.value?.$el.contains(\n            getPreciseEventTarget(e) as Node | null\n          )\n        ) {\n          // outside select, don't need to return focus\n          closeMenu()\n        }\n      }\n    }\n    function createClearedMultipleSelectValue(\n      value: string | number | Array<string | number> | null\n    ): Array<string | number> {\n      if (!Array.isArray(value))\n        return []\n      if (wrappedFallbackOptionRef.value) {\n        // if option has a fallback, I can't help user to clear some unknown value\n        return Array.from(value)\n      }\n      else {\n        // if there's no option fallback, unappeared options are treated as invalid\n        const { remote } = props\n        const { value: valOptMap } = valOptMapRef\n        if (remote) {\n          const { value: memoValOptMap } = memoValOptMapRef\n          return value.filter(v => valOptMap.has(v) || memoValOptMap.has(v))\n        }\n        else {\n          return value.filter(v => valOptMap.has(v))\n        }\n      }\n    }\n    function handleToggleByTmNode(tmNode: TreeNode<SelectOption>): void {\n      handleToggleByOption(tmNode.rawNode)\n    }\n    function handleToggleByOption(option: SelectOption): void {\n      if (mergedDisabledRef.value)\n        return\n      const { tag, remote, clearFilterAfterSelect, valueField } = props\n      if (tag && !remote) {\n        const { value: beingCreatedOptions } = beingCreatedOptionsRef\n        const beingCreatedOption = beingCreatedOptions[0] || null\n        if (beingCreatedOption) {\n          const createdOptions = createdOptionsRef.value\n          if (!createdOptions.length) {\n            createdOptionsRef.value = [beingCreatedOption]\n          }\n          else {\n            createdOptions.push(beingCreatedOption)\n          }\n          beingCreatedOptionsRef.value = emptyArray\n        }\n      }\n      if (remote) {\n        memoValOptMapRef.value.set(\n          option[valueField] as NonNullable<SelectOption['value']>,\n          option\n        )\n      }\n      if (props.multiple) {\n        const changedValue = createClearedMultipleSelectValue(\n          mergedValueRef.value\n        )\n        const index = changedValue.findIndex(\n          value =>\n            value === (option[valueField] as NonNullable<SelectOption['value']>)\n        )\n        if (~index) {\n          changedValue.splice(index, 1)\n          if (tag && !remote) {\n            const createdOptionIndex = getCreatedOptionIndex(\n              option[valueField] as NonNullable<SelectOption['value']>\n            )\n            if (~createdOptionIndex) {\n              createdOptionsRef.value.splice(createdOptionIndex, 1)\n              if (clearFilterAfterSelect)\n                patternRef.value = ''\n            }\n          }\n        }\n        else {\n          changedValue.push(\n            option[valueField] as NonNullable<SelectOption['value']>\n          )\n          if (clearFilterAfterSelect)\n            patternRef.value = ''\n        }\n        doUpdateValue(changedValue, getMergedOptions(changedValue))\n      }\n      else {\n        if (tag && !remote) {\n          const createdOptionIndex = getCreatedOptionIndex(\n            option[valueField] as NonNullable<SelectOption['value']>\n          )\n          if (~createdOptionIndex) {\n            createdOptionsRef.value = [\n              createdOptionsRef.value[createdOptionIndex]\n            ]\n          }\n          else {\n            createdOptionsRef.value = emptyArray\n          }\n        }\n        focusSelection()\n        closeMenu()\n        doUpdateValue(\n          option[valueField] as NonNullable<SelectOption['value']>,\n          option\n        )\n      }\n    }\n    function getCreatedOptionIndex(optionValue: string | number): number {\n      const createdOptions = createdOptionsRef.value\n      return createdOptions.findIndex(\n        createdOption =>\n          (createdOption[props.valueField] as NonNullable<\n            SelectOption['value']\n          >) === optionValue\n      )\n    }\n    function handlePatternInput(e: InputEvent): void {\n      if (!mergedShowRef.value) {\n        openMenu()\n      }\n      const { value } = e.target as unknown as HTMLInputElement\n      patternRef.value = value\n      const { tag, remote } = props\n      doSearch(value)\n      if (tag && !remote) {\n        if (!value) {\n          beingCreatedOptionsRef.value = emptyArray\n          return\n        }\n        const { onCreate } = props\n        const optionBeingCreated = onCreate\n          ? onCreate(value)\n          : { [props.labelField]: value, [props.valueField]: value }\n        const { valueField, labelField } = props\n        if (\n          compitableOptionsRef.value.some((option) => {\n            return (\n              option[valueField] === optionBeingCreated[valueField]\n              || option[labelField] === optionBeingCreated[labelField]\n            )\n          })\n          || createdOptionsRef.value.some((option) => {\n            return (\n              option[valueField] === optionBeingCreated[valueField]\n              || option[labelField] === optionBeingCreated[labelField]\n            )\n          })\n        ) {\n          beingCreatedOptionsRef.value = emptyArray\n        }\n        else {\n          beingCreatedOptionsRef.value = [optionBeingCreated]\n        }\n      }\n    }\n    function handleClear(e: MouseEvent): void {\n      e.stopPropagation()\n      const { multiple, tag, remote, clearCreatedOptionsOnClear } = props\n      if (!multiple && props.filterable) {\n        closeMenu()\n      }\n      if (tag && !remote && clearCreatedOptionsOnClear) {\n        createdOptionsRef.value = emptyArray\n      }\n      doClear()\n      if (multiple) {\n        doUpdateValue([], [])\n      }\n      else {\n        doUpdateValue(null, null)\n      }\n    }\n    function handleMenuMousedown(e: MouseEvent): void {\n      if (\n        !happensIn(e, 'action')\n        && !happensIn(e, 'empty')\n        && !happensIn(e, 'header')\n      ) {\n        e.preventDefault()\n      }\n    }\n    // scroll events on menu\n    function handleMenuScroll(e: Event): void {\n      doScroll(e)\n    }\n    // keyboard events\n    // also for menu keydown\n    function handleKeydown(e: KeyboardEvent): void {\n      if (!props.keyboard) {\n        e.preventDefault()\n        return\n      }\n      switch (e.key) {\n        case ' ':\n          if (props.filterable) {\n            break\n          }\n          else {\n            e.preventDefault()\n          }\n        // eslint-disable-next-line no-fallthrough\n        case 'Enter':\n          if (!triggerRef.value?.isComposing) {\n            if (mergedShowRef.value) {\n              const pendingTmNode = menuRef.value?.getPendingTmNode()\n              if (pendingTmNode) {\n                handleToggleByTmNode(pendingTmNode)\n              }\n              else if (!props.filterable) {\n                closeMenu()\n                focusSelection()\n              }\n            }\n            else {\n              openMenu()\n              if (props.tag && activeWithoutMenuOpenRef.value) {\n                const beingCreatedOption = beingCreatedOptionsRef.value[0]\n                if (beingCreatedOption) {\n                  const optionValue = beingCreatedOption[\n                    props.valueField\n                  ] as NonNullable<SelectOption['value']>\n                  const { value: mergedValue } = mergedValueRef\n                  if (props.multiple) {\n                    if (\n                      Array.isArray(mergedValue)\n                      && mergedValue.includes(optionValue as never)\n                    ) {\n                      // do nothing\n                    }\n                    else {\n                      handleToggleByOption(beingCreatedOption)\n                    }\n                  }\n                  else {\n                    handleToggleByOption(beingCreatedOption)\n                  }\n                }\n              }\n            }\n          }\n          e.preventDefault()\n          break\n        case 'ArrowUp':\n          e.preventDefault()\n          if (props.loading)\n            return\n          if (mergedShowRef.value) {\n            menuRef.value?.prev()\n          }\n          break\n        case 'ArrowDown':\n          e.preventDefault()\n          if (props.loading)\n            return\n          if (mergedShowRef.value) {\n            menuRef.value?.next()\n          }\n          else {\n            openMenu()\n          }\n          break\n        case 'Escape':\n          if (mergedShowRef.value) {\n            markEventEffectPerformed(e)\n            closeMenu()\n          }\n          triggerRef.value?.focus()\n          break\n      }\n    }\n    function focusSelection(): void {\n      triggerRef.value?.focus()\n    }\n    function focusSelectionInput(): void {\n      triggerRef.value?.focusInput()\n    }\n    function handleTriggerOrMenuResize(): void {\n      if (!mergedShowRef.value)\n        return\n      followerRef.value?.syncPosition()\n    }\n    updateMemorizedOptions()\n    watch(toRef(props, 'options'), updateMemorizedOptions)\n\n    const exposedMethods: SelectInst = {\n      focus: () => {\n        triggerRef.value?.focus()\n      },\n      focusInput: () => {\n        triggerRef.value?.focusInput()\n      },\n      blur: () => {\n        triggerRef.value?.blur()\n      },\n      blurInput: () => {\n        triggerRef.value?.blurInput()\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        self: { menuBoxShadow }\n      } = themeRef.value\n      return {\n        '--n-menu-box-shadow': menuBoxShadow\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('select', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      ...exposedMethods,\n      mergedStatus: mergedStatusRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      namespace: namespaceRef,\n      treeMate: treeMateRef,\n      isMounted: useIsMounted(),\n      // reduce dts: string ref only, type unused in render\n      triggerRef: triggerRef as unknown,\n      menuRef: menuRef as unknown,\n      pattern: patternRef,\n      uncontrolledShow: uncontrolledShowRef,\n      mergedShow: mergedShowRef,\n      adjustedTo: useAdjustedTo(props),\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      // reduce dts: string ref only, type unused in render\n      followerRef: followerRef as unknown,\n      localizedPlaceholder: localizedPlaceholderRef,\n      selectedOption: selectedOptionRef,\n      selectedOptions: selectedOptionsRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      focused: focusedRef,\n      activeWithoutMenuOpen: activeWithoutMenuOpenRef,\n      inlineThemeDisabled,\n      onTriggerInputFocus,\n      onTriggerInputBlur,\n      handleTriggerOrMenuResize,\n      handleMenuFocus,\n      handleMenuBlur,\n      handleMenuTabOut,\n      handleTriggerClick,\n      handleToggle: handleToggleByTmNode,\n      handleDeleteOption: handleToggleByOption,\n      handlePatternInput,\n      handleClear,\n      handleTriggerBlur,\n      handleTriggerFocus,\n      handleKeydown,\n      handleMenuAfterLeave,\n      handleMenuClickOutside,\n      handleMenuScroll,\n      handleMenuKeydown: handleKeydown,\n      handleMenuMousedown,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    return (\n      <div class={`${this.mergedClsPrefix}-select`}>\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => (\n                    <NInternalSelection\n                      ref=\"triggerRef\"\n                      inlineThemeDisabled={this.inlineThemeDisabled}\n                      status={this.mergedStatus}\n                      inputProps={this.inputProps}\n                      clsPrefix={this.mergedClsPrefix}\n                      showArrow={this.showArrow}\n                      maxTagCount={this.maxTagCount}\n                      ellipsisTagPopoverProps={this.ellipsisTagPopoverProps}\n                      bordered={this.mergedBordered}\n                      active={this.activeWithoutMenuOpen || this.mergedShow}\n                      pattern={this.pattern}\n                      placeholder={this.localizedPlaceholder}\n                      selectedOption={this.selectedOption}\n                      selectedOptions={this.selectedOptions}\n                      multiple={this.multiple}\n                      renderTag={this.renderTag}\n                      renderLabel={this.renderLabel}\n                      filterable={this.filterable}\n                      clearable={this.clearable}\n                      disabled={this.mergedDisabled}\n                      size={this.mergedSize}\n                      theme={this.mergedTheme.peers.InternalSelection}\n                      labelField={this.labelField}\n                      valueField={this.valueField}\n                      themeOverrides={\n                        this.mergedTheme.peerOverrides.InternalSelection\n                      }\n                      loading={this.loading}\n                      focused={this.focused}\n                      onClick={this.handleTriggerClick}\n                      onDeleteOption={this.handleDeleteOption}\n                      onPatternInput={this.handlePatternInput}\n                      onClear={this.handleClear}\n                      onBlur={this.handleTriggerBlur}\n                      onFocus={this.handleTriggerFocus}\n                      onKeydown={this.handleKeydown}\n                      onPatternBlur={this.onTriggerInputBlur}\n                      onPatternFocus={this.onTriggerInputFocus}\n                      onResize={this.handleTriggerOrMenuResize}\n                      ignoreComposition={this.ignoreComposition}\n                    >\n                      {{\n                        arrow: () => [this.$slots.arrow?.()]\n                      }}\n                    </NInternalSelection>\n                  )\n                }}\n              </VTarget>,\n              <VFollower\n                ref=\"followerRef\"\n                show={this.mergedShow}\n                to={this.adjustedTo}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                containerClass={this.namespace}\n                width={this.consistentMenuWidth ? 'target' : undefined}\n                minWidth=\"target\"\n                placement={this.placement}\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                      onAfterLeave={this.handleMenuAfterLeave}\n                    >\n                      {{\n                        default: () => {\n                          if (!(\n                            this.mergedShow || this.displayDirective === 'show'\n                          )) {\n                            return null\n                          }\n                          this.onRender?.()\n                          return withDirectives(\n                            <NInternalSelectMenu\n                              {...this.menuProps}\n                              ref=\"menuRef\"\n                              onResize={this.handleTriggerOrMenuResize}\n                              inlineThemeDisabled={this.inlineThemeDisabled}\n                              virtualScroll={\n                                this.consistentMenuWidth && this.virtualScroll\n                              }\n                              class={[\n                                `${this.mergedClsPrefix}-select-menu`,\n                                this.themeClass,\n                                this.menuProps?.class\n                              ]}\n                              clsPrefix={this.mergedClsPrefix}\n                              focusable\n                              labelField={this.labelField}\n                              valueField={this.valueField}\n                              autoPending={true}\n                              nodeProps={this.nodeProps}\n                              theme={this.mergedTheme.peers.InternalSelectMenu}\n                              themeOverrides={\n                                this.mergedTheme.peerOverrides\n                                  .InternalSelectMenu\n                              }\n                              treeMate={this.treeMate}\n                              multiple={this.multiple}\n                              size={this.menuSize}\n                              renderOption={this.renderOption}\n                              renderLabel={this.renderLabel}\n                              value={this.mergedValue}\n                              style={[this.menuProps?.style, this.cssVars]}\n                              onToggle={this.handleToggle}\n                              onScroll={this.handleMenuScroll}\n                              onFocus={this.handleMenuFocus}\n                              onBlur={this.handleMenuBlur}\n                              onKeydown={this.handleMenuKeydown}\n                              onTabOut={this.handleMenuTabOut}\n                              onMousedown={this.handleMenuMousedown}\n                              show={this.mergedShow}\n                              showCheckmark={this.showCheckmark}\n                              resetMenuOnOptionsChange={\n                                this.resetMenuOnOptionsChange\n                              }\n                              scrollbarProps={this.scrollbarProps}\n                            >\n                              {{\n                                empty: () => [this.$slots.empty?.()],\n                                header: () => [this.$slots.header?.()],\n                                action: () => [this.$slots.action?.()]\n                              }}\n                            </NInternalSelectMenu>,\n                            this.displayDirective === 'show'\n                              ? [\n                                  [vShow, this.mergedShow],\n                                  [\n                                    clickoutside,\n                                    this.handleMenuClickOutside,\n                                    undefined,\n                                    { capture: true }\n                                  ]\n                                ]\n                              : [\n                                  [\n                                    clickoutside,\n                                    this.handleMenuClickOutside,\n                                    undefined,\n                                    { capture: true }\n                                  ]\n                                ]\n                          )\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","export default {\n  itemPaddingSmall: '0 4px',\n  itemMarginSmall: '0 0 0 8px',\n  itemMarginSmallRtl: '0 8px 0 0',\n  itemPaddingMedium: '0 4px',\n  itemMarginMedium: '0 0 0 8px',\n  itemMarginMediumRtl: '0 8px 0 0',\n  itemPaddingLarge: '0 4px',\n  itemMarginLarge: '0 0 0 8px',\n  itemMarginLargeRtl: '0 8px 0 0',\n  buttonIconSizeSmall: '14px',\n  buttonIconSizeMedium: '16px',\n  buttonIconSizeLarge: '18px',\n  inputWidthSmall: '60px',\n  selectWidthSmall: 'unset',\n  inputMarginSmall: '0 0 0 8px',\n  inputMarginSmallRtl: '0 8px 0 0',\n  selectMarginSmall: '0 0 0 8px',\n  prefixMarginSmall: '0 8px 0 0',\n  suffixMarginSmall: '0 0 0 8px',\n  inputWidthMedium: '60px',\n  selectWidthMedium: 'unset',\n  inputMarginMedium: '0 0 0 8px',\n  inputMarginMediumRtl: '0 8px 0 0',\n  selectMarginMedium: '0 0 0 8px',\n  prefixMarginMedium: '0 8px 0 0',\n  suffixMarginMedium: '0 0 0 8px',\n  inputWidthLarge: '60px',\n  selectWidthLarge: 'unset',\n  inputMarginLarge: '0 0 0 8px',\n  inputMarginLargeRtl: '0 8px 0 0',\n  selectMarginLarge: '0 0 0 8px',\n  prefixMarginLarge: '0 8px 0 0',\n  suffixMarginLarge: '0 0 0 8px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { InputTheme } from '../../input/styles'\nimport type { PopselectTheme } from '../../popselect/styles'\nimport type { SelectTheme } from '../../select/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { inputLight } from '../../input/styles'\nimport { popselectLight } from '../../popselect/styles'\nimport { selectLight } from '../../select/styles'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    primaryColor,\n    primaryColorHover,\n    primaryColorPressed,\n    inputColorDisabled,\n    textColorDisabled,\n    borderColor,\n    borderRadius,\n    // item font size\n    fontSizeTiny,\n    fontSizeSmall,\n    fontSizeMedium,\n    // item size\n    heightTiny,\n    heightSmall,\n    heightMedium\n  } = vars\n\n  return {\n    ...commonVariables,\n    buttonColor: '#0000',\n    buttonColorHover: '#0000',\n    buttonColorPressed: '#0000',\n    buttonBorder: `1px solid ${borderColor}`,\n    buttonBorderHover: `1px solid ${borderColor}`,\n    buttonBorderPressed: `1px solid ${borderColor}`,\n    buttonIconColor: textColor2,\n    buttonIconColorHover: textColor2,\n    buttonIconColorPressed: textColor2,\n    itemTextColor: textColor2,\n    itemTextColorHover: primaryColorHover,\n    itemTextColorPressed: primaryColorPressed,\n    itemTextColorActive: primaryColor,\n    itemTextColorDisabled: textColorDisabled,\n    itemColor: '#0000',\n    itemColorHover: '#0000',\n    itemColorPressed: '#0000',\n    itemColorActive: '#0000',\n    itemColorActiveHover: '#0000',\n    itemColorDisabled: inputColorDisabled,\n    itemBorder: '1px solid #0000',\n    itemBorderHover: '1px solid #0000',\n    itemBorderPressed: '1px solid #0000',\n    itemBorderActive: `1px solid ${primaryColor}`,\n    itemBorderDisabled: `1px solid ${borderColor}`,\n    itemBorderRadius: borderRadius,\n    itemSizeSmall: heightTiny,\n    itemSizeMedium: heightSmall,\n    itemSizeLarge: heightMedium,\n    itemFontSizeSmall: fontSizeTiny,\n    itemFontSizeMedium: fontSizeSmall,\n    itemFontSizeLarge: fontSizeMedium,\n    jumperFontSizeSmall: fontSizeTiny,\n    jumperFontSizeMedium: fontSizeSmall,\n    jumperFontSizeLarge: fontSizeMedium,\n    jumperTextColor: textColor2,\n    jumperTextColorDisabled: textColorDisabled\n  }\n}\n\nexport interface PaginationThemeVars extends ReturnType<typeof self> {}\n\nconst paginationLight: PaginationTheme = createTheme({\n  name: 'Pagination',\n  common: commonLight,\n  peers: {\n    Select: selectLight,\n    Input: inputLight,\n    Popselect: popselectLight\n  },\n  self\n})\n\nexport interface PaginationTheme extends Theme<\n  'Pagination',\n  PaginationThemeVars,\n  {\n    Select: SelectTheme\n    Input: InputTheme\n    Popselect: PopselectTheme\n  }\n> {}\n\nexport interface PaginationThemeOverrides extends ExtractThemeOverrides<PaginationTheme> {}\n\nexport default paginationLight\n","import type { PaginationTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport { inputDark } from '../../input/styles'\nimport { popselectDark } from '../../popselect/styles'\nimport { selectDark } from '../../select/styles'\nimport { self } from './light'\n\nconst paginationDark: PaginationTheme = {\n  name: 'Pagination',\n  common: commonDark,\n  peers: {\n    Select: selectDark,\n    Input: inputDark,\n    Popselect: popselectDark\n  },\n  self(vars) {\n    const { primaryColor, opacity3 } = vars\n    const borderColorActive = changeColor(primaryColor, {\n      alpha: Number(opacity3)\n    })\n    const commonSelf = self(vars)\n    commonSelf.itemBorderActive = `1px solid ${borderColorActive}`\n    commonSelf.itemBorderDisabled = '1px solid #0000'\n    return commonSelf\n  }\n}\n\nexport default paginationDark\n","import { c, cB, cM } from '../../../_utils/cssr'\n\nexport default cB('pagination', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    c('> *:not(:first-child)', `\n      margin: var(--n-item-margin-rtl);\n    `),\n    cB('pagination-quick-jumper', [\n      cB('input', `\n        margin: var(--n-input-margin-rtl);\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { inputRtl } from '../../input/styles/rtl'\nimport { selectRtl } from '../../select/styles'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const paginationRtl: RtlItem = {\n  name: 'Pagination',\n  style: rtlStyle,\n  peers: [inputRtl, selectRtl]\n}\n","import { c, cB, cM, cNotM } from '../../../_utils/cssr'\n\nconst hoverStyleProps = `\n  background: var(--n-item-color-hover);\n  color: var(--n-item-text-color-hover);\n  border: var(--n-item-border-hover);\n`\n\nconst hoverStyleChildren = [\n  cM('button', `\n    background: var(--n-button-color-hover);\n    border: var(--n-button-border-hover);\n    color: var(--n-button-icon-color-hover);\n  `)\n]\n\n// vars:\n// --n-item-font-size\n// --n-select-width\n// --n-input-width\n// --n-input-margin\n// --n-item-size\n// --n-item-text-color\n// --n-item-text-color-disabled\n// --n-item-text-color-hover\n// --n-item-text-color-active\n// --n-item-color\n// --n-item-color-hover\n// --n-item-color-disabled\n// --n-item-color-active\n// --n-item-color-active-hover\n// --n-item-border\n// --n-item-border-hover\n// --n-item-border-disabled\n// --n-item-border-active\n// --n-item-padding\n// --n-item-font-size\n// --n-item-border-radius\n// --n-bezier\n// --n-jumper-font-size\n// --n-jumper-text-color\n// --n-jumper-text-color-disabled\n// --n-item-margin\n// --n-button-icon-size\n// --n-button-icon-color\n// --n-button-icon-color-hover\n// --n-button-icon-color-pressed\n// --n-prefix-margin\n// --n-suffix-margin\n// --n-button-color\n// --n-button-color-hover\n// --n-button-color-pressed\nexport default cB('pagination', `\n  display: flex;\n  vertical-align: middle;\n  font-size: var(--n-item-font-size);\n  flex-wrap: nowrap;\n`, [\n  cB('pagination-prefix', `\n    display: flex;\n    align-items: center;\n    margin: var(--n-prefix-margin);\n  `),\n  cB('pagination-suffix', `\n    display: flex;\n    align-items: center;\n    margin: var(--n-suffix-margin);\n  `),\n  c('> *:not(:first-child)', `\n    margin: var(--n-item-margin);\n  `),\n  cB('select', `\n    width: var(--n-select-width);\n  `),\n  c('&.transition-disabled', [\n    cB('pagination-item', 'transition: none!important;')\n  ]),\n  cB('pagination-quick-jumper', `\n    white-space: nowrap;\n    display: flex;\n    color: var(--n-jumper-text-color);\n    transition: color .3s var(--n-bezier);\n    align-items: center;\n    font-size: var(--n-jumper-font-size);\n  `, [\n    cB('input', `\n      margin: var(--n-input-margin);\n      width: var(--n-input-width);\n    `)\n  ]),\n  cB('pagination-item', `\n    position: relative;\n    cursor: pointer;\n    user-select: none;\n    -webkit-user-select: none;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    box-sizing: border-box;\n    min-width: var(--n-item-size);\n    height: var(--n-item-size);\n    padding: var(--n-item-padding);\n    background-color: var(--n-item-color);\n    color: var(--n-item-text-color);\n    border-radius: var(--n-item-border-radius);\n    border: var(--n-item-border);\n    fill: var(--n-button-icon-color);\n    transition:\n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      fill .3s var(--n-bezier);\n  `, [\n    cM('button', `\n      background: var(--n-button-color);\n      color: var(--n-button-icon-color);\n      border: var(--n-button-border);\n      padding: 0;\n    `, [\n      cB('base-icon', `\n        font-size: var(--n-button-icon-size);\n      `)\n    ]),\n    cNotM('disabled', [\n      cM('hover', hoverStyleProps, hoverStyleChildren),\n      c('&:hover', hoverStyleProps, hoverStyleChildren),\n      c('&:active', `\n        background: var(--n-item-color-pressed);\n        color: var(--n-item-text-color-pressed);\n        border: var(--n-item-border-pressed);\n      `, [\n        cM('button', `\n          background: var(--n-button-color-pressed);\n          border: var(--n-button-border-pressed);\n          color: var(--n-button-icon-color-pressed);\n        `)\n      ]),\n      cM('active', `\n        background: var(--n-item-color-active);\n        color: var(--n-item-text-color-active);\n        border: var(--n-item-border-active);\n      `, [\n        c('&:hover', `\n          background: var(--n-item-color-active-hover);\n        `)\n      ])\n    ]),\n    cM('disabled', `\n      cursor: not-allowed;\n      color: var(--n-item-text-color-disabled);\n    `, [\n      cM('active, button', `\n        background-color: var(--n-item-color-disabled);\n        border: var(--n-item-border-disabled);\n      `)\n    ])\n  ]),\n  cM('disabled', `\n    cursor: not-allowed;\n  `, [\n    cB('pagination-quick-jumper', `\n      color: var(--n-jumper-text-color-disabled);\n    `)\n  ]),\n  cM('simple', `\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n  `, [\n    cB('pagination-quick-jumper', [\n      cB('input', `\n        margin: 0;\n      `)\n    ])\n  ])\n])\n","import type { PaginationProps } from './Pagination'\n\nexport function getDefaultPageSize(\n  paginationProps: PaginationProps | false\n): number {\n  if (!paginationProps)\n    return 10\n  const { defaultPageSize } = paginationProps\n  if (defaultPageSize !== undefined)\n    return defaultPageSize\n  const pageSizeOption = paginationProps.pageSizes?.[0]\n  if (typeof pageSizeOption === 'number')\n    return pageSizeOption\n  return pageSizeOption?.value || 10\n}\n\nfunction createPageItemsInfo(\n  currentPage: number,\n  pageCount: number,\n  pageSlot: number,\n  showQuickJumpDropdown: boolean\n): {\n  hasFastBackward: boolean\n  hasFastForward: boolean\n  fastBackwardTo: number\n  fastForwardTo: number\n  items: PageItem[]\n} {\n  let hasFastBackward = false\n  let hasFastForward = false\n  let fastBackwardTo = 1\n  let fastForwardTo = pageCount\n  if (pageCount === 1) {\n    return {\n      hasFastBackward: false,\n      hasFastForward: false,\n      fastForwardTo,\n      fastBackwardTo,\n      items: [\n        {\n          type: 'page',\n          label: 1,\n          active: currentPage === 1,\n          mayBeFastBackward: false,\n          mayBeFastForward: false\n        }\n      ]\n    }\n  }\n  if (pageCount === 2) {\n    return {\n      hasFastBackward: false,\n      hasFastForward: false,\n      fastForwardTo,\n      fastBackwardTo,\n      items: [\n        {\n          type: 'page',\n          label: 1,\n          active: currentPage === 1,\n          mayBeFastBackward: false,\n          mayBeFastForward: false\n        },\n        {\n          type: 'page',\n          label: 2,\n          active: currentPage === 2,\n          mayBeFastBackward: true,\n          mayBeFastForward: false\n        }\n      ]\n    }\n  }\n  const firstPage = 1\n  const lastPage = pageCount\n  let middleStart = currentPage\n  let middleEnd = currentPage\n  const middleDelta = (pageSlot - 5) / 2\n  middleEnd += Math.ceil(middleDelta)\n  middleEnd = Math.min(\n    Math.max(middleEnd, firstPage + pageSlot - 3),\n    lastPage - 2\n  )\n  middleStart -= Math.floor(middleDelta)\n  middleStart = Math.max(\n    Math.min(middleStart, lastPage - pageSlot + 3),\n    firstPage + 2\n  )\n  let leftSplit = false\n  let rightSplit = false\n  if (middleStart > firstPage + 2)\n    leftSplit = true\n  if (middleEnd < lastPage - 2)\n    rightSplit = true\n  const items: PageItem[] = []\n  items.push({\n    type: 'page',\n    label: 1,\n    active: currentPage === 1,\n    mayBeFastBackward: false,\n    mayBeFastForward: false\n  })\n  if (leftSplit) {\n    hasFastBackward = true\n    fastBackwardTo = middleStart - 1\n    items.push({\n      type: 'fast-backward',\n      active: false,\n      label: undefined,\n      options: showQuickJumpDropdown\n        ? createRange(firstPage + 1, middleStart - 1)\n        : null\n    })\n  }\n  else if (lastPage >= firstPage + 1) {\n    items.push({\n      type: 'page',\n      label: firstPage + 1,\n      mayBeFastBackward: true,\n      mayBeFastForward: false,\n      active: currentPage === firstPage + 1\n    })\n  }\n  for (let i = middleStart; i <= middleEnd; ++i) {\n    items.push({\n      type: 'page',\n      label: i,\n      mayBeFastBackward: false,\n      mayBeFastForward: false,\n      active: currentPage === i\n    })\n  }\n  if (rightSplit) {\n    hasFastForward = true\n    fastForwardTo = middleEnd + 1\n    items.push({\n      type: 'fast-forward',\n      active: false,\n      label: undefined,\n      options: showQuickJumpDropdown\n        ? createRange(middleEnd + 1, lastPage - 1)\n        : null\n    })\n  }\n  else if (\n    middleEnd === lastPage - 2\n    && items[items.length - 1].label !== lastPage - 1\n  ) {\n    items.push({\n      type: 'page',\n      mayBeFastForward: true,\n      mayBeFastBackward: false,\n      label: lastPage - 1,\n      active: currentPage === lastPage - 1\n    })\n  }\n  if (items[items.length - 1].label !== lastPage) {\n    items.push({\n      type: 'page',\n      mayBeFastForward: false,\n      mayBeFastBackward: false,\n      label: lastPage,\n      active: currentPage === lastPage\n    })\n  }\n  return {\n    hasFastBackward,\n    hasFastForward,\n    fastBackwardTo,\n    fastForwardTo,\n    items\n  }\n}\n\nexport type PageItem\n  = | {\n    type: 'fast-backward' | 'fast-forward'\n    label: undefined\n    active: false\n    options: Array<{ label: string, value: number }> | null\n  }\n  | {\n    type: 'page'\n    label: number\n    active: boolean\n    mayBeFastForward: boolean\n    mayBeFastBackward: boolean\n  }\n\nfunction createRange(\n  from: number,\n  to: number\n): Array<{ label: string, value: number }> {\n  const range: Array<{ label: string, value: number }> = []\n  for (let i = from; i <= to; ++i) {\n    range.push({\n      label: `${i}`,\n      value: i\n    })\n  }\n  return range\n}\n\nexport { createPageItemsInfo }\n","import type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ScrollbarProps } from '../../_internal/scrollbar/src/Scrollbar'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { InputSize } from '../../input/src/public-types'\nimport type { SelectProps } from '../../select'\nimport type { SelectSize } from '../../select/src/public-types'\nimport type { PaginationTheme, PaginationThemeOverrides } from '../styles'\nimport type {\n  PaginationInfo,\n  PaginationLabelInfo,\n  PaginationRenderLabel,\n  PaginationSizeOption,\n  RenderGoto,\n  RenderNext,\n  RenderPrefix,\n  RenderPrev,\n  RenderSuffix\n} from './interface'\nimport type { PaginationSize } from './public-types'\nimport type { PageItem } from './utils'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  nextTick,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  BackwardIcon,\n  FastBackwardIcon,\n  FastForwardIcon,\n  ForwardIcon,\n  MoreIcon\n} from '../../_internal/icons'\nimport { useConfig, useLocale, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  call,\n  createKey,\n  resolveSlot,\n  smallerSize,\n  useAdjustedTo,\n  warn,\n  warnOnce\n} from '../../_utils'\nimport { NInput } from '../../input'\nimport { NPopselect } from '../../popselect'\nimport { NSelect } from '../../select'\nimport { paginationLight } from '../styles'\nimport style from './styles/index.cssr'\nimport { createPageItemsInfo, getDefaultPageSize } from './utils'\n\nexport const paginationProps = {\n  ...(useTheme.props as ThemeProps<PaginationTheme, PaginationThemeOverrides>),\n  simple: Boolean,\n  page: Number,\n  defaultPage: {\n    type: Number,\n    default: 1\n  },\n  itemCount: Number,\n  pageCount: Number,\n  defaultPageCount: {\n    type: Number,\n    default: 1\n  },\n  showSizePicker: Boolean,\n  pageSize: Number,\n  defaultPageSize: Number,\n  pageSizes: {\n    type: Array as PropType<Array<number | PaginationSizeOption>>,\n    default() {\n      return [10]\n    }\n  },\n  showQuickJumper: Boolean,\n  size: String as PropType<PaginationSize>,\n  disabled: Boolean,\n  pageSlot: {\n    type: Number,\n    default: 9\n  },\n  selectProps: Object as PropType<SelectProps>,\n  prev: Function as PropType<RenderPrev>,\n  next: Function as PropType<RenderNext>,\n  goto: Function as PropType<RenderGoto>,\n  prefix: Function as PropType<RenderPrefix>,\n  suffix: Function as PropType<RenderSuffix>,\n  label: Function as PropType<PaginationRenderLabel>,\n  displayOrder: {\n    type: Array as PropType<Array<'pages' | 'size-picker' | 'quick-jumper'>>,\n    default: ['pages', 'size-picker', 'quick-jumper']\n  },\n  to: useAdjustedTo.propTo,\n  showQuickJumpDropdown: { type: Boolean, default: true },\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  'onUpdate:page': [Function, Array] as PropType<\n    MaybeArray<(page: number) => void>\n  >,\n  onUpdatePage: [Function, Array] as PropType<\n    MaybeArray<(page: number) => void>\n  >,\n  'onUpdate:pageSize': [Function, Array] as PropType<\n    MaybeArray<(pageSize: number) => void>\n  >,\n  onUpdatePageSize: [Function, Array] as PropType<\n    MaybeArray<(pageSize: number) => void>\n  >,\n  /** @deprecated */\n  onPageSizeChange: [Function, Array] as PropType<\n    MaybeArray<(pageSize: number) => void>\n  >,\n  /** @deprecated */\n  onChange: [Function, Array] as PropType<MaybeArray<(page: number) => void>>\n} as const\n\nexport type PaginationProps = ExtractPublicPropTypes<typeof paginationProps>\n\nexport interface PaginationSlots {\n  default?: () => VNode[]\n  goto?: () => VNode[]\n  label?: (props: PaginationLabelInfo) => VNode[]\n  next?: (props: PaginationInfo) => VNode\n  prev?: (props: PaginationInfo) => VNode\n  prefix?: (props: PaginationInfo) => VNode\n  suffix?: (props: PaginationInfo) => VNode\n}\n\nexport default defineComponent({\n  name: 'Pagination',\n  props: paginationProps,\n  slots: Object as SlotsType<PaginationSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.pageCount !== undefined && props.itemCount !== undefined) {\n          warn(\n            'pagination',\n            '`page-count` and `item-count` should\\'t be specified together. Only `item-count` will take effect.'\n          )\n        }\n        if (props.onPageSizeChange) {\n          warnOnce(\n            'pagination',\n            '`on-page-size-change` is deprecated, please use `on-update:page-size` instead.'\n          )\n        }\n        if (props.onChange) {\n          warnOnce(\n            'pagination',\n            '`on-change` is deprecated, please use `on-update:page` instead.'\n          )\n        }\n      })\n    }\n    const {\n      mergedComponentPropsRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef\n    } = useConfig(props)\n    const mergedSizeRef = computed<PaginationSize>(() => {\n      return (\n        props.size\n        || mergedComponentPropsRef?.value?.Pagination?.size\n        || 'medium'\n      )\n    })\n    const themeRef = useTheme(\n      'Pagination',\n      '-pagination',\n      style,\n      paginationLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { localeRef } = useLocale('Pagination')\n    const selfRef = ref<HTMLElement | null>(null)\n    const uncontrolledPageRef = ref(props.defaultPage)\n    const uncontrolledPageSizeRef = ref(getDefaultPageSize(props))\n    const mergedPageRef = useMergedState(\n      toRef(props, 'page'),\n      uncontrolledPageRef\n    )\n    const mergedPageSizeRef = useMergedState(\n      toRef(props, 'pageSize'),\n      uncontrolledPageSizeRef\n    )\n    const mergedPageCountRef = computed(() => {\n      // item count has high priority, for it can affect prefix slot rendering\n      const { itemCount } = props\n      if (itemCount !== undefined) {\n        return Math.max(1, Math.ceil(itemCount / mergedPageSizeRef.value))\n      }\n      const { pageCount } = props\n      if (pageCount !== undefined)\n        return Math.max(pageCount, 1)\n      return 1\n    })\n    const jumperValueRef = ref('')\n    watchEffect(() => {\n      void props.simple\n      jumperValueRef.value = String(mergedPageRef.value)\n    })\n\n    const fastForwardActiveRef = ref(false)\n    const fastBackwardActiveRef = ref(false)\n    const showFastForwardMenuRef = ref(false)\n    const showFastBackwardMenuRef = ref(false)\n\n    const handleFastForwardMouseenter = (): void => {\n      if (props.disabled)\n        return\n      fastForwardActiveRef.value = true\n      disableTransitionOneTick()\n    }\n    const handleFastForwardMouseleave = (): void => {\n      if (props.disabled)\n        return\n      fastForwardActiveRef.value = false\n      disableTransitionOneTick()\n    }\n    const handleFastBackwardMouseenter = (): void => {\n      fastBackwardActiveRef.value = true\n      disableTransitionOneTick()\n    }\n    const handleFastBackwardMouseleave = (): void => {\n      fastBackwardActiveRef.value = false\n      disableTransitionOneTick()\n    }\n    const handleMenuSelect = (value: number): void => {\n      doUpdatePage(value)\n    }\n\n    const pageItemsInfo = computed(() =>\n      createPageItemsInfo(\n        mergedPageRef.value,\n        mergedPageCountRef.value,\n        props.pageSlot,\n        props.showQuickJumpDropdown\n      )\n    )\n\n    watchEffect(() => {\n      if (!pageItemsInfo.value.hasFastBackward) {\n        fastBackwardActiveRef.value = false\n        showFastBackwardMenuRef.value = false\n      }\n      else if (!pageItemsInfo.value.hasFastForward) {\n        fastForwardActiveRef.value = false\n        showFastForwardMenuRef.value = false\n      }\n    })\n\n    const pageSizeOptionsRef = computed(() => {\n      const suffix = localeRef.value.selectionSuffix\n      return props.pageSizes.map((size) => {\n        if (typeof size === 'number') {\n          return {\n            label: `${size} / ${suffix}`,\n            value: size\n          }\n        }\n        else {\n          return size\n        }\n      })\n    })\n    const inputSizeRef = computed<InputSize>(() => {\n      return (\n        mergedComponentPropsRef?.value?.Pagination?.inputSize\n        || smallerSize(mergedSizeRef.value)\n      )\n    })\n    const selectSizeRef = computed<SelectSize>(() => {\n      return (\n        mergedComponentPropsRef?.value?.Pagination?.selectSize\n        || smallerSize(mergedSizeRef.value)\n      )\n    })\n    const startIndexRef = computed(() => {\n      return (mergedPageRef.value - 1) * mergedPageSizeRef.value\n    })\n    const endIndexRef = computed(() => {\n      const endIndex = mergedPageRef.value * mergedPageSizeRef.value - 1\n      const { itemCount } = props\n      if (itemCount !== undefined) {\n        return endIndex > itemCount - 1 ? itemCount - 1 : endIndex\n      }\n      return endIndex\n    })\n    const mergedItemCountRef = computed(() => {\n      const { itemCount } = props\n      if (itemCount !== undefined)\n        return itemCount\n      return (props.pageCount || 1) * mergedPageSizeRef.value\n    })\n    const rtlEnabledRef = useRtl('Pagination', mergedRtlRef, mergedClsPrefixRef)\n\n    function disableTransitionOneTick(): void {\n      void nextTick(() => {\n        const { value: selfEl } = selfRef\n        if (!selfEl)\n          return\n        selfEl.classList.add('transition-disabled')\n        void selfRef.value?.offsetWidth\n        selfEl.classList.remove('transition-disabled')\n      })\n    }\n    function doUpdatePage(page: number): void {\n      if (page === mergedPageRef.value)\n        return\n      const {\n        'onUpdate:page': _onUpdatePage,\n        onUpdatePage,\n        onChange,\n        simple\n      } = props\n      if (_onUpdatePage)\n        call(_onUpdatePage, page)\n      if (onUpdatePage)\n        call(onUpdatePage, page)\n      // deprecated\n      if (onChange)\n        call(onChange, page)\n      uncontrolledPageRef.value = page\n      if (simple) {\n        jumperValueRef.value = String(page)\n      }\n    }\n    function doUpdatePageSize(pageSize: number): void {\n      if (pageSize === mergedPageSizeRef.value)\n        return\n      const {\n        'onUpdate:pageSize': _onUpdatePageSize,\n        onUpdatePageSize,\n        onPageSizeChange\n      } = props\n      if (_onUpdatePageSize)\n        call(_onUpdatePageSize, pageSize)\n      if (onUpdatePageSize)\n        call(onUpdatePageSize, pageSize)\n      // deprecated\n      if (onPageSizeChange)\n        call(onPageSizeChange, pageSize)\n      uncontrolledPageSizeRef.value = pageSize\n      // update new page when overflows.\n      // we may have different update strategy, but i've no time to impl it\n      if (mergedPageCountRef.value < mergedPageRef.value) {\n        doUpdatePage(mergedPageCountRef.value)\n      }\n    }\n    function forward(): void {\n      if (props.disabled)\n        return\n      const page = Math.min(mergedPageRef.value + 1, mergedPageCountRef.value)\n      doUpdatePage(page)\n    }\n    function backward(): void {\n      if (props.disabled)\n        return\n      const page = Math.max(mergedPageRef.value - 1, 1)\n      doUpdatePage(page)\n    }\n    function fastForward(): void {\n      if (props.disabled)\n        return\n      const page = Math.min(\n        pageItemsInfo.value.fastForwardTo,\n        mergedPageCountRef.value\n      )\n      doUpdatePage(page)\n    }\n    function fastBackward(): void {\n      if (props.disabled)\n        return\n      const page = Math.max(pageItemsInfo.value.fastBackwardTo, 1)\n      doUpdatePage(page)\n    }\n    function handleSizePickerChange(value: number): void {\n      doUpdatePageSize(value)\n    }\n    function doQuickJump(): void {\n      const page = Number.parseInt(jumperValueRef.value)\n      if (Number.isNaN(page))\n        return\n      doUpdatePage(Math.max(1, Math.min(page, mergedPageCountRef.value)))\n      if (!props.simple) {\n        jumperValueRef.value = ''\n      }\n    }\n    function handleQuickJumperChange(): void {\n      doQuickJump()\n    }\n    function handlePageItemClick(pageItem: PageItem): void {\n      if (props.disabled)\n        return\n      switch (pageItem.type) {\n        case 'page':\n          doUpdatePage(pageItem.label)\n          break\n        case 'fast-backward':\n          fastBackward()\n          break\n        case 'fast-forward':\n          fastForward()\n          break\n      }\n    }\n    function handleJumperInput(value: string): void {\n      jumperValueRef.value = value.replace(/\\D+/g, '')\n    }\n    watchEffect(() => {\n      void mergedPageRef.value\n      void mergedPageSizeRef.value\n      disableTransitionOneTick()\n    })\n    const cssVarsRef = computed(() => {\n      const size = mergedSizeRef.value\n      const {\n        self: {\n          buttonBorder,\n          buttonBorderHover,\n          buttonBorderPressed,\n          buttonIconColor,\n          buttonIconColorHover,\n          buttonIconColorPressed,\n          itemTextColor,\n          itemTextColorHover,\n          itemTextColorPressed,\n          itemTextColorActive,\n          itemTextColorDisabled,\n          itemColor,\n          itemColorHover,\n          itemColorPressed,\n          itemColorActive,\n          itemColorActiveHover,\n          itemColorDisabled,\n          itemBorder,\n          itemBorderHover,\n          itemBorderPressed,\n          itemBorderActive,\n          itemBorderDisabled,\n          itemBorderRadius,\n          jumperTextColor,\n          jumperTextColorDisabled,\n          buttonColor,\n          buttonColorHover,\n          buttonColorPressed,\n          [createKey('itemPadding', size)]: itemPadding,\n          [createKey('itemMargin', size)]: itemMargin,\n          [createKey('inputWidth', size)]: inputWidth,\n          [createKey('selectWidth', size)]: selectWidth,\n          [createKey('inputMargin', size)]: inputMargin,\n          [createKey('selectMargin', size)]: selectMargin,\n          [createKey('jumperFontSize', size)]: jumperFontSize,\n          [createKey('prefixMargin', size)]: prefixMargin,\n          [createKey('suffixMargin', size)]: suffixMargin,\n          [createKey('itemSize', size)]: itemSize,\n          [createKey('buttonIconSize', size)]: buttonIconSize,\n          [createKey('itemFontSize', size)]: itemFontSize,\n          [`${createKey('itemMargin', size)}Rtl` as const]: itemMarginRtl,\n          [`${createKey('inputMargin', size)}Rtl` as const]: inputMarginRtl\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-prefix-margin': prefixMargin,\n        '--n-suffix-margin': suffixMargin,\n        '--n-item-font-size': itemFontSize,\n        '--n-select-width': selectWidth,\n        '--n-select-margin': selectMargin,\n        '--n-input-width': inputWidth,\n        '--n-input-margin': inputMargin,\n        '--n-input-margin-rtl': inputMarginRtl,\n        '--n-item-size': itemSize,\n        '--n-item-text-color': itemTextColor,\n        '--n-item-text-color-disabled': itemTextColorDisabled,\n        '--n-item-text-color-hover': itemTextColorHover,\n        '--n-item-text-color-active': itemTextColorActive,\n        '--n-item-text-color-pressed': itemTextColorPressed,\n        '--n-item-color': itemColor,\n        '--n-item-color-hover': itemColorHover,\n        '--n-item-color-disabled': itemColorDisabled,\n        '--n-item-color-active': itemColorActive,\n        '--n-item-color-active-hover': itemColorActiveHover,\n        '--n-item-color-pressed': itemColorPressed,\n        '--n-item-border': itemBorder,\n        '--n-item-border-hover': itemBorderHover,\n        '--n-item-border-disabled': itemBorderDisabled,\n        '--n-item-border-active': itemBorderActive,\n        '--n-item-border-pressed': itemBorderPressed,\n        '--n-item-padding': itemPadding,\n        '--n-item-border-radius': itemBorderRadius,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-jumper-font-size': jumperFontSize,\n        '--n-jumper-text-color': jumperTextColor,\n        '--n-jumper-text-color-disabled': jumperTextColorDisabled,\n        '--n-item-margin': itemMargin,\n        '--n-item-margin-rtl': itemMarginRtl,\n        '--n-button-icon-size': buttonIconSize,\n        '--n-button-icon-color': buttonIconColor,\n        '--n-button-icon-color-hover': buttonIconColorHover,\n        '--n-button-icon-color-pressed': buttonIconColorPressed,\n        '--n-button-color-hover': buttonColorHover,\n        '--n-button-color': buttonColor,\n        '--n-button-color-pressed': buttonColorPressed,\n        '--n-button-border': buttonBorder,\n        '--n-button-border-hover': buttonBorderHover,\n        '--n-button-border-pressed': buttonBorderPressed\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'pagination',\n          computed(() => {\n            let hash = ''\n            hash += mergedSizeRef.value[0]\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      locale: localeRef,\n      selfRef,\n      mergedPage: mergedPageRef,\n      pageItems: computed(() => {\n        return pageItemsInfo.value.items\n      }),\n      mergedItemCount: mergedItemCountRef,\n      jumperValue: jumperValueRef,\n      pageSizeOptions: pageSizeOptionsRef,\n      mergedPageSize: mergedPageSizeRef,\n      inputSize: inputSizeRef,\n      selectSize: selectSizeRef,\n      mergedTheme: themeRef,\n      mergedPageCount: mergedPageCountRef,\n      startIndex: startIndexRef,\n      endIndex: endIndexRef,\n      showFastForwardMenu: showFastForwardMenuRef,\n      showFastBackwardMenu: showFastBackwardMenuRef,\n      fastForwardActive: fastForwardActiveRef,\n      fastBackwardActive: fastBackwardActiveRef,\n      handleMenuSelect,\n      handleFastForwardMouseenter,\n      handleFastForwardMouseleave,\n      handleFastBackwardMouseenter,\n      handleFastBackwardMouseleave,\n      handleJumperInput,\n      handleBackwardClick: backward,\n      handleForwardClick: forward,\n      handlePageItemClick,\n      handleSizePickerChange,\n      handleQuickJumperChange,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    // it's ok to expand all prop here since no slots' deps\n    const {\n      $slots,\n      mergedClsPrefix,\n      disabled,\n      cssVars,\n      mergedPage,\n      mergedPageCount,\n      pageItems,\n      showSizePicker,\n      showQuickJumper,\n      mergedTheme,\n      locale,\n      inputSize,\n      selectSize,\n      mergedPageSize,\n      pageSizeOptions,\n      jumperValue,\n      simple,\n      prev,\n      next,\n      prefix,\n      suffix,\n      label,\n      goto,\n      handleJumperInput,\n      handleSizePickerChange,\n      handleBackwardClick,\n      handlePageItemClick,\n      handleForwardClick,\n      handleQuickJumperChange,\n      onRender\n    } = this\n    onRender?.()\n    const renderPrefix = prefix || $slots.prefix\n    const renderSuffix = suffix || $slots.suffix\n    const renderPrev = prev || $slots.prev\n    const renderNext = next || $slots.next\n    const renderLabel = label || $slots.label\n    return (\n      <div\n        ref=\"selfRef\"\n        class={[\n          `${mergedClsPrefix}-pagination`,\n          this.themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-pagination--rtl`,\n          disabled && `${mergedClsPrefix}-pagination--disabled`,\n          simple && `${mergedClsPrefix}-pagination--simple`\n        ]}\n        style={cssVars as CSSProperties}\n      >\n        {renderPrefix ? (\n          <div class={`${mergedClsPrefix}-pagination-prefix`}>\n            {renderPrefix({\n              page: mergedPage,\n              pageSize: mergedPageSize,\n              pageCount: mergedPageCount,\n              startIndex: this.startIndex,\n              endIndex: this.endIndex,\n              itemCount: this.mergedItemCount\n            })}\n          </div>\n        ) : null}\n        {this.displayOrder.map((part) => {\n          switch (part) {\n            case 'pages':\n              return (\n                <Fragment key=\"pages\">\n                  <div\n                    class={[\n                      `${mergedClsPrefix}-pagination-item`,\n                      !renderPrev\n                      && `${mergedClsPrefix}-pagination-item--button`,\n                      (mergedPage <= 1\n                        || mergedPage > mergedPageCount\n                        || disabled)\n                      && `${mergedClsPrefix}-pagination-item--disabled`\n                    ]}\n                    onClick={handleBackwardClick}\n                  >\n                    {renderPrev ? (\n                      renderPrev({\n                        page: mergedPage,\n                        pageSize: mergedPageSize,\n                        pageCount: mergedPageCount,\n                        startIndex: this.startIndex,\n                        endIndex: this.endIndex,\n                        itemCount: this.mergedItemCount\n                      })\n                    ) : (\n                      <NBaseIcon clsPrefix={mergedClsPrefix}>\n                        {{\n                          default: () =>\n                            this.rtlEnabled ? <ForwardIcon /> : <BackwardIcon />\n                        }}\n                      </NBaseIcon>\n                    )}\n                  </div>\n                  {simple ? (\n                    <Fragment>\n                      <div class={`${mergedClsPrefix}-pagination-quick-jumper`}>\n                        <NInput\n                          value={jumperValue}\n                          onUpdateValue={handleJumperInput}\n                          size={inputSize}\n                          placeholder=\"\"\n                          disabled={disabled}\n                          theme={mergedTheme.peers.Input}\n                          themeOverrides={mergedTheme.peerOverrides.Input}\n                          onChange={handleQuickJumperChange}\n                        />\n                      </div>\n                      &nbsp;/\n                      {' '}\n                      {mergedPageCount}\n                    </Fragment>\n                  ) : (\n                    pageItems.map((pageItem) => {\n                      let contentNode: VNodeChild\n                      let onMouseenter: undefined | (() => void)\n                      let onMouseleave: undefined | (() => void)\n                      const { type } = pageItem\n                      const itemKey\n                        = type === 'page' ? `page-${pageItem.label}` : type\n                      switch (type) {\n                        case 'page':\n                          // eslint-disable-next-line no-case-declarations\n                          const pageNode = pageItem.label\n                          if (renderLabel) {\n                            contentNode = renderLabel({\n                              type: 'page',\n                              node: pageNode,\n                              active: pageItem.active\n                            })\n                          }\n                          else {\n                            contentNode = pageNode\n                          }\n                          break\n                        case 'fast-forward':\n                          // eslint-disable-next-line no-case-declarations\n                          const fastForwardNode = this.fastForwardActive ? (\n                            <NBaseIcon clsPrefix={mergedClsPrefix}>\n                              {{\n                                default: () =>\n                                  this.rtlEnabled ? (\n                                    <FastBackwardIcon />\n                                  ) : (\n                                    <FastForwardIcon />\n                                  )\n                              }}\n                            </NBaseIcon>\n                          ) : (\n                            <NBaseIcon clsPrefix={mergedClsPrefix}>\n                              {{ default: () => <MoreIcon /> }}\n                            </NBaseIcon>\n                          )\n                          if (renderLabel) {\n                            contentNode = renderLabel({\n                              type: 'fast-forward',\n                              node: fastForwardNode,\n                              active:\n                                this.fastForwardActive\n                                || this.showFastForwardMenu\n                            })\n                          }\n                          else {\n                            contentNode = fastForwardNode\n                          }\n                          onMouseenter = this.handleFastForwardMouseenter\n                          onMouseleave = this.handleFastForwardMouseleave\n                          break\n                        case 'fast-backward':\n                          // eslint-disable-next-line no-case-declarations\n                          const fastBackwardNode = this.fastBackwardActive ? (\n                            <NBaseIcon clsPrefix={mergedClsPrefix}>\n                              {{\n                                default: () =>\n                                  this.rtlEnabled ? (\n                                    <FastForwardIcon />\n                                  ) : (\n                                    <FastBackwardIcon />\n                                  )\n                              }}\n                            </NBaseIcon>\n                          ) : (\n                            <NBaseIcon clsPrefix={mergedClsPrefix}>\n                              {{ default: () => <MoreIcon /> }}\n                            </NBaseIcon>\n                          )\n                          if (renderLabel) {\n                            contentNode = renderLabel({\n                              type: 'fast-backward',\n                              node: fastBackwardNode,\n                              active:\n                                this.fastBackwardActive\n                                || this.showFastBackwardMenu\n                            })\n                          }\n                          else {\n                            contentNode = fastBackwardNode\n                          }\n                          onMouseenter = this.handleFastBackwardMouseenter\n                          onMouseleave = this.handleFastBackwardMouseleave\n                          break\n                      }\n                      const itemNode = (\n                        <div\n                          key={itemKey}\n                          class={[\n                            `${mergedClsPrefix}-pagination-item`,\n                            pageItem.active\n                            && `${mergedClsPrefix}-pagination-item--active`,\n                            type !== 'page'\n                            && ((type === 'fast-backward'\n                              && this.showFastBackwardMenu)\n                            || (type === 'fast-forward'\n                              && this.showFastForwardMenu))\n                            && `${mergedClsPrefix}-pagination-item--hover`,\n                            disabled\n                            && `${mergedClsPrefix}-pagination-item--disabled`,\n                            type === 'page'\n                            && `${mergedClsPrefix}-pagination-item--clickable`\n                          ]}\n                          onClick={() => {\n                            handlePageItemClick(pageItem)\n                          }}\n                          onMouseenter={onMouseenter}\n                          onMouseleave={onMouseleave}\n                        >\n                          {contentNode}\n                        </div>\n                      )\n                      // Do not reuse NPopselect between a page button and the\n                      // fast-jump ellipsis. Patching a popover that still owns a\n                      // large virtualized option list into a plain page button\n                      // can throw during insertBefore.\n                      if (type === 'page' || !pageItem.options) {\n                        return itemNode\n                      }\n                      return (\n                        <NPopselect\n                          to={this.to}\n                          key={itemKey}\n                          disabled={disabled}\n                          trigger=\"hover\"\n                          virtualScroll\n                          style={{ width: '60px' }}\n                          theme={mergedTheme.peers.Popselect}\n                          themeOverrides={mergedTheme.peerOverrides.Popselect}\n                          builtinThemeOverrides={{\n                            peers: {\n                              InternalSelectMenu: {\n                                height: 'calc(var(--n-option-height) * 4.6)'\n                              }\n                            }\n                          }}\n                          nodeProps={() => ({\n                            style: {\n                              justifyContent: 'center'\n                            }\n                          })}\n                          show={\n                            type === 'fast-backward'\n                              ? this.showFastBackwardMenu\n                              : this.showFastForwardMenu\n                          }\n                          onUpdateShow={(value) => {\n                            if (value) {\n                              if (type === 'fast-backward') {\n                                this.showFastBackwardMenu = value\n                              }\n                              else {\n                                this.showFastForwardMenu = value\n                              }\n                            }\n                            else {\n                              this.showFastBackwardMenu = false\n                              this.showFastForwardMenu = false\n                            }\n                          }}\n                          options={pageItem.options}\n                          onUpdateValue={this.handleMenuSelect}\n                          scrollable\n                          scrollbarProps={this.scrollbarProps}\n                          showCheckmark={false}\n                        >\n                          {{ default: () => itemNode }}\n                        </NPopselect>\n                      )\n                    })\n                  )}\n                  <div\n                    class={[\n                      `${mergedClsPrefix}-pagination-item`,\n                      !renderNext\n                      && `${mergedClsPrefix}-pagination-item--button`,\n                      {\n                        [`${mergedClsPrefix}-pagination-item--disabled`]:\n                          mergedPage < 1\n                          || mergedPage >= mergedPageCount\n                          || disabled\n                      }\n                    ]}\n                    onClick={handleForwardClick}\n                  >\n                    {renderNext ? (\n                      renderNext({\n                        page: mergedPage,\n                        pageSize: mergedPageSize,\n                        pageCount: mergedPageCount,\n                        itemCount: this.mergedItemCount,\n                        startIndex: this.startIndex,\n                        endIndex: this.endIndex\n                      })\n                    ) : (\n                      <NBaseIcon clsPrefix={mergedClsPrefix}>\n                        {{\n                          default: () =>\n                            this.rtlEnabled ? <BackwardIcon /> : <ForwardIcon />\n                        }}\n                      </NBaseIcon>\n                    )}\n                  </div>\n                </Fragment>\n              )\n            case 'size-picker': {\n              return !simple && showSizePicker ? (\n                <NSelect\n                  consistentMenuWidth={false}\n                  placeholder=\"\"\n                  showCheckmark={false}\n                  to={this.to}\n                  {...this.selectProps}\n                  size={selectSize}\n                  options={pageSizeOptions}\n                  value={mergedPageSize}\n                  disabled={disabled}\n                  scrollbarProps={this.scrollbarProps}\n                  theme={mergedTheme.peers.Select}\n                  themeOverrides={mergedTheme.peerOverrides.Select}\n                  onUpdateValue={handleSizePickerChange}\n                />\n              ) : null\n            }\n            case 'quick-jumper':\n              return !simple && showQuickJumper ? (\n                <div class={`${mergedClsPrefix}-pagination-quick-jumper`}>\n                  {goto\n                    ? goto()\n                    : resolveSlot(this.$slots.goto, () => [locale.goto])}\n                  <NInput\n                    value={jumperValue}\n                    onUpdateValue={handleJumperInput}\n                    size={inputSize}\n                    placeholder=\"\"\n                    disabled={disabled}\n                    theme={mergedTheme.peers.Input}\n                    themeOverrides={mergedTheme.peerOverrides.Input}\n                    onChange={handleQuickJumperChange}\n                  />\n                </div>\n              ) : null\n            default:\n              return null\n          }\n        })}\n        {renderSuffix ? (\n          <div class={`${mergedClsPrefix}-pagination-suffix`}>\n            {renderSuffix({\n              page: mergedPage,\n              pageSize: mergedPageSize,\n              pageCount: mergedPageCount,\n              startIndex: this.startIndex,\n              endIndex: this.endIndex,\n              itemCount: this.mergedItemCount\n            })}\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","export default {\n  padding: '4px 0',\n  optionIconSizeSmall: '14px',\n  optionIconSizeMedium: '16px',\n  optionIconSizeLarge: '16px',\n  optionIconSizeHuge: '18px',\n  optionSuffixWidthSmall: '14px',\n  optionSuffixWidthMedium: '14px',\n  optionSuffixWidthLarge: '16px',\n  optionSuffixWidthHuge: '16px',\n  optionIconSuffixWidthSmall: '32px',\n  optionIconSuffixWidthMedium: '32px',\n  optionIconSuffixWidthLarge: '36px',\n  optionIconSuffixWidthHuge: '36px',\n  optionPrefixWidthSmall: '14px',\n  optionPrefixWidthMedium: '14px',\n  optionPrefixWidthLarge: '16px',\n  optionPrefixWidthHuge: '16px',\n  optionIconPrefixWidthSmall: '36px',\n  optionIconPrefixWidthMedium: '36px',\n  optionIconPrefixWidthLarge: '40px',\n  optionIconPrefixWidthHuge: '40px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { PopoverTheme } from '../../popover/styles'\nimport { changeColor } from 'seemly'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { popoverLight } from '../../popover/styles'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    primaryColor,\n    textColor2,\n    dividerColor,\n    hoverColor,\n    popoverColor,\n    invertedColor,\n    borderRadius,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    fontSizeHuge,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    heightHuge,\n    textColor3,\n    opacityDisabled\n  } = vars\n  return {\n    ...commonVariables,\n    optionHeightSmall: heightSmall,\n    optionHeightMedium: heightMedium,\n    optionHeightLarge: heightLarge,\n    optionHeightHuge: heightHuge,\n    borderRadius,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    fontSizeHuge,\n    // non-inverted\n    optionTextColor: textColor2,\n    optionTextColorHover: textColor2,\n    optionTextColorActive: primaryColor,\n    optionTextColorChildActive: primaryColor,\n    color: popoverColor,\n    dividerColor,\n    suffixColor: textColor2,\n    prefixColor: textColor2,\n    optionColorHover: hoverColor,\n    optionColorActive: changeColor(primaryColor, { alpha: 0.1 }),\n    groupHeaderTextColor: textColor3,\n    // inverted\n    optionTextColorInverted: '#BBB',\n    optionTextColorHoverInverted: '#FFF',\n    optionTextColorActiveInverted: '#FFF',\n    optionTextColorChildActiveInverted: '#FFF',\n    colorInverted: invertedColor,\n    dividerColorInverted: '#BBB',\n    suffixColorInverted: '#BBB',\n    prefixColorInverted: '#BBB',\n    optionColorHoverInverted: primaryColor,\n    optionColorActiveInverted: primaryColor,\n    groupHeaderTextColorInverted: '#AAA',\n    optionOpacityDisabled: opacityDisabled\n  }\n}\n\nexport interface DropdownThemeVars extends ReturnType<typeof self> {}\n\nconst dropdownLight: DropdownTheme = createTheme({\n  name: 'Dropdown',\n  common: commonLight,\n  peers: {\n    Popover: popoverLight\n  },\n  self\n})\n\nexport interface DropdownTheme extends Theme<\n  'Dropdown',\n  DropdownThemeVars,\n  {\n    Popover: PopoverTheme\n  }\n> {}\n\nexport interface DropdownThemeOverrides extends ExtractThemeOverrides<DropdownTheme> {}\n\nexport default dropdownLight\n","import type { DropdownTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport { popoverDark } from '../../popover/styles'\nimport { self } from './light'\n\nconst dropdownDark: DropdownTheme = {\n  name: 'Dropdown',\n  common: commonDark,\n  peers: {\n    Popover: popoverDark\n  },\n  self(vars) {\n    const { primaryColorSuppl, primaryColor, popoverColor } = vars\n    const commonSelf = self(vars)\n    commonSelf.colorInverted = popoverColor\n    commonSelf.optionColorActive = changeColor(primaryColor, { alpha: 0.15 })\n    commonSelf.optionColorActiveInverted = primaryColorSuppl\n    commonSelf.optionColorHoverInverted = primaryColorSuppl\n    return commonSelf\n  }\n}\n\nexport default dropdownDark\n","export default {\n  padding: '8px 14px'\n}\n","import type { TooltipTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { popoverDark } from '../../popover/styles'\nimport commonVars from './_common'\n\nconst tooltipDark: TooltipTheme = {\n  name: 'Tooltip',\n  common: commonDark,\n  peers: {\n    Popover: popoverDark\n  },\n  self(vars) {\n    const { borderRadius, boxShadow2, popoverColor, textColor2 } = vars\n    return {\n      ...commonVars,\n      borderRadius,\n      boxShadow: boxShadow2,\n      color: popoverColor,\n      textColor: textColor2\n    }\n  }\n}\n\nexport default tooltipDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { PopoverTheme } from '../../popover/styles'\nimport { composite } from 'seemly'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { popoverLight } from '../../popover/styles'\nimport commonVars from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { borderRadius, boxShadow2, baseColor } = vars\n  return {\n    ...commonVars,\n    borderRadius,\n    boxShadow: boxShadow2,\n    color: composite(baseColor, 'rgba(0, 0, 0, .85)'),\n    textColor: baseColor\n  }\n}\n\nexport interface TooltipThemeVars extends ReturnType<typeof self> {}\n\nconst tooltipLight: TooltipTheme = createTheme({\n  name: 'Tooltip',\n  common: commonLight,\n  peers: {\n    Popover: popoverLight\n  },\n  self\n})\n\nexport interface TooltipTheme extends Theme<\n  'Tooltip',\n  TooltipThemeVars,\n  {\n    Popover: PopoverTheme\n  }\n> {}\n\nexport interface TooltipThemeOverrides extends ExtractThemeOverrides<TooltipTheme> {}\n\nexport default tooltipLight\n","import type { EllipsisTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { tooltipDark } from '../../tooltip/styles'\n\nconst ellipsisDark: EllipsisTheme = {\n  name: 'Ellipsis',\n  common: commonDark,\n  peers: {\n    Tooltip: tooltipDark\n  }\n}\n\nexport default ellipsisDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { TooltipTheme } from '../../tooltip/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { tooltipLight } from '../../tooltip/styles'\n\nexport interface EllipsisThemeVars {}\n\nconst ellipsisLight: EllipsisTheme = createTheme({\n  name: 'Ellipsis',\n  common: commonLight,\n  peers: {\n    Tooltip: tooltipLight\n  }\n})\n\nexport interface EllipsisTheme extends Theme<\n  'Ellipsis',\n  EllipsisThemeVars,\n  {\n    Tooltip: TooltipTheme\n  }\n> {}\n\nexport interface EllipsisThemeOverrides extends ExtractThemeOverrides<EllipsisTheme> {}\n\nexport default ellipsisLight\n","export default {\n  radioSizeSmall: '14px',\n  radioSizeMedium: '16px',\n  radioSizeLarge: '18px',\n  labelPadding: '0 8px',\n  labelFontWeight: '400'\n}\n","import type { RadioTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport commonVariables from './_common'\n\nconst radioDark: RadioTheme = {\n  name: 'Radio',\n  common: commonDark,\n  self(vars) {\n    const {\n      borderColor,\n      primaryColor,\n      baseColor,\n      textColorDisabled,\n      inputColorDisabled,\n      textColor2,\n      opacityDisabled,\n      borderRadius,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      heightSmall,\n      heightMedium,\n      heightLarge,\n      lineHeight\n    } = vars\n    return {\n      ...commonVariables,\n      labelLineHeight: lineHeight,\n      buttonHeightSmall: heightSmall,\n      buttonHeightMedium: heightMedium,\n      buttonHeightLarge: heightLarge,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      boxShadow: `inset 0 0 0 1px ${borderColor}`,\n      boxShadowActive: `inset 0 0 0 1px ${primaryColor}`,\n      boxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(\n        primaryColor,\n        { alpha: 0.3 }\n      )}`,\n      boxShadowHover: `inset 0 0 0 1px ${primaryColor}`,\n      boxShadowDisabled: `inset 0 0 0 1px ${borderColor}`,\n      color: '#0000',\n      colorDisabled: inputColorDisabled,\n      colorActive: '#0000',\n      textColor: textColor2,\n      textColorDisabled,\n      dotColorActive: primaryColor,\n      dotColorDisabled: borderColor,\n      buttonBorderColor: borderColor,\n      buttonBorderColorActive: primaryColor,\n      buttonBorderColorHover: primaryColor,\n      buttonColor: '#0000',\n      buttonColorActive: primaryColor,\n      buttonTextColor: textColor2,\n      buttonTextColorActive: baseColor,\n      buttonTextColorHover: primaryColor,\n      opacityDisabled,\n      buttonBoxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(\n        primaryColor,\n        { alpha: 0.3 }\n      )}`,\n      buttonBoxShadowHover: `inset 0 0 0 1px ${primaryColor}`,\n      buttonBoxShadow: 'inset 0 0 0 1px #0000',\n      buttonBorderRadius: borderRadius\n    }\n  }\n}\n\nexport default radioDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    borderColor,\n    primaryColor,\n    baseColor,\n    textColorDisabled,\n    inputColorDisabled,\n    textColor2,\n    opacityDisabled,\n    borderRadius,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    lineHeight\n  } = vars\n  return {\n    ...commonVariables,\n    labelLineHeight: lineHeight,\n    buttonHeightSmall: heightSmall,\n    buttonHeightMedium: heightMedium,\n    buttonHeightLarge: heightLarge,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    boxShadow: `inset 0 0 0 1px ${borderColor}`,\n    boxShadowActive: `inset 0 0 0 1px ${primaryColor}`,\n    boxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(\n      primaryColor,\n      { alpha: 0.2 }\n    )}`,\n    boxShadowHover: `inset 0 0 0 1px ${primaryColor}`,\n    boxShadowDisabled: `inset 0 0 0 1px ${borderColor}`,\n    color: baseColor,\n    colorDisabled: inputColorDisabled,\n    colorActive: '#0000',\n    textColor: textColor2,\n    textColorDisabled,\n    dotColorActive: primaryColor,\n    dotColorDisabled: borderColor,\n    buttonBorderColor: borderColor,\n    buttonBorderColorActive: primaryColor,\n    buttonBorderColorHover: borderColor,\n    buttonColor: baseColor,\n    buttonColorActive: baseColor,\n    buttonTextColor: textColor2,\n    buttonTextColorActive: primaryColor,\n    buttonTextColorHover: primaryColor,\n    opacityDisabled,\n    buttonBoxShadowFocus: `inset 0 0 0 1px ${primaryColor}, 0 0 0 2px ${changeColor(\n      primaryColor,\n      { alpha: 0.3 }\n    )}`,\n    buttonBoxShadowHover: 'inset 0 0 0 1px #0000',\n    buttonBoxShadow: 'inset 0 0 0 1px #0000',\n    buttonBorderRadius: borderRadius\n  }\n}\n\nexport interface RadioThemeVars extends ReturnType<typeof self> {}\n\nconst radioLight: RadioTheme = {\n  name: 'Radio',\n  common: commonLight,\n  self\n}\n\nexport interface RadioTheme extends Theme<'Radio', RadioThemeVars> {}\n\nexport interface RadioThemeOverrides extends ExtractThemeOverrides<RadioTheme> {}\n\nexport default radioLight\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('radio', [\n    cM('rtl', `\n      direction: rtl;\n    `)\n  ]),\n  cB('radio-group', [\n    cM('rtl', `\n      direction: rtl;\n    `, [\n      cB('radio-button', [\n        c('&:first-child', `\n          border-radius: 0 var(--n-button-border-radius) var(--n-button-border-radius) 0;\n          border-right: 1px solid var(--n-button-border-color);\n          border-left: 0;\n        `, [\n          cE('state-border', `\n            border-radius: 0 var(--n-button-border-radius) var(--n-button-border-radius) 0;\n          `)\n        ]),\n        c('&:last-child', `\n          border-radius: var(--n-button-border-radius) 0 0 var(--n-button-border-radius);\n          border-left: 1px solid var(--n-button-border-color);\n          border-right: 0;\n        `, [\n          cE('state-border', `\n            border-radius: var(--n-button-border-radius) 0 0 var(--n-button-border-radius);\n          `)\n        ]),\n        cM('checked', `\n          border-color: var(--n-button-border-color-active);\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const radioRtl: RtlItem = {\n  name: 'Radio',\n  style: rtlStyle\n}\n","export default {\n  thPaddingSmall: '8px',\n  thPaddingMedium: '12px',\n  thPaddingLarge: '12px',\n  tdPaddingSmall: '8px',\n  tdPaddingMedium: '12px',\n  tdPaddingLarge: '12px',\n  sorterSize: '15px',\n  resizableContainerSize: '8px',\n  resizableSize: '2px',\n  filterSize: '15px',\n  paginationMargin: '12px 0 0 0',\n  emptyPadding: '48px 0',\n  actionPadding: '8px 12px',\n  actionButtonMargin: '0 8px 0 0'\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { CheckboxTheme } from '../../checkbox/styles'\nimport type { DropdownTheme } from '../../dropdown/styles'\nimport type { EllipsisTheme } from '../../ellipsis/styles'\nimport type { EmptyTheme } from '../../empty/styles'\nimport type { PaginationTheme } from '../../pagination/styles'\nimport type { PopoverTheme } from '../../popover/styles'\nimport type { RadioTheme } from '../../radio/styles'\nimport { composite } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { checkboxLight } from '../../checkbox/styles'\nimport { dropdownLight } from '../../dropdown/styles'\nimport { ellipsisLight } from '../../ellipsis/styles'\nimport { emptyLight } from '../../empty/styles'\nimport { paginationLight } from '../../pagination/styles'\nimport { popoverLight } from '../../popover/styles'\nimport { radioLight } from '../../radio/styles'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    cardColor,\n    modalColor,\n    popoverColor,\n    textColor2,\n    textColor1,\n    tableHeaderColor,\n    tableColorHover,\n    iconColor,\n    primaryColor,\n    fontWeightStrong,\n    borderRadius,\n    lineHeight,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    dividerColor,\n    heightSmall,\n    opacityDisabled,\n    tableColorStriped\n  } = vars\n  return {\n    ...commonVariables,\n    actionDividerColor: dividerColor,\n    lineHeight,\n    borderRadius,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    borderColor: composite(cardColor, dividerColor),\n    tdColorHover: composite(cardColor, tableColorHover),\n    tdColorSorting: composite(cardColor, tableColorHover),\n    tdColorStriped: composite(cardColor, tableColorStriped),\n    thColor: composite(cardColor, tableHeaderColor),\n    thColorHover: composite(\n      composite(cardColor, tableHeaderColor),\n      tableColorHover\n    ),\n    thColorSorting: composite(\n      composite(cardColor, tableHeaderColor),\n      tableColorHover\n    ),\n    tdColor: cardColor,\n    tdTextColor: textColor2,\n    thTextColor: textColor1,\n    thFontWeight: fontWeightStrong,\n    thButtonColorHover: tableColorHover,\n    thIconColor: iconColor,\n    thIconColorActive: primaryColor,\n    // modal\n    borderColorModal: composite(modalColor, dividerColor),\n    tdColorHoverModal: composite(modalColor, tableColorHover),\n    tdColorSortingModal: composite(modalColor, tableColorHover),\n    tdColorStripedModal: composite(modalColor, tableColorStriped),\n    thColorModal: composite(modalColor, tableHeaderColor),\n    thColorHoverModal: composite(\n      composite(modalColor, tableHeaderColor),\n      tableColorHover\n    ),\n    thColorSortingModal: composite(\n      composite(modalColor, tableHeaderColor),\n      tableColorHover\n    ),\n    tdColorModal: modalColor,\n    // popover\n    borderColorPopover: composite(popoverColor, dividerColor),\n    tdColorHoverPopover: composite(popoverColor, tableColorHover),\n    tdColorSortingPopover: composite(popoverColor, tableColorHover),\n    tdColorStripedPopover: composite(popoverColor, tableColorStriped),\n    thColorPopover: composite(popoverColor, tableHeaderColor),\n    thColorHoverPopover: composite(\n      composite(popoverColor, tableHeaderColor),\n      tableColorHover\n    ),\n    thColorSortingPopover: composite(\n      composite(popoverColor, tableHeaderColor),\n      tableColorHover\n    ),\n    tdColorPopover: popoverColor,\n    boxShadowBefore: 'inset -12px 0 8px -12px rgba(0, 0, 0, .18)',\n    boxShadowAfter: 'inset 12px 0 8px -12px rgba(0, 0, 0, .18)',\n    // loading\n    loadingColor: primaryColor,\n    loadingSize: heightSmall,\n    opacityLoading: opacityDisabled\n  }\n}\n\nexport interface DataTableThemeVars extends ReturnType<typeof self> {}\n\nconst dataTableLight: DataTableTheme = createTheme({\n  name: 'DataTable',\n  common: commonLight,\n  peers: {\n    Button: buttonLight,\n    Checkbox: checkboxLight,\n    Radio: radioLight,\n    Pagination: paginationLight,\n    Scrollbar: scrollbarLight,\n    Empty: emptyLight,\n    Popover: popoverLight,\n    Ellipsis: ellipsisLight,\n    Dropdown: dropdownLight\n  },\n  self\n})\n\nexport interface DataTableTheme extends Theme<\n  'DataTable',\n  DataTableThemeVars,\n  {\n    Button: ButtonTheme\n    Checkbox: CheckboxTheme\n    Radio: RadioTheme\n    Pagination: PaginationTheme\n    Scrollbar: ScrollbarTheme\n    Empty: EmptyTheme\n    Popover: PopoverTheme\n    Ellipsis: EllipsisTheme\n    Dropdown: DropdownTheme\n  }\n> {}\n\nexport interface DataTableThemeOverrides extends ExtractThemeOverrides<DataTableTheme> {}\n\nexport default dataTableLight\n","import type { DataTableTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { checkboxDark } from '../../checkbox/styles'\nimport { dropdownDark } from '../../dropdown/styles'\nimport { ellipsisDark } from '../../ellipsis/styles'\nimport { emptyDark } from '../../empty/styles'\nimport { paginationDark } from '../../pagination/styles'\nimport { popoverDark } from '../../popover/styles'\nimport { radioDark } from '../../radio/styles'\nimport { self } from './light'\n\nconst dataTableDark: DataTableTheme = {\n  name: 'DataTable',\n  common: commonDark,\n  peers: {\n    Button: buttonDark,\n    Checkbox: checkboxDark,\n    Radio: radioDark,\n    Pagination: paginationDark,\n    Scrollbar: scrollbarDark,\n    Empty: emptyDark,\n    Popover: popoverDark,\n    Ellipsis: ellipsisDark,\n    Dropdown: dropdownDark\n  },\n  self(vars) {\n    const commonSelf = self(vars)\n    commonSelf.boxShadowAfter = 'inset 12px 0 8px -12px rgba(0, 0, 0, .36)'\n    commonSelf.boxShadowBefore = 'inset -12px 0 8px -12px rgba(0, 0, 0, .36)'\n    return commonSelf\n  }\n}\n\nexport default dataTableDark\n","import { c, cB, cM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('data-table', [\n    cM('rtl', `\n      direction: rtl;\n    `, [\n      cB('data-table-th', [\n        cM('filterable', `\n          padding-left: 36px;\n          padding-right: var(--n-th-padding);\n        `, [\n          cM('sortable', `\n            padding-right: var(--n-th-padding);\n            padding-left: calc(var(--n-th-padding) + 36px);\n          `)\n        ]),\n        cB('data-table-sorter', `\n          margin-left: 0;\n          margin-right: 4px;\n        `),\n        cB('data-table-filter', `\n          right: unset;\n          left: 0;\n        `)\n      ])\n    ])\n  ]),\n  cB('data-table-filter-menu', [\n    cM('rtl', `\n      direction: rtl;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { scrollbarRtl } from '../../_internal/scrollbar/styles'\nimport { paginationRtl } from '../../pagination/styles'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const DataTableRtl: RtlItem = {\n  name: 'DataTable',\n  style: rtlStyle,\n  peers: [scrollbarRtl, paginationRtl]\n}\n","import type { TreeMate, TreeNode } from 'treemate'\nimport type {\n  CSSProperties,\n  ExtractPropTypes,\n  HTMLAttributes,\n  PropType,\n  Ref,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { VirtualListInst, VirtualListScrollTo } from 'vueuc'\nimport type { ScrollTo as InternalScrollbarScrollTo } from '../../_internal/scrollbar/src/Scrollbar'\nimport type { MergedTheme, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { EllipsisProps } from '../../ellipsis/src/Ellipsis'\nimport type { NLocale } from '../../locales'\nimport type { PaginationProps } from '../../pagination'\nimport type { PopoverProps } from '../../popover'\nimport type { ScrollbarProps } from '../../scrollbar/src/Scrollbar'\nimport type { DataTableTheme, DataTableThemeOverrides } from '../styles'\nimport type {\n  DataTableGetCsvCell,\n  DataTableGetCsvHeader,\n  DataTableSize,\n  DataTableSpinProps\n} from './public-types'\nimport type { ColItem, RowItem } from './use-group-header'\nimport { useTheme } from '../../_mixins'\nimport { createInjectionKey } from '../../_utils'\n\nexport const dataTableProps = {\n  ...(useTheme.props as ThemeProps<DataTableTheme, DataTableThemeOverrides>),\n  onUnstableColumnResize: Function as PropType<\n    (\n      resizedWidth: number,\n      limitedWidth: number,\n      column: TableBaseColumn,\n      getColumnWidth: (key: ColumnKey) => number | undefined\n    ) => void\n  >,\n  pagination: {\n    type: [Object, Boolean] as PropType<false | PaginationProps>,\n    default: false\n  },\n  paginateSinglePage: {\n    type: Boolean,\n    default: true\n  },\n  minHeight: [Number, String] as PropType<string | number>,\n  maxHeight: [Number, String] as PropType<string | number>,\n  // Use any type as row data to make prop data acceptable\n  columns: {\n    type: Array as PropType<TableColumns<any>>,\n    default: () => []\n  },\n  rowClassName: [String, Function] as PropType<\n    string | CreateRowClassName<any>\n  >,\n  rowProps: Function as PropType<CreateRowProps<any>>,\n  rowKey: Function as PropType<CreateRowKey<any>>,\n  summary: [Function] as PropType<CreateSummary<any>>,\n  data: {\n    type: Array as PropType<RowData[]>,\n    default: () => []\n  },\n  loading: Boolean,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  bottomBordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  striped: Boolean,\n  scrollX: [Number, String] as PropType<string | number>,\n  defaultCheckedRowKeys: {\n    type: Array as PropType<RowKey[]>,\n    default: () => []\n  },\n  checkedRowKeys: Array as PropType<RowKey[]>,\n  singleLine: {\n    type: Boolean,\n    default: true\n  },\n  singleColumn: Boolean,\n  size: String as PropType<DataTableSize>,\n  remote: Boolean,\n  defaultExpandedRowKeys: {\n    type: Array as PropType<RowKey[]>,\n    default: []\n  },\n  defaultExpandAll: Boolean,\n  expandedRowKeys: Array as PropType<RowKey[]>,\n  stickyExpandedRows: Boolean,\n  virtualScroll: Boolean,\n  virtualScrollX: Boolean,\n  virtualScrollHeader: Boolean,\n  headerHeight: { type: Number, default: 28 },\n  heightForRow: Function as PropType<DataTableHeightForRow>,\n  minRowHeight: { type: Number, default: 28 },\n  tableLayout: {\n    type: String as PropType<'auto' | 'fixed'>,\n    default: 'auto'\n  },\n  allowCheckingNotLoaded: Boolean,\n  cascade: {\n    type: Boolean,\n    default: true\n  },\n  childrenKey: {\n    type: String,\n    default: 'children'\n  },\n  indent: {\n    type: Number,\n    default: 16\n  },\n  flexHeight: Boolean,\n  summaryPlacement: {\n    type: String as PropType<'top' | 'bottom'>,\n    default: 'bottom'\n  },\n  paginationBehaviorOnFilter: {\n    type: String as PropType<'first' | 'current'>,\n    default: 'current'\n  },\n  filterIconPopoverProps: Object as PropType<PopoverProps>,\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  renderCell: Function as PropType<\n    (value: any, rowData: object, column: TableBaseColumn) => VNodeChild\n  >,\n  renderExpandIcon: Function as PropType<RenderExpandIcon>,\n  spinProps: Object as PropType<DataTableSpinProps>,\n  getCsvCell: Function as PropType<DataTableGetCsvCell>,\n  getCsvHeader: Function as PropType<DataTableGetCsvHeader>,\n  onLoad: Function as PropType<DataTableOnLoad>,\n  'onUpdate:page': [Function, Array] as PropType<\n    PaginationProps['onUpdate:page']\n  >,\n  onUpdatePage: [Function, Array] as PropType<PaginationProps['onUpdate:page']>,\n  'onUpdate:pageSize': [Function, Array] as PropType<\n    PaginationProps['onUpdate:pageSize']\n  >,\n  onUpdatePageSize: [Function, Array] as PropType<\n    PaginationProps['onUpdate:pageSize']\n  >,\n  'onUpdate:sorter': [Function, Array] as PropType<MaybeArray<OnUpdateSorter>>,\n  onUpdateSorter: [Function, Array] as PropType<MaybeArray<OnUpdateSorter>>,\n  'onUpdate:filters': [Function, Array] as PropType<\n    MaybeArray<OnUpdateFilters>\n  >,\n  onUpdateFilters: [Function, Array] as PropType<MaybeArray<OnUpdateFilters>>,\n  'onUpdate:checkedRowKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateCheckedRowKeys>\n  >,\n  onUpdateCheckedRowKeys: [Function, Array] as PropType<\n    MaybeArray<OnUpdateCheckedRowKeys>\n  >,\n  'onUpdate:expandedRowKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateExpandedRowKeys>\n  >,\n  onUpdateExpandedRowKeys: [Function, Array] as PropType<\n    MaybeArray<OnUpdateExpandedRowKeys>\n  >,\n  onScroll: Function as PropType<(e: Event) => void>,\n  // deprecated\n  onPageChange: [Function, Array] as PropType<PaginationProps['onUpdate:page']>,\n  onPageSizeChange: [Function, Array] as PropType<\n    PaginationProps['onUpdate:pageSize']\n  >,\n  onSorterChange: [Function, Array] as PropType<\n    MaybeArray<OnUpdateSorter> | undefined\n  >,\n  onFiltersChange: [Function, Array] as PropType<\n    MaybeArray<OnUpdateFilters> | undefined\n  >,\n  onCheckedRowKeysChange: [Function, Array] as PropType<\n    MaybeArray<OnUpdateCheckedRowKeys> | undefined\n  >\n} as const\n\nexport interface DataTableSlots {\n  default?: () => VNode[]\n  empty?: () => VNode[]\n  loading?: () => VNode[]\n}\n\nexport type FilterOptionValue = string | number\nexport type ColumnKey = string | number\nexport type RowKey = string | number\n\nexport type SortOrderFlag = 1 | -1 | 0\n\nexport type RowData = Record<string, any>\n\nexport type InternalRowData = Record<string, unknown>\n\nexport type CreateRowKey<T = InternalRowData> = (row: T) => RowKey\nexport type CreateRowClassName<T = InternalRowData> = (\n  row: T,\n  index: number\n) => string\nexport type CreateRowProps<T = InternalRowData> = (\n  row: T,\n  index: number\n) => HTMLAttributes\nexport type CreateCellProps<T = InternalRowData> = (\n  row: T,\n  index: number\n) => HTMLAttributes\n\nexport type CompareFn<T = InternalRowData> = (row1: T, row2: T) => number\nexport type Sorter<T = InternalRowData> = CompareFn<T> | SorterMultiple<T>\nexport interface SorterMultiple<T = InternalRowData> {\n  multiple: number\n  compare?: CompareFn<T> | 'default'\n}\n\nexport type Filter<T = InternalRowData> = (\n  filterOptionValue: FilterOptionValue,\n  row: T\n) => boolean\n\nexport interface FilterOption {\n  label: string\n  value: FilterOptionValue\n}\n\nexport type TmNode = TreeNode<InternalRowData>\n\n// for compat may add null\nexport type SortOrder = 'ascend' | 'descend' | false\n\nexport type Ellipsis = boolean | EllipsisProps\n\nexport interface CommonColumnInfo<T = InternalRowData> {\n  fixed?: 'left' | 'right'\n  width?: number | string\n  minWidth?: number | string\n  maxWidth?: number | string\n  className?: string\n  align?: 'left' | 'center' | 'right'\n  titleAlign?: 'left' | 'center' | 'right'\n  ellipsis?: Ellipsis\n  ellipsisComponent?: 'ellipsis' | 'performant-ellipsis'\n  allowExport?: boolean\n  cellProps?: (rowData: T, rowIndex: number) => HTMLAttributes\n}\n\nexport type DataTableHeightForRow<T = RowData> = (\n  rowData: T,\n  rowIndex: number\n) => number\n\nexport type TableColumnTitle\n  = string | ((column: TableBaseColumn) => VNodeChild)\n\nexport type TableExpandColumnTitle\n  = string | ((column: TableExpandColumn) => VNodeChild)\n\nexport type TableColumnGroupTitle\n  = string | ((column: TableColumnGroup) => VNodeChild)\n\nexport type TableColumnGroup<T = InternalRowData> = {\n  title?: TableColumnGroupTitle\n  type?: never\n  key: ColumnKey\n  children: Array<TableBaseColumn<T>>\n\n  // to suppress type error in table header\n  resizable?: boolean\n  filterOptions?: never\n} & CommonColumnInfo<T>\n\nexport type TableBaseColumn<T = InternalRowData> = {\n  title?: TableColumnTitle\n  titleColSpan?: number\n  // for compat maybe default\n  type?: never\n  key: ColumnKey\n\n  tree?: boolean\n\n  sorter?: boolean | Sorter<T> | 'default'\n  defaultSortOrder?: SortOrder\n  sortOrder?: SortOrder // controlled\n  customNextSortOrder?: (order: SortOrder) => SortOrder\n\n  resizable?: boolean\n  minWidth?: string | number\n  maxWidth?: string | number\n\n  filter?: 'default' | boolean | Filter<T>\n  filterOptions?: FilterOption[]\n  filterOptionValues?: FilterOptionValue[] | null // controlled\n  filterOptionValue?: FilterOptionValue | null // controlled\n  filterMode?: 'or' | 'and'\n\n  defaultFilterOptionValues?: FilterOptionValue[] | null\n  defaultFilterOptionValue?: FilterOptionValue | null\n  filterMultiple?: boolean\n\n  render?: (rowData: T, rowIndex: number) => VNodeChild\n  renderFilter?: RenderFilter\n  renderFilterIcon?: RenderFilterIcon\n  renderSorter?: RenderSorter\n  renderSorterIcon?: RenderSorterIcon\n  renderFilterMenu?: RenderFilterMenu\n  colSpan?: (rowData: T, rowIndex: number) => number\n  rowSpan?: (rowData: T, rowIndex: number) => number\n} & CommonColumnInfo<T>\n\nexport type TableSelectionColumn<T = InternalRowData> = {\n  type: 'selection'\n  multiple?: boolean\n  disabled?: (row: T) => boolean\n  options?: DataTableSelectionOptions<T>\n\n  // to suppress type error in utils\n  sorter?: never\n  resizable?: boolean\n  filter?: never\n  filterOptions?: never\n  filterOptionValues?: never\n  filterOptionValue?: never\n  colSpan?: never\n  rowSpan?: never\n} & CommonColumnInfo<T>\n\nexport type RenderExpand<T = InternalRowData> = (\n  row: T,\n  index: number\n) => VNodeChild\nexport type RenderExpandIcon = ({\n  expanded,\n  rowData\n}: {\n  expanded: boolean\n  rowData: RowData\n}) => VNodeChild\n\n// TODO: we should deprecate `index` since it would change after row is expanded\nexport type Expandable<T = InternalRowData> = (row: T) => boolean\nexport interface TableExpandColumn<T = InternalRowData> extends Omit<\n  TableSelectionColumn<T>,\n  'type'\n> {\n  type: 'expand'\n  title?: TableExpandColumnTitle\n  renderExpand: RenderExpand<T>\n  expandable?: Expandable<T>\n}\n\nexport type TableColumn<T = InternalRowData>\n  = | TableColumnGroup<T>\n    | TableBaseColumn<T>\n    | TableSelectionColumn<T>\n    | TableExpandColumn<T>\nexport type TableColumns<T = InternalRowData> = Array<TableColumn<T>>\n\nexport type DataTableSelectionOptions<T = InternalRowData> = Array<\n  | DataTableSelectionOption\n  | { label: string, key: string | number, onSelect: (pageData: T[]) => void }\n>\nexport interface DataTableInjection {\n  props: DataTableSetupProps\n  slots: DataTableSlots\n  indentRef: Ref<number>\n  childTriggerColIndexRef: Ref<number>\n  componentId: string\n  checkOptionsRef: Ref<DataTableSelectionOptions | undefined>\n  hoverKeyRef: Ref<RowKey | null>\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<DataTableTheme>>\n  scrollXRef: Ref<string | number | undefined>\n  rowsRef: Ref<RowItem[][]>\n  colsRef: Ref<ColItem[]>\n  paginatedDataRef: Ref<TmNode[]>\n  leftFixedColumnsRef: Ref<TableColumns>\n  rightFixedColumnsRef: Ref<TableColumns>\n  leftActiveFixedColKeyRef: Ref<ColumnKey | null>\n  leftActiveFixedChildrenColKeysRef: Ref<ColumnKey[]>\n  rightActiveFixedColKeyRef: Ref<ColumnKey | null>\n  rightActiveFixedChildrenColKeysRef: Ref<ColumnKey[]>\n  fixedColumnLeftMapRef: Ref<\n    Record<ColumnKey, { start: number, end: number } | undefined>\n  >\n  fixedColumnRightMapRef: Ref<\n    Record<ColumnKey, { start: number, end: number } | undefined>\n  >\n  mergedCurrentPageRef: Ref<number>\n  someRowsCheckedRef: Ref<boolean>\n  allRowsCheckedRef: Ref<boolean>\n  mergedSortStateRef: Ref<SortState[]>\n  mergedFilterStateRef: Ref<FilterState>\n  loadingRef: Ref<boolean>\n  rowClassNameRef: Ref<string | CreateRowClassName | undefined>\n  mergedCheckedRowKeySetRef: Ref<Set<RowKey>>\n  mergedInderminateRowKeySetRef: Ref<Set<RowKey>>\n  localeRef: Ref<NLocale['DataTable']>\n  filterMenuCssVarsRef: Ref<CSSProperties>\n  mergedExpandedRowKeysRef: Ref<RowKey[]>\n  rowKeyRef: Ref<CreateRowKey | undefined>\n  renderExpandRef: Ref<undefined | RenderExpand>\n  summaryRef: Ref<undefined | CreateSummary>\n  rawPaginatedDataRef: Ref<InternalRowData[]>\n  virtualScrollRef: Ref<boolean>\n  virtualScrollXRef: Ref<boolean>\n  minRowHeightRef: Ref<number>\n  heightForRowRef: Ref<DataTableHeightForRow | undefined>\n  virtualScrollHeaderRef: Ref<boolean>\n  headerHeightRef: Ref<number>\n  bodyWidthRef: Ref<number | null>\n  mergedTableLayoutRef: Ref<'auto' | 'fixed'>\n  maxHeightRef: Ref<string | number | undefined>\n  minHeightRef: Ref<string | number | undefined>\n  xScrollableRef: Ref<boolean>\n  explicitlyScrollableRef: Ref<boolean>\n  rowPropsRef: Ref<CreateRowProps | undefined>\n  flexHeightRef: Ref<boolean>\n  headerCheckboxDisabledRef: Ref<boolean>\n  stripedRef: Ref<boolean>\n  onLoadRef: Ref<DataTableOnLoad | undefined>\n  loadingKeySetRef: Ref<Set<RowKey>>\n  paginationBehaviorOnFilterRef: Ref<'current' | 'first'>\n  expandableRef: Ref<Expandable<any> | undefined>\n  stickyExpandedRowsRef: Ref<boolean>\n  renderExpandIconRef: Ref<undefined | RenderExpandIcon>\n  summaryPlacementRef: Ref<'top' | 'bottom'>\n  filterIconPopoverPropsRef: Ref<PopoverProps | undefined>\n  treeMateRef: Ref<TreeMate<InternalRowData, InternalRowData, InternalRowData>>\n  scrollbarPropsRef: Ref<ScrollbarProps | undefined>\n  doUpdatePage: (page: number) => void\n  doUpdateExpandedRowKeys: (keys: RowKey[]) => void\n  doUpdateFilters: (filters: FilterState, sourceColumn: TableBaseColumn) => void\n  onUnstableColumnResize: (\n    resizedWidth: number,\n    limitedWidth: number,\n    column: TableBaseColumn,\n    getColumnWidth: (key: ColumnKey) => number | undefined\n  ) => void\n  getResizableWidth: (key: ColumnKey) => number | undefined\n  clearResizableWidth: () => void\n  doUpdateResizableWidth: (column: TableColumn, width: number) => void\n  deriveNextSorter: (sorter: SortState | null) => void\n  doUncheckAll: (checkWholeTable?: boolean) => void\n  doCheckAll: (checkWholeTable?: boolean) => void\n  doCheck: (\n    rowKey: RowKey | RowKey[],\n    single: boolean,\n    rowInfo: RowData\n  ) => void\n  doUncheck: (rowKey: RowKey | RowKey[], rowInfo: RowData) => void\n  handleTableHeaderScroll: (e: Event) => void\n  handleTableBodyScroll: (e: Event) => void\n  syncScrollState: (source: 'head' | 'body' | 'layout') => void\n  setHeaderScrollLeft: (scrollLeft: number) => void\n  renderCell: Ref<\n    | undefined\n    | ((value: any, rowData: object, column: TableBaseColumn) => VNodeChild)\n  >\n}\n\nexport const dataTableInjectionKey\n  = createInjectionKey<DataTableInjection>('n-data-table')\n\nexport interface MainTableInjection {\n  leftActiveFixedColKey: ColumnKey | null\n  rightActiveFixedColKey: ColumnKey | null\n}\n\nexport type RenderFilter = (props: {\n  active: boolean\n  show: boolean\n}) => VNodeChild\n\nexport type RenderFilterIcon = RenderFilter\n\nexport type RenderSorter = (props: { order: SortOrder }) => VNodeChild\n\nexport type RenderSorterIcon = RenderSorter\n\nexport type RenderFilterMenu = (actions: { hide: () => void }) => VNodeChild\n\nexport type OnUpdateExpandedRowKeys = (keys: RowKey[]) => void\nexport type OnUpdateCheckedRowKeys = (\n  keys: RowKey[],\n  rows: InternalRowData[],\n  meta: {\n    row: InternalRowData | undefined\n    action: 'check' | 'uncheck' | 'checkAll' | 'uncheckAll'\n  }\n) => void\n\n// `null` only occurs when clearSorter is called\nexport type OnUpdateSorter = (sortState: SortState & SortState[] & null) => void\nexport type OnUpdateSorterImpl = (\n  sortState: SortState | SortState[] | null\n) => void\nexport type OnUpdateFilters = (\n  filterState: FilterState,\n  sourceColumn: TableBaseColumn\n) => void\n\nexport interface SortState {\n  columnKey: ColumnKey\n  order: SortOrder\n  // Sorter    => sync data + functional sorter\n  // 'default' => sync data + default sorter\n  // true      => async data\n  // false     => show nothing\n  sorter: Sorter | boolean | 'default'\n}\n\nexport type FilterState = Record<\n  string,\n  FilterOptionValue[] | FilterOptionValue | null | undefined\n>\n\nexport type DataTableScrollTo = InternalScrollbarScrollTo & VirtualListScrollTo\n\nexport interface MainTableRef {\n  getHeaderElement: () => HTMLElement | null\n  getBodyElement: () => HTMLElement | null\n  scrollTo: DataTableScrollTo\n}\n\nexport interface MainTableBodyRef {\n  getScrollContainer: () => HTMLElement | null\n  scrollTo: DataTableScrollTo\n}\n\nexport interface MainTableHeaderRef {\n  $el: HTMLElement | null\n  virtualListRef: Ref<VirtualListInst | null>\n}\n\nexport type OnFilterMenuChange = <\n  T extends FilterOptionValue[] & (FilterOptionValue | null)\n>(\n  value: T\n) => void\nexport type OnFilterMenuChangeImpl = (\n  value: FilterOptionValue[] | FilterOptionValue | null\n) => void\n\nexport interface DataTableInst {\n  filter: (filters: FilterState | null) => void\n  filters: (filters: FilterState | null) => void\n  clearFilters: () => void\n  clearSorter: () => void\n  page: (page: number) => void\n  sort: (columnKey: ColumnKey, order: SortOrder) => void\n  scrollTo: DataTableScrollTo\n  downloadCsv: (options?: CsvOptionsType) => void\n  getFilteredAndSortedData: () => InternalRowData[]\n  getCurrentPageData: () => InternalRowData[]\n  /** @deprecated it but just leave it here, it does no harm */\n  clearFilter: () => void\n}\n\nexport type CreateSummary<T = InternalRowData> = (\n  pageData: T[]\n) => SummaryRowData | SummaryRowData[]\n\nexport interface SummaryCell {\n  value?: VNodeChild\n  colSpan?: number\n  rowSpan?: number\n}\nexport type SummaryRowData = Record<string, SummaryCell>\n\nexport type DataTableOnLoad = (node: RowData) => Promise<void>\n\nexport type DataTableSelectionOption = 'all' | 'none'\n\nexport type DataTableProps = ExtractPublicPropTypes<typeof dataTableProps>\nexport type DataTableSetupProps = ExtractPropTypes<typeof dataTableProps>\n\nexport interface CsvOptionsType {\n  fileName?: string\n  keepOriginalData?: boolean\n}\n","import type { CSSProperties } from 'vue'\nimport type {\n  CreateRowClassName,\n  InternalRowData,\n  RowData,\n  SortOrder,\n  SortOrderFlag,\n  SortState,\n  TableBaseColumn,\n  TableColumn,\n  TableExpandColumn,\n  TableSelectionColumn\n} from './interface'\nimport type { DataTableGetCsvCell, DataTableGetCsvHeader } from './public-types'\nimport { depx } from 'seemly'\nimport { formatLength } from '../../_utils'\n\nexport const SELECTION_COL_WIDTH = 40\nexport const EXPAND_COL_WIDTH = 40\n\nexport function getNumberColWidth(col: TableColumn): number | undefined {\n  if (col.type === 'selection') {\n    return col.width === undefined ? SELECTION_COL_WIDTH : depx(col.width)\n  }\n  if (col.type === 'expand') {\n    return col.width === undefined ? EXPAND_COL_WIDTH : depx(col.width)\n  }\n  if ('children' in col)\n    return undefined\n  if (typeof col.width === 'string') {\n    return depx(col.width)\n  }\n  return col.width\n}\n\nexport function getStringColWidth(col: TableColumn): string | undefined {\n  if (col.type === 'selection') {\n    return formatLength(col.width ?? SELECTION_COL_WIDTH)\n  }\n  if (col.type === 'expand') {\n    return formatLength(col.width ?? EXPAND_COL_WIDTH)\n  }\n  if ('children' in col) {\n    return undefined\n  }\n  return formatLength(col.width)\n}\n\nexport function getColKey(col: TableColumn): string | number {\n  if (col.type === 'selection')\n    return '__n_selection__'\n  if (col.type === 'expand')\n    return '__n_expand__'\n  return col.key\n}\n\nexport function createShallowClonedObject<T>(object: T): T {\n  if (!object)\n    return object\n  if (typeof object === 'object') {\n    return Object.assign({}, object)\n  }\n  return object\n}\n\nexport function getFlagOfOrder(order: SortOrder): SortOrderFlag {\n  if (order === 'ascend')\n    return 1\n  else if (order === 'descend')\n    return -1\n  return 0\n}\n\n// priority: min-width > max-width > width\nexport function clampValueFollowCSSRules(\n  value: number,\n  min?: number | string,\n  max?: number | string\n): number {\n  if (max !== undefined) {\n    value = Math.min(\n      value,\n      typeof max === 'number' ? max : Number.parseFloat(max)\n    )\n  }\n  if (min !== undefined) {\n    value = Math.max(\n      value,\n      typeof min === 'number' ? min : Number.parseFloat(min)\n    )\n  }\n  return value\n}\n\nexport function createCustomWidthStyle(\n  column: TableBaseColumn | TableSelectionColumn | TableExpandColumn,\n  resizedWidth?: string\n): CSSProperties {\n  if (resizedWidth !== undefined) {\n    return {\n      width: resizedWidth,\n      minWidth: resizedWidth,\n      maxWidth: resizedWidth\n    }\n  }\n  const width = getStringColWidth(column)\n  const { minWidth, maxWidth } = column\n  return {\n    width,\n    minWidth: formatLength(minWidth) || width,\n    maxWidth: formatLength(maxWidth)\n  }\n}\n\nexport function createRowClassName(\n  row: InternalRowData,\n  index: number,\n  rowClassName?: string | CreateRowClassName\n): string {\n  if (typeof rowClassName === 'function')\n    return rowClassName(row, index)\n  return rowClassName || ''\n}\n\n// for compatibility\n// If column.filterOptionValues or column.defaultFilterOptionValues is set, use\n// array value\nexport function shouldUseArrayInSingleMode(column: TableBaseColumn): boolean {\n  return (\n    column.filterOptionValues !== undefined\n    || (column.filterOptionValue === undefined\n      && column.defaultFilterOptionValues !== undefined)\n  )\n}\n\nexport function isColumnSortable(column: TableColumn): boolean {\n  if ('children' in column)\n    return false\n  return !!column.sorter\n}\n\nexport function isColumnResizable(column: TableColumn): boolean {\n  if ('children' in column && !!column.children.length)\n    return false\n  return !!column.resizable\n}\n\nexport function isColumnFilterable(column: TableColumn): boolean {\n  if ('children' in column)\n    return false\n  return (\n    !!column.filter && (!!column.filterOptions || !!column.renderFilterMenu)\n  )\n}\n\nfunction getNextOrderOf(order: SortOrder): SortOrder {\n  if (!order)\n    return 'descend'\n  else if (order === 'descend')\n    return 'ascend'\n  return false\n}\n\nexport function createNextSorter(\n  column: TableBaseColumn,\n  currentSortState: SortState | null\n): SortState | null {\n  if (column.sorter === undefined)\n    return null\n\n  const { customNextSortOrder } = column\n\n  if (currentSortState === null || currentSortState.columnKey !== column.key) {\n    return {\n      columnKey: column.key,\n      sorter: column.sorter,\n      order: getNextOrderOf(false)\n    }\n  }\n  else {\n    return {\n      ...currentSortState,\n      order: (customNextSortOrder || getNextOrderOf)(currentSortState.order)\n    }\n  }\n}\n\nexport function isColumnSorting(\n  column: TableColumn,\n  mergedSortState: SortState[]\n): boolean {\n  return (\n    mergedSortState.find(\n      state =>\n        state.columnKey === (column as TableBaseColumn).key && state.order\n    ) !== undefined\n  )\n}\n\nfunction formatCsvCell(value: unknown): string {\n  if (typeof value === 'string') {\n    return value.replace(/,/g, '\\\\,')\n  }\n  else if (value === null || value === undefined) {\n    return ''\n  }\n  else {\n    return `${value}`.replace(/,/g, '\\\\,')\n  }\n}\n\nexport function generateCsv(\n  columns: TableColumn[],\n  data: RowData[],\n  getCsvCell: DataTableGetCsvCell | undefined,\n  getCsvHeader: DataTableGetCsvHeader | undefined\n): string {\n  const exportableColumns = columns.filter(\n    column =>\n      column.type !== 'expand'\n      && column.type !== 'selection'\n      && column.allowExport !== false\n  )\n  const header = exportableColumns\n    .map((col: any) => {\n      return getCsvHeader ? getCsvHeader(col) : col.title\n    })\n    .join(',')\n  const rows = data.map((row) => {\n    return exportableColumns\n      .map((col: any) => {\n        return getCsvCell\n          ? getCsvCell(row[col.key], row, col)\n          : formatCsvCell(row[col.key])\n      })\n      .join(',')\n  })\n  return [header, ...rows].join('\\n')\n}\n","import type { PropType } from 'vue'\nimport type { RowKey } from '../interface'\nimport { defineComponent, h, inject } from 'vue'\nimport { NCheckbox } from '../../../checkbox'\nimport { dataTableInjectionKey } from '../interface'\n\n// Extract the checkbox to avoid useless rendering in table body\nexport default defineComponent({\n  name: 'DataTableBodyCheckbox',\n  props: {\n    rowKey: {\n      type: [String, Number] as PropType<RowKey>,\n      required: true\n    },\n    disabled: {\n      type: Boolean,\n      required: true\n    },\n    onUpdateChecked: {\n      type: Function as PropType<\n        (checked: boolean, e: MouseEvent | KeyboardEvent) => void\n      >,\n      required: true\n    }\n  },\n  setup(props) {\n    const { mergedCheckedRowKeySetRef, mergedInderminateRowKeySetRef } = inject(\n      dataTableInjectionKey\n    )!\n    return () => {\n      const { rowKey } = props\n      return (\n        <NCheckbox\n          privateInsideTable\n          disabled={props.disabled}\n          indeterminate={mergedInderminateRowKeySetRef.value.has(rowKey)}\n          checked={mergedCheckedRowKeySetRef.value.has(rowKey)}\n          onUpdateChecked={props.onUpdateChecked}\n        />\n      )\n    }\n  }\n})\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-box-shadow\n// --n-box-shadow-active\n// --n-box-shadow-disabled\n// --n-box-shadow-focus\n// --n-box-shadow-hover\n// --n-color\n// --n-color-disabled\n// --n-dot-color-active\n// --n-dot-color-disabled\n// --n-font-size\n// --n-radio-size\n// --n-text-color\n// --n-text-color-disabled\n// --n-label-padding\n// --n-label-line-height\n// --n-color-active\nexport default cB('radio', `\n  line-height: var(--n-label-line-height);\n  outline: none;\n  position: relative;\n  user-select: none;\n  -webkit-user-select: none;\n  display: inline-flex;\n  align-items: flex-start;\n  flex-wrap: nowrap;\n  font-size: var(--n-font-size);\n  word-break: break-word;\n`, [\n  cM('checked', [\n    cE('dot', `\n      background-color: var(--n-color-active);\n    `)\n  ]),\n  cE('dot-wrapper', `\n    position: relative;\n    flex-shrink: 0;\n    flex-grow: 0;\n    width: var(--n-radio-size);\n  `),\n  cB('radio-input', `\n    position: absolute;\n    border: 0;\n    width: 0;\n    height: 0;\n    opacity: 0;\n    margin: 0;\n  `),\n  cE('dot', `\n    position: absolute;\n    top: 50%;\n    left: 0;\n    transform: translateY(-50%);\n    height: var(--n-radio-size);\n    width: var(--n-radio-size);\n    background: var(--n-color);\n    box-shadow: var(--n-box-shadow);\n    border-radius: 50%;\n    transition:\n      background-color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier);\n  `, [\n    c('&::before', `\n      content: \"\";\n      opacity: 0;\n      position: absolute;\n      left: 4px;\n      top: 4px;\n      height: calc(100% - 8px);\n      width: calc(100% - 8px);\n      border-radius: 50%;\n      transform: scale(.8);\n      background: var(--n-dot-color-active);\n      transition: \n        opacity .3s var(--n-bezier),\n        background-color .3s var(--n-bezier),\n        transform .3s var(--n-bezier);\n    `),\n    cM('checked', {\n      boxShadow: 'var(--n-box-shadow-active)'\n    }, [\n      c('&::before', `\n        opacity: 1;\n        transform: scale(1);\n      `)\n    ])\n  ]),\n  cE('label', `\n    color: var(--n-text-color);\n    padding: var(--n-label-padding);\n    font-weight: var(--n-label-font-weight);\n    display: inline-block;\n    transition: color .3s var(--n-bezier);\n  `),\n  cNotM('disabled', `\n    cursor: pointer;\n  `, [\n    c('&:hover', [\n      cE('dot', {\n        boxShadow: 'var(--n-box-shadow-hover)'\n      })\n    ]),\n    cM('focus', [\n      c('&:not(:active)', [\n        cE('dot', {\n          boxShadow: 'var(--n-box-shadow-focus)'\n        })\n      ])\n    ])\n  ]),\n  cM('disabled', `\n    cursor: not-allowed;\n  `, [\n    cE('dot', {\n      boxShadow: 'var(--n-box-shadow-disabled)',\n      backgroundColor: 'var(--n-color-disabled)'\n    }, [\n      c('&::before', {\n        backgroundColor: 'var(--n-dot-color-disabled)'\n      }),\n      cM('checked', `\n        opacity: 1;\n      `)\n    ]),\n    cE('label', {\n      color: 'var(--n-text-color-disabled)'\n    }),\n    cB('radio-input', `\n      cursor: not-allowed;\n    `)\n  ])\n])\n","import type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MaybeArray } from '../../_utils'\nimport type { OnUpdateValue, OnUpdateValueImpl } from './interface'\nimport type { RadioSize } from './public-types'\nimport { useMemo, useMergedState } from 'vooks'\nimport { inject, ref, toRef, watchEffect } from 'vue'\nimport { useConfig, useFormItem } from '../../_mixins'\nimport { call, createInjectionKey, warnOnce } from '../../_utils'\n\nexport const radioBaseProps = {\n  name: String,\n  value: {\n    type: [String, Number, Boolean] as PropType<string | number | boolean>,\n    default: 'on'\n  },\n  checked: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  defaultChecked: Boolean,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  label: String,\n  size: String as PropType<RadioSize>,\n  onUpdateChecked: [Function, Array] as PropType<\n    undefined | MaybeArray<(value: boolean) => void>\n  >,\n  'onUpdate:checked': [Function, Array] as PropType<\n    undefined | MaybeArray<(value: boolean) => void>\n  >,\n  // deprecated\n  checkedValue: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  }\n} as const\n\nexport interface RadioGroupInjection {\n  mergedClsPrefixRef: Ref<string>\n  nameRef: Ref<string | undefined>\n  valueRef: Ref<string | number | boolean | null>\n  mergedSizeRef: Ref<RadioSize>\n  disabledRef: Ref<boolean>\n  doUpdateValue: OnUpdateValue\n}\n\nexport const radioGroupInjectionKey\n  = createInjectionKey<RadioGroupInjection>('n-radio-group')\n\nexport interface UseRadio {\n  mergedClsPrefix: Ref<string>\n  inputRef: Ref<HTMLElement | null>\n  labelRef: Ref<HTMLElement | null>\n  mergedName: Ref<string | undefined>\n  mergedDisabled: Ref<boolean>\n  renderSafeChecked: Ref<boolean>\n  focus: Ref<boolean>\n  mergedSize: ComputedRef<RadioSize>\n  handleRadioInputChange: () => void\n  handleRadioInputBlur: () => void\n  handleRadioInputFocus: () => void\n}\n\nfunction setup(props: ExtractPropTypes<typeof radioBaseProps>): UseRadio {\n  if (__DEV__) {\n    watchEffect(() => {\n      if (props.checkedValue !== undefined) {\n        warnOnce(\n          'radio',\n          '`checked-value` is deprecated, please use `checked` instead.'\n        )\n      }\n    })\n  }\n  const NRadioGroup = inject(radioGroupInjectionKey, null)\n  const { mergedClsPrefixRef, mergedComponentPropsRef } = useConfig(props)\n  const formItem = useFormItem(props, {\n    mergedSize(NFormItem) {\n      const { size } = props\n      if (size !== undefined)\n        return size\n      if (NRadioGroup) {\n        const {\n          mergedSizeRef: { value: mergedSize }\n        } = NRadioGroup\n        if (mergedSize !== undefined) {\n          return mergedSize\n        }\n      }\n      if (NFormItem) {\n        return NFormItem.mergedSize.value\n      }\n      const configSize = mergedComponentPropsRef?.value?.Radio?.size\n      if (configSize)\n        return configSize\n      return 'medium'\n    },\n    mergedDisabled(NFormItem) {\n      if (props.disabled)\n        return true\n      if (NRadioGroup?.disabledRef.value)\n        return true\n      if (NFormItem?.disabled.value)\n        return true\n      return false\n    }\n  })\n  const { mergedSizeRef, mergedDisabledRef } = formItem\n  const inputRef = ref<HTMLInputElement | null>(null)\n  const labelRef = ref<HTMLElement | null>(null)\n  const uncontrolledCheckedRef = ref(props.defaultChecked)\n  const controlledCheckedRef = toRef(props, 'checked')\n  const mergedCheckedRef = useMergedState(\n    controlledCheckedRef,\n    uncontrolledCheckedRef\n  )\n  const renderSafeCheckedRef = useMemo(() => {\n    if (NRadioGroup)\n      return NRadioGroup.valueRef.value === props.value\n    return mergedCheckedRef.value\n  })\n  const mergedNameRef = useMemo(() => {\n    const { name } = props\n    if (name !== undefined)\n      return name\n    if (NRadioGroup)\n      return NRadioGroup.nameRef.value\n  })\n  const focusRef = ref(false)\n  function doUpdateChecked(): void {\n    if (NRadioGroup) {\n      const { doUpdateValue } = NRadioGroup\n      const { value } = props\n      call(doUpdateValue as OnUpdateValueImpl, value)\n    }\n    else {\n      const { onUpdateChecked, 'onUpdate:checked': _onUpdateChecked } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateChecked)\n        call(onUpdateChecked, true)\n      if (_onUpdateChecked)\n        call(_onUpdateChecked, true)\n      nTriggerFormInput()\n      nTriggerFormChange()\n      uncontrolledCheckedRef.value = true\n    }\n  }\n  function toggle(): void {\n    if (mergedDisabledRef.value)\n      return\n    if (!renderSafeCheckedRef.value) {\n      doUpdateChecked()\n    }\n  }\n  function handleRadioInputChange(): void {\n    toggle()\n    // Restore element check prop's value to current state, since if doesn't\n    // reflect current VNode. If not, bug will happens in component with element\n    // that has internal state such as <input />.\n    if (inputRef.value) {\n      inputRef.value.checked = renderSafeCheckedRef.value\n    }\n  }\n  function handleRadioInputBlur(): void {\n    focusRef.value = false\n  }\n  function handleRadioInputFocus(): void {\n    focusRef.value = true\n  }\n  return {\n    mergedClsPrefix: NRadioGroup\n      ? NRadioGroup.mergedClsPrefixRef\n      : mergedClsPrefixRef,\n    inputRef,\n    labelRef,\n    mergedName: mergedNameRef,\n    mergedDisabled: mergedDisabledRef,\n    renderSafeChecked: renderSafeCheckedRef,\n    focus: focusRef,\n    mergedSize: mergedSizeRef,\n    handleRadioInputChange,\n    handleRadioInputBlur,\n    handleRadioInputFocus\n  }\n}\n\nexport type RadioBaseProps = ExtractPropTypes<typeof radioBaseProps>\nexport { setup }\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { RadioTheme, RadioThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { createKey, resolveWrappedSlot } from '../../_utils'\nimport { radioLight } from '../styles'\nimport style from './styles/radio.cssr'\nimport { radioBaseProps, setup } from './use-radio'\n\nexport const radioProps = {\n  ...(useTheme.props as ThemeProps<RadioTheme, RadioThemeOverrides>),\n  ...radioBaseProps\n} as const\n\nexport type RadioProps = ExtractPublicPropTypes<typeof radioProps>\n\nexport default defineComponent({\n  name: 'Radio',\n  props: radioProps,\n  setup(props) {\n    const radio = setup(props)\n    const themeRef = useTheme(\n      'Radio',\n      '-radio',\n      style,\n      radioLight,\n      props,\n      radio.mergedClsPrefix\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        mergedSize: { value: size }\n      } = radio\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          boxShadow,\n          boxShadowActive,\n          boxShadowDisabled,\n          boxShadowFocus,\n          boxShadowHover,\n          color,\n          colorDisabled,\n          colorActive,\n          textColor,\n          textColorDisabled,\n          dotColorActive,\n          dotColorDisabled,\n          labelPadding,\n          labelLineHeight,\n          labelFontWeight,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('radioSize', size)]: radioSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-label-line-height': labelLineHeight,\n        '--n-label-font-weight': labelFontWeight,\n        '--n-box-shadow': boxShadow,\n        '--n-box-shadow-active': boxShadowActive,\n        '--n-box-shadow-disabled': boxShadowDisabled,\n        '--n-box-shadow-focus': boxShadowFocus,\n        '--n-box-shadow-hover': boxShadowHover,\n        '--n-color': color,\n        '--n-color-active': colorActive,\n        '--n-color-disabled': colorDisabled,\n        '--n-dot-color-active': dotColorActive,\n        '--n-dot-color-disabled': dotColorDisabled,\n        '--n-font-size': fontSize,\n        '--n-radio-size': radioSize,\n        '--n-text-color': textColor,\n        '--n-text-color-disabled': textColorDisabled,\n        '--n-label-padding': labelPadding\n      }\n    })\n    const { inlineThemeDisabled, mergedClsPrefixRef, mergedRtlRef }\n      = useConfig(props)\n    const rtlEnabledRef = useRtl('Radio', mergedRtlRef, mergedClsPrefixRef)\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'radio',\n          computed(() => radio.mergedSize.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return Object.assign(radio, {\n      rtlEnabled: rtlEnabledRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    })\n  },\n  render() {\n    const { $slots, mergedClsPrefix, onRender, label } = this\n    onRender?.()\n    return (\n      <label\n        class={[\n          `${mergedClsPrefix}-radio`,\n          this.themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-radio--rtl`,\n          this.mergedDisabled && `${mergedClsPrefix}-radio--disabled`,\n          this.renderSafeChecked && `${mergedClsPrefix}-radio--checked`,\n          this.focus && `${mergedClsPrefix}-radio--focus`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-radio__dot-wrapper`}>\n          &nbsp;\n          <div\n            class={[\n              `${mergedClsPrefix}-radio__dot`,\n              this.renderSafeChecked && `${mergedClsPrefix}-radio__dot--checked`\n            ]}\n          />\n          <input\n            ref=\"inputRef\"\n            type=\"radio\"\n            class={`${mergedClsPrefix}-radio-input`}\n            value={this.value}\n            name={this.mergedName}\n            checked={this.renderSafeChecked}\n            disabled={this.mergedDisabled}\n            onChange={this.handleRadioInputChange}\n            onFocus={this.handleRadioInputFocus}\n            onBlur={this.handleRadioInputBlur}\n          />\n        </div>\n        {resolveWrappedSlot($slots.default, (children) => {\n          if (!children && !label)\n            return null\n          return (\n            <div ref=\"labelRef\" class={`${mergedClsPrefix}-radio__label`}>\n              {children || label}\n            </div>\n          )\n        })}\n      </label>\n    )\n  }\n})\n","import type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent, h } from 'vue'\nimport { resolveWrappedSlot } from '../../_utils'\nimport { radioBaseProps, setup } from './use-radio'\n\nexport const radioButtonProps = radioBaseProps\nexport type RadioButtonProps = ExtractPublicPropTypes<typeof radioBaseProps>\n\nexport default defineComponent({\n  name: 'RadioButton',\n  props: radioBaseProps,\n  setup,\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <label\n        class={[\n          `${mergedClsPrefix}-radio-button`,\n          this.mergedDisabled && `${mergedClsPrefix}-radio-button--disabled`,\n          this.renderSafeChecked && `${mergedClsPrefix}-radio-button--checked`,\n          this.focus && [`${mergedClsPrefix}-radio-button--focus`]\n        ]}\n      >\n        <input\n          ref=\"inputRef\"\n          type=\"radio\"\n          class={`${mergedClsPrefix}-radio-input`}\n          value={this.value}\n          name={this.mergedName}\n          checked={this.renderSafeChecked}\n          disabled={this.mergedDisabled}\n          onChange={this.handleRadioInputChange}\n          onFocus={this.handleRadioInputFocus}\n          onBlur={this.handleRadioInputBlur}\n        />\n        <div class={`${mergedClsPrefix}-radio-button__state-border`} />\n        {resolveWrappedSlot(this.$slots.default, (children) => {\n          if (!children && !this.label)\n            return null\n          return (\n            <div ref=\"labelRef\" class={`${mergedClsPrefix}-radio__label`}>\n              {children || this.label}\n            </div>\n          )\n        })}\n      </label>\n    )\n  }\n})\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-button-border-color\n// --n-button-border-color-active\n// --n-height\n// --n-opacity-disabled\n// --n-font-size\nexport default cB('radio-group', `\n  display: inline-block;\n  font-size: var(--n-font-size);\n`, [\n  cE('splitor', `\n    display: inline-block;\n    vertical-align: bottom;\n    width: 1px;\n    transition:\n      background-color .3s var(--n-bezier),\n      opacity .3s var(--n-bezier);\n    background: var(--n-button-border-color);\n  `, [\n    cM('checked', {\n      backgroundColor: 'var(--n-button-border-color-active)'\n    }),\n    cM('disabled', {\n      opacity: 'var(--n-opacity-disabled)'\n    })\n  ]),\n  cM('button-group', `\n    white-space: nowrap;\n    height: var(--n-height);\n    line-height: var(--n-height);\n  `, [\n    cB('radio-button', {\n      height: 'var(--n-height)',\n      lineHeight: 'var(--n-height)'\n    }),\n    cE('splitor', {\n      height: 'var(--n-height)'\n    })\n  ]),\n  cB('radio-button', `\n    vertical-align: bottom;\n    outline: none;\n    position: relative;\n    user-select: none;\n    -webkit-user-select: none;\n    display: inline-block;\n    box-sizing: border-box;\n    padding-left: 14px;\n    padding-right: 14px;\n    white-space: nowrap;\n    transition:\n      background-color .3s var(--n-bezier),\n      opacity .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n    background: var(--n-button-color);\n    color: var(--n-button-text-color);\n    border-top: 1px solid var(--n-button-border-color);\n    border-bottom: 1px solid var(--n-button-border-color);\n  `, [\n    cB('radio-input', `\n      pointer-events: none;\n      position: absolute;\n      border: 0;\n      border-radius: inherit;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n      opacity: 0;\n      z-index: 1;\n    `),\n    cE('state-border', `\n      z-index: 1;\n      pointer-events: none;\n      position: absolute;\n      box-shadow: var(--n-button-box-shadow);\n      transition: box-shadow .3s var(--n-bezier);\n      left: -1px;\n      bottom: -1px;\n      right: -1px;\n      top: -1px;\n    `),\n    c('&:first-child', `\n      border-top-left-radius: var(--n-button-border-radius);\n      border-bottom-left-radius: var(--n-button-border-radius);\n      border-left: 1px solid var(--n-button-border-color);\n    `, [\n      cE('state-border', `\n        border-top-left-radius: var(--n-button-border-radius);\n        border-bottom-left-radius: var(--n-button-border-radius);\n      `)\n    ]),\n    c('&:last-child', `\n      border-top-right-radius: var(--n-button-border-radius);\n      border-bottom-right-radius: var(--n-button-border-radius);\n      border-right: 1px solid var(--n-button-border-color);\n    `, [\n      cE('state-border', `\n        border-top-right-radius: var(--n-button-border-radius);\n        border-bottom-right-radius: var(--n-button-border-radius);\n      `)\n    ]),\n    cNotM('disabled', `\n      cursor: pointer;\n    `, [\n      c('&:hover', [\n        cE('state-border', `\n          transition: box-shadow .3s var(--n-bezier);\n          box-shadow: var(--n-button-box-shadow-hover);\n        `),\n        cNotM('checked', {\n          color: 'var(--n-button-text-color-hover)'\n        })\n      ]),\n      cM('focus', [\n        c('&:not(:active)', [\n          cE('state-border', {\n            boxShadow: 'var(--n-button-box-shadow-focus)'\n          })\n        ])\n      ])\n    ]),\n    cM('checked', `\n      background: var(--n-button-color-active);\n      color: var(--n-button-text-color-active);\n      border-color: var(--n-button-border-color-active);\n    `),\n    cM('disabled', `\n      cursor: not-allowed;\n      opacity: var(--n-opacity-disabled);\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, VNode, VNodeChild } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { RadioTheme, RadioThemeOverrides } from '../styles'\nimport type { OnUpdateValue, OnUpdateValueImpl } from './interface'\nimport type { RadioBaseProps } from './use-radio'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, provide, ref, toRef } from 'vue'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, createKey, flatten, getSlot, warn } from '../../_utils'\nimport { radioLight } from '../styles'\nimport NRadio from './Radio'\nimport style from './styles/radio-group.cssr'\nimport { radioGroupInjectionKey } from './use-radio'\n\nfunction mapSlot(\n  defaultSlot: VNode[],\n  value: string | number | boolean | null,\n  clsPrefix: string\n): {\n  children: VNodeChild[]\n  isButtonGroup: boolean\n} {\n  const children: VNode[] = []\n  let isButtonGroup = false\n  for (let i = 0; i < defaultSlot.length; ++i) {\n    const wrappedInstance = defaultSlot[i]\n    const name = (wrappedInstance.type as any)?.name\n    if (name === 'RadioButton') {\n      isButtonGroup = true\n    }\n    if (__DEV__ && isButtonGroup && name !== 'RadioButton') {\n      warn(\n        'radio-group',\n        '`n-radio-group` in button mode only takes `n-radio-button` as children.'\n      )\n      continue\n    }\n    const instanceProps: RadioBaseProps = wrappedInstance.props as any\n    if (name !== 'RadioButton') {\n      children.push(wrappedInstance)\n      continue\n    }\n    if (i === 0) {\n      children.push(wrappedInstance)\n    }\n    else {\n      const lastInstanceProps: RadioBaseProps = children[children.length - 1]\n        .props as any\n      const lastInstanceChecked = value === lastInstanceProps.value\n      const lastInstanceDisabled: boolean | undefined\n        = lastInstanceProps.disabled\n      const currentInstanceChecked = value === instanceProps.value\n      const currentInstanceDisabled = instanceProps.disabled\n      /**\n       * Priority of button splitor:\n       * !disabled  checked >\n       *  disabled  checked >\n       * !disabled !checked >\n       *  disabled !checked\n       */\n      const lastInstancePriority: number\n        = (lastInstanceChecked ? 2 : 0) + (!lastInstanceDisabled ? 1 : 0)\n      const currentInstancePriority\n        = (currentInstanceChecked ? 2 : 0) + (!currentInstanceDisabled ? 1 : 0)\n      const lastInstanceClass = {\n        [`${clsPrefix}-radio-group__splitor--disabled`]: lastInstanceDisabled,\n        [`${clsPrefix}-radio-group__splitor--checked`]: lastInstanceChecked\n      }\n      const currentInstanceClass = {\n        [`${clsPrefix}-radio-group__splitor--disabled`]:\n          currentInstanceDisabled,\n        [`${clsPrefix}-radio-group__splitor--checked`]: currentInstanceChecked\n      }\n      const splitorClass\n        = lastInstancePriority < currentInstancePriority\n          ? currentInstanceClass\n          : lastInstanceClass\n      children.push(\n        <div class={[`${clsPrefix}-radio-group__splitor`, splitorClass]} />,\n        wrappedInstance\n      )\n    }\n  }\n  return {\n    children,\n    isButtonGroup\n  }\n}\n\nexport interface RadioGroupOption {\n  label?: string\n  value?: string | number | boolean\n  disabled?: boolean\n  [key: string]: unknown\n}\n\nexport const radioGroupProps = {\n  ...(useTheme.props as ThemeProps<RadioTheme, RadioThemeOverrides>),\n  name: String,\n  options: Array as PropType<RadioGroupOption[]>,\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  valueField: {\n    type: String,\n    default: 'value'\n  },\n  value: [String, Number, Boolean] as PropType<\n    string | number | boolean | null\n  >,\n  defaultValue: {\n    type: [String, Number, Boolean] as PropType<\n      string | number | boolean | null\n    >,\n    default: null\n  },\n  size: String as PropType<'small' | 'medium' | 'large'>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type RadioGroupProps = ExtractPublicPropTypes<typeof radioGroupProps>\n\nexport default defineComponent({\n  name: 'RadioGroup',\n  props: radioGroupProps,\n  setup(props) {\n    const selfElRef = ref<HTMLDivElement | null>(null)\n    const {\n      mergedSizeRef,\n      mergedDisabledRef,\n      nTriggerFormChange,\n      nTriggerFormInput,\n      nTriggerFormBlur,\n      nTriggerFormFocus\n    } = useFormItem(props)\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Radio',\n      '-radio-group',\n      style,\n      radioLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    function doUpdateValue(value: string | number | boolean): void {\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormChange()\n      nTriggerFormInput()\n    }\n    function handleFocusin(e: FocusEvent): void {\n      const { value: selfEl } = selfElRef\n      if (!selfEl)\n        return\n      if (selfEl.contains(e.relatedTarget as HTMLElement | null))\n        return\n      nTriggerFormFocus()\n    }\n    function handleFocusout(e: FocusEvent): void {\n      const { value: selfEl } = selfElRef\n      if (!selfEl)\n        return\n      if (selfEl.contains(e.relatedTarget as HTMLElement | null))\n        return\n      nTriggerFormBlur()\n    }\n    provide(radioGroupInjectionKey, {\n      mergedClsPrefixRef,\n      nameRef: toRef(props, 'name'),\n      valueRef: mergedValueRef,\n      disabledRef: mergedDisabledRef,\n      mergedSizeRef,\n      doUpdateValue\n    })\n    const rtlEnabledRef = useRtl('Radio', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          buttonBorderColor,\n          buttonBorderColorActive,\n          buttonBorderRadius,\n          buttonBoxShadow,\n          buttonBoxShadowFocus,\n          buttonBoxShadowHover,\n          buttonColor,\n          buttonColorActive,\n          buttonTextColor,\n          buttonTextColorActive,\n          buttonTextColorHover,\n          opacityDisabled,\n          [createKey('buttonHeight', size)]: height,\n          [createKey('fontSize', size)]: fontSize\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-button-border-color': buttonBorderColor,\n        '--n-button-border-color-active': buttonBorderColorActive,\n        '--n-button-border-radius': buttonBorderRadius,\n        '--n-button-box-shadow': buttonBoxShadow,\n        '--n-button-box-shadow-focus': buttonBoxShadowFocus,\n        '--n-button-box-shadow-hover': buttonBoxShadowHover,\n        '--n-button-color': buttonColor,\n        '--n-button-color-active': buttonColorActive,\n        '--n-button-text-color': buttonTextColor,\n        '--n-button-text-color-hover': buttonTextColorHover,\n        '--n-button-text-color-active': buttonTextColorActive,\n        '--n-height': height,\n        '--n-opacity-disabled': opacityDisabled\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'radio-group',\n          computed(() => mergedSizeRef.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      selfElRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedValue: mergedValueRef,\n      handleFocusout,\n      handleFocusin,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedValue, mergedClsPrefix, handleFocusin, handleFocusout } = this\n    const { options, labelField, valueField } = this.$props\n    const slotChildren = options\n      ? options.map((option) => {\n          const value = option[valueField] as string | number | boolean\n          return (\n            <NRadio\n              key={typeof value === 'boolean' ? `__n_${value}` : value}\n              value={value}\n              disabled={option.disabled}\n              label={option[labelField] as string | undefined}\n            />\n          )\n        })\n      : flatten(getSlot(this))\n    const { children, isButtonGroup } = mapSlot(\n      slotChildren,\n      mergedValue,\n      mergedClsPrefix\n    )\n    this.onRender?.()\n    return (\n      <div\n        onFocusin={handleFocusin}\n        onFocusout={handleFocusout}\n        ref=\"selfElRef\"\n        class={[\n          `${mergedClsPrefix}-radio-group`,\n          this.rtlEnabled && `${mergedClsPrefix}-radio-group--rtl`,\n          this.themeClass,\n          isButtonGroup && `${mergedClsPrefix}-radio-group--button-group`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {children}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { RowKey } from '../interface'\nimport { defineComponent, h, inject } from 'vue'\nimport { NRadio } from '../../../radio'\nimport { dataTableInjectionKey } from '../interface'\n\n// Extract the radio to avoid useless rendering in table body\nexport default defineComponent({\n  name: 'DataTableBodyRadio',\n  props: {\n    rowKey: {\n      type: [String, Number] as PropType<RowKey>,\n      required: true\n    },\n    disabled: {\n      type: Boolean,\n      required: true\n    },\n    onUpdateChecked: {\n      type: Function as PropType<(checked: boolean) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const { mergedCheckedRowKeySetRef, componentId } = inject(\n      dataTableInjectionKey\n    )!\n    return () => {\n      const { rowKey } = props\n      return (\n        <NRadio\n          name={componentId}\n          disabled={props.disabled}\n          checked={mergedCheckedRowKeySetRef.value.has(rowKey)}\n          onUpdateChecked={props.onUpdateChecked}\n        />\n      )\n    }\n  }\n})\n","import type { SlotsType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { PopoverInst, PopoverSlots } from '../../popover'\nimport type { TooltipTheme, TooltipThemeOverrides } from '../styles'\n// Tooltip: popover wearing waistcoat\nimport { computed, defineComponent, h, ref } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { NPopover } from '../../popover'\nimport { popoverBaseProps } from '../../popover/src/Popover'\nimport { tooltipLight } from '../styles'\n\nexport type TooltipInst = PopoverInst\n\nexport const tooltipProps = {\n  ...popoverBaseProps,\n  ...(useTheme.props as ThemeProps<TooltipTheme, TooltipThemeOverrides>)\n}\n\nexport type TooltipProps = ExtractPublicPropTypes<typeof tooltipProps>\n\nexport interface TooltipSlots extends PopoverSlots {}\n\nexport default defineComponent({\n  name: 'Tooltip',\n  props: tooltipProps,\n  slots: Object as SlotsType<TooltipSlots>,\n  __popover__: true,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Tooltip',\n      '-tooltip',\n      undefined,\n      tooltipLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const popoverRef = ref<PopoverInst | null>(null)\n    const tooltipExposedMethod: TooltipInst = {\n      syncPosition() {\n        popoverRef.value!.syncPosition()\n      },\n      setShow(show: boolean) {\n        popoverRef.value!.setShow(show)\n      }\n    }\n    return {\n      ...tooltipExposedMethod,\n      // reduce dts: string ref only, type unused in render\n      popoverRef: popoverRef as unknown,\n      mergedTheme: themeRef,\n      popoverThemeOverrides: computed(() => {\n        return themeRef.value.self\n      })\n    }\n  },\n  render() {\n    const { mergedTheme, internalExtraClass } = this\n    return h(\n      NPopover,\n      {\n        ...this.$props,\n        theme: mergedTheme.peers.Popover,\n        themeOverrides: mergedTheme.peerOverrides.Popover,\n        builtinThemeOverrides: this.popoverThemeOverrides,\n        internalExtraClass: internalExtraClass.concat('tooltip'),\n        ref: 'popoverRef'\n      },\n      this.$slots\n    )\n  }\n})\n","import { cB, cM, cNotM } from '../../../_utils/cssr'\n\nexport default cB('ellipsis', {\n  overflow: 'hidden'\n}, [\n  cNotM('line-clamp', `\n    white-space: nowrap;\n    display: inline-block;\n    vertical-align: bottom;\n    max-width: 100%;\n  `),\n  cM('line-clamp', `\n    display: -webkit-inline-box;\n    -webkit-box-orient: vertical;\n  `),\n  cM('cursor-pointer', `\n    cursor: pointer;\n  `)\n])\n","import type { PropType, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { PopoverProps } from '../../popover/src/Popover'\nimport type { TooltipInst } from '../../tooltip/src/Tooltip'\nimport type { EllipsisTheme, EllipsisThemeOverrides } from '../styles'\nimport {\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  onDeactivated,\n  ref\n} from 'vue'\nimport { useTheme } from '../../_mixins'\nimport { useMergedClsPrefix } from '../../_mixins/use-config'\nimport { NTooltip } from '../../tooltip'\nimport { ellipsisLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport function createLineClampClass(clsPrefix: string): string {\n  return `${clsPrefix}-ellipsis--line-clamp`\n}\n\nexport function createCursorClass(clsPrefix: string, cursor: string): string {\n  return `${clsPrefix}-ellipsis--cursor-${cursor}`\n}\n\nexport const ellipsisProps = {\n  ...(useTheme.props as ThemeProps<EllipsisTheme, EllipsisThemeOverrides>),\n  expandTrigger: String as PropType<'click'>,\n  lineClamp: [Number, String] as PropType<string | number>,\n  tooltip: {\n    type: [Boolean, Object] as PropType<PopoverProps | boolean>,\n    default: true\n  }\n} as const\n\nexport type EllipsisProps = ExtractPublicPropTypes<typeof ellipsisProps>\n\nexport interface EllipsisSlots {\n  default?: () => VNode[]\n  tooltip?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Ellipsis',\n  inheritAttrs: false,\n  props: ellipsisProps,\n  slots: Object as SlotsType<EllipsisSlots>,\n  setup(props, { slots, attrs }) {\n    const mergedClsPrefixRef = useMergedClsPrefix()\n    const mergedTheme = useTheme(\n      'Ellipsis',\n      '-ellipsis',\n      style,\n      ellipsisLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const triggerRef = ref<HTMLElement | null>(null)\n    const triggerInnerRef = ref<HTMLElement | null>(null)\n    const tooltipRef = ref<TooltipInst | null>(null)\n    const expandedRef = ref(false)\n    const ellipsisStyleRef = computed(() => {\n      const { lineClamp } = props\n      const { value: expanded } = expandedRef\n      if (lineClamp !== undefined) {\n        return {\n          textOverflow: '',\n          '-webkit-line-clamp': expanded ? '' : lineClamp\n        }\n      }\n      else {\n        return {\n          textOverflow: expanded ? '' : 'ellipsis',\n          '-webkit-line-clamp': ''\n        }\n      }\n    })\n    function getTooltipDisabled(): boolean {\n      let tooltipDisabled = false\n      const { value: expanded } = expandedRef\n      if (expanded)\n        return true\n      const { value: trigger } = triggerRef\n      if (trigger) {\n        const { lineClamp } = props\n        // we need to apply style here, since the dom may be updated in\n        // nextTick, measure dom size will derive wrong result\n        syncEllipsisStyle(trigger)\n        if (lineClamp !== undefined) {\n          tooltipDisabled = trigger.scrollHeight <= trigger.offsetHeight\n        }\n        else {\n          const { value: triggerInner } = triggerInnerRef\n          if (triggerInner) {\n            tooltipDisabled\n              = triggerInner.getBoundingClientRect().width\n                <= trigger.getBoundingClientRect().width\n          }\n        }\n        syncCursorStyle(trigger, tooltipDisabled)\n      }\n      return tooltipDisabled\n    }\n    // HACK: restore it after vue-jsx-vapor can handle it correctly\n    function handleClick(): void {\n      if (props.expandTrigger !== 'click')\n        return\n      const { value: expanded } = expandedRef\n      if (expanded) {\n        tooltipRef.value?.setShow(false)\n      }\n      expandedRef.value = !expanded\n    }\n    onDeactivated(() => {\n      if (props.tooltip) {\n        tooltipRef.value?.setShow(false)\n      }\n    })\n    const renderTrigger = (): JSX.Element => (\n      <span\n        {...mergeProps(attrs, {\n          class: [\n            `${mergedClsPrefixRef.value}-ellipsis`,\n            props.lineClamp !== undefined\n              ? createLineClampClass(mergedClsPrefixRef.value)\n              : undefined,\n            props.expandTrigger === 'click'\n              ? createCursorClass(mergedClsPrefixRef.value, 'pointer')\n              : undefined\n          ],\n          style: ellipsisStyleRef.value\n        })}\n        ref=\"triggerRef\"\n        onClick={handleClick}\n        onMouseenter={\n          // get tooltip disabled will derive cursor style\n          props.expandTrigger === 'click' ? getTooltipDisabled : undefined\n        }\n      >\n        {props.lineClamp ? (\n          slots.default?.()\n        ) : (\n          <span ref=\"triggerInnerRef\">{slots.default?.()}</span>\n        )}\n      </span>\n    )\n    function syncEllipsisStyle(trigger: HTMLElement): void {\n      if (!trigger)\n        return\n      const latestStyle = ellipsisStyleRef.value\n      const lineClampClass = createLineClampClass(mergedClsPrefixRef.value)\n      if (props.lineClamp !== undefined) {\n        syncTriggerClass(trigger, lineClampClass, 'add')\n      }\n      else {\n        syncTriggerClass(trigger, lineClampClass, 'remove')\n      }\n      for (const key in latestStyle) {\n        // guard can make it a little faster\n        if ((trigger.style as any)[key] !== (latestStyle as any)[key]) {\n          ;(trigger.style as any)[key] = (latestStyle as any)[key]\n        }\n      }\n    }\n    function syncCursorStyle(\n      trigger: HTMLElement,\n      tooltipDisabled: boolean\n    ): void {\n      const cursorClass = createCursorClass(mergedClsPrefixRef.value, 'pointer')\n      if (props.expandTrigger === 'click' && !tooltipDisabled) {\n        syncTriggerClass(trigger, cursorClass, 'add')\n      }\n      else {\n        syncTriggerClass(trigger, cursorClass, 'remove')\n      }\n    }\n    function syncTriggerClass(\n      trigger: HTMLElement,\n      styleClass: string,\n      action: 'add' | 'remove'\n    ): void {\n      if (action === 'add') {\n        if (!trigger.classList.contains(styleClass)) {\n          trigger.classList.add(styleClass)\n        }\n      }\n      else {\n        if (trigger.classList.contains(styleClass)) {\n          trigger.classList.remove(styleClass)\n        }\n      }\n    }\n    return {\n      mergedTheme,\n      triggerRef,\n      triggerInnerRef,\n      // reduce dts: string ref only, type unused in render\n      tooltipRef: tooltipRef as unknown,\n      renderTrigger,\n      getTooltipDisabled\n    }\n  },\n  render() {\n    const { tooltip, renderTrigger, $slots } = this\n    if (tooltip) {\n      const { mergedTheme } = this\n      return (\n        <NTooltip\n          ref=\"tooltipRef\"\n          placement=\"top\"\n          {...(tooltip as PopoverProps)}\n          getDisabled={this.getTooltipDisabled}\n          theme={mergedTheme.peers.Tooltip}\n          themeOverrides={mergedTheme.peerOverrides.Tooltip}\n        >\n          {{\n            trigger: renderTrigger,\n            default: $slots.tooltip ?? $slots.default\n          }}\n        </NTooltip>\n      )\n    }\n    else {\n      return renderTrigger()\n    }\n  }\n})\n","import { defineComponent, h, mergeProps, ref } from 'vue'\nimport { useStyle } from '../../_mixins'\nimport { useMergedClsPrefix } from '../../_mixins/use-config'\nimport Ellipsis, {\n  createCursorClass,\n  createLineClampClass,\n  ellipsisProps\n} from './Ellipsis'\nimport style from './styles/index.cssr'\n\nexport const NPerformantEllipsis = defineComponent({\n  name: 'PerformantEllipsis',\n  props: ellipsisProps,\n  inheritAttrs: false,\n  setup(props, { attrs, slots }) {\n    const mouseEnteredRef = ref(false)\n    const mergedClsPrefixRef = useMergedClsPrefix()\n    useStyle('-ellipsis', style, mergedClsPrefixRef)\n    // Modified from Ellipsis.tsx\n    const renderTrigger = (): JSX.Element => {\n      const { lineClamp } = props\n      const mergedClsPrefix = mergedClsPrefixRef.value\n      return (\n        <span\n          {...mergeProps(attrs, {\n            class: [\n              `${mergedClsPrefix}-ellipsis`,\n              lineClamp !== undefined\n                ? createLineClampClass(mergedClsPrefix)\n                : undefined,\n              props.expandTrigger === 'click'\n                ? createCursorClass(mergedClsPrefix, 'pointer')\n                : undefined\n            ],\n            style:\n              lineClamp === undefined\n                ? {\n                    textOverflow: 'ellipsis'\n                  }\n                : {\n                    '-webkit-line-clamp': lineClamp\n                  }\n          })}\n          onMouseenter={() => {\n            mouseEnteredRef.value = true\n          }}\n        >\n          {lineClamp ? slots.default?.() : <span>{slots.default?.()}</span>}\n        </span>\n      )\n    }\n    return {\n      mouseEntered: mouseEnteredRef,\n      renderTrigger\n    }\n  },\n  render() {\n    if (this.mouseEntered) {\n      return h(Ellipsis, mergeProps({}, this.$attrs, this.$props), this.$slots)\n    }\n    else {\n      return this.renderTrigger()\n    }\n  }\n})\n","import type { PropType, VNodeChild } from 'vue'\nimport type { MergedTheme } from '../../../_mixins'\nimport type { DataTableTheme } from '../../styles'\nimport type {\n  InternalRowData,\n  SummaryCell,\n  TableBaseColumn\n} from '../interface'\nimport { get } from 'lodash-es'\nimport { defineComponent, h } from 'vue'\nimport NEllipsis from '../../../ellipsis/src/Ellipsis'\nimport { NPerformantEllipsis } from '../../../ellipsis/src/PerformantEllipsis'\n\nexport default defineComponent({\n  name: 'DataTableCell',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    row: {\n      type: Object as PropType<InternalRowData>,\n      required: true\n    },\n    index: {\n      type: Number,\n      required: true\n    },\n    column: {\n      type: Object as PropType<TableBaseColumn>,\n      required: true\n    },\n    isSummary: Boolean,\n    mergedTheme: {\n      type: Object as PropType<MergedTheme<DataTableTheme>>,\n      required: true\n    },\n    renderCell: Function as PropType<\n      (value: any, rowData: object, column: any) => VNodeChild\n    >\n  },\n  render() {\n    const { isSummary, column, row, renderCell } = this\n    let cell: VNodeChild\n    const { render, key, ellipsis } = column\n    if (render && !isSummary) {\n      cell = render(row, this.index)\n    }\n    else {\n      if (isSummary) {\n        cell = (row[key] as SummaryCell)?.value\n      }\n      else {\n        cell = renderCell\n          ? renderCell(get(row, key), row, column)\n          : get(row, key)\n      }\n    }\n    if (ellipsis) {\n      if (typeof ellipsis === 'object') {\n        const { mergedTheme } = this\n        if (column.ellipsisComponent === 'performant-ellipsis') {\n          return (\n            <NPerformantEllipsis\n              {...ellipsis}\n              theme={mergedTheme.peers.Ellipsis}\n              themeOverrides={mergedTheme.peerOverrides.Ellipsis}\n            >\n              {{ default: () => cell }}\n            </NPerformantEllipsis>\n          )\n        }\n        return (\n          <NEllipsis\n            {...ellipsis}\n            theme={mergedTheme.peers.Ellipsis}\n            themeOverrides={mergedTheme.peerOverrides.Ellipsis}\n          >\n            {{ default: () => cell }}\n          </NEllipsis>\n        )\n      }\n      else {\n        return (\n          <span class={`${this.clsPrefix}-data-table-td__ellipsis`}>\n            {cell}\n          </span>\n        )\n      }\n    }\n    return cell\n  }\n})\n","import type { PropType } from 'vue'\nimport type { RenderExpandIcon, RowData } from '../interface'\nimport { defineComponent, h } from 'vue'\nimport {\n  NBaseIcon,\n  NBaseLoading,\n  NIconSwitchTransition\n} from '../../../_internal'\nimport { ChevronRightIcon } from '../../../_internal/icons'\n\nexport default defineComponent({\n  name: 'DataTableExpandTrigger',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    expanded: Boolean,\n    loading: Boolean,\n    onClick: {\n      type: Function as PropType<() => void>,\n      required: true\n    },\n    renderExpandIcon: {\n      type: Function as PropType<RenderExpandIcon>\n    },\n    rowData: {\n      type: Object as PropType<RowData>,\n      required: true\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div\n        class={[\n          `${clsPrefix}-data-table-expand-trigger`,\n          this.expanded && `${clsPrefix}-data-table-expand-trigger--expanded`\n        ]}\n        onClick={this.onClick}\n        onMousedown={(e) => {\n          e.preventDefault()\n        }}\n      >\n        <NIconSwitchTransition>\n          {{\n            default: () => {\n              return this.loading ? (\n                <NBaseLoading\n                  key=\"loading\"\n                  clsPrefix={this.clsPrefix}\n                  radius={85}\n                  strokeWidth={15}\n                  scale={0.88}\n                />\n              ) : this.renderExpandIcon ? (\n                this.renderExpandIcon({\n                  expanded: this.expanded,\n                  rowData: this.rowData\n                })\n              ) : (\n                <NBaseIcon clsPrefix={clsPrefix} key=\"base-icon\">\n                  {{\n                    default: () => <ChevronRightIcon />\n                  }}\n                </NBaseIcon>\n              )\n            }\n          }}\n        </NIconSwitchTransition>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type {\n  FilterOption,\n  FilterOptionValue,\n  OnFilterMenuChange,\n  OnFilterMenuChangeImpl,\n  TableBaseColumn\n} from '../interface'\nimport { computed, defineComponent, h, inject, ref } from 'vue'\nimport { NScrollbar } from '../../../_internal'\nimport { useConfig, useRtl } from '../../../_mixins'\nimport { NButton } from '../../../button'\nimport { NCheckbox, NCheckboxGroup } from '../../../checkbox'\nimport { NRadio, NRadioGroup } from '../../../radio'\nimport { dataTableInjectionKey } from '../interface'\nimport { shouldUseArrayInSingleMode } from '../utils'\n\nexport default defineComponent({\n  name: 'DataTableFilterMenu',\n  props: {\n    column: {\n      type: Object as PropType<TableBaseColumn>,\n      required: true\n    },\n    radioGroupName: {\n      type: String,\n      required: true\n    },\n    multiple: {\n      type: Boolean,\n      required: true\n    },\n    value: {\n      type: [Array, String, Number] as PropType<\n        FilterOptionValue | FilterOptionValue[] | null\n      >,\n      default: null\n    },\n    options: {\n      type: Array as PropType<FilterOption[]>,\n      required: true\n    },\n    onConfirm: {\n      type: Function as PropType<() => void>,\n      required: true\n    },\n    onClear: {\n      type: Function as PropType<() => void>,\n      required: true\n    },\n    onChange: {\n      type: Function as PropType<OnFilterMenuChange>,\n      required: true\n    }\n  },\n  setup(props) {\n    const { mergedClsPrefixRef: mergedClsPrefixRefRtl, mergedRtlRef }\n      = useConfig(props)\n    const rtlEnabledRef = useRtl(\n      'DataTable',\n      mergedRtlRef,\n      mergedClsPrefixRefRtl\n    )\n\n    const { mergedClsPrefixRef, mergedThemeRef, localeRef } = inject(\n      dataTableInjectionKey\n    )!\n    // to be compared with changed value\n    // const initialValueRef = ref(props.value)\n    const temporalValueRef = ref(props.value)\n    const checkboxGroupValueRef = computed(() => {\n      const { value: temporalValue } = temporalValueRef\n      if (!Array.isArray(temporalValue))\n        return null\n      return temporalValue\n    })\n    const radioGroupValueRef = computed(() => {\n      const { value: temporalValue } = temporalValueRef\n      if (shouldUseArrayInSingleMode(props.column)) {\n        return (\n          (Array.isArray(temporalValue)\n            && temporalValue.length\n            && temporalValue[0])\n          || null\n        )\n      }\n      if (!Array.isArray(temporalValue))\n        return temporalValue\n      return null\n    })\n    function doChange(\n      value: FilterOptionValue | FilterOptionValue[] | null\n    ): void {\n      // May need to check if equal\n      ;(props.onChange as OnFilterMenuChangeImpl)(value)\n    }\n    function handleChange(\n      value: FilterOptionValue | FilterOptionValue[]\n    ): void {\n      if (props.multiple && Array.isArray(value)) {\n        temporalValueRef.value = value\n      }\n      else if (\n        shouldUseArrayInSingleMode(props.column)\n        && !Array.isArray(value)\n      ) {\n        /** this branch is for compatibility */\n        temporalValueRef.value = [value]\n      }\n      else {\n        temporalValueRef.value = value\n      }\n    }\n    function handleConfirmClick(): void {\n      doChange(temporalValueRef.value)\n      props.onConfirm()\n    }\n    function handleClearClick(): void {\n      if (props.multiple || shouldUseArrayInSingleMode(props.column)) {\n        doChange([])\n      }\n      else {\n        doChange(null)\n      }\n      props.onClear()\n    }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedTheme: mergedThemeRef,\n      locale: localeRef,\n      checkboxGroupValue: checkboxGroupValueRef,\n      radioGroupValue: radioGroupValueRef,\n      handleChange,\n      handleConfirmClick,\n      handleClearClick\n    }\n  },\n  render() {\n    const { mergedTheme, locale, mergedClsPrefix } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-data-table-filter-menu`,\n          this.rtlEnabled && `${mergedClsPrefix}-data-table-filter-menu--rtl`\n        ]}\n      >\n        <NScrollbar>\n          {{\n            default: () => {\n              const { checkboxGroupValue, handleChange } = this\n              return this.multiple ? (\n                <NCheckboxGroup\n                  value={checkboxGroupValue}\n                  class={`${mergedClsPrefix}-data-table-filter-menu__group`}\n                  onUpdateValue={handleChange}\n                >\n                  {{\n                    default: () =>\n                      this.options.map((option) => {\n                        return (\n                          <NCheckbox\n                            key={option.value}\n                            theme={mergedTheme.peers.Checkbox}\n                            themeOverrides={mergedTheme.peerOverrides.Checkbox}\n                            value={option.value}\n                          >\n                            {{ default: () => option.label }}\n                          </NCheckbox>\n                        )\n                      })\n                  }}\n                </NCheckboxGroup>\n              ) : (\n                <NRadioGroup\n                  name={this.radioGroupName}\n                  class={`${mergedClsPrefix}-data-table-filter-menu__group`}\n                  value={this.radioGroupValue}\n                  onUpdateValue={this.handleChange}\n                >\n                  {{\n                    default: () =>\n                      this.options.map(option => (\n                        <NRadio\n                          key={option.value}\n                          value={option.value}\n                          theme={mergedTheme.peers.Radio}\n                          themeOverrides={mergedTheme.peerOverrides.Radio}\n                        >\n                          {{ default: () => option.label }}\n                        </NRadio>\n                      ))\n                  }}\n                </NRadioGroup>\n              )\n            }\n          }}\n        </NScrollbar>\n        <div class={`${mergedClsPrefix}-data-table-filter-menu__action`}>\n          <NButton\n            size=\"tiny\"\n            theme={mergedTheme.peers.Button}\n            themeOverrides={mergedTheme.peerOverrides.Button}\n            onClick={this.handleClearClick}\n          >\n            {{ default: () => locale.clear }}\n          </NButton>\n          <NButton\n            theme={mergedTheme.peers.Button}\n            themeOverrides={mergedTheme.peerOverrides.Button}\n            type=\"primary\"\n            size=\"tiny\"\n            onClick={this.handleConfirmClick}\n          >\n            {{ default: () => locale.confirm }}\n          </NButton>\n        </div>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { RenderFilter } from '../interface'\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n  name: 'DataTableRenderFilter',\n  props: {\n    render: {\n      type: Function as PropType<RenderFilter>,\n      required: true\n    },\n    active: Boolean,\n    show: Boolean\n  },\n  render() {\n    const { render, active, show } = this\n    return render({\n      active,\n      show\n    })\n  }\n})\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type {\n  ColumnKey,\n  FilterOption,\n  FilterOptionValue,\n  FilterState,\n  TableBaseColumn\n} from '../interface'\nimport { computed, defineComponent, h, inject, ref } from 'vue'\nimport { NBaseIcon } from '../../../_internal'\nimport { FilterIcon } from '../../../_internal/icons'\nimport { useConfig } from '../../../_mixins'\nimport { NPopover } from '../../../popover'\nimport { dataTableInjectionKey } from '../interface'\nimport NDataTableFilterMenu from './FilterMenu'\nimport RenderFilter from './RenderFilter'\n\nfunction createFilterState(\n  currentFilterState: FilterState,\n  columnKey: ColumnKey,\n  mergedFilterValue: FilterOptionValue | FilterOptionValue[] | null\n): FilterState {\n  const nextFilterState = Object.assign({}, currentFilterState)\n  nextFilterState[columnKey] = mergedFilterValue\n  return nextFilterState\n}\n\nexport default defineComponent({\n  name: 'DataTableFilterButton',\n  props: {\n    column: {\n      type: Object as PropType<TableBaseColumn>,\n      required: true\n    },\n    options: {\n      type: Array as PropType<FilterOption[]>,\n      default: () => []\n    }\n  },\n  setup(props) {\n    const { mergedComponentPropsRef } = useConfig()\n    const {\n      mergedThemeRef,\n      mergedClsPrefixRef,\n      mergedFilterStateRef,\n      filterMenuCssVarsRef,\n      paginationBehaviorOnFilterRef,\n      doUpdatePage,\n      doUpdateFilters,\n      filterIconPopoverPropsRef\n    } = inject(dataTableInjectionKey)!\n    const showPopoverRef = ref(false)\n    const filterStateRef = mergedFilterStateRef\n    const filterMultipleRef = computed(() => {\n      return props.column.filterMultiple !== false\n    })\n    const mergedFilterValueRef = computed(() => {\n      const filterValue = filterStateRef.value[props.column.key]\n      if (filterValue === undefined) {\n        const { value: multiple } = filterMultipleRef\n        if (multiple)\n          return []\n        else return null\n      }\n      return filterValue\n    })\n    const activeRef = computed(() => {\n      const { value: filterValue } = mergedFilterValueRef\n      if (Array.isArray(filterValue)) {\n        return filterValue.length > 0\n      }\n      return filterValue !== null\n    })\n    const mergedRenderFilterRef = computed(() => {\n      return (\n        mergedComponentPropsRef?.value?.DataTable?.renderFilter\n        || props.column.renderFilter\n      )\n    })\n    function handleFilterChange(\n      mergedFilterValue: FilterOptionValue | FilterOptionValue[] | null\n    ): void {\n      const nextFilterState = createFilterState(\n        filterStateRef.value,\n        props.column.key,\n        mergedFilterValue\n      )\n      doUpdateFilters(nextFilterState, props.column)\n      if (paginationBehaviorOnFilterRef.value === 'first') {\n        doUpdatePage(1)\n      }\n    }\n    function handleFilterMenuCancel(): void {\n      showPopoverRef.value = false\n    }\n    function handleFilterMenuConfirm(): void {\n      showPopoverRef.value = false\n    }\n    return {\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      active: activeRef,\n      showPopover: showPopoverRef,\n      mergedRenderFilter: mergedRenderFilterRef,\n      filterIconPopoverProps: filterIconPopoverPropsRef,\n      filterMultiple: filterMultipleRef,\n      mergedFilterValue: mergedFilterValueRef,\n      filterMenuCssVars: filterMenuCssVarsRef as Ref<CSSProperties>,\n      handleFilterChange,\n      handleFilterMenuConfirm,\n      handleFilterMenuCancel\n    }\n  },\n  render() {\n    const {\n      mergedTheme,\n      mergedClsPrefix,\n      handleFilterMenuCancel,\n      filterIconPopoverProps\n    } = this\n    return (\n      <NPopover\n        show={this.showPopover}\n        onUpdateShow={v => (this.showPopover = v)}\n        trigger=\"click\"\n        theme={mergedTheme.peers.Popover}\n        themeOverrides={mergedTheme.peerOverrides.Popover}\n        placement=\"bottom\"\n        {...filterIconPopoverProps}\n        style={{ padding: 0 }}\n      >\n        {{\n          trigger: () => {\n            const { mergedRenderFilter } = this\n            if (mergedRenderFilter) {\n              return (\n                <RenderFilter\n                  data-data-table-filter\n                  render={mergedRenderFilter}\n                  active={this.active}\n                  show={this.showPopover}\n                />\n              )\n            }\n            const { renderFilterIcon } = this.column\n            return (\n              <div\n                data-data-table-filter\n                class={[\n                  `${mergedClsPrefix}-data-table-filter`,\n                  {\n                    [`${mergedClsPrefix}-data-table-filter--active`]:\n                      this.active,\n                    [`${mergedClsPrefix}-data-table-filter--show`]:\n                      this.showPopover\n                  }\n                ]}\n              >\n                {renderFilterIcon ? (\n                  renderFilterIcon({\n                    active: this.active,\n                    show: this.showPopover\n                  })\n                ) : (\n                  <NBaseIcon clsPrefix={mergedClsPrefix}>\n                    {{ default: () => <FilterIcon /> }}\n                  </NBaseIcon>\n                )}\n              </div>\n            )\n          },\n          default: () => {\n            const { renderFilterMenu } = this.column\n            return renderFilterMenu ? (\n              renderFilterMenu({ hide: handleFilterMenuCancel })\n            ) : (\n              <NDataTableFilterMenu\n                style={this.filterMenuCssVars}\n                radioGroupName={String(this.column.key)}\n                multiple={this.filterMultiple}\n                value={this.mergedFilterValue}\n                options={this.options}\n                column={this.column}\n                onChange={this.handleFilterChange}\n                onClear={this.handleFilterMenuCancel}\n                onConfirm={this.handleFilterMenuConfirm}\n              />\n            )\n          }\n        }}\n      </NPopover>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { off, on } from 'evtd'\nimport { defineComponent, h, inject, onBeforeUnmount, ref } from 'vue'\nimport { dataTableInjectionKey } from '../interface'\n\nexport default defineComponent({\n  name: 'ColumnResizeButton',\n  props: {\n    onResizeStart: Function,\n    onResize: Function as PropType<(displacementX: number) => void>,\n    onResizeEnd: Function\n  },\n  setup(props) {\n    const { mergedClsPrefixRef } = inject(dataTableInjectionKey)!\n    const activeRef = ref(false)\n    let startX = 0\n    function getMouseX(e: MouseEvent): number {\n      return e.clientX\n    }\n    function handleMousedown(e: MouseEvent): void {\n      e.preventDefault()\n      const alreadyStarted = activeRef.value\n      startX = getMouseX(e)\n      activeRef.value = true\n      if (!alreadyStarted) {\n        on('mousemove', window, handleMousemove)\n        on('mouseup', window, handleMouseup)\n        props.onResizeStart?.()\n      }\n    }\n    function handleMousemove(e: MouseEvent): void {\n      props.onResize?.(getMouseX(e) - startX)\n    }\n    function handleMouseup(): void {\n      activeRef.value = false\n      props.onResizeEnd?.()\n      off('mousemove', window, handleMousemove)\n      off('mouseup', window, handleMouseup)\n    }\n    onBeforeUnmount(() => {\n      off('mousemove', window, handleMousemove)\n      off('mouseup', window, handleMouseup)\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      active: activeRef,\n      handleMousedown\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <span\n        data-data-table-resizable\n        class={[\n          `${mergedClsPrefix}-data-table-resize-button`,\n          this.active && `${mergedClsPrefix}-data-table-resize-button--active`\n        ]}\n        onMousedown={this.handleMousedown}\n      />\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { RenderSorter, SortOrder } from '../interface'\nimport { defineComponent } from 'vue'\n\nexport default defineComponent({\n  name: 'DataTableRenderSorter',\n  props: {\n    render: {\n      type: Function as PropType<RenderSorter>,\n      required: true\n    },\n    order: {\n      // asc, desc\n      type: [String, Boolean] as PropType<SortOrder>,\n      default: false\n    }\n  },\n  render() {\n    const { render, order } = this\n    return render({\n      order\n    })\n  }\n})\n","import type { PropType } from 'vue'\nimport type { TableBaseColumn } from '../interface'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../../_internal'\nimport { ArrowDownIcon } from '../../../_internal/icons'\nimport { useConfig } from '../../../_mixins'\nimport { dataTableInjectionKey } from '../interface'\nimport RenderSorter from './RenderSorter'\n\nexport default defineComponent({\n  name: 'SortIcon',\n  props: {\n    column: {\n      type: Object as PropType<TableBaseColumn>,\n      required: true\n    }\n  },\n  setup(props) {\n    const { mergedComponentPropsRef } = useConfig()\n    const { mergedSortStateRef, mergedClsPrefixRef } = inject(\n      dataTableInjectionKey\n    )!\n    const sortStateRef = computed(() =>\n      mergedSortStateRef.value.find(\n        state => state.columnKey === props.column.key\n      )\n    )\n\n    const activeRef = computed(() => {\n      return sortStateRef.value !== undefined\n    })\n    const mergedSortOrderRef = computed(() => {\n      const { value: sortState } = sortStateRef\n      if (sortState && activeRef.value) {\n        return sortState.order\n      }\n      return false\n    })\n    const mergedRenderSorterRef = computed(() => {\n      return (\n        mergedComponentPropsRef?.value?.DataTable?.renderSorter\n        || props.column.renderSorter\n      )\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      active: activeRef,\n      mergedSortOrder: mergedSortOrderRef,\n      mergedRenderSorter: mergedRenderSorterRef\n    }\n  },\n  render() {\n    const { mergedRenderSorter, mergedSortOrder, mergedClsPrefix } = this\n    const { renderSorterIcon } = this.column\n    return mergedRenderSorter ? (\n      <RenderSorter render={mergedRenderSorter} order={mergedSortOrder} />\n    ) : (\n      <span\n        class={[\n          `${mergedClsPrefix}-data-table-sorter`,\n          mergedSortOrder === 'ascend'\n          && `${mergedClsPrefix}-data-table-sorter--asc`,\n          mergedSortOrder === 'descend'\n          && `${mergedClsPrefix}-data-table-sorter--desc`\n        ]}\n      >\n        {renderSorterIcon ? (\n          renderSorterIcon({ order: mergedSortOrder })\n        ) : (\n          <NBaseIcon clsPrefix={mergedClsPrefix}>\n            {{ default: () => <ArrowDownIcon /> }}\n          </NBaseIcon>\n        )}\n      </span>\n    )\n  }\n})\n","import type { DropdownInjection } from './Dropdown'\nimport type { NDropdownMenuInjection } from './DropdownMenu'\nimport type { NDropdownOptionInjection } from './DropdownOption'\nimport { createInjectionKey } from '../../_utils'\n\nexport const dropdownMenuInjectionKey\n  = createInjectionKey<NDropdownMenuInjection>('n-dropdown-menu')\n\nexport const dropdownInjectionKey\n  = createInjectionKey<DropdownInjection>('n-dropdown')\n\nexport const dropdownOptionInjectionKey\n  = createInjectionKey<NDropdownOptionInjection>('n-dropdown-option')\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'DropdownDivider',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  render() {\n    return <div class={`${this.clsPrefix}-dropdown-divider`} />\n  }\n})\n","import type { DropdownMixedOption } from './interface'\nimport { defineComponent, h, inject } from 'vue'\nimport { render } from '../../_utils'\nimport { dropdownInjectionKey, dropdownMenuInjectionKey } from './context'\n\nexport default defineComponent({\n  name: 'DropdownGroupHeader',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object,\n      required: true\n    }\n  },\n  setup() {\n    const { showIconRef, hasSubmenuRef } = inject(dropdownMenuInjectionKey)!\n\n    const { renderLabelRef, labelFieldRef, nodePropsRef, renderOptionRef }\n      = inject(dropdownInjectionKey)!\n\n    return {\n      labelField: labelFieldRef,\n      showIcon: showIconRef,\n      hasSubmenu: hasSubmenuRef,\n      renderLabel: renderLabelRef,\n      nodeProps: nodePropsRef,\n      renderOption: renderOptionRef\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      hasSubmenu,\n      showIcon,\n      nodeProps,\n      renderLabel,\n      renderOption\n    } = this\n    const { rawNode } = this.tmNode\n    const node = (\n      <div\n        class={`${clsPrefix}-dropdown-option`}\n        {...nodeProps?.(rawNode as DropdownMixedOption)}\n      >\n        <div\n          class={`${clsPrefix}-dropdown-option-body ${clsPrefix}-dropdown-option-body--group`}\n        >\n          <div\n            data-dropdown-option\n            class={[\n              `${clsPrefix}-dropdown-option-body__prefix`,\n              showIcon && `${clsPrefix}-dropdown-option-body__prefix--show-icon`\n            ]}\n          >\n            {render(rawNode.icon)}\n          </div>\n          <div\n            class={`${clsPrefix}-dropdown-option-body__label`}\n            data-dropdown-option\n          >\n            {renderLabel\n              ? renderLabel(rawNode as DropdownMixedOption)\n              : render(rawNode.title ?? rawNode[this.labelField])}\n          </div>\n          <div\n            class={[\n              `${clsPrefix}-dropdown-option-body__suffix`,\n              hasSubmenu\n              && `${clsPrefix}-dropdown-option-body__suffix--has-submenu`\n            ]}\n            data-dropdown-option\n          />\n        </div>\n      </div>\n    )\n    if (renderOption) {\n      return renderOption({ node, option: rawNode })\n    }\n    return node\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { textColorBase, opacity1, opacity2, opacity3, opacity4, opacity5 }\n    = vars\n  return {\n    color: textColorBase,\n    opacity1Depth: opacity1,\n    opacity2Depth: opacity2,\n    opacity3Depth: opacity3,\n    opacity4Depth: opacity4,\n    opacity5Depth: opacity5\n  }\n}\n\nexport interface IconThemeVars extends ReturnType<typeof self> {}\n\nconst iconLight: IconTheme = {\n  name: 'Icon',\n  common: commonLight,\n  self\n}\n\nexport interface IconTheme extends Theme<'Icon', IconThemeVars> {}\n\nexport interface IconThemeOverrides extends ExtractThemeOverrides<IconTheme> {}\n\nexport default iconLight\n","import type { IconTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst iconDark: IconTheme = {\n  name: 'Icon',\n  common: commonDark,\n  self\n}\n\nexport default iconDark\n","import { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-opacity\nexport default cB('icon', `\n  height: 1em;\n  width: 1em;\n  line-height: 1em;\n  text-align: center;\n  display: inline-block;\n  position: relative;\n  fill: currentColor;\n`, [\n  cM('color-transition', {\n    transition: 'color .3s var(--n-bezier)'\n  }),\n  cM('depth', {\n    color: 'var(--n-color)'\n  }, [\n    c('svg', {\n      opacity: 'var(--n-opacity)',\n      transition: 'opacity .3s var(--n-bezier)'\n    })\n  ]),\n  c('svg', {\n    height: '1em',\n    width: '1em'\n  })\n])\n","import type { Component, CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { IconTheme, IconThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, mergeProps } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { formatLength, warn } from '../../_utils'\nimport { iconLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport type Depth = 1 | 2 | 3 | 4 | 5 | '1' | '2' | '3' | '4' | '5' | undefined\n\nexport const iconProps = {\n  ...(useTheme.props as ThemeProps<IconTheme, IconThemeOverrides>),\n  depth: [String, Number] as PropType<Depth>,\n  size: [Number, String] as PropType<number | string>,\n  color: String,\n  component: [Object, Function] as PropType<Component>\n} as const\n\nexport type IconProps = ExtractPublicPropTypes<typeof iconProps>\n\nexport const NIcon = defineComponent({\n  _n_icon__: true,\n  name: 'Icon',\n  inheritAttrs: false,\n  props: iconProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Icon',\n      '-icon',\n      style,\n      iconLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { depth } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      if (depth !== undefined) {\n        const { color, [`opacity${depth}Depth` as const]: opacity } = self\n        return {\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-color': color,\n          '--n-opacity': opacity\n        }\n      }\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color': '',\n        '--n-opacity': ''\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'icon',\n          computed(() => `${props.depth || 'd'}`),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedStyle: computed(() => {\n        const { size, color } = props\n        return {\n          fontSize: formatLength(size),\n          color\n        }\n      }),\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { $parent, depth, mergedClsPrefix, component, onRender, themeClass }\n      = this\n    if ($parent?.$options?._n_icon__) {\n      warn('icon', 'don\\'t wrap `n-icon` inside `n-icon`')\n    }\n    onRender?.()\n    return h(\n      'i',\n      mergeProps(this.$attrs, {\n        role: 'img',\n        class: [\n          `${mergedClsPrefix}-icon`,\n          themeClass,\n          {\n            [`${mergedClsPrefix}-icon--depth`]: depth,\n            [`${mergedClsPrefix}-icon--color-transition`]: depth !== undefined\n          }\n        ],\n        style: [this.cssVars, this.mergedStyle]\n      }),\n      component ? h(component) : this.$slots.default?.()\n    )\n  }\n})\n","import type { DropdownMixedOption, DropdownRenderOption } from './interface'\n\nexport function isSubmenuNode(\n  rawNode: DropdownMixedOption,\n  childrenField: string\n): boolean {\n  return (\n    rawNode.type === 'submenu'\n    || (rawNode.type === undefined && rawNode[childrenField] !== undefined)\n  )\n}\n\nexport function isGroupNode(rawNode: DropdownMixedOption): boolean {\n  return rawNode.type === 'group'\n}\n\nexport function isDividerNode(rawNode: DropdownMixedOption): boolean {\n  return rawNode.type === 'divider'\n}\n\nexport function isRenderNode(\n  rawNode: DropdownMixedOption\n): rawNode is DropdownRenderOption {\n  return rawNode.type === 'render'\n}\n","import type { TreeNode } from 'treemate'\nimport type { HTMLAttributes, PropType, Ref, VNodeChild } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type {\n  MenuGroupOption,\n  MenuOptionSharedPart\n} from '../../menu/src/interface'\nimport type {\n  DropdownGroupOption,\n  DropdownIgnoredOption,\n  DropdownOption\n} from './interface'\nimport { happensIn } from 'seemly'\nimport { useMemo } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  mergeProps,\n  provide,\n  ref,\n  Transition\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { ChevronRightIcon } from '../../_internal/icons'\nimport { render, useDeferredTrue } from '../../_utils'\n\nimport { NIcon } from '../../icon'\nimport { popoverBodyInjectionKey } from '../../popover/src/interface'\nimport {\n  dropdownInjectionKey,\n  dropdownMenuInjectionKey,\n  dropdownOptionInjectionKey\n} from './context'\nimport NDropdownMenu from './DropdownMenu'\nimport { isSubmenuNode } from './utils'\n\nexport interface NDropdownOptionInjection {\n  enteringSubmenuRef: Ref<boolean>\n}\n\nexport default defineComponent({\n  name: 'DropdownOption',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object as PropType<\n        TreeNode<DropdownOption, DropdownGroupOption, DropdownIgnoredOption>\n      >,\n      required: true\n    },\n    parentKey: {\n      type: [String, Number] as PropType<string | number | null>,\n      default: null\n    },\n    placement: {\n      type: String as PropType<FollowerPlacement>,\n      default: 'right-start'\n    },\n    props: Object as PropType<HTMLAttributes>,\n    scrollable: Boolean\n  },\n  setup(props) {\n    const NDropdown = inject(dropdownInjectionKey)!\n    const {\n      hoverKeyRef,\n      keyboardKeyRef,\n      lastToggledSubmenuKeyRef,\n      pendingKeyPathRef,\n      activeKeyPathRef,\n      animatedRef,\n      mergedShowRef,\n      renderLabelRef,\n      renderIconRef,\n      labelFieldRef,\n      childrenFieldRef,\n      renderOptionRef,\n      nodePropsRef,\n      menuPropsRef\n    } = NDropdown\n    const NDropdownOption = inject(dropdownOptionInjectionKey, null)\n    const NDropdownMenu = inject(dropdownMenuInjectionKey)!\n    const NPopoverBody = inject(popoverBodyInjectionKey)!\n    const rawNodeRef = computed(() => props.tmNode.rawNode)\n    const hasSubmenuRef = computed(() => {\n      const { value: childrenField } = childrenFieldRef\n      return isSubmenuNode(props.tmNode.rawNode, childrenField)\n    })\n    const mergedDisabledRef = computed(() => {\n      const { disabled } = props.tmNode\n      return disabled\n    })\n    const showSubmenuRef = computed(() => {\n      if (!hasSubmenuRef.value)\n        return false\n      const { key, disabled } = props.tmNode\n      if (disabled)\n        return false\n      const { value: hoverKey } = hoverKeyRef\n      const { value: keyboardKey } = keyboardKeyRef\n      const { value: lastToggledSubmenuKey } = lastToggledSubmenuKeyRef\n      const { value: pendingKeyPath } = pendingKeyPathRef\n      if (hoverKey !== null)\n        return pendingKeyPath.includes(key)\n      if (keyboardKey !== null) {\n        return (\n          pendingKeyPath.includes(key)\n          && pendingKeyPath[pendingKeyPath.length - 1] !== key\n        )\n      }\n      if (lastToggledSubmenuKey !== null)\n        return pendingKeyPath.includes(key)\n      return false\n    })\n    const shouldDelayRef = computed(() => {\n      return keyboardKeyRef.value === null && !animatedRef.value\n    })\n    const deferredShowSubmenuRef = useDeferredTrue(\n      showSubmenuRef,\n      300,\n      shouldDelayRef\n    )\n    const parentEnteringSubmenuRef = computed(() => {\n      return !!NDropdownOption?.enteringSubmenuRef.value\n    })\n    const enteringSubmenuRef = ref(false)\n    provide(dropdownOptionInjectionKey, {\n      enteringSubmenuRef\n    })\n    // methods\n    function handleSubmenuBeforeEnter(): void {\n      enteringSubmenuRef.value = true\n    }\n    function handleSubmenuAfterEnter(): void {\n      enteringSubmenuRef.value = false\n    }\n    function handleMouseEnter(): void {\n      const { parentKey, tmNode } = props\n      if (tmNode.disabled)\n        return\n      if (!mergedShowRef.value)\n        return\n      lastToggledSubmenuKeyRef.value = parentKey\n      keyboardKeyRef.value = null\n      hoverKeyRef.value = tmNode.key\n    }\n    function handleMouseMove(): void {\n      const { tmNode } = props\n      if (tmNode.disabled)\n        return\n      if (!mergedShowRef.value)\n        return\n      if (hoverKeyRef.value === tmNode.key)\n        return\n      handleMouseEnter()\n    }\n    function handleMouseLeave(e: MouseEvent): void {\n      if (props.tmNode.disabled)\n        return\n      if (!mergedShowRef.value)\n        return\n      const { relatedTarget } = e\n      if (\n        relatedTarget\n        && !happensIn({ target: relatedTarget }, 'dropdownOption')\n        && !happensIn({ target: relatedTarget }, 'scrollbarRail')\n      ) {\n        hoverKeyRef.value = null\n      }\n    }\n    function handleClick(): void {\n      const { value: hasSubmenu } = hasSubmenuRef\n      const { tmNode } = props\n      if (!mergedShowRef.value)\n        return\n      if (!hasSubmenu && !tmNode.disabled) {\n        NDropdown.doSelect(\n          tmNode.key,\n          (tmNode as unknown as TreeNode<DropdownOption>).rawNode\n        )\n        NDropdown.doUpdateShow(false)\n      }\n    }\n\n    return {\n      labelField: labelFieldRef,\n      renderLabel: renderLabelRef,\n      renderIcon: renderIconRef,\n      siblingHasIcon: NDropdownMenu.showIconRef,\n      siblingHasSubmenu: NDropdownMenu.hasSubmenuRef,\n      menuProps: menuPropsRef,\n      popoverBody: NPopoverBody,\n      animated: animatedRef,\n      mergedShowSubmenu: computed(() => {\n        return deferredShowSubmenuRef.value && !parentEnteringSubmenuRef.value\n      }),\n      rawNode: rawNodeRef,\n      hasSubmenu: hasSubmenuRef,\n      pending: useMemo(() => {\n        const { value: pendingKeyPath } = pendingKeyPathRef\n        const { key } = props.tmNode\n        return pendingKeyPath.includes(key)\n      }),\n      childActive: useMemo(() => {\n        const { value: activeKeyPath } = activeKeyPathRef\n        const { key } = props.tmNode\n        const index = activeKeyPath.findIndex(k => key === k)\n        if (index === -1)\n          return false\n        return index < activeKeyPath.length - 1\n      }),\n      active: useMemo(() => {\n        const { value: activeKeyPath } = activeKeyPathRef\n        const { key } = props.tmNode\n        const index = activeKeyPath.findIndex(k => key === k)\n        if (index === -1)\n          return false\n        return index === activeKeyPath.length - 1\n      }),\n      mergedDisabled: mergedDisabledRef,\n      renderOption: renderOptionRef,\n      nodeProps: nodePropsRef,\n      handleClick,\n      handleMouseMove,\n      handleMouseEnter,\n      handleMouseLeave,\n      handleSubmenuBeforeEnter,\n      handleSubmenuAfterEnter\n    }\n  },\n  render() {\n    const {\n      animated,\n      rawNode,\n      mergedShowSubmenu,\n      clsPrefix,\n      siblingHasIcon,\n      siblingHasSubmenu,\n      renderLabel,\n      renderIcon,\n      renderOption,\n      nodeProps,\n      props,\n      scrollable\n    } = this\n    let submenuVNode: VNodeChild = null\n    if (mergedShowSubmenu) {\n      const submenuNodeProps = this.menuProps?.(\n        rawNode,\n        rawNode.children as Array<MenuOptionSharedPart | MenuGroupOption>\n      )\n      submenuVNode = (\n        <NDropdownMenu\n          {...submenuNodeProps}\n          clsPrefix={clsPrefix}\n          scrollable={this.scrollable}\n          tmNodes={this.tmNode.children}\n          parentKey={this.tmNode.key}\n        />\n      )\n    }\n\n    const builtinProps: HTMLAttributes = {\n      class: [\n        `${clsPrefix}-dropdown-option-body`,\n        this.pending && `${clsPrefix}-dropdown-option-body--pending`,\n        this.active && `${clsPrefix}-dropdown-option-body--active`,\n        this.childActive && `${clsPrefix}-dropdown-option-body--child-active`,\n        this.mergedDisabled && `${clsPrefix}-dropdown-option-body--disabled`\n      ],\n      onMousemove: this.handleMouseMove,\n      onMouseenter: this.handleMouseEnter,\n      onMouseleave: this.handleMouseLeave,\n      onClick: this.handleClick\n    }\n    const optionNodeProps = nodeProps?.(rawNode)\n    const node = (\n      <div\n        class={[`${clsPrefix}-dropdown-option`, optionNodeProps?.class]}\n        data-dropdown-option\n        {...optionNodeProps}\n      >\n        {h(\n          'div',\n          mergeProps(\n            builtinProps as Record<string, any>,\n            props as Record<string, any>\n          ),\n          [\n            <div\n              class={[\n                `${clsPrefix}-dropdown-option-body__prefix`,\n                siblingHasIcon\n                && `${clsPrefix}-dropdown-option-body__prefix--show-icon`\n              ]}\n            >\n              {[renderIcon ? renderIcon(rawNode) : render(rawNode.icon)]}\n            </div>,\n            <div\n              data-dropdown-option\n              class={`${clsPrefix}-dropdown-option-body__label`}\n            >\n              {/* TODO: Workaround, menu compatible */}\n              {renderLabel\n                ? renderLabel(rawNode)\n                : render(rawNode[this.labelField] ?? rawNode.title)}\n            </div>,\n            <div\n              data-dropdown-option\n              class={[\n                `${clsPrefix}-dropdown-option-body__suffix`,\n                siblingHasSubmenu\n                && `${clsPrefix}-dropdown-option-body__suffix--has-submenu`\n              ]}\n            >\n              {this.hasSubmenu ? (\n                <NIcon>\n                  {{\n                    default: () => <ChevronRightIcon />\n                  }}\n                </NIcon>\n              ) : null}\n            </div>\n          ]\n        )}\n        {this.hasSubmenu ? (\n          <VBinder>\n            {{\n              default: () => [\n                <VTarget>\n                  {{\n                    default: () => (\n                      <div class={`${clsPrefix}-dropdown-offset-container`}>\n                        <VFollower\n                          show={this.mergedShowSubmenu}\n                          placement={this.placement}\n                          to={\n                            scrollable\n                              ? this.popoverBody || undefined\n                              : undefined\n                          }\n                          teleportDisabled={!scrollable}\n                        >\n                          {{\n                            default: () => {\n                              return (\n                                <div\n                                  class={`${clsPrefix}-dropdown-menu-wrapper`}\n                                >\n                                  {animated ? (\n                                    <Transition\n                                      onBeforeEnter={\n                                        this.handleSubmenuBeforeEnter\n                                      }\n                                      onAfterEnter={\n                                        this.handleSubmenuAfterEnter\n                                      }\n                                      name=\"fade-in-scale-up-transition\"\n                                      appear\n                                    >\n                                      {{\n                                        default: () => submenuVNode\n                                      }}\n                                    </Transition>\n                                  ) : (\n                                    submenuVNode\n                                  )}\n                                </div>\n                              )\n                            }\n                          }}\n                        </VFollower>\n                      </div>\n                    )\n                  }}\n                </VTarget>\n              ]\n            }}\n          </VBinder>\n        ) : null}\n      </div>\n    )\n    if (renderOption) {\n      return renderOption({ node, option: rawNode })\n    }\n    return node\n  }\n})\n","import type { TreeNode } from 'treemate'\nimport type { PropType } from 'vue'\nimport type {\n  DropdownGroupOption,\n  DropdownIgnoredOption,\n  DropdownOption\n} from './interface'\nimport { defineComponent, Fragment, h } from 'vue'\n\nimport { warn } from '../../_utils'\nimport NDropdownDivider from './DropdownDivider'\nimport NDropdownGroupHeader from './DropdownGroupHeader'\nimport NDropdownOption from './DropdownOption'\nimport { isDividerNode } from './utils'\n\nexport default defineComponent({\n  name: 'NDropdownGroup',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object as PropType<\n        TreeNode<DropdownOption, DropdownGroupOption, DropdownIgnoredOption>\n      >,\n      required: true\n    },\n    parentKey: {\n      type: [String, Number] as PropType<string | number | null>,\n      default: null\n    }\n  },\n  render() {\n    const { tmNode, parentKey, clsPrefix } = this\n    const { children } = tmNode\n    return (\n      <>\n        <NDropdownGroupHeader\n          clsPrefix={clsPrefix}\n          tmNode={tmNode}\n          key={tmNode.key}\n        />\n        {children?.map((child) => {\n          const { rawNode } = child\n          if (rawNode.show === false)\n            return null\n          if (isDividerNode(rawNode)) {\n            return h(NDropdownDivider, {\n              clsPrefix,\n              key: child.key\n            })\n          }\n          if (child.isGroup) {\n            warn(\n              'dropdown',\n              '`group` node is not allowed to be put in `group` node.'\n            )\n            return null\n          }\n          return (\n            <NDropdownOption\n              clsPrefix={clsPrefix}\n              tmNode={child}\n              parentKey={parentKey}\n              key={child.key}\n            />\n          )\n        })}\n      </>\n    )\n  }\n})\n","import type { TreeNode } from 'treemate'\nimport type { PropType } from 'vue'\nimport type { DropdownRenderOption } from './interface'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'DropdownRenderOption',\n  props: {\n    tmNode: {\n      type: Object as PropType<TreeNode<DropdownRenderOption>>,\n      required: true\n    }\n  },\n  render() {\n    const {\n      rawNode: { render, props }\n    } = this.tmNode\n    return h('div', props, [render?.()])\n  }\n})\n","import type { TreeNode } from 'treemate'\nimport type { CSSProperties, PropType, Ref } from 'vue'\nimport type {\n  DropdownGroupOption,\n  DropdownIgnoredOption,\n  DropdownOption,\n  DropdownRenderOption\n} from './interface'\nimport { computed, defineComponent, h, inject, provide, ref } from 'vue'\nimport { NxScrollbar } from '../../_internal/scrollbar'\nimport { drawerBodyInjectionKey } from '../../drawer/src/interface'\nimport { modalBodyInjectionKey } from '../../modal/src/interface'\nimport { popoverBodyInjectionKey } from '../../popover/src/interface'\nimport { renderArrow } from '../../popover/src/PopoverBody'\n\nimport { dropdownInjectionKey, dropdownMenuInjectionKey } from './context'\n\nimport NDropdownDivider from './DropdownDivider'\nimport NDropdownGroup from './DropdownGroup'\nimport NDropdownOption from './DropdownOption'\nimport NDropdownRenderOption from './DropdownRenderOption'\nimport {\n  isDividerNode,\n  isGroupNode,\n  isRenderNode,\n  isSubmenuNode\n} from './utils'\n\nexport interface NDropdownMenuInjection {\n  showIconRef: Ref<boolean>\n  hasSubmenuRef: Ref<boolean>\n}\n\nexport default defineComponent({\n  name: 'DropdownMenu',\n  props: {\n    scrollable: Boolean,\n    showArrow: Boolean,\n    arrowStyle: [String, Object] as PropType<string | CSSProperties>,\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNodes: {\n      type: Array as PropType<\n        Array<\n          TreeNode<DropdownOption, DropdownGroupOption, DropdownIgnoredOption>\n        >\n      >,\n      default: () => []\n    },\n    parentKey: {\n      type: [String, Number],\n      default: null\n    }\n  },\n  setup(props) {\n    const { renderIconRef, childrenFieldRef } = inject(dropdownInjectionKey)!\n    provide(dropdownMenuInjectionKey, {\n      showIconRef: computed(() => {\n        const renderIcon = renderIconRef.value\n        return props.tmNodes.some((tmNode) => {\n          if (tmNode.isGroup) {\n            return tmNode.children?.some(({ rawNode: rawChild }) =>\n              renderIcon ? renderIcon(rawChild) : rawChild.icon\n            )\n          }\n          const { rawNode } = tmNode\n          return renderIcon ? renderIcon(rawNode) : rawNode.icon\n        })\n      }),\n      hasSubmenuRef: computed(() => {\n        const { value: childrenField } = childrenFieldRef\n        return props.tmNodes.some((tmNode) => {\n          if (tmNode.isGroup) {\n            return tmNode.children?.some(({ rawNode: rawChild }) =>\n              isSubmenuNode(rawChild, childrenField)\n            )\n          }\n          const { rawNode } = tmNode\n          return isSubmenuNode(rawNode, childrenField)\n        })\n      })\n    })\n    const bodyRef = ref<HTMLElement | null>(null)\n    provide(modalBodyInjectionKey, null)\n    provide(drawerBodyInjectionKey, null)\n    provide(popoverBodyInjectionKey, bodyRef)\n    return {\n      bodyRef\n    }\n  },\n  render() {\n    const { parentKey, clsPrefix, scrollable } = this\n    const menuOptionsNode = this.tmNodes.map((tmNode) => {\n      const { rawNode } = tmNode\n      if (rawNode.show === false)\n        return null\n      if (isRenderNode(rawNode)) {\n        return (\n          <NDropdownRenderOption\n            tmNode={tmNode as unknown as TreeNode<DropdownRenderOption>}\n            key={tmNode.key}\n          />\n        )\n      }\n      if (isDividerNode(rawNode)) {\n        return <NDropdownDivider clsPrefix={clsPrefix} key={tmNode.key} />\n      }\n      if (isGroupNode(rawNode)) {\n        return (\n          <NDropdownGroup\n            clsPrefix={clsPrefix}\n            tmNode={tmNode}\n            parentKey={parentKey}\n            key={tmNode.key}\n          />\n        )\n      }\n      return (\n        <NDropdownOption\n          clsPrefix={clsPrefix}\n          tmNode={tmNode}\n          parentKey={parentKey}\n          key={tmNode.key}\n          props={rawNode.props}\n          scrollable={scrollable}\n        />\n      )\n    })\n    return (\n      <div\n        class={[\n          `${clsPrefix}-dropdown-menu`,\n          scrollable && `${clsPrefix}-dropdown-menu--scrollable`\n        ]}\n        ref=\"bodyRef\"\n      >\n        {scrollable ? (\n          <NxScrollbar contentClass={`${clsPrefix}-dropdown-menu__content`}>\n            {{\n              default: () => menuOptionsNode\n            }}\n          </NxScrollbar>\n        ) : (\n          menuOptionsNode\n        )}\n        {this.showArrow\n          ? renderArrow({\n              clsPrefix,\n              arrowStyle: this.arrowStyle,\n              arrowClass: undefined,\n              arrowWrapperClass: undefined,\n              arrowWrapperStyle: undefined\n            })\n          : null}\n      </div>\n    )\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-padding\n// --n-border-radius\n// --n-option-height\n// --n-option-prefix-width\n// --n-option-icon-prefix-width\n// --n-option-suffix-width\n// --n-option-icon-suffix-width\n// --n-color\n// --n-option-color-hover\n// --n-option-color-active\n// --n-divider-color\n// --n-option-text-color\n// --n-option-text-color-hover\n// --n-option-text-color-active\n// --n-option-text-color-child-active\n// --n-prefix-color\n// --n-suffix-color\n// --n-option-icon-size\n// --n-option-opacity-disabled\n\n// shared with popover\n// --n-box-shadow\n\nexport default cB('dropdown-menu', `\n  transform-origin: var(--v-transform-origin);\n  background-color: var(--n-color);\n  border-radius: var(--n-border-radius);\n  box-shadow: var(--n-box-shadow);\n  position: relative;\n  transition:\n    background-color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier);\n`, [\n  fadeInScaleUpTransition(),\n  cB('dropdown-option', `\n    position: relative;\n  `, [\n    c('a', `\n      text-decoration: none;\n      color: inherit;\n      outline: none;\n    `, [\n      c('&::before', `\n        content: \"\";\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `)\n    ]),\n    cB('dropdown-option-body', `\n      display: flex;\n      cursor: pointer;\n      position: relative;\n      height: var(--n-option-height);\n      line-height: var(--n-option-height);\n      font-size: var(--n-font-size);\n      color: var(--n-option-text-color);\n      transition: color .3s var(--n-bezier);\n    `, [\n      c('&::before', `\n        content: \"\";\n        position: absolute;\n        top: 0;\n        bottom: 0;\n        left: 4px;\n        right: 4px;\n        transition: background-color .3s var(--n-bezier);\n        border-radius: var(--n-border-radius);\n      `),\n      cNotM('disabled', [\n        cM('pending', `\n          color: var(--n-option-text-color-hover);\n        `, [\n          cE('prefix, suffix', `\n            color: var(--n-option-text-color-hover);\n          `),\n          c('&::before', 'background-color: var(--n-option-color-hover);')\n        ]),\n        cM('active', `\n          color: var(--n-option-text-color-active);\n        `, [\n          cE('prefix, suffix', `\n            color: var(--n-option-text-color-active);\n          `),\n          c('&::before', 'background-color: var(--n-option-color-active);')\n        ]),\n        cM('child-active', `\n          color: var(--n-option-text-color-child-active);\n        `, [\n          cE('prefix, suffix', `\n            color: var(--n-option-text-color-child-active);\n          `)\n        ])\n      ]),\n      cM('disabled', `\n        cursor: not-allowed;\n        opacity: var(--n-option-opacity-disabled);\n      `),\n      cM('group', `\n        font-size: calc(var(--n-font-size) - 1px);\n        color: var(--n-group-header-text-color);\n      `, [\n        cE('prefix', `\n          width: calc(var(--n-option-prefix-width) / 2);\n        `, [\n          cM('show-icon', `\n            width: calc(var(--n-option-icon-prefix-width) / 2);\n          `)\n        ])\n      ]),\n      cE('prefix', `\n        width: var(--n-option-prefix-width);\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        color: var(--n-prefix-color);\n        transition: color .3s var(--n-bezier);\n        z-index: 1;\n      `, [\n        cM('show-icon', `\n          width: var(--n-option-icon-prefix-width);\n        `),\n        cB('icon', `\n          font-size: var(--n-option-icon-size);\n        `)\n      ]),\n      cE('label', `\n        white-space: nowrap;\n        flex: 1;\n        z-index: 1;\n      `),\n      cE('suffix', `\n        box-sizing: border-box;\n        flex-grow: 0;\n        flex-shrink: 0;\n        display: flex;\n        justify-content: flex-end;\n        align-items: center;\n        min-width: var(--n-option-suffix-width);\n        padding: 0 8px;\n        transition: color .3s var(--n-bezier);\n        color: var(--n-suffix-color);\n        z-index: 1;\n      `, [\n        cM('has-submenu', `\n          width: var(--n-option-icon-suffix-width);\n        `),\n        cB('icon', `\n          font-size: var(--n-option-icon-size);\n        `)\n      ]),\n      cB('dropdown-menu', 'pointer-events: all;')\n    ]),\n    cB('dropdown-offset-container', `\n      pointer-events: none;\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: -4px;\n      bottom: -4px;\n    `)\n  ]),\n  cB('dropdown-divider', `\n    transition: background-color .3s var(--n-bezier);\n    background-color: var(--n-divider-color);\n    height: 1px;\n    margin: 4px 0;\n  `),\n  cB('dropdown-menu-wrapper', `\n    transform-origin: var(--v-transform-origin);\n    width: fit-content;\n  `),\n  c('>', [\n    cB('scrollbar', `\n      height: inherit;\n      max-height: inherit;\n    `)\n  ]),\n  cNotM('scrollable', `\n    padding: var(--n-padding);\n  `),\n  cM('scrollable', [\n    cE('content', `\n      padding: var(--n-padding);\n    `)\n  ])\n])\n","import type { Key, TreeNode } from 'treemate'\nimport type { CSSProperties, PropType, Ref } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { InternalRenderBody } from '../../popover/src/interface'\nimport type { PopoverInternalProps } from '../../popover/src/Popover'\nimport type { DropdownTheme, DropdownThemeOverrides } from '../styles'\nimport type {\n  DropdownGroupOption,\n  DropdownIgnoredOption,\n  DropdownMenuProps,\n  DropdownMixedOption,\n  DropdownOption,\n  DropdownRenderOption,\n  NodeProps,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  RenderIcon,\n  RenderIconImpl,\n  RenderLabel,\n  RenderLabelImpl,\n  RenderOption,\n  RenderOptionImpl\n} from './interface'\nimport type { DropdownSize } from './public-types'\nimport { createTreeMate } from 'treemate'\nimport { useKeyboard, useMemo, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  provide,\n  ref,\n  toRef,\n  watch\n} from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { call, createKey, createRefSetter, keep } from '../../_utils'\nimport { NPopover } from '../../popover'\nimport { popoverBaseProps } from '../../popover/src/Popover'\nimport { dropdownLight } from '../styles'\nimport { dropdownInjectionKey } from './context'\nimport NDropdownMenu from './DropdownMenu'\nimport style from './styles/index.cssr'\n\nexport interface DropdownInjection {\n  renderLabelRef: Ref<RenderLabelImpl | undefined>\n  renderIconRef: Ref<RenderIconImpl | undefined>\n  renderOptionRef: Ref<RenderOptionImpl | undefined>\n  menuPropsRef: Ref<DropdownMenuProps | undefined>\n  nodePropsRef: Ref<NodeProps | undefined>\n  hoverKeyRef: Ref<Key | null>\n  keyboardKeyRef: Ref<Key | null>\n  lastToggledSubmenuKeyRef: Ref<Key | null>\n  pendingKeyPathRef: Ref<Key[]>\n  activeKeyPathRef: Ref<Key[]>\n  animatedRef: Ref<boolean>\n  mergedShowRef: Ref<boolean>\n  labelFieldRef: Ref<string>\n  childrenFieldRef: Ref<string>\n  doSelect: OnUpdateValueImpl\n  doUpdateShow: (value: boolean) => void\n}\n\nconst dropdownBaseProps = {\n  animated: {\n    type: Boolean,\n    default: true\n  },\n  keyboard: {\n    type: Boolean,\n    default: true\n  },\n  size: String as PropType<DropdownSize>,\n  inverted: Boolean,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom'\n  },\n  onSelect: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  options: {\n    type: Array as PropType<DropdownMixedOption[]>,\n    default: () => []\n  },\n  menuProps: Function as PropType<DropdownMenuProps>,\n  showArrow: Boolean,\n  renderLabel: Function as PropType<RenderLabel>,\n  renderIcon: Function as PropType<RenderIcon>,\n  renderOption: Function as PropType<RenderOption>,\n  nodeProps: Function as PropType<NodeProps>,\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  keyField: {\n    type: String,\n    default: 'key'\n  },\n  childrenField: {\n    type: String,\n    default: 'children'\n  },\n  // for menu, not documented\n  value: [String, Number] as PropType<Key | null>\n} as const\n\nconst popoverPropKeys = Object.keys(popoverBaseProps) as Array<\n  keyof typeof popoverBaseProps\n>\n\nexport const dropdownProps = {\n  ...popoverBaseProps,\n  ...dropdownBaseProps,\n  ...(useTheme.props as ThemeProps<DropdownTheme, DropdownThemeOverrides>)\n} as const\n\nexport type DropdownProps = ExtractPublicPropTypes<typeof dropdownProps>\n\nexport default defineComponent({\n  name: 'Dropdown',\n  inheritAttrs: false,\n  props: dropdownProps,\n  setup(props) {\n    const uncontrolledShowRef = ref(false)\n    const mergedShowRef = useMergedState(\n      toRef(props, 'show'),\n      uncontrolledShowRef\n    )\n    const treemateRef = computed(() => {\n      const { keyField, childrenField } = props\n      return createTreeMate<\n        DropdownOption | DropdownRenderOption,\n        DropdownGroupOption,\n        DropdownIgnoredOption\n      >(props.options, {\n        getKey(node) {\n          return node[keyField] as any\n        },\n        getDisabled(node) {\n          return node.disabled === true\n        },\n        getIgnored(node) {\n          return node.type === 'divider' || node.type === 'render'\n        },\n        getChildren(node) {\n          return node[childrenField] as any\n        }\n      })\n    })\n    const tmNodesRef = computed(() => {\n      return treemateRef.value.treeNodes\n    })\n\n    const hoverKeyRef = ref<Key | null>(null)\n    const keyboardKeyRef = ref<Key | null>(null)\n    const lastToggledSubmenuKeyRef = ref<Key | null>(null)\n    const pendingKeyRef = computed(() => {\n      return (\n        hoverKeyRef.value\n        ?? keyboardKeyRef.value\n        ?? lastToggledSubmenuKeyRef.value\n        ?? null\n      )\n    })\n\n    const pendingKeyPathRef = computed(\n      () => treemateRef.value.getPath(pendingKeyRef.value).keyPath\n    )\n\n    const activeKeyPathRef = computed(\n      () => treemateRef.value.getPath(props.value).keyPath\n    )\n\n    const keyboardEnabledRef = useMemo(() => {\n      return props.keyboard && mergedShowRef.value\n    })\n\n    useKeyboard(\n      {\n        keydown: {\n          ArrowUp: {\n            prevent: true,\n            handler: handleKeydownUp\n          },\n          ArrowRight: {\n            prevent: true,\n            handler: handleKeydownRight\n          },\n          ArrowDown: {\n            prevent: true,\n            handler: handleKeydownDown\n          },\n          ArrowLeft: {\n            prevent: true,\n            handler: handleKeydownLeft\n          },\n          Enter: {\n            prevent: true,\n            handler: handleKeydownEnter\n          },\n          Escape: handleKeydownEsc\n        }\n      },\n      keyboardEnabledRef\n    )\n\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size || mergedComponentPropsRef?.value?.Dropdown?.size || 'medium'\n      )\n    })\n\n    const themeRef = useTheme(\n      'Dropdown',\n      '-dropdown',\n      style,\n      dropdownLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    provide(dropdownInjectionKey, {\n      labelFieldRef: toRef(props, 'labelField'),\n      childrenFieldRef: toRef(props, 'childrenField'),\n      renderLabelRef: toRef(props, 'renderLabel') as Ref<\n        RenderLabelImpl | undefined\n      >,\n      renderIconRef: toRef(props, 'renderIcon') as Ref<\n        RenderIconImpl | undefined\n      >,\n      hoverKeyRef,\n      keyboardKeyRef,\n      lastToggledSubmenuKeyRef,\n      pendingKeyPathRef,\n      activeKeyPathRef,\n      animatedRef: toRef(props, 'animated'),\n      mergedShowRef,\n      nodePropsRef: toRef(props, 'nodeProps'),\n      renderOptionRef: toRef(props, 'renderOption') as Ref<\n        RenderOptionImpl | undefined\n      >,\n      menuPropsRef: toRef(props, 'menuProps'),\n      doSelect,\n      doUpdateShow\n    })\n    // watch\n    watch(mergedShowRef, (value) => {\n      if (!props.animated && !value) {\n        clearPendingState()\n      }\n    })\n    // methods\n    function doSelect(key: Key, node: DropdownOption): void {\n      const { onSelect } = props\n      if (onSelect)\n        call(onSelect as OnUpdateValueImpl, key, node)\n    }\n    function doUpdateShow(value: boolean): void {\n      const { 'onUpdate:show': _onUpdateShow, onUpdateShow } = props\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      uncontrolledShowRef.value = value\n    }\n    function clearPendingState(): void {\n      hoverKeyRef.value = null\n      keyboardKeyRef.value = null\n      lastToggledSubmenuKeyRef.value = null\n    }\n    function handleKeydownEsc(): void {\n      doUpdateShow(false)\n    }\n    function handleKeydownLeft(): void {\n      handleKeydown('left')\n    }\n    function handleKeydownRight(): void {\n      handleKeydown('right')\n    }\n    function handleKeydownUp(): void {\n      handleKeydown('up')\n    }\n    function handleKeydownDown(): void {\n      handleKeydown('down')\n    }\n    function handleKeydownEnter(): void {\n      const pendingNode = getPendingNode()\n      if (pendingNode?.isLeaf && mergedShowRef.value) {\n        doSelect(pendingNode.key, pendingNode.rawNode)\n        doUpdateShow(false)\n      }\n    }\n    function getPendingNode(): TreeNode<DropdownOption> | null {\n      const { value: treeMate } = treemateRef\n      const { value: pendingKey } = pendingKeyRef\n      if (!treeMate || pendingKey === null)\n        return null\n      return treeMate.getNode(pendingKey) ?? null\n    }\n    function handleKeydown(direction: 'up' | 'right' | 'down' | 'left'): void {\n      const { value: pendingKey } = pendingKeyRef\n      const {\n        value: { getFirstAvailableNode }\n      } = treemateRef\n      let nextKeyboardKey: Key | null = null\n      if (pendingKey === null) {\n        const firstNode = getFirstAvailableNode()\n        if (firstNode !== null) {\n          nextKeyboardKey = firstNode.key\n        }\n      }\n      else {\n        const currentNode = getPendingNode()\n        if (currentNode) {\n          let nextNode\n          switch (direction) {\n            case 'down':\n              nextNode = currentNode.getNext()\n              break\n            case 'up':\n              nextNode = currentNode.getPrev()\n              break\n            case 'right':\n              nextNode = currentNode.getChild()\n              break\n            case 'left':\n              nextNode = currentNode.getParent()\n              break\n          }\n          if (nextNode)\n            nextKeyboardKey = nextNode.key\n        }\n      }\n      if (nextKeyboardKey !== null) {\n        hoverKeyRef.value = null\n        keyboardKeyRef.value = nextKeyboardKey\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const { inverted } = props\n      const size = mergedSizeRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const {\n        padding,\n        dividerColor,\n        borderRadius,\n        optionOpacityDisabled,\n        [createKey('optionIconSuffixWidth', size)]: optionIconSuffixWidth,\n        [createKey('optionSuffixWidth', size)]: optionSuffixWidth,\n        [createKey('optionIconPrefixWidth', size)]: optionIconPrefixWidth,\n        [createKey('optionPrefixWidth', size)]: optionPrefixWidth,\n        [createKey('fontSize', size)]: fontSize,\n        [createKey('optionHeight', size)]: optionHeight,\n        [createKey('optionIconSize', size)]: optionIconSize\n      } = self\n      const vars: any = {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-padding': padding,\n        '--n-border-radius': borderRadius,\n        '--n-option-height': optionHeight,\n        '--n-option-prefix-width': optionPrefixWidth,\n        '--n-option-icon-prefix-width': optionIconPrefixWidth,\n        '--n-option-suffix-width': optionSuffixWidth,\n        '--n-option-icon-suffix-width': optionIconSuffixWidth,\n        '--n-option-icon-size': optionIconSize,\n        '--n-divider-color': dividerColor,\n        '--n-option-opacity-disabled': optionOpacityDisabled\n      }\n      // writing like this is the fastest method\n      if (inverted) {\n        vars['--n-color'] = self.colorInverted\n        vars['--n-option-color-hover'] = self.optionColorHoverInverted\n        vars['--n-option-color-active'] = self.optionColorActiveInverted\n        vars['--n-option-text-color'] = self.optionTextColorInverted\n        vars['--n-option-text-color-hover'] = self.optionTextColorHoverInverted\n        vars['--n-option-text-color-active']\n          = self.optionTextColorActiveInverted\n        vars['--n-option-text-color-child-active']\n          = self.optionTextColorChildActiveInverted\n        vars['--n-prefix-color'] = self.prefixColorInverted\n        vars['--n-suffix-color'] = self.suffixColorInverted\n        vars['--n-group-header-text-color'] = self.groupHeaderTextColorInverted\n      }\n      else {\n        vars['--n-color'] = self.color\n        vars['--n-option-color-hover'] = self.optionColorHover\n        vars['--n-option-color-active'] = self.optionColorActive\n        vars['--n-option-text-color'] = self.optionTextColor\n        vars['--n-option-text-color-hover'] = self.optionTextColorHover\n        vars['--n-option-text-color-active'] = self.optionTextColorActive\n        vars['--n-option-text-color-child-active']\n          = self.optionTextColorChildActive\n        vars['--n-prefix-color'] = self.prefixColor\n        vars['--n-suffix-color'] = self.suffixColor\n        vars['--n-group-header-text-color'] = self.groupHeaderTextColor\n      }\n      return vars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'dropdown',\n          computed(\n            () => `${mergedSizeRef.value[0]}${props.inverted ? 'i' : ''}`\n          ),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: themeRef,\n      mergedSize: mergedSizeRef,\n      // data\n      tmNodes: tmNodesRef,\n      // show\n      mergedShow: mergedShowRef,\n      // methods\n      handleAfterLeave: () => {\n        if (!props.animated)\n          return\n        clearPendingState()\n      },\n      doUpdateShow,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const renderPopoverBody: InternalRenderBody = (\n      className,\n      ref,\n      style,\n      onMouseenter,\n      onMouseleave\n    ) => {\n      const { mergedClsPrefix, menuProps } = this\n      this.onRender?.()\n      const menuNodeProps\n        = menuProps?.(\n          undefined,\n          this.tmNodes.map(v => v.rawNode)\n        ) || {}\n      const dropdownProps = {\n        ref: createRefSetter(ref),\n        class: [\n          className,\n          `${mergedClsPrefix}-dropdown`,\n          `${mergedClsPrefix}-dropdown--${this.mergedSize}-size`,\n          this.themeClass\n        ],\n        clsPrefix: mergedClsPrefix,\n        tmNodes: this.tmNodes,\n        style: [...style, this.cssVars],\n        showArrow: this.showArrow,\n        arrowStyle: this.arrowStyle,\n        scrollable: this.scrollable,\n        onMouseenter,\n        onMouseleave\n      }\n      return h(\n        NDropdownMenu,\n        mergeProps(\n          this.$attrs,\n          dropdownProps,\n          menuNodeProps\n        ) as typeof dropdownProps\n      )\n    }\n    const { mergedTheme } = this\n    const popoverProps: PopoverInternalProps = {\n      show: this.mergedShow,\n      theme: mergedTheme.peers.Popover,\n      themeOverrides: mergedTheme.peerOverrides.Popover,\n      internalOnAfterLeave: this.handleAfterLeave,\n      internalRenderBody: renderPopoverBody,\n      onUpdateShow: this.doUpdateShow,\n      'onUpdate:show': undefined\n    }\n    return (\n      <NPopover {...keep(this.$props, popoverPropKeys, popoverProps)}>\n        {{\n          trigger: () => this.$slots.default?.()\n        }}\n      </NPopover>\n    )\n  }\n})\n","import type { Ref } from 'vue'\nimport type { NLocale } from '../../../locales'\nimport type { DataTableSelectionOption, InternalRowData } from '../interface'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../../_internal'\nimport { ChevronDownIcon } from '../../../_internal/icons'\nimport { NDropdown } from '../../../dropdown'\nimport { dataTableInjectionKey } from '../interface'\n\nconst allKey = '_n_all__'\nconst noneKey = '_n_none__'\n\nfunction createSelectHandler(\n  options:\n    | Array<\n      | DataTableSelectionOption\n      | {\n        label: string\n        key: string | number\n        onSelect: (pageData: InternalRowData[]) => void\n      }\n    >\n    | undefined,\n  rawPaginatedDataRef: Ref<InternalRowData[]>,\n  doCheckAll: (checkWholeTable?: boolean) => void,\n  doUncheckAll: (checkWholeTable?: boolean) => void\n): (key: string | number) => void {\n  if (!options)\n    return () => {}\n  return (key: string | number) => {\n    for (const option of options) {\n      switch (key) {\n        case allKey:\n          doCheckAll(true)\n          return\n        case noneKey:\n          doUncheckAll(true)\n          return\n        default:\n          if (typeof option === 'object' && option.key === key) {\n            option.onSelect(rawPaginatedDataRef.value)\n            return\n          }\n      }\n    }\n  }\n}\n\nfunction createDropdownOptions(\n  options:\n    | Array<\n      | DataTableSelectionOption\n      | {\n        label: string\n        key: string | number\n        onSelect: (pageData: InternalRowData[]) => void\n      }\n    >\n    | undefined,\n  localeRef: NLocale['DataTable']\n): Array<{ label: string, key: string | number }> {\n  if (!options)\n    return []\n  return options.map((option) => {\n    switch (option) {\n      case 'all':\n        return {\n          label: localeRef.checkTableAll,\n          key: allKey\n        }\n      case 'none':\n        return {\n          label: localeRef.uncheckTableAll,\n          key: noneKey\n        }\n      default:\n        return option\n    }\n  })\n}\n\nexport default defineComponent({\n  name: 'DataTableSelectionMenu',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      props: dataTableProps,\n      localeRef,\n      checkOptionsRef,\n      rawPaginatedDataRef,\n      doCheckAll,\n      doUncheckAll\n    } = inject(dataTableInjectionKey)!\n    const handleSelectRef = computed(() =>\n      createSelectHandler(\n        checkOptionsRef.value,\n        rawPaginatedDataRef,\n        doCheckAll,\n        doUncheckAll\n      )\n    )\n    const optionsRef = computed(() =>\n      createDropdownOptions(checkOptionsRef.value, localeRef.value)\n    )\n    return () => {\n      const { clsPrefix } = props\n      return (\n        <NDropdown\n          theme={dataTableProps.theme?.peers?.Dropdown}\n          themeOverrides={dataTableProps.themeOverrides?.peers?.Dropdown}\n          options={optionsRef.value}\n          onSelect={handleSelectRef.value}\n        >\n          {{\n            default: () => (\n              <NBaseIcon\n                clsPrefix={clsPrefix}\n                class={`${clsPrefix}-data-table-check-extra`}\n              >\n                {{\n                  default: () => <ChevronDownIcon />\n                }}\n              </NBaseIcon>\n            )\n          }}\n        </NDropdown>\n      )\n    }\n  }\n})\n","import type { PropType, VNode, VNodeChild } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type {\n  ColumnKey,\n  TableBaseColumn,\n  TableColumnGroup,\n  TableExpandColumn\n} from '../interface'\nimport type { ColItem, RowItem } from '../use-group-header'\nimport { happensIn, pxfy } from 'seemly'\nimport { defineComponent, Fragment, h, inject, ref } from 'vue'\nimport { VVirtualList } from 'vueuc'\nimport { formatLength } from '../../../_utils'\nimport { NCheckbox } from '../../../checkbox'\nimport { NEllipsis } from '../../../ellipsis'\nimport FilterButton from '../HeaderButton/FilterButton'\nimport ResizeButton from '../HeaderButton/ResizeButton'\nimport SortButton from '../HeaderButton/SortButton'\nimport { dataTableInjectionKey } from '../interface'\nimport {\n  clampValueFollowCSSRules,\n  createNextSorter,\n  getColKey,\n  isColumnFilterable,\n  isColumnResizable,\n  isColumnSortable,\n  isColumnSorting\n} from '../utils'\nimport SelectionMenu from './SelectionMenu'\n\nfunction renderTitle(\n  column: TableExpandColumn | TableBaseColumn | TableColumnGroup\n): VNodeChild {\n  return typeof column.title === 'function'\n    ? column.title(column as never)\n    : column.title\n}\n\nconst VirtualListItemWrapper = defineComponent({\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    id: {\n      type: String,\n      required: true\n    },\n    cols: {\n      type: Array as PropType<ColItem[]>,\n      required: true\n    },\n    width: String\n  },\n  render() {\n    const { clsPrefix, id, cols, width } = this\n    return (\n      <table\n        style={{ tableLayout: 'fixed', width }}\n        class={`${clsPrefix}-data-table-table`}\n      >\n        <colgroup>\n          {cols.map(col => (\n            <col key={col.key} style={col.style}></col>\n          ))}\n        </colgroup>\n        <thead data-n-id={id} class={`${clsPrefix}-data-table-thead`}>\n          {this.$slots.default?.()}\n        </thead>\n      </table>\n    )\n  }\n})\n\nexport default defineComponent({\n  name: 'DataTableHeader',\n  props: {\n    discrete: {\n      type: Boolean,\n      default: true\n    }\n  },\n  setup() {\n    const {\n      mergedClsPrefixRef,\n      scrollXRef,\n      fixedColumnLeftMapRef,\n      fixedColumnRightMapRef,\n      mergedCurrentPageRef,\n      allRowsCheckedRef,\n      someRowsCheckedRef,\n      rowsRef,\n      colsRef,\n      mergedThemeRef,\n      checkOptionsRef,\n      mergedSortStateRef,\n      componentId,\n      mergedTableLayoutRef,\n      headerCheckboxDisabledRef,\n      virtualScrollHeaderRef,\n      headerHeightRef,\n      onUnstableColumnResize,\n      doUpdateResizableWidth,\n      handleTableHeaderScroll,\n      deriveNextSorter,\n      doUncheckAll,\n      doCheckAll\n    } = inject(dataTableInjectionKey)!\n    const virtualListRef = ref<VirtualListInst | null>()\n    const cellElsRef = ref<Record<ColumnKey, HTMLTableCellElement>>({})\n    function getCellActualWidth(key: ColumnKey): number | undefined {\n      const element = cellElsRef.value[key]\n      return element?.getBoundingClientRect().width\n    }\n    function handleCheckboxUpdateChecked(): void {\n      if (allRowsCheckedRef.value) {\n        doUncheckAll()\n      }\n      else {\n        doCheckAll()\n      }\n    }\n    function handleColHeaderClick(\n      e: MouseEvent,\n      column: TableBaseColumn\n    ): void {\n      if (\n        happensIn(e, 'dataTableFilter')\n        || happensIn(e, 'dataTableResizable')\n      ) {\n        return\n      }\n      if (!isColumnSortable(column))\n        return\n      const activeSorter\n        = mergedSortStateRef.value.find(\n          state => state.columnKey === column.key\n        ) || null\n      const nextSorter = createNextSorter(column, activeSorter)\n      deriveNextSorter(nextSorter)\n    }\n    const resizeStartWidthMap = new Map<ColumnKey, number | undefined>()\n    function handleColumnResizeStart(column: TableBaseColumn): void {\n      resizeStartWidthMap.set(column.key, getCellActualWidth(column.key))\n    }\n    function handleColumnResize(\n      column: TableBaseColumn,\n      displacementX: number\n    ): void {\n      const startWidth = resizeStartWidthMap.get(column.key)\n      if (startWidth === undefined) {\n        return\n      }\n      const widthAfterResize = startWidth + displacementX\n      const limitWidth = clampValueFollowCSSRules(\n        widthAfterResize,\n        column.minWidth,\n        column.maxWidth\n      )\n      onUnstableColumnResize(\n        widthAfterResize,\n        limitWidth,\n        column,\n        getCellActualWidth\n      )\n      doUpdateResizableWidth(column, limitWidth)\n    }\n    return {\n      cellElsRef,\n      componentId,\n      mergedSortState: mergedSortStateRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      scrollX: scrollXRef,\n      fixedColumnLeftMap: fixedColumnLeftMapRef,\n      fixedColumnRightMap: fixedColumnRightMapRef,\n      currentPage: mergedCurrentPageRef,\n      allRowsChecked: allRowsCheckedRef,\n      someRowsChecked: someRowsCheckedRef,\n      rows: rowsRef,\n      cols: colsRef,\n      mergedTheme: mergedThemeRef,\n      checkOptions: checkOptionsRef,\n      mergedTableLayout: mergedTableLayoutRef,\n      headerCheckboxDisabled: headerCheckboxDisabledRef,\n      headerHeight: headerHeightRef,\n      virtualScrollHeader: virtualScrollHeaderRef,\n      // reduce dts: string ref only, type unused in render\n      virtualListRef: virtualListRef as unknown,\n      handleCheckboxUpdateChecked,\n      handleColHeaderClick,\n      handleTableHeaderScroll,\n      handleColumnResizeStart,\n      handleColumnResize\n    }\n  },\n  render() {\n    const {\n      cellElsRef,\n      mergedClsPrefix,\n      fixedColumnLeftMap,\n      fixedColumnRightMap,\n      currentPage,\n      allRowsChecked,\n      someRowsChecked,\n      rows,\n      cols,\n      mergedTheme,\n      checkOptions,\n      componentId,\n      discrete,\n      mergedTableLayout,\n      headerCheckboxDisabled,\n      mergedSortState,\n      virtualScrollHeader,\n      handleColHeaderClick,\n      handleCheckboxUpdateChecked,\n      handleColumnResizeStart,\n      handleColumnResize\n    } = this\n    let hasEllipsis = false\n\n    const renderRow = (\n      row: RowItem[],\n      getLeft: ((index: number) => number) | null,\n      headerHeightPx: string | undefined\n    ) =>\n      row.map(({ column, colIndex, colSpan, rowSpan, isLast }) => {\n        const key = getColKey(column)\n        const { ellipsis } = column\n        if (!hasEllipsis && ellipsis)\n          hasEllipsis = true\n        const createColumnVNode = (): VNode | null => {\n          if (column.type === 'selection') {\n            return column.multiple !== false ? (\n              <>\n                <NCheckbox\n                  key={currentPage}\n                  privateInsideTable\n                  checked={allRowsChecked}\n                  indeterminate={someRowsChecked}\n                  disabled={headerCheckboxDisabled}\n                  onUpdateChecked={handleCheckboxUpdateChecked}\n                />\n                {checkOptions ? (\n                  <SelectionMenu clsPrefix={mergedClsPrefix} />\n                ) : null}\n              </>\n            ) : null\n          }\n          return (\n            <>\n              <div class={`${mergedClsPrefix}-data-table-th__title-wrapper`}>\n                <div class={`${mergedClsPrefix}-data-table-th__title`}>\n                  {ellipsis === true || (ellipsis && !ellipsis.tooltip) ? (\n                    <div class={`${mergedClsPrefix}-data-table-th__ellipsis`}>\n                      {renderTitle(column)}\n                    </div>\n                  ) : ellipsis && typeof ellipsis === 'object' ? (\n                    <NEllipsis\n                      {...ellipsis}\n                      theme={mergedTheme.peers.Ellipsis}\n                      themeOverrides={mergedTheme.peerOverrides.Ellipsis}\n                    >\n                      {{\n                        default: () => renderTitle(column)\n                      }}\n                    </NEllipsis>\n                  ) : (\n                    renderTitle(column)\n                  )}\n                </div>\n                {isColumnSortable(column) ? (\n                  <SortButton column={column as TableBaseColumn} />\n                ) : null}\n              </div>\n              {isColumnFilterable(column) ? (\n                <FilterButton\n                  column={column as TableBaseColumn}\n                  options={column.filterOptions}\n                />\n              ) : null}\n              {isColumnResizable(column) ? (\n                <ResizeButton\n                  onResizeStart={() => {\n                    handleColumnResizeStart(column as TableBaseColumn)\n                  }}\n                  onResize={(displacementX) => {\n                    handleColumnResize(column as TableBaseColumn, displacementX)\n                  }}\n                />\n              ) : null}\n            </>\n          )\n        }\n        const leftFixed = key in fixedColumnLeftMap\n        const rightFixed = key in fixedColumnRightMap\n        const CellComponent = (getLeft && !column.fixed ? 'div' : 'th') as 'th'\n        return (\n          <CellComponent\n            ref={el => (cellElsRef[key] = el as HTMLTableCellElement)}\n            key={key}\n            style={[\n              getLeft && !column.fixed\n                ? {\n                    position: 'absolute',\n                    left: pxfy(getLeft(colIndex)),\n                    top: 0,\n                    bottom: 0\n                  }\n                : {\n                    left: pxfy(fixedColumnLeftMap[key]?.start),\n                    right: pxfy(fixedColumnRightMap[key]?.start)\n                  },\n              {\n                width: pxfy(column.width),\n                textAlign: column.titleAlign || column.align,\n                height: headerHeightPx\n              }\n            ]}\n            colspan={colSpan}\n            rowspan={rowSpan}\n            data-col-key={key}\n            class={[\n              `${mergedClsPrefix}-data-table-th`,\n              (leftFixed || rightFixed)\n              && `${mergedClsPrefix}-data-table-th--fixed-${\n                leftFixed ? 'left' : 'right'\n              }`,\n              {\n                [`${mergedClsPrefix}-data-table-th--sorting`]: isColumnSorting(\n                  column,\n                  mergedSortState\n                ),\n                [`${mergedClsPrefix}-data-table-th--filterable`]:\n                  isColumnFilterable(column),\n                [`${mergedClsPrefix}-data-table-th--sortable`]:\n                  isColumnSortable(column),\n                [`${mergedClsPrefix}-data-table-th--selection`]:\n                  column.type === 'selection',\n                [`${mergedClsPrefix}-data-table-th--last`]: isLast\n              },\n              column.className\n            ]}\n            onClick={\n              column.type !== 'selection'\n              && column.type !== 'expand'\n              && !('children' in column)\n                ? (e) => {\n                    handleColHeaderClick(e, column)\n                  }\n                : undefined\n            }\n          >\n            {createColumnVNode()}\n          </CellComponent>\n        )\n      })\n\n    if (virtualScrollHeader) {\n      const { headerHeight } = this\n\n      let leftFixedColsCount = 0\n      let rightFixedColsCount = 0\n\n      cols.forEach((col) => {\n        if (col.column.fixed === 'left') {\n          leftFixedColsCount++\n        }\n        else if (col.column.fixed === 'right') {\n          rightFixedColsCount++\n        }\n      })\n\n      return (\n        <VVirtualList\n          ref=\"virtualListRef\"\n          class={`${mergedClsPrefix}-data-table-base-table-header`}\n          style={{ height: pxfy(headerHeight) }}\n          onScroll={this.handleTableHeaderScroll}\n          columns={cols}\n          itemSize={headerHeight}\n          showScrollbar={false}\n          items={[{}]}\n          itemResizable={false}\n          visibleItemsTag={VirtualListItemWrapper}\n          visibleItemsProps={{\n            clsPrefix: mergedClsPrefix,\n            id: componentId,\n            cols,\n            width: formatLength(this.scrollX)\n          }}\n          renderItemWithCols={({ startColIndex, endColIndex, getLeft }) => {\n            const row = cols\n              .map<RowItem>((col, index) => {\n                return {\n                  column: col.column,\n                  isLast: index === cols.length - 1,\n                  colIndex: col.index,\n                  colSpan: 1,\n                  rowSpan: 1\n                }\n              })\n              .filter(({ column }, index) => {\n                if (startColIndex <= index && index <= endColIndex) {\n                  return true\n                }\n                if (column.fixed) {\n                  return true\n                }\n                return false\n              })\n\n            const cells = renderRow(row, getLeft, pxfy(headerHeight))\n\n            cells.splice(\n              leftFixedColsCount,\n              0,\n              <th\n                colspan={cols.length - leftFixedColsCount - rightFixedColsCount}\n                style={{\n                  pointerEvents: 'none',\n                  visibility: 'hidden',\n                  height: 0\n                }}\n              />\n            )\n            return <tr style={{ position: 'relative' }}>{cells}</tr>\n          }}\n        >\n          {{\n            default: ({\n              renderedItemWithCols\n            }: {\n              renderedItemWithCols: VNodeChild\n            }) => renderedItemWithCols\n          }}\n        </VVirtualList>\n      )\n    }\n\n    const theadVNode = (\n      <thead\n        class={`${mergedClsPrefix}-data-table-thead`}\n        data-n-id={componentId}\n      >\n        {rows.map((row) => {\n          return (\n            <tr class={`${mergedClsPrefix}-data-table-tr`}>\n              {renderRow(row, null, undefined)}\n            </tr>\n          )\n        })}\n      </thead>\n    )\n    if (!discrete) {\n      return theadVNode\n    }\n    const { handleTableHeaderScroll, scrollX } = this\n    return (\n      <div\n        class={`${mergedClsPrefix}-data-table-base-table-header`}\n        onScroll={handleTableHeaderScroll}\n      >\n        <table\n          class={`${mergedClsPrefix}-data-table-table`}\n          style={{\n            minWidth: formatLength(scrollX),\n            tableLayout: mergedTableLayout\n          }}\n        >\n          <colgroup>\n            {cols.map(col => (\n              <col key={col.key} style={col.style} />\n            ))}\n          </colgroup>\n          {theadVNode}\n        </table>\n      </div>\n    )\n  }\n})\n","import type { CNode } from 'css-render'\nimport type { CSSProperties, PropType, VNode, VNodeChild } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../../_internal'\nimport type {\n  ColumnKey,\n  MainTableBodyRef,\n  RowData,\n  RowKey,\n  SummaryRowData,\n  TmNode\n} from '../interface'\nimport type { ColItem } from '../use-group-header'\nimport { pxfy, repeat } from 'seemly'\nimport { useMemo } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  inject,\n  onUnmounted,\n  ref,\n  watchEffect\n} from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NScrollbar } from '../../../_internal'\nimport { cssrAnchorMetaName } from '../../../_mixins/common'\nimport { formatLength, resolveSlot, warn } from '../../../_utils'\nimport { c } from '../../../_utils/cssr'\nimport { configProviderInjectionKey } from '../../../config-provider/src/context'\nimport { NEmpty } from '../../../empty'\nimport { dataTableInjectionKey } from '../interface'\nimport { createRowClassName, getColKey, isColumnSorting } from '../utils'\nimport RenderSafeCheckbox from './BodyCheckbox'\nimport RenderSafeRadio from './BodyRadio'\nimport Cell from './Cell'\nimport ExpandTrigger from './ExpandTrigger'\nimport TableHeader from './Header'\n\ninterface StyleCProps {\n  leftActiveFixedColKey: ColumnKey | null\n  leftActiveFixedChildrenColKeys: ColumnKey[]\n  rightActiveFixedColKey: ColumnKey | null\n  rightActiveFixedChildrenColKeys: ColumnKey[]\n  componentId: string\n}\n\ninterface NormalRowRenderInfo {\n  striped: boolean\n  tmNode: TmNode\n  key: RowKey\n  index: number\n}\n\ntype RowRenderInfo\n  = | {\n    isSummaryRow: true\n    key: RowKey\n    tmNode: {\n      rawNode: SummaryRowData\n      disabled: boolean\n    }\n    index: number\n  }\n  | NormalRowRenderInfo\n  | {\n    isExpandedRow: true\n    tmNode: TmNode\n    key: RowKey\n    index: number\n  }\n\nfunction flatten(\n  rowInfos: NormalRowRenderInfo[],\n  expandedRowKeys: Set<RowKey>\n): NormalRowRenderInfo[] {\n  const fRows: NormalRowRenderInfo[] = []\n  function traverse(rs: TmNode[], rootIndex: number): void {\n    rs.forEach((r) => {\n      if (r.children && expandedRowKeys.has(r.key)) {\n        fRows.push({\n          tmNode: r,\n          striped: false,\n          key: r.key,\n          index: rootIndex\n        })\n        traverse(r.children, rootIndex)\n      }\n      else {\n        fRows.push({\n          key: r.key,\n          tmNode: r,\n          striped: false,\n          index: rootIndex\n        })\n      }\n    })\n  }\n  rowInfos.forEach((rowInfo) => {\n    fRows.push(rowInfo)\n    const { children } = rowInfo.tmNode\n    if (children && expandedRowKeys.has(rowInfo.key)) {\n      traverse(children, rowInfo.index)\n    }\n  })\n  return fRows\n}\n\nconst VirtualListItemWrapper = defineComponent({\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    id: {\n      type: String,\n      required: true\n    },\n    cols: {\n      type: Array as PropType<ColItem[]>,\n      required: true\n    },\n    onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n    onMouseleave: Function as PropType<(e: MouseEvent) => void>\n  },\n  render() {\n    const { clsPrefix, id, cols, onMouseenter, onMouseleave } = this\n    return (\n      <table\n        style={{ tableLayout: 'fixed' }}\n        class={`${clsPrefix}-data-table-table`}\n        onMouseenter={onMouseenter}\n        onMouseleave={onMouseleave}\n      >\n        <colgroup>\n          {cols.map(col => (\n            <col key={col.key} style={col.style}></col>\n          ))}\n        </colgroup>\n        <tbody data-n-id={id} class={`${clsPrefix}-data-table-tbody`}>\n          {this.$slots.default?.()}\n        </tbody>\n      </table>\n    )\n  }\n})\n\nexport default defineComponent({\n  name: 'DataTableBody',\n  props: {\n    onResize: Function as PropType<(e: ResizeObserverEntry) => void>,\n    showHeader: Boolean,\n    flexHeight: Boolean,\n    bodyStyle: Object as PropType<CSSProperties>\n  },\n  setup(props) {\n    const {\n      slots: dataTableSlots,\n      bodyWidthRef,\n      mergedExpandedRowKeysRef,\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      scrollXRef,\n      colsRef,\n      paginatedDataRef,\n      rawPaginatedDataRef,\n      fixedColumnLeftMapRef,\n      fixedColumnRightMapRef,\n      mergedCurrentPageRef,\n      rowClassNameRef,\n      leftActiveFixedColKeyRef,\n      leftActiveFixedChildrenColKeysRef,\n      rightActiveFixedColKeyRef,\n      rightActiveFixedChildrenColKeysRef,\n      renderExpandRef,\n      hoverKeyRef,\n      summaryRef,\n      mergedSortStateRef,\n      virtualScrollRef,\n      virtualScrollXRef,\n      heightForRowRef,\n      minRowHeightRef,\n      componentId,\n      mergedTableLayoutRef,\n      childTriggerColIndexRef,\n      indentRef,\n      rowPropsRef,\n      stripedRef,\n      loadingRef,\n      onLoadRef,\n      loadingKeySetRef,\n      expandableRef,\n      stickyExpandedRowsRef,\n      renderExpandIconRef,\n      summaryPlacementRef,\n      treeMateRef,\n      scrollbarPropsRef,\n      setHeaderScrollLeft,\n      doUpdateExpandedRowKeys,\n      handleTableBodyScroll,\n      doCheck,\n      doUncheck,\n      renderCell,\n      xScrollableRef,\n      explicitlyScrollableRef\n    } = inject(dataTableInjectionKey)!\n    const NConfigProvider = inject(configProviderInjectionKey, null)\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n    const virtualListRef = ref<VirtualListInst | null>(null)\n    const emptyElRef = ref<HTMLElement | null>(null)\n    const mergedRenderEmptyRef = computed(() => {\n      return NConfigProvider?.mergedComponentPropsRef.value?.DataTable\n        ?.renderEmpty\n    })\n    const emptyRef = useMemo(() => paginatedDataRef.value.length === 0)\n    const shouldDisplayVirtualListRef = useMemo(\n      () => virtualScrollRef.value && !emptyRef.value\n    )\n    let lastSelectedKey: string | number = ''\n    const mergedExpandedRowKeySetRef = computed(() => {\n      return new Set(mergedExpandedRowKeysRef.value)\n    })\n    function getRowInfo(key: RowKey): RowData | undefined {\n      return treeMateRef.value.getNode(key)?.rawNode\n    }\n    function handleCheckboxUpdateChecked(\n      tmNode: { key: RowKey },\n      checked: boolean,\n      shiftKey: boolean\n    ): void {\n      const rowInfo = getRowInfo(tmNode.key)\n      if (!rowInfo) {\n        warn('data-table', `fail to get row data with key ${tmNode.key}`)\n        return\n      }\n      if (shiftKey) {\n        const lastIndex = paginatedDataRef.value.findIndex(\n          item => item.key === lastSelectedKey\n        )\n        if (lastIndex !== -1) {\n          const currentIndex = paginatedDataRef.value.findIndex(\n            item => item.key === tmNode.key\n          )\n          const start = Math.min(lastIndex, currentIndex)\n          const end = Math.max(lastIndex, currentIndex)\n          const rowKeysToCheck: RowKey[] = []\n          paginatedDataRef.value.slice(start, end + 1).forEach((r) => {\n            if (!r.disabled) {\n              rowKeysToCheck.push(r.key)\n            }\n          })\n          if (checked) {\n            doCheck(rowKeysToCheck, false, rowInfo)\n          }\n          else {\n            doUncheck(rowKeysToCheck, rowInfo)\n          }\n          lastSelectedKey = tmNode.key\n          return\n        }\n      }\n      if (checked) {\n        doCheck(tmNode.key, false, rowInfo)\n      }\n      else {\n        doUncheck(tmNode.key, rowInfo)\n      }\n      lastSelectedKey = tmNode.key\n    }\n\n    function handleRadioUpdateChecked(tmNode: { key: RowKey }): void {\n      const rowInfo = getRowInfo(tmNode.key)\n      if (!rowInfo) {\n        warn('data-table', `fail to get row data with key ${tmNode.key}`)\n        return\n      }\n      doCheck(tmNode.key, true, rowInfo)\n    }\n\n    function getScrollContainer(): HTMLElement | null {\n      if (shouldDisplayVirtualListRef.value) {\n        return virtualListContainer()\n      }\n      const { value } = scrollbarInstRef\n      if (value)\n        return value.containerRef\n      return null\n    }\n    // For table row with children, tmNode is non-nullable\n    // For table row is expandable but is not tree data, tmNode is null\n    function handleUpdateExpanded(key: RowKey, tmNode: TmNode | null): void {\n      if (loadingKeySetRef.value.has(key))\n        return\n      const { value: mergedExpandedRowKeys } = mergedExpandedRowKeysRef\n      const index = mergedExpandedRowKeys.indexOf(key)\n      const nextExpandedKeys = Array.from(mergedExpandedRowKeys)\n      if (~index) {\n        nextExpandedKeys.splice(index, 1)\n        doUpdateExpandedRowKeys(nextExpandedKeys)\n      }\n      else {\n        if (tmNode && !tmNode.isLeaf && !tmNode.shallowLoaded) {\n          loadingKeySetRef.value.add(key)\n          void onLoadRef\n            .value?.(tmNode.rawNode)\n            .then(() => {\n              const { value: futureMergedExpandedRowKeys }\n                = mergedExpandedRowKeysRef\n              const futureNextExpandedKeys = Array.from(\n                futureMergedExpandedRowKeys\n              )\n              const index = futureNextExpandedKeys.indexOf(key)\n              if (!~index) {\n                futureNextExpandedKeys.push(key)\n              }\n              doUpdateExpandedRowKeys(futureNextExpandedKeys)\n            })\n            .finally(() => {\n              loadingKeySetRef.value.delete(key)\n            })\n        }\n        else {\n          nextExpandedKeys.push(key)\n          doUpdateExpandedRowKeys(nextExpandedKeys)\n        }\n      }\n    }\n    function handleMouseleaveTable(): void {\n      hoverKeyRef.value = null\n    }\n    function virtualListContainer(): HTMLElement | null {\n      const { value } = virtualListRef\n      return value?.listElRef || null\n    }\n    function virtualListContent(): HTMLElement | null {\n      const { value } = virtualListRef\n      return value?.itemsElRef || null\n    }\n    function handleVirtualListScroll(e: Event): void {\n      handleTableBodyScroll(e)\n      scrollbarInstRef.value?.sync()\n    }\n    function handleVirtualListResize(e: ResizeObserverEntry): void {\n      const { onResize } = props\n      if (onResize)\n        onResize(e)\n      scrollbarInstRef.value?.sync()\n    }\n    const exposedMethods: MainTableBodyRef = {\n      getScrollContainer,\n      scrollTo(arg0: any, arg1?: any) {\n        if (virtualScrollRef.value) {\n          virtualListRef.value?.scrollTo(arg0, arg1)\n        }\n        else {\n          scrollbarInstRef.value?.scrollTo(arg0, arg1)\n        }\n      }\n    }\n\n    // manually control shadow style to avoid rerender\n    const style = c([\n      ({ props: cProps }: { props: StyleCProps }) => {\n        const createActiveLeftFixedStyle = (\n          leftActiveFixedColKey: ColumnKey | null\n        ): CNode | null => {\n          if (leftActiveFixedColKey === null)\n            return null\n          return c(\n            `[data-n-id=\"${cProps.componentId}\"] [data-col-key=\"${leftActiveFixedColKey}\"]::after`,\n            { boxShadow: 'var(--n-box-shadow-after)' }\n          )\n        }\n\n        const createActiveRightFixedStyle = (\n          rightActiveFixedColKey: ColumnKey | null\n        ): CNode | null => {\n          if (rightActiveFixedColKey === null)\n            return null\n          return c(\n            `[data-n-id=\"${cProps.componentId}\"] [data-col-key=\"${rightActiveFixedColKey}\"]::before`,\n            { boxShadow: 'var(--n-box-shadow-before)' }\n          )\n        }\n\n        return c([\n          createActiveLeftFixedStyle(cProps.leftActiveFixedColKey),\n          createActiveRightFixedStyle(cProps.rightActiveFixedColKey),\n          cProps.leftActiveFixedChildrenColKeys.map(leftActiveFixedColKey =>\n            createActiveLeftFixedStyle(leftActiveFixedColKey)\n          ),\n          cProps.rightActiveFixedChildrenColKeys.map(rightActiveFixedColKey =>\n            createActiveRightFixedStyle(rightActiveFixedColKey)\n          )\n        ])\n      }\n    ])\n    let fixedStyleMounted = false\n    watchEffect(() => {\n      const { value: leftActiveFixedColKey } = leftActiveFixedColKeyRef\n      const { value: leftActiveFixedChildrenColKeys }\n        = leftActiveFixedChildrenColKeysRef\n      const { value: rightActiveFixedColKey } = rightActiveFixedColKeyRef\n      const { value: rightActiveFixedChildrenColKeys }\n        = rightActiveFixedChildrenColKeysRef\n      if (\n        !fixedStyleMounted\n        && leftActiveFixedColKey === null\n        && rightActiveFixedColKey === null\n      ) {\n        return\n      }\n\n      const cProps: StyleCProps = {\n        leftActiveFixedColKey,\n        leftActiveFixedChildrenColKeys,\n        rightActiveFixedColKey,\n        rightActiveFixedChildrenColKeys,\n        componentId\n      }\n      style.mount({\n        id: `n-${componentId}`,\n        force: true,\n        props: cProps,\n        anchorMetaName: cssrAnchorMetaName,\n        parent: NConfigProvider?.styleMountTarget\n      })\n      fixedStyleMounted = true\n    })\n    onUnmounted(() => {\n      style.unmount({\n        id: `n-${componentId}`,\n        parent: NConfigProvider?.styleMountTarget\n      })\n    })\n    return {\n      bodyWidth: bodyWidthRef,\n      summaryPlacement: summaryPlacementRef,\n      dataTableSlots,\n      componentId,\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      virtualListRef: virtualListRef as unknown,\n      emptyElRef,\n      summary: summaryRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      scrollX: scrollXRef,\n      cols: colsRef,\n      loading: loadingRef,\n      shouldDisplayVirtualList: shouldDisplayVirtualListRef,\n      empty: emptyRef,\n      paginatedDataAndInfo: computed(() => {\n        const { value: striped } = stripedRef\n        let hasChildren = false\n        const data = paginatedDataRef.value.map(\n          striped\n            ? (tmNode, index) => {\n                if (!tmNode.isLeaf)\n                  hasChildren = true\n                return {\n                  tmNode,\n                  key: tmNode.key,\n                  striped: index % 2 === 1,\n                  index\n                }\n              }\n            : (tmNode, index) => {\n                if (!tmNode.isLeaf)\n                  hasChildren = true\n                return {\n                  tmNode,\n                  key: tmNode.key,\n                  striped: false,\n                  index\n                }\n              }\n        )\n        return {\n          data,\n          hasChildren\n        }\n      }),\n      rawPaginatedData: rawPaginatedDataRef,\n      fixedColumnLeftMap: fixedColumnLeftMapRef,\n      fixedColumnRightMap: fixedColumnRightMapRef,\n      currentPage: mergedCurrentPageRef,\n      rowClassName: rowClassNameRef,\n      renderExpand: renderExpandRef,\n      mergedExpandedRowKeySet: mergedExpandedRowKeySetRef,\n      hoverKey: hoverKeyRef,\n      mergedSortState: mergedSortStateRef,\n      virtualScroll: virtualScrollRef,\n      virtualScrollX: virtualScrollXRef,\n      heightForRow: heightForRowRef,\n      minRowHeight: minRowHeightRef,\n      mergedTableLayout: mergedTableLayoutRef,\n      childTriggerColIndex: childTriggerColIndexRef,\n      indent: indentRef,\n      rowProps: rowPropsRef,\n      loadingKeySet: loadingKeySetRef,\n      expandable: expandableRef,\n      stickyExpandedRows: stickyExpandedRowsRef,\n      renderExpandIcon: renderExpandIconRef,\n      scrollbarProps: scrollbarPropsRef,\n      setHeaderScrollLeft,\n      handleVirtualListScroll,\n      handleVirtualListResize,\n      handleMouseleaveTable,\n      virtualListContainer,\n      virtualListContent,\n      handleTableBodyScroll,\n      handleCheckboxUpdateChecked,\n      handleRadioUpdateChecked,\n      handleUpdateExpanded,\n      renderCell,\n      explicitlyScrollable: explicitlyScrollableRef,\n      xScrollable: xScrollableRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const {\n      mergedTheme,\n      scrollX,\n      mergedClsPrefix,\n      explicitlyScrollable,\n      xScrollable,\n      loadingKeySet,\n      onResize,\n      setHeaderScrollLeft,\n      empty,\n      shouldDisplayVirtualList\n    } = this\n\n    const contentStyle: CSSProperties = {\n      minWidth: formatLength(scrollX) || '100%'\n    }\n    if (scrollX)\n      contentStyle.width = '100%'\n\n    const createEmptyNode = (): VNode => (\n      <div\n        class={[\n          `${mergedClsPrefix}-data-table-empty`,\n          this.loading && `${mergedClsPrefix}-data-table-empty--hide`\n        ]}\n        style={[\n          this.bodyStyle,\n          xScrollable\n            ? 'position: sticky; left: 0; width: var(--n-scrollbar-current-width);'\n            : undefined\n        ]}\n        ref=\"emptyElRef\"\n      >\n        {resolveSlot(this.dataTableSlots.empty, () => {\n          return [\n            this.mergedRenderEmpty?.() || (\n              <NEmpty\n                theme={this.mergedTheme.peers.Empty}\n                themeOverrides={this.mergedTheme.peerOverrides.Empty}\n              />\n            )\n          ]\n        })}\n      </div>\n    )\n\n    const tableNode = (\n      <NScrollbar\n        {...this.scrollbarProps}\n        ref=\"scrollbarInstRef\"\n        scrollable={explicitlyScrollable || xScrollable}\n        class={`${mergedClsPrefix}-data-table-base-table-body`}\n        style={!empty ? this.bodyStyle : undefined}\n        theme={mergedTheme.peers.Scrollbar}\n        themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n        contentStyle={contentStyle}\n        container={\n          shouldDisplayVirtualList ? this.virtualListContainer : undefined\n        }\n        content={shouldDisplayVirtualList ? this.virtualListContent : undefined}\n        horizontalRailStyle={{ zIndex: 3 }}\n        verticalRailStyle={{ zIndex: 3 }}\n        internalExposeWidthCssVar={xScrollable && empty}\n        xScrollable={xScrollable}\n        onScroll={\n          shouldDisplayVirtualList ? undefined : this.handleTableBodyScroll\n        }\n        internalOnUpdateScrollLeft={setHeaderScrollLeft}\n        onResize={onResize}\n      >\n        {{\n          default: () => {\n            if (\n              this.empty\n              && !this.showHeader\n              && (this.explicitlyScrollable || this.xScrollable)\n            ) {\n              // Placeholder for outer header to sync scroll state\n              return createEmptyNode()\n            }\n            // coordinate to pass if there are cells that cross row & col\n            const cordToPass: Record<number, number[]> = {}\n            // coordinate to related hover keys\n            const cordKey: Record<number, Record<number, RowKey[]>> = {}\n            const {\n              cols,\n              paginatedDataAndInfo,\n              mergedTheme,\n              fixedColumnLeftMap,\n              fixedColumnRightMap,\n              currentPage,\n              rowClassName,\n              mergedSortState,\n              mergedExpandedRowKeySet,\n              stickyExpandedRows,\n              componentId,\n              childTriggerColIndex,\n              expandable,\n              rowProps,\n              handleMouseleaveTable,\n              renderExpand,\n              summary,\n              handleCheckboxUpdateChecked,\n              handleRadioUpdateChecked,\n              handleUpdateExpanded,\n              heightForRow,\n              minRowHeight,\n              virtualScrollX\n            } = this\n            const { length: colCount } = cols\n\n            let mergedData: RowRenderInfo[]\n\n            // if there is children in data, we should expand mergedData first\n\n            const { data: paginatedData, hasChildren } = paginatedDataAndInfo\n\n            const mergedPaginationData = hasChildren\n              ? flatten(paginatedData, mergedExpandedRowKeySet)\n              : paginatedData\n\n            if (summary) {\n              const summaryRows = summary(this.rawPaginatedData)\n              if (Array.isArray(summaryRows)) {\n                const summaryRowData = summaryRows.map((row, i) => ({\n                  isSummaryRow: true as const,\n                  key: `__n_summary__${i}`,\n                  tmNode: {\n                    rawNode: row,\n                    disabled: true\n                  },\n                  index: -1\n                }))\n                mergedData\n                  = this.summaryPlacement === 'top'\n                    ? [...summaryRowData, ...mergedPaginationData]\n                    : [...mergedPaginationData, ...summaryRowData]\n              }\n              else {\n                const summaryRowData = {\n                  isSummaryRow: true as const,\n                  key: '__n_summary__',\n                  tmNode: {\n                    rawNode: summaryRows,\n                    disabled: true\n                  },\n                  index: -1\n                }\n                mergedData\n                  = this.summaryPlacement === 'top'\n                    ? [summaryRowData, ...mergedPaginationData]\n                    : [...mergedPaginationData, summaryRowData]\n              }\n            }\n            else {\n              mergedData = mergedPaginationData\n            }\n\n            const indentStyle = hasChildren\n              ? { width: pxfy(this.indent) }\n              : undefined\n\n            // Tile the data of the expanded row\n            const displayedData: RowRenderInfo[] = []\n            mergedData.forEach((rowInfo) => {\n              if (\n                renderExpand\n                && mergedExpandedRowKeySet.has(rowInfo.key)\n                && (!expandable || expandable(rowInfo.tmNode.rawNode))\n              ) {\n                displayedData.push(rowInfo, {\n                  isExpandedRow: true,\n                  key: `${rowInfo.key}-expand`, // solve key repeat of the expanded row\n                  tmNode: rowInfo.tmNode as TmNode,\n                  index: rowInfo.index\n                })\n              }\n              else {\n                displayedData.push(rowInfo)\n              }\n            })\n\n            const { length: rowCount } = displayedData\n\n            const rowIndexToKey: Record<number, RowKey> = {}\n            paginatedData.forEach(({ tmNode }, rowIndex) => {\n              rowIndexToKey[rowIndex] = tmNode.key\n            })\n\n            const bodyWidth = stickyExpandedRows ? this.bodyWidth : null\n            const bodyWidthPx\n              = bodyWidth === null ? undefined : `${bodyWidth}px`\n\n            const CellComponent = (this.virtualScrollX ? 'div' : 'td') as 'td'\n            let leftFixedColsCount = 0\n            let rightFixedColsCount = 0\n            if (virtualScrollX) {\n              cols.forEach((col) => {\n                if (col.column.fixed === 'left') {\n                  leftFixedColsCount++\n                }\n                else if (col.column.fixed === 'right') {\n                  rightFixedColsCount++\n                }\n              })\n            }\n\n            const renderRow = ({\n              // Normal\n              rowInfo,\n              displayedRowIndex,\n              isVirtual,\n              // Virtual X\n              isVirtualX,\n              startColIndex,\n              endColIndex,\n              getLeft\n            }: {\n              rowInfo: RowRenderInfo\n              displayedRowIndex: number\n              isVirtual: boolean\n              // for horizontal virtual list\n              isVirtualX: boolean\n              startColIndex: number\n              endColIndex: number\n              getLeft: (index: number) => number\n            }): VNode => {\n              const { index: actualRowIndex } = rowInfo\n              if ('isExpandedRow' in rowInfo) {\n                const {\n                  tmNode: { key, rawNode }\n                } = rowInfo\n                return (\n                  <tr\n                    class={`${mergedClsPrefix}-data-table-tr ${mergedClsPrefix}-data-table-tr--expanded`}\n                    key={`${key}__expand`}\n                  >\n                    <td\n                      class={[\n                        `${mergedClsPrefix}-data-table-td`,\n                        `${mergedClsPrefix}-data-table-td--last-col`,\n                        displayedRowIndex + 1 === rowCount\n                        && `${mergedClsPrefix}-data-table-td--last-row`\n                      ]}\n                      colspan={colCount}\n                    >\n                      {stickyExpandedRows ? (\n                        <div\n                          class={`${mergedClsPrefix}-data-table-expand`}\n                          style={{\n                            width: bodyWidthPx\n                          }}\n                        >\n                          {renderExpand!(rawNode, actualRowIndex)}\n                        </div>\n                      ) : (\n                        renderExpand!(rawNode, actualRowIndex)\n                      )}\n                    </td>\n                  </tr>\n                )\n              }\n              const isSummary = 'isSummaryRow' in rowInfo\n              const striped = !isSummary && rowInfo.striped\n              const { tmNode, key: rowKey } = rowInfo\n              const { rawNode: rowData } = tmNode\n              const expanded = mergedExpandedRowKeySet.has(rowKey)\n              const props = rowProps\n                ? rowProps(rowData, actualRowIndex)\n                : undefined\n              const mergedRowClassName\n                = typeof rowClassName === 'string'\n                  ? rowClassName\n                  : createRowClassName(rowData, actualRowIndex, rowClassName)\n              const iteratedCols = isVirtualX\n                ? cols.filter((col, index) => {\n                    if (startColIndex <= index && index <= endColIndex)\n                      return true\n                    if (col.column.fixed) {\n                      return true\n                    }\n                    return false\n                  })\n                : cols\n              const virtualXRowHeight = isVirtualX\n                ? pxfy(heightForRow?.(rowData, actualRowIndex) || minRowHeight)\n                : undefined\n              const cells = iteratedCols.map((col) => {\n                const colIndex = col.index\n                if (displayedRowIndex in cordToPass) {\n                  const cordOfRowToPass = cordToPass[displayedRowIndex]\n                  const indexInCordOfRowToPass\n                    = cordOfRowToPass.indexOf(colIndex)\n                  if (~indexInCordOfRowToPass) {\n                    cordOfRowToPass.splice(indexInCordOfRowToPass, 1)\n                    return null\n                  }\n                }\n                // TODO: Simplify row calculation\n                const { column } = col\n                const colKey = getColKey(col)\n                const { rowSpan, colSpan } = column\n                const mergedColSpan = isSummary\n                  ? rowInfo.tmNode.rawNode[colKey]?.colSpan || 1 // optional for #1276\n                  : colSpan\n                    ? colSpan(rowData, actualRowIndex)\n                    : 1\n                const mergedRowSpan = isSummary\n                  ? rowInfo.tmNode.rawNode[colKey]?.rowSpan || 1 // optional for #1276\n                  : rowSpan\n                    ? rowSpan(rowData, actualRowIndex)\n                    : 1\n                const isLastCol = colIndex + mergedColSpan === colCount\n                const isLastRow = displayedRowIndex + mergedRowSpan === rowCount\n                const isCrossRowTd = mergedRowSpan > 1\n                if (isCrossRowTd) {\n                  cordKey[displayedRowIndex] = {\n                    [colIndex]: []\n                  }\n                }\n                if (mergedColSpan > 1 || isCrossRowTd) {\n                  for (\n                    let i = displayedRowIndex;\n                    i < displayedRowIndex + mergedRowSpan;\n                    ++i\n                  ) {\n                    if (isCrossRowTd) {\n                      cordKey[displayedRowIndex][colIndex].push(\n                        rowIndexToKey[i]\n                      )\n                    }\n                    for (let j = colIndex; j < colIndex + mergedColSpan; ++j) {\n                      if (i === displayedRowIndex && j === colIndex) {\n                        continue\n                      }\n                      if (!(i in cordToPass)) {\n                        cordToPass[i] = [j]\n                      }\n                      else {\n                        cordToPass[i].push(j)\n                      }\n                    }\n                  }\n                }\n                const hoverKey = isCrossRowTd ? this.hoverKey : null\n                const { cellProps } = column\n                const resolvedCellProps = cellProps?.(rowData, actualRowIndex)\n                const indentOffsetStyle = {\n                  '--indent-offset': '' as string | number\n                }\n                const FinalCellComponent = column.fixed ? 'td' : CellComponent\n                return (\n                  <FinalCellComponent\n                    {...resolvedCellProps}\n                    key={colKey}\n                    style={[\n                      {\n                        textAlign: column.align || undefined,\n                        width: pxfy(column.width)\n                      },\n                      isVirtualX && {\n                        height: virtualXRowHeight\n                      },\n                      isVirtualX && !column.fixed\n                        ? {\n                            position: 'absolute',\n                            left: pxfy(getLeft(colIndex)),\n                            top: 0,\n                            bottom: 0\n                          }\n                        : {\n                            left: pxfy(fixedColumnLeftMap[colKey]?.start),\n                            right: pxfy(fixedColumnRightMap[colKey]?.start)\n                          },\n                      indentOffsetStyle as CSSProperties,\n                      resolvedCellProps?.style || ''\n                    ]}\n                    colspan={mergedColSpan}\n                    rowspan={isVirtual ? undefined : mergedRowSpan}\n                    data-col-key={colKey}\n                    class={[\n                      `${mergedClsPrefix}-data-table-td`,\n                      column.className,\n                      resolvedCellProps?.class,\n                      isSummary && `${mergedClsPrefix}-data-table-td--summary`,\n                      hoverKey !== null\n                      && cordKey[displayedRowIndex][colIndex].includes(\n                        hoverKey\n                      )\n                      && `${mergedClsPrefix}-data-table-td--hover`,\n                      isColumnSorting(column, mergedSortState)\n                      && `${mergedClsPrefix}-data-table-td--sorting`,\n                      column.fixed\n                      && `${mergedClsPrefix}-data-table-td--fixed-${column.fixed}`,\n                      column.align\n                      && `${mergedClsPrefix}-data-table-td--${column.align}-align`,\n                      column.type === 'selection'\n                      && `${mergedClsPrefix}-data-table-td--selection`,\n                      column.type === 'expand'\n                      && `${mergedClsPrefix}-data-table-td--expand`,\n                      isLastCol && `${mergedClsPrefix}-data-table-td--last-col`,\n                      isLastRow && `${mergedClsPrefix}-data-table-td--last-row`\n                    ]}\n                  >\n                    {hasChildren && colIndex === childTriggerColIndex\n                      ? [\n                          repeat(\n                            (indentOffsetStyle['--indent-offset'] = isSummary\n                              ? 0\n                              : rowInfo.tmNode.level),\n                            <div\n                              class={`${mergedClsPrefix}-data-table-indent`}\n                              style={indentStyle}\n                            />\n                          ),\n                          isSummary || rowInfo.tmNode.isLeaf ? (\n                            <div\n                              class={`${mergedClsPrefix}-data-table-expand-placeholder`}\n                            />\n                          ) : (\n                            <ExpandTrigger\n                              class={`${mergedClsPrefix}-data-table-expand-trigger`}\n                              clsPrefix={mergedClsPrefix}\n                              expanded={expanded}\n                              rowData={rowData}\n                              renderExpandIcon={this.renderExpandIcon}\n                              loading={loadingKeySet.has(rowInfo.key)}\n                              onClick={() => {\n                                handleUpdateExpanded(rowKey, rowInfo.tmNode)\n                              }}\n                            />\n                          )\n                        ]\n                      : null}\n                    {column.type === 'selection' ? (\n                      !isSummary ? (\n                        column.multiple === false ? (\n                          <RenderSafeRadio\n                            key={currentPage}\n                            rowKey={rowKey}\n                            disabled={rowInfo.tmNode.disabled}\n                            onUpdateChecked={() => {\n                              handleRadioUpdateChecked(rowInfo.tmNode)\n                            }}\n                          />\n                        ) : (\n                          <RenderSafeCheckbox\n                            key={currentPage}\n                            rowKey={rowKey}\n                            disabled={rowInfo.tmNode.disabled}\n                            onUpdateChecked={(checked: boolean, e) => {\n                              handleCheckboxUpdateChecked(\n                                rowInfo.tmNode,\n                                checked,\n                                e.shiftKey\n                              )\n                            }}\n                          />\n                        )\n                      ) : null\n                    ) : column.type === 'expand' ? (\n                      !isSummary ? (\n                        !column.expandable || column.expandable?.(rowData) ? (\n                          <ExpandTrigger\n                            clsPrefix={mergedClsPrefix}\n                            rowData={rowData}\n                            expanded={expanded}\n                            renderExpandIcon={this.renderExpandIcon}\n                            onClick={() => {\n                              handleUpdateExpanded(rowKey, null)\n                            }}\n                          />\n                        ) : null\n                      ) : null\n                    ) : (\n                      <Cell\n                        clsPrefix={mergedClsPrefix}\n                        index={actualRowIndex}\n                        row={rowData}\n                        column={column}\n                        isSummary={isSummary}\n                        mergedTheme={mergedTheme}\n                        renderCell={this.renderCell}\n                      />\n                    )}\n                  </FinalCellComponent>\n                )\n              })\n\n              if (isVirtualX) {\n                if (leftFixedColsCount && rightFixedColsCount) {\n                  cells.splice(\n                    leftFixedColsCount,\n                    0,\n                    <td\n                      colspan={\n                        cols.length - leftFixedColsCount - rightFixedColsCount\n                      }\n                      style={{\n                        pointerEvents: 'none',\n                        visibility: 'hidden',\n                        height: 0\n                      }}\n                    />\n                  )\n                }\n              }\n\n              const row = (\n                <tr\n                  {...props}\n                  onMouseenter={(e) => {\n                    this.hoverKey = rowKey\n                    props?.onMouseenter?.(e)\n                  }}\n                  key={rowKey}\n                  class={[\n                    `${mergedClsPrefix}-data-table-tr`,\n                    isSummary && `${mergedClsPrefix}-data-table-tr--summary`,\n                    striped && `${mergedClsPrefix}-data-table-tr--striped`,\n                    expanded && `${mergedClsPrefix}-data-table-tr--expanded`,\n                    mergedRowClassName,\n                    props?.class\n                  ]}\n                  style={[\n                    props?.style,\n                    isVirtualX && { height: virtualXRowHeight }\n                  ]}\n                >\n                  {cells}\n                </tr>\n              )\n              return row\n            }\n\n            if (!this.shouldDisplayVirtualList) {\n              return (\n                <>\n                  <table\n                    class={`${mergedClsPrefix}-data-table-table`}\n                    onMouseleave={handleMouseleaveTable}\n                    style={{\n                      tableLayout: this.mergedTableLayout\n                    }}\n                  >\n                    <colgroup>\n                      {cols.map(col => (\n                        <col key={col.key} style={col.style}></col>\n                      ))}\n                    </colgroup>\n                    {this.showHeader ? <TableHeader discrete={false} /> : null}\n                    {!this.empty ? (\n                      <tbody\n                        data-n-id={componentId}\n                        class={`${mergedClsPrefix}-data-table-tbody`}\n                      >\n                        {displayedData.map((rowInfo, displayedRowIndex) => {\n                          return renderRow({\n                            rowInfo,\n                            displayedRowIndex,\n                            isVirtual: false,\n                            isVirtualX: false,\n                            startColIndex: -1,\n                            endColIndex: -1,\n                            getLeft(_index) {\n                              return -1\n                            }\n                          })\n                        })}\n                      </tbody>\n                    ) : null}\n                  </table>\n                  {this.empty ? createEmptyNode() : null}\n                </>\n              )\n            }\n            else {\n              return (\n                <VirtualList\n                  ref=\"virtualListRef\"\n                  items={displayedData}\n                  itemSize={this.minRowHeight}\n                  visibleItemsTag={VirtualListItemWrapper}\n                  visibleItemsProps={{\n                    clsPrefix: mergedClsPrefix,\n                    id: componentId,\n                    cols,\n                    onMouseleave: handleMouseleaveTable\n                  }}\n                  showScrollbar={false}\n                  onResize={this.handleVirtualListResize}\n                  onScroll={this.handleVirtualListScroll}\n                  itemsStyle={contentStyle}\n                  itemResizable={!virtualScrollX}\n                  columns={cols}\n                  renderItemWithCols={\n                    virtualScrollX\n                      ? ({\n                          itemIndex,\n                          item,\n                          startColIndex,\n                          endColIndex,\n                          getLeft\n                        }) => {\n                          return renderRow({\n                            displayedRowIndex: itemIndex,\n                            isVirtual: true,\n                            isVirtualX: true,\n                            rowInfo: item as RowRenderInfo,\n                            startColIndex,\n                            endColIndex,\n                            getLeft\n                          })\n                        }\n                      : undefined\n                  }\n                >\n                  {{\n                    default: ({\n                      item,\n                      index,\n                      renderedItemWithCols\n                    }: {\n                      item: RowRenderInfo\n                      index: number\n                      renderedItemWithCols: VNodeChild\n                    }) => {\n                      if (renderedItemWithCols)\n                        return renderedItemWithCols\n                      return renderRow({\n                        rowInfo: item,\n                        displayedRowIndex: index,\n                        isVirtual: true,\n                        isVirtualX: false,\n                        startColIndex: 0,\n                        endColIndex: 0,\n                        getLeft(_index) {\n                          return 0\n                        }\n                      })\n                    }\n                  }}\n                </VirtualList>\n              )\n            }\n          }\n        }}\n      </NScrollbar>\n    )\n\n    return tableNode\n  }\n})\n","import type {\n  MainTableBodyRef,\n  MainTableHeaderRef,\n  MainTableRef\n} from './interface'\nimport { computed, defineComponent, h, inject, ref, watchEffect } from 'vue'\nimport { formatLength } from '../../_utils'\nimport { dataTableInjectionKey } from './interface'\nimport TableBody from './TableParts/Body'\nimport TableHeader from './TableParts/Header'\n\nexport default defineComponent({\n  name: 'MainTable',\n  setup() {\n    const {\n      mergedClsPrefixRef,\n      rightFixedColumnsRef,\n      leftFixedColumnsRef,\n      bodyWidthRef,\n      maxHeightRef,\n      minHeightRef,\n      flexHeightRef,\n      virtualScrollHeaderRef,\n      syncScrollState,\n      scrollXRef\n    } = inject(dataTableInjectionKey)!\n\n    const headerInstRef = ref<MainTableHeaderRef | null>(null)\n    const bodyInstRef = ref<MainTableBodyRef | null>(null)\n    const selfElRef = ref<HTMLElement | null>(null)\n\n    const fixedStateInitializedRef = ref(\n      !(leftFixedColumnsRef.value.length || rightFixedColumnsRef.value.length)\n    )\n\n    const bodyStyleRef = computed(() => {\n      return {\n        maxHeight: formatLength(maxHeightRef.value),\n        minHeight: formatLength(minHeightRef.value)\n      }\n    })\n    function handleBodyResize(entry: ResizeObserverEntry): void {\n      bodyWidthRef.value = entry.contentRect.width\n      syncScrollState('layout')\n      if (!fixedStateInitializedRef.value) {\n        fixedStateInitializedRef.value = true\n      }\n    }\n    function getHeaderElement(): HTMLElement | null {\n      const { value } = headerInstRef\n      if (value) {\n        if (virtualScrollHeaderRef.value) {\n          return value.virtualListRef?.listElRef || null\n        }\n        else {\n          return value.$el\n        }\n      }\n      return null\n    }\n    function getBodyElement(): HTMLElement | null {\n      const { value } = bodyInstRef\n      if (value) {\n        return value.getScrollContainer()\n      }\n      return null\n    }\n    const exposedMethods: MainTableRef = {\n      getBodyElement,\n      getHeaderElement,\n      scrollTo(arg0: any, arg1?: any) {\n        bodyInstRef.value?.scrollTo(arg0, arg1)\n      }\n    }\n    watchEffect(() => {\n      const { value: selfEl } = selfElRef\n      if (!selfEl)\n        return\n      const transitionDisabledClass = `${mergedClsPrefixRef.value}-data-table-base-table--transition-disabled`\n      if (fixedStateInitializedRef.value) {\n        setTimeout(() => {\n          selfEl.classList.remove(transitionDisabledClass)\n        }, 0)\n      }\n      else {\n        selfEl.classList.add(transitionDisabledClass)\n      }\n    })\n    return {\n      maxHeight: maxHeightRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      selfElRef,\n      // reduce dts: string ref only, type unused in render\n      headerInstRef: headerInstRef as unknown,\n      bodyInstRef: bodyInstRef as unknown,\n      bodyStyle: bodyStyleRef,\n      flexHeight: flexHeightRef,\n      handleBodyResize,\n      scrollX: scrollXRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { mergedClsPrefix, maxHeight, flexHeight } = this\n    const headerInBody = maxHeight === undefined && !flexHeight\n    return (\n      <div class={`${mergedClsPrefix}-data-table-base-table`} ref=\"selfElRef\">\n        {headerInBody ? null : <TableHeader ref=\"headerInstRef\" />}\n        <TableBody\n          ref=\"bodyInstRef\"\n          bodyStyle={this.bodyStyle}\n          showHeader={headerInBody}\n          flexHeight={flexHeight}\n          onResize={this.handleBodyResize}\n        />\n      </div>\n    )\n  }\n})\n","import type { CNode } from 'css-render'\nimport { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM, cNotM, insideModal, insidePopover } from '../../../_utils/cssr'\n\nconst fixedColumnStyle = createFixedColumnStyle()\n\n// vars:\n// --n-font-size\n// --n-th-padding\n// --n-td-padding\n// --n-bezier\n// --n-border-radius\n// --n-line-height\n// --n-border-color\n// --n-border-color-modal\n// --n-border-color-popover\n// --n-th-color\n// --n-th-color-hover\n// --n-th-color-sorting\n// --n-th-color-modal\n// --n-th-color-hover-modal\n// --n-th-color-sorting-modal\n// --n-th-color-popover\n// --n-th-color-hover-popover\n// --n-th-color-sorting-popover\n// --n-td-color\n// --n-td-color-hover\n// --n-td-color-sorting\n// --n-td-color-modal\n// --n-td-color-hover-modal\n// --n-td-color-sorting-modal\n// --n-td-color-popover\n// --n-td-color-hover-popover\n// --n-td-color-sorting-popover\n// --n-th-text-color\n// --n-td-text-color\n// --n-th-font-weight\n// --n-th-button-color-hover\n// --n-th-icon-color\n// --n-th-icon-color-active\n// --n-filter-size\n// --n-action-divider-color\n// --n-action-padding\n// --n-action-button-margin\n// --n-pagination-margin\n// --n-empty-padding\n// --n-sorter-size\n// --n-resizable-container-size\n// --n-resizable-size\n// --n-loading-size\n// --n-loading-color\n// --n-opacity-loading\n\n// --n-box-shadow-before used in Body.tsx\n// --n-box-shadow-after used in Body.tsx\n\n// --indent-offset for ellipsis & expand trigger\nexport default c([\n  cB('data-table', `\n    width: 100%;\n    font-size: var(--n-font-size);\n    display: flex;\n    flex-direction: column;\n    position: relative;\n    --n-merged-th-color: var(--n-th-color);\n    --n-merged-td-color: var(--n-td-color);\n    --n-merged-border-color: var(--n-border-color);\n    --n-merged-th-color-hover: var(--n-th-color-hover);\n    --n-merged-th-color-sorting: var(--n-th-color-sorting);\n    --n-merged-td-color-hover: var(--n-td-color-hover);\n    --n-merged-td-color-sorting: var(--n-td-color-sorting);\n    --n-merged-td-color-striped: var(--n-td-color-striped);\n  `, [\n    cB('data-table-wrapper', `\n      flex-grow: 1;\n      display: flex;\n      flex-direction: column;\n    `),\n    cM('empty', [\n      cB('data-table-base-table', `\n        height: 100%;\n        display: flex;\n        flex-direction: column;\n      `),\n      cB('data-table-base-table-body', [\n        `height: 100%;`,\n        cB('scrollbar-content', `\n          height: 100%;\n          display: flex;\n          flex-direction: column;\n        `)\n      ])\n    ]),\n    cM('flex-height', [\n      c('>', [\n        cB('data-table-wrapper', [\n          c('>', [\n            cB('data-table-base-table', `\n              display: flex;\n              flex-direction: column;\n              flex-grow: 1;\n            `, [\n              c('>', [\n                cB('data-table-base-table-body', 'flex-basis: 0;', [\n                  // last-child means there is no empty icon\n                  // body is a scrollbar, we need to override height 100%\n                  c('&:last-child', 'flex-grow: 1;')\n                ])\n              ])\n            ])\n          ])\n        ])\n      ])\n    ]),\n    c('>', [\n      cB('data-table-loading-wrapper', `\n        color: var(--n-loading-color);\n        font-size: var(--n-loading-size);\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        transform: translateX(-50%) translateY(-50%);\n        transition: color .3s var(--n-bezier);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `, [\n        fadeInScaleUpTransition({\n          originalTransform: 'translateX(-50%) translateY(-50%)'\n        })\n      ])\n    ]),\n    cB('data-table-expand-placeholder', `\n      margin-right: 8px;\n      display: inline-block;\n      width: 16px;\n      height: 1px;\n    `),\n    cB('data-table-indent', `\n      display: inline-block;\n      height: 1px;\n    `),\n    cB('data-table-expand-trigger', `\n      display: inline-flex;\n      margin-right: 8px;\n      cursor: pointer;\n      font-size: 16px;\n      vertical-align: -0.2em;\n      position: relative;\n      width: 16px;\n      height: 16px;\n      color: var(--n-td-text-color);\n      transition: color .3s var(--n-bezier);\n    `, [\n      cM('expanded', [\n        cB('icon', 'transform: rotate(90deg);', [\n          iconSwitchTransition({\n            originalTransform: 'rotate(90deg)'\n          })\n        ]),\n        cB('base-icon', 'transform: rotate(90deg);', [\n          iconSwitchTransition({\n            originalTransform: 'rotate(90deg)'\n          })\n        ])\n      ]),\n      cB('base-loading', `\n        color: var(--n-loading-color);\n        transition: color .3s var(--n-bezier);\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `, [\n        iconSwitchTransition()\n      ]),\n      cB('icon', `\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `, [\n        iconSwitchTransition()\n      ]),\n      cB('base-icon', `\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `, [\n        iconSwitchTransition()\n      ])\n    ]),\n    cB('data-table-thead', `\n      transition: background-color .3s var(--n-bezier);\n      background-color: var(--n-merged-th-color);\n    `),\n    cB('data-table-tr', `\n      position: relative;\n      box-sizing: border-box;\n      background-clip: padding-box;\n      transition: background-color .3s var(--n-bezier);\n    `, [\n      cB('data-table-expand', `\n        position: sticky;\n        left: 0;\n        overflow: hidden;\n        margin: calc(var(--n-th-padding) * -1);\n        padding: var(--n-th-padding);\n        box-sizing: border-box;\n      `),\n      cM('striped', 'background-color: var(--n-merged-td-color-striped);', [\n        cB('data-table-td', 'background-color: var(--n-merged-td-color-striped);')\n      ]),\n      cNotM('summary', [\n        c('&:hover', 'background-color: var(--n-merged-td-color-hover);', [\n          c('>', [\n            cB('data-table-td', 'background-color: var(--n-merged-td-color-hover);')\n          ])\n        ])\n      ])\n    ]),\n    cB('data-table-th', `\n      padding: var(--n-th-padding);\n      position: relative;\n      text-align: start;\n      box-sizing: border-box;\n      background-color: var(--n-merged-th-color);\n      border-color: var(--n-merged-border-color);\n      border-bottom: 1px solid var(--n-merged-border-color);\n      color: var(--n-th-text-color);\n      transition:\n        border-color .3s var(--n-bezier),\n        color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n      font-weight: var(--n-th-font-weight);\n    `, [\n      cM('filterable', `\n        padding-right: 36px;\n      `, [\n        cM('sortable', `\n          padding-right: calc(var(--n-th-padding) + 36px);\n        `)\n      ]),\n      fixedColumnStyle,\n      cM('selection', `\n        padding: 0;\n        text-align: center;\n        line-height: 0;\n        z-index: 3;\n      `),\n      cE('title-wrapper', `\n        display: flex;\n        align-items: center;\n        flex-wrap: nowrap;\n        max-width: 100%;\n      `, [\n        cE('title', `\n          flex: 1;\n          min-width: 0;\n        `)\n      ]),\n      cE('ellipsis', `\n        display: inline-block;\n        vertical-align: bottom;\n        text-overflow: ellipsis;\n        overflow: hidden;\n        white-space: nowrap;\n        max-width: 100%;\n      `),\n      cM('hover', `\n        background-color: var(--n-merged-th-color-hover);\n      `),\n      cM('sorting', `\n        background-color: var(--n-merged-th-color-sorting);\n      `),\n      cM('sortable', `\n        cursor: pointer;\n      `, [\n        cE('ellipsis', `\n          max-width: calc(100% - 18px);\n        `),\n        c('&:hover', `\n          background-color: var(--n-merged-th-color-hover);\n        `)\n      ]),\n      cB('data-table-sorter', `\n        height: var(--n-sorter-size);\n        width: var(--n-sorter-size);\n        margin-left: 4px;\n        position: relative;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        vertical-align: -0.2em;\n        color: var(--n-th-icon-color);\n        transition: color .3s var(--n-bezier);\n      `, [\n        cB('base-icon', 'transition: transform .3s var(--n-bezier)'),\n        cM('desc', [\n          cB('base-icon', `\n            transform: rotate(0deg);\n          `)\n        ]),\n        cM('asc', [\n          cB('base-icon', `\n            transform: rotate(-180deg);\n          `)\n        ]),\n        cM('asc, desc', `\n          color: var(--n-th-icon-color-active);\n        `)\n      ]),\n      cB('data-table-resize-button', `\n        width: var(--n-resizable-container-size);\n        position: absolute;\n        top: 0;\n        right: calc(var(--n-resizable-container-size) / 2);\n        bottom: 0;\n        cursor: col-resize;\n        user-select: none;\n      `, [\n        c('&::after', `\n          width: var(--n-resizable-size);\n          height: 50%;\n          position: absolute;\n          top: 50%;\n          left: calc(var(--n-resizable-container-size) / 2);\n          bottom: 0;\n          background-color: var(--n-merged-border-color);\n          transform: translateY(-50%);\n          transition: background-color .3s var(--n-bezier);\n          z-index: 1;\n          content: '';\n        `),\n        cM('active', [\n          c('&::after', `          \n            background-color: var(--n-th-icon-color-active);\n          `)\n        ]),\n        c('&:hover::after', `\n          background-color: var(--n-th-icon-color-active);\n        `)\n      ]),\n      cB('data-table-filter', `\n        position: absolute;\n        z-index: auto;\n        right: 0;\n        width: 36px;\n        top: 0;\n        bottom: 0;\n        cursor: pointer;\n        display: flex;\n        justify-content: center;\n        align-items: center;\n        transition:\n          background-color .3s var(--n-bezier),\n          color .3s var(--n-bezier);\n        font-size: var(--n-filter-size);\n        color: var(--n-th-icon-color);\n      `, [\n        c('&:hover', `\n          background-color: var(--n-th-button-color-hover);\n        `),\n        cM('show', `\n          background-color: var(--n-th-button-color-hover);\n        `),\n        cM('active', `\n          background-color: var(--n-th-button-color-hover);\n          color: var(--n-th-icon-color-active);\n        `)\n      ])\n    ]),\n    cB('data-table-td', `\n      padding: var(--n-td-padding);\n      text-align: start;\n      box-sizing: border-box;\n      border: none;\n      background-color: var(--n-merged-td-color);\n      color: var(--n-td-text-color);\n      border-bottom: 1px solid var(--n-merged-border-color);\n      transition:\n        box-shadow .3s var(--n-bezier),\n        background-color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n    `, [\n      cM('expand', [\n        cB('data-table-expand-trigger', `\n          margin-right: 0;\n        `)\n      ]),\n      cM('last-row', `\n        border-bottom: 0 solid var(--n-merged-border-color);\n      `, [\n        // make sure there is no overlap between bottom border and\n        // fixed column box shadow\n        c('&::after', `\n          bottom: 0 !important;\n        `),\n        c('&::before', `\n          bottom: 0 !important;\n        `)\n      ]),\n      cM('summary', `\n        background-color: var(--n-merged-th-color);\n      `),\n      cM('hover', `\n        background-color: var(--n-merged-td-color-hover);\n      `),\n      cM('sorting', `\n        background-color: var(--n-merged-td-color-sorting);\n      `),\n      cE('ellipsis', `\n        display: inline-block;\n        text-overflow: ellipsis;\n        overflow: hidden;\n        white-space: nowrap;\n        max-width: 100%;\n        vertical-align: bottom;\n        max-width: calc(100% - var(--indent-offset, -1.5) * 16px - 24px);\n      `),\n      cM('selection, expand', `\n        text-align: center;\n        padding: 0;\n        line-height: 0;\n      `),\n      fixedColumnStyle\n    ]),\n    cB('data-table-empty', `\n      box-sizing: border-box;\n      padding: var(--n-empty-padding);\n      flex-grow: 1;\n      flex-shrink: 0;\n      opacity: 1;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      transition: opacity .3s var(--n-bezier);\n    `, [\n      cM('hide', `\n        opacity: 0;\n      `)\n    ]),\n    cE('pagination', `\n      margin: var(--n-pagination-margin);\n      display: flex;\n      justify-content: flex-end;\n    `),\n    cB('data-table-wrapper', `\n      position: relative;\n      opacity: 1;\n      transition: opacity .3s var(--n-bezier), border-color .3s var(--n-bezier);\n      border-top-left-radius: var(--n-border-radius);\n      border-top-right-radius: var(--n-border-radius);\n      line-height: var(--n-line-height);\n    `),\n    cM('loading', [\n      cB('data-table-wrapper', `\n        opacity: var(--n-opacity-loading);\n        pointer-events: none;\n      `)\n    ]),\n    cM('single-column', [\n      cB('data-table-td', `\n        border-bottom: 0 solid var(--n-merged-border-color);\n      `, [\n        c('&::after, &::before', `\n          bottom: 0 !important;\n        `)\n      ])\n    ]),\n    cNotM('single-line', [\n      cB('data-table-th', `\n        border-right: 1px solid var(--n-merged-border-color);\n      `, [\n        cM('last', `\n          border-right: 0 solid var(--n-merged-border-color);\n        `)\n      ]),\n      cB('data-table-td', `\n        border-right: 1px solid var(--n-merged-border-color);\n      `, [\n        cM('last-col', `\n          border-right: 0 solid var(--n-merged-border-color);\n        `)\n      ])\n    ]),\n    cM('bordered', [\n      cB('data-table-wrapper', `\n        border: 1px solid var(--n-merged-border-color);\n        border-bottom-left-radius: var(--n-border-radius);\n        border-bottom-right-radius: var(--n-border-radius);\n        overflow: hidden;\n      `)\n    ]),\n    cB('data-table-base-table', [\n      cM('transition-disabled', [\n        cB('data-table-th', [c('&::after, &::before', 'transition: none;')]),\n        cB('data-table-td', [c('&::after, &::before', 'transition: none;')])\n      ])\n    ]),\n    cM('bottom-bordered', [\n      cB('data-table-td', [\n        cM('last-row', `\n          border-bottom: 1px solid var(--n-merged-border-color);\n        `)\n      ])\n    ]),\n    cB('data-table-table', `\n      font-variant-numeric: tabular-nums;\n      width: 100%;\n      word-break: break-word;\n      transition: background-color .3s var(--n-bezier);\n      border-collapse: separate;\n      border-spacing: 0;\n      background-color: var(--n-merged-td-color);\n    `),\n    cB('data-table-base-table-header', `\n      border-top-left-radius: calc(var(--n-border-radius) - 1px);\n      border-top-right-radius: calc(var(--n-border-radius) - 1px);\n      z-index: 3;\n      overflow: scroll;\n      flex-shrink: 0;\n      transition: border-color .3s var(--n-bezier);\n      scrollbar-width: none;\n    `, [\n      c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', `\n        display: none;\n        width: 0;\n        height: 0;\n      `)\n    ]),\n    cB('data-table-check-extra', `\n      transition: color .3s var(--n-bezier);\n      color: var(--n-th-icon-color);\n      position: absolute;\n      font-size: 14px;\n      right: -4px;\n      top: 50%;\n      transform: translateY(-50%);\n      z-index: 1;\n    `)\n  ]),\n  cB('data-table-filter-menu', [\n    cB('scrollbar', `\n      max-height: 240px;\n    `),\n    cE('group', `\n      display: flex;\n      flex-direction: column;\n      padding: 12px 12px 0 12px;\n    `, [\n      cB('checkbox', `\n        margin-bottom: 12px;\n        margin-right: 0;\n      `),\n      cB('radio', `\n        margin-bottom: 12px;\n        margin-right: 0;\n      `)\n    ]),\n    cE('action', `\n      padding: var(--n-action-padding);\n      display: flex;\n      flex-wrap: nowrap;\n      justify-content: space-evenly;\n      border-top: 1px solid var(--n-action-divider-color);\n    `, [\n      cB('button', [\n        c('&:not(:last-child)', `\n          margin: var(--n-action-button-margin);\n        `),\n        c('&:last-child', `\n          margin-right: 0;\n        `)\n      ])\n    ]),\n    cB('divider', `\n      margin: 0 !important;\n    `)\n  ]),\n  insideModal(cB('data-table', `\n    --n-merged-th-color: var(--n-th-color-modal);\n    --n-merged-td-color: var(--n-td-color-modal);\n    --n-merged-border-color: var(--n-border-color-modal);\n    --n-merged-th-color-hover: var(--n-th-color-hover-modal);\n    --n-merged-td-color-hover: var(--n-td-color-hover-modal);\n    --n-merged-th-color-sorting: var(--n-th-color-hover-modal);\n    --n-merged-td-color-sorting: var(--n-td-color-hover-modal);\n    --n-merged-td-color-striped: var(--n-td-color-striped-modal);\n  `)),\n  insidePopover(cB('data-table', `\n    --n-merged-th-color: var(--n-th-color-popover);\n    --n-merged-td-color: var(--n-td-color-popover);\n    --n-merged-border-color: var(--n-border-color-popover);\n    --n-merged-th-color-hover: var(--n-th-color-hover-popover);\n    --n-merged-td-color-hover: var(--n-td-color-hover-popover);\n    --n-merged-th-color-sorting: var(--n-th-color-hover-popover);\n    --n-merged-td-color-sorting: var(--n-td-color-hover-popover);\n    --n-merged-td-color-striped: var(--n-td-color-striped-popover);\n  `))\n])\n\nfunction createFixedColumnStyle(): CNode[] {\n  return [\n    cM('fixed-left', `\n      left: 0;\n      position: sticky;\n      z-index: 2;\n    `, [\n      c('&::after', `\n        pointer-events: none;\n        content: \"\";\n        width: 36px;\n        display: inline-block;\n        position: absolute;\n        top: 0;\n        bottom: -1px;\n        transition: box-shadow .2s var(--n-bezier);\n        right: -36px;\n      `)\n    ]),\n    cM('fixed-right', `\n      right: 0;\n      position: sticky;\n      z-index: 1;\n    `, [\n      c('&::before', `\n        pointer-events: none;\n        content: \"\";\n        width: 36px;\n        display: inline-block;\n        position: absolute;\n        top: 0;\n        bottom: -1px;\n        transition: box-shadow .2s var(--n-bezier);\n        left: -36px;\n      `)\n    ])\n  ]\n}\n","import type { TreeMate } from 'treemate'\nimport type { ComputedRef } from 'vue'\nimport type {\n  DataTableSetupProps,\n  InternalRowData,\n  RowData,\n  RowKey,\n  TableSelectionColumn,\n  TmNode\n} from './interface'\nimport { computed, ref } from 'vue'\nimport { call } from '../../_utils'\n\nexport function useCheck(\n  props: DataTableSetupProps,\n  data: {\n    selectionColumnRef: ComputedRef<TableSelectionColumn | null>\n    paginatedDataRef: ComputedRef<TmNode[]>\n    treeMateRef: ComputedRef<TreeMate<InternalRowData>>\n  }\n) {\n  const { paginatedDataRef, treeMateRef, selectionColumnRef } = data\n  const uncontrolledCheckedRowKeysRef = ref(props.defaultCheckedRowKeys)\n  const mergedCheckState = computed(() => {\n    const { checkedRowKeys } = props\n    const sourceKeys\n      = checkedRowKeys === undefined\n        ? uncontrolledCheckedRowKeysRef.value\n        : checkedRowKeys\n    if (selectionColumnRef.value?.multiple === false) {\n      return {\n        checkedKeys: sourceKeys.slice(0, 1),\n        indeterminateKeys: []\n      }\n    }\n    return treeMateRef.value.getCheckedKeys(sourceKeys, {\n      cascade: props.cascade,\n      allowNotLoaded: props.allowCheckingNotLoaded\n    })\n  })\n\n  const mergedCheckedRowKeysRef = computed(\n    () => mergedCheckState.value.checkedKeys\n  )\n  const mergedInderminateRowKeysRef = computed(\n    () => mergedCheckState.value.indeterminateKeys\n  )\n  const mergedCheckedRowKeySetRef = computed(() => {\n    return new Set(mergedCheckedRowKeysRef.value)\n  })\n  const mergedInderminateRowKeySetRef = computed(() => {\n    return new Set(mergedInderminateRowKeysRef.value)\n  })\n  const countOfCurrentPageCheckedRowsRef = computed(() => {\n    const { value: mergedCheckedRowKeySet } = mergedCheckedRowKeySetRef\n    return paginatedDataRef.value.reduce((total, tmNode) => {\n      const { key, disabled } = tmNode\n      return total + (!disabled && mergedCheckedRowKeySet.has(key) ? 1 : 0)\n    }, 0)\n  })\n  const countOfCurrentPageDisabledRowsRef = computed(() => {\n    return paginatedDataRef.value.filter(item => item.disabled).length\n  })\n  const someRowsCheckedRef = computed(() => {\n    const { length } = paginatedDataRef.value\n    const { value: mergedInderminateRowKeySet } = mergedInderminateRowKeySetRef\n    return (\n      (countOfCurrentPageCheckedRowsRef.value > 0\n        && countOfCurrentPageCheckedRowsRef.value\n        < length - countOfCurrentPageDisabledRowsRef.value)\n      || paginatedDataRef.value.some(rowData =>\n        mergedInderminateRowKeySet.has(rowData.key)\n      )\n    )\n  })\n  const allRowsCheckedRef = computed(() => {\n    const { length } = paginatedDataRef.value\n    return (\n      countOfCurrentPageCheckedRowsRef.value !== 0\n      && countOfCurrentPageCheckedRowsRef.value\n      === length - countOfCurrentPageDisabledRowsRef.value\n    )\n  })\n  const headerCheckboxDisabledRef = computed(() => {\n    return paginatedDataRef.value.length === 0\n  })\n  function doUpdateCheckedRowKeys(\n    keys: RowKey[],\n    row: RowData | undefined,\n    action: 'check' | 'uncheck' | 'checkAll' | 'uncheckAll'\n  ): void {\n    const {\n      'onUpdate:checkedRowKeys': _onUpdateCheckedRowKeys,\n      onUpdateCheckedRowKeys,\n      onCheckedRowKeysChange\n    } = props\n    const rows: InternalRowData[] = []\n    const {\n      value: { getNode }\n    } = treeMateRef\n    keys.forEach((key) => {\n      const row = getNode(key)?.rawNode\n      rows.push(row!)\n    })\n    if (_onUpdateCheckedRowKeys) {\n      call(_onUpdateCheckedRowKeys, keys, rows, { row, action })\n    }\n    if (onUpdateCheckedRowKeys) {\n      call(onUpdateCheckedRowKeys, keys, rows, { row, action })\n    }\n    if (onCheckedRowKeysChange) {\n      call(onCheckedRowKeysChange, keys, rows, { row, action })\n    }\n    uncontrolledCheckedRowKeysRef.value = keys\n  }\n  function doCheck(\n    rowKey: RowKey | RowKey[],\n    single: boolean = false,\n    rowInfo: RowData\n  ): void {\n    if (props.loading)\n      return\n    if (single) {\n      doUpdateCheckedRowKeys(\n        Array.isArray(rowKey) ? rowKey.slice(0, 1) : [rowKey],\n        rowInfo,\n        'check'\n      )\n      return\n    }\n    doUpdateCheckedRowKeys(\n      treeMateRef.value.check(rowKey, mergedCheckedRowKeysRef.value, {\n        cascade: props.cascade,\n        allowNotLoaded: props.allowCheckingNotLoaded\n      }).checkedKeys,\n      rowInfo,\n      'check'\n    )\n  }\n  function doUncheck(rowKey: RowKey | RowKey[], rowInfo: RowData): void {\n    if (props.loading)\n      return\n    doUpdateCheckedRowKeys(\n      treeMateRef.value.uncheck(rowKey, mergedCheckedRowKeysRef.value, {\n        cascade: props.cascade,\n        allowNotLoaded: props.allowCheckingNotLoaded\n      }).checkedKeys,\n      rowInfo,\n      'uncheck'\n    )\n  }\n  function doCheckAll(checkWholeTable: boolean = false): void {\n    const { value: column } = selectionColumnRef\n    if (!column || props.loading)\n      return\n    const rowKeysToCheck: RowKey[] = []\n    ;(checkWholeTable\n      ? treeMateRef.value.treeNodes\n      : paginatedDataRef.value\n    ).forEach((tmNode) => {\n      if (!tmNode.disabled) {\n        rowKeysToCheck.push(tmNode.key)\n      }\n    })\n    // alway cascade, to emit correct row keys\n    doUpdateCheckedRowKeys(\n      treeMateRef.value.check(rowKeysToCheck, mergedCheckedRowKeysRef.value, {\n        cascade: true,\n        allowNotLoaded: props.allowCheckingNotLoaded\n      }).checkedKeys,\n      undefined,\n      'checkAll'\n    )\n  }\n  function doUncheckAll(checkWholeTable: boolean = false): void {\n    const { value: column } = selectionColumnRef\n    if (!column || props.loading)\n      return\n    const rowKeysToUncheck: RowKey[] = []\n    ;(checkWholeTable\n      ? treeMateRef.value.treeNodes\n      : paginatedDataRef.value\n    ).forEach((tmNode) => {\n      if (!tmNode.disabled) {\n        rowKeysToUncheck.push(tmNode.key)\n      }\n    })\n    // alway cascade, to emit correct row keys\n    doUpdateCheckedRowKeys(\n      treeMateRef.value.uncheck(\n        rowKeysToUncheck,\n        mergedCheckedRowKeysRef.value,\n        {\n          cascade: true,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        }\n      ).checkedKeys,\n      undefined,\n      'uncheckAll'\n    )\n  }\n  return {\n    mergedCheckedRowKeySetRef,\n    mergedCheckedRowKeysRef,\n    mergedInderminateRowKeySetRef,\n    someRowsCheckedRef,\n    allRowsCheckedRef,\n    headerCheckboxDisabledRef,\n    doUpdateCheckedRowKeys,\n    doCheckAll,\n    doUncheckAll,\n    doCheck,\n    doUncheck\n  }\n}\n","import type { TreeMate } from 'treemate'\nimport type { Ref } from 'vue'\nimport type {\n  DataTableSetupProps,\n  Expandable,\n  InternalRowData,\n  RowKey\n} from './interface'\nimport { useMemo, useMergedState } from 'vooks'\nimport { ref, toRef } from 'vue'\nimport { call, warn } from '../../_utils'\n\nexport function useExpand(\n  props: DataTableSetupProps,\n  treeMateRef: Ref<TreeMate<InternalRowData, InternalRowData, InternalRowData>>\n) {\n  const renderExpandRef = useMemo(() => {\n    for (const col of props.columns) {\n      if (col.type === 'expand') {\n        if (__DEV__ && !col.renderExpand) {\n          warn(\n            'data-table',\n            'column with type `expand` has no `renderExpand` prop.'\n          )\n        }\n        return col.renderExpand\n      }\n    }\n  })\n  const expandableRef = useMemo(() => {\n    // It's not reactive\n    let expandable: Expandable<any> | undefined\n    for (const col of props.columns) {\n      if (col.type === 'expand') {\n        expandable = col.expandable\n        break\n      }\n    }\n    return expandable\n  })\n\n  const uncontrolledExpandedRowKeysRef = ref(\n    props.defaultExpandAll\n      ? renderExpandRef?.value\n        ? (() => {\n            const expandedKeys: RowKey[] = []\n            treeMateRef.value.treeNodes.forEach((tmNode) => {\n              if (expandableRef.value?.(tmNode.rawNode)) {\n                expandedKeys.push(tmNode.key)\n              }\n            })\n            return expandedKeys\n          })()\n        : treeMateRef.value.getNonLeafKeys()\n      : props.defaultExpandedRowKeys\n  )\n  const controlledExpandedRowKeysRef = toRef(props, 'expandedRowKeys')\n  const stickyExpandedRowsRef = toRef(props, 'stickyExpandedRows')\n  const mergedExpandedRowKeysRef = useMergedState(\n    controlledExpandedRowKeysRef,\n    uncontrolledExpandedRowKeysRef\n  )\n  function doUpdateExpandedRowKeys(expandedKeys: RowKey[]): void {\n    const {\n      onUpdateExpandedRowKeys,\n      'onUpdate:expandedRowKeys': _onUpdateExpandedRowKeys\n    } = props\n    if (onUpdateExpandedRowKeys) {\n      call(onUpdateExpandedRowKeys, expandedKeys)\n    }\n    if (_onUpdateExpandedRowKeys) {\n      call(_onUpdateExpandedRowKeys, expandedKeys)\n    }\n    uncontrolledExpandedRowKeysRef.value = expandedKeys\n  }\n  return {\n    stickyExpandedRowsRef,\n    mergedExpandedRowKeysRef,\n    renderExpandRef,\n    expandableRef,\n    doUpdateExpandedRowKeys\n  }\n}\n","import type { ComputedRef, CSSProperties } from 'vue'\nimport type {\n  ColumnKey,\n  DataTableSetupProps,\n  TableBaseColumn,\n  TableColumn,\n  TableColumns,\n  TableExpandColumn,\n  TableSelectionColumn\n} from './interface'\nimport { computed } from 'vue'\nimport { formatLength } from '../../_utils'\nimport { createCustomWidthStyle, getColKey } from './utils'\n\nexport interface RowItem {\n  colSpan: number\n  rowSpan: number\n  column: TableColumn\n  colIndex: number\n  isLast: boolean\n}\nexport interface ColItem {\n  key: string | number\n  style: CSSProperties\n  column: TableSelectionColumn | TableExpandColumn | TableBaseColumn\n  index: number\n  /**\n   * The width property is only applied to horizontally virtual scroll table\n   */\n  width: number\n}\n\ntype RowItemMap = WeakMap<TableColumn, RowItem>\nfunction getRowsAndCols(\n  columns: TableColumns,\n  getResizableWidth: (key: ColumnKey) => number | undefined\n): {\n  hasEllipsis: boolean\n  rows: RowItem[][]\n  cols: ColItem[]\n  dataRelatedCols: Array<\n    TableSelectionColumn | TableBaseColumn | TableExpandColumn\n  >\n} {\n  const rows: RowItem[][] = []\n  const cols: ColItem[] = []\n  const dataRelatedCols: Array<\n    TableSelectionColumn | TableBaseColumn | TableExpandColumn\n  > = []\n  const rowItemMap: RowItemMap = new WeakMap()\n  let maxDepth = -1\n  let totalRowSpan = 0\n  let hasEllipsis = false\n  let currentLeafIndex = 0\n  function ensureMaxDepth(columns: TableColumns, currentDepth: number): void {\n    if (currentDepth > maxDepth) {\n      rows[currentDepth] = []\n      maxDepth = currentDepth\n    }\n    columns.forEach((column) => {\n      if ('children' in column) {\n        ensureMaxDepth(column.children, currentDepth + 1)\n      }\n      else {\n        const key = 'key' in column ? column.key : undefined\n        cols.push({\n          key: getColKey(column),\n          style: createCustomWidthStyle(\n            column,\n            key !== undefined ? formatLength(getResizableWidth(key)) : undefined\n          ),\n          column,\n          index: currentLeafIndex++,\n          // The width property is only applied to horizontally virtual scroll table\n          width: column.width === undefined ? 128 : Number(column.width)\n        })\n        totalRowSpan += 1\n        if (!hasEllipsis) {\n          hasEllipsis = !!column.ellipsis\n        }\n        dataRelatedCols.push(column)\n      }\n    })\n  }\n  ensureMaxDepth(columns, 0)\n  currentLeafIndex = 0\n  function ensureColLayout(columns: TableColumns, currentDepth: number): void {\n    let hideUntilIndex = 0\n    columns.forEach((column) => {\n      if ('children' in column) {\n        // do not allow colSpan > 1 for non-leaf th\n        // we will execute the calculation logic\n        const cachedCurrentLeafIndex = currentLeafIndex\n        const rowItem: RowItem = {\n          column,\n          colIndex: currentLeafIndex,\n          colSpan: 0,\n          rowSpan: 1,\n          isLast: false\n        }\n        ensureColLayout(column.children, currentDepth + 1)\n        column.children.forEach((childColumn) => {\n          rowItem.colSpan += rowItemMap.get(childColumn)?.colSpan ?? 0\n        })\n        if (cachedCurrentLeafIndex + rowItem.colSpan === totalRowSpan) {\n          rowItem.isLast = true\n        }\n        rowItemMap.set(column, rowItem)\n        rows[currentDepth].push(rowItem)\n      }\n      else {\n        if (currentLeafIndex < hideUntilIndex) {\n          currentLeafIndex += 1\n          return\n        }\n        let colSpan: number = 1\n        if ('titleColSpan' in column) {\n          colSpan = column.titleColSpan ?? 1\n        }\n        if (colSpan > 1) {\n          hideUntilIndex = currentLeafIndex + colSpan\n        }\n        const isLast = currentLeafIndex + colSpan === totalRowSpan\n        const rowItem: RowItem = {\n          column,\n          colSpan,\n          colIndex: currentLeafIndex,\n          rowSpan: maxDepth - currentDepth + 1,\n          isLast\n        }\n        rowItemMap.set(column, rowItem)\n        rows[currentDepth].push(rowItem)\n        currentLeafIndex += 1\n      }\n    })\n  }\n  ensureColLayout(columns, 0)\n\n  return {\n    hasEllipsis,\n    rows,\n    cols,\n    dataRelatedCols\n  }\n}\n\nexport function useGroupHeader(\n  props: DataTableSetupProps,\n  getResizableWidth: (key: ColumnKey) => number | undefined\n): {\n  rowsRef: ComputedRef<RowItem[][]>\n  colsRef: ComputedRef<ColItem[]>\n  hasEllipsisRef: ComputedRef<boolean>\n  dataRelatedColsRef: ComputedRef<\n    Array<TableSelectionColumn | TableBaseColumn | TableExpandColumn>\n  >\n} {\n  const rowsAndCols = computed(() =>\n    getRowsAndCols(props.columns, getResizableWidth)\n  )\n  return {\n    rowsRef: computed(() => rowsAndCols.value.rows),\n    colsRef: computed(() => rowsAndCols.value.cols),\n    hasEllipsisRef: computed(() => rowsAndCols.value.hasEllipsis),\n    dataRelatedColsRef: computed(() => rowsAndCols.value.dataRelatedCols)\n  }\n}\n","import type { ColumnKey, TableColumn } from './interface'\nimport { ref } from 'vue'\nimport { isColumnResizable } from './utils'\n\nexport function useResizable() {\n  const resizableWidthsRef = ref<Record<ColumnKey, number>>({})\n  function getResizableWidth(key: ColumnKey): number | undefined {\n    return resizableWidthsRef.value[key]\n  }\n  function doUpdateResizableWidth(column: TableColumn, width: number): void {\n    if (isColumnResizable(column) && 'key' in column) {\n      resizableWidthsRef.value[column.key] = width\n    }\n  }\n  function clearResizableWidth(): void {\n    resizableWidthsRef.value = {}\n  }\n  return {\n    getResizableWidth,\n    doUpdateResizableWidth,\n    clearResizableWidth\n  }\n}\n","import type { ComputedRef, Ref } from 'vue'\nimport type {\n  ColumnKey,\n  DataTableSetupProps,\n  MainTableRef,\n  TableColumn\n} from './interface'\nimport { beforeNextFrameOnce } from 'seemly'\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { formatLength } from '../../_utils'\nimport { getColKey, getNumberColWidth } from './utils'\n\ntype ScrollSyncSource = 'head' | 'body' | 'layout'\n\nexport function useScroll(\n  props: DataTableSetupProps,\n  {\n    mainTableInstRef,\n    mergedCurrentPageRef,\n    bodyWidthRef,\n    maxHeightRef,\n    mergedTableLayoutRef,\n    mergedEmptyRef\n  }: {\n    maxHeightRef: Ref<string | number | undefined>\n    bodyWidthRef: Ref<null | number>\n    mainTableInstRef: Ref<MainTableRef | null>\n    mergedCurrentPageRef: ComputedRef<number>\n    mergedTableLayoutRef: Ref<'auto' | 'fixed'>\n    mergedEmptyRef: ComputedRef<boolean>\n  }\n) {\n  const explicitlyScrollableRef = computed(\n    () =>\n      props.scrollX !== undefined\n      || maxHeightRef.value !== undefined\n      || props.flexHeight\n  )\n  const xScrollableRef = computed(() => {\n    // For a basic table with auto layout whose content may overflow we will\n    // make it scrollable, which differs from browser's native behavior.\n    // For native behavior, see\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/table-layout\n    const isBasicAutoLayout\n      = !explicitlyScrollableRef.value && mergedTableLayoutRef.value === 'auto'\n    return props.scrollX !== undefined || isBasicAutoLayout\n  })\n\n  let lastScrollLeft = 0\n  const scrollPartRef = ref<'head' | 'body' | undefined>()\n  const leftActiveFixedColKeyRef = ref<ColumnKey | null>(null)\n  const leftActiveFixedChildrenColKeysRef = ref<ColumnKey[]>([])\n  const rightActiveFixedColKeyRef = ref<ColumnKey | null>(null)\n  const rightActiveFixedChildrenColKeysRef = ref<ColumnKey[]>([])\n  const styleScrollXRef = computed(() => {\n    return formatLength(props.scrollX)\n  })\n  const leftFixedColumnsRef = computed(() => {\n    return props.columns.filter(column => column.fixed === 'left')\n  })\n  const rightFixedColumnsRef = computed(() => {\n    return props.columns.filter(column => column.fixed === 'right')\n  })\n  const fixedColumnLeftMapRef = computed(() => {\n    const columns: Record<\n      ColumnKey,\n      { start: number, end: number } | undefined\n    > = {}\n    let left = 0\n    function traverse(cols: TableColumn[]): void {\n      cols.forEach((col) => {\n        const positionInfo = { start: left, end: 0 }\n        columns[getColKey(col)] = positionInfo\n        if ('children' in col) {\n          traverse(col.children)\n          positionInfo.end = left\n        }\n        else {\n          left += getNumberColWidth(col) || 0\n          positionInfo.end = left\n        }\n      })\n    }\n    traverse(leftFixedColumnsRef.value)\n    return columns\n  })\n  const fixedColumnRightMapRef = computed(() => {\n    const columns: Record<\n      ColumnKey,\n      { start: number, end: number } | undefined\n    > = {}\n    let right = 0\n    function traverse(cols: TableColumn[]): void {\n      for (let i = cols.length - 1; i >= 0; --i) {\n        const col = cols[i]\n        const positionInfo = { start: right, end: 0 }\n        columns[getColKey(col)] = positionInfo\n        if ('children' in col) {\n          traverse(col.children)\n          positionInfo.end = right\n        }\n        else {\n          right += getNumberColWidth(col) || 0\n          positionInfo.end = right\n        }\n      }\n    }\n    traverse(rightFixedColumnsRef.value)\n    return columns\n  })\n  function deriveActiveLeftFixedColumn(): void {\n    // target is header element\n    const { value: leftFixedColumns } = leftFixedColumnsRef\n    let leftWidth = 0\n    const { value: fixedColumnLeftMap } = fixedColumnLeftMapRef\n    let leftActiveFixedColKey: string | number | null = null\n    for (let i = 0; i < leftFixedColumns.length; ++i) {\n      const key = getColKey(leftFixedColumns[i])\n      if (lastScrollLeft > (fixedColumnLeftMap[key]?.start || 0) - leftWidth) {\n        leftActiveFixedColKey = key\n        leftWidth = fixedColumnLeftMap[key]?.end || 0\n      }\n      else {\n        break\n      }\n    }\n    leftActiveFixedColKeyRef.value = leftActiveFixedColKey\n  }\n  function deriveActiveLeftFixedChildrenColumns(): void {\n    leftActiveFixedChildrenColKeysRef.value = []\n    let activeLeftFixedColumn = props.columns.find(\n      col => getColKey(col) === leftActiveFixedColKeyRef.value\n    )\n    while (activeLeftFixedColumn && 'children' in activeLeftFixedColumn) {\n      const length: number = activeLeftFixedColumn.children.length\n      if (length === 0)\n        break\n      const nextActiveLeftFixedColumn\n        = activeLeftFixedColumn.children[length - 1]\n      leftActiveFixedChildrenColKeysRef.value.push(\n        getColKey(nextActiveLeftFixedColumn)\n      )\n      activeLeftFixedColumn = nextActiveLeftFixedColumn\n    }\n  }\n  function deriveActiveRightFixedColumn(): void {\n    // target is header element\n    const { value: rightFixedColumns } = rightFixedColumnsRef\n    const scrollWidth = Number(props.scrollX)\n    const { value: tableWidth } = bodyWidthRef\n    if (tableWidth === null)\n      return\n    let rightWidth = 0\n    let rightActiveFixedColKey: string | number | null = null\n    const { value: fixedColumnRightMap } = fixedColumnRightMapRef\n    for (let i = rightFixedColumns.length - 1; i >= 0; --i) {\n      const key = getColKey(rightFixedColumns[i])\n      if (\n        Math.round(\n          lastScrollLeft\n          + (fixedColumnRightMap[key]?.start || 0)\n          + tableWidth\n          - rightWidth\n        ) < scrollWidth\n      ) {\n        rightActiveFixedColKey = key\n        rightWidth = fixedColumnRightMap[key]?.end || 0\n      }\n      else {\n        break\n      }\n    }\n    rightActiveFixedColKeyRef.value = rightActiveFixedColKey\n  }\n  function deriveActiveRightFixedChildrenColumns(): void {\n    rightActiveFixedChildrenColKeysRef.value = []\n    let activeRightFixedColumn = props.columns.find(\n      col => getColKey(col) === rightActiveFixedColKeyRef.value\n    )\n    while (\n      activeRightFixedColumn\n      && 'children' in activeRightFixedColumn\n      && activeRightFixedColumn.children.length\n    ) {\n      const nextActiveRightFixedColumn = activeRightFixedColumn.children[0]\n      rightActiveFixedChildrenColKeysRef.value.push(\n        getColKey(nextActiveRightFixedColumn)\n      )\n      activeRightFixedColumn = nextActiveRightFixedColumn\n    }\n  }\n\n  function getScrollElements(): {\n    header: HTMLElement | null\n    body: HTMLElement | null\n  } {\n    const header = mainTableInstRef.value\n      ? mainTableInstRef.value.getHeaderElement()\n      : null\n    const body = mainTableInstRef.value\n      ? mainTableInstRef.value.getBodyElement()\n      : null\n    return {\n      header,\n      body\n    }\n  }\n  function scrollMainTableBodyToTop(): void {\n    const { body } = getScrollElements()\n    if (body) {\n      body.scrollTop = 0\n    }\n  }\n  function handleTableHeaderScroll(): void {\n    if (scrollPartRef.value !== 'body') {\n      beforeNextFrameOnce(syncScrollState, 'head')\n    }\n    else {\n      scrollPartRef.value = undefined\n    }\n  }\n  function handleTableBodyScroll(e: Event): void {\n    props.onScroll?.(e)\n    if (scrollPartRef.value !== 'head') {\n      beforeNextFrameOnce(syncScrollState, 'body')\n    }\n    else {\n      scrollPartRef.value = undefined\n    }\n  }\n  function syncScrollState(source: ScrollSyncSource): void {\n    // We can't simply use props.scrollX to determine whether the table has\n    // need to be sync since user may set column width for each column.\n    // Just let it be, the scroll listener won't be triggered for a basic table.\n    const { header, body } = getScrollElements()\n    if (!body)\n      return\n    if (source === 'layout') {\n      // Body may remount (e.g. virtual list is disabled when empty) or shrink.\n      // Keep the stored x-scroll instead of treating the new body's 0 as user\n      // input, which would reset the discrete header.\n      if (header) {\n        header.scrollLeft = lastScrollLeft\n      }\n      body.scrollLeft = lastScrollLeft\n    }\n    else if (header) {\n      if (source === 'head') {\n        lastScrollLeft = header.scrollLeft\n        body.scrollLeft = lastScrollLeft\n        scrollPartRef.value = 'head'\n      }\n      else if (source === 'body') {\n        lastScrollLeft = body.scrollLeft\n        header.scrollLeft = lastScrollLeft\n        scrollPartRef.value = 'body'\n      }\n      else {\n        // we need to deal with overscroll\n        const directionHead = lastScrollLeft - header.scrollLeft\n        scrollPartRef.value = directionHead !== 0 ? 'head' : 'body'\n        if (scrollPartRef.value === 'head') {\n          lastScrollLeft = header.scrollLeft\n          body.scrollLeft = lastScrollLeft\n        }\n        else {\n          lastScrollLeft = body.scrollLeft\n          header.scrollLeft = lastScrollLeft\n        }\n      }\n    }\n    else if (source !== 'head') {\n      lastScrollLeft = body.scrollLeft\n    }\n    const { value: tableWidth } = bodyWidthRef\n    if (tableWidth === null)\n      return\n    deriveActiveLeftFixedColumn()\n    deriveActiveLeftFixedChildrenColumns()\n    deriveActiveRightFixedColumn()\n    deriveActiveRightFixedChildrenColumns()\n  }\n  function setHeaderScrollLeft(left: number): void {\n    const { header } = getScrollElements()\n    if (!header)\n      return\n    header.scrollLeft = left\n    lastScrollLeft = left\n    syncScrollState('head')\n  }\n  watch(mergedCurrentPageRef, () => {\n    scrollMainTableBodyToTop()\n  })\n  watch([() => props.virtualScroll, mergedEmptyRef], () => {\n    void nextTick(() => {\n      syncScrollState('layout')\n    })\n  })\n  return {\n    styleScrollXRef,\n    fixedColumnLeftMapRef,\n    fixedColumnRightMapRef,\n    leftFixedColumnsRef,\n    rightFixedColumnsRef,\n    leftActiveFixedColKeyRef,\n    leftActiveFixedChildrenColKeysRef,\n    rightActiveFixedColKeyRef,\n    rightActiveFixedChildrenColKeysRef,\n    syncScrollState,\n    handleTableBodyScroll,\n    handleTableHeaderScroll,\n    setHeaderScrollLeft,\n    explicitlyScrollableRef,\n    xScrollableRef\n  }\n}\n","import type { ComputedRef } from 'vue'\nimport type {\n  ColumnKey,\n  CompareFn,\n  DataTableSetupProps,\n  InternalRowData,\n  OnUpdateSorterImpl,\n  SortOrder,\n  SortState,\n  TableBaseColumn,\n  TableExpandColumn,\n  TableSelectionColumn,\n  TmNode\n} from './interface'\nimport { computed, ref } from 'vue'\nimport { call } from '../../_utils'\nimport { getFlagOfOrder } from './utils'\n\nfunction getMultiplePriority(\n  sorter: TableBaseColumn['sorter']\n): number | false {\n  if (typeof sorter === 'object' && typeof sorter.multiple === 'number') {\n    return sorter.multiple\n  }\n  return false\n}\n\nfunction getSortFunction(\n  sorter: TableBaseColumn['sorter'],\n  columnKey: ColumnKey\n): CompareFn | false {\n  if (\n    columnKey\n    && (sorter === undefined\n      || sorter === 'default'\n      || (typeof sorter === 'object' && sorter.compare === 'default'))\n  ) {\n    return getDefaultSorterFn(columnKey)\n  }\n  if (typeof sorter === 'function') {\n    return sorter\n  }\n  if (\n    sorter\n    && typeof sorter === 'object'\n    && sorter.compare\n    && sorter.compare !== 'default'\n  ) {\n    return sorter.compare\n  }\n  return false\n}\n\nfunction getDefaultSorterFn(\n  columnKey: ColumnKey\n): (row1: InternalRowData, row2: InternalRowData) => number {\n  return (row1: InternalRowData, row2: InternalRowData) => {\n    const value1 = row1[columnKey]\n    const value2 = row2[columnKey]\n\n    if (value1 === null || value1 === undefined) {\n      if (value2 === null || value2 === undefined)\n        return 0\n      return -1\n    }\n    else if (value2 === null || value2 === undefined) {\n      return 1\n    }\n    else if (typeof value1 === 'number' && typeof value2 === 'number') {\n      return value1 - value2\n    }\n    else if (typeof value1 === 'string' && typeof value2 === 'string') {\n      return value1.localeCompare(value2)\n    }\n    return 0\n  }\n}\n\nexport function useSorter(\n  props: DataTableSetupProps,\n  {\n    dataRelatedColsRef,\n    filteredDataRef\n  }: {\n    dataRelatedColsRef: ComputedRef<\n      Array<TableSelectionColumn | TableBaseColumn | TableExpandColumn>\n    >\n    filteredDataRef: ComputedRef<TmNode[]>\n  }\n) {\n  const defaultSortState: SortState[] = []\n\n  // initialize\n  dataRelatedColsRef.value.forEach((column) => {\n    if (column.sorter !== undefined) {\n      updateSortStatesByNewSortState(defaultSortState, {\n        columnKey: column.key,\n        sorter: column.sorter,\n        order: column.defaultSortOrder ?? false\n      })\n    }\n  })\n\n  const uncontrolledSortStateRef = ref<SortState | SortState[] | null>(\n    defaultSortState\n  )\n  const mergedSortStateRef = computed(() => {\n    // If one of the columns's sort order is false or 'ascend' or 'descend',\n    // the table's controll functionality should work in controlled manner.\n    const columnsWithControlledSortOrder = dataRelatedColsRef.value.filter(\n      column =>\n        column.type !== 'selection'\n        && column.sorter !== undefined\n        && (column.sortOrder === 'ascend'\n          || column.sortOrder === 'descend'\n          || column.sortOrder === false)\n    )\n    // if multiple columns are controlled sortable, then we need to find columns with active sortOrder\n    const columnToSort: TableBaseColumn[] | undefined = (\n      columnsWithControlledSortOrder as TableBaseColumn[]\n    ).filter((col: TableBaseColumn) => col.sortOrder !== false)\n    if (columnToSort.length) {\n      return columnToSort.map((column) => {\n        return {\n          columnKey: column.key,\n          // column to sort has controlled sorter\n          // sorter && sort order won't be undefined\n          order: column.sortOrder!,\n          sorter: column.sorter!\n        }\n      })\n    }\n    // If any column is in controlled mode, the sorting state of the table is\n    // in controlled mode\n    if (columnsWithControlledSortOrder.length)\n      return []\n    const { value: uncontrolledSortState } = uncontrolledSortStateRef\n    if (Array.isArray(uncontrolledSortState)) {\n      return uncontrolledSortState\n    }\n    else if (uncontrolledSortState) {\n      return [uncontrolledSortState]\n    }\n    else {\n      return []\n    }\n  })\n  const sortedDataRef = computed<TmNode[]>(() => {\n    const activeSorters = mergedSortStateRef.value.slice().sort((a, b) => {\n      const item1Priority = getMultiplePriority(a.sorter) || 0\n      const item2Priority = getMultiplePriority(b.sorter) || 0\n      return item2Priority - item1Priority\n    })\n    if (activeSorters.length) {\n      const filteredData = filteredDataRef.value.slice()\n      return filteredData.sort((tmNode1, tmNode2) => {\n        let compareResult = 0\n        activeSorters.some((sorterState) => {\n          const { columnKey, sorter, order } = sorterState\n\n          const compareFn = getSortFunction(sorter, columnKey)\n          if (compareFn && order) {\n            compareResult = compareFn(tmNode1.rawNode, tmNode2.rawNode)\n\n            if (compareResult !== 0) {\n              compareResult = compareResult * getFlagOfOrder(order)\n              return true\n            }\n          }\n          return false\n        })\n        return compareResult\n      })\n    }\n    return filteredDataRef.value\n  })\n\n  function getUpdatedSorterState(\n    sortState: SortState | null\n  ): SortState | SortState[] | null {\n    let currentSortState = mergedSortStateRef.value.slice()\n    // Multiple sorter (if you clicked on a multiple sort column)\n    if (sortState && getMultiplePriority(sortState.sorter) !== false) {\n      // clear column is not multiple sort\n      currentSortState = currentSortState.filter(\n        sortState => getMultiplePriority(sortState.sorter) !== false\n      )\n      updateSortStatesByNewSortState(currentSortState, sortState)\n      return currentSortState\n    }\n    else if (sortState) {\n      // single sorter\n      return sortState\n    }\n    // no sorter\n    return null\n  }\n\n  function deriveNextSorter(sortState: SortState | null): void {\n    const nextSorterState: SortState | SortState[] | null\n      = getUpdatedSorterState(sortState)\n    doUpdateSorter(nextSorterState)\n  }\n\n  function doUpdateSorter(sortState: SortState | SortState[] | null): void {\n    const {\n      'onUpdate:sorter': _onUpdateSorter,\n      onUpdateSorter,\n      onSorterChange\n    } = props\n\n    if (_onUpdateSorter) {\n      call(_onUpdateSorter as OnUpdateSorterImpl, sortState)\n    }\n    if (onUpdateSorter) {\n      call(onUpdateSorter as OnUpdateSorterImpl, sortState)\n    }\n    if (onSorterChange) {\n      call(onSorterChange as OnUpdateSorterImpl, sortState)\n    }\n    uncontrolledSortStateRef.value = sortState\n  }\n\n  function sort(columnKey: ColumnKey, order: SortOrder = 'ascend'): void {\n    if (!columnKey) {\n      clearSorter()\n    }\n    else {\n      const columnToSort = dataRelatedColsRef.value.find(\n        column =>\n          column.type !== 'selection'\n          && column.type !== 'expand'\n          && column.key === columnKey\n      )\n      if (!columnToSort?.sorter)\n        return\n      const sorter = columnToSort.sorter\n      deriveNextSorter({\n        columnKey,\n        sorter,\n        order\n      })\n    }\n  }\n\n  function clearSorter(): void {\n    doUpdateSorter(null)\n  }\n\n  function updateSortStatesByNewSortState(\n    sortStates: SortState[],\n    sortState: SortState\n  ): void {\n    const index = sortStates.findIndex(\n      state => sortState?.columnKey && state.columnKey === sortState.columnKey\n    )\n    if (index !== undefined && index >= 0) {\n      sortStates[index] = sortState\n    }\n    else {\n      sortStates.push(sortState)\n    }\n  }\n\n  return {\n    clearSorter,\n    sort,\n    sortedDataRef,\n    mergedSortStateRef,\n    deriveNextSorter\n  }\n}\n","import type { ComputedRef } from 'vue'\nimport type { PaginationProps } from '../../pagination/src/Pagination'\nimport type {\n  ColumnKey,\n  DataTableSetupProps,\n  Filter,\n  FilterOptionValue,\n  FilterState,\n  InternalRowData,\n  RowKey,\n  TableBaseColumn,\n  TableExpandColumn,\n  TableSelectionColumn,\n  TmNode\n} from './interface'\nimport { createTreeMate } from 'treemate'\nimport { useMemo, useMergedState } from 'vooks'\nimport { computed, ref } from 'vue'\nimport { call, warn } from '../../_utils'\nimport { getDefaultPageSize } from '../../pagination/src/utils'\nimport { useSorter } from './use-sorter'\nimport { createShallowClonedObject } from './utils'\n\n// useTableData combines filter, sorter and pagination\nexport function useTableData(\n  props: DataTableSetupProps,\n  {\n    dataRelatedColsRef\n  }: {\n    dataRelatedColsRef: ComputedRef<\n      Array<TableSelectionColumn | TableBaseColumn | TableExpandColumn>\n    >\n  }\n) {\n  const selectionColumnRef = computed<TableSelectionColumn | null>(() => {\n    const getSelectionColumn = (\n      cols: typeof props.columns\n    ): TableSelectionColumn | null => {\n      for (let i = 0; i < cols.length; ++i) {\n        const col = cols[i]\n        if ('children' in col) {\n          return getSelectionColumn(col.children)\n        }\n        else if (col.type === 'selection') {\n          return col\n        }\n      }\n      return null\n    }\n    return getSelectionColumn(props.columns)\n  })\n\n  const treeMateRef = computed(() => {\n    const { childrenKey } = props\n    return createTreeMate<InternalRowData>(props.data, {\n      ignoreEmptyChildren: true,\n      getKey: props.rowKey,\n      getChildren: rowData => rowData[childrenKey],\n      getDisabled: (rowData) => {\n        if (selectionColumnRef.value?.disabled?.(rowData)) {\n          return true\n        }\n        return false\n      }\n    })\n  })\n\n  const childTriggerColIndexRef = useMemo<number>(() => {\n    const { columns } = props\n    const { length } = columns\n    let firstContentfulColIndex: number | null = null\n    for (let i = 0; i < length; ++i) {\n      const col = columns[i]\n      if (!col.type && firstContentfulColIndex === null) {\n        firstContentfulColIndex = i\n      }\n      if ('tree' in col && col.tree) {\n        return i\n      }\n    }\n    return firstContentfulColIndex || 0\n  })\n\n  const uncontrolledFilterStateRef = ref<FilterState>({})\n  const { pagination } = props\n  const uncontrolledCurrentPageRef = ref(\n    pagination ? pagination.defaultPage || 1 : 1\n  )\n  const uncontrolledPageSizeRef = ref(getDefaultPageSize(pagination))\n\n  const mergedFilterStateRef = computed<FilterState>(() => {\n    const columnsWithControlledFilter = dataRelatedColsRef.value.filter(\n      (column) => {\n        return (\n          column.filterOptionValues !== undefined\n          || column.filterOptionValue !== undefined\n        )\n      }\n    )\n    const controlledFilterState: FilterState = {}\n    columnsWithControlledFilter.forEach((column) => {\n      if (column.type === 'selection' || column.type === 'expand')\n        return\n      if (column.filterOptionValues === undefined) {\n        controlledFilterState[column.key] = column.filterOptionValue ?? null\n      }\n      else {\n        controlledFilterState[column.key] = column.filterOptionValues\n      }\n    })\n    const activeFilters = Object.assign(\n      createShallowClonedObject(uncontrolledFilterStateRef.value),\n      controlledFilterState\n    )\n    return activeFilters\n  })\n\n  const filteredDataRef = computed<TmNode[]>(() => {\n    const mergedFilterState = mergedFilterStateRef.value\n    const { columns } = props\n    function createDefaultFilter(columnKey: ColumnKey): Filter {\n      return (filterOptionValue: FilterOptionValue, row: InternalRowData) =>\n        !!~String(row[columnKey]).indexOf(String(filterOptionValue))\n    }\n    const {\n      value: { treeNodes: data }\n    } = treeMateRef\n    const columnEntries: Array<[ColumnKey, TableBaseColumn]> = []\n    columns.forEach((column) => {\n      if (\n        column.type === 'selection'\n        || column.type === 'expand'\n        || 'children' in column\n      ) {\n        return\n      }\n      columnEntries.push([column.key, column])\n    })\n    return data\n      ? data.filter((tmNode) => {\n          const { rawNode: row } = tmNode\n          // traverse all filters\n          for (const [columnKey, column] of columnEntries) {\n            let activeFilterOptionValues = mergedFilterState[columnKey]\n            if (activeFilterOptionValues == null)\n              continue\n            if (!Array.isArray(activeFilterOptionValues)) {\n              activeFilterOptionValues = [activeFilterOptionValues]\n            }\n            if (!activeFilterOptionValues.length)\n              continue\n            // When async, filter won't be set, so data won't be filtered\n            const filter\n              = column.filter === 'default'\n                ? createDefaultFilter(columnKey)\n                : column.filter\n            if (column && typeof filter === 'function') {\n              if (column.filterMode === 'and') {\n                if (\n                  activeFilterOptionValues.some(\n                    filterOptionValue => !filter(filterOptionValue, row)\n                  )\n                ) {\n                  return false\n                }\n              }\n              else {\n                if (\n                  activeFilterOptionValues.some(filterOptionValue =>\n                    filter(filterOptionValue, row)\n                  )\n                ) {\n                  continue\n                }\n                else {\n                  return false\n                }\n              }\n            }\n          }\n          return true\n        })\n      : []\n  })\n\n  const {\n    sortedDataRef,\n    deriveNextSorter,\n    mergedSortStateRef,\n    sort,\n    clearSorter\n  } = useSorter(props, {\n    dataRelatedColsRef,\n    filteredDataRef\n  })\n\n  // initialize\n  dataRelatedColsRef.value.forEach((column) => {\n    if (column.filter) {\n      const defaultFilterOptionValues = column.defaultFilterOptionValues\n      if (column.filterMultiple) {\n        uncontrolledFilterStateRef.value[column.key]\n          = defaultFilterOptionValues || []\n      }\n      else if (defaultFilterOptionValues !== undefined) {\n        // this branch is for compatibility, someone may use `values` in single filter mode\n        uncontrolledFilterStateRef.value[column.key]\n          = defaultFilterOptionValues === null ? [] : defaultFilterOptionValues\n      }\n      else {\n        uncontrolledFilterStateRef.value[column.key]\n          = column.defaultFilterOptionValue ?? null\n      }\n    }\n  })\n\n  const controlledCurrentPageRef = computed(() => {\n    const { pagination } = props\n    if (pagination === false)\n      return undefined\n    return pagination.page\n  })\n  const controlledPageSizeRef = computed(() => {\n    const { pagination } = props\n    if (pagination === false)\n      return undefined\n    return pagination.pageSize\n  })\n\n  const _mergedCurrentPageRef = useMergedState(\n    controlledCurrentPageRef,\n    uncontrolledCurrentPageRef\n  )\n\n  const mergedPageSizeRef = useMergedState(\n    controlledPageSizeRef,\n    uncontrolledPageSizeRef\n  )\n\n  const boundedMergedCurrentPageRef = useMemo<number>(() => {\n    const page = _mergedCurrentPageRef.value\n    return props.remote\n      ? page\n      : Math.max(\n          1,\n          Math.min(\n            Math.ceil(filteredDataRef.value.length / mergedPageSizeRef.value),\n            page\n          )\n        )\n  })\n\n  const mergedPageCountRef = computed(() => {\n    const { pagination } = props\n    if (pagination) {\n      const { pageCount } = pagination\n      if (pageCount !== undefined)\n        return pageCount\n    }\n    return undefined\n  })\n\n  const paginatedDataRef = computed<TmNode[]>(() => {\n    if (props.remote)\n      return treeMateRef.value.treeNodes\n    if (!props.pagination)\n      return sortedDataRef.value\n    const pageSize = mergedPageSizeRef.value\n    const startIndex = (boundedMergedCurrentPageRef.value - 1) * pageSize\n    return sortedDataRef.value.slice(startIndex, startIndex + pageSize)\n  })\n\n  const rawPaginatedDataRef = computed<InternalRowData[]>(() => {\n    return paginatedDataRef.value.map(tmNode => tmNode.rawNode)\n  })\n\n  const rawSortedDataRef = computed<InternalRowData[]>(() => {\n    return sortedDataRef.value.map(tmNode => tmNode.rawNode)\n  })\n\n  function mergedOnUpdatePage(page: number): void {\n    const { pagination } = props\n    if (pagination) {\n      const {\n        onChange,\n        'onUpdate:page': _onUpdatePage,\n        onUpdatePage\n      } = pagination\n      if (onChange)\n        call(onChange, page)\n      if (onUpdatePage)\n        call(onUpdatePage, page)\n      if (_onUpdatePage)\n        call(_onUpdatePage, page)\n      doUpdatePage(page)\n    }\n  }\n  function mergedOnUpdatePageSize(pageSize: number): void {\n    const { pagination } = props\n    if (pagination) {\n      const {\n        onPageSizeChange,\n        'onUpdate:pageSize': _onUpdatePageSize,\n        onUpdatePageSize\n      } = pagination\n      if (onPageSizeChange)\n        call(onPageSizeChange, pageSize)\n      if (onUpdatePageSize)\n        call(onUpdatePageSize, pageSize)\n      if (_onUpdatePageSize)\n        call(_onUpdatePageSize, pageSize)\n      doUpdatePageSize(pageSize)\n    }\n  }\n  const mergedItemCountRef = computed(() => {\n    if (props.remote) {\n      const { pagination } = props\n      if (pagination) {\n        const { itemCount } = pagination\n        if (itemCount !== undefined)\n          return itemCount\n      }\n      return undefined\n    }\n    return filteredDataRef.value.length\n  })\n  const mergedPaginationRef = computed<PaginationProps>(() => {\n    return {\n      ...props.pagination,\n      // reset deprecated methods\n      onChange: undefined,\n      onUpdatePage: undefined,\n      onUpdatePageSize: undefined,\n      onPageSizeChange: undefined,\n      'onUpdate:page': mergedOnUpdatePage,\n      'onUpdate:pageSize': mergedOnUpdatePageSize,\n      // writing merged props after pagination to avoid\n      // pagination[key] === undefined\n      // key still exists but value is undefined\n      page: boundedMergedCurrentPageRef.value,\n      pageSize: mergedPageSizeRef.value,\n      pageCount:\n        mergedItemCountRef.value === undefined\n          ? mergedPageCountRef.value\n          : undefined,\n      itemCount: mergedItemCountRef.value\n    }\n  })\n\n  function doUpdatePage(page: number): void {\n    const { 'onUpdate:page': _onUpdatePage, onPageChange, onUpdatePage } = props\n    if (onUpdatePage)\n      call(onUpdatePage, page)\n    if (_onUpdatePage)\n      call(_onUpdatePage, page)\n    if (onPageChange)\n      call(onPageChange, page)\n    uncontrolledCurrentPageRef.value = page\n  }\n  function doUpdatePageSize(pageSize: number): void {\n    const {\n      'onUpdate:pageSize': _onUpdatePageSize,\n      onPageSizeChange,\n      onUpdatePageSize\n    } = props\n    if (onPageSizeChange)\n      call(onPageSizeChange, pageSize)\n    if (onUpdatePageSize)\n      call(onUpdatePageSize, pageSize)\n    if (_onUpdatePageSize)\n      call(_onUpdatePageSize, pageSize)\n    uncontrolledPageSizeRef.value = pageSize\n  }\n\n  function doUpdateFilters(\n    filters: FilterState,\n    sourceColumn: TableBaseColumn\n  ): void {\n    const {\n      onUpdateFilters,\n      'onUpdate:filters': _onUpdateFilters,\n      onFiltersChange\n    } = props\n    if (onUpdateFilters)\n      call(onUpdateFilters, filters, sourceColumn)\n    if (_onUpdateFilters)\n      call(_onUpdateFilters, filters, sourceColumn)\n    if (onFiltersChange)\n      call(onFiltersChange, filters, sourceColumn)\n    uncontrolledFilterStateRef.value = filters\n  }\n\n  function onUnstableColumnResize(\n    resizedWidth: number,\n    limitedWidth: number,\n    column: TableBaseColumn,\n    getColumnWidth: (key: ColumnKey) => number | undefined\n  ): void {\n    props.onUnstableColumnResize?.(\n      resizedWidth,\n      limitedWidth,\n      column,\n      getColumnWidth\n    )\n  }\n\n  function page(page: number): void {\n    doUpdatePage(page)\n  }\n  function clearFilter(): void {\n    clearFilters()\n  }\n  function clearFilters(): void {\n    filters({})\n  }\n  function filters(filters: FilterState | null): void {\n    filter(filters)\n  }\n  function filter(filters: FilterState | null): void {\n    if (!filters) {\n      uncontrolledFilterStateRef.value = {}\n    }\n    else if (filters) {\n      uncontrolledFilterStateRef.value = createShallowClonedObject(filters)\n    }\n    else if (__DEV__) {\n      warn('data-table', '`filters` is not an object')\n    }\n  }\n  return {\n    treeMateRef,\n    mergedCurrentPageRef: boundedMergedCurrentPageRef,\n    mergedPaginationRef,\n    paginatedDataRef,\n    rawPaginatedDataRef,\n    rawSortedDataRef,\n    mergedFilterStateRef,\n    mergedSortStateRef,\n    hoverKeyRef: ref<RowKey | null>(null),\n    selectionColumnRef,\n    childTriggerColIndexRef,\n    doUpdateFilters,\n    deriveNextSorter,\n    doUpdatePageSize,\n    doUpdatePage,\n    onUnstableColumnResize,\n    // exported methods\n    filter,\n    filters,\n    clearFilter,\n    clearFilters,\n    clearSorter,\n    page,\n    sort\n  }\n}\n","import type { CSSProperties, Ref, SlotsType } from 'vue'\nimport type {\n  CsvOptionsType,\n  DataTableInst,\n  DataTableSlots,\n  MainTableRef,\n  RowKey\n} from './interface'\nimport { createId } from 'seemly'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watchEffect\n} from 'vue'\nimport { NBaseLoading } from '../../_internal'\nimport {\n  useConfig,\n  useLocale,\n  useRtl,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport { createKey, download, resolveSlot, warnOnce } from '../../_utils'\nimport { NPagination } from '../../pagination'\nimport { dataTableLight } from '../styles'\nimport { dataTableInjectionKey, dataTableProps } from './interface'\nimport MainTable from './MainTable'\nimport style from './styles/index.cssr'\nimport { useCheck } from './use-check'\nimport { useExpand } from './use-expand'\nimport { useGroupHeader } from './use-group-header'\nimport { useResizable } from './use-resizable'\nimport { useScroll } from './use-scroll'\nimport { useTableData } from './use-table-data'\nimport { generateCsv } from './utils'\n\nexport default defineComponent({\n  name: 'DataTable',\n  alias: ['AdvancedTable'],\n  props: dataTableProps,\n  slots: Object as SlotsType<DataTableSlots>,\n  setup(props, { slots }) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onPageChange !== undefined) {\n          warnOnce(\n            'data-table',\n            '`on-page-change` is deprecated, please use `on-update:page` instead.'\n          )\n        }\n        if (props.onPageSizeChange !== undefined) {\n          warnOnce(\n            'data-table',\n            '`on-page-size-change` is deprecated, please use `on-update:page-size` instead.'\n          )\n        }\n        if (props.onSorterChange !== undefined) {\n          warnOnce(\n            'data-table',\n            '`on-sorter-change` is deprecated, please use `on-update:sorter` instead.'\n          )\n        }\n        if (props.onFiltersChange !== undefined) {\n          warnOnce(\n            'data-table',\n            '`on-filters-change` is deprecated, please use `on-update:filters` instead.'\n          )\n        }\n        if (props.onCheckedRowKeysChange !== undefined) {\n          warnOnce(\n            'data-table',\n            '`on-checked-row-keys-change` is deprecated, please use `on-update:checked-row-keys` instead.'\n          )\n        }\n      })\n    }\n\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const rtlEnabledRef = useRtl('DataTable', mergedRtlRef, mergedClsPrefixRef)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size\n        || mergedComponentPropsRef?.value?.DataTable?.size\n        || 'medium'\n      )\n    })\n    const mergedBottomBorderedRef = computed(() => {\n      const { bottomBordered } = props\n      // do not add bottom bordered class if bordered is true\n      // since border is displayed on wrapper\n      if (mergedBorderedRef.value)\n        return false\n      if (bottomBordered !== undefined)\n        return bottomBordered\n      return true\n    })\n    const themeRef = useTheme(\n      'DataTable',\n      '-data-table',\n      style,\n      dataTableLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const bodyWidthRef = ref<number | null>(null)\n    const mainTableInstRef = ref<MainTableRef | null>(null)\n    const { getResizableWidth, clearResizableWidth, doUpdateResizableWidth }\n      = useResizable()\n    const { rowsRef, colsRef, dataRelatedColsRef, hasEllipsisRef }\n      = useGroupHeader(props, getResizableWidth)\n\n    const {\n      treeMateRef,\n      mergedCurrentPageRef,\n      paginatedDataRef,\n      rawPaginatedDataRef,\n      rawSortedDataRef,\n      selectionColumnRef,\n      hoverKeyRef,\n      mergedPaginationRef,\n      mergedFilterStateRef,\n      mergedSortStateRef,\n      childTriggerColIndexRef,\n      doUpdatePage,\n      doUpdateFilters,\n      onUnstableColumnResize,\n      deriveNextSorter,\n      filter,\n      filters,\n      clearFilter,\n      clearFilters,\n      clearSorter,\n      page,\n      sort\n    } = useTableData(props, { dataRelatedColsRef })\n\n    const mergedEmptyRef = computed(() => paginatedDataRef.value.length === 0)\n\n    const downloadCsv = (options?: CsvOptionsType): void => {\n      const { fileName = 'data.csv', keepOriginalData = false } = options || {}\n      const data = keepOriginalData ? props.data : rawPaginatedDataRef.value\n      const csvData = generateCsv(\n        props.columns,\n        data,\n        props.getCsvCell,\n        props.getCsvHeader\n      )\n      const blob = new Blob([csvData], { type: 'text/csv;charset=utf-8' })\n      const downloadUrl = URL.createObjectURL(blob)\n      download(\n        downloadUrl,\n        fileName.endsWith('.csv') ? fileName : `${fileName}.csv`\n      )\n      URL.revokeObjectURL(downloadUrl)\n    }\n\n    const {\n      doCheckAll,\n      doUncheckAll,\n      doCheck,\n      doUncheck,\n      headerCheckboxDisabledRef,\n      someRowsCheckedRef,\n      allRowsCheckedRef,\n      mergedCheckedRowKeySetRef,\n      mergedInderminateRowKeySetRef\n    } = useCheck(props, {\n      selectionColumnRef,\n      treeMateRef,\n      paginatedDataRef\n    })\n    const {\n      stickyExpandedRowsRef,\n      mergedExpandedRowKeysRef,\n      renderExpandRef,\n      expandableRef,\n      doUpdateExpandedRowKeys\n    } = useExpand(props, treeMateRef)\n    const maxHeightRef = toRef(props, 'maxHeight')\n    const mergedTableLayoutRef = computed(() => {\n      // Layout\n      // virtual |descrete header | ellpisis => fixed\n      //    = virtual | maxHeight | ellpisis => fixed\n      if (\n        props.virtualScroll\n        || props.flexHeight\n        || props.maxHeight !== undefined\n        || hasEllipsisRef.value\n      ) {\n        return 'fixed'\n      }\n      return props.tableLayout\n    })\n    const {\n      handleTableBodyScroll,\n      handleTableHeaderScroll,\n      syncScrollState,\n      setHeaderScrollLeft,\n      leftActiveFixedColKeyRef,\n      leftActiveFixedChildrenColKeysRef,\n      rightActiveFixedColKeyRef,\n      rightActiveFixedChildrenColKeysRef,\n      leftFixedColumnsRef,\n      rightFixedColumnsRef,\n      fixedColumnLeftMapRef,\n      fixedColumnRightMapRef,\n      xScrollableRef,\n      explicitlyScrollableRef\n    } = useScroll(props, {\n      bodyWidthRef,\n      mainTableInstRef,\n      mergedCurrentPageRef,\n      maxHeightRef,\n      mergedTableLayoutRef,\n      mergedEmptyRef\n    })\n    const { localeRef } = useLocale('DataTable')\n\n    provide(dataTableInjectionKey, {\n      xScrollableRef,\n      explicitlyScrollableRef,\n      props,\n      treeMateRef,\n      renderExpandIconRef: toRef(props, 'renderExpandIcon'),\n      loadingKeySetRef: ref(new Set<RowKey>()),\n      slots,\n      indentRef: toRef(props, 'indent'),\n      childTriggerColIndexRef,\n      bodyWidthRef,\n      componentId: createId(),\n      hoverKeyRef,\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      scrollXRef: computed(() => props.scrollX),\n      rowsRef,\n      colsRef,\n      paginatedDataRef,\n      leftActiveFixedColKeyRef,\n      leftActiveFixedChildrenColKeysRef,\n      rightActiveFixedColKeyRef,\n      rightActiveFixedChildrenColKeysRef,\n      leftFixedColumnsRef,\n      rightFixedColumnsRef,\n      fixedColumnLeftMapRef,\n      fixedColumnRightMapRef,\n      mergedCurrentPageRef,\n      someRowsCheckedRef,\n      allRowsCheckedRef,\n      mergedSortStateRef,\n      mergedFilterStateRef,\n      loadingRef: toRef(props, 'loading'),\n      rowClassNameRef: toRef(props, 'rowClassName'),\n      mergedCheckedRowKeySetRef,\n      mergedExpandedRowKeysRef,\n      mergedInderminateRowKeySetRef,\n      localeRef,\n      expandableRef,\n      stickyExpandedRowsRef,\n      rowKeyRef: toRef(props, 'rowKey'),\n      renderExpandRef,\n      summaryRef: toRef(props, 'summary'),\n      virtualScrollRef: toRef(props, 'virtualScroll'),\n      virtualScrollXRef: toRef(props, 'virtualScrollX'),\n      heightForRowRef: toRef(props, 'heightForRow'),\n      minRowHeightRef: toRef(props, 'minRowHeight'),\n      virtualScrollHeaderRef: toRef(props, 'virtualScrollHeader'),\n      headerHeightRef: toRef(props, 'headerHeight'),\n      rowPropsRef: toRef(props, 'rowProps'),\n      stripedRef: toRef(props, 'striped'),\n      checkOptionsRef: computed(() => {\n        const { value: selectionColumn } = selectionColumnRef\n        return selectionColumn?.options\n      }),\n      rawPaginatedDataRef,\n      filterMenuCssVarsRef: computed(() => {\n        const {\n          self: { actionDividerColor, actionPadding, actionButtonMargin }\n        } = themeRef.value\n        return {\n          '--n-action-padding': actionPadding,\n          '--n-action-button-margin': actionButtonMargin,\n          '--n-action-divider-color': actionDividerColor\n        } satisfies CSSProperties\n      }),\n      onLoadRef: toRef(props, 'onLoad'),\n      mergedTableLayoutRef,\n      maxHeightRef,\n      minHeightRef: toRef(props, 'minHeight'),\n      flexHeightRef: toRef(props, 'flexHeight'),\n      headerCheckboxDisabledRef,\n      paginationBehaviorOnFilterRef: toRef(props, 'paginationBehaviorOnFilter'),\n      summaryPlacementRef: toRef(props, 'summaryPlacement'),\n      filterIconPopoverPropsRef: toRef(props, 'filterIconPopoverProps'),\n      scrollbarPropsRef: toRef(props, 'scrollbarProps'),\n      syncScrollState,\n      doUpdatePage,\n      doUpdateFilters,\n      getResizableWidth,\n      onUnstableColumnResize,\n      clearResizableWidth,\n      doUpdateResizableWidth,\n      deriveNextSorter,\n      doCheck,\n      doUncheck,\n      doCheckAll,\n      doUncheckAll,\n      doUpdateExpandedRowKeys,\n      handleTableHeaderScroll,\n      handleTableBodyScroll,\n      setHeaderScrollLeft,\n      renderCell: toRef(props, 'renderCell')\n    })\n    const exposedMethods: DataTableInst = {\n      filter,\n      filters,\n      clearFilters,\n      clearSorter,\n      page,\n      sort,\n      clearFilter,\n      downloadCsv,\n      scrollTo: (arg0: any, arg1?: any) => {\n        mainTableInstRef.value?.scrollTo(arg0, arg1)\n      },\n      getFilteredAndSortedData: () => {\n        return rawSortedDataRef.value\n      },\n      getCurrentPageData: () => {\n        return rawPaginatedDataRef.value\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const mergedSize = mergedSizeRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          borderColor,\n          tdColorHover,\n          tdColorSorting,\n          tdColorSortingModal,\n          tdColorSortingPopover,\n          thColorSorting,\n          thColorSortingModal,\n          thColorSortingPopover,\n          thColor,\n          thColorHover,\n          tdColor,\n          tdTextColor,\n          thTextColor,\n          thFontWeight,\n          thButtonColorHover,\n          thIconColor,\n          thIconColorActive,\n          filterSize,\n          borderRadius,\n          lineHeight,\n          tdColorModal,\n          thColorModal,\n          borderColorModal,\n          thColorHoverModal,\n          tdColorHoverModal,\n          borderColorPopover,\n          thColorPopover,\n          tdColorPopover,\n          tdColorHoverPopover,\n          thColorHoverPopover,\n          paginationMargin,\n          emptyPadding,\n          boxShadowAfter,\n          boxShadowBefore,\n          sorterSize,\n          resizableContainerSize,\n          resizableSize,\n          loadingColor,\n          loadingSize,\n          opacityLoading,\n          tdColorStriped,\n          tdColorStripedModal,\n          tdColorStripedPopover,\n          [createKey('fontSize', mergedSize)]: fontSize,\n          [createKey('thPadding', mergedSize)]: thPadding,\n          [createKey('tdPadding', mergedSize)]: tdPadding\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-th-padding': thPadding,\n        '--n-td-padding': tdPadding,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-line-height': lineHeight,\n        '--n-border-color': borderColor,\n        '--n-border-color-modal': borderColorModal,\n        '--n-border-color-popover': borderColorPopover,\n        '--n-th-color': thColor,\n        '--n-th-color-hover': thColorHover,\n        '--n-th-color-modal': thColorModal,\n        '--n-th-color-hover-modal': thColorHoverModal,\n        '--n-th-color-popover': thColorPopover,\n        '--n-th-color-hover-popover': thColorHoverPopover,\n        '--n-td-color': tdColor,\n        '--n-td-color-hover': tdColorHover,\n        '--n-td-color-modal': tdColorModal,\n        '--n-td-color-hover-modal': tdColorHoverModal,\n        '--n-td-color-popover': tdColorPopover,\n        '--n-td-color-hover-popover': tdColorHoverPopover,\n        '--n-th-text-color': thTextColor,\n        '--n-td-text-color': tdTextColor,\n        '--n-th-font-weight': thFontWeight,\n        '--n-th-button-color-hover': thButtonColorHover,\n        '--n-th-icon-color': thIconColor,\n        '--n-th-icon-color-active': thIconColorActive,\n        '--n-filter-size': filterSize,\n        '--n-pagination-margin': paginationMargin,\n        '--n-empty-padding': emptyPadding,\n        '--n-box-shadow-before': boxShadowBefore,\n        '--n-box-shadow-after': boxShadowAfter,\n        '--n-sorter-size': sorterSize,\n        '--n-resizable-container-size': resizableContainerSize,\n        '--n-resizable-size': resizableSize,\n        '--n-loading-size': loadingSize,\n        '--n-loading-color': loadingColor,\n        '--n-opacity-loading': opacityLoading,\n        '--n-td-color-striped': tdColorStriped,\n        '--n-td-color-striped-modal': tdColorStripedModal,\n        '--n-td-color-striped-popover': tdColorStripedPopover,\n        '--n-td-color-sorting': tdColorSorting,\n        '--n-td-color-sorting-modal': tdColorSortingModal,\n        '--n-td-color-sorting-popover': tdColorSortingPopover,\n        '--n-th-color-sorting': thColorSorting,\n        '--n-th-color-sorting-modal': thColorSortingModal,\n        '--n-th-color-sorting-popover': thColorSortingPopover\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'data-table',\n          computed(() => mergedSizeRef.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    const mergedShowPaginationRef = computed(() => {\n      if (!props.pagination)\n        return false\n      if (props.paginateSinglePage)\n        return true\n      const mergedPagination = mergedPaginationRef.value\n      const { pageCount } = mergedPagination\n      if (pageCount !== undefined)\n        return pageCount > 1\n      return (\n        mergedPagination.itemCount\n        && mergedPagination.pageSize\n        && mergedPagination.itemCount > mergedPagination.pageSize\n      )\n    })\n    return {\n      // reduce dts: string ref only, type unused in render\n      mainTableInstRef: mainTableInstRef as unknown,\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedTheme: themeRef,\n      paginatedData: paginatedDataRef,\n      mergedBordered: mergedBorderedRef,\n      mergedBottomBordered: mergedBottomBorderedRef,\n      mergedPagination: mergedPaginationRef,\n      mergedShowPagination: mergedShowPaginationRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      mergedEmpty: mergedEmptyRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { mergedClsPrefix, themeClass, onRender, $slots, spinProps } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-data-table`,\n          this.rtlEnabled && `${mergedClsPrefix}-data-table--rtl`,\n          themeClass,\n          {\n            [`${mergedClsPrefix}-data-table--bordered`]: this.mergedBordered,\n            [`${mergedClsPrefix}-data-table--bottom-bordered`]:\n              this.mergedBottomBordered,\n            [`${mergedClsPrefix}-data-table--single-line`]: this.singleLine,\n            [`${mergedClsPrefix}-data-table--single-column`]: this.singleColumn,\n            [`${mergedClsPrefix}-data-table--loading`]: this.loading,\n            [`${mergedClsPrefix}-data-table--flex-height`]: this.flexHeight,\n            [`${mergedClsPrefix}-data-table--empty`]: this.mergedEmpty\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-data-table-wrapper`}>\n          <MainTable ref=\"mainTableInstRef\" />\n        </div>\n        {this.mergedShowPagination ? (\n          <div class={`${mergedClsPrefix}-data-table__pagination`}>\n            <NPagination\n              theme={this.mergedTheme.peers.Pagination}\n              themeOverrides={this.mergedTheme.peerOverrides.Pagination}\n              disabled={this.loading}\n              {...this.mergedPagination}\n            />\n          </div>\n        ) : null}\n        <Transition name=\"fade-in-scale-up-transition\">\n          {{\n            default: () => {\n              return this.loading ? (\n                <div class={`${mergedClsPrefix}-data-table-loading-wrapper`}>\n                  {resolveSlot($slots.loading, () => [\n                    <NBaseLoading\n                      clsPrefix={mergedClsPrefix}\n                      strokeWidth={20}\n                      {...spinProps}\n                    />\n                  ])}\n                </div>\n              ) : null\n            }\n          }}\n        </Transition>\n      </div>\n    )\n  }\n})\n","export default {\n  itemFontSize: '12px',\n  itemHeight: '36px',\n  itemWidth: '52px',\n  panelActionPadding: '8px 0'\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    popoverColor,\n    textColor2,\n    primaryColor,\n    hoverColor,\n    dividerColor,\n    opacityDisabled,\n    boxShadow2,\n    borderRadius,\n    iconColor,\n    iconColorDisabled\n  } = vars\n  return {\n    ...commonVars,\n    panelColor: popoverColor,\n    panelBoxShadow: boxShadow2,\n    panelDividerColor: dividerColor,\n    itemTextColor: textColor2,\n    itemTextColorActive: primaryColor,\n    itemColorHover: hoverColor,\n    itemOpacityDisabled: opacityDisabled,\n    itemBorderRadius: borderRadius,\n    borderRadius,\n    iconColor,\n    iconColorDisabled\n  }\n}\n\nexport interface TimePickerThemeVars extends ReturnType<typeof self> {}\n\nconst timePickerLight: TimePickerTheme = createTheme({\n  name: 'TimePicker',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight,\n    Button: buttonLight,\n    Input: inputLight\n  },\n  self\n})\n\nexport interface TimePickerTheme extends Theme<\n  'TimePicker',\n  TimePickerThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n    Button: ButtonTheme\n    Input: InputTheme\n  }\n> {}\n\nexport interface TimePickerThemeOverrides extends ExtractThemeOverrides<TimePickerTheme> {}\n\nexport default timePickerLight\n","import type { TimePickerTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\nimport { self } from './light'\n\nconst timePickerDark: TimePickerTheme = {\n  name: 'TimePicker',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark,\n    Button: buttonDark,\n    Input: inputDark\n  },\n  self\n}\n\nexport default timePickerDark\n","export default {\n  itemSize: '24px',\n  itemCellWidth: '38px',\n  itemCellHeight: '32px',\n  scrollItemWidth: '80px',\n  scrollItemHeight: '40px',\n  panelExtraFooterPadding: '8px 12px',\n  panelActionPadding: '8px 12px',\n  calendarTitlePadding: '0',\n  calendarTitleHeight: '28px',\n  arrowSize: '14px',\n  panelHeaderPadding: '8px 12px',\n  calendarDaysHeight: '32px',\n  calendarTitleGridTempateColumns: '28px 28px 1fr 28px 28px',\n  // type\n  calendarLeftPaddingDate: '6px 12px 4px 12px',\n  calendarLeftPaddingDatetime: '4px 12px',\n  calendarLeftPaddingDaterange: '6px 12px 4px 12px',\n  calendarLeftPaddingDatetimerange: '4px 12px',\n  calendarLeftPaddingMonth: '0', // TODO: make it actually effective\n  calendarLeftPaddingYear: '0',\n  calendarLeftPaddingQuarter: '0',\n  calendarLeftPaddingMonthrange: '0',\n  calendarLeftPaddingQuarterrange: '0',\n  calendarLeftPaddingYearrange: '0',\n  calendarLeftPaddingWeek: '6px 12px 4px 12px',\n  calendarRightPaddingDate: '6px 12px 4px 12px',\n  calendarRightPaddingDatetime: '4px 12px',\n  calendarRightPaddingDaterange: '6px 12px 4px 12px',\n  calendarRightPaddingDatetimerange: '4px 12px',\n  calendarRightPaddingMonth: '0',\n  calendarRightPaddingYear: '0',\n  calendarRightPaddingQuarter: '0',\n  calendarRightPaddingMonthrange: '0',\n  calendarRightPaddingQuarterrange: '0',\n  calendarRightPaddingYearrange: '0',\n  calendarRightPaddingWeek: '0'\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport type { TimePickerTheme } from '../../time-picker/styles'\nimport { changeColor } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\nimport { timePickerLight } from '../../time-picker/styles'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    hoverColor,\n    fontSize,\n    textColor2,\n    textColorDisabled,\n    popoverColor,\n    primaryColor,\n    borderRadiusSmall,\n    iconColor,\n    iconColorDisabled,\n    textColor1,\n    dividerColor,\n    boxShadow2,\n    borderRadius,\n    fontWeightStrong\n  } = vars\n  return {\n    ...commonVars,\n    itemFontSize: fontSize,\n    calendarDaysFontSize: fontSize,\n    calendarTitleFontSize: fontSize,\n    itemTextColor: textColor2,\n    itemTextColorDisabled: textColorDisabled,\n    itemTextColorActive: popoverColor,\n    itemTextColorCurrent: primaryColor,\n    itemColorIncluded: changeColor(primaryColor, { alpha: 0.1 }),\n    itemColorHover: hoverColor,\n    itemColorDisabled: hoverColor,\n    itemColorActive: primaryColor,\n    itemBorderRadius: borderRadiusSmall,\n    panelColor: popoverColor,\n    panelTextColor: textColor2,\n    arrowColor: iconColor,\n    calendarTitleTextColor: textColor1,\n    calendarTitleColorHover: hoverColor,\n    calendarDaysTextColor: textColor2,\n    panelHeaderDividerColor: dividerColor,\n    calendarDaysDividerColor: dividerColor,\n    calendarDividerColor: dividerColor,\n    panelActionDividerColor: dividerColor,\n    panelBoxShadow: boxShadow2,\n    panelBorderRadius: borderRadius,\n    calendarTitleFontWeight: fontWeightStrong,\n    scrollItemBorderRadius: borderRadius,\n    iconColor,\n    iconColorDisabled\n  }\n}\n\nexport interface DatePickerThemeVars extends ReturnType<typeof self> {}\n\nconst datePickerLight: DatePickerTheme = createTheme({\n  name: 'DatePicker',\n  common: commonLight,\n  peers: {\n    Input: inputLight,\n    Button: buttonLight,\n    TimePicker: timePickerLight,\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface DatePickerTheme extends Theme<\n  'DatePicker',\n  DatePickerThemeVars,\n  {\n    Input: InputTheme\n    Button: ButtonTheme\n    TimePicker: TimePickerTheme\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface DatePickerThemeOverrides extends ExtractThemeOverrides<DatePickerTheme> {}\n\nexport default datePickerLight\n","import type { DatePickerTheme } from './light'\nimport { changeColor, composite } from 'seemly'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\nimport { timePickerDark } from '../../time-picker/styles'\nimport { self } from './light'\n\nconst datePickerDark: DatePickerTheme = {\n  name: 'DatePicker',\n  common: commonDark,\n  peers: {\n    Input: inputDark,\n    Button: buttonDark,\n    TimePicker: timePickerDark,\n    Scrollbar: scrollbarDark\n  },\n  self(vars) {\n    const { popoverColor, hoverColor, primaryColor } = vars\n    const commonSelf = self(vars)\n    commonSelf.itemColorDisabled = composite(popoverColor, hoverColor)\n    commonSelf.itemColorIncluded = changeColor(primaryColor, { alpha: 0.15 })\n    commonSelf.itemColorHover = composite(popoverColor, hoverColor)\n    return commonSelf\n  }\n}\n\nexport default datePickerDark\n","import type { Ref, UnwrapNestedRefs } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { MergedTheme } from '../../_mixins'\nimport type { ButtonProps } from '../../button'\nimport type { NDateLocale, NLocale } from '../../locales'\nimport type {\n  IsHourDisabled,\n  IsMinuteDisabled,\n  IsSecondDisabled\n} from '../../time-picker/src/interface'\nimport type { TimePickerProps } from '../../time-picker/src/TimePicker'\nimport type { DatePickerTheme } from '../styles/light'\nimport type { DatePickerSlots } from './DatePicker'\nimport type {\n  dualCalendarValidation,\n  uniCalendarValidation\n} from './validation-utils'\nimport { createInjectionKey } from '../../_utils'\n\nexport type Value = number | [number, number]\n\nexport type DefaultTime\n  = | string\n    | [string | undefined, string | undefined]\n    | DatePickerGetDefaultTime\n    | DatePickerGetRangeDefaultTime\n\nexport type FormattedValue = string | [string, string]\n\nexport type NowButtonProps = Pick<ButtonProps, 'size' | 'onClick'>\n\nexport type ClearButtonProps = Pick<ButtonProps, 'size' | 'onClick'>\n\nexport type ConfirmButtonProps = Pick<\n  ButtonProps,\n  'size' | 'onClick' | 'type' | 'disabled'\n>\n\nexport type Shortcuts\n  = | Record<string, number | (() => number)>\n    | Record<\n      string,\n      | [number, number]\n      | readonly [number, number]\n      | (() => [number, number] | readonly [number, number])\n    >\n\nexport type OnUpdateValue = (\n  value: number\n    & (number | null)\n    & [number, number]\n    & ([number, number] | null),\n  formattedValue: string\n    & (string | null)\n    & [string, string]\n    & ([string, string] | null)\n) => void\n\nexport type OnConfirm = OnUpdateValue\n\nexport type OnConfirmImpl = OnUpdateValueImpl\n\nexport type OnUpdateFormattedValue = (\n  value: string\n    & (string | null)\n    & [string, string]\n    & ([string, string] | null),\n  timestampValue: number\n    & (number | null)\n    & [number, number]\n    & ([number, number] | null)\n) => void\n\nexport type OnUpdateFormattedValueImpl = (\n  value: string | [string, string] | null,\n  timestampValue: number | [number, number] | null\n) => void\n\nexport type OnUpdateValueImpl = (\n  value: Value | null,\n  formattedValue: string | [string, string] | null\n) => void\n\nexport type OnPanelUpdateValue = (\n  value: number\n    & (number | null)\n    & [number, number]\n    & ([number, number] | null),\n  doUpdate: boolean\n) => void\n\nexport type OnPanelUpdateValueImpl = (\n  value: Value | null,\n  doUpdate: boolean\n) => void\n\nexport type OnClose = (disableUpdateOnClose: boolean) => void\n\nexport interface RangePanelChildComponentRefs {\n  startYearScrollbarRef: Ref<ScrollbarInst | null>\n  endYearScrollbarRef: Ref<ScrollbarInst | null>\n  startMonthScrollbarRef: Ref<ScrollbarInst | null>\n  endMonthScrollbarRef: Ref<ScrollbarInst | null>\n  startYearVlRef: Ref<VirtualListInst | null>\n  endYearVlRef: Ref<VirtualListInst | null>\n}\n\nexport interface PanelChildComponentRefs {\n  monthScrollbarRef: Ref<ScrollbarInst | null> // Only exists when type is month\n  yearScrollbarRef: Ref<ScrollbarInst | null>\n  // year, virtual scroll\n  yearVlRef: Ref<VirtualListInst | null>\n}\n\nexport interface PanelRef\n  extends Partial<\n    UnwrapNestedRefs<PanelChildComponentRefs & RangePanelChildComponentRefs>\n  > {\n  $el: HTMLElement\n}\n\n// 0 is Monday\nexport type FirstDayOfWeek = 0 | 1 | 2 | 3 | 4 | 5 | 6\n\nexport type DatePickerInjection = {\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<DatePickerTheme>>\n  timePickerSizeRef: Ref<'small' | 'medium' | 'large'>\n  timePickerPropsRef: Ref<\n    undefined | TimePickerProps | [TimePickerProps, TimePickerProps]\n  >\n  localeRef: Ref<NLocale['DatePicker']>\n  dateLocaleRef: Ref<NDateLocale>\n  isDateDisabledRef: Ref<IsDateDisabled | undefined>\n  rangesRef: Ref<Record<string, [number, number]> | undefined>\n  closeOnSelectRef: Ref<boolean>\n  updateValueOnCloseRef: Ref<boolean>\n  firstDayOfWeekRef: Ref<FirstDayOfWeek | undefined>\n  monthFormatRef: Ref<string>\n  yearFormatRef: Ref<string>\n  quarterFormatRef: Ref<string>\n  datePickerSlots: DatePickerSlots\n  yearRangeRef: Ref<[number, number]>\n} & ReturnType<typeof uniCalendarValidation>\n& ReturnType<typeof dualCalendarValidation>\n\nexport const datePickerInjectionKey\n  = createInjectionKey<DatePickerInjection>('n-date-picker')\n\nexport type IsDateDisabled = IsSingleDateDisabled | IsRangeDateDisabled\n\nexport type IsSingleDateDisabledDetail\n  = | {\n    type: 'date'\n    year: number\n    month: number\n    date: number\n  }\n  | {\n    type: 'month'\n    year: number\n    month: number\n  }\n  | {\n    type: 'year'\n    year: number\n  }\n  | {\n    type: 'quarter'\n    year: number\n    quarter: number\n  }\n  | {\n    type: 'input'\n  }\n\nexport type IsSingleDateDisabled = (\n  timestamp: number,\n  detail: IsSingleDateDisabledDetail\n) => boolean\nexport type IsRangeDateDisabled = (\n  timestamp: number,\n  position: 'start' | 'end',\n  value: [number, number] | null\n) => boolean\n\nexport interface TimeValidator {\n  isHourDisabled?: IsHourDisabled\n  isMinuteDisabled?: IsMinuteDisabled\n  isSecondDisabled?: IsSecondDisabled\n}\n\nexport type IsTimeDisabled = IsSingleTimeDisabled | IsRangeTimeDisabled\nexport type IsSingleTimeDisabled = (date: number) => TimeValidator\nexport type IsRangeTimeDisabled = (\n  date: number,\n  position: 'start' | 'end',\n  value: [number, number] // date must exist to have time validation\n) => TimeValidator\n\nexport type DatePickerGetDefaultTime = (timestamp: number) => string\nexport type DatePickerGetRangeDefaultTime = (\n  timestamp: number,\n  position: 'start' | 'end',\n  value: [number, number] | null\n) => string\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport type {\n  DefaultTime,\n  OnClose,\n  OnPanelUpdateValue,\n  OnPanelUpdateValueImpl,\n  Shortcuts,\n  Value\n} from '../interface'\nimport { useKeyboard } from 'vooks'\nimport { computed, inject, nextTick, ref } from 'vue'\nimport { datePickerInjectionKey } from '../interface'\n\nconst TIME_FORMAT = 'HH:mm:ss'\n\nconst usePanelCommonProps = {\n  active: Boolean,\n  dateFormat: String,\n  fastYearSelect: Boolean,\n  fastMonthSelect: Boolean,\n  calendarDayFormat: String,\n  calendarHeaderYearFormat: String,\n  calendarHeaderMonthFormat: String,\n  calendarHeaderMonthYearSeparator: { type: String, required: true },\n  calendarHeaderMonthBeforeYear: {\n    type: Boolean,\n    default: undefined\n  },\n  timePickerFormat: {\n    type: String,\n    value: TIME_FORMAT\n  },\n  value: {\n    type: [Array, Number] as PropType<Value | null>,\n    default: null\n  },\n  shortcuts: Object as PropType<Shortcuts>,\n  defaultTime: [Number, String, Array, Function] as PropType<DefaultTime>,\n  inputReadonly: Boolean,\n  onClear: Function,\n  onConfirm: Function as PropType<(value: Value | null) => void>,\n  onClose: Function as PropType<OnClose>,\n  onTabOut: Function,\n  onKeydown: Function,\n  actions: Array as PropType<string[]>,\n  onSelectYear: Function,\n  onSelectMonth: Function,\n  onUpdateValue: {\n    type: Function as PropType<OnPanelUpdateValue>,\n    required: true\n  },\n  themeClass: String,\n  onRender: Function as PropType<(() => void) | undefined>,\n  panel: Boolean,\n  onNextMonth: Function as PropType<() => void>,\n  onPrevMonth: Function as PropType<() => void>,\n  onNextYear: Function as PropType<() => void>,\n  onPrevYear: Function as PropType<() => void>\n} as const\n\nexport type UsePanelCommonProps = ExtractPropTypes<typeof usePanelCommonProps>\n\nfunction usePanelCommon(props: UsePanelCommonProps) {\n  const {\n    dateLocaleRef,\n    timePickerSizeRef,\n    timePickerPropsRef,\n    localeRef,\n    mergedClsPrefixRef,\n    mergedThemeRef\n  } = inject(datePickerInjectionKey)!\n  const dateFnsOptionsRef = computed(() => {\n    return {\n      locale: dateLocaleRef.value.locale\n    }\n  })\n  const selfRef = ref<HTMLElement | null>(null)\n  const keyboardState = useKeyboard()\n  function doClear(): void {\n    const { onClear } = props\n    if (onClear)\n      onClear()\n  }\n  function doConfirm(): void {\n    const { onConfirm, value } = props\n    if (onConfirm)\n      onConfirm(value)\n  }\n  function doUpdateValue(value: Value | null, doUpdate: boolean): void {\n    const { onUpdateValue } = props\n    ;(onUpdateValue as OnPanelUpdateValueImpl)(value, doUpdate)\n  }\n  function doClose(disableUpdateOnClose: boolean = false): void {\n    const { onClose } = props\n    if (onClose)\n      onClose(disableUpdateOnClose)\n  }\n  function doTabOut(): void {\n    const { onTabOut } = props\n    if (onTabOut)\n      onTabOut()\n  }\n  function handleClearClick(): void {\n    doUpdateValue(null, true)\n    doClose(true)\n    doClear()\n  }\n  function handleFocusDetectorFocus(): void {\n    doTabOut()\n  }\n  function disableTransitionOneTick(): void {\n    if (props.active || props.panel) {\n      void nextTick(() => {\n        const { value: selfEl } = selfRef\n        if (!selfEl)\n          return\n        const dateEls = selfEl.querySelectorAll('[data-n-date]')\n        dateEls.forEach((el) => {\n          el.classList.add('transition-disabled')\n        })\n        void selfEl.offsetWidth\n        dateEls.forEach((el) => {\n          el.classList.remove('transition-disabled')\n        })\n      })\n    }\n  }\n  function handlePanelKeyDown(e: KeyboardEvent): void {\n    if (e.key === 'Tab' && e.target === selfRef.value && keyboardState.shift) {\n      e.preventDefault()\n      doTabOut()\n    }\n  }\n  function handlePanelFocus(e: FocusEvent): void {\n    const { value: el } = selfRef\n    if (\n      keyboardState.tab\n      && e.target === el\n      && el?.contains(e.relatedTarget as Node)\n    ) {\n      doTabOut()\n    }\n  }\n  let cachedValue: Value | null = null\n  let cached = false\n  function cachePendingValue(): void {\n    cachedValue = props.value\n    cached = true\n  }\n  function clearPendingValue(): void {\n    cached = false\n  }\n  function restorePendingValue(): void {\n    if (cached) {\n      doUpdateValue(cachedValue, false)\n      cached = false\n    }\n  }\n  function getShortcutValue(\n    shortcut: Shortcuts[string]\n  ): number | [number, number] | readonly [number, number] {\n    if (typeof shortcut === 'function') {\n      return shortcut()\n    }\n    return shortcut\n  }\n\n  const showMonthYearPanel = ref(false)\n  function handleOpenQuickSelectMonthPanel(): void {\n    showMonthYearPanel.value = !showMonthYearPanel.value\n  }\n  return {\n    mergedTheme: mergedThemeRef,\n    mergedClsPrefix: mergedClsPrefixRef,\n    dateFnsOptions: dateFnsOptionsRef,\n    timePickerSize: timePickerSizeRef,\n    timePickerProps: timePickerPropsRef,\n    selfRef,\n    locale: localeRef,\n    doConfirm,\n    doClose,\n    doUpdateValue,\n    doTabOut,\n    handleClearClick,\n    handleFocusDetectorFocus,\n    disableTransitionOneTick,\n    handlePanelKeyDown,\n    handlePanelFocus,\n    cachePendingValue,\n    clearPendingValue,\n    restorePendingValue,\n    getShortcutValue,\n    handleShortcutMouseleave: restorePendingValue,\n    showMonthYearPanel,\n    handleOpenQuickSelectMonthPanel\n  }\n}\n\nexport { usePanelCommon, usePanelCommonProps }\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../../_internal'\nimport type {\n  DatePickerGetDefaultTime,\n  FirstDayOfWeek,\n  IsSingleDateDisabled,\n  IsSingleDateDisabledDetail,\n  Shortcuts\n} from '../interface'\nimport type { DateItem, MonthItem, QuarterItem, YearItem } from '../utils'\nimport {\n  addMonths,\n  addYears,\n  format,\n  getDate,\n  getMonth,\n  getTime,\n  getYear,\n  isSameMonth,\n  isValid,\n  set,\n  setMonth,\n  setQuarter,\n  setYear,\n  startOfDay,\n  startOfMonth,\n  startOfQuarter,\n  startOfSecond,\n  startOfWeek,\n  startOfYear\n} from 'date-fns'\nimport { computed, inject, ref, watch } from 'vue'\nimport { MONTH_ITEM_HEIGHT } from '../config'\nimport { datePickerInjectionKey } from '../interface'\nimport {\n  dateArray,\n  extractSingleDefaultTime,\n  getDefaultTime,\n  monthArray,\n  quarterArray,\n  strictParse,\n  yearArray\n} from '../utils'\nimport { usePanelCommon, usePanelCommonProps } from './use-panel-common'\n\nconst useCalendarProps = {\n  ...usePanelCommonProps,\n  defaultCalendarStartTime: Number,\n  actions: {\n    type: Array as PropType<string[]>,\n    default: () => ['now', 'clear', 'confirm']\n  }\n} as const\n\nfunction useCalendar(\n  props: ExtractPropTypes<typeof useCalendarProps>,\n  type: 'date' | 'datetime' | 'month' | 'year' | 'quarter' | 'week'\n) {\n  const panelCommon = usePanelCommon(props)\n  const {\n    isValueInvalidRef,\n    isDateDisabledRef,\n    isDateInvalidRef,\n    isTimeInvalidRef,\n    isDateTimeInvalidRef,\n    isHourDisabledRef,\n    isMinuteDisabledRef,\n    isSecondDisabledRef,\n    localeRef,\n    firstDayOfWeekRef,\n    datePickerSlots,\n    yearFormatRef,\n    monthFormatRef,\n    quarterFormatRef,\n    yearRangeRef\n  } = inject(datePickerInjectionKey)!\n  const validation = {\n    isValueInvalid: isValueInvalidRef,\n    isDateDisabled: isDateDisabledRef,\n    isDateInvalid: isDateInvalidRef,\n    isTimeInvalid: isTimeInvalidRef,\n    isDateTimeInvalid: isDateTimeInvalidRef,\n    isHourDisabled: isHourDisabledRef,\n    isMinuteDisabled: isMinuteDisabledRef,\n    isSecondDisabled: isSecondDisabledRef\n  }\n  const mergedDateFormatRef = computed(\n    () => props.dateFormat || localeRef.value.dateFormat\n  )\n  const mergedDayFormatRef = computed(\n    () => props.calendarDayFormat || localeRef.value.dayFormat\n  )\n  const dateInputValueRef = ref(\n    props.value === null || Array.isArray(props.value)\n      ? ''\n      : format(props.value, mergedDateFormatRef.value)\n  )\n  const calendarValueRef = ref(\n    props.value === null || Array.isArray(props.value)\n      ? (props.defaultCalendarStartTime ?? Date.now())\n      : props.value\n  )\n  const yearVlRef = ref<VirtualListInst | null>(null)\n  const yearScrollbarRef = ref<ScrollbarInst | null>(null)\n  const monthScrollbarRef = ref<ScrollbarInst | null>(null)\n  const nowRef = ref(Date.now())\n  const dateArrayRef = computed(() => {\n    return dateArray(\n      calendarValueRef.value,\n      props.value,\n      nowRef.value,\n      firstDayOfWeekRef.value ?? localeRef.value.firstDayOfWeek,\n      false,\n      type === 'week'\n    )\n  })\n  const monthArrayRef = computed(() => {\n    const { value } = props\n    return monthArray(\n      calendarValueRef.value,\n      Array.isArray(value) ? null : value,\n      nowRef.value,\n      {\n        monthFormat: monthFormatRef.value\n      }\n    )\n  })\n  const yearArrayRef = computed(() => {\n    const { value } = props\n    return yearArray(\n      Array.isArray(value) ? null : value,\n      nowRef.value,\n      {\n        yearFormat: yearFormatRef.value\n      },\n      yearRangeRef\n    )\n  })\n  const quarterArrayRef = computed(() => {\n    const { value } = props\n    return quarterArray(\n      calendarValueRef.value,\n      Array.isArray(value) ? null : value,\n      nowRef.value,\n      {\n        quarterFormat: quarterFormatRef.value\n      }\n    )\n  })\n  const weekdaysRef = computed(() => {\n    return dateArrayRef.value.slice(0, 7).map((dateItem) => {\n      const { ts } = dateItem\n      return format(\n        ts,\n        mergedDayFormatRef.value,\n        panelCommon.dateFnsOptions.value\n      )\n    })\n  })\n  const calendarMonthRef = computed(() => {\n    return format(\n      calendarValueRef.value,\n      props.calendarHeaderMonthFormat || localeRef.value.monthFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const calendarYearRef = computed(() => {\n    return format(\n      calendarValueRef.value,\n      props.calendarHeaderYearFormat || localeRef.value.yearFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const calendarMonthBeforeYearRef = computed(() => {\n    return (\n      props.calendarHeaderMonthBeforeYear ?? localeRef.value.monthBeforeYear\n    )\n  })\n  watch(calendarValueRef, (value, oldValue) => {\n    if (type === 'date' || type === 'datetime') {\n      if (!isSameMonth(value, oldValue)) {\n        panelCommon.disableTransitionOneTick()\n      }\n    }\n  })\n  watch(\n    computed(() => props.value),\n    (value) => {\n      if (value !== null && !Array.isArray(value)) {\n        dateInputValueRef.value = format(\n          value,\n          mergedDateFormatRef.value,\n          panelCommon.dateFnsOptions.value\n        )\n        calendarValueRef.value = value\n      }\n      else {\n        dateInputValueRef.value = ''\n      }\n    }\n  )\n\n  function sanitizeValue(value: number): number {\n    if (type === 'datetime')\n      return getTime(startOfSecond(value))\n    if (type === 'month')\n      return getTime(startOfMonth(value))\n    if (type === 'year')\n      return getTime(startOfYear(value))\n    if (type === 'quarter')\n      return getTime(startOfQuarter(value))\n    if (type === 'week') {\n      // refer to makeWeekMatcher\n      const weekStartsOn = (((firstDayOfWeekRef.value\n        ?? localeRef.value.firstDayOfWeek)\n      + 1)\n    % 7) as FirstDayOfWeek\n      return getTime(\n        startOfWeek(value, {\n          weekStartsOn\n        })\n      )\n    }\n    return getTime(startOfDay(value))\n  }\n  function mergedIsDateDisabled(\n    ts: number,\n    detail: IsSingleDateDisabledDetail\n  ): boolean {\n    const {\n      isDateDisabled: { value: isDateDisabled }\n    } = validation\n    if (!isDateDisabled)\n      return false\n    return (isDateDisabled as IsSingleDateDisabled)(ts, detail)\n  }\n  function handleDateInput(value: string): void {\n    const date = strictParse(\n      value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    if (isValid(date)) {\n      if (props.value === null) {\n        panelCommon.doUpdateValue(\n          getTime(sanitizeValue(Date.now())),\n          props.panel\n        )\n      }\n      else if (!Array.isArray(props.value)) {\n        const newDateTime = set(props.value, {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        panelCommon.doUpdateValue(\n          getTime(sanitizeValue(getTime(newDateTime))),\n          props.panel\n        )\n      }\n    }\n    else {\n      dateInputValueRef.value = value\n    }\n  }\n  function handleDateInputBlur(): void {\n    const date = strictParse(\n      dateInputValueRef.value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    if (isValid(date)) {\n      if (props.value === null) {\n        panelCommon.doUpdateValue(getTime(sanitizeValue(Date.now())), false)\n      }\n      else if (!Array.isArray(props.value)) {\n        const newDateTime = set(props.value, {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        panelCommon.doUpdateValue(\n          getTime(sanitizeValue(getTime(newDateTime))),\n          false\n        )\n      }\n    }\n    else {\n      deriveDateInputValue()\n    }\n  }\n  function clearSelectedDateTime(): void {\n    dateInputValueRef.value = ''\n    panelCommon.handleClearClick()\n  }\n  function handleNowClick(): void {\n    panelCommon.doUpdateValue(getTime(sanitizeValue(Date.now())), true)\n    const now = Date.now()\n    calendarValueRef.value = now\n    panelCommon.doClose(true)\n    if (\n      props.panel\n      && (type === 'month' || type === 'quarter' || type === 'year')\n    ) {\n      panelCommon.disableTransitionOneTick()\n      justifyColumnsScrollState(now)\n    }\n  }\n  const hoveredWeekRef = ref<number | null>(null)\n  function handleDateMouseEnter(\n    dateItem: DateItem | MonthItem | YearItem | QuarterItem\n  ): void {\n    if (dateItem.type === 'date' && type === 'week') {\n      hoveredWeekRef.value = sanitizeValue(getTime(dateItem.ts))\n    }\n  }\n  function isWeekHovered(\n    dateItem: DateItem | MonthItem | YearItem | QuarterItem\n  ): boolean {\n    if (dateItem.type === 'date' && type === 'week') {\n      return sanitizeValue(getTime(dateItem.ts)) === hoveredWeekRef.value\n    }\n    return false\n  }\n  function handleDateClick(\n    dateItem: DateItem | MonthItem | YearItem | QuarterItem\n  ): void {\n    if (\n      mergedIsDateDisabled(\n        dateItem.ts,\n        dateItem.type === 'date'\n          ? {\n              type: 'date',\n              year: dateItem.dateObject.year,\n              month: dateItem.dateObject.month,\n              date: dateItem.dateObject.date\n            }\n          : dateItem.type === 'month'\n            ? {\n                type: 'month',\n                year: dateItem.dateObject.year,\n                month: dateItem.dateObject.month\n              }\n            : dateItem.type === 'year'\n              ? { type: 'year', year: dateItem.dateObject.year }\n              : {\n                  type: 'quarter',\n                  year: dateItem.dateObject.year,\n                  quarter: dateItem.dateObject.quarter\n                }\n      )\n    ) {\n      return\n    }\n    let newValue: number\n    if (props.value !== null && !Array.isArray(props.value)) {\n      newValue = props.value\n    }\n    else {\n      newValue = Date.now()\n    }\n    if (\n      type === 'datetime'\n      && props.defaultTime !== null\n      && !Array.isArray(props.defaultTime)\n    ) {\n      let time: { hours: number, minutes: number, seconds: number } | undefined\n\n      if (typeof props.defaultTime === 'function') {\n        time = extractSingleDefaultTime(\n          dateItem.ts,\n          props.defaultTime as DatePickerGetDefaultTime\n        )\n      }\n      else {\n        time = getDefaultTime(props.defaultTime)\n      }\n\n      if (time) {\n        newValue = getTime(set(newValue, time)) // setDate getTime(addMilliseconds(startOfDay(newValue), time))\n      }\n    }\n    newValue = getTime(\n      dateItem.type === 'quarter' && dateItem.dateObject.quarter\n        ? setQuarter(\n            setYear(newValue, dateItem.dateObject.year),\n            dateItem.dateObject.quarter\n          )\n        : set(newValue, dateItem.dateObject)\n    )\n    panelCommon.doUpdateValue(\n      sanitizeValue(newValue),\n      props.panel || type === 'date' || type === 'week' || type === 'year'\n    )\n    switch (type) {\n      case 'date':\n      case 'week':\n        panelCommon.doClose()\n        break\n      case 'year':\n        if (props.panel) {\n          panelCommon.disableTransitionOneTick()\n        }\n        panelCommon.doClose()\n        break\n      case 'month':\n        panelCommon.disableTransitionOneTick()\n        justifyColumnsScrollState(newValue)\n        break\n      case 'quarter':\n        panelCommon.disableTransitionOneTick()\n        justifyColumnsScrollState(newValue)\n        break\n    }\n  }\n\n  function handleQuickMonthClick(\n    dateItem: MonthItem | YearItem | QuarterItem,\n    updatePanelValue: (value: number) => void\n  ): void {\n    let newValue: number\n    if (props.value !== null && !Array.isArray(props.value)) {\n      newValue = props.value\n    }\n    else {\n      newValue = Date.now()\n    }\n    newValue = getTime(\n      dateItem.type === 'month'\n        ? setMonth(newValue, dateItem.dateObject.month)\n        : setYear(newValue, dateItem.dateObject.year)\n    )\n    updatePanelValue(newValue)\n    justifyColumnsScrollState(newValue)\n  }\n  function onUpdateCalendarValue(value: number): void {\n    calendarValueRef.value = value\n  }\n  function deriveDateInputValue(time?: number): void {\n    // If not selected, display nothing,\n    // else update datetime related string\n    if (props.value === null || Array.isArray(props.value)) {\n      dateInputValueRef.value = ''\n      return\n    }\n    if (time === undefined) {\n      time = props.value\n    }\n    dateInputValueRef.value = format(\n      time,\n      mergedDateFormatRef.value,\n      panelCommon.dateFnsOptions.value\n    )\n  }\n  function handleConfirmClick(): void {\n    if (validation.isDateInvalid.value || validation.isTimeInvalid.value) {\n      return\n    }\n    panelCommon.doConfirm()\n    closeCalendar()\n  }\n  function closeCalendar(): void {\n    if (props.active) {\n      panelCommon.doClose()\n    }\n  }\n  function nextYear(): void {\n    calendarValueRef.value = getTime(addYears(calendarValueRef.value, 1))\n    props.onNextYear?.()\n  }\n  function prevYear(): void {\n    calendarValueRef.value = getTime(addYears(calendarValueRef.value, -1))\n    props.onPrevYear?.()\n  }\n  function nextMonth(): void {\n    calendarValueRef.value = getTime(addMonths(calendarValueRef.value, 1))\n    props.onNextMonth?.()\n  }\n  function prevMonth(): void {\n    calendarValueRef.value = getTime(addMonths(calendarValueRef.value, -1))\n    props.onPrevMonth?.()\n  }\n  // For month type\n  function virtualListContainer(): HTMLElement | null {\n    const { value } = yearVlRef\n    return value?.listElRef || null\n  }\n  // For month type\n  function virtualListContent(): HTMLElement | null {\n    const { value } = yearVlRef\n    return value?.itemsElRef || null\n  }\n  // For month type\n  function handleVirtualListScroll(): void {\n    yearScrollbarRef.value?.sync()\n  }\n  function handleTimePickerChange(value: number | null): void {\n    if (value === null)\n      return\n    panelCommon.doUpdateValue(value, props.panel)\n  }\n  function handleSingleShortcutMouseenter(shortcut: Shortcuts[string]): void {\n    panelCommon.cachePendingValue()\n    const shortcutValue = panelCommon.getShortcutValue(shortcut)\n    if (typeof shortcutValue !== 'number')\n      return\n    panelCommon.doUpdateValue(shortcutValue, false)\n  }\n  function handleSingleShortcutClick(shortcut: Shortcuts[string]): void {\n    const shortcutValue = panelCommon.getShortcutValue(shortcut)\n    if (typeof shortcutValue !== 'number')\n      return\n    panelCommon.doUpdateValue(shortcutValue, props.panel)\n    panelCommon.clearPendingValue()\n    handleConfirmClick()\n  }\n\n  function justifyColumnsScrollState(value?: number): void {\n    const { value: mergedValue } = props\n    if (monthScrollbarRef.value) {\n      const monthIndex\n        = value === undefined\n          ? mergedValue === null\n            ? getMonth(Date.now())\n            : getMonth(mergedValue as number)\n          : getMonth(value)\n      monthScrollbarRef.value.scrollTo({ top: monthIndex * MONTH_ITEM_HEIGHT })\n    }\n    if (yearVlRef.value) {\n      const yearIndex\n        = (value === undefined\n          ? mergedValue === null\n            ? getYear(Date.now())\n            : getYear(mergedValue as number)\n          : getYear(value)) - yearRangeRef.value[0]\n      yearVlRef.value.scrollTo({ top: yearIndex * MONTH_ITEM_HEIGHT })\n    }\n  }\n\n  return {\n    dateArray: dateArrayRef,\n    monthArray: monthArrayRef,\n    yearArray: yearArrayRef,\n    quarterArray: quarterArrayRef,\n    calendarYear: calendarYearRef,\n    calendarMonth: calendarMonthRef,\n    weekdays: weekdaysRef,\n    calendarMonthBeforeYear: calendarMonthBeforeYearRef,\n    mergedIsDateDisabled,\n    nextYear,\n    prevYear,\n    nextMonth,\n    prevMonth,\n    handleNowClick,\n    handleConfirmClick,\n    handleSingleShortcutMouseenter,\n    handleSingleShortcutClick,\n    ...validation,\n    ...panelCommon,\n    // reduce dts: string ref only, type unused in render\n    monthScrollbarRef: monthScrollbarRef as unknown,\n    yearScrollbarRef: yearScrollbarRef as unknown,\n    yearVlRef: yearVlRef as unknown,\n    // datetime only\n    handleDateClick,\n    handleDateInputBlur,\n    handleDateInput,\n    handleDateMouseEnter,\n    isWeekHovered,\n    handleTimePickerChange,\n    clearSelectedDateTime,\n    virtualListContainer,\n    virtualListContent,\n    handleVirtualListScroll,\n    timePickerSize: panelCommon.timePickerSize,\n    dateInputValue: dateInputValueRef,\n    datePickerSlots,\n    handleQuickMonthClick,\n    justifyColumnsScrollState,\n    calendarValue: calendarValueRef,\n    onUpdateCalendarValue\n  }\n}\n\nexport { useCalendar, useCalendarProps }\n","import type { PropType, VNode } from 'vue'\nimport type { OnPanelUpdateValueImpl } from '../interface'\nimport type {\n  DatePickerClearSlotProps,\n  DatePickerConfirmSlotProps,\n  DatePickerNowSlotProps\n} from '../public-types'\nimport type { MonthItem, QuarterItem, YearItem } from '../utils'\nimport { defineComponent, h, onMounted } from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NBaseFocusDetector, NScrollbar } from '../../../_internal'\nimport { useLocale } from '../../../_mixins'\nimport { resolveSlotWithTypedProps, resolveWrappedSlot } from '../../../_utils'\nimport { NButton, NxButton } from '../../../button'\nimport { MONTH_ITEM_HEIGHT } from '../config'\nimport { getMonthString, getQuarterString, getYearString } from '../utils'\nimport { useCalendar, useCalendarProps } from './use-calendar'\n\n/**\n * Month Panel\n * Update picker value on:\n * 1. item click\n * 2. clear click\n */\nexport default defineComponent({\n  name: 'MonthPanel',\n  props: {\n    ...useCalendarProps,\n    type: {\n      type: String as PropType<'month' | 'year' | 'quarter'>,\n      required: true\n    },\n    // panelHeader prop\n    useAsQuickJump: Boolean\n  },\n  setup(props) {\n    const useCalendarRef = useCalendar(props, props.type)\n    const { dateLocaleRef } = useLocale('DatePicker')\n    const getRenderContent = (\n      item: YearItem | MonthItem | QuarterItem\n    ): number | string => {\n      switch (item.type) {\n        case 'year':\n          return getYearString(\n            item.dateObject.year,\n            item.yearFormat,\n            dateLocaleRef.value.locale\n          )\n        case 'month':\n          return getMonthString(\n            item.dateObject.month,\n            item.monthFormat,\n            dateLocaleRef.value.locale\n          )\n        case 'quarter':\n          return getQuarterString(\n            item.dateObject.quarter,\n            item.quarterFormat,\n            dateLocaleRef.value.locale\n          )\n      }\n    }\n    const { useAsQuickJump } = props\n    const renderItem = (\n      item: YearItem | MonthItem | QuarterItem,\n      i: number,\n      mergedClsPrefix: string\n    ): VNode => {\n      const { mergedIsDateDisabled, handleDateClick, handleQuickMonthClick }\n        = useCalendarRef\n      return (\n        <div\n          data-n-date\n          key={i}\n          class={[\n            `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item`,\n            item.isCurrent\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--current`,\n            item.selected\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--selected`,\n            !useAsQuickJump\n            && mergedIsDateDisabled(\n              item.ts,\n              item.type === 'year'\n                ? {\n                    type: 'year',\n                    year: item.dateObject.year\n                  }\n                : item.type === 'month'\n                  ? {\n                      type: 'month',\n                      year: item.dateObject.year,\n                      month: item.dateObject.month\n                    }\n                  : item.type === 'quarter'\n                    ? {\n                        type: 'month',\n                        year: item.dateObject.year,\n                        month: item.dateObject.quarter\n                      }\n                    : (null as never)\n            )\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--disabled`\n          ]}\n          onClick={() => {\n            if (item.type === 'year') {\n              props.onSelectYear?.()\n            }\n            else if (item.type === 'month') {\n              props.onSelectMonth?.()\n            }\n\n            if (useAsQuickJump) {\n              handleQuickMonthClick(item, (value) => {\n                ;(props.onUpdateValue as OnPanelUpdateValueImpl)(value, false)\n              })\n            }\n            else {\n              handleDateClick(item)\n            }\n          }}\n        >\n          {getRenderContent(item)}\n        </div>\n      )\n    }\n    onMounted(() => {\n      useCalendarRef.justifyColumnsScrollState()\n    })\n    return { ...useCalendarRef, renderItem }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      actions,\n      renderItem,\n      type,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--month`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onFocus={this.handlePanelFocus}\n        onKeydown={this.handlePanelKeyDown}\n      >\n        <div class={`${mergedClsPrefix}-date-panel-month-calendar`}>\n          <NScrollbar\n            ref=\"yearScrollbarRef\"\n            class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n            theme={mergedTheme.peers.Scrollbar}\n            themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n            container={this.virtualListContainer}\n            content={this.virtualListContent}\n            horizontalRailStyle={{ zIndex: 1 }}\n            verticalRailStyle={{ zIndex: 1 }}\n          >\n            {{\n              default: () => (\n                <VirtualList\n                  ref=\"yearVlRef\"\n                  items={this.yearArray}\n                  itemSize={MONTH_ITEM_HEIGHT}\n                  showScrollbar={false}\n                  keyField=\"ts\"\n                  onScroll={this.handleVirtualListScroll}\n                  paddingBottom={4}\n                >\n                  {{\n                    default: ({\n                      item,\n                      index\n                    }: {\n                      item: YearItem\n                      index: number\n                    }) => {\n                      return renderItem(item, index, mergedClsPrefix)\n                    }\n                  }}\n                </VirtualList>\n              )\n            }}\n          </NScrollbar>\n          {type === 'month' || type === 'quarter' ? (\n            <div\n              class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n            >\n              <NScrollbar\n                ref=\"monthScrollbarRef\"\n                theme={mergedTheme.peers.Scrollbar}\n                themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              >\n                {{\n                  default: () => [\n                    (type === 'month'\n                      ? this.monthArray\n                      : this.quarterArray\n                    ).map((item, i) => renderItem(item, i, mergedClsPrefix)),\n                    <div\n                      class={`${mergedClsPrefix}-date-panel-${type}-calendar__padding`}\n                    />\n                  ]\n                }}\n              </NScrollbar>\n            </div>\n          ) : null}\n        </div>\n        {resolveWrappedSlot(this.datePickerSlots.footer, (children) => {\n          return children ? (\n            <div class={`${mergedClsPrefix}-date-panel-footer`}>{children}</div>\n          ) : null\n        })}\n        {actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut) ? null : (\n                    <NxButton\n                      size=\"tiny\"\n                      onMouseenter={() => {\n                        this.handleSingleShortcutMouseenter(shortcut)\n                      }}\n                      onClick={() => {\n                        this.handleSingleShortcutClick(shortcut)\n                      }}\n                      onMouseleave={() => {\n                        this.handleShortcutMouseleave()\n                      }}\n                    >\n                      {{ default: () => key }}\n                    </NxButton>\n                  )\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.clear,\n                    {\n                      onClear: this.handleClearClick,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleClearClick}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {actions?.includes('now')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.now,\n                    {\n                      onNow: this.handleNowClick,\n                      text: this.locale.now\n                    } satisfies DatePickerNowSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleNowClick}\n                      >\n                        {{ default: () => this.locale.now }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {actions?.includes('confirm')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.confirm,\n                    {\n                      onConfirm: this.handleConfirmClick,\n                      disabled: this.isDateInvalid,\n                      text: this.locale.confirm\n                    } satisfies DatePickerConfirmSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        type=\"primary\"\n                        disabled={this.isDateInvalid}\n                        onClick={this.handleConfirmClick}\n                      >\n                        {{ default: () => this.locale.confirm }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { getPreciseEventTarget } from 'seemly'\nimport { clickoutside } from 'vdirs'\nimport { defineComponent, h, ref, Transition, withDirectives } from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport MonthPanel from './month'\n\nexport default defineComponent({\n  props: {\n    mergedClsPrefix: {\n      type: String,\n      required: true\n    },\n    value: Number,\n    monthBeforeYear: {\n      type: Boolean,\n      required: true\n    },\n    monthYearSeparator: {\n      type: String,\n      required: true\n    },\n    fastYearSelect: Boolean,\n    fastMonthSelect: Boolean,\n    calendarMonth: {\n      type: String,\n      required: true\n    },\n    calendarYear: {\n      type: String,\n      required: true\n    },\n    onUpdateValue: {\n      type: Function as PropType<(value: number) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const triggerRef = ref<HTMLElement | null>(null)\n    const monthPanelRef = ref<InstanceType<typeof MonthPanel> | null>(null)\n    const showRef = ref(false)\n    function toggleShow(): void {\n      showRef.value = !showRef.value\n    }\n    function handleSelectYear(): void {\n      if (props.fastYearSelect) {\n        toggleShow()\n      }\n    }\n    function handleSelectMonth(): void {\n      if (props.fastMonthSelect) {\n        toggleShow()\n      }\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      if (\n        showRef.value\n        && !triggerRef.value?.contains(getPreciseEventTarget(e) as Node | null)\n      ) {\n        showRef.value = false\n      }\n    }\n    function handleHeaderClick(): void {\n      toggleShow()\n    }\n    return {\n      show: showRef,\n      triggerRef,\n      // reduce dts: avoid expanding component instance types\n      monthPanelRef: monthPanelRef as unknown,\n      handleSelectYear,\n      handleSelectMonth,\n      handleHeaderClick,\n      handleClickOutside\n    }\n  },\n  render() {\n    const { handleClickOutside, mergedClsPrefix } = this\n    return (\n      <div\n        class={`${mergedClsPrefix}-date-panel-month__month-year`}\n        ref=\"triggerRef\"\n      >\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => (\n                    <div\n                      class={[\n                        `${mergedClsPrefix}-date-panel-month__text`,\n                        this.show\n                        && `${mergedClsPrefix}-date-panel-month__text--active`\n                      ]}\n                      onClick={this.handleHeaderClick}\n                    >\n                      {this.monthBeforeYear\n                        ? [\n                            this.calendarMonth,\n                            this.monthYearSeparator,\n                            this.calendarYear\n                          ]\n                        : [\n                            this.calendarYear,\n                            this.monthYearSeparator,\n                            this.calendarMonth\n                          ]}\n                    </div>\n                  )\n                }}\n              </VTarget>,\n              <VFollower show={this.show} teleportDisabled>\n                {{\n                  default: () => (\n                    <Transition name=\"fade-in-scale-up-transition\" appear>\n                      {{\n                        default: () =>\n                          this.show\n                            ? withDirectives(\n                                <MonthPanel\n                                  ref=\"monthPanelRef\"\n                                  onUpdateValue={this.onUpdateValue}\n                                  onSelectYear={this.handleSelectYear}\n                                  onSelectMonth={this.handleSelectMonth}\n                                  actions={[]}\n                                  calendarHeaderMonthYearSeparator={\n                                    this.monthYearSeparator\n                                  }\n                                  // month and year click show month type\n                                  type=\"month\"\n                                  key=\"month\"\n                                  useAsQuickJump\n                                  value={this.value}\n                                />,\n                                [\n                                  [\n                                    clickoutside,\n                                    handleClickOutside,\n                                    undefined,\n                                    { capture: true }\n                                  ]\n                                ]\n                              )\n                            : null\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type {\n  DatePickerClearSlotProps,\n  DatePickerNowSlotProps\n} from '../public-types'\nimport { defineComponent, h, watchEffect } from 'vue'\nimport { NBaseFocusDetector } from '../../../_internal'\nimport {\n  BackwardIcon,\n  FastBackwardIcon,\n  FastForwardIcon,\n  ForwardIcon\n} from '../../../_internal/icons'\nimport {\n  resolveSlot,\n  resolveSlotWithTypedProps,\n  warnOnce\n} from '../../../_utils'\nimport { NButton, NxButton } from '../../../button'\nimport PanelHeader from './panelHeader'\nimport { useCalendar, useCalendarProps } from './use-calendar'\n\n/**\n * Date Panel\n * Update picker value on:\n * 1. item click\n * 2. clear click\n */\nexport default defineComponent({\n  name: 'DatePanel',\n  props: {\n    ...useCalendarProps,\n    type: {\n      type: String as PropType<'date' | 'week'>,\n      required: true\n    }\n  },\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.actions?.includes('confirm')) {\n          warnOnce(\n            'date-picker',\n            'The `confirm` action is not supported for n-date-picker of `date` type'\n          )\n        }\n      })\n    }\n    return useCalendar(props, props.type)\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      onRender,\n      datePickerSlots,\n      type\n    } = this\n    onRender?.()\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--${type}`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onFocus={this.handlePanelFocus}\n        onKeydown={this.handlePanelKeyDown}\n      >\n        <div class={`${mergedClsPrefix}-date-panel-calendar`}>\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.prevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.prevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.calendarValue}\n              onUpdateValue={this.onUpdateCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              calendarMonth={this.calendarMonth}\n              calendarYear={this.calendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.nextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.nextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.dateArray.map((dateItem, i) => (\n              <div\n                data-n-date\n                key={i}\n                class={[\n                  `${mergedClsPrefix}-date-panel-date`,\n                  {\n                    [`${mergedClsPrefix}-date-panel-date--current`]:\n                      dateItem.isCurrentDate,\n                    [`${mergedClsPrefix}-date-panel-date--selected`]:\n                      dateItem.selected,\n                    [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                      !dateItem.inCurrentMonth,\n                    [`${mergedClsPrefix}-date-panel-date--disabled`]:\n                      this.mergedIsDateDisabled(dateItem.ts, {\n                        type: 'date',\n                        year: dateItem.dateObject.year,\n                        month: dateItem.dateObject.month,\n                        date: dateItem.dateObject.date\n                      }),\n                    [`${mergedClsPrefix}-date-panel-date--week-hovered`]:\n                      this.isWeekHovered(dateItem),\n                    [`${mergedClsPrefix}-date-panel-date--week-selected`]:\n                      dateItem.inSelectedWeek\n                  }\n                ]}\n                onClick={() => {\n                  this.handleDateClick(dateItem)\n                }}\n                onMouseenter={() => {\n                  this.handleDateMouseEnter(dateItem)\n                }}\n              >\n                <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                {dateItem.dateObject.date}\n                {dateItem.isCurrentDate ? (\n                  <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                ) : null}\n              </div>\n            ))}\n          </div>\n        </div>\n        {this.datePickerSlots.footer ? (\n          <div class={`${mergedClsPrefix}-date-panel-footer`}>\n            {this.datePickerSlots.footer()}\n          </div>\n        ) : null}\n        {this.actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut) ? null : (\n                    <NxButton\n                      size=\"tiny\"\n                      onMouseenter={() => {\n                        this.handleSingleShortcutMouseenter(shortcut)\n                      }}\n                      onClick={() => {\n                        this.handleSingleShortcutClick(shortcut)\n                      }}\n                      onMouseleave={() => {\n                        this.handleShortcutMouseleave()\n                      }}\n                    >\n                      {{ default: () => key }}\n                    </NxButton>\n                  )\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {this.actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    this.$slots.clear,\n                    {\n                      onClear: this.handleClearClick,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleClearClick}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('now')\n                ? resolveSlotWithTypedProps(\n                    this.$slots.now,\n                    {\n                      onNow: this.handleNowClick,\n                      text: this.locale.now\n                    } satisfies DatePickerNowSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleNowClick}\n                      >\n                        {{ default: () => this.locale.now }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {/** we don't need a confirm button for date picking */}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../../_internal'\nimport type { IsRangeDateDisabled, Shortcuts } from '../interface'\nimport type { DateItem, MonthItem, QuarterItem, YearItem } from '../utils'\nimport {\n  addMonths,\n  format,\n  getDate,\n  getMonth,\n  getTime,\n  getYear,\n  isValid,\n  set,\n  startOfDay,\n  startOfMonth,\n  startOfQuarter,\n  startOfSecond\n} from 'date-fns'\nimport { computed, inject, ref, watch } from 'vue'\nimport { MONTH_ITEM_HEIGHT } from '../config'\nimport { datePickerInjectionKey } from '../interface'\nimport {\n  dateArray,\n  extractRangeDefaultTime,\n  getDefaultTime,\n  monthArray,\n  pluckValueFromRange,\n  quarterArray,\n  strictParse,\n  yearArray\n} from '../utils'\nimport { usePanelCommon, usePanelCommonProps } from './use-panel-common'\n\nconst useDualCalendarProps = {\n  ...usePanelCommonProps,\n  defaultCalendarStartTime: Number,\n  defaultCalendarEndTime: Number,\n  bindCalendarMonths: Boolean,\n  actions: {\n    type: Array as PropType<string[]>,\n    default: () => ['clear', 'confirm']\n  }\n} as const\n\nfunction useDualCalendar(\n  props: ExtractPropTypes<typeof useDualCalendarProps>,\n  type:\n    'daterange' | 'datetimerange' | 'monthrange' | 'quarterrange' | 'yearrange'\n) {\n  const {\n    isDateDisabledRef,\n    isStartHourDisabledRef,\n    isEndHourDisabledRef,\n    isStartMinuteDisabledRef,\n    isEndMinuteDisabledRef,\n    isStartSecondDisabledRef,\n    isEndSecondDisabledRef,\n    isStartDateInvalidRef,\n    isEndDateInvalidRef,\n    isStartTimeInvalidRef,\n    isEndTimeInvalidRef,\n    isStartValueInvalidRef,\n    isEndValueInvalidRef,\n    isRangeInvalidRef,\n    localeRef,\n    rangesRef,\n    closeOnSelectRef,\n    updateValueOnCloseRef,\n    firstDayOfWeekRef,\n    datePickerSlots,\n    monthFormatRef,\n    yearFormatRef,\n    quarterFormatRef,\n    yearRangeRef\n  } = inject(datePickerInjectionKey)!\n  const validation = {\n    isDateDisabled: isDateDisabledRef,\n    isStartHourDisabled: isStartHourDisabledRef,\n    isEndHourDisabled: isEndHourDisabledRef,\n    isStartMinuteDisabled: isStartMinuteDisabledRef,\n    isEndMinuteDisabled: isEndMinuteDisabledRef,\n    isStartSecondDisabled: isStartSecondDisabledRef,\n    isEndSecondDisabled: isEndSecondDisabledRef,\n    isStartDateInvalid: isStartDateInvalidRef,\n    isEndDateInvalid: isEndDateInvalidRef,\n    isStartTimeInvalid: isStartTimeInvalidRef,\n    isEndTimeInvalid: isEndTimeInvalidRef,\n    isStartValueInvalid: isStartValueInvalidRef,\n    isEndValueInvalid: isEndValueInvalidRef,\n    isRangeInvalid: isRangeInvalidRef\n  }\n  const panelCommon = usePanelCommon(props)\n  const startDatesElRef = ref<HTMLElement | null>(null)\n  const endDatesElRef = ref<HTMLElement | null>(null)\n  const startYearScrollbarRef = ref<ScrollbarInst | null>(null)\n  const endYearScrollbarRef = ref<ScrollbarInst | null>(null)\n  const startYearVlRef = ref<VirtualListInst | null>(null)\n  const endYearVlRef = ref<VirtualListInst | null>(null)\n  const startMonthScrollbarRef = ref<ScrollbarInst | null>(null)\n  const endMonthScrollbarRef = ref<ScrollbarInst | null>(null)\n  const { value } = props\n  const defaultCalendarStartTime\n    = props.defaultCalendarStartTime\n      ?? (Array.isArray(value) && typeof value[0] === 'number'\n        ? value[0]\n        : Date.now())\n  const startCalendarDateTimeRef = ref(defaultCalendarStartTime)\n  const endCalendarDateTimeRef = ref(\n    props.defaultCalendarEndTime\n    ?? (Array.isArray(value) && typeof value[1] === 'number'\n      ? value[1]\n      : getTime(addMonths(defaultCalendarStartTime, 1)))\n  )\n  adjustCalendarTimes(true)\n  const nowRef = ref(Date.now())\n  const isSelectingRef = ref(false)\n  const memorizedStartDateTimeRef = ref<number>(0)\n\n  const mergedDateFormatRef = computed(\n    () => props.dateFormat || localeRef.value.dateFormat\n  )\n\n  const mergedDayFormatRef = computed(\n    () => props.calendarDayFormat || localeRef.value.dayFormat\n  )\n\n  const startDateInput = ref(\n    Array.isArray(value)\n      ? format(\n          value[0],\n          mergedDateFormatRef.value,\n          panelCommon.dateFnsOptions.value\n        )\n      : ''\n  )\n  const endDateInputRef = ref(\n    Array.isArray(value)\n      ? format(\n          value[1],\n          mergedDateFormatRef.value,\n          panelCommon.dateFnsOptions.value\n        )\n      : ''\n  )\n\n  // derived computed\n  const selectingPhaseRef = computed(() => {\n    if (isSelectingRef.value)\n      return 'end'\n    else return 'start'\n  })\n  const startDateArrayRef = computed(() => {\n    return dateArray(\n      startCalendarDateTimeRef.value,\n      props.value,\n      nowRef.value,\n      firstDayOfWeekRef.value ?? localeRef.value.firstDayOfWeek\n    )\n  })\n  const endDateArrayRef = computed(() => {\n    return dateArray(\n      endCalendarDateTimeRef.value,\n      props.value,\n      nowRef.value,\n      firstDayOfWeekRef.value ?? localeRef.value.firstDayOfWeek\n    )\n  })\n  const weekdaysRef = computed(() => {\n    return startDateArrayRef.value.slice(0, 7).map((dateItem) => {\n      const { ts } = dateItem\n      return format(\n        ts,\n        mergedDayFormatRef.value,\n        panelCommon.dateFnsOptions.value\n      )\n    })\n  })\n  const startCalendarMonthRef = computed(() => {\n    return format(\n      startCalendarDateTimeRef.value,\n      props.calendarHeaderMonthFormat || localeRef.value.monthFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const endCalendarMonthRef = computed(() => {\n    return format(\n      endCalendarDateTimeRef.value,\n      props.calendarHeaderMonthFormat || localeRef.value.monthFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const startCalendarYearRef = computed(() => {\n    return format(\n      startCalendarDateTimeRef.value,\n      props.calendarHeaderYearFormat || localeRef.value.yearFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const endCalendarYearRef = computed(() => {\n    return format(\n      endCalendarDateTimeRef.value,\n      props.calendarHeaderYearFormat || localeRef.value.yearFormat,\n      panelCommon.dateFnsOptions.value\n    )\n  })\n  const startTimeValueRef = computed(() => {\n    const { value } = props\n    if (Array.isArray(value))\n      return value[0]\n    return null\n  })\n  const endTimeValueRef = computed(() => {\n    const { value } = props\n    if (Array.isArray(value))\n      return value[1]\n    return null\n  })\n  const shortcutsRef = computed(() => {\n    const { shortcuts } = props\n    return shortcuts || rangesRef.value\n  })\n  const startYearArrayRef = computed(() => {\n    return yearArray(\n      pluckValueFromRange(props.value, 'start'),\n      nowRef.value,\n      {\n        yearFormat: yearFormatRef.value\n      },\n      yearRangeRef\n    )\n  })\n  const endYearArrayRef = computed(() => {\n    return yearArray(\n      pluckValueFromRange(props.value, 'end'),\n      nowRef.value,\n      {\n        yearFormat: yearFormatRef.value\n      },\n      yearRangeRef\n    )\n  })\n  const startQuarterArrayRef = computed(() => {\n    const startValue = pluckValueFromRange(props.value, 'start')\n    return quarterArray(startValue ?? Date.now(), startValue, nowRef.value, {\n      quarterFormat: quarterFormatRef.value\n    })\n  })\n  const endQuarterArrayRef = computed(() => {\n    const endValue = pluckValueFromRange(props.value, 'end')\n    return quarterArray(endValue ?? Date.now(), endValue, nowRef.value, {\n      quarterFormat: quarterFormatRef.value\n    })\n  })\n  const startMonthArrayRef = computed(() => {\n    const startValue = pluckValueFromRange(props.value, 'start')\n    return monthArray(startValue ?? Date.now(), startValue, nowRef.value, {\n      monthFormat: monthFormatRef.value\n    })\n  })\n  const endMonthArrayRef = computed(() => {\n    const endValue = pluckValueFromRange(props.value, 'end')\n    return monthArray(endValue ?? Date.now(), endValue, nowRef.value, {\n      monthFormat: monthFormatRef.value\n    })\n  })\n  const calendarMonthBeforeYearRef = computed(() => {\n    return (\n      props.calendarHeaderMonthBeforeYear ?? localeRef.value.monthBeforeYear\n    )\n  })\n  watch(\n    computed(() => props.value),\n    (value) => {\n      if (value !== null && Array.isArray(value)) {\n        const [startMoment, endMoment] = value\n        startDateInput.value = format(\n          startMoment,\n          mergedDateFormatRef.value,\n          panelCommon.dateFnsOptions.value\n        )\n        endDateInputRef.value = format(\n          endMoment,\n          mergedDateFormatRef.value,\n          panelCommon.dateFnsOptions.value\n        )\n        if (!isSelectingRef.value) {\n          syncCalendarTimeWithValue(value)\n        }\n      }\n      else {\n        startDateInput.value = ''\n        endDateInputRef.value = ''\n      }\n    }\n  )\n  function handleCalendarChange(value: number, oldValue: number): void {\n    if (type === 'daterange' || type === 'datetimerange') {\n      if (\n        getYear(value) !== getYear(oldValue)\n        || getMonth(value) !== getMonth(oldValue)\n      ) {\n        panelCommon.disableTransitionOneTick()\n      }\n    }\n  }\n  watch(startCalendarDateTimeRef, handleCalendarChange)\n  watch(endCalendarDateTimeRef, handleCalendarChange)\n  // change calendar\n  function adjustCalendarTimes(byStartCalendarTime: boolean): void {\n    const startTime = startOfMonth(startCalendarDateTimeRef.value)\n    const endTime = startOfMonth(endCalendarDateTimeRef.value)\n    if (props.bindCalendarMonths || startTime >= endTime) {\n      if (byStartCalendarTime) {\n        endCalendarDateTimeRef.value = getTime(addMonths(startTime, 1))\n      }\n      else {\n        startCalendarDateTimeRef.value = getTime(addMonths(endTime, -1))\n      }\n    }\n  }\n  function startCalendarNextYear(): void {\n    startCalendarDateTimeRef.value = getTime(\n      addMonths(startCalendarDateTimeRef.value, 12)\n    )\n    adjustCalendarTimes(true)\n  }\n  function startCalendarPrevYear(): void {\n    startCalendarDateTimeRef.value = getTime(\n      addMonths(startCalendarDateTimeRef.value, -12)\n    )\n    adjustCalendarTimes(true)\n  }\n  function startCalendarNextMonth(): void {\n    startCalendarDateTimeRef.value = getTime(\n      addMonths(startCalendarDateTimeRef.value, 1)\n    )\n    adjustCalendarTimes(true)\n  }\n  function startCalendarPrevMonth(): void {\n    startCalendarDateTimeRef.value = getTime(\n      addMonths(startCalendarDateTimeRef.value, -1)\n    )\n    adjustCalendarTimes(true)\n  }\n  function endCalendarNextYear(): void {\n    endCalendarDateTimeRef.value = getTime(\n      addMonths(endCalendarDateTimeRef.value, 12)\n    )\n    adjustCalendarTimes(false)\n  }\n  function endCalendarPrevYear(): void {\n    endCalendarDateTimeRef.value = getTime(\n      addMonths(endCalendarDateTimeRef.value, -12)\n    )\n    adjustCalendarTimes(false)\n  }\n  function endCalendarNextMonth(): void {\n    endCalendarDateTimeRef.value = getTime(\n      addMonths(endCalendarDateTimeRef.value, 1)\n    )\n    adjustCalendarTimes(false)\n  }\n  function endCalendarPrevMonth(): void {\n    endCalendarDateTimeRef.value = getTime(\n      addMonths(endCalendarDateTimeRef.value, -1)\n    )\n    adjustCalendarTimes(false)\n  }\n  function onUpdateStartCalendarValue(value: number): void {\n    startCalendarDateTimeRef.value = value\n    adjustCalendarTimes(true)\n  }\n\n  function onUpdateEndCalendarValue(value: number): void {\n    endCalendarDateTimeRef.value = value\n    adjustCalendarTimes(false)\n  }\n\n  // The function is used on date panel, not the date-picker value validation\n  function mergedIsDateDisabled(ts: number): boolean {\n    const isDateDisabled = isDateDisabledRef.value\n    if (!isDateDisabled)\n      return false\n    if (!Array.isArray(props.value)) {\n      return (isDateDisabled as IsRangeDateDisabled)(ts, 'start', null)\n    }\n    if (selectingPhaseRef.value === 'start') {\n      // before you really start to select\n      return (isDateDisabled as IsRangeDateDisabled)(ts, 'start', null)\n    }\n    else {\n      const { value: memorizedStartDateTime } = memorizedStartDateTimeRef\n      // after you starting to select\n      if (ts < memorizedStartDateTimeRef.value) {\n        return (isDateDisabled as IsRangeDateDisabled)(ts, 'start', [\n          memorizedStartDateTime,\n          memorizedStartDateTime\n        ])\n      }\n      else {\n        return (isDateDisabled as IsRangeDateDisabled)(ts, 'end', [\n          memorizedStartDateTime,\n          memorizedStartDateTime\n        ])\n      }\n    }\n  }\n  function syncCalendarTimeWithValue(value: [number, number] | null): void {\n    if (value === null)\n      return\n    const [startMoment, endMoment] = value\n    startCalendarDateTimeRef.value = startMoment\n    if (startOfMonth(endMoment) <= startOfMonth(startMoment)) {\n      endCalendarDateTimeRef.value = getTime(\n        startOfMonth(addMonths(startMoment, 1))\n      )\n    }\n    else {\n      endCalendarDateTimeRef.value = getTime(startOfMonth(endMoment))\n    }\n  }\n  // for daterange & datetimerange\n  function handleDateClick(dateItem: DateItem): void {\n    if (!isSelectingRef.value) {\n      isSelectingRef.value = true\n      memorizedStartDateTimeRef.value = dateItem.ts\n      changeStartEndTime(dateItem.ts, dateItem.ts, 'done')\n    }\n    else {\n      isSelectingRef.value = false\n      const { value } = props\n      if (props.panel && Array.isArray(value)) {\n        changeStartEndTime(value[0], value[1], 'done')\n      }\n      else {\n        if (closeOnSelectRef.value && type === 'daterange') {\n          if (updateValueOnCloseRef.value) {\n            closeCalendar()\n          }\n          else {\n            handleConfirmClick()\n          }\n        }\n      }\n    }\n  }\n  function handleDateMouseEnter(dateItem: DateItem): void {\n    if (isSelectingRef.value) {\n      if (mergedIsDateDisabled(dateItem.ts))\n        return\n      if (dateItem.ts >= memorizedStartDateTimeRef.value) {\n        changeStartEndTime(\n          memorizedStartDateTimeRef.value,\n          dateItem.ts,\n          'wipPreview'\n        )\n      }\n      else {\n        changeStartEndTime(\n          dateItem.ts,\n          memorizedStartDateTimeRef.value,\n          'wipPreview'\n        )\n      }\n    }\n  }\n  function handleConfirmClick(): void {\n    if (isRangeInvalidRef.value) {\n      return\n    }\n    panelCommon.doConfirm()\n    closeCalendar()\n  }\n  function closeCalendar(): void {\n    isSelectingRef.value = false\n    if (props.active) {\n      panelCommon.doClose()\n    }\n  }\n  function changeStartDateTime(time: number): void {\n    if (typeof time !== 'number') {\n      time = getTime(time)\n    }\n    if (props.value === null) {\n      panelCommon.doUpdateValue([time, time], props.panel)\n    }\n    else if (Array.isArray(props.value)) {\n      panelCommon.doUpdateValue(\n        [time, Math.max(props.value[1], time)],\n        props.panel\n      )\n    }\n  }\n  function changeEndDateTime(time: number): void {\n    if (typeof time !== 'number') {\n      time = getTime(time)\n    }\n    if (props.value === null) {\n      panelCommon.doUpdateValue([time, time], props.panel)\n    }\n    else if (Array.isArray(props.value)) {\n      panelCommon.doUpdateValue(\n        [Math.min(props.value[0], time), time],\n        props.panel\n      )\n    }\n  }\n  function changeStartEndTime(\n    startTime: number,\n    endTime: number,\n    source: 'shortcutPreview' | 'wipPreview' | 'done' | 'shortcutDone'\n  ): void {\n    if (typeof startTime !== 'number') {\n      startTime = getTime(startTime)\n    }\n\n    if (source !== 'shortcutPreview' && source !== 'shortcutDone') {\n      let startDefaultTime:\n        { hours: number, minutes: number, seconds: number } | undefined\n      let endDefaultTime:\n        { hours: number, minutes: number, seconds: number } | undefined\n      if (type === 'datetimerange') {\n        const { defaultTime } = props\n        if (typeof defaultTime === 'function') {\n          startDefaultTime = extractRangeDefaultTime(\n            startTime,\n            defaultTime,\n            'start',\n            [startTime, endTime]\n          )\n          endDefaultTime = extractRangeDefaultTime(\n            endTime,\n            defaultTime,\n            'end',\n            [startTime, endTime]\n          )\n        }\n        else if (Array.isArray(defaultTime)) {\n          startDefaultTime = getDefaultTime(defaultTime[0])\n          endDefaultTime = getDefaultTime(defaultTime[1])\n        }\n        else {\n          startDefaultTime = getDefaultTime(defaultTime)\n          endDefaultTime = startDefaultTime\n        }\n      }\n      if (startDefaultTime) {\n        startTime = getTime(set(startTime, startDefaultTime))\n      }\n      if (endDefaultTime) {\n        endTime = getTime(set(endTime, endDefaultTime))\n      }\n    }\n\n    panelCommon.doUpdateValue(\n      [startTime, endTime],\n      props.panel && (source === 'done' || source === 'shortcutDone')\n    )\n  }\n  function sanitizeValue(datetime: number): number {\n    if (type === 'datetimerange') {\n      return getTime(startOfSecond(datetime))\n    }\n    else if (type === 'monthrange') {\n      return getTime(startOfMonth(datetime))\n    }\n    else {\n      // daterange\n      return getTime(startOfDay(datetime))\n    }\n  }\n  function handleStartDateInput(value: string): void {\n    const date = strictParse(\n      value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    if (isValid(date)) {\n      if (!props.value) {\n        const newValue = set(new Date(), {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeStartDateTime(sanitizeValue(getTime(newValue)))\n      }\n      else if (Array.isArray(props.value)) {\n        const newValue = set(props.value[0], {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeStartDateTime(sanitizeValue(getTime(newValue)))\n      }\n    }\n    else {\n      startDateInput.value = value\n    }\n  }\n  function handleEndDateInput(value: string): void {\n    /** strict check when input */\n    const date = strictParse(\n      value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    if (isValid(date)) {\n      if (props.value === null) {\n        const newValue = set(new Date(), {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeEndDateTime(sanitizeValue(getTime(newValue)))\n      }\n      else if (Array.isArray(props.value)) {\n        const newValue = set(props.value[1], {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeEndDateTime(sanitizeValue(getTime(newValue)))\n      }\n    }\n    else {\n      endDateInputRef.value = value\n    }\n  }\n  function handleStartDateInputBlur(): void {\n    const date = strictParse(\n      startDateInput.value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    const { value } = props\n    if (isValid(date)) {\n      if (value === null) {\n        const newValue = set(new Date(), {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeStartDateTime(sanitizeValue(getTime(newValue)))\n      }\n      else if (Array.isArray(value)) {\n        const newValue = set(value[0], {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeStartDateTime(sanitizeValue(getTime(newValue)))\n      }\n    }\n    else {\n      refreshDisplayDateString()\n    }\n  }\n  function handleEndDateInputBlur(): void {\n    const date = strictParse(\n      endDateInputRef.value,\n      mergedDateFormatRef.value,\n      new Date(),\n      panelCommon.dateFnsOptions.value\n    )\n    const { value } = props\n    if (isValid(date)) {\n      if (value === null) {\n        const newValue = set(new Date(), {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeEndDateTime(sanitizeValue(getTime(newValue)))\n      }\n      else if (Array.isArray(value)) {\n        const newValue = set(value[1], {\n          year: getYear(date),\n          month: getMonth(date),\n          date: getDate(date)\n        })\n        changeEndDateTime(sanitizeValue(getTime(newValue)))\n      }\n    }\n    else {\n      refreshDisplayDateString()\n    }\n  }\n  function refreshDisplayDateString(times?: [number, number]): void {\n    // If not selected, display nothing,\n    // else update datetime related string\n    const { value } = props\n    if (value === null || !Array.isArray(value)) {\n      startDateInput.value = ''\n      endDateInputRef.value = ''\n      return\n    }\n    if (times === undefined) {\n      times = value\n    }\n    startDateInput.value = format(\n      times[0],\n      mergedDateFormatRef.value,\n      panelCommon.dateFnsOptions.value\n    )\n    endDateInputRef.value = format(\n      times[1],\n      mergedDateFormatRef.value,\n      panelCommon.dateFnsOptions.value\n    )\n  }\n  function handleStartTimePickerChange(value: number | null): void {\n    if (value === null)\n      return\n    changeStartDateTime(value)\n  }\n  function handleEndTimePickerChange(value: number | null): void {\n    if (value === null)\n      return\n    changeEndDateTime(value)\n  }\n  function handleRangeShortcutMouseenter(shortcut: Shortcuts[string]): void {\n    panelCommon.cachePendingValue()\n    const shortcutValue = panelCommon.getShortcutValue(shortcut)\n    if (!Array.isArray(shortcutValue))\n      return\n    changeStartEndTime(shortcutValue[0], shortcutValue[1], 'shortcutPreview')\n  }\n  function handleRangeShortcutClick(shortcut: Shortcuts[string]): void {\n    const shortcutValue = panelCommon.getShortcutValue(shortcut)\n    if (!Array.isArray(shortcutValue))\n      return\n    changeStartEndTime(shortcutValue[0], shortcutValue[1], 'shortcutDone')\n    panelCommon.clearPendingValue()\n    handleConfirmClick()\n  }\n  function justifyColumnsScrollState(\n    value: [number, number],\n    type: 'start' | 'end'\n  ): void\n  function justifyColumnsScrollState(): void\n  function justifyColumnsScrollState(\n    value?: [number, number] | undefined,\n    type?: 'start' | 'end' | undefined\n  ): void {\n    const mergedValue = value === undefined ? props.value : value\n    if (value === undefined || type === 'start') {\n      if (startMonthScrollbarRef.value) {\n        const monthIndex = !Array.isArray(mergedValue)\n          ? getMonth(Date.now())\n          : getMonth(mergedValue[0])\n        startMonthScrollbarRef.value.scrollTo({\n          debounce: false,\n          index: monthIndex,\n          elSize: MONTH_ITEM_HEIGHT\n        })\n      }\n      if (startYearVlRef.value) {\n        const yearIndex\n          = (!Array.isArray(mergedValue)\n            ? getYear(Date.now())\n            : getYear(mergedValue[0])) - yearRangeRef.value[0]\n        startYearVlRef.value.scrollTo({ index: yearIndex, debounce: false })\n      }\n    }\n    if (value === undefined || type === 'end') {\n      if (endMonthScrollbarRef.value) {\n        const monthIndex = !Array.isArray(mergedValue)\n          ? getMonth(Date.now())\n          : getMonth(mergedValue[1])\n        endMonthScrollbarRef.value.scrollTo({\n          debounce: false,\n          index: monthIndex,\n          elSize: MONTH_ITEM_HEIGHT\n        })\n      }\n      if (endYearVlRef.value) {\n        const yearIndex\n          = (!Array.isArray(mergedValue)\n            ? getYear(Date.now())\n            : getYear(mergedValue[1])) - yearRangeRef.value[0]\n        endYearVlRef.value.scrollTo({ index: yearIndex, debounce: false })\n      }\n    }\n  }\n  // only for monthrange\n  function handleColItemClick(\n    dateItem: MonthItem | QuarterItem | YearItem,\n    clickType: 'start' | 'end'\n  ): void {\n    const { value } = props\n    const noCurrentValue = !Array.isArray(value)\n    const itemTs\n      = dateItem.type === 'year' && type !== 'yearrange'\n        ? noCurrentValue\n          ? set(dateItem.ts, {\n              month: getMonth(\n                type === 'quarterrange'\n                  ? startOfQuarter(new Date())\n                  : new Date()\n              )\n            }).valueOf()\n          : set(dateItem.ts, {\n              month: getMonth(\n                type === 'quarterrange'\n                  ? startOfQuarter(value[clickType === 'start' ? 0 : 1])\n                  : value[clickType === 'start' ? 0 : 1]\n              )\n            }).valueOf()\n        : dateItem.ts\n    if (noCurrentValue) {\n      const partialValue = sanitizeValue(itemTs)\n      const nextValue: [number, number] = [partialValue, partialValue]\n      panelCommon.doUpdateValue(nextValue, props.panel)\n      justifyColumnsScrollState(nextValue, 'start')\n      justifyColumnsScrollState(nextValue, 'end')\n      panelCommon.disableTransitionOneTick()\n      return\n    }\n    const nextValue: [number, number] = [value[0], value[1]]\n    let otherPartsChanged = false\n    if (clickType === 'start') {\n      nextValue[0] = sanitizeValue(itemTs)\n      if (nextValue[0] > nextValue[1]) {\n        nextValue[1] = nextValue[0]\n        otherPartsChanged = true\n      }\n    }\n    else {\n      nextValue[1] = sanitizeValue(itemTs)\n      if (nextValue[0] > nextValue[1]) {\n        nextValue[0] = nextValue[1]\n        otherPartsChanged = true\n      }\n    }\n    panelCommon.doUpdateValue(nextValue, props.panel)\n    switch (type) {\n      case 'monthrange':\n      case 'quarterrange':\n        panelCommon.disableTransitionOneTick()\n        if (otherPartsChanged) {\n          justifyColumnsScrollState(nextValue, 'start')\n          justifyColumnsScrollState(nextValue, 'end')\n        }\n        else {\n          justifyColumnsScrollState(nextValue, clickType)\n        }\n        break\n      case 'yearrange':\n        panelCommon.disableTransitionOneTick()\n        justifyColumnsScrollState(nextValue, 'start')\n        justifyColumnsScrollState(nextValue, 'end')\n    }\n  }\n  function handleStartYearVlScroll(): void {\n    startYearScrollbarRef.value?.sync()\n  }\n  function handleEndYearVlScroll(): void {\n    endYearScrollbarRef.value?.sync()\n  }\n  function virtualListContainer(type: 'start' | 'end'): HTMLElement | null {\n    if (type === 'start') {\n      return startYearVlRef.value?.listElRef || null\n    }\n    else {\n      return endYearVlRef.value?.listElRef || null\n    }\n  }\n  function virtualListContent(type: 'start' | 'end'): HTMLElement | null {\n    if (type === 'start') {\n      return startYearVlRef.value?.itemsElRef || null\n    }\n    else {\n      return endYearVlRef.value?.itemsElRef || null\n    }\n  }\n  return {\n    startDatesElRef,\n    endDatesElRef,\n    handleDateClick,\n    handleColItemClick,\n    handleDateMouseEnter,\n    handleConfirmClick,\n    startCalendarPrevYear,\n    startCalendarPrevMonth,\n    startCalendarNextYear,\n    startCalendarNextMonth,\n    endCalendarPrevYear,\n    endCalendarPrevMonth,\n    endCalendarNextMonth,\n    endCalendarNextYear,\n    mergedIsDateDisabled,\n    changeStartEndTime,\n    ranges: rangesRef,\n    calendarMonthBeforeYear: calendarMonthBeforeYearRef,\n    startCalendarMonth: startCalendarMonthRef,\n    startCalendarYear: startCalendarYearRef,\n    endCalendarMonth: endCalendarMonthRef,\n    endCalendarYear: endCalendarYearRef,\n    weekdays: weekdaysRef,\n    startDateArray: startDateArrayRef,\n    endDateArray: endDateArrayRef,\n    startYearArray: startYearArrayRef,\n    startMonthArray: startMonthArrayRef,\n    startQuarterArray: startQuarterArrayRef,\n    endYearArray: endYearArrayRef,\n    endMonthArray: endMonthArrayRef,\n    endQuarterArray: endQuarterArrayRef,\n    isSelecting: isSelectingRef,\n    handleRangeShortcutMouseenter,\n    handleRangeShortcutClick,\n    ...panelCommon,\n    ...validation,\n    // reduce dts: string ref only, type unused in render\n    startYearVlRef: startYearVlRef as unknown,\n    endYearVlRef: endYearVlRef as unknown,\n    startMonthScrollbarRef: startMonthScrollbarRef as unknown,\n    endMonthScrollbarRef: endMonthScrollbarRef as unknown,\n    startYearScrollbarRef: startYearScrollbarRef as unknown,\n    endYearScrollbarRef: endYearScrollbarRef as unknown,\n    // datetimerangeonly\n    startDateDisplayString: startDateInput,\n    endDateInput: endDateInputRef,\n    timePickerSize: panelCommon.timePickerSize,\n    startTimeValue: startTimeValueRef,\n    endTimeValue: endTimeValueRef,\n    datePickerSlots,\n    shortcuts: shortcutsRef,\n    startCalendarDateTime: startCalendarDateTimeRef,\n    endCalendarDateTime: endCalendarDateTimeRef,\n    justifyColumnsScrollState,\n    handleFocusDetectorFocus: panelCommon.handleFocusDetectorFocus,\n    handleStartTimePickerChange,\n    handleEndTimePickerChange,\n    handleStartDateInput,\n    handleStartDateInputBlur,\n    handleEndDateInput,\n    handleEndDateInputBlur,\n    handleStartYearVlScroll,\n    handleEndYearVlScroll,\n    virtualListContainer,\n    virtualListContent,\n    onUpdateStartCalendarValue,\n    onUpdateEndCalendarValue\n  }\n}\n\nexport { useDualCalendar, useDualCalendarProps }\n","import type {\n  DatePickerClearSlotProps,\n  DatePickerConfirmSlotProps\n} from '../public-types'\nimport { defineComponent, h, watchEffect } from 'vue'\nimport { NBaseFocusDetector } from '../../../_internal'\nimport {\n  BackwardIcon,\n  FastBackwardIcon,\n  FastForwardIcon,\n  ForwardIcon\n} from '../../../_internal/icons'\nimport {\n  resolveSlot,\n  resolveSlotWithTypedProps,\n  warnOnce\n} from '../../../_utils'\nimport { NButton, NxButton } from '../../../button'\nimport PanelHeader from './panelHeader'\nimport { useDualCalendar, useDualCalendarProps } from './use-dual-calendar'\n\nexport default defineComponent({\n  name: 'DateRangePanel',\n  props: useDualCalendarProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.actions?.includes('now')) {\n          warnOnce(\n            'date-picker',\n            'The `now` action is not supported for n-date-picker of `daterange` type'\n          )\n        }\n      })\n    }\n    return useDualCalendar(props, 'daterange')\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      onRender,\n      datePickerSlots\n    } = this\n    onRender?.()\n\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--daterange`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onKeydown={this.handlePanelKeyDown}\n        onFocus={this.handlePanelFocus}\n      >\n        <div\n          ref=\"startDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--start`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.startCalendarPrevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.startCalendarPrevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.startCalendarDateTime}\n              onUpdateValue={this.onUpdateStartCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              calendarMonth={this.startCalendarMonth}\n              calendarYear={this.startCalendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.startCalendarNextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.startCalendarNextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel__divider`} />\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.startDateArray.map((dateItem, i) => (\n              <div\n                data-n-date\n                key={i}\n                class={[\n                  `${mergedClsPrefix}-date-panel-date`,\n                  {\n                    [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                      !dateItem.inCurrentMonth,\n                    [`${mergedClsPrefix}-date-panel-date--current`]:\n                      dateItem.isCurrentDate,\n                    [`${mergedClsPrefix}-date-panel-date--selected`]:\n                      dateItem.selected,\n                    [`${mergedClsPrefix}-date-panel-date--covered`]:\n                      dateItem.inSpan,\n                    [`${mergedClsPrefix}-date-panel-date--start`]:\n                      dateItem.startOfSpan,\n                    [`${mergedClsPrefix}-date-panel-date--end`]:\n                      dateItem.endOfSpan,\n                    [`${mergedClsPrefix}-date-panel-date--disabled`]:\n                      this.mergedIsDateDisabled(dateItem.ts)\n                  }\n                ]}\n                onClick={() => {\n                  this.handleDateClick(dateItem)\n                }}\n                onMouseenter={() => {\n                  this.handleDateMouseEnter(dateItem)\n                }}\n              >\n                <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                {dateItem.dateObject.date}\n                {dateItem.isCurrentDate ? (\n                  <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                ) : null}\n              </div>\n            ))}\n          </div>\n        </div>\n        <div class={`${mergedClsPrefix}-date-panel__vertical-divider`} />\n        <div\n          ref=\"endDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--end`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.endCalendarPrevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.endCalendarPrevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.endCalendarDateTime}\n              onUpdateValue={this.onUpdateEndCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              calendarMonth={this.endCalendarMonth}\n              calendarYear={this.endCalendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.endCalendarNextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.endCalendarNextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel__divider`} />\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.endDateArray.map((dateItem, i) => (\n              <div\n                data-n-date\n                key={i}\n                class={[\n                  `${mergedClsPrefix}-date-panel-date`,\n                  {\n                    [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                      !dateItem.inCurrentMonth,\n                    [`${mergedClsPrefix}-date-panel-date--current`]:\n                      dateItem.isCurrentDate,\n                    [`${mergedClsPrefix}-date-panel-date--selected`]:\n                      dateItem.selected,\n                    [`${mergedClsPrefix}-date-panel-date--covered`]:\n                      dateItem.inSpan,\n                    [`${mergedClsPrefix}-date-panel-date--start`]:\n                      dateItem.startOfSpan,\n                    [`${mergedClsPrefix}-date-panel-date--end`]:\n                      dateItem.endOfSpan,\n                    [`${mergedClsPrefix}-date-panel-date--disabled`]:\n                      this.mergedIsDateDisabled(dateItem.ts)\n                  }\n                ]}\n                onClick={() => {\n                  this.handleDateClick(dateItem)\n                }}\n                onMouseenter={() => {\n                  this.handleDateMouseEnter(dateItem)\n                }}\n              >\n                <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                {dateItem.dateObject.date}\n                {dateItem.isCurrentDate ? (\n                  <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                ) : null}\n              </div>\n            ))}\n          </div>\n        </div>\n        {this.datePickerSlots.footer ? (\n          <div class={`${mergedClsPrefix}-date-panel-footer`}>\n            {this.datePickerSlots.footer()}\n          </div>\n        ) : null}\n        {this.actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut)\n                    || typeof shortcut === 'function' ? (\n                        <NxButton\n                          size=\"tiny\"\n                          onMouseenter={() => {\n                            this.handleRangeShortcutMouseenter(shortcut)\n                          }}\n                          onClick={() => {\n                            this.handleRangeShortcutClick(shortcut)\n                          }}\n                          onMouseleave={() => {\n                            this.handleShortcutMouseleave()\n                          }}\n                        >\n                          {{ default: () => key }}\n                        </NxButton>\n                      ) : null\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {this.actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.clear,\n                    {\n                      onClear: this.handleClearClick,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleClearClick}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('confirm')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.confirm,\n                    {\n                      onConfirm: this.handleConfirmClick,\n                      disabled: this.isRangeInvalid || this.isSelecting,\n                      text: this.locale.confirm\n                    } satisfies DatePickerConfirmSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        type=\"primary\"\n                        disabled={this.isRangeInvalid || this.isSelecting}\n                        onClick={this.handleConfirmClick}\n                      >\n                        {{ default: () => this.locale.confirm }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import { getDefaultOptions } from 'date-fns';\n/**\n * Returns the formatted time zone name of the provided `timeZone` or the current\n * system time zone if omitted, accounting for DST according to the UTC value of\n * the date.\n */\nexport function tzIntlTimeZoneName(length, date, options) {\n    const defaultOptions = getDefaultOptions();\n    const dtf = getDTF(length, options.timeZone, options.locale ?? defaultOptions.locale);\n    return 'formatToParts' in dtf ? partsTimeZone(dtf, date) : hackyTimeZone(dtf, date);\n}\nfunction partsTimeZone(dtf, date) {\n    const formatted = dtf.formatToParts(date);\n    for (let i = formatted.length - 1; i >= 0; --i) {\n        if (formatted[i].type === 'timeZoneName') {\n            return formatted[i].value;\n        }\n    }\n    return undefined;\n}\nfunction hackyTimeZone(dtf, date) {\n    const formatted = dtf.format(date).replace(/\\u200E/g, '');\n    const tzNameMatch = / [\\w-+ ]+$/.exec(formatted);\n    return tzNameMatch ? tzNameMatch[0].substr(1) : '';\n}\n// If a locale has been provided `en-US` is used as a fallback in case it is an\n// invalid locale, otherwise the locale is left undefined to use the system locale.\nfunction getDTF(length, timeZone, locale) {\n    return new Intl.DateTimeFormat(locale ? [locale.code, 'en-US'] : undefined, {\n        timeZone: timeZone,\n        timeZoneName: length,\n    });\n}\n","/**\n * Returns the [year, month, day, hour, minute, seconds] tokens of the provided\n * `date` as it will be rendered in the `timeZone`.\n */\nexport function tzTokenizeDate(date, timeZone) {\n    const dtf = getDateTimeFormat(timeZone);\n    return 'formatToParts' in dtf ? partsOffset(dtf, date) : hackyOffset(dtf, date);\n}\nconst typeToPos = {\n    year: 0,\n    month: 1,\n    day: 2,\n    hour: 3,\n    minute: 4,\n    second: 5,\n};\nfunction partsOffset(dtf, date) {\n    try {\n        const formatted = dtf.formatToParts(date);\n        const filled = [];\n        for (let i = 0; i < formatted.length; i++) {\n            const pos = typeToPos[formatted[i].type];\n            if (pos !== undefined) {\n                filled[pos] = parseInt(formatted[i].value, 10);\n            }\n        }\n        return filled;\n    }\n    catch (error) {\n        if (error instanceof RangeError) {\n            return [NaN];\n        }\n        throw error;\n    }\n}\nfunction hackyOffset(dtf, date) {\n    const formatted = dtf.format(date);\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted);\n    // const [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed\n    // return [fYear, fMonth, fDay, fHour, fMinute, fSecond]\n    return [\n        parseInt(parsed[3], 10),\n        parseInt(parsed[1], 10),\n        parseInt(parsed[2], 10),\n        parseInt(parsed[4], 10),\n        parseInt(parsed[5], 10),\n        parseInt(parsed[6], 10),\n    ];\n}\n// Get a cached Intl.DateTimeFormat instance for the IANA `timeZone`. This can be used\n// to get deterministic local date/time output according to the `en-US` locale which\n// can be used to extract local time parts as necessary.\nconst dtfCache = {};\n// New browsers use `hourCycle`, IE and Chrome <73 does not support it and uses `hour12`\nconst testDateFormatted = new Intl.DateTimeFormat('en-US', {\n    hourCycle: 'h23',\n    timeZone: 'America/New_York',\n    year: 'numeric',\n    month: '2-digit',\n    day: '2-digit',\n    hour: '2-digit',\n    minute: '2-digit',\n    second: '2-digit',\n}).format(new Date('2014-06-25T04:00:00.123Z'));\nconst hourCycleSupported = testDateFormatted === '06/25/2014, 00:00:00' ||\n    testDateFormatted === '‎06‎/‎25‎/‎2014‎ ‎00‎:‎00‎:‎00';\nfunction getDateTimeFormat(timeZone) {\n    if (!dtfCache[timeZone]) {\n        dtfCache[timeZone] = hourCycleSupported\n            ? new Intl.DateTimeFormat('en-US', {\n                hourCycle: 'h23',\n                timeZone: timeZone,\n                year: 'numeric',\n                month: 'numeric',\n                day: '2-digit',\n                hour: '2-digit',\n                minute: '2-digit',\n                second: '2-digit',\n            })\n            : new Intl.DateTimeFormat('en-US', {\n                hour12: false,\n                timeZone: timeZone,\n                year: 'numeric',\n                month: 'numeric',\n                day: '2-digit',\n                hour: '2-digit',\n                minute: '2-digit',\n                second: '2-digit',\n            });\n    }\n    return dtfCache[timeZone];\n}\n","/**\n * Use instead of `new Date(Date.UTC(...))` to support years below 100 which doesn't work\n * otherwise due to the nature of the\n * [`Date` constructor](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#interpretation_of_two-digit_years.\n *\n * For `Date.UTC(...)`, use `newDateUTC(...).getTime()`.\n */\nexport function newDateUTC(fullYear, month, day, hour, minute, second, millisecond) {\n    const utcDate = new Date(0);\n    utcDate.setUTCFullYear(fullYear, month, day);\n    utcDate.setUTCHours(hour, minute, second, millisecond);\n    return utcDate;\n}\n","import { tzTokenizeDate } from '../tzTokenizeDate/index.js';\nimport { newDateUTC } from '../newDateUTC/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst patterns = {\n    timezone: /([Z+-].*)$/,\n    timezoneZ: /^(Z)$/,\n    timezoneHH: /^([+-]\\d{2})$/,\n    timezoneHHMM: /^([+-])(\\d{2}):?(\\d{2})$/,\n};\n// Parse constious time zone offset formats to an offset in milliseconds\nexport function tzParseTimezone(timezoneString, date, isUtcDate) {\n    // Empty string\n    if (!timezoneString) {\n        return 0;\n    }\n    // Z\n    let token = patterns.timezoneZ.exec(timezoneString);\n    if (token) {\n        return 0;\n    }\n    let hours;\n    let absoluteOffset;\n    // ±hh\n    token = patterns.timezoneHH.exec(timezoneString);\n    if (token) {\n        hours = parseInt(token[1], 10);\n        if (!validateTimezone(hours)) {\n            return NaN;\n        }\n        return -(hours * MILLISECONDS_IN_HOUR);\n    }\n    // ±hh:mm or ±hhmm\n    token = patterns.timezoneHHMM.exec(timezoneString);\n    if (token) {\n        hours = parseInt(token[2], 10);\n        const minutes = parseInt(token[3], 10);\n        if (!validateTimezone(hours, minutes)) {\n            return NaN;\n        }\n        absoluteOffset = Math.abs(hours) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n        return token[1] === '+' ? -absoluteOffset : absoluteOffset;\n    }\n    // IANA time zone\n    if (isValidTimezoneIANAString(timezoneString)) {\n        date = new Date(date || Date.now());\n        const utcDate = isUtcDate ? date : toUtcDate(date);\n        const offset = calcOffset(utcDate, timezoneString);\n        const fixedOffset = isUtcDate ? offset : fixOffset(date, offset, timezoneString);\n        return -fixedOffset;\n    }\n    return NaN;\n}\nfunction toUtcDate(date) {\n    return newDateUTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n}\nfunction calcOffset(date, timezoneString) {\n    const tokens = tzTokenizeDate(date, timezoneString);\n    // ms dropped because it's not provided by tzTokenizeDate\n    const asUTC = newDateUTC(tokens[0], tokens[1] - 1, tokens[2], tokens[3] % 24, tokens[4], tokens[5], 0).getTime();\n    let asTS = date.getTime();\n    const over = asTS % 1000;\n    asTS -= over >= 0 ? over : 1000 + over;\n    return asUTC - asTS;\n}\nfunction fixOffset(date, offset, timezoneString) {\n    const localTS = date.getTime();\n    // Our UTC time is just a guess because our offset is just a guess\n    let utcGuess = localTS - offset;\n    // Test whether the zone matches the offset for this ts\n    const o2 = calcOffset(new Date(utcGuess), timezoneString);\n    // If so, offset didn't change, and we're done\n    if (offset === o2) {\n        return offset;\n    }\n    // If not, change the ts by the difference in the offset\n    utcGuess -= o2 - offset;\n    // If that gives us the local time we want, we're done\n    const o3 = calcOffset(new Date(utcGuess), timezoneString);\n    if (o2 === o3) {\n        return o2;\n    }\n    // If it's different, we're in a hole time. The offset has changed, but we don't adjust the time\n    return Math.max(o2, o3);\n}\nfunction validateTimezone(hours, minutes) {\n    return -23 <= hours && hours <= 23 && (minutes == null || (0 <= minutes && minutes <= 59));\n}\nconst validIANATimezoneCache = {};\nfunction isValidTimezoneIANAString(timeZoneString) {\n    if (validIANATimezoneCache[timeZoneString])\n        return true;\n    try {\n        new Intl.DateTimeFormat(undefined, { timeZone: timeZoneString });\n        validIANATimezoneCache[timeZoneString] = true;\n        return true;\n    }\n    catch (error) {\n        return false;\n    }\n}\n","import { tzIntlTimeZoneName } from '../../_lib/tzIntlTimeZoneName/index.js';\nimport { tzParseTimezone } from '../../_lib/tzParseTimezone/index.js';\nconst MILLISECONDS_IN_MINUTE = 60 * 1000;\nexport const formatters = {\n    // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n    X: function (date, token, options) {\n        const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n        if (timezoneOffset === 0) {\n            return 'Z';\n        }\n        switch (token) {\n            // Hours and optional minutes\n            case 'X':\n                return formatTimezoneWithOptionalMinutes(timezoneOffset);\n            // Hours, minutes and optional seconds without `:` delimeter\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 `:` delimeter\n                return formatTimezone(timezoneOffset);\n            // Hours, minutes and optional seconds with `:` delimeter\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 `:` delimeter\n            default:\n                return formatTimezone(timezoneOffset, ':');\n        }\n    },\n    // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n    x: function (date, token, options) {\n        const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\n        switch (token) {\n            // Hours and optional minutes\n            case 'x':\n                return formatTimezoneWithOptionalMinutes(timezoneOffset);\n            // Hours, minutes and optional seconds without `:` delimeter\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 `:` delimeter\n                return formatTimezone(timezoneOffset);\n            // Hours, minutes and optional seconds with `:` delimeter\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 `:` delimeter\n            default:\n                return formatTimezone(timezoneOffset, ':');\n        }\n    },\n    // Timezone (GMT)\n    O: function (date, token, options) {\n        const timezoneOffset = getTimeZoneOffset(options.timeZone, date);\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    // Timezone (specific non-location)\n    z: function (date, token, options) {\n        switch (token) {\n            // Short\n            case 'z':\n            case 'zz':\n            case 'zzz':\n                return tzIntlTimeZoneName('short', date, options);\n            // Long\n            case 'zzzz':\n            default:\n                return tzIntlTimeZoneName('long', date, options);\n        }\n    },\n};\nfunction getTimeZoneOffset(timeZone, originalDate) {\n    const timeZoneOffset = timeZone\n        ? tzParseTimezone(timeZone, originalDate, true) / MILLISECONDS_IN_MINUTE\n        : originalDate?.getTimezoneOffset() ?? 0;\n    if (Number.isNaN(timeZoneOffset)) {\n        throw new RangeError('Invalid time zone specified: ' + timeZone);\n    }\n    return timeZoneOffset;\n}\nfunction addLeadingZeros(number, targetLength) {\n    const sign = number < 0 ? '-' : '';\n    let output = Math.abs(number).toString();\n    while (output.length < targetLength) {\n        output = '0' + output;\n    }\n    return sign + output;\n}\nfunction formatTimezone(offset, delimiter = '') {\n    const sign = offset > 0 ? '-' : '+';\n    const absOffset = Math.abs(offset);\n    const hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n    const minutes = addLeadingZeros(Math.floor(absOffset % 60), 2);\n    return sign + hours + delimiter + minutes;\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}\nfunction formatTimezoneShort(offset, delimiter = '') {\n    const sign = offset > 0 ? '-' : '+';\n    const absOffset = Math.abs(offset);\n    const hours = Math.floor(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","/**\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 utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n    utcDate.setUTCFullYear(date.getFullYear());\n    return +date - +utcDate;\n}\n","/** Regex to identify the presence of a time zone specifier in a date string */\nexport const tzPattern = /(Z|[+-]\\d{2}(?::?\\d{2})?| UTC| [a-zA-Z]+\\/[a-zA-Z_]+(?:\\/[a-zA-Z_]+)?)$/;\n","import { getTimezoneOffsetInMilliseconds } from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { tzPattern } from '../_lib/tzPattern/index.js';\nconst MILLISECONDS_IN_HOUR = 3600000;\nconst MILLISECONDS_IN_MINUTE = 60000;\nconst DEFAULT_ADDITIONAL_DIGITS = 2;\nconst patterns = {\n    dateTimePattern: /^([0-9W+-]+)(T| )(.*)/,\n    datePattern: /^([0-9W+-]+)(.*)/,\n    plainTime: /:/,\n    // year tokens\n    YY: /^(\\d{2})$/,\n    YYY: [\n        /^([+-]\\d{2})$/, // 0 additional digits\n        /^([+-]\\d{3})$/, // 1 additional digit\n        /^([+-]\\d{4})$/, // 2 additional digits\n    ],\n    YYYY: /^(\\d{4})/,\n    YYYYY: [\n        /^([+-]\\d{4})/, // 0 additional digits\n        /^([+-]\\d{5})/, // 1 additional digit\n        /^([+-]\\d{6})/, // 2 additional digits\n    ],\n    // date tokens\n    MM: /^-(\\d{2})$/,\n    DDD: /^-?(\\d{3})$/,\n    MMDD: /^-?(\\d{2})-?(\\d{2})$/,\n    Www: /^-?W(\\d{2})$/,\n    WwwD: /^-?W(\\d{2})-?(\\d{1})$/,\n    HH: /^(\\d{2}([.,]\\d*)?)$/,\n    HHMM: /^(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n    HHMMSS: /^(\\d{2}):?(\\d{2}):?(\\d{2}([.,]\\d*)?)$/,\n    // time zone tokens (to identify the presence of a tz)\n    timeZone: tzPattern,\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 an argument is a string, the function tries to parse it.\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n * If the function cannot parse the string or the values are invalid, it returns Invalid Date.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n * All *date-fns* functions will throw `RangeError` if `options.additionalDigits` is not 0, 1, 2 or undefined.\n *\n * @param argument the value to convert\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @param {string} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n *\n * @returns the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = toDate('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = toDate('+02014101', {additionalDigits: 1})\n * //=> Fri Apr 11 2014 00:00:00\n */\nexport function toDate(argument, options = {}) {\n    if (arguments.length < 1) {\n        throw new TypeError('1 argument required, but only ' + arguments.length + ' present');\n    }\n    if (argument === null) {\n        return new Date(NaN);\n    }\n    const additionalDigits = options.additionalDigits == null ? DEFAULT_ADDITIONAL_DIGITS : Number(options.additionalDigits);\n    if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n        throw new RangeError('additionalDigits must be 0, 1 or 2');\n    }\n    // Clone the date\n    if (argument instanceof Date ||\n        (typeof argument === 'object' && Object.prototype.toString.call(argument) === '[object Date]')) {\n        // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n        return new Date(argument.getTime());\n    }\n    else if (typeof argument === 'number' ||\n        Object.prototype.toString.call(argument) === '[object Number]') {\n        return new Date(argument);\n    }\n    else if (!(Object.prototype.toString.call(argument) === '[object String]')) {\n        return new Date(NaN);\n    }\n    const dateStrings = splitDateString(argument);\n    const { year, restDateString } = parseYear(dateStrings.date, additionalDigits);\n    const date = parseDate(restDateString, year);\n    if (date === null || isNaN(date.getTime())) {\n        return new Date(NaN);\n    }\n    if (date) {\n        const timestamp = date.getTime();\n        let time = 0;\n        let offset;\n        if (dateStrings.time) {\n            time = parseTime(dateStrings.time);\n            if (time === null || isNaN(time)) {\n                return new Date(NaN);\n            }\n        }\n        if (dateStrings.timeZone || options.timeZone) {\n            offset = tzParseTimezone(dateStrings.timeZone || options.timeZone, new Date(timestamp + time));\n            if (isNaN(offset)) {\n                return new Date(NaN);\n            }\n        }\n        else {\n            // get offset accurate to hour in time zones that change offset\n            offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time));\n            offset = getTimezoneOffsetInMilliseconds(new Date(timestamp + time + offset));\n        }\n        return new Date(timestamp + time + offset);\n    }\n    else {\n        return new Date(NaN);\n    }\n}\nfunction splitDateString(dateString) {\n    const dateStrings = {};\n    let parts = patterns.dateTimePattern.exec(dateString);\n    let timeString;\n    if (!parts) {\n        parts = patterns.datePattern.exec(dateString);\n        if (parts) {\n            dateStrings.date = parts[1];\n            timeString = parts[2];\n        }\n        else {\n            dateStrings.date = null;\n            timeString = dateString;\n        }\n    }\n    else {\n        dateStrings.date = parts[1];\n        timeString = parts[3];\n    }\n    if (timeString) {\n        const token = patterns.timeZone.exec(timeString);\n        if (token) {\n            dateStrings.time = timeString.replace(token[1], '');\n            dateStrings.timeZone = token[1].trim();\n        }\n        else {\n            dateStrings.time = timeString;\n        }\n    }\n    return dateStrings;\n}\nfunction parseYear(dateString, additionalDigits) {\n    if (dateString) {\n        const patternYYY = patterns.YYY[additionalDigits];\n        const patternYYYYY = patterns.YYYYY[additionalDigits];\n        // YYYY or ±YYYYY\n        let token = patterns.YYYY.exec(dateString) || patternYYYYY.exec(dateString);\n        if (token) {\n            const yearString = token[1];\n            return {\n                year: parseInt(yearString, 10),\n                restDateString: dateString.slice(yearString.length),\n            };\n        }\n        // YY or ±YYY\n        token = patterns.YY.exec(dateString) || patternYYY.exec(dateString);\n        if (token) {\n            const centuryString = token[1];\n            return {\n                year: parseInt(centuryString, 10) * 100,\n                restDateString: dateString.slice(centuryString.length),\n            };\n        }\n    }\n    // Invalid ISO-formatted year\n    return {\n        year: null,\n    };\n}\nfunction parseDate(dateString, year) {\n    // Invalid ISO-formatted year\n    if (year === null) {\n        return null;\n    }\n    let date;\n    let month;\n    let week;\n    // YYYY\n    if (!dateString || !dateString.length) {\n        date = new Date(0);\n        date.setUTCFullYear(year);\n        return date;\n    }\n    // YYYY-MM\n    let token = patterns.MM.exec(dateString);\n    if (token) {\n        date = new Date(0);\n        month = parseInt(token[1], 10) - 1;\n        if (!validateDate(year, month)) {\n            return new Date(NaN);\n        }\n        date.setUTCFullYear(year, month);\n        return date;\n    }\n    // YYYY-DDD or YYYYDDD\n    token = patterns.DDD.exec(dateString);\n    if (token) {\n        date = new Date(0);\n        const dayOfYear = parseInt(token[1], 10);\n        if (!validateDayOfYearDate(year, dayOfYear)) {\n            return new Date(NaN);\n        }\n        date.setUTCFullYear(year, 0, dayOfYear);\n        return date;\n    }\n    // yyyy-MM-dd or YYYYMMDD\n    token = patterns.MMDD.exec(dateString);\n    if (token) {\n        date = new Date(0);\n        month = parseInt(token[1], 10) - 1;\n        const day = parseInt(token[2], 10);\n        if (!validateDate(year, month, day)) {\n            return new Date(NaN);\n        }\n        date.setUTCFullYear(year, month, day);\n        return date;\n    }\n    // YYYY-Www or YYYYWww\n    token = patterns.Www.exec(dateString);\n    if (token) {\n        week = parseInt(token[1], 10) - 1;\n        if (!validateWeekDate(week)) {\n            return new Date(NaN);\n        }\n        return dayOfISOWeekYear(year, week);\n    }\n    // YYYY-Www-D or YYYYWwwD\n    token = patterns.WwwD.exec(dateString);\n    if (token) {\n        week = parseInt(token[1], 10) - 1;\n        const dayOfWeek = parseInt(token[2], 10) - 1;\n        if (!validateWeekDate(week, dayOfWeek)) {\n            return new Date(NaN);\n        }\n        return dayOfISOWeekYear(year, week, dayOfWeek);\n    }\n    // Invalid ISO-formatted date\n    return null;\n}\nfunction parseTime(timeString) {\n    let hours;\n    let minutes;\n    // hh\n    let token = patterns.HH.exec(timeString);\n    if (token) {\n        hours = parseFloat(token[1].replace(',', '.'));\n        if (!validateTime(hours)) {\n            return NaN;\n        }\n        return (hours % 24) * MILLISECONDS_IN_HOUR;\n    }\n    // hh:mm or hhmm\n    token = patterns.HHMM.exec(timeString);\n    if (token) {\n        hours = parseInt(token[1], 10);\n        minutes = parseFloat(token[2].replace(',', '.'));\n        if (!validateTime(hours, minutes)) {\n            return NaN;\n        }\n        return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE;\n    }\n    // hh:mm:ss or hhmmss\n    token = patterns.HHMMSS.exec(timeString);\n    if (token) {\n        hours = parseInt(token[1], 10);\n        minutes = parseInt(token[2], 10);\n        const seconds = parseFloat(token[3].replace(',', '.'));\n        if (!validateTime(hours, minutes, seconds)) {\n            return NaN;\n        }\n        return (hours % 24) * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * 1000;\n    }\n    // Invalid ISO-formatted time\n    return null;\n}\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n    week = week || 0;\n    day = day || 0;\n    const date = new Date(0);\n    date.setUTCFullYear(isoWeekYear, 0, 4);\n    const fourthOfJanuaryDay = date.getUTCDay() || 7;\n    const diff = week * 7 + day + 1 - fourthOfJanuaryDay;\n    date.setUTCDate(date.getUTCDate() + diff);\n    return date;\n}\n// Validation functions\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nfunction isLeapYearIndex(year) {\n    return year % 400 === 0 || (year % 4 === 0 && year % 100 !== 0);\n}\nfunction validateDate(year, month, date) {\n    if (month < 0 || month > 11) {\n        return false;\n    }\n    if (date != null) {\n        if (date < 1) {\n            return false;\n        }\n        const isLeapYear = isLeapYearIndex(year);\n        if (isLeapYear && date > DAYS_IN_MONTH_LEAP_YEAR[month]) {\n            return false;\n        }\n        if (!isLeapYear && date > DAYS_IN_MONTH[month]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction validateDayOfYearDate(year, dayOfYear) {\n    if (dayOfYear < 1) {\n        return false;\n    }\n    const isLeapYear = isLeapYearIndex(year);\n    if (isLeapYear && dayOfYear > 366) {\n        return false;\n    }\n    if (!isLeapYear && dayOfYear > 365) {\n        return false;\n    }\n    return true;\n}\nfunction validateWeekDate(week, day) {\n    if (week < 0 || week > 52) {\n        return false;\n    }\n    if (day != null && (day < 0 || day > 6)) {\n        return false;\n    }\n    return true;\n}\nfunction validateTime(hours, minutes, seconds) {\n    if (hours < 0 || hours >= 25) {\n        return false;\n    }\n    if (minutes != null && (minutes < 0 || minutes >= 60)) {\n        return false;\n    }\n    if (seconds != null && (seconds < 0 || seconds >= 60)) {\n        return false;\n    }\n    return true;\n}\n","import { format as dateFnsFormat } from 'date-fns/format';\nimport { formatters } from './formatters/index.js';\nimport { toDate } from '../toDate/index.js';\nconst tzFormattingTokensRegExp = /([xXOz]+)|''|'(''|[^'])+('|$)/g;\n/**\n * @name format\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 consty by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\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               | 8     |\n * |                                 | Do      | 1st, 2nd, ..., 365th, 366th       | 7     |\n * |                                 | DD      | 01, 02, ..., 365, 366             | 8     |\n * |                                 | DDD     | 001, 002, ..., 365, 366           |       |\n * |                                 | DDDD    | ...                               | 3     |\n * | Day of week (formatting)        | E..EEE  | Mon, Tue, Wed, ..., Su            |       |\n * |                                 | EEEE    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | EEEEE   | M, T, W, T, F, S, S               |       |\n * |                                 | EEEEEE  | Mo, Tu, We, Th, Fr, Su, Sa        |       |\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, ..., Su            | 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, Su, Sa        | 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, ..., Su            |       |\n * |                                 | eeee    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | eeeee   | M, T, W, T, F, S, S               |       |\n * |                                 | eeeeee  | Mo, Tu, We, Th, Fr, Su, Sa        |       |\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, ..., Su            |       |\n * |                                 | cccc    | Monday, Tuesday, ..., Sunday      | 2     |\n * |                                 | ccccc   | M, T, W, T, F, S, S               |       |\n * |                                 | cccccc  | Mo, Tu, We, Th, Fr, Su, Sa        |       |\n * | AM, PM                          | a..aaa  | AM, PM                            |       |\n * |                                 | aaaa    | a.m., p.m.                        | 2     |\n * |                                 | aaaaa   | a, p                              |       |\n * | AM, PM, noon, midnight          | 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             | 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      | 1, 2, ..., 11, 0                  |       |\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, 0001, ..., 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 | PDT, EST, CEST                    | 6     |\n * |                                 | zzzz    | Pacific Daylight Time             | 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       | 05/29/1453                        | 7     |\n * |                                 | PP      | May 29, 1453                      | 7     |\n * |                                 | PPP     | May 29th, 1453                    | 7     |\n * |                                 | PPPP    | Sunday, May 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      | 05/29/1453, 12:00 AM              | 7     |\n * |                                 | PPpp    | May 29, 1453, 12:00:00 AM         | 7     |\n * |                                 | PPPppp  | May 29th, 1453 at ...             | 7     |\n * |                                 | PPPPpppp| Sunday, May 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]{@link https://date-fns.org/docs/getISOWeekYear}\n *    and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are created using the Intl browser API. The output is determined by the\n *    preferred standard of the current locale (en-US by default) which may not always give the expected result.\n *    For this reason it is recommended to supply a `locale` in the format options when formatting a time zone name.\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. These tokens are often confused with others. See: https://git.io/fxCyr\n *\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole\n *   library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n *   ```javascript\n *   // Before v2.0.0\n *   format(new Date(2016, 0, 1))\n *\n *   // v2.0.0 onward\n *   format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n *   ```\n *\n * - New format string API for `format` function\n *   which is based on [Unicode Technical Standard\n *   #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table). See [this\n *   post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param date the original date\n * @param formatStr the string of tokens\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n *   https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n *   [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n *   - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n *   - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n *   (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n * @param {Date|Number} [options.originalDate] - can be used to pass the original unmodified date to `format` to\n *   improve correctness of the replaced timezone token close to the DST threshold.\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.awareOfUnicodeTokens` must be set to `true` to use `XX` token; see:\n *   https://git.io/fxCyr\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    formatStr = String(formatStr);\n    const matches = formatStr.match(tzFormattingTokensRegExp);\n    if (matches) {\n        const d = toDate(options.originalDate || date, options);\n        // Work through each match and replace the tz token in the format string with the quoted\n        // formatted time zone so the remaining tokens can be filled in by date-fns#format.\n        formatStr = matches.reduce(function (result, token) {\n            if (token[0] === \"'\") {\n                return result; // This is a quoted portion, matched only to ensure we don't match inside it\n            }\n            const pos = result.indexOf(token);\n            const precededByQuotedSection = result[pos - 1] === \"'\";\n            const replaced = result.replace(token, \"'\" + formatters[token[0]](d, token, options) + \"'\");\n            // If the replacement results in two adjoining quoted strings, the back to back quotes\n            // are removed, so it doesn't look like an escaped quote.\n            return precededByQuotedSection\n                ? replaced.substring(0, pos - 1) + replaced.substring(pos + 1)\n                : replaced;\n        }, formatStr);\n    }\n    return dateFnsFormat(date, formatStr, options);\n}\n","import { tzParseTimezone } from '../_lib/tzParseTimezone/index.js';\nimport { toDate } from '../toDate/index.js';\n/**\n * @name toZonedTime\n * @category Time Zone Helpers\n * @summary Get a date/time representing local time in a given time zone from the UTC date\n *\n * @description\n * Returns a date instance with values representing the local time in the time zone\n * specified of the UTC time from the date provided. In other words, when the new date\n * is formatted it will show the equivalent hours in the target time zone regardless\n * of the current system time zone.\n *\n * @param date the date with the relevant UTC time\n * @param timeZone the time zone to get local time for, can be an offset or IANA time zone\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n *\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // In June 10am UTC is 6am in New York (-04:00)\n * const result = toZonedTime('2014-06-25T10:00:00.000Z', 'America/New_York')\n * //=> Jun 25 2014 06:00:00\n */\nexport function toZonedTime(date, timeZone, options) {\n    date = toDate(date, options);\n    const offsetMilliseconds = tzParseTimezone(timeZone, date, true);\n    const d = new Date(date.getTime() - offsetMilliseconds);\n    const resultDate = new Date(0);\n    resultDate.setFullYear(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate());\n    resultDate.setHours(d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds(), d.getUTCMilliseconds());\n    return resultDate;\n}\n","import { format } from '../format/index.js';\nimport { toZonedTime } from '../toZonedTime/index.js';\n/**\n * @name formatInTimeZone\n * @category Time Zone Helpers\n * @summary Gets the offset in milliseconds between the time zone and Universal Coordinated Time (UTC)\n *\n * @param date the date representing the local time / real UTC time\n * @param timeZone the time zone this date should be formatted for; can be an offset or IANA time zone\n * @param formatStr the string of tokens\n * @param options the object with options. See [Options]{@link https://date-fns.org/docs/Options}\n * @param {0|1|2} [options.additionalDigits=2] - passed to `toDate`. See [toDate]{@link\n *   https://date-fns.org/docs/toDate}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See\n *   [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {Boolean} [options.awareOfUnicodeTokens=false] - if true, allows usage of Unicode tokens causes confusion:\n *   - Some of the day of year tokens (`D`, `DD`) that are confused with the day of month tokens (`d`, `dd`).\n *   - Some of the local week-numbering year tokens (`YY`, `YYYY`) that are confused with the calendar year tokens\n *   (`yy`, `yyyy`). See: https://git.io/fxCyr\n * @param {String} [options.timeZone=''] - used to specify the IANA time zone offset of a date String.\n */\nexport function formatInTimeZone(date, timeZone, formatStr, options) {\n    options = {\n        ...options,\n        timeZone,\n        originalDate: date,\n    };\n    return format(toZonedTime(date, timeZone, { timeZone: options.timeZone }), formatStr, options);\n}\n","import type { Ref } from 'vue'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { MergedTheme } from '../../_mixins'\nimport type { TimePickerTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils'\n\nexport type ItemValue = number | 'am' | 'pm'\n\nexport interface Item {\n  label: string\n  value: ItemValue\n  disabled: boolean\n}\n\nexport interface TimePickerInjection {\n  mergedThemeRef: Ref<MergedTheme<TimePickerTheme>>\n  mergedClsPrefixRef: Ref<string>\n}\n\nexport const timePickerInjectionKey\n  = createInjectionKey<TimePickerInjection>('n-time-picker')\n\nexport interface PanelRef {\n  $el: HTMLElement\n  hourScrollRef?: ScrollbarInst\n  minuteScrollRef?: ScrollbarInst\n  secondScrollRef?: ScrollbarInst\n  amPmScrollRef?: ScrollbarInst\n}\n\nexport type OnUpdateValue = ((value: number, formattedValue: string) => void)\n  & ((value: number | null, formattedValue: string | null) => void)\nexport type OnUpdateValueImpl = (\n  value: number | null,\n  formattedValue: string | null\n) => void\n\nexport type OnUpdateFormattedValue = ((\n  value: string,\n  timestampValue: number\n) => void)\n& ((value: string | null, timestampValue: number | null) => void)\nexport type OnUpdateFormattedValueImpl = (\n  value: string | null,\n  timestampValue: number | null\n) => void\n\nexport type IsHourDisabled = (hour: number) => boolean\nexport type IsMinuteDisabled = (minute: number, hour: number | null) => boolean\nexport type IsSecondDisabled = (\n  second: number,\n  minute: number | null,\n  hour: number | null\n) => boolean\n\nexport interface TimePickerInst {\n  focus: () => void\n  blur: () => void\n}\n","import type { PropType } from 'vue'\nimport type { Item } from './interface'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'TimePickerPanelCol',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    data: {\n      type: Array as PropType<Item[]>,\n      required: true\n    },\n    activeValue: {\n      type: [Number, String] as PropType<number | null | 'am' | 'pm'>,\n      default: null\n    },\n    // It should be required but vue's type seems to have bugs\n    onItemClick: Function as PropType<(value: number | 'am' | 'pm') => void>\n  },\n  render() {\n    const { activeValue, onItemClick, clsPrefix } = this\n    return this.data.map((item) => {\n      const { label, disabled, value } = item\n      const active = activeValue === value\n      return (\n        <div\n          key={label}\n          data-active={active ? '' : null}\n          class={[\n            `${clsPrefix}-time-picker-col__item`,\n            active && `${clsPrefix}-time-picker-col__item--active`,\n            disabled && `${clsPrefix}-time-picker-col__item--disabled`\n          ]}\n          onClick={\n            onItemClick && !disabled\n              ? () => {\n                  onItemClick(value)\n                }\n              : undefined\n          }\n        >\n          {label}\n        </div>\n      )\n    })\n  }\n})\n","import type { MaybeArray } from '../../_utils'\nimport { getHours } from 'date-fns'\nimport { throwError } from '../../_utils'\n\nexport const time = {\n  amHours: [\n    '00',\n    '01',\n    '02',\n    '03',\n    '04',\n    '05',\n    '06',\n    '07',\n    '08',\n    '09',\n    '10',\n    '11'\n  ],\n  pmHours: [\n    '12',\n    '01',\n    '02',\n    '03',\n    '04',\n    '05',\n    '06',\n    '07',\n    '08',\n    '09',\n    '10',\n    '11'\n  ],\n  hours: [\n    '00',\n    '01',\n    '02',\n    '03',\n    '04',\n    '05',\n    '06',\n    '07',\n    '08',\n    '09',\n    '10',\n    '11',\n    '12',\n    '13',\n    '14',\n    '15',\n    '16',\n    '17',\n    '18',\n    '19',\n    '20',\n    '21',\n    '22',\n    '23'\n  ],\n  minutes: [\n    '00',\n    '01',\n    '02',\n    '03',\n    '04',\n    '05',\n    '06',\n    '07',\n    '08',\n    '09',\n    '10',\n    '11',\n    '12',\n    '13',\n    '14',\n    '15',\n    '16',\n    '17',\n    '18',\n    '19',\n    '20',\n    '21',\n    '22',\n    '23',\n    '24',\n    '25',\n    '26',\n    '27',\n    '28',\n    '29',\n    '30',\n    '31',\n    '32',\n    '33',\n    '34',\n    '35',\n    '36',\n    '37',\n    '38',\n    '39',\n    '40',\n    '41',\n    '42',\n    '43',\n    '44',\n    '45',\n    '46',\n    '47',\n    '48',\n    '49',\n    '50',\n    '51',\n    '52',\n    '53',\n    '54',\n    '55',\n    '56',\n    '57',\n    '58',\n    '59'\n  ],\n  seconds: [\n    '00',\n    '01',\n    '02',\n    '03',\n    '04',\n    '05',\n    '06',\n    '07',\n    '08',\n    '09',\n    '10',\n    '11',\n    '12',\n    '13',\n    '14',\n    '15',\n    '16',\n    '17',\n    '18',\n    '19',\n    '20',\n    '21',\n    '22',\n    '23',\n    '24',\n    '25',\n    '26',\n    '27',\n    '28',\n    '29',\n    '30',\n    '31',\n    '32',\n    '33',\n    '34',\n    '35',\n    '36',\n    '37',\n    '38',\n    '39',\n    '40',\n    '41',\n    '42',\n    '43',\n    '44',\n    '45',\n    '46',\n    '47',\n    '48',\n    '49',\n    '50',\n    '51',\n    '52',\n    '53',\n    '54',\n    '55',\n    '56',\n    '57',\n    '58',\n    '59'\n  ],\n  period: ['AM', 'PM']\n}\n\nexport function getFixValue(value: number): string {\n  return `00${value}`.slice(-2)\n}\n\n// TODO: refactor the logic, it's somehow a patch logic\nexport function getTimeUnits(\n  defaultValue: string[],\n  stepOrList: MaybeArray<number> | undefined,\n  isHourWithAmPm?: 'am' | 'pm'\n): string[] {\n  if (Array.isArray(stepOrList)) {\n    return (\n      isHourWithAmPm === 'am'\n        ? stepOrList.filter(v => v < 12)\n        : isHourWithAmPm === 'pm'\n          ? stepOrList\n              .filter(v => v >= 12)\n              .map(v => (v === 12 ? 12 : v - 12))\n          : stepOrList\n    ).map(v => getFixValue(v))\n  }\n  else if (typeof stepOrList === 'number') {\n    if (isHourWithAmPm === 'am') {\n      return defaultValue.filter((hour) => {\n        const hourAsNumber = Number(hour)\n        return hourAsNumber < 12 && hourAsNumber % stepOrList === 0\n      })\n    }\n    else if (isHourWithAmPm === 'pm') {\n      return defaultValue\n        .filter((hour) => {\n          const hourAsNumber = Number(hour)\n          return hourAsNumber >= 12 && hourAsNumber % stepOrList === 0\n        })\n        .map((hour) => {\n          const hourAsNumber = Number(hour)\n          return getFixValue(hourAsNumber === 12 ? 12 : hourAsNumber - 12)\n        })\n    }\n    return defaultValue.filter((hour) => {\n      return Number(hour) % stepOrList === 0\n    })\n  }\n  else {\n    return isHourWithAmPm === 'am'\n      ? defaultValue.filter(hour => Number(hour) < 12)\n      : isHourWithAmPm === 'pm'\n        ? defaultValue\n            .map(hour => Number(hour))\n            .filter(hour => Number(hour) >= 12)\n            .map(v => getFixValue(v === 12 ? 12 : v - 12))\n        : defaultValue\n  }\n}\n\nexport function isTimeInStep(\n  value: number,\n  type: 'hours' | 'minutes' | 'seconds',\n  stepOrList: MaybeArray<number> | undefined\n): boolean {\n  if (!stepOrList) {\n    return true\n  }\n  else if (typeof stepOrList === 'number') {\n    return value % stepOrList === 0\n  }\n  else {\n    return stepOrList.includes(value)\n  }\n}\n\nexport function findSimilarTime(\n  value: number,\n  type: 'hours' | 'minutes' | 'seconds',\n  stepOrList: MaybeArray<number> | undefined\n): number {\n  const list = getTimeUnits(time[type], stepOrList).map(Number)\n  let lowerBound, upperBound\n  for (let i = 0; i < list.length; ++i) {\n    const v = list[i]\n    if (v === value) {\n      return v\n    }\n    else if (v > value) {\n      upperBound = v\n      break\n    }\n    lowerBound = v\n  }\n  if (lowerBound === undefined) {\n    if (!upperBound) {\n      throwError(\n        'time-picker',\n        'Please set \\'hours\\' or \\'minutes\\' or \\'seconds\\' props'\n      )\n    }\n    return upperBound\n  }\n  if (upperBound === undefined) {\n    return lowerBound\n  }\n  return upperBound - value > value - lowerBound ? lowerBound : upperBound\n}\n\nexport function getAmPm(value: number): 'am' | 'pm' {\n  return getHours(value) < 12 ? 'am' : 'pm'\n}\n","import type { PropType } from 'vue'\nimport type { MaybeArray } from '../../_utils'\nimport type {\n  IsHourDisabled,\n  IsMinuteDisabled,\n  IsSecondDisabled,\n  Item,\n  ItemValue\n} from './interface'\nimport { computed, defineComponent, h, inject, ref } from 'vue'\nimport { NBaseFocusDetector, NScrollbar } from '../../_internal'\nimport { NButton } from '../../button'\nimport { timePickerInjectionKey } from './interface'\nimport PanelCol from './PanelCol'\nimport { getAmPm, getTimeUnits, time } from './utils'\n\nconst timePickerPanelProps = {\n  actions: {\n    type: Array as PropType<Array<'clear' | 'now' | 'confirm'> | null>,\n    default: () => ['now', 'confirm']\n  },\n  showHour: {\n    type: Boolean,\n    default: true\n  },\n  showMinute: {\n    type: Boolean,\n    default: true\n  },\n  showSecond: {\n    type: Boolean,\n    default: true\n  },\n  showPeriod: {\n    type: Boolean,\n    default: true\n  },\n  isHourInvalid: Boolean,\n  isMinuteInvalid: Boolean,\n  isSecondInvalid: Boolean,\n  isAmPmInvalid: Boolean,\n  isValueInvalid: Boolean,\n  hourValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  minuteValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  secondValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  amPmValue: {\n    type: String as PropType<'am' | 'pm' | null>,\n    default: null\n  },\n  isHourDisabled: Function as PropType<IsHourDisabled>,\n  isMinuteDisabled: Function as PropType<IsMinuteDisabled>,\n  isSecondDisabled: Function as PropType<IsSecondDisabled>,\n  onHourClick: {\n    type: Function as PropType<(value: ItemValue) => void>,\n    required: true\n  },\n  onMinuteClick: {\n    type: Function as PropType<(value: ItemValue) => void>,\n    required: true\n  },\n  onSecondClick: {\n    type: Function as PropType<(value: ItemValue) => void>,\n    required: true\n  },\n  onAmPmClick: {\n    type: Function as PropType<(value: ItemValue) => void>,\n    required: true\n  },\n  onNowClick: Function as PropType<() => void>,\n  clearText: String,\n  nowText: String,\n  confirmText: String,\n  transitionDisabled: Boolean,\n  onClearClick: Function as PropType<() => void>,\n  onConfirmClick: Function as PropType<() => void>,\n  onFocusin: Function as PropType<(e: FocusEvent) => void>,\n  onFocusout: Function as PropType<(e: FocusEvent) => void>,\n  onFocusDetectorFocus: Function as PropType<() => void>,\n  onKeydown: Function as PropType<(e: KeyboardEvent) => void>,\n  hours: [Number, Array] as PropType<MaybeArray<number>>,\n  minutes: [Number, Array] as PropType<MaybeArray<number>>,\n  seconds: [Number, Array] as PropType<MaybeArray<number>>,\n  use12Hours: Boolean\n}\n\nexport default defineComponent({\n  name: 'TimePickerPanel',\n  props: timePickerPanelProps,\n  setup(props) {\n    const { mergedThemeRef, mergedClsPrefixRef } = inject(\n      timePickerInjectionKey\n    )!\n\n    const hoursRef = computed<Item[]>(() => {\n      const { isHourDisabled, hours, use12Hours, amPmValue } = props\n      if (!use12Hours) {\n        return getTimeUnits(time.hours, hours).map((hour) => {\n          return {\n            label: hour,\n            value: Number(hour),\n            disabled: isHourDisabled ? isHourDisabled(Number(hour)) : false\n          }\n        })\n      }\n      else {\n        const mergedAmPmValue = amPmValue ?? getAmPm(Date.now())\n        return getTimeUnits(time.hours, hours, mergedAmPmValue).map((hour) => {\n          const hourAs12FormattedNumber = Number(hour)\n          const hourAs24FormattedNumber\n            = mergedAmPmValue === 'pm' && hourAs12FormattedNumber !== 12\n              ? hourAs12FormattedNumber + 12\n              : hourAs12FormattedNumber\n          return {\n            label: hour,\n            value: hourAs24FormattedNumber,\n            disabled: isHourDisabled\n              ? isHourDisabled(hourAs24FormattedNumber)\n              : false\n          }\n        })\n      }\n    })\n    const minutesRef = computed<Item[]>(() => {\n      const { isMinuteDisabled, minutes } = props\n      return getTimeUnits(time.minutes, minutes).map((minute) => {\n        return {\n          label: minute,\n          value: Number(minute),\n          disabled: isMinuteDisabled\n            ? isMinuteDisabled(Number(minute), props.hourValue)\n            : false\n        }\n      })\n    })\n    const secondsRef = computed<Item[]>(() => {\n      const { isSecondDisabled, seconds } = props\n      return getTimeUnits(time.seconds, seconds).map((second) => {\n        return {\n          label: second,\n          value: Number(second),\n          disabled: isSecondDisabled\n            ? isSecondDisabled(\n                Number(second),\n                props.minuteValue,\n                props.hourValue\n              )\n            : false\n        }\n      })\n    })\n    const amPmRef = computed<Item[]>(() => {\n      const { isHourDisabled } = props\n      let amDisabled = true\n      let pmDisabled = true\n      for (let i = 0; i < 12; ++i) {\n        if (!isHourDisabled?.(i)) {\n          amDisabled = false\n          break\n        }\n      }\n      for (let i = 12; i < 24; ++i) {\n        if (!isHourDisabled?.(i)) {\n          pmDisabled = false\n          break\n        }\n      }\n      return [\n        {\n          label: 'AM',\n          value: 'am',\n          disabled: amDisabled\n        },\n        {\n          label: 'PM',\n          value: 'pm',\n          disabled: pmDisabled\n        }\n      ]\n    })\n    return {\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      hours: hoursRef,\n      minutes: minutesRef,\n      seconds: secondsRef,\n      amPm: amPmRef,\n      hourScrollRef: ref(null),\n      minuteScrollRef: ref(null),\n      secondScrollRef: ref(null),\n      amPmScrollRef: ref(null)\n    }\n  },\n  render() {\n    const { mergedClsPrefix, mergedTheme } = this\n    return (\n      <div\n        tabindex={0}\n        class={`${mergedClsPrefix}-time-picker-panel`}\n        onFocusin={this.onFocusin}\n        onFocusout={this.onFocusout}\n        onKeydown={this.onKeydown}\n      >\n        <div class={`${mergedClsPrefix}-time-picker-cols`}>\n          {this.showHour ? (\n            <div\n              class={[\n                `${mergedClsPrefix}-time-picker-col`,\n                this.isHourInvalid\n                && `${mergedClsPrefix}-time-picker-col--invalid`,\n                this.transitionDisabled\n                && `${mergedClsPrefix}-time-picker-col--transition-disabled`\n              ]}\n            >\n              <NScrollbar\n                ref=\"hourScrollRef\"\n                theme={mergedTheme.peers.Scrollbar}\n                themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              >\n                {{\n                  default: () => [\n                    <PanelCol\n                      clsPrefix={mergedClsPrefix}\n                      data={this.hours}\n                      activeValue={this.hourValue}\n                      onItemClick={this.onHourClick}\n                    />,\n                    <div\n                      class={`${mergedClsPrefix}-time-picker-col__padding`}\n                    />\n                  ]\n                }}\n              </NScrollbar>\n            </div>\n          ) : null}\n          {this.showMinute ? (\n            <div\n              class={[\n                `${mergedClsPrefix}-time-picker-col`,\n                this.transitionDisabled\n                && `${mergedClsPrefix}-time-picker-col--transition-disabled`,\n                this.isMinuteInvalid\n                && `${mergedClsPrefix}-time-picker-col--invalid`\n              ]}\n            >\n              <NScrollbar\n                ref=\"minuteScrollRef\"\n                theme={mergedTheme.peers.Scrollbar}\n                themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              >\n                {{\n                  default: () => [\n                    <PanelCol\n                      clsPrefix={mergedClsPrefix}\n                      data={this.minutes}\n                      activeValue={this.minuteValue}\n                      onItemClick={this.onMinuteClick}\n                    />,\n                    <div\n                      class={`${mergedClsPrefix}-time-picker-col__padding`}\n                    />\n                  ]\n                }}\n              </NScrollbar>\n            </div>\n          ) : null}\n          {this.showSecond ? (\n            <div\n              class={[\n                `${mergedClsPrefix}-time-picker-col`,\n                this.isSecondInvalid\n                && `${mergedClsPrefix}-time-picker-col--invalid`,\n                this.transitionDisabled\n                && `${mergedClsPrefix}-time-picker-col--transition-disabled`\n              ]}\n            >\n              <NScrollbar\n                ref=\"secondScrollRef\"\n                theme={mergedTheme.peers.Scrollbar}\n                themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              >\n                {{\n                  default: () => [\n                    <PanelCol\n                      clsPrefix={mergedClsPrefix}\n                      data={this.seconds}\n                      activeValue={this.secondValue}\n                      onItemClick={this.onSecondClick}\n                    />,\n                    <div\n                      class={`${mergedClsPrefix}-time-picker-col__padding`}\n                    />\n                  ]\n                }}\n              </NScrollbar>\n            </div>\n          ) : null}\n          {this.use12Hours ? (\n            <div\n              class={[\n                `${mergedClsPrefix}-time-picker-col`,\n                this.isAmPmInvalid\n                && `${mergedClsPrefix}-time-picker-col--invalid`,\n                this.transitionDisabled\n                && `${mergedClsPrefix}-time-picker-col--transition-disabled`\n              ]}\n            >\n              <NScrollbar\n                ref=\"amPmScrollRef\"\n                theme={mergedTheme.peers.Scrollbar}\n                themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              >\n                {{\n                  default: () => [\n                    <PanelCol\n                      clsPrefix={mergedClsPrefix}\n                      data={this.amPm}\n                      activeValue={this.amPmValue}\n                      onItemClick={this.onAmPmClick}\n                    />,\n                    <div\n                      class={`${mergedClsPrefix}-time-picker-col__padding`}\n                    />\n                  ]\n                }}\n              </NScrollbar>\n            </div>\n          ) : null}\n        </div>\n        {this.actions?.length ? (\n          <div class={`${mergedClsPrefix}-time-picker-actions`}>\n            {this.actions?.includes('clear') ? (\n              <NButton\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                size=\"tiny\"\n                onClick={this.onClearClick}\n              >\n                {{ default: () => this.clearText }}\n              </NButton>\n            ) : null}\n            {this.actions?.includes('now') ? (\n              <NButton\n                size=\"tiny\"\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                onClick={this.onNowClick}\n              >\n                {{ default: () => this.nowText }}\n              </NButton>\n            ) : null}\n            {this.actions?.includes('confirm') ? (\n              <NButton\n                size=\"tiny\"\n                type=\"primary\"\n                class={`${mergedClsPrefix}-time-picker-actions__confirm`}\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                disabled={this.isValueInvalid}\n                onClick={this.onConfirmClick}\n              >\n                {{ default: () => this.confirmText }}\n              </NButton>\n            ) : null}\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.onFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-icon-color-override\n// --n-icon-color-disabled-override\n// --n-bezier\n// --n-border-radius\n// --n-item-color-hover\n// --n-item-font-size\n// --n-item-height\n// --n-item-opacity-disabled\n// --n-item-text-color\n// --n-item-text-color-active\n// --n-item-width\n// --n-panel-action-padding\n// --n-panel-box-shadow\n// --n-panel-color\n// --n-panel-divider-color\n// --n-item-border-radius\nexport default c([\n  cB('time-picker', `\n    z-index: auto;\n    position: relative;\n  `, [\n    cB('time-picker-icon', `\n      color: var(--n-icon-color-override);\n      transition: color .3s var(--n-bezier);\n    `),\n    cM('disabled', [\n      cB('time-picker-icon', `\n        color: var(--n-icon-color-disabled-override);\n      `)\n    ])\n  ]),\n  cB('time-picker-panel', `\n    transition:\n      box-shadow .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    outline: none;\n    font-size: var(--n-item-font-size);\n    border-radius: var(--n-border-radius);\n    margin: 4px 0;\n    min-width: 104px;\n    overflow: hidden;\n    background-color: var(--n-panel-color);\n    box-shadow: var(--n-panel-box-shadow);\n  `, [\n    fadeInScaleUpTransition(),\n    cB('time-picker-actions', `\n      padding: var(--n-panel-action-padding);\n      align-items: center;\n      display: flex;\n      justify-content: space-evenly;\n    `),\n    cB('time-picker-cols', `\n      height: calc(var(--n-item-height) * 6);\n      display: flex;\n      position: relative;\n      transition: border-color .3s var(--n-bezier);\n      border-bottom: 1px solid var(--n-panel-divider-color);\n    `),\n    cB('time-picker-col', `\n      flex-grow: 1;\n      min-width: var(--n-item-width);\n      height: calc(var(--n-item-height) * 6);\n      flex-direction: column;\n      transition: box-shadow .3s var(--n-bezier);\n    `, [\n      cM('transition-disabled', [\n        cE('item', 'transition: none;', [\n          c('&::before', 'transition: none;')\n        ])\n      ]),\n      cE('padding', `\n        height: calc(var(--n-item-height) * 5);\n      `),\n      c('&:first-child', 'min-width: calc(var(--n-item-width) + 4px);', [\n        cE('item', [\n          c('&::before', 'left: 4px;')\n        ])\n      ]),\n      cE('item', `\n        cursor: pointer;\n        height: var(--n-item-height);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: \n          color .3s var(--n-bezier),\n          background-color .3s var(--n-bezier),\n          opacity .3s var(--n-bezier),\n          text-decoration-color .3s var(--n-bezier);\n        background: #0000;\n        text-decoration-color: #0000;\n        color: var(--n-item-text-color);\n        z-index: 0;\n        box-sizing: border-box;\n        padding-top: 4px;\n        position: relative;\n      `, [\n        c('&::before', `\n          content: \"\";\n          transition: background-color .3s var(--n-bezier);\n          z-index: -1;\n          position: absolute;\n          left: 0;\n          right: 4px;\n          top: 4px;\n          bottom: 0;\n          border-radius: var(--n-item-border-radius);\n        `),\n        cNotM('disabled', [\n          c('&:hover::before', `\n            background-color: var(--n-item-color-hover);\n          `)\n        ]),\n        cM('active', `\n          color: var(--n-item-text-color-active);\n        `, [\n          c('&::before', `\n            background-color: var(--n-item-color-hover);\n          `)\n        ]),\n        cM('disabled', `\n          opacity: var(--n-item-opacity-disabled);\n          cursor: not-allowed;\n        `)\n      ]),\n      cM('invalid', [\n        cE('item', [\n          cM('active', `\n            text-decoration: line-through;\n            text-decoration-color: var(--n-item-text-color-active);\n          `)\n        ])\n      ])\n    ])\n  ])\n])\n","import type { Locale } from 'date-fns'\nimport type { CSSProperties, PropType, Ref, VNode } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputInst } from '../../input'\nimport type { TimePickerTheme, TimePickerThemeOverrides } from '../styles'\nimport type {\n  IsHourDisabled,\n  IsMinuteDisabled,\n  IsSecondDisabled,\n  ItemValue,\n  OnUpdateFormattedValue,\n  OnUpdateFormattedValueImpl,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  PanelRef,\n  TimePickerInst\n} from './interface'\nimport type { TimePickerSize } from './public-types'\nimport {\n  format,\n  getHours,\n  getMilliseconds,\n  getMinutes,\n  getSeconds,\n  getTime,\n  isValid,\n  set,\n  setHours,\n  setMinutes,\n  setSeconds,\n  startOfHour,\n  startOfMinute,\n  startOfSecond\n} from 'date-fns'\nimport { formatInTimeZone } from 'date-fns-tz'\nimport { getPreciseEventTarget, happensIn } from 'seemly'\nimport { clickoutside } from 'vdirs'\nimport { useIsMounted, useKeyboard, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NBaseIcon } from '../../_internal'\nimport { TimeIcon } from '../../_internal/icons'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  markEventEffectPerformed,\n  useAdjustedTo,\n  warnOnce\n} from '../../_utils'\nimport { strictParse } from '../../date-picker/src/utils'\nimport { NInput } from '../../input'\nimport { timePickerLight } from '../styles'\nimport { timePickerInjectionKey } from './interface'\nimport Panel from './Panel'\nimport style from './styles/index.cssr'\nimport { findSimilarTime, isTimeInStep } from './utils'\n\n// validate hours, minutes, seconds prop\nfunction validateUnits(value: MaybeArray<number>, max: number): boolean {\n  if (value === undefined) {\n    return true\n  }\n  if (Array.isArray(value)) {\n    return value.every(v => v >= 0 && v <= max)\n  }\n  else {\n    return value >= 0 && value <= max\n  }\n}\n\nexport const timePickerProps = {\n  ...(useTheme.props as ThemeProps<TimePickerTheme, TimePickerThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  actions: Array as PropType<Array<'clear' | 'now' | 'confirm'> | null>,\n  defaultValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  defaultFormattedValue: String,\n  placeholder: String,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  value: Number as PropType<number | null>,\n  format: {\n    type: String,\n    default: 'HH:mm:ss'\n  },\n  valueFormat: String,\n  formattedValue: String as PropType<string | null>,\n  isHourDisabled: Function as PropType<IsHourDisabled>,\n  size: String as PropType<TimePickerSize>,\n  isMinuteDisabled: Function as PropType<IsMinuteDisabled>,\n  isSecondDisabled: Function as PropType<IsSecondDisabled>,\n  inputReadonly: Boolean,\n  clearable: Boolean,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateFormattedValue: [Function, Array] as PropType<\n    MaybeArray<OnUpdateFormattedValue>\n  >,\n  'onUpdate:formattedValue': [Function, Array] as PropType<\n    MaybeArray<OnUpdateFormattedValue>\n  >,\n  onBlur: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onConfirm: [Function, Array] as PropType<\n    MaybeArray<(value: number & null, formattedValue: string & null) => void>\n  >,\n  onClear: Function as PropType<() => void>,\n  onFocus: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  // https://www.iana.org/time-zones\n  timeZone: String,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  hours: {\n    type: [Number, Array] as PropType<MaybeArray<number>>,\n    validator: (value: MaybeArray<number>) => validateUnits(value, 23)\n  },\n  minutes: {\n    type: [Number, Array] as PropType<MaybeArray<number>>,\n    validator: (value: MaybeArray<number>) => validateUnits(value, 59)\n  },\n  seconds: {\n    type: [Number, Array] as PropType<MaybeArray<number>>,\n    validator: (value: MaybeArray<number>) => validateUnits(value, 59)\n  },\n  use12Hours: Boolean,\n  // private\n  stateful: {\n    type: Boolean,\n    default: true\n  },\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n}\n\nexport type TimePickerProps = ExtractPublicPropTypes<typeof timePickerProps>\n\nexport interface TimePickerSlots {\n  default?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'TimePicker',\n  props: timePickerProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'time-picker',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      namespaceRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const { localeRef, dateLocaleRef } = useLocale('TimePicker')\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as TimePickerSize\n        const configSize = mergedComponentPropsRef?.value?.TimePicker?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    const themeRef = useTheme(\n      'TimePicker',\n      '-time-picker',\n      style,\n      timePickerLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const keyboardState = useKeyboard()\n\n    const inputInstRef = ref<InputInst | null>(null)\n    const panelInstRef = ref<PanelRef | null>(null)\n\n    const dateFnsOptionsRef = computed(() => {\n      return {\n        locale: dateLocaleRef.value.locale\n      }\n    })\n\n    function getTimestampFromFormattedValue(\n      value: string | null\n    ): number | null {\n      if (value === null)\n        return null\n      return strictParse(\n        value,\n        props.valueFormat || props.format,\n        new Date(),\n        dateFnsOptionsRef.value\n      ).getTime()\n    }\n\n    const { defaultValue, defaultFormattedValue } = props\n\n    const uncontrolledValueRef = ref(\n      defaultFormattedValue !== undefined\n        ? getTimestampFromFormattedValue(defaultFormattedValue)\n        : defaultValue\n    )\n    const mergedValueRef = computed(() => {\n      const { formattedValue } = props\n      if (formattedValue !== undefined) {\n        return getTimestampFromFormattedValue(formattedValue)\n      }\n      const { value } = props\n      if (value !== undefined) {\n        return value\n      }\n      return uncontrolledValueRef.value\n    })\n\n    const mergedFormatRef = computed(() => {\n      const { timeZone } = props\n      if (timeZone) {\n        return (\n          date: Date | number,\n          format: string,\n          options?: {\n            locale?: Locale\n          }\n        ) => {\n          return formatInTimeZone(date, timeZone, format, options)\n        }\n      }\n      else {\n        return (\n          date: Date | number,\n          _format: string,\n          options?: {\n            locale?: Locale\n          }\n        ) => {\n          return format(date, _format, options)\n        }\n      }\n    })\n\n    const displayTimeStringRef = ref('')\n    watch(\n      () => props.timeZone,\n      () => {\n        const mergedValue = mergedValueRef.value\n        displayTimeStringRef.value\n          = mergedValue === null\n            ? ''\n            : mergedFormatRef.value(\n                mergedValue,\n                props.format,\n                dateFnsOptionsRef.value\n              )\n      },\n      {\n        immediate: true\n      }\n    )\n    const uncontrolledShowRef = ref(false)\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n    const memorizedValueRef = ref(mergedValueRef.value)\n    const transitionDisabledRef = ref(false)\n\n    const localizedClearRef = computed(() => {\n      return localeRef.value.clear\n    })\n    const localizedNowRef = computed(() => {\n      return localeRef.value.now\n    })\n    const localizedPlaceholderRef = computed(() => {\n      if (props.placeholder !== undefined)\n        return props.placeholder\n      return localeRef.value.placeholder\n    })\n    const localizedNegativeTextRef = computed(() => {\n      return localeRef.value.negativeText\n    })\n    const localizedPositiveTextRef = computed(() => {\n      return localeRef.value.positiveText\n    })\n    const hourInFormatRef = computed(() => {\n      return /H|h|K|k/.test(props.format)\n    })\n    const minuteInFormatRef = computed(() => {\n      return props.format.includes('m')\n    })\n    const secondInFormatRef = computed(() => {\n      return props.format.includes('s')\n    })\n    const hourValueRef = computed(() => {\n      const { value } = mergedValueRef\n      if (value === null)\n        return null\n      return Number(mergedFormatRef.value(value, 'HH', dateFnsOptionsRef.value))\n    })\n    const minuteValueRef = computed(() => {\n      const { value } = mergedValueRef\n      if (value === null)\n        return null\n      return Number(mergedFormatRef.value(value, 'mm', dateFnsOptionsRef.value))\n    })\n    const secondValueRef = computed(() => {\n      const { value } = mergedValueRef\n      if (value === null)\n        return null\n      return Number(mergedFormatRef.value(value, 'ss', dateFnsOptionsRef.value))\n    })\n    const isHourInvalidRef = computed(() => {\n      const { isHourDisabled } = props\n      if (hourValueRef.value === null)\n        return false\n      if (!isTimeInStep(hourValueRef.value, 'hours', props.hours))\n        return true\n      if (!isHourDisabled)\n        return false\n      return isHourDisabled(hourValueRef.value)\n    })\n    const isMinuteInvalidRef = computed(() => {\n      const { value: minuteValue } = minuteValueRef\n      const { value: hourValue } = hourValueRef\n      if (minuteValue === null || hourValue === null)\n        return false\n      if (!isTimeInStep(minuteValue, 'minutes', props.minutes))\n        return true\n      const { isMinuteDisabled } = props\n      if (!isMinuteDisabled)\n        return false\n      return isMinuteDisabled(minuteValue, hourValue)\n    })\n    const isSecondInvalidRef = computed(() => {\n      const { value: minuteValue } = minuteValueRef\n      const { value: hourValue } = hourValueRef\n      const { value: secondValue } = secondValueRef\n      if (secondValue === null || minuteValue === null || hourValue === null) {\n        return false\n      }\n      if (!isTimeInStep(secondValue, 'seconds', props.seconds))\n        return true\n      const { isSecondDisabled } = props\n      if (!isSecondDisabled)\n        return false\n      return isSecondDisabled(secondValue, minuteValue, hourValue)\n    })\n    const isValueInvalidRef = computed(() => {\n      return (\n        isHourInvalidRef.value\n        || isMinuteInvalidRef.value\n        || isSecondInvalidRef.value\n      )\n    })\n    const mergedAttrSizeRef = computed(() => {\n      return props.format.length + 4\n    })\n    const amPmValueRef = computed(() => {\n      const { value } = mergedValueRef\n      if (value === null)\n        return null\n      return getHours(value) < 12 ? 'am' : 'pm'\n    })\n    function doUpdateFormattedValue(\n      value: string | null,\n      timestampValue: number | null\n    ): void {\n      const {\n        onUpdateFormattedValue,\n        'onUpdate:formattedValue': _onUpdateFormattedValue\n      } = props\n      if (onUpdateFormattedValue) {\n        call(\n          onUpdateFormattedValue as OnUpdateFormattedValueImpl,\n          value,\n          timestampValue\n        )\n      }\n      if (_onUpdateFormattedValue) {\n        call(\n          _onUpdateFormattedValue as OnUpdateFormattedValueImpl,\n          value,\n          timestampValue\n        )\n      }\n    }\n    function createFormattedValue(value: number | null): string | null {\n      return value === null\n        ? null\n        : mergedFormatRef.value(value, props.valueFormat || props.format)\n    }\n    function doUpdateValue(value: number | null): void {\n      const {\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      const formattedValue = createFormattedValue(value)\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value, formattedValue)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, formattedValue)\n      }\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value, formattedValue)\n      doUpdateFormattedValue(formattedValue, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormChange()\n      nTriggerFormInput()\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doConfirm(): void {\n      const { onConfirm } = props\n      if (onConfirm) {\n        call(\n          onConfirm,\n          mergedValueRef.value as number & null,\n          createFormattedValue(mergedValueRef.value) as string & null\n        )\n      }\n    }\n    function handleTimeInputClear(e: MouseEvent): void {\n      e.stopPropagation()\n      doUpdateValue(null)\n      deriveInputValue(null)\n      props.onClear?.()\n    }\n    function handleFocusDetectorFocus(): void {\n      closePanel({\n        returnFocus: true\n      })\n    }\n    // clear selected time\n    function clearSelectedValue(): void {\n      doUpdateValue(null)\n      deriveInputValue(null)\n      closePanel({\n        returnFocus: true\n      })\n    }\n    function handleInputKeydown(e: KeyboardEvent): void {\n      if (e.key === 'Escape' && mergedShowRef.value) {\n        markEventEffectPerformed(e)\n        // closePanel will be called in onDeactivated\n      }\n    }\n    function handleMenuKeydown(e: KeyboardEvent): void {\n      switch (e.key) {\n        case 'Escape':\n          if (mergedShowRef.value) {\n            markEventEffectPerformed(e)\n            closePanel({\n              returnFocus: true\n            })\n          }\n          break\n        case 'Tab':\n          if (keyboardState.shift && e.target === panelInstRef.value?.$el) {\n            e.preventDefault()\n            closePanel({\n              returnFocus: true\n            })\n          }\n          break\n      }\n    }\n    function disableTransitionOneTick(): void {\n      transitionDisabledRef.value = true\n      void nextTick(() => {\n        transitionDisabledRef.value = false\n      })\n    }\n    function handleTriggerClick(e: MouseEvent): void {\n      if (mergedDisabledRef.value || happensIn(e, 'clear'))\n        return\n      if (!mergedShowRef.value) {\n        openPanel()\n      }\n    }\n    function handleHourClick(hour: ItemValue): void {\n      if (typeof hour === 'string')\n        return\n      if (mergedValueRef.value === null) {\n        doUpdateValue(getTime(setHours(startOfHour(new Date()), hour)))\n      }\n      else {\n        doUpdateValue(getTime(setHours(mergedValueRef.value, hour)))\n      }\n    }\n    function handleMinuteClick(minute: ItemValue): void {\n      if (typeof minute === 'string')\n        return\n      if (mergedValueRef.value === null) {\n        doUpdateValue(getTime(setMinutes(startOfMinute(new Date()), minute)))\n      }\n      else {\n        doUpdateValue(getTime(setMinutes(mergedValueRef.value, minute)))\n      }\n    }\n    function handleSecondClick(second: ItemValue): void {\n      if (typeof second === 'string')\n        return\n      if (mergedValueRef.value === null) {\n        doUpdateValue(getTime(setSeconds(startOfSecond(new Date()), second)))\n      }\n      else {\n        doUpdateValue(getTime(setSeconds(mergedValueRef.value, second)))\n      }\n    }\n    function handleAmPmClick(amPm: ItemValue): void {\n      const { value: mergedValue } = mergedValueRef\n      if (mergedValue === null) {\n        const now = new Date()\n        const hours = getHours(now)\n        if (amPm === 'pm' && hours < 12) {\n          doUpdateValue(getTime(setHours(now, hours + 12)))\n        }\n        else if (amPm === 'am' && hours >= 12) {\n          doUpdateValue(getTime(setHours(now, hours - 12)))\n        }\n        doUpdateValue(getTime(now))\n      }\n      else {\n        const hours = getHours(mergedValue)\n        if (amPm === 'pm' && hours < 12) {\n          doUpdateValue(getTime(setHours(mergedValue, hours + 12)))\n        }\n        else if (amPm === 'am' && hours >= 12) {\n          doUpdateValue(getTime(setHours(mergedValue, hours - 12)))\n        }\n      }\n    }\n    function deriveInputValue(time?: null | number): void {\n      if (time === undefined)\n        time = mergedValueRef.value\n      if (time === null) {\n        displayTimeStringRef.value = ''\n      }\n      else {\n        displayTimeStringRef.value = mergedFormatRef.value(\n          time,\n          props.format,\n          dateFnsOptionsRef.value\n        )\n      }\n    }\n    function handleTimeInputFocus(e: FocusEvent): void {\n      if (isInternalFocusSwitch(e))\n        return\n      doFocus(e)\n    }\n    function handleTimeInputBlur(e: FocusEvent): void {\n      if (isInternalFocusSwitch(e))\n        return\n      if (mergedShowRef.value) {\n        const panelEl = panelInstRef.value?.$el\n        if (!panelEl?.contains(e.relatedTarget as Node)) {\n          deriveInputValue()\n          doBlur(e)\n          closePanel({\n            returnFocus: false\n          })\n        }\n      }\n      else {\n        deriveInputValue()\n        doBlur(e)\n      }\n    }\n\n    function handleTimeInputActivate(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (!mergedShowRef.value) {\n        openPanel()\n      }\n    }\n    function handleTimeInputDeactivate(): void {\n      if (mergedDisabledRef.value)\n        return\n      deriveInputValue()\n      closePanel({\n        returnFocus: false\n      })\n    }\n    function scrollTimer(): void {\n      if (!panelInstRef.value)\n        return\n      const { hourScrollRef, minuteScrollRef, secondScrollRef, amPmScrollRef }\n        = panelInstRef.value\n      ;[hourScrollRef, minuteScrollRef, secondScrollRef, amPmScrollRef].forEach(\n        (itemScrollRef) => {\n          if (!itemScrollRef)\n            return\n          const activeItemEl\n            = itemScrollRef.contentRef?.querySelector('[data-active]')\n          if (activeItemEl) {\n            itemScrollRef.scrollTo({\n              top: (activeItemEl as HTMLElement).offsetTop\n            })\n          }\n        }\n      )\n    }\n    function doUpdateShow(value: boolean): void {\n      uncontrolledShowRef.value = value\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n    }\n    function isInternalFocusSwitch(e: FocusEvent): boolean {\n      return !!(\n        inputInstRef.value?.wrapperElRef?.contains(e.relatedTarget as Node)\n        || panelInstRef.value?.$el.contains(e.relatedTarget as Node)\n      )\n    }\n    function openPanel(): void {\n      memorizedValueRef.value = mergedValueRef.value\n      doUpdateShow(true)\n      void nextTick(scrollTimer)\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      if (\n        mergedShowRef.value\n        && !inputInstRef.value?.wrapperElRef?.contains(\n          getPreciseEventTarget(e) as Node | null\n        )\n      ) {\n        closePanel({\n          returnFocus: false\n        })\n      }\n    }\n    function closePanel({ returnFocus }: { returnFocus: boolean }): void {\n      if (mergedShowRef.value) {\n        doUpdateShow(false)\n        if (returnFocus) {\n          inputInstRef.value?.focus()\n        }\n      }\n    }\n    function handleTimeInputUpdateValue(v: string): void {\n      if (v === '') {\n        doUpdateValue(null)\n        return\n      }\n      const time = strictParse(\n        v,\n        props.format,\n        new Date(),\n        dateFnsOptionsRef.value\n      )\n      displayTimeStringRef.value = v\n      if (isValid(time)) {\n        const { value: mergedValue } = mergedValueRef\n        if (mergedValue !== null) {\n          const newTime = set(mergedValue, {\n            hours: getHours(time),\n            minutes: getMinutes(time),\n            seconds: getSeconds(time),\n            milliseconds: getMilliseconds(time)\n          })\n          doUpdateValue(getTime(newTime))\n        }\n        else {\n          doUpdateValue(getTime(time))\n        }\n      }\n    }\n    function handleCancelClick(): void {\n      doUpdateValue(memorizedValueRef.value)\n      doUpdateShow(false)\n    }\n    function handleNowClick(): void {\n      const now = new Date()\n      const getNowTime = {\n        hours: getHours,\n        minutes: getMinutes,\n        seconds: getSeconds\n      }\n      const [mergeHours, mergeMinutes, mergeSeconds] = (\n        ['hours', 'minutes', 'seconds'] as const\n      ).map(i =>\n        !props[i] || isTimeInStep(getNowTime[i](now), i, props[i])\n          ? getNowTime[i](now)\n          : findSimilarTime(getNowTime[i](now), i, props[i])\n      )\n      const newValue = setSeconds(\n        setMinutes(\n          setHours(\n            mergedValueRef.value ? mergedValueRef.value : getTime(now),\n            mergeHours\n          ),\n          mergeMinutes\n        ),\n        mergeSeconds\n      )\n      doUpdateValue(getTime(newValue))\n    }\n    function handleConfirmClick(): void {\n      deriveInputValue()\n      doConfirm()\n      closePanel({\n        returnFocus: true\n      })\n    }\n    function handleMenuFocusOut(e: FocusEvent): void {\n      if (isInternalFocusSwitch(e))\n        return\n      deriveInputValue()\n      doBlur(e)\n      closePanel({\n        returnFocus: false\n      })\n    }\n    watch(mergedValueRef, (value) => {\n      deriveInputValue(value)\n      disableTransitionOneTick()\n      void nextTick(scrollTimer)\n    })\n    watch(mergedShowRef, () => {\n      if (isValueInvalidRef.value) {\n        doUpdateValue(memorizedValueRef.value)\n      }\n    })\n    provide(timePickerInjectionKey, {\n      mergedThemeRef: themeRef,\n      mergedClsPrefixRef\n    })\n    const exposedMethods: TimePickerInst = {\n      focus: () => {\n        inputInstRef.value?.focus()\n      },\n      blur: () => {\n        inputInstRef.value?.blur()\n      }\n    }\n    const triggerCssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { iconColor, iconColorDisabled }\n      } = themeRef.value\n      return {\n        '--n-icon-color-override': iconColor,\n        '--n-icon-color-disabled-override': iconColorDisabled,\n        '--n-bezier': cubicBezierEaseInOut\n      }\n    })\n    const triggerThemeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'time-picker-trigger',\n          undefined,\n          triggerCssVarsRef,\n          props\n        )\n      : undefined\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          panelColor,\n          itemTextColor,\n          itemTextColorActive,\n          itemColorHover,\n          panelDividerColor,\n          panelBoxShadow,\n          itemOpacityDisabled,\n          borderRadius,\n          itemFontSize,\n          itemWidth,\n          itemHeight,\n          panelActionPadding,\n          itemBorderRadius\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-item-color-hover': itemColorHover,\n        '--n-item-font-size': itemFontSize,\n        '--n-item-height': itemHeight,\n        '--n-item-opacity-disabled': itemOpacityDisabled,\n        '--n-item-text-color': itemTextColor,\n        '--n-item-text-color-active': itemTextColorActive,\n        '--n-item-width': itemWidth,\n        '--n-panel-action-padding': panelActionPadding,\n        '--n-panel-box-shadow': panelBoxShadow,\n        '--n-panel-color': panelColor,\n        '--n-panel-divider-color': panelDividerColor,\n        '--n-item-border-radius': itemBorderRadius\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('time-picker', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      focus: exposedMethods.focus,\n      blur: exposedMethods.blur,\n      mergedStatus: mergedStatusRef,\n      mergedBordered: mergedBorderedRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      isMounted: useIsMounted(),\n      // reduce dts: string ref only, type unused in render\n      inputInstRef: inputInstRef as unknown,\n      panelInstRef: panelInstRef as unknown,\n      adjustedTo: useAdjustedTo(props),\n      mergedShow: mergedShowRef,\n      localizedClear: localizedClearRef,\n      localizedNow: localizedNowRef,\n      localizedPlaceholder: localizedPlaceholderRef,\n      localizedNegativeText: localizedNegativeTextRef,\n      localizedPositiveText: localizedPositiveTextRef,\n      hourInFormat: hourInFormatRef,\n      minuteInFormat: minuteInFormatRef,\n      secondInFormat: secondInFormatRef,\n      mergedAttrSize: mergedAttrSizeRef,\n      displayTimeString: displayTimeStringRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      isValueInvalid: isValueInvalidRef,\n      isHourInvalid: isHourInvalidRef,\n      isMinuteInvalid: isMinuteInvalidRef,\n      isSecondInvalid: isSecondInvalidRef,\n      transitionDisabled: transitionDisabledRef,\n      hourValue: hourValueRef,\n      minuteValue: minuteValueRef,\n      secondValue: secondValueRef,\n      amPmValue: amPmValueRef,\n      handleInputKeydown,\n      handleTimeInputFocus,\n      handleTimeInputBlur,\n      handleNowClick,\n      handleConfirmClick,\n      handleTimeInputUpdateValue,\n      handleMenuFocusOut,\n      handleCancelClick,\n      handleClickOutside,\n      handleTimeInputActivate,\n      handleTimeInputDeactivate,\n      handleHourClick,\n      handleMinuteClick,\n      handleSecondClick,\n      handleAmPmClick,\n      handleTimeInputClear,\n      handleFocusDetectorFocus,\n      handleMenuKeydown,\n      handleTriggerClick,\n      mergedTheme: themeRef,\n      triggerCssVars: inlineThemeDisabled\n        ? undefined\n        : (triggerCssVarsRef as Ref<CSSProperties>),\n      triggerThemeClass: triggerThemeClassHandle?.themeClass,\n      triggerOnRender: triggerThemeClassHandle?.onRender,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      clearSelectedValue\n    }\n  },\n  render() {\n    const { mergedClsPrefix, $slots, triggerOnRender } = this\n    triggerOnRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-time-picker`, this.triggerThemeClass]}\n        style={this.triggerCssVars as CSSProperties}\n      >\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => (\n                    <NInput\n                      ref=\"inputInstRef\"\n                      status={this.mergedStatus}\n                      value={this.displayTimeString}\n                      bordered={this.mergedBordered}\n                      passivelyActivated\n                      attrSize={this.mergedAttrSize}\n                      theme={this.mergedTheme.peers.Input}\n                      themeOverrides={this.mergedTheme.peerOverrides.Input}\n                      stateful={this.stateful}\n                      size={this.mergedSize}\n                      placeholder={this.localizedPlaceholder}\n                      clearable={this.clearable}\n                      disabled={this.mergedDisabled}\n                      textDecoration={\n                        this.isValueInvalid ? 'line-through' : undefined\n                      }\n                      onFocus={this.handleTimeInputFocus}\n                      onBlur={this.handleTimeInputBlur}\n                      onActivate={this.handleTimeInputActivate}\n                      onDeactivate={this.handleTimeInputDeactivate}\n                      onUpdateValue={this.handleTimeInputUpdateValue}\n                      onClear={this.handleTimeInputClear}\n                      internalDeactivateOnEnter\n                      internalForceFocus={this.mergedShow}\n                      readonly={this.inputReadonly || this.mergedDisabled}\n                      onClick={this.handleTriggerClick}\n                      onKeydown={this.handleInputKeydown}\n                    >\n                      {this.showIcon\n                        ? {\n                            [this.clearable\n                              ? 'clear-icon-placeholder'\n                              : 'suffix']: () => (\n                              <NBaseIcon\n                                clsPrefix={mergedClsPrefix}\n                                class={`${mergedClsPrefix}-time-picker-icon`}\n                              >\n                                {{\n                                  default: () =>\n                                    $slots.icon ? $slots.icon() : <TimeIcon />\n                                }}\n                              </NBaseIcon>\n                            )\n                          }\n                        : null}\n                    </NInput>\n                  )\n                }}\n              </VTarget>,\n              <VFollower\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                show={this.mergedShow}\n                to={this.adjustedTo}\n                containerClass={this.namespace}\n                placement={this.placement}\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                    >\n                      {{\n                        default: () => {\n                          if (this.mergedShow) {\n                            this.onRender?.()\n                            return withDirectives(\n                              <Panel\n                                ref=\"panelInstRef\"\n                                actions={this.actions}\n                                class={this.themeClass}\n                                style={this.cssVars as CSSProperties}\n                                seconds={this.seconds}\n                                minutes={this.minutes}\n                                hours={this.hours}\n                                transitionDisabled={this.transitionDisabled}\n                                hourValue={this.hourValue}\n                                showHour={this.hourInFormat}\n                                isHourInvalid={this.isHourInvalid}\n                                isHourDisabled={this.isHourDisabled}\n                                minuteValue={this.minuteValue}\n                                showMinute={this.minuteInFormat}\n                                isMinuteInvalid={this.isMinuteInvalid}\n                                isMinuteDisabled={this.isMinuteDisabled}\n                                secondValue={this.secondValue}\n                                amPmValue={this.amPmValue}\n                                showSecond={this.secondInFormat}\n                                isSecondInvalid={this.isSecondInvalid}\n                                isSecondDisabled={this.isSecondDisabled}\n                                isValueInvalid={this.isValueInvalid}\n                                clearText={this.localizedClear}\n                                nowText={this.localizedNow}\n                                confirmText={this.localizedPositiveText}\n                                use12Hours={this.use12Hours}\n                                onFocusout={this.handleMenuFocusOut}\n                                onKeydown={this.handleMenuKeydown}\n                                onHourClick={this.handleHourClick}\n                                onMinuteClick={this.handleMinuteClick}\n                                onSecondClick={this.handleSecondClick}\n                                onAmPmClick={this.handleAmPmClick}\n                                onNowClick={this.handleNowClick}\n                                onConfirmClick={this.handleConfirmClick}\n                                onClearClick={this.clearSelectedValue}\n                                onFocusDetectorFocus={\n                                  this.handleFocusDetectorFocus\n                                }\n                              />,\n                              [\n                                [\n                                  clickoutside,\n                                  this.handleClickOutside,\n                                  undefined,\n                                  { capture: true }\n                                ]\n                              ]\n                            )\n                          }\n                          return null\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import type {\n  DatePickerClearSlotProps,\n  DatePickerConfirmSlotProps,\n  DatePickerNowSlotProps\n} from '../public-types'\nimport { defineComponent, h } from 'vue'\nimport { NBaseFocusDetector } from '../../../_internal'\nimport {\n  BackwardIcon,\n  FastBackwardIcon,\n  FastForwardIcon,\n  ForwardIcon\n} from '../../../_internal/icons'\nimport { resolveSlot, resolveSlotWithTypedProps } from '../../../_utils'\nimport { NButton, NxButton } from '../../../button'\nimport { NInput } from '../../../input'\nimport { NTimePicker } from '../../../time-picker'\nimport PanelHeader from './panelHeader'\nimport { useCalendar, useCalendarProps } from './use-calendar'\n\n/**\n * DateTime Panel\n * Update picker value on:\n * 1. confirm click\n * 2. clear click\n */\nexport default defineComponent({\n  name: 'DateTimePanel',\n  props: useCalendarProps,\n  setup(props) {\n    return useCalendar(props, 'datetime')\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      timePickerProps,\n      datePickerSlots,\n      onRender\n    } = this\n    onRender?.()\n\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--datetime`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onKeydown={this.handlePanelKeyDown}\n        onFocus={this.handlePanelFocus}\n      >\n        <div class={`${mergedClsPrefix}-date-panel-header`}>\n          <NInput\n            value={this.dateInputValue}\n            theme={mergedTheme.peers.Input}\n            themeOverrides={mergedTheme.peerOverrides.Input}\n            stateful={false}\n            size={this.timePickerSize}\n            readonly={this.inputReadonly}\n            class={`${mergedClsPrefix}-date-panel-date-input`}\n            textDecoration={this.isDateInvalid ? 'line-through' : ''}\n            placeholder={this.locale.selectDate}\n            onBlur={this.handleDateInputBlur}\n            onUpdateValue={this.handleDateInput}\n          />\n          <NTimePicker\n            size={this.timePickerSize}\n            placeholder={this.locale.selectTime}\n            format={this.timePickerFormat}\n            {...(Array.isArray(timePickerProps) ? undefined : timePickerProps)}\n            showIcon={false}\n            to={false}\n            theme={mergedTheme.peers.TimePicker}\n            themeOverrides={mergedTheme.peerOverrides.TimePicker}\n            value={Array.isArray(this.value) ? null : this.value}\n            isHourDisabled={this.isHourDisabled}\n            isMinuteDisabled={this.isMinuteDisabled}\n            isSecondDisabled={this.isSecondDisabled}\n            onUpdateValue={this.handleTimePickerChange}\n            stateful={false}\n          />\n        </div>\n        <div class={`${mergedClsPrefix}-date-panel-calendar`}>\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.prevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.prevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.calendarValue}\n              onUpdateValue={this.onUpdateCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              calendarMonth={this.calendarMonth}\n              calendarYear={this.calendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.nextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.nextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.dateArray.map((dateItem, i) => (\n              <div\n                data-n-date\n                key={i}\n                class={[\n                  `${mergedClsPrefix}-date-panel-date`,\n                  {\n                    [`${mergedClsPrefix}-date-panel-date--current`]:\n                      dateItem.isCurrentDate,\n                    [`${mergedClsPrefix}-date-panel-date--selected`]:\n                      dateItem.selected,\n                    [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                      !dateItem.inCurrentMonth,\n                    [`${mergedClsPrefix}-date-panel-date--disabled`]:\n                      this.mergedIsDateDisabled(dateItem.ts, {\n                        type: 'date',\n                        year: dateItem.dateObject.year,\n                        month: dateItem.dateObject.month,\n                        date: dateItem.dateObject.date\n                      })\n                  }\n                ]}\n                onClick={() => {\n                  this.handleDateClick(dateItem)\n                }}\n              >\n                <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                {dateItem.dateObject.date}\n                {dateItem.isCurrentDate ? (\n                  <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                ) : null}\n              </div>\n            ))}\n          </div>\n        </div>\n        {this.datePickerSlots.footer ? (\n          <div class={`${mergedClsPrefix}-date-panel-footer`}>\n            {this.datePickerSlots.footer()}\n          </div>\n        ) : null}\n        {this.actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut) ? null : (\n                    <NxButton\n                      size=\"tiny\"\n                      onMouseenter={() => {\n                        this.handleSingleShortcutMouseenter(shortcut)\n                      }}\n                      onClick={() => {\n                        this.handleSingleShortcutClick(shortcut)\n                      }}\n                      onMouseleave={() => {\n                        this.handleShortcutMouseleave()\n                      }}\n                    >\n                      {{ default: () => key }}\n                    </NxButton>\n                  )\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {this.actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.clear,\n                    {\n                      onClear: this.clearSelectedDateTime,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.clearSelectedDateTime}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('now')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.now,\n                    {\n                      onNow: this.handleNowClick,\n                      text: this.locale.now\n                    } satisfies DatePickerNowSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleNowClick}\n                      >\n                        {{ default: () => this.locale.now }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('confirm')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.confirm,\n                    {\n                      onConfirm: this.handleConfirmClick,\n                      disabled: this.isDateInvalid,\n                      text: this.locale.confirm\n                    } satisfies DatePickerConfirmSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        type=\"primary\"\n                        disabled={this.isDateInvalid}\n                        onClick={this.handleConfirmClick}\n                      >\n                        {{ default: () => this.locale.confirm }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import type {\n  DatePickerClearSlotProps,\n  DatePickerConfirmSlotProps\n} from '../public-types'\nimport { defineComponent, h, watchEffect } from 'vue'\nimport { NBaseFocusDetector } from '../../../_internal'\nimport {\n  BackwardIcon,\n  FastBackwardIcon,\n  FastForwardIcon,\n  ForwardIcon\n} from '../../../_internal/icons'\nimport {\n  resolveSlot,\n  resolveSlotWithTypedProps,\n  warnOnce\n} from '../../../_utils'\nimport { NButton, NxButton } from '../../../button'\nimport { NInput } from '../../../input'\nimport { NTimePicker } from '../../../time-picker'\nimport PanelHeader from './panelHeader'\nimport { useDualCalendar, useDualCalendarProps } from './use-dual-calendar'\n\nexport default defineComponent({\n  name: 'DateTimeRangePanel',\n  props: useDualCalendarProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.actions?.includes('now')) {\n          warnOnce(\n            'date-picker',\n            'The `now` action is not supported for n-date-picker of `datetimerange` type'\n          )\n        }\n      })\n    }\n    return useDualCalendar(props, 'datetimerange')\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      timePickerProps,\n      onRender,\n      datePickerSlots\n    } = this\n    onRender?.()\n\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--datetimerange`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onKeydown={this.handlePanelKeyDown}\n        onFocus={this.handlePanelFocus}\n      >\n        <div class={`${mergedClsPrefix}-date-panel-header`}>\n          <NInput\n            value={this.startDateDisplayString}\n            theme={mergedTheme.peers.Input}\n            themeOverrides={mergedTheme.peerOverrides.Input}\n            size={this.timePickerSize}\n            stateful={false}\n            readonly={this.inputReadonly}\n            class={`${mergedClsPrefix}-date-panel-date-input`}\n            textDecoration={this.isStartValueInvalid ? 'line-through' : ''}\n            placeholder={this.locale.selectDate}\n            onBlur={this.handleStartDateInputBlur}\n            onUpdateValue={this.handleStartDateInput}\n          />\n          <NTimePicker\n            placeholder={this.locale.selectTime}\n            format={this.timePickerFormat}\n            size={this.timePickerSize}\n            {...(Array.isArray(timePickerProps)\n              ? timePickerProps[0]\n              : timePickerProps)}\n            value={this.startTimeValue}\n            to={false}\n            showIcon={false}\n            disabled={this.isSelecting}\n            theme={mergedTheme.peers.TimePicker}\n            themeOverrides={mergedTheme.peerOverrides.TimePicker}\n            stateful={false}\n            isHourDisabled={this.isStartHourDisabled}\n            isMinuteDisabled={this.isStartMinuteDisabled}\n            isSecondDisabled={this.isStartSecondDisabled}\n            onUpdateValue={this.handleStartTimePickerChange}\n          />\n          <NInput\n            value={this.endDateInput}\n            theme={mergedTheme.peers.Input}\n            themeOverrides={mergedTheme.peerOverrides.Input}\n            stateful={false}\n            size={this.timePickerSize}\n            readonly={this.inputReadonly}\n            class={`${mergedClsPrefix}-date-panel-date-input`}\n            textDecoration={this.isEndValueInvalid ? 'line-through' : ''}\n            placeholder={this.locale.selectDate}\n            onBlur={this.handleEndDateInputBlur}\n            onUpdateValue={this.handleEndDateInput}\n          />\n          <NTimePicker\n            placeholder={this.locale.selectTime}\n            format={this.timePickerFormat}\n            size={this.timePickerSize}\n            {...(Array.isArray(timePickerProps)\n              ? timePickerProps[1]\n              : timePickerProps)}\n            disabled={this.isSelecting}\n            showIcon={false}\n            theme={mergedTheme.peers.TimePicker}\n            themeOverrides={mergedTheme.peerOverrides.TimePicker}\n            to={false}\n            stateful={false}\n            value={this.endTimeValue}\n            isHourDisabled={this.isEndHourDisabled}\n            isMinuteDisabled={this.isEndMinuteDisabled}\n            isSecondDisabled={this.isEndSecondDisabled}\n            onUpdateValue={this.handleEndTimePickerChange}\n          />\n        </div>\n        <div\n          ref=\"startDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--start`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.startCalendarPrevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.startCalendarPrevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.startCalendarDateTime}\n              onUpdateValue={this.onUpdateStartCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              calendarMonth={this.startCalendarMonth}\n              calendarYear={this.startCalendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.startCalendarNextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.startCalendarNextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel__divider`} />\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.startDateArray.map((dateItem, i) => {\n              const disabled = this.mergedIsDateDisabled(dateItem.ts)\n              return (\n                <div\n                  data-n-date\n                  key={i}\n                  class={[\n                    `${mergedClsPrefix}-date-panel-date`,\n                    {\n                      [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                        !dateItem.inCurrentMonth,\n                      [`${mergedClsPrefix}-date-panel-date--current`]:\n                        dateItem.isCurrentDate,\n                      [`${mergedClsPrefix}-date-panel-date--selected`]:\n                        dateItem.selected,\n                      [`${mergedClsPrefix}-date-panel-date--covered`]:\n                        dateItem.inSpan,\n                      [`${mergedClsPrefix}-date-panel-date--start`]:\n                        dateItem.startOfSpan,\n                      [`${mergedClsPrefix}-date-panel-date--end`]:\n                        dateItem.endOfSpan,\n                      [`${mergedClsPrefix}-date-panel-date--disabled`]: disabled\n                    }\n                  ]}\n                  onClick={\n                    disabled\n                      ? undefined\n                      : () => {\n                          this.handleDateClick(dateItem)\n                        }\n                  }\n                  onMouseenter={\n                    disabled\n                      ? undefined\n                      : () => {\n                          this.handleDateMouseEnter(dateItem)\n                        }\n                  }\n                >\n                  <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                  {dateItem.dateObject.date}\n                  {dateItem.isCurrentDate ? (\n                    <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                  ) : null}\n                </div>\n              )\n            })}\n          </div>\n        </div>\n        <div class={`${mergedClsPrefix}-date-panel__vertical-divider`} />\n        <div\n          ref=\"endDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--end`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month`}>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-prev`}\n              onClick={this.endCalendarPrevYear}\n            >\n              {resolveSlot(datePickerSlots['prev-year'], () => [\n                <FastBackwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__prev`}\n              onClick={this.endCalendarPrevMonth}\n            >\n              {resolveSlot(datePickerSlots['prev-month'], () => [\n                <BackwardIcon />\n              ])}\n            </div>\n            <PanelHeader\n              fastYearSelect={this.fastYearSelect}\n              fastMonthSelect={this.fastMonthSelect}\n              monthBeforeYear={this.calendarMonthBeforeYear}\n              value={this.endCalendarDateTime}\n              onUpdateValue={this.onUpdateEndCalendarValue}\n              mergedClsPrefix={mergedClsPrefix}\n              monthYearSeparator={this.calendarHeaderMonthYearSeparator}\n              calendarMonth={this.endCalendarMonth}\n              calendarYear={this.endCalendarYear}\n            />\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__next`}\n              onClick={this.endCalendarNextMonth}\n            >\n              {resolveSlot(datePickerSlots['next-month'], () => [\n                <ForwardIcon />\n              ])}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-date-panel-month__fast-next`}\n              onClick={this.endCalendarNextYear}\n            >\n              {resolveSlot(datePickerSlots['next-year'], () => [\n                <FastForwardIcon />\n              ])}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel-weekdays`}>\n            {this.weekdays.map(weekday => (\n              <div\n                key={weekday}\n                class={`${mergedClsPrefix}-date-panel-weekdays__day`}\n              >\n                {weekday}\n              </div>\n            ))}\n          </div>\n          <div class={`${mergedClsPrefix}-date-panel__divider`} />\n          <div class={`${mergedClsPrefix}-date-panel-dates`}>\n            {this.endDateArray.map((dateItem, i) => {\n              const disabled = this.mergedIsDateDisabled(dateItem.ts)\n              return (\n                <div\n                  data-n-date\n                  key={i}\n                  class={[\n                    `${mergedClsPrefix}-date-panel-date`,\n                    {\n                      [`${mergedClsPrefix}-date-panel-date--excluded`]:\n                        !dateItem.inCurrentMonth,\n                      [`${mergedClsPrefix}-date-panel-date--current`]:\n                        dateItem.isCurrentDate,\n                      [`${mergedClsPrefix}-date-panel-date--selected`]:\n                        dateItem.selected,\n                      [`${mergedClsPrefix}-date-panel-date--covered`]:\n                        dateItem.inSpan,\n                      [`${mergedClsPrefix}-date-panel-date--start`]:\n                        dateItem.startOfSpan,\n                      [`${mergedClsPrefix}-date-panel-date--end`]:\n                        dateItem.endOfSpan,\n                      [`${mergedClsPrefix}-date-panel-date--disabled`]: disabled\n                    }\n                  ]}\n                  onClick={\n                    disabled\n                      ? undefined\n                      : () => {\n                          this.handleDateClick(dateItem)\n                        }\n                  }\n                  onMouseenter={\n                    disabled\n                      ? undefined\n                      : () => {\n                          this.handleDateMouseEnter(dateItem)\n                        }\n                  }\n                >\n                  <div class={`${mergedClsPrefix}-date-panel-date__trigger`} />\n                  {dateItem.dateObject.date}\n                  {dateItem.isCurrentDate ? (\n                    <div class={`${mergedClsPrefix}-date-panel-date__sup`} />\n                  ) : null}\n                </div>\n              )\n            })}\n          </div>\n        </div>\n        {this.datePickerSlots.footer ? (\n          <div class={`${mergedClsPrefix}-date-panel-footer`}>\n            {this.datePickerSlots.footer()}\n          </div>\n        ) : null}\n        {this.actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut)\n                    || typeof shortcut === 'function' ? (\n                        <NxButton\n                          size=\"tiny\"\n                          onMouseenter={() => {\n                            this.handleRangeShortcutMouseenter(shortcut)\n                          }}\n                          onClick={() => {\n                            this.handleRangeShortcutClick(shortcut)\n                          }}\n                          onMouseleave={() => {\n                            this.handleShortcutMouseleave()\n                          }}\n                        >\n                          {{ default: () => key }}\n                        </NxButton>\n                      ) : null\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {this.actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.clear,\n                    {\n                      onClear: this.handleClearClick,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleClearClick}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('confirm')\n                ? resolveSlotWithTypedProps(\n                    datePickerSlots.confirm,\n                    {\n                      onConfirm: this.handleConfirmClick,\n                      disabled: this.isRangeInvalid || this.isSelecting,\n                      text: this.locale.confirm\n                    } satisfies DatePickerConfirmSlotProps,\n                    () => [\n                      <NButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        type=\"primary\"\n                        disabled={this.isRangeInvalid || this.isSelecting}\n                        onClick={this.handleConfirmClick}\n                      >\n                        {{ default: () => this.locale.confirm }}\n                      </NButton>\n                    ]\n                  )\n                : null}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import type { PropType, VNode } from 'vue'\nimport type {\n  DatePickerClearSlotProps,\n  DatePickerConfirmSlotProps\n} from '../public-types'\nimport type { MonthItem, QuarterItem, YearItem } from '../utils'\nimport { defineComponent, h, onMounted, watchEffect } from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NBaseFocusDetector, NScrollbar } from '../../../_internal'\nimport { useLocale } from '../../../_mixins'\nimport {\n  resolveSlotWithTypedProps,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../../_utils'\nimport { NxButton } from '../../../button'\nimport { MONTH_ITEM_HEIGHT } from '../config'\nimport { getMonthString, getQuarterString, getYearString } from '../utils'\nimport { useDualCalendar, useDualCalendarProps } from './use-dual-calendar'\n\nexport default defineComponent({\n  name: 'MonthRangePanel',\n  props: {\n    ...useDualCalendarProps,\n    type: {\n      type: String as PropType<'monthrange' | 'yearrange' | 'quarterrange'>,\n      required: true\n    }\n  },\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.actions?.includes('now')) {\n          warnOnce(\n            'date-picker',\n            'The `now` action is not supported for n-date-picker of '\n            + `${props.type}`\n            + 'type'\n          )\n        }\n      })\n    }\n    const useCalendarRef = useDualCalendar(props, props.type)\n    const { dateLocaleRef } = useLocale('DatePicker')\n    const renderItem = (\n      item: YearItem | MonthItem | QuarterItem,\n      i: number,\n      mergedClsPrefix: string,\n      type: 'start' | 'end'\n    ): VNode => {\n      const { handleColItemClick } = useCalendarRef\n      // TODO\n      const disabled = false\n      return (\n        <div\n          data-n-date\n          key={i}\n          class={[\n            `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item`,\n            item.isCurrent\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--current`,\n            item.selected\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--selected`,\n            disabled\n            && `${mergedClsPrefix}-date-panel-month-calendar__picker-col-item--disabled`\n          ]}\n          onClick={\n            disabled\n              ? undefined\n              : () => {\n                  handleColItemClick(item, type)\n                }\n          }\n        >\n          {item.type === 'month'\n            ? getMonthString(\n                item.dateObject.month,\n                item.monthFormat,\n                dateLocaleRef.value.locale\n              )\n            : item.type === 'quarter'\n              ? getQuarterString(\n                  item.dateObject.quarter,\n                  item.quarterFormat,\n                  dateLocaleRef.value.locale\n                )\n              : getYearString(\n                  item.dateObject.year,\n                  item.yearFormat,\n                  dateLocaleRef.value.locale\n                )}\n        </div>\n      )\n    }\n    onMounted(() => {\n      useCalendarRef.justifyColumnsScrollState()\n    })\n    return { ...useCalendarRef, renderItem }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      shortcuts,\n      type,\n      renderItem,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        ref=\"selfRef\"\n        tabindex={0}\n        class={[\n          `${mergedClsPrefix}-date-panel`,\n          `${mergedClsPrefix}-date-panel--daterange`,\n          !this.panel && `${mergedClsPrefix}-date-panel--shadow`,\n          this.themeClass\n        ]}\n        onKeydown={this.handlePanelKeyDown}\n        onFocus={this.handlePanelFocus}\n      >\n        <div\n          ref=\"startDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--start`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month-calendar`}>\n            <NScrollbar\n              ref=\"startYearScrollbarRef\"\n              class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n              theme={mergedTheme.peers.Scrollbar}\n              themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              container={() => this.virtualListContainer('start')}\n              content={() => this.virtualListContent('start')}\n              horizontalRailStyle={{ zIndex: 1 }}\n              verticalRailStyle={{ zIndex: 1 }}\n            >\n              {{\n                default: () => (\n                  <VirtualList\n                    ref=\"startYearVlRef\"\n                    items={this.startYearArray}\n                    itemSize={MONTH_ITEM_HEIGHT}\n                    showScrollbar={false}\n                    keyField=\"ts\"\n                    onScroll={this.handleStartYearVlScroll}\n                    paddingBottom={4}\n                  >\n                    {{\n                      default: ({\n                        item,\n                        index\n                      }: {\n                        item: YearItem\n                        index: number\n                      }) => {\n                        return renderItem(item, index, mergedClsPrefix, 'start')\n                      }\n                    }}\n                  </VirtualList>\n                )\n              }}\n            </NScrollbar>\n            {type === 'monthrange' || type === 'quarterrange' ? (\n              <div\n                class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n              >\n                <NScrollbar\n                  ref=\"startMonthScrollbarRef\"\n                  theme={mergedTheme.peers.Scrollbar}\n                  themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n                >\n                  {{\n                    default: () => [\n                      (type === 'monthrange'\n                        ? this.startMonthArray\n                        : this.startQuarterArray\n                      ).map((item, i) =>\n                        renderItem(item, i, mergedClsPrefix, 'start')\n                      ),\n                      type === 'monthrange' && (\n                        <div\n                          class={`${mergedClsPrefix}-date-panel-month-calendar__padding`}\n                        />\n                      )\n                    ]\n                  }}\n                </NScrollbar>\n              </div>\n            ) : null}\n          </div>\n        </div>\n        <div class={`${mergedClsPrefix}-date-panel__vertical-divider`} />\n        <div\n          ref=\"endDatesElRef\"\n          class={`${mergedClsPrefix}-date-panel-calendar ${mergedClsPrefix}-date-panel-calendar--end`}\n        >\n          <div class={`${mergedClsPrefix}-date-panel-month-calendar`}>\n            <NScrollbar\n              ref=\"endYearScrollbarRef\"\n              class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n              theme={mergedTheme.peers.Scrollbar}\n              themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n              container={() => this.virtualListContainer('end')}\n              content={() => this.virtualListContent('end')}\n              horizontalRailStyle={{ zIndex: 1 }}\n              verticalRailStyle={{ zIndex: 1 }}\n            >\n              {{\n                default: () => (\n                  <VirtualList\n                    ref=\"endYearVlRef\"\n                    items={this.endYearArray}\n                    itemSize={MONTH_ITEM_HEIGHT}\n                    showScrollbar={false}\n                    keyField=\"ts\"\n                    onScroll={this.handleEndYearVlScroll}\n                    paddingBottom={4}\n                  >\n                    {{\n                      default: ({\n                        item,\n                        index\n                      }: {\n                        item: YearItem\n                        index: number\n                      }) => {\n                        return renderItem(item, index, mergedClsPrefix, 'end')\n                      }\n                    }}\n                  </VirtualList>\n                )\n              }}\n            </NScrollbar>\n            {type === 'monthrange' || type === 'quarterrange' ? (\n              <div\n                class={`${mergedClsPrefix}-date-panel-month-calendar__picker-col`}\n              >\n                <NScrollbar\n                  ref=\"endMonthScrollbarRef\"\n                  theme={mergedTheme.peers.Scrollbar}\n                  themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n                >\n                  {{\n                    default: () => [\n                      (type === 'monthrange'\n                        ? this.endMonthArray\n                        : this.endQuarterArray\n                      ).map((item, i) =>\n                        renderItem(item, i, mergedClsPrefix, 'end')\n                      ),\n                      type === 'monthrange' && (\n                        <div\n                          class={`${mergedClsPrefix}-date-panel-month-calendar__padding`}\n                        />\n                      )\n                    ]\n                  }}\n                </NScrollbar>\n              </div>\n            ) : null}\n          </div>\n        </div>\n        {resolveWrappedSlot(this.datePickerSlots.footer, (children) => {\n          return children ? (\n            <div class={`${mergedClsPrefix}-date-panel-footer`}>{children}</div>\n          ) : null\n        })}\n        {this.actions?.length || shortcuts ? (\n          <div class={`${mergedClsPrefix}-date-panel-actions`}>\n            <div class={`${mergedClsPrefix}-date-panel-actions__prefix`}>\n              {shortcuts\n                && Object.keys(shortcuts).map((key) => {\n                  const shortcut = shortcuts[key]\n                  return Array.isArray(shortcut)\n                    || typeof shortcut === 'function' ? (\n                        <NxButton\n                          size=\"tiny\"\n                          onMouseenter={() => {\n                            this.handleRangeShortcutMouseenter(shortcut)\n                          }}\n                          onClick={() => {\n                            this.handleRangeShortcutClick(shortcut)\n                          }}\n                          onMouseleave={() => {\n                            this.handleShortcutMouseleave()\n                          }}\n                        >\n                          {{ default: () => key }}\n                        </NxButton>\n                      ) : null\n                })}\n            </div>\n            <div class={`${mergedClsPrefix}-date-panel-actions__suffix`}>\n              {this.actions?.includes('clear')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.clear,\n                    {\n                      onClear: this.handleClearClick,\n                      text: this.locale.clear\n                    } satisfies DatePickerClearSlotProps,\n                    () => [\n                      <NxButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        onClick={this.handleClearClick}\n                      >\n                        {{ default: () => this.locale.clear }}\n                      </NxButton>\n                    ]\n                  )\n                : null}\n              {this.actions?.includes('confirm')\n                ? resolveSlotWithTypedProps(\n                    this.datePickerSlots.confirm,\n                    {\n                      disabled: this.isRangeInvalid,\n                      onConfirm: this.handleConfirmClick,\n                      text: this.locale.confirm\n                    } satisfies DatePickerConfirmSlotProps,\n                    () => [\n                      <NxButton\n                        theme={mergedTheme.peers.Button}\n                        themeOverrides={mergedTheme.peerOverrides.Button}\n                        size=\"tiny\"\n                        type=\"primary\"\n                        disabled={this.isRangeInvalid}\n                        onClick={this.handleConfirmClick}\n                      >\n                        {{ default: () => this.locale.confirm }}\n                      </NxButton>\n                    ]\n                  )\n                : null}\n            </div>\n          </div>\n        ) : null}\n        <NBaseFocusDetector onFocus={this.handleFocusDetectorFocus} />\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { TimePickerProps } from '../../time-picker'\nimport type { DatePickerTheme, DatePickerThemeOverrides } from '../styles'\nimport type { DatePickerType } from './config'\nimport type {\n  DefaultTime,\n  FirstDayOfWeek,\n  FormattedValue,\n  IsDateDisabled,\n  IsTimeDisabled,\n  OnConfirm,\n  OnUpdateFormattedValue,\n  OnUpdateValue,\n  Shortcuts,\n  Value\n} from './interface'\nimport type { DatePickerSize } from './public-types'\nimport { useTheme } from '../../_mixins'\nimport { useAdjustedTo } from '../../_utils'\n\nexport const datePickerProps = {\n  ...(useTheme.props as ThemeProps<DatePickerTheme, DatePickerThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  clearable: Boolean,\n  fastYearSelect: Boolean,\n  fastMonthSelect: Boolean,\n  updateValueOnClose: Boolean,\n  calendarDayFormat: String,\n  calendarHeaderYearFormat: String,\n  calendarHeaderMonthFormat: String,\n  calendarHeaderMonthYearSeparator: {\n    type: String,\n    default: ' '\n  },\n  calendarHeaderMonthBeforeYear: {\n    type: Boolean,\n    default: undefined\n  },\n  defaultValue: [Number, Array] as PropType<Value | null>,\n  defaultFormattedValue: [String, Array] as PropType<FormattedValue | null>,\n  defaultTime: [Number, String, Array, Function] as PropType<DefaultTime>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  value: [Number, Array] as PropType<Value | null>,\n  formattedValue: [String, Array] as PropType<FormattedValue | null>,\n  size: String as PropType<DatePickerSize>,\n  type: {\n    type: String as PropType<DatePickerType>,\n    default: 'date'\n  },\n  valueFormat: String,\n  separator: String,\n  placeholder: String,\n  startPlaceholder: String,\n  endPlaceholder: String,\n  format: String,\n  dateFormat: String,\n  timePickerFormat: String,\n  actions: Array as PropType<Array<'clear' | 'confirm' | 'now'> | null>,\n  shortcuts: Object as PropType<Shortcuts>,\n  isDateDisabled: Function as PropType<IsDateDisabled>,\n  isTimeDisabled: Function as PropType<IsTimeDisabled>,\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  panel: Boolean,\n  ranges: Object as PropType<Record<string, [number, number]>>,\n  firstDayOfWeek: Number as PropType<FirstDayOfWeek>,\n  inputReadonly: Boolean,\n  closeOnSelect: Boolean,\n  status: String as PropType<FormValidationStatus>,\n  timePickerProps: [Object, Array] as PropType<\n    TimePickerProps | [TimePickerProps, TimePickerProps]\n  >,\n  onClear: Function as PropType<() => void>,\n  onConfirm: Function as PropType<OnConfirm>,\n  defaultCalendarStartTime: Number,\n  defaultCalendarEndTime: Number,\n  bindCalendarMonths: Boolean,\n  monthFormat: { type: String, default: 'M' },\n  yearFormat: { type: String, default: 'y' },\n  quarterFormat: { type: String, default: '\\'Q\\'Q' },\n  yearRange: {\n    type: Array as unknown as PropType<[number, number]>,\n    default: (): [number, number] => [1901, 2100]\n  },\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  'onUpdate:formattedValue': [Function, Array] as PropType<\n    MaybeArray<OnUpdateFormattedValue>\n  >,\n  onUpdateFormattedValue: [Function, Array] as PropType<\n    MaybeArray<OnUpdateFormattedValue>\n  >,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onFocus: [Function, Array] as PropType<(e: FocusEvent) => void>,\n  onBlur: [Function, Array] as PropType<(e: FocusEvent) => void>,\n  onNextMonth: Function as PropType<() => void>,\n  onPrevMonth: Function as PropType<() => void>,\n  onNextYear: Function as PropType<() => void>,\n  onPrevYear: Function as PropType<() => void>,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n\n// --n-icon-color-override\n// --n-icon-color-disabled-override\n\n// --n-panel-border-radius\n// --n-panel-color\n// --n-panel-box-shadow\n// --n-panel-text-color\n\n// panel header\n// --n-panel-header-padding\n// --n-panel-header-divider-color\n\n// panel calendar\n// --n-calendar-left-padding\n// --n-calendar-right-padding\n// --n-calendar-title-color-hover\n// --n-calendar-title-height\n// --n-calendar-title-padding\n// --n-calendar-title-font-size\n// --n-calendar-title-text-color\n// --n-calendar-title-font-weight\n// --n-calendar-title-grid-template-columns\n// --n-calendar-days-height\n// --n-calendar-days-divider-color\n// --n-calendar-days-font-size\n// --n-calendar-days-text-color\n// --n-calendar-divider-color\n\n// panel action\n// --n-panel-action-padding\n// --n-panel-action-divider-color\n\n// panel item\n// --n-item-border-radius\n// --n-item-size\n// --n-item-cell-width\n// --n-item-cell-height\n// --n-item-text-color\n// --n-item-color-included\n// --n-item-color-disabled\n// --n-item-color-hover\n// --n-item-color-active\n// --n-item-font-size\n// --n-item-text-color-disabled\n// --n-item-text-color-active\n\n// scroll item\n// --n-scroll-item-width\n// --n-scroll-item-height\n// --n-scroll-item-border-radius\n\n// panel arrow\n// --n-arrow-size\n// --n-arrow-color\nexport default c([\n  cB('date-picker', `\n    position: relative;\n    z-index: auto;\n  `, [\n    cB('date-picker-icon', `\n      color: var(--n-icon-color-override);\n      transition: color .3s var(--n-bezier);\n    `),\n    cB('icon', `\n      color: var(--n-icon-color-override);\n      transition: color .3s var(--n-bezier);\n    `),\n    cM('disabled', [\n      cB('date-picker-icon', `\n        color: var(--n-icon-color-disabled-override);\n      `),\n      cB('icon', `\n        color: var(--n-icon-color-disabled-override);\n      `)\n    ])\n  ]),\n  cB('date-panel', `\n    width: fit-content;\n    outline: none;\n    margin: 4px 0;\n    display: grid;\n    grid-template-columns: 0fr;\n    border-radius: var(--n-panel-border-radius);\n    background-color: var(--n-panel-color);\n    color: var(--n-panel-text-color);\n    user-select: none;\n  `, [\n    fadeInScaleUpTransition(),\n    cM('shadow', `\n      box-shadow: var(--n-panel-box-shadow);\n    `),\n    cB('date-panel-calendar', {\n      padding: 'var(--n-calendar-left-padding)',\n      display: 'grid',\n      gridTemplateColumns: '1fr',\n      gridArea: 'left-calendar'\n    }, [\n      cM('end', {\n        padding: 'var(--n-calendar-right-padding)',\n        gridArea: 'right-calendar'\n      })\n    ]),\n    cB('date-panel-month-calendar', {\n      display: 'flex',\n      gridArea: 'left-calendar'\n    }, [\n      cE('picker-col', `\n        min-width: var(--n-scroll-item-width);\n        height: calc(var(--n-scroll-item-height) * 6);\n        user-select: none;\n        -webkit-user-select: none;\n      `, [\n        c('&:first-child', `\n          min-width: calc(var(--n-scroll-item-width) + 4px);\n        `, [\n          cE('picker-col-item', [\n            c('&::before', 'left: 4px;')\n          ])\n        ]),\n        cE('padding', `\n          height: calc(var(--n-scroll-item-height) * 5)\n        `)\n      ]),\n      cE('picker-col-item', `\n        z-index: 0;\n        cursor: pointer;\n        height: var(--n-scroll-item-height);\n        box-sizing: border-box;\n        padding-top: 4px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        position: relative;\n        transition: \n          color .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n        background: #0000;\n        color: var(--n-item-text-color);\n      `, [\n        c('&::before', `\n          z-index: -1;\n          content: \"\";\n          position: absolute;\n          left: 0;\n          right: 4px;\n          top: 4px;\n          bottom: 0;\n          border-radius: var(--n-scroll-item-border-radius);\n          transition: \n            background-color .3s var(--n-bezier);\n        `),\n        cNotM('disabled', [\n          c('&:hover::before', `\n            background-color: var(--n-item-color-hover);\n          `),\n          cM('selected', `\n            color: var(--n-item-color-active);\n          `, [\n            c('&::before', 'background-color: var(--n-item-color-hover);')\n          ])\n        ]),\n        cM('disabled', `\n          color: var(--n-item-text-color-disabled);\n          cursor: not-allowed;\n        `, [\n          cM('selected', [\n            c('&::before', `\n              background-color: var(--n-item-color-disabled);\n            `)\n          ])\n        ])\n      ])\n    ]),\n    cM('date', {\n      gridTemplateAreas: `\n        \"left-calendar\"\n        \"footer\"\n        \"action\"\n      `\n    }),\n    cM('week', {\n      gridTemplateAreas: `\n        \"left-calendar\"\n        \"footer\"\n        \"action\"\n      `\n    }),\n    cM('daterange', {\n      gridTemplateAreas: `\n        \"left-calendar divider right-calendar\"\n        \"footer footer footer\"\n        \"action action action\"\n      `\n    }),\n    cM('datetime', {\n      gridTemplateAreas: `\n        \"header\"\n        \"left-calendar\"\n        \"footer\"\n        \"action\"\n      `\n    }),\n    cM('datetimerange', {\n      gridTemplateAreas: `\n        \"header header header\"\n        \"left-calendar divider right-calendar\"\n        \"footer footer footer\"\n        \"action action action\"\n      `\n    }),\n    cM('month', {\n      gridTemplateAreas: `\n        \"left-calendar\"\n        \"footer\"\n        \"action\"\n      `\n    }),\n    cB('date-panel-footer', {\n      gridArea: 'footer'\n    }),\n    cB('date-panel-actions', {\n      gridArea: 'action'\n    }),\n    cB('date-panel-header', {\n      gridArea: 'header'\n    }),\n    cB('date-panel-header', `\n      box-sizing: border-box;\n      width: 100%;\n      align-items: center;\n      padding: var(--n-panel-header-padding);\n      display: flex;\n      justify-content: space-between;\n      border-bottom: 1px solid var(--n-panel-header-divider-color);\n    `, [\n      c('>', [\n        c('*:not(:last-child)', {\n          marginRight: '10px'\n        }),\n        c('*', {\n          flex: 1,\n          width: 0\n        }),\n        cB('time-picker', {\n          zIndex: 1\n        })\n      ])\n    ]),\n    cB('date-panel-month', `\n      box-sizing: border-box;\n      display: grid;\n      grid-template-columns: var(--n-calendar-title-grid-template-columns);\n      align-items: center;\n      justify-items: center;\n      padding: var(--n-calendar-title-padding);\n      height: var(--n-calendar-title-height);\n    `, [\n      cE('prev, next, fast-prev, fast-next', `\n        line-height: 0;\n        cursor: pointer;\n        width: var(--n-arrow-size);\n        height: var(--n-arrow-size);\n        color: var(--n-arrow-color);\n      `),\n      cE('month-year', `\n        user-select: none;\n        -webkit-user-select: none;\n        flex-grow: 1;\n        position: relative;\n      `, [\n        cE('text', `\n          font-size: var(--n-calendar-title-font-size);\n          line-height: var(--n-calendar-title-font-size);\n          font-weight: var(--n-calendar-title-font-weight);\n          padding: 6px 8px;\n          text-align: center;\n          color: var(--n-calendar-title-text-color);\n          cursor: pointer;\n          transition: background-color .3s var(--n-bezier);\n          border-radius: var(--n-panel-border-radius);\n        `, [\n          cM('active', `\n            background-color: var(--n-calendar-title-color-hover);\n          `),\n          c('&:hover', `\n            background-color: var(--n-calendar-title-color-hover);\n          `)\n        ])\n      ])\n    ]),\n    cB('date-panel-weekdays', `\n      display: grid;\n      margin: auto;\n      grid-template-columns: repeat(7, var(--n-item-cell-width));\n      grid-template-rows: repeat(1, var(--n-item-cell-height));\n      align-items: center;\n      justify-items: center;\n      margin-bottom: 4px;\n      border-bottom: 1px solid var(--n-calendar-days-divider-color);\n    `, [\n      cE('day', `\n        white-space: nowrap;\n        user-select: none;\n        -webkit-user-select: none;\n        line-height: 15px;\n        width: var(--n-item-size);\n        text-align: center;\n        font-size: var(--n-calendar-days-font-size);\n        color: var(--n-item-text-color);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `)\n    ]),\n    cB('date-panel-dates', `\n      margin: auto;\n      display: grid;\n      grid-template-columns: repeat(7, var(--n-item-cell-width));\n      grid-template-rows: repeat(6, var(--n-item-cell-height));\n      align-items: center;\n      justify-items: center;\n      flex-wrap: wrap;\n    `, [\n      cB('date-panel-date', `\n        user-select: none;\n        -webkit-user-select: none;\n        position: relative;\n        width: var(--n-item-size);\n        height: var(--n-item-size);\n        line-height: var(--n-item-size);\n        text-align: center;\n        font-size: var(--n-item-font-size);\n        border-radius: var(--n-item-border-radius);\n        z-index: 0;\n        cursor: pointer;\n        transition:\n          background-color .2s var(--n-bezier),\n          color .2s var(--n-bezier);\n      `, [\n        cE('trigger', `\n          position: absolute;\n          left: calc(var(--n-item-size) / 2 - var(--n-item-cell-width) / 2);\n          top: calc(var(--n-item-size) / 2 - var(--n-item-cell-height) / 2);\n          width:  var(--n-item-cell-width);\n          height:  var(--n-item-cell-height);\n        `),\n        cM('current', [\n          cE('sup', `\n            position: absolute;\n            top: 2px;\n            right: 2px;\n            content: \"\";\n            height: 4px;\n            width: 4px;\n            border-radius: 2px;\n            background-color: var(--n-item-color-active);\n            transition:\n              background-color .2s var(--n-bezier);\n          `)\n        ]),\n        c('&::after', `\n          content: \"\";\n          z-index: -1;\n          position: absolute;\n          left: 0;\n          right: 0;\n          top: 0;\n          bottom: 0;\n          border-radius: inherit;\n          transition: background-color .3s var(--n-bezier);\n        `),\n        cM('covered, start, end', [\n          cNotM('excluded', [\n            c('&::before', `\n              content: \"\";\n              z-index: -2;\n              position: absolute;\n              left: calc((var(--n-item-size) - var(--n-item-cell-width)) / 2);\n              right: calc((var(--n-item-size) - var(--n-item-cell-width)) / 2);\n              top: 0;\n              bottom: 0;\n              background-color: var(--n-item-color-included);\n            `),\n            c('&:nth-child(7n + 1)::before', {\n              borderTopLeftRadius: 'var(--n-item-border-radius)',\n              borderBottomLeftRadius: 'var(--n-item-border-radius)'\n            }),\n            c('&:nth-child(7n + 7)::before', {\n              borderTopRightRadius: 'var(--n-item-border-radius)',\n              borderBottomRightRadius: 'var(--n-item-border-radius)'\n            })\n          ])\n        ]),\n        cM('selected', {\n          color: 'var(--n-item-text-color-active)'\n        }, [\n          c('&::after', {\n            backgroundColor: 'var(--n-item-color-active)'\n          }),\n          cM('start', [\n            c('&::before', {\n              left: '50%'\n            })\n          ]),\n          cM('end', [\n            c('&::before', {\n              right: '50%'\n            })\n          ]),\n          cE('sup', {\n            backgroundColor: 'var(--n-panel-color)'\n          })\n        ]),\n        cM('excluded', {\n          color: 'var(--n-item-text-color-disabled)'\n        }, [\n          cM('selected', [\n            c('&::after', {\n              backgroundColor: 'var(--n-item-color-disabled)'\n            })\n          ])\n        ]),\n        cM('disabled', {\n          cursor: 'not-allowed',\n          color: 'var(--n-item-text-color-disabled)'\n        }, [\n          cM('covered', [\n            c('&::before', {\n              backgroundColor: 'var(--n-item-color-disabled)'\n            })\n          ]),\n          cM('selected', [\n            c('&::before', {\n              backgroundColor: 'var(--n-item-color-disabled)'\n            }),\n            c('&::after', {\n              backgroundColor: 'var(--n-item-color-disabled)'\n            })\n          ])\n        ]),\n        cM('week-hovered', [\n          c('&::before', `\n            background-color: var(--n-item-color-included);\n          `),\n          c('&:nth-child(7n + 1)::before', `\n            border-top-left-radius: var(--n-item-border-radius);\n            border-bottom-left-radius: var(--n-item-border-radius);\n          `),\n          c('&:nth-child(7n + 7)::before', `\n            border-top-right-radius: var(--n-item-border-radius);\n            border-bottom-right-radius: var(--n-item-border-radius);\n          `)\n        ]),\n        cM('week-selected', `\n          color: var(--n-item-text-color-active)\n        `, [\n          c('&::before', `\n            background-color: var(--n-item-color-active);\n          `),\n          c('&:nth-child(7n + 1)::before', `\n            border-top-left-radius: var(--n-item-border-radius);\n            border-bottom-left-radius: var(--n-item-border-radius);\n          `),\n          c('&:nth-child(7n + 7)::before', `\n            border-top-right-radius: var(--n-item-border-radius);\n            border-bottom-right-radius: var(--n-item-border-radius);\n          `)\n        ])\n      ])\n    ]),\n    cNotM('week', [\n      cB('date-panel-dates', [\n        cB('date-panel-date', [\n          cNotM('disabled', [\n            cNotM('selected', [\n              c('&:hover', `\n                background-color: var(--n-item-color-hover);\n              `)\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cM('week', [\n      cB('date-panel-dates', [\n        cB('date-panel-date', [\n          c('&::before', `\n            content: \"\";\n            z-index: -2;\n            position: absolute;\n            left: calc((var(--n-item-size) - var(--n-item-cell-width)) / 2);\n            right: calc((var(--n-item-size) - var(--n-item-cell-width)) / 2);\n            top: 0;\n            bottom: 0;\n            transition: background-color .3s var(--n-bezier);\n          `)\n        ])\n      ])\n    ]),\n    cE('vertical-divider', `\n      grid-area: divider;\n      height: 100%;\n      width: 1px;\n      background-color: var(--n-calendar-divider-color);\n    `),\n    cB('date-panel-footer', `\n      border-top: 1px solid var(--n-panel-action-divider-color);\n      padding: var(--n-panel-extra-footer-padding);\n    `),\n    cB('date-panel-actions', `\n      flex: 1;\n      padding: var(--n-panel-action-padding);\n      display: flex;\n      align-items: center;\n      justify-content: space-between;\n      border-top: 1px solid var(--n-panel-action-divider-color);\n    `, [\n      cE('prefix, suffix', `\n        display: flex;\n        margin-bottom: -8px;\n      `),\n      cE('suffix', `\n        align-self: flex-end;\n      `),\n      cE('prefix', `\n        flex-wrap: wrap;\n      `),\n      cB('button', `\n        margin-bottom: 8px;\n      `, [\n        c('&:not(:last-child)', `\n          margin-right: 8px;\n        `)\n      ])\n    ])\n  ]),\n  c('[data-n-date].transition-disabled', {\n    transition: 'none !important'\n  }, [\n    c('&::before, &::after', {\n      transition: 'none !important'\n    })\n  ])\n])\n","import type { Ref } from 'vue'\nimport type { DatePickerSetupProps } from './DatePicker'\nimport type {\n  IsRangeDateDisabled,\n  IsRangeTimeDisabled,\n  IsSingleDateDisabled,\n  IsSingleTimeDisabled\n} from './interface'\nimport { getHours, getMinutes, getSeconds } from 'date-fns'\nimport { computed } from 'vue'\n\nexport function uniCalendarValidation(\n  props: DatePickerSetupProps,\n  mergedValueRef: Ref<number | [number, number] | null>\n) {\n  // date, datetime\n  const timePickerValidatorRef = computed(() => {\n    const { isTimeDisabled } = props as {\n      isTimeDisabled?: IsSingleTimeDisabled\n    }\n    const { value } = mergedValueRef\n    if (value === null || Array.isArray(value))\n      return undefined\n    return isTimeDisabled?.(value)\n  })\n  const isHourDisabledRef = computed(() => {\n    return timePickerValidatorRef.value?.isHourDisabled\n  })\n  const isMinuteDisabledRef = computed(() => {\n    return timePickerValidatorRef.value?.isMinuteDisabled\n  })\n  const isSecondDisabledRef = computed(() => {\n    return timePickerValidatorRef.value?.isSecondDisabled\n  })\n  const isDateInvalidRef = computed(() => {\n    const { type, isDateDisabled } = props\n    const { value } = mergedValueRef\n    if (\n      value === null\n      || Array.isArray(value)\n      || !['date', 'datetime'].includes(type)\n      || !isDateDisabled\n    ) {\n      return false\n    }\n    return (isDateDisabled as IsSingleDateDisabled)(value, { type: 'input' })\n  })\n  const isTimeInvalidRef = computed(() => {\n    const { type } = props\n    const { value } = mergedValueRef\n    if (value === null || !(type !== 'datetime') || Array.isArray(value)) {\n      return false\n    }\n    const time = new Date(value)\n    const hour = time.getHours()\n    const minute = time.getMinutes()\n    const second = time.getMinutes()\n    return (\n      (isHourDisabledRef.value ? isHourDisabledRef.value(hour) : false)\n      || (isMinuteDisabledRef.value\n        ? isMinuteDisabledRef.value(minute, hour)\n        : false)\n      || (isSecondDisabledRef.value\n        ? isSecondDisabledRef.value(second, minute, hour)\n        : false)\n    )\n  })\n  const isDateTimeInvalidRef = computed(() => {\n    return isDateInvalidRef.value || isTimeInvalidRef.value\n  })\n  const isValueInvalidRef = computed(() => {\n    const { type } = props\n    if (type === 'date')\n      return isDateInvalidRef.value\n    if (type === 'datetime')\n      return isDateTimeInvalidRef.value\n    return false\n  })\n  return {\n    // date & datetime\n    isValueInvalidRef,\n    isDateInvalidRef,\n    // datetime only\n    isTimeInvalidRef,\n    isDateTimeInvalidRef,\n    isHourDisabledRef,\n    isMinuteDisabledRef,\n    isSecondDisabledRef\n  }\n}\n\nexport function dualCalendarValidation(\n  props: DatePickerSetupProps,\n  mergedValueRef: Ref<number | [number, number] | null>\n) {\n  // daterange, datetimerange\n  const timePickerValidatorRef = computed(() => {\n    const { isTimeDisabled } = props as { isTimeDisabled?: IsRangeTimeDisabled }\n    const { value } = mergedValueRef\n    if (!Array.isArray(value) || !isTimeDisabled) {\n      return [undefined, undefined]\n    }\n    return [\n      isTimeDisabled?.(value[0], 'start', value),\n      isTimeDisabled?.(value[1], 'end', value)\n    ]\n  })\n  const timeValidator = {\n    isStartHourDisabledRef: computed(\n      () => timePickerValidatorRef.value[0]?.isHourDisabled\n    ),\n    isEndHourDisabledRef: computed(\n      () => timePickerValidatorRef.value[1]?.isHourDisabled\n    ),\n    isStartMinuteDisabledRef: computed(\n      () => timePickerValidatorRef.value[0]?.isMinuteDisabled\n    ),\n    isEndMinuteDisabledRef: computed(\n      () => timePickerValidatorRef.value[1]?.isMinuteDisabled\n    ),\n    isStartSecondDisabledRef: computed(\n      () => timePickerValidatorRef.value[0]?.isSecondDisabled\n    ),\n    isEndSecondDisabledRef: computed(\n      () => timePickerValidatorRef.value[1]?.isSecondDisabled\n    )\n  }\n  const isStartDateInvalidRef = computed(() => {\n    const { type, isDateDisabled } = props\n    const { value } = mergedValueRef\n    if (\n      value === null\n      || !Array.isArray(value)\n      || !['daterange', 'datetimerange'].includes(type)\n      || !isDateDisabled\n    ) {\n      return false\n    }\n    return (isDateDisabled as IsRangeDateDisabled)(value[0], 'start', value)\n  })\n  const isEndDateInvalidRef = computed(() => {\n    const { type, isDateDisabled } = props\n    const { value } = mergedValueRef\n    if (\n      value === null\n      || !Array.isArray(value)\n      || !['daterange', 'datetimerange'].includes(type)\n      || !isDateDisabled\n    ) {\n      return false\n    }\n    return (isDateDisabled as IsRangeDateDisabled)(value[1], 'end', value)\n  })\n  const isStartTimeInvalidRef = computed(() => {\n    const { type } = props\n    const { value } = mergedValueRef\n    if (value === null || !Array.isArray(value) || type !== 'datetimerange') {\n      return false\n    }\n    const startHours = getHours(value[0])\n    const startMinutes = getMinutes(value[0])\n    const startSeconds = getSeconds(value[0])\n    const {\n      isStartHourDisabledRef,\n      isStartMinuteDisabledRef,\n      isStartSecondDisabledRef\n    } = timeValidator\n    const startTimeInvalid\n      = (isStartHourDisabledRef.value\n        ? isStartHourDisabledRef.value(startHours)\n        : false)\n      || (isStartMinuteDisabledRef.value\n        ? isStartMinuteDisabledRef.value(startMinutes, startHours)\n        : false)\n      || (isStartSecondDisabledRef.value\n        ? isStartSecondDisabledRef.value(startSeconds, startMinutes, startHours)\n        : false)\n    return startTimeInvalid\n  })\n  const isEndTimeInvalidRef = computed(() => {\n    const { type } = props\n    const { value } = mergedValueRef\n    if (value === null || !Array.isArray(value) || type !== 'datetimerange') {\n      return false\n    }\n    const endHours = getHours(value[1])\n    const endMinutes = getMinutes(value[1])\n    const endSeconds = getSeconds(value[1])\n    const {\n      isEndHourDisabledRef,\n      isEndMinuteDisabledRef,\n      isEndSecondDisabledRef\n    } = timeValidator\n    const endTimeInvalid\n      = (isEndHourDisabledRef.value\n        ? isEndHourDisabledRef.value(endHours)\n        : false)\n      || (isEndMinuteDisabledRef.value\n        ? isEndMinuteDisabledRef.value(endMinutes, endHours)\n        : false)\n      || (isEndSecondDisabledRef.value\n        ? isEndSecondDisabledRef.value(endSeconds, endMinutes, endHours)\n        : false)\n    return endTimeInvalid\n  })\n  const isStartValueInvalidRef = computed(() => {\n    return isStartDateInvalidRef.value || isStartTimeInvalidRef.value\n  })\n  const isEndValueInvalidRef = computed(() => {\n    return isEndDateInvalidRef.value || isEndTimeInvalidRef.value\n  })\n  const isRangeInvalidRef = computed(() => {\n    return isStartValueInvalidRef.value || isEndValueInvalidRef.value\n  })\n  return {\n    ...timeValidator,\n    isStartDateInvalidRef,\n    isEndDateInvalidRef,\n    isStartTimeInvalidRef,\n    isEndTimeInvalidRef,\n    isStartValueInvalidRef,\n    isEndValueInvalidRef,\n    isRangeInvalidRef\n  }\n}\n","import type {\n  CSSProperties,\n  ExtractPropTypes,\n  Ref,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { InputInst, InputProps } from '../../input'\nimport type { TimePickerSize } from '../../time-picker/src/public-types'\nimport type {\n  FormattedValue,\n  OnConfirmImpl,\n  OnUpdateFormattedValueImpl,\n  OnUpdateValueImpl,\n  PanelRef,\n  Value\n} from './interface'\nimport type { UsePanelCommonProps } from './panel/use-panel-common'\nimport type { DatePickerInst, DatePickerSize } from './public-types'\nimport { format, getTime, isValid } from 'date-fns'\nimport { getPreciseEventTarget, happensIn } from 'seemly'\nimport { clickoutside } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NBaseIcon } from '../../_internal'\nimport { DateIcon, ToIcon } from '../../_internal/icons'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  createKey,\n  markEventEffectPerformed,\n  resolveSlot,\n  useAdjustedTo,\n  warn,\n  warnOnce\n} from '../../_utils'\nimport { NInput } from '../../input'\nimport { datePickerLight } from '../styles'\nimport { datePickerInjectionKey } from './interface'\nimport DatePanel from './panel/date'\nimport DaterangePanel from './panel/daterange'\nimport DatetimePanel from './panel/datetime'\nimport DatetimerangePanel from './panel/datetimerange'\nimport MonthPanel from './panel/month'\nimport MonthRangePanel from './panel/monthrange'\nimport { datePickerProps } from './props'\nimport style from './styles/index.cssr'\nimport { strictParse } from './utils'\nimport {\n  dualCalendarValidation,\n  uniCalendarValidation\n} from './validation-utils'\n\nexport type DatePickerSetupProps = ExtractPropTypes<typeof datePickerProps>\n\nexport interface DatePickerSlots {\n  'date-icon'?: () => VNode[]\n  footer?: () => VNode[]\n  'next-month'?: () => VNode[]\n  'next-year'?: () => VNode[]\n  'prev-month'?: () => VNode[]\n  'prev-year'?: () => VNode[]\n  separator?: () => VNode[]\n  confirm?: (props: {\n    onConfirm: () => void\n    disabled: boolean\n    text: string\n  }) => VNode[]\n  clear?: (props: { onClear: () => void, text: string }) => VNode[]\n  now?: (props: { onNow: () => void, text: string }) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'DatePicker',\n  props: datePickerProps,\n  slots: Object as SlotsType<DatePickerSlots>,\n  setup(props, { slots }) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'date-picker',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const { localeRef, dateLocaleRef } = useLocale('DatePicker')\n    const {\n      mergedComponentPropsRef,\n      mergedClsPrefixRef,\n      mergedBorderedRef,\n      namespaceRef,\n      inlineThemeDisabled\n    } = useConfig(props)\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as DatePickerSize\n        const configSize = mergedComponentPropsRef?.value?.DatePicker?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    const panelInstRef = ref<PanelRef | null>(null)\n    const triggerElRef = ref<HTMLElement | null>(null)\n    const inputInstRef = ref<InputInst | null>(null)\n    const uncontrolledShowRef = ref<boolean>(false)\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n    const dateFnsOptionsRef = computed(() => {\n      return {\n        locale: dateLocaleRef.value.locale,\n        useAdditionalWeekYearTokens: true\n      }\n    })\n\n    const mergedFormatRef = computed(() => {\n      const { format } = props\n      if (format)\n        return format\n      switch (props.type) {\n        case 'date':\n        case 'daterange':\n          return localeRef.value.dateFormat\n        case 'datetime':\n        case 'datetimerange':\n          return localeRef.value.dateTimeFormat\n        case 'year':\n        case 'yearrange':\n          return localeRef.value.yearTypeFormat\n        case 'month':\n        case 'monthrange':\n          return localeRef.value.monthTypeFormat\n        case 'quarter':\n        case 'quarterrange':\n          return localeRef.value.quarterFormat\n        case 'week':\n          return localeRef.value.weekFormat\n      }\n    })\n    const mergedValueFormatRef = computed(() => {\n      return props.valueFormat ?? mergedFormatRef.value\n    })\n\n    function getTimestampValue(value: FormattedValue | null): Value | null {\n      if (value === null)\n        return null\n      const { value: mergedValueFormat } = mergedValueFormatRef\n      const { value: dateFnsOptions } = dateFnsOptionsRef\n      if (Array.isArray(value)) {\n        return [\n          strictParse(\n            value[0],\n            mergedValueFormat,\n            new Date(),\n            dateFnsOptions\n          ).getTime(),\n          strictParse(\n            value[1],\n            mergedValueFormat,\n            new Date(),\n            dateFnsOptions\n          ).getTime()\n        ]\n      }\n      return strictParse(\n        value,\n        mergedValueFormat,\n        new Date(),\n        dateFnsOptions\n      ).getTime()\n    }\n\n    const { defaultFormattedValue, defaultValue } = props\n\n    const uncontrolledValueRef = ref(\n      (defaultFormattedValue !== undefined\n        ? getTimestampValue(defaultFormattedValue)\n        : defaultValue) ?? null\n    )\n    const controlledValueRef = computed(() => {\n      const { formattedValue } = props\n      if (formattedValue !== undefined) {\n        return getTimestampValue(formattedValue)\n      }\n      return props.value\n    })\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n\n    // We don't change value unless blur or confirm is called\n    const pendingValueRef: Ref<Value | null> = ref(null)\n    watchEffect(() => {\n      pendingValueRef.value = mergedValueRef.value\n    })\n    const singleInputValueRef = ref('')\n    const rangeStartInputValueRef = ref('')\n    const rangeEndInputValueRef = ref('')\n    const themeRef = useTheme(\n      'DatePicker',\n      '-date-picker',\n      style,\n      datePickerLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const timePickerSizeRef = computed<TimePickerSize>(() => {\n      return (\n        mergedComponentPropsRef?.value?.DatePicker?.timePickerSize || 'small'\n      )\n    })\n    const isRangeRef = computed(() => {\n      return [\n        'daterange',\n        'datetimerange',\n        'monthrange',\n        'quarterrange',\n        'yearrange'\n      ].includes(props.type)\n    })\n    const localizedPlacehoderRef = computed(() => {\n      const { placeholder } = props\n      if (placeholder === undefined) {\n        const { type } = props\n        switch (type) {\n          case 'date':\n            return localeRef.value.datePlaceholder\n          case 'datetime':\n            return localeRef.value.datetimePlaceholder\n          case 'month':\n            return localeRef.value.monthPlaceholder\n          case 'year':\n            return localeRef.value.yearPlaceholder\n          case 'quarter':\n            return localeRef.value.quarterPlaceholder\n          case 'week':\n            return localeRef.value.weekPlaceholder\n          default:\n            return ''\n        }\n      }\n      else {\n        return placeholder\n      }\n    })\n    const localizedStartPlaceholderRef = computed(() => {\n      if (props.startPlaceholder === undefined) {\n        if (props.type === 'daterange') {\n          return localeRef.value.startDatePlaceholder\n        }\n        else if (props.type === 'datetimerange') {\n          return localeRef.value.startDatetimePlaceholder\n        }\n        else if (props.type === 'monthrange') {\n          return localeRef.value.startMonthPlaceholder\n        }\n        return ''\n      }\n      else {\n        return props.startPlaceholder\n      }\n    })\n    const localizedEndPlaceholderRef = computed(() => {\n      if (props.endPlaceholder === undefined) {\n        if (props.type === 'daterange') {\n          return localeRef.value.endDatePlaceholder\n        }\n        else if (props.type === 'datetimerange') {\n          return localeRef.value.endDatetimePlaceholder\n        }\n        else if (props.type === 'monthrange') {\n          return localeRef.value.endMonthPlaceholder\n        }\n        return ''\n      }\n      else {\n        return props.endPlaceholder\n      }\n    })\n    const mergedActionsRef = computed(() => {\n      const { actions, type, clearable } = props\n      if (actions === null)\n        return []\n      if (actions !== undefined)\n        return actions\n      const result = clearable ? ['clear'] : []\n      switch (type) {\n        case 'date':\n        case 'week': {\n          result.push('now')\n          return result\n        }\n        case 'datetime': {\n          result.push('now', 'confirm')\n          return result\n        }\n        case 'daterange': {\n          result.push('confirm')\n          return result\n        }\n        case 'datetimerange': {\n          result.push('confirm')\n          return result\n        }\n        case 'month': {\n          result.push('now', 'confirm')\n          return result\n        }\n        case 'year': {\n          result.push('now')\n          return result\n        }\n        case 'quarter': {\n          result.push('now', 'confirm')\n          return result\n        }\n        case 'monthrange':\n        case 'yearrange':\n        case 'quarterrange': {\n          result.push('confirm')\n          return result\n        }\n        default: {\n          warn(\n            'date-picker',\n            'The type is wrong, n-date-picker\\'s type only supports `date`, `datetime`, `daterange` and `datetimerange`.'\n          )\n          break\n        }\n      }\n    })\n    function getFormattedValue(value: Value | null): FormattedValue | null {\n      if (value === null)\n        return null\n      if (Array.isArray(value)) {\n        const { value: mergedValueFormat } = mergedValueFormatRef\n        const { value: dateFnsOptions } = dateFnsOptionsRef\n        return [\n          format(value[0], mergedValueFormat, dateFnsOptions),\n          format(value[1], mergedValueFormat, dateFnsOptionsRef.value)\n        ]\n      }\n      else {\n        return format(\n          value,\n          mergedValueFormatRef.value,\n          dateFnsOptionsRef.value\n        )\n      }\n    }\n    function doUpdatePendingValue(value: Value | null): void {\n      pendingValueRef.value = value\n    }\n    function doUpdateFormattedValue(\n      value: FormattedValue | null,\n      timestampValue: Value | null\n    ): void {\n      const {\n        'onUpdate:formattedValue': _onUpdateFormattedValue,\n        onUpdateFormattedValue\n      } = props\n      if (_onUpdateFormattedValue) {\n        call(\n          _onUpdateFormattedValue as OnUpdateFormattedValueImpl,\n          value,\n          timestampValue\n        )\n      }\n      if (onUpdateFormattedValue) {\n        call(\n          onUpdateFormattedValue as OnUpdateFormattedValueImpl,\n          value,\n          timestampValue\n        )\n      }\n    }\n    function doUpdateValue(\n      value: Value | null,\n      options: {\n        doConfirm: boolean\n      }\n    ): void {\n      const {\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      const formattedValue = getFormattedValue(value)\n      if (options.doConfirm) {\n        doConfirm(value, formattedValue)\n      }\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value, formattedValue)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, formattedValue)\n      }\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value, formattedValue)\n      uncontrolledValueRef.value = value\n\n      doUpdateFormattedValue(formattedValue, value)\n\n      nTriggerFormChange()\n      nTriggerFormInput()\n    }\n    function doClear(): void {\n      const { onClear } = props\n      onClear?.()\n    }\n    function doConfirm(\n      value: Value | null,\n      formattedValue: FormattedValue | null\n    ): void {\n      const { onConfirm } = props\n      if (onConfirm)\n        (onConfirm as OnConfirmImpl)(value, formattedValue)\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function doBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n    }\n    function doUpdateShow(show: boolean): void {\n      const { 'onUpdate:show': _onUpdateShow, onUpdateShow } = props\n      if (_onUpdateShow)\n        call(_onUpdateShow, show)\n      if (onUpdateShow)\n        call(onUpdateShow, show)\n      uncontrolledShowRef.value = show\n    }\n    function handleKeydown(e: KeyboardEvent): void {\n      if (e.key === 'Escape') {\n        if (mergedShowRef.value) {\n          markEventEffectPerformed(e)\n          closeCalendar({\n            returnFocus: true\n          })\n        }\n      }\n      // We need to handle the conflict with normal date value input\n      // const { value: mergedValue } = mergedValueRef\n      // if (props.type === 'date' && !Array.isArray(mergedValue)) {\n      //   const nextValue = getDerivedTimeFromKeyboardEvent(mergedValue, e)\n      //   doUpdateValue(nextValue)\n      // }\n    }\n    function handleInputKeydown(e: KeyboardEvent): void {\n      if (e.key === 'Escape' && mergedShowRef.value) {\n        markEventEffectPerformed(e)\n        // closeCalendar will be called in handleDeactivated\n      }\n    }\n    function handleClear(): void {\n      doUpdateShow(false)\n      inputInstRef.value?.deactivate()\n      doClear()\n    }\n    function handlePanelClear(): void {\n      // close will be called inside panel\n      inputInstRef.value?.deactivate()\n      doClear()\n    }\n    function handlePanelTabOut(): void {\n      closeCalendar({\n        returnFocus: true\n      })\n    }\n    function handleClickOutside(e: MouseEvent): void {\n      if (\n        mergedShowRef.value\n        && !triggerElRef.value?.contains(getPreciseEventTarget(e) as Node | null)\n      ) {\n        closeCalendar({\n          returnFocus: false\n        })\n      }\n    }\n    function handlePanelClose(disableUpdateOnClose: boolean): void {\n      closeCalendar({\n        returnFocus: true,\n        disableUpdateOnClose\n      })\n    }\n\n    // --- Panel update value\n    function handlePanelUpdateValue(\n      value: Value | null,\n      doUpdate: boolean\n    ): void {\n      if (doUpdate) {\n        doUpdateValue(value, { doConfirm: false })\n      }\n      else {\n        doUpdatePendingValue(value)\n      }\n    }\n    function handlePanelConfirm(): void {\n      const pendingValue = pendingValueRef.value\n      doUpdateValue(\n        Array.isArray(pendingValue)\n          ? [pendingValue[0], pendingValue[1]]\n          : pendingValue,\n        { doConfirm: true }\n      )\n    }\n    // --- Refresh\n    function deriveInputState(): void {\n      const { value } = pendingValueRef\n      if (isRangeRef.value) {\n        if (Array.isArray(value) || value === null) {\n          deriveRangeInputState(value)\n        }\n      }\n      else {\n        if (!Array.isArray(value)) {\n          deriveSingleInputState(value)\n        }\n      }\n    }\n    function deriveSingleInputState(value: number | null): void {\n      if (value === null) {\n        singleInputValueRef.value = ''\n      }\n      else {\n        singleInputValueRef.value = format(\n          value,\n          mergedFormatRef.value,\n          dateFnsOptionsRef.value\n        )\n      }\n    }\n    function deriveRangeInputState(values: [number, number] | null): void {\n      if (values === null) {\n        rangeStartInputValueRef.value = ''\n        rangeEndInputValueRef.value = ''\n      }\n      else {\n        const dateFnsOptions = dateFnsOptionsRef.value\n        rangeStartInputValueRef.value = format(\n          values[0],\n          mergedFormatRef.value,\n          dateFnsOptions\n        )\n        rangeEndInputValueRef.value = format(\n          values[1],\n          mergedFormatRef.value,\n          dateFnsOptions\n        )\n      }\n    }\n    // --- Input deactivate & blur\n    function handleInputActivate(): void {\n      if (!mergedShowRef.value) {\n        openCalendar()\n      }\n    }\n    function handleInputBlur(e: FocusEvent): void {\n      if (!panelInstRef.value?.$el.contains(e.relatedTarget as Node)) {\n        doBlur(e)\n        deriveInputState()\n        closeCalendar({\n          returnFocus: false\n        })\n      }\n    }\n    function handleInputDeactivate(): void {\n      if (mergedDisabledRef.value)\n        return\n      deriveInputState()\n      closeCalendar({\n        returnFocus: false\n      })\n    }\n    // --- Input\n    function handleSingleUpdateValue(v: string): void {\n      // TODO, fix conflict with clear\n      if (v === '') {\n        doUpdateValue(null, { doConfirm: false })\n        pendingValueRef.value = null\n        singleInputValueRef.value = ''\n        return\n      }\n      const newSelectedDateTime = strictParse(\n        v,\n        mergedFormatRef.value,\n        new Date(),\n        dateFnsOptionsRef.value\n      )\n      if (isValid(newSelectedDateTime)) {\n        doUpdateValue(getTime(newSelectedDateTime), { doConfirm: false })\n        deriveInputState()\n      }\n      else {\n        singleInputValueRef.value = v\n      }\n    }\n    function handleRangeUpdateValue(\n      v: [string, string],\n      { source }: { source: 0 | 1 | 'clear' }\n    ): void {\n      if (v[0] === '' && v[1] === '') {\n        // clear or just delete all the inputs\n        doUpdateValue(null, { doConfirm: false })\n        pendingValueRef.value = null\n        rangeStartInputValueRef.value = ''\n        rangeEndInputValueRef.value = ''\n        return\n      }\n      const [startTime, endTime] = v\n      const newStartTime = strictParse(\n        startTime,\n        mergedFormatRef.value,\n        new Date(),\n        dateFnsOptionsRef.value\n      )\n      const newEndTime = strictParse(\n        endTime,\n        mergedFormatRef.value,\n        new Date(),\n        dateFnsOptionsRef.value\n      )\n      if (isValid(newStartTime) && isValid(newEndTime)) {\n        let newStartTs = getTime(newStartTime)\n        let newEndTs = getTime(newEndTime)\n        if (newEndTime < newStartTime) {\n          if (source === 0) {\n            newEndTs = newStartTs\n          }\n          else {\n            newStartTs = newEndTs\n          }\n        }\n        doUpdateValue([newStartTs, newEndTs], {\n          doConfirm: false\n        })\n        deriveInputState()\n      }\n      else {\n        ;[rangeStartInputValueRef.value, rangeEndInputValueRef.value] = v\n      }\n    }\n    // --- Click\n    function handleTriggerClick(e: MouseEvent): void {\n      if (mergedDisabledRef.value)\n        return\n      if (happensIn(e, 'clear'))\n        return\n      if (!mergedShowRef.value) {\n        openCalendar()\n      }\n    }\n    // --- Focus\n    function handleInputFocus(e: FocusEvent): void {\n      if (mergedDisabledRef.value)\n        return\n      doFocus(e)\n    }\n    // --- Calendar\n    function openCalendar(): void {\n      if (mergedDisabledRef.value || mergedShowRef.value)\n        return\n      doUpdateShow(true)\n    }\n    function closeCalendar({\n      returnFocus,\n      disableUpdateOnClose\n    }: {\n      returnFocus: boolean\n      disableUpdateOnClose?: boolean\n    }): void {\n      if (mergedShowRef.value) {\n        doUpdateShow(false)\n        if (\n          props.type !== 'date'\n          && props.updateValueOnClose\n          && !disableUpdateOnClose\n        ) {\n          handlePanelConfirm()\n        }\n        if (returnFocus) {\n          inputInstRef.value?.focus()\n        }\n      }\n    }\n    // If new value is valid, set calendarTime and refresh display strings.\n    // If new value is invalid, do nothing.\n    watch(pendingValueRef, () => {\n      deriveInputState()\n    })\n    // init\n    deriveInputState()\n\n    watch(mergedShowRef, (value) => {\n      if (!value) {\n        // close & restore original value\n        // it won't conflict with props.value change\n        // since when prop is passed, it is already\n        // up to date.\n        pendingValueRef.value = mergedValueRef.value\n      }\n    })\n\n    // use pending value to do validation\n    const uniVaidation = uniCalendarValidation(props, pendingValueRef)\n    const dualValidation = dualCalendarValidation(props, pendingValueRef)\n    provide(datePickerInjectionKey, {\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      timePickerSizeRef,\n      localeRef,\n      dateLocaleRef,\n      firstDayOfWeekRef: toRef(props, 'firstDayOfWeek'),\n      isDateDisabledRef: toRef(props, 'isDateDisabled'),\n      rangesRef: toRef(props, 'ranges'),\n      timePickerPropsRef: toRef(props, 'timePickerProps'),\n      closeOnSelectRef: toRef(props, 'closeOnSelect'),\n      updateValueOnCloseRef: toRef(props, 'updateValueOnClose'),\n      monthFormatRef: toRef(props, 'monthFormat'),\n      yearFormatRef: toRef(props, 'yearFormat'),\n      quarterFormatRef: toRef(props, 'quarterFormat'),\n      yearRangeRef: toRef(props, 'yearRange'),\n      ...uniVaidation,\n      ...dualValidation,\n      datePickerSlots: slots\n    })\n\n    const exposedMethods: DatePickerInst = {\n      focus: () => {\n        inputInstRef.value?.focus()\n      },\n      blur: () => {\n        inputInstRef.value?.blur()\n      }\n    }\n\n    const triggerCssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { iconColor, iconColorDisabled }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-icon-color-override': iconColor,\n        '--n-icon-color-disabled-override': iconColorDisabled\n      }\n    })\n    const triggerThemeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'date-picker-trigger',\n          undefined,\n          triggerCssVarsRef,\n          props\n        )\n      : undefined\n\n    const cssVarsRef = computed(() => {\n      const { type } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          calendarTitleFontSize,\n          calendarDaysFontSize,\n          itemFontSize,\n          itemTextColor,\n          itemColorDisabled,\n          itemColorIncluded,\n          itemColorHover,\n          itemColorActive,\n          itemBorderRadius,\n          itemTextColorDisabled,\n          itemTextColorActive,\n          panelColor,\n          panelTextColor,\n          arrowColor,\n          calendarTitleTextColor,\n          panelActionDividerColor,\n          panelHeaderDividerColor,\n          calendarDaysDividerColor,\n          panelBoxShadow,\n          panelBorderRadius,\n          calendarTitleFontWeight,\n          panelExtraFooterPadding,\n          panelActionPadding,\n          itemSize,\n          itemCellWidth,\n          itemCellHeight,\n          scrollItemWidth,\n          scrollItemHeight,\n          calendarTitlePadding,\n          calendarTitleHeight,\n          calendarDaysHeight,\n          calendarDaysTextColor,\n          arrowSize,\n          panelHeaderPadding,\n          calendarDividerColor,\n          calendarTitleGridTempateColumns,\n          iconColor,\n          iconColorDisabled,\n          scrollItemBorderRadius,\n          calendarTitleColorHover,\n          [createKey('calendarLeftPadding', type)]: calendarLeftPadding,\n          [createKey('calendarRightPadding', type)]: calendarRightPadding\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n\n        '--n-panel-border-radius': panelBorderRadius,\n        '--n-panel-color': panelColor,\n        '--n-panel-box-shadow': panelBoxShadow,\n        '--n-panel-text-color': panelTextColor,\n\n        // panel header\n        '--n-panel-header-padding': panelHeaderPadding,\n        '--n-panel-header-divider-color': panelHeaderDividerColor,\n\n        // panel calendar\n        '--n-calendar-left-padding': calendarLeftPadding,\n        '--n-calendar-right-padding': calendarRightPadding,\n        '--n-calendar-title-color-hover': calendarTitleColorHover,\n        '--n-calendar-title-height': calendarTitleHeight,\n        '--n-calendar-title-padding': calendarTitlePadding,\n        '--n-calendar-title-font-size': calendarTitleFontSize,\n        '--n-calendar-title-font-weight': calendarTitleFontWeight,\n        '--n-calendar-title-text-color': calendarTitleTextColor,\n        '--n-calendar-title-grid-template-columns':\n          calendarTitleGridTempateColumns,\n        '--n-calendar-days-height': calendarDaysHeight,\n        '--n-calendar-days-divider-color': calendarDaysDividerColor,\n        '--n-calendar-days-font-size': calendarDaysFontSize,\n        '--n-calendar-days-text-color': calendarDaysTextColor,\n        '--n-calendar-divider-color': calendarDividerColor,\n\n        // panel action\n        '--n-panel-action-padding': panelActionPadding,\n        '--n-panel-extra-footer-padding': panelExtraFooterPadding,\n        '--n-panel-action-divider-color': panelActionDividerColor,\n\n        // panel item\n        '--n-item-font-size': itemFontSize,\n        '--n-item-border-radius': itemBorderRadius,\n        '--n-item-size': itemSize,\n        '--n-item-cell-width': itemCellWidth,\n        '--n-item-cell-height': itemCellHeight,\n        '--n-item-text-color': itemTextColor,\n        '--n-item-color-included': itemColorIncluded,\n        '--n-item-color-disabled': itemColorDisabled,\n        '--n-item-color-hover': itemColorHover,\n        '--n-item-color-active': itemColorActive,\n        '--n-item-text-color-disabled': itemTextColorDisabled,\n        '--n-item-text-color-active': itemTextColorActive,\n\n        // scroll item\n        '--n-scroll-item-width': scrollItemWidth,\n        '--n-scroll-item-height': scrollItemHeight,\n        '--n-scroll-item-border-radius': scrollItemBorderRadius,\n\n        // panel arrow\n        '--n-arrow-size': arrowSize,\n        '--n-arrow-color': arrowColor,\n\n        // icon in trigger\n        '--n-icon-color': iconColor,\n        '--n-icon-color-disabled': iconColorDisabled\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'date-picker',\n          computed(() => {\n            return props.type\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      ...exposedMethods,\n      mergedStatus: mergedStatusRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      namespace: namespaceRef,\n      uncontrolledValue: uncontrolledValueRef,\n      pendingValue: pendingValueRef,\n      // reduce dts: string ref only, type unused in render\n      panelInstRef: panelInstRef as unknown,\n      triggerElRef,\n      // reduce dts: string ref only, type unused in render\n      inputInstRef: inputInstRef as unknown,\n      isMounted: useIsMounted(),\n      displayTime: singleInputValueRef,\n      displayStartTime: rangeStartInputValueRef,\n      displayEndTime: rangeEndInputValueRef,\n      mergedShow: mergedShowRef,\n      adjustedTo: useAdjustedTo(props),\n      isRange: isRangeRef,\n      localizedStartPlaceholder: localizedStartPlaceholderRef,\n      localizedEndPlaceholder: localizedEndPlaceholderRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      localizedPlacehoder: localizedPlacehoderRef,\n      isValueInvalid: uniVaidation.isValueInvalidRef,\n      isStartValueInvalid: dualValidation.isStartValueInvalidRef,\n      isEndValueInvalid: dualValidation.isEndValueInvalidRef,\n      handleInputKeydown,\n      handleClickOutside,\n      handleKeydown,\n      handleClear,\n      handlePanelClear,\n      handleTriggerClick,\n      handleInputActivate,\n      handleInputDeactivate,\n      handleInputFocus,\n      handleInputBlur,\n      handlePanelTabOut,\n      handlePanelClose,\n      handleRangeUpdateValue,\n      handleSingleUpdateValue,\n      handlePanelUpdateValue,\n      handlePanelConfirm,\n      mergedTheme: themeRef,\n      actions: mergedActionsRef,\n      triggerCssVars: inlineThemeDisabled\n        ? undefined\n        : (triggerCssVarsRef as Ref<CSSProperties>),\n      triggerThemeClass: triggerThemeClassHandle?.themeClass,\n      triggerOnRender: triggerThemeClassHandle?.onRender,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      onNextMonth: props.onNextMonth,\n      onPrevMonth: props.onPrevMonth,\n      onNextYear: props.onNextYear,\n      onPrevYear: props.onPrevYear\n    }\n  },\n  render() {\n    const { clearable, triggerOnRender, mergedClsPrefix, $slots } = this\n    const commonPanelProps: UsePanelCommonProps & {\n      ref: string\n      style: CSSProperties\n    } = {\n      onUpdateValue: this.handlePanelUpdateValue,\n      onTabOut: this.handlePanelTabOut,\n      onClose: this.handlePanelClose,\n      onClear: this.handlePanelClear,\n      onKeydown: this.handleKeydown,\n      onConfirm: this.handlePanelConfirm,\n      ref: 'panelInstRef',\n      value: this.pendingValue,\n      active: this.mergedShow,\n      actions: this.actions,\n      shortcuts: this.shortcuts,\n      style: this.cssVars as CSSProperties,\n      defaultTime: this.defaultTime,\n      themeClass: this.themeClass,\n      panel: this.panel,\n      inputReadonly: this.inputReadonly || this.mergedDisabled,\n      onRender: this.onRender,\n      onNextMonth: this.onNextMonth,\n      onPrevMonth: this.onPrevMonth,\n      onNextYear: this.onNextYear,\n      onPrevYear: this.onPrevYear,\n      timePickerFormat: this.timePickerFormat,\n      dateFormat: this.dateFormat,\n      fastYearSelect: this.fastYearSelect,\n      fastMonthSelect: this.fastMonthSelect,\n      calendarDayFormat: this.calendarDayFormat,\n      calendarHeaderYearFormat: this.calendarHeaderYearFormat,\n      calendarHeaderMonthFormat: this.calendarHeaderMonthFormat,\n      calendarHeaderMonthYearSeparator: this.calendarHeaderMonthYearSeparator,\n      calendarHeaderMonthBeforeYear: this.calendarHeaderMonthBeforeYear\n    }\n    const renderPanel = (): VNode => {\n      const { type } = this\n      return type === 'datetime' ? (\n        <DatetimePanel\n          {...commonPanelProps}\n          defaultCalendarStartTime={this.defaultCalendarStartTime}\n        >\n          {$slots}\n        </DatetimePanel>\n      ) : type === 'daterange' ? (\n        <DaterangePanel\n          {...commonPanelProps}\n          defaultCalendarStartTime={this.defaultCalendarStartTime}\n          defaultCalendarEndTime={this.defaultCalendarEndTime}\n          bindCalendarMonths={this.bindCalendarMonths}\n        >\n          {$slots}\n        </DaterangePanel>\n      ) : type === 'datetimerange' ? (\n        <DatetimerangePanel\n          {...commonPanelProps}\n          defaultCalendarStartTime={this.defaultCalendarStartTime}\n          defaultCalendarEndTime={this.defaultCalendarEndTime}\n          bindCalendarMonths={this.bindCalendarMonths}\n        >\n          {$slots}\n        </DatetimerangePanel>\n      ) : type === 'month' || type === 'year' || type === 'quarter' ? (\n        <MonthPanel {...commonPanelProps} type={type} key={type} />\n      ) : type === 'monthrange'\n        || type === 'yearrange'\n        || type === 'quarterrange' ? (\n            <MonthRangePanel {...commonPanelProps} type={type} />\n          ) : (\n            <DatePanel\n              {...commonPanelProps}\n              type={type}\n              defaultCalendarStartTime={this.defaultCalendarStartTime}\n            >\n              {$slots}\n            </DatePanel>\n          )\n    }\n    if (this.panel) {\n      return renderPanel()\n    }\n    triggerOnRender?.()\n    const commonInputProps: InputProps = {\n      bordered: this.mergedBordered,\n      size: this.mergedSize,\n      passivelyActivated: true,\n      disabled: this.mergedDisabled,\n      readonly: this.inputReadonly || this.mergedDisabled,\n      clearable,\n      onClear: this.handleClear,\n      onClick: this.handleTriggerClick,\n      onKeydown: this.handleInputKeydown,\n      onActivate: this.handleInputActivate,\n      onDeactivate: this.handleInputDeactivate,\n      onFocus: this.handleInputFocus,\n      onBlur: this.handleInputBlur\n    }\n    return (\n      <div\n        ref=\"triggerElRef\"\n        class={[\n          `${mergedClsPrefix}-date-picker`,\n          this.mergedDisabled && `${mergedClsPrefix}-date-picker--disabled`,\n          this.isRange && `${mergedClsPrefix}-date-picker--range`,\n          this.triggerThemeClass\n        ]}\n        style={this.triggerCssVars as CSSProperties}\n        onKeydown={this.handleKeydown}\n      >\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () =>\n                    this.isRange ? (\n                      <NInput\n                        ref=\"inputInstRef\"\n                        status={this.mergedStatus}\n                        value={[this.displayStartTime, this.displayEndTime]}\n                        placeholder={[\n                          this.localizedStartPlaceholder,\n                          this.localizedEndPlaceholder\n                        ]}\n                        textDecoration={[\n                          this.isStartValueInvalid ? 'line-through' : '',\n                          this.isEndValueInvalid ? 'line-through' : ''\n                        ]}\n                        pair\n                        onUpdateValue={this.handleRangeUpdateValue}\n                        theme={this.mergedTheme.peers.Input}\n                        themeOverrides={this.mergedTheme.peerOverrides.Input}\n                        internalForceFocus={this.mergedShow}\n                        internalDeactivateOnEnter\n                        {...commonInputProps}\n                      >\n                        {{\n                          separator: () =>\n                            this.separator === undefined\n                              ? resolveSlot($slots.separator, () => [\n                                  <NBaseIcon\n                                    clsPrefix={mergedClsPrefix}\n                                    class={`${mergedClsPrefix}-date-picker-icon`}\n                                  >\n                                    {{\n                                      default: () => <ToIcon />\n                                    }}\n                                  </NBaseIcon>\n                                ])\n                              : this.separator,\n                          [clearable ? 'clear-icon-placeholder' : 'suffix']:\n                            () =>\n                              resolveSlot($slots['date-icon'], () => [\n                                <NBaseIcon\n                                  clsPrefix={mergedClsPrefix}\n                                  class={`${mergedClsPrefix}-date-picker-icon`}\n                                >\n                                  {{\n                                    default: () => <DateIcon />\n                                  }}\n                                </NBaseIcon>\n                              ])\n                        }}\n                      </NInput>\n                    ) : (\n                      <NInput\n                        ref=\"inputInstRef\"\n                        status={this.mergedStatus}\n                        value={this.displayTime}\n                        placeholder={this.localizedPlacehoder}\n                        textDecoration={\n                          this.isValueInvalid && !this.isRange\n                            ? 'line-through'\n                            : ''\n                        }\n                        onUpdateValue={this.handleSingleUpdateValue}\n                        theme={this.mergedTheme.peers.Input}\n                        themeOverrides={this.mergedTheme.peerOverrides.Input}\n                        internalForceFocus={this.mergedShow}\n                        internalDeactivateOnEnter\n                        {...commonInputProps}\n                      >\n                        {{\n                          [clearable ? 'clear-icon-placeholder' : 'suffix']:\n                            () => (\n                              <NBaseIcon\n                                clsPrefix={mergedClsPrefix}\n                                class={`${mergedClsPrefix}-date-picker-icon`}\n                              >\n                                {{\n                                  default: () =>\n                                    resolveSlot($slots['date-icon'], () => [\n                                      <DateIcon />\n                                    ])\n                                }}\n                              </NBaseIcon>\n                            )\n                        }}\n                      </NInput>\n                    )\n                }}\n              </VTarget>,\n              <VFollower\n                show={this.mergedShow}\n                containerClass={this.namespace}\n                to={this.adjustedTo}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                placement={this.placement}\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                    >\n                      {{\n                        default: () => {\n                          if (!this.mergedShow)\n                            return null\n                          return withDirectives(renderPanel(), [\n                            [\n                              clickoutside,\n                              this.handleClickOutside,\n                              undefined,\n                              { capture: true }\n                            ]\n                          ])\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","export default {\n  thPaddingBorderedSmall: '8px 12px',\n  thPaddingBorderedMedium: '12px 16px',\n  thPaddingBorderedLarge: '16px 24px',\n  thPaddingSmall: '0',\n  thPaddingMedium: '0',\n  thPaddingLarge: '0',\n  tdPaddingBorderedSmall: '8px 12px',\n  tdPaddingBorderedMedium: '12px 16px',\n  tdPaddingBorderedLarge: '16px 24px',\n  tdPaddingSmall: '0 0 8px 0',\n  tdPaddingMedium: '0 0 12px 0',\n  tdPaddingLarge: '0 0 16px 0'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { composite } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    tableHeaderColor,\n    textColor2,\n    textColor1,\n    cardColor,\n    modalColor,\n    popoverColor,\n    dividerColor,\n    borderRadius,\n    fontWeightStrong,\n    lineHeight,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge\n  } = vars\n  return {\n    ...commonVariables,\n    lineHeight,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    titleTextColor: textColor1,\n    thColor: composite(cardColor, tableHeaderColor),\n    thColorModal: composite(modalColor, tableHeaderColor),\n    thColorPopover: composite(popoverColor, tableHeaderColor),\n    thTextColor: textColor1,\n    thFontWeight: fontWeightStrong,\n    tdTextColor: textColor2,\n    tdColor: cardColor,\n    tdColorModal: modalColor,\n    tdColorPopover: popoverColor,\n    borderColor: composite(cardColor, dividerColor),\n    borderColorModal: composite(modalColor, dividerColor),\n    borderColorPopover: composite(popoverColor, dividerColor),\n    borderRadius\n  }\n}\n\nexport interface DescriptionsThemeVars extends ReturnType<typeof self> {}\n\nconst descriptionsLight: DescriptionsTheme = {\n  name: 'Descriptions',\n  common: commonLight,\n  self\n}\n\nexport interface DescriptionsTheme extends Theme<\n  'Descriptions',\n  DescriptionsThemeVars\n> {}\n\nexport interface DescriptionsThemeOverrides extends ExtractThemeOverrides<DescriptionsTheme> {}\n\nexport default descriptionsLight\n","import type { DescriptionsTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst descriptionsDark: DescriptionsTheme = {\n  name: 'Descriptions',\n  common: commonDark,\n  self\n}\n\nexport default descriptionsDark\n","import { c, cB, cE, cM, cNotM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-th-padding\n// --n-td-padding\n// --n-font-size\n// --n-bezier\n// --n-th-font-weight\n// --n-line-height\n// --n-th-text-color\n// --n-td-text-color\n// --n-th-color\n// --n-th-color-modal\n// --n-th-color-popover\n// --n-td-color\n// --n-td-color-modal\n// --n-td-color-popover\n// --n-border-radius\n// --n-border-color\n// --n-border-color-modal\n// --n-border-color-popover\n// --n-title-text-color\nexport default c([\n  cB('descriptions', {\n    fontSize: 'var(--n-font-size)'\n  }, [\n    cB('descriptions-separator', `\n      display: inline-block;\n      margin: 0 8px 0 2px;\n    `),\n    cB('descriptions-table-wrapper', [\n      cB('descriptions-table', [\n        cB('descriptions-table-row', [\n          cB('descriptions-table-header', {\n            padding: 'var(--n-th-padding)'\n          }),\n          cB('descriptions-table-content', {\n            padding: 'var(--n-td-padding)'\n          })\n        ])\n      ])\n    ]),\n    cNotM('bordered', [\n      cB('descriptions-table-wrapper', [\n        cB('descriptions-table', [\n          cB('descriptions-table-row', [\n            c('&:last-child', [\n              cB('descriptions-table-content', {\n                paddingBottom: 0\n              })\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cM('left-label-placement', [\n      cB('descriptions-table-content', [\n        c('> *', {\n          verticalAlign: 'top'\n        })\n      ])\n    ]),\n    cM('left-label-align', [\n      c('th', {\n        textAlign: 'left'\n      })\n    ]),\n    cM('center-label-align', [\n      c('th', {\n        textAlign: 'center'\n      })\n    ]),\n    cM('right-label-align', [\n      c('th', {\n        textAlign: 'right'\n      })\n    ]),\n    cM('bordered', [\n      cB('descriptions-table-wrapper', `\n        border-radius: var(--n-border-radius);\n        overflow: hidden;\n        background: var(--n-merged-td-color);\n        border: 1px solid var(--n-merged-border-color);\n      `, [\n        cB('descriptions-table', [\n          cB('descriptions-table-row', [\n            c('&:not(:last-child)', [\n              cB('descriptions-table-content', {\n                borderBottom: '1px solid var(--n-merged-border-color)'\n              }),\n              cB('descriptions-table-header', {\n                borderBottom: '1px solid var(--n-merged-border-color)'\n              })\n            ]),\n            cB('descriptions-table-header', `\n              font-weight: 400;\n              background-clip: padding-box;\n              background-color: var(--n-merged-th-color);\n            `, [\n              c('&:not(:last-child)', {\n                borderRight: '1px solid var(--n-merged-border-color)'\n              })\n            ]),\n            cB('descriptions-table-content', [\n              c('&:not(:last-child)', {\n                borderRight: '1px solid var(--n-merged-border-color)'\n              })\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cB('descriptions-header', `\n      font-weight: var(--n-th-font-weight);\n      font-size: 18px;\n      transition: color .3s var(--n-bezier);\n      line-height: var(--n-line-height);\n      margin-bottom: 16px;\n      color: var(--n-title-text-color);\n    `),\n    cB('descriptions-table-wrapper', `\n      transition:\n        background-color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier);\n    `, [\n      cB('descriptions-table', `\n        width: 100%;\n        border-collapse: separate;\n        border-spacing: 0;\n        box-sizing: border-box;\n      `, [\n        cB('descriptions-table-row', `\n          box-sizing: border-box;\n          transition: border-color .3s var(--n-bezier);\n        `, [\n          cB('descriptions-table-header', `\n            font-weight: var(--n-th-font-weight);\n            line-height: var(--n-line-height);\n            display: table-cell;\n            box-sizing: border-box;\n            color: var(--n-th-text-color);\n            transition:\n              color .3s var(--n-bezier),\n              background-color .3s var(--n-bezier),\n              border-color .3s var(--n-bezier);\n          `),\n          cB('descriptions-table-content', `\n            vertical-align: top;\n            line-height: var(--n-line-height);\n            display: table-cell;\n            box-sizing: border-box;\n            color: var(--n-td-text-color);\n            transition:\n              color .3s var(--n-bezier),\n              background-color .3s var(--n-bezier),\n              border-color .3s var(--n-bezier);\n          `, [\n            cE('content', `\n              transition: color .3s var(--n-bezier);\n              display: inline-block;\n              color: var(--n-td-text-color);\n            `)\n          ]),\n          cE('label', `\n            font-weight: var(--n-th-font-weight);\n            transition: color .3s var(--n-bezier);\n            display: inline-block;\n            margin-right: 14px;\n            color: var(--n-th-text-color);\n          `)\n        ])\n      ])\n    ])\n  ]),\n  cB('descriptions-table-wrapper', `\n    --n-merged-th-color: var(--n-th-color);\n    --n-merged-td-color: var(--n-td-color);\n    --n-merged-border-color: var(--n-border-color);\n  `),\n  insideModal(\n    cB('descriptions-table-wrapper', `\n      --n-merged-th-color: var(--n-th-color-modal);\n      --n-merged-td-color: var(--n-td-color-modal);\n      --n-merged-border-color: var(--n-border-color-modal);\n    `)\n  ),\n  insidePopover(\n    cB('descriptions-table-wrapper', `\n      --n-merged-th-color: var(--n-th-color-popover);\n      --n-merged-td-color: var(--n-td-color-popover);\n      --n-merged-border-color: var(--n-border-color-popover);\n    `)\n  )\n])\n","import type { VNodeChild } from 'vue'\n\nexport const DESCRIPTION_ITEM_FLAG = 'DESCRIPTION_ITEM_FLAG'\n\nexport function isDescriptionsItem(vNode: VNodeChild): boolean {\n  if (typeof vNode === 'object' && vNode && !Array.isArray(vNode)) {\n    return vNode.type && (vNode.type as any)[DESCRIPTION_ITEM_FLAG]\n  }\n  return false\n}\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { DescriptionsTheme, DescriptionsThemeOverrides } from '../styles'\nimport type { DescriptionsSize } from './public-types'\nimport { repeat } from 'seemly'\nimport { useCompitable } from 'vooks'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  createKey,\n  flatten,\n  getSlot,\n  getVNodeChildren,\n  warn\n} from '../../_utils'\nimport { descriptionsLight } from '../styles'\nimport style from './styles/index.cssr'\nimport { isDescriptionsItem } from './utils'\n\nexport const descriptionsProps = {\n  ...(useTheme.props as ThemeProps<\n    DescriptionsTheme,\n    DescriptionsThemeOverrides\n  >),\n  title: String,\n  column: {\n    type: Number,\n    default: 3\n  },\n  columns: Number,\n  labelPlacement: {\n    type: String as PropType<'left' | 'top'>,\n    default: 'top'\n  },\n  labelAlign: {\n    type: String as PropType<'left' | 'right' | 'center'>,\n    default: 'left'\n  },\n  separator: {\n    type: String,\n    default: ':'\n  },\n  size: String as PropType<DescriptionsSize>,\n  bordered: Boolean,\n  labelClass: String,\n  labelStyle: [Object, String] as PropType<string | CSSProperties>,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<string | CSSProperties>\n} as const\n\nexport type DescriptionsProps = ExtractPublicPropTypes<typeof descriptionsProps>\n/** @deprecated You should use `DescriptionsProps` */\nexport type DescriptionProps = DescriptionsProps\n\nexport interface DescriptionsSlots {\n  default?: () => VNode[]\n  header?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Descriptions',\n  props: descriptionsProps,\n  slots: Object as SlotsType<DescriptionsSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size\n        || mergedComponentPropsRef?.value?.Descriptions?.size\n        || 'medium'\n      )\n    })\n    const themeRef = useTheme(\n      'Descriptions',\n      '-descriptions',\n      style,\n      descriptionsLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { bordered } = props\n      const mergedSize = mergedSizeRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          titleTextColor,\n          thColor,\n          thColorModal,\n          thColorPopover,\n          thTextColor,\n          thFontWeight,\n          tdTextColor,\n          tdColor,\n          tdColorModal,\n          tdColorPopover,\n          borderColor,\n          borderColorModal,\n          borderColorPopover,\n          borderRadius,\n          lineHeight,\n          [createKey('fontSize', mergedSize)]: fontSize,\n          [createKey(bordered ? 'thPaddingBordered' : 'thPadding', mergedSize)]:\n            thPadding,\n          [createKey(bordered ? 'tdPaddingBordered' : 'tdPadding', mergedSize)]:\n            tdPadding\n        }\n      } = themeRef.value\n      return {\n        '--n-title-text-color': titleTextColor,\n        '--n-th-padding': thPadding,\n        '--n-td-padding': tdPadding,\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-th-font-weight': thFontWeight,\n        '--n-line-height': lineHeight,\n        '--n-th-text-color': thTextColor,\n        '--n-td-text-color': tdTextColor,\n        '--n-th-color': thColor,\n        '--n-th-color-modal': thColorModal,\n        '--n-th-color-popover': thColorPopover,\n        '--n-td-color': tdColor,\n        '--n-td-color-modal': tdColorModal,\n        '--n-td-color-popover': tdColorPopover,\n        '--n-border-radius': borderRadius,\n        '--n-border-color': borderColor,\n        '--n-border-color-modal': borderColorModal,\n        '--n-border-color-popover': borderColorPopover\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'descriptions',\n          computed(() => {\n            let hash = ''\n            const { bordered } = props\n            if (bordered)\n              hash += 'a'\n            hash += mergedSizeRef.value[0]\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      compitableColumn: useCompitable(props, ['columns', 'column']),\n      inlineThemeDisabled,\n      mergedSize: mergedSizeRef\n    }\n  },\n  render() {\n    const defaultSlots = this.$slots.default\n    const children = defaultSlots ? flatten(defaultSlots()) : []\n    const memorizedLength = children.length\n    const {\n      contentClass,\n      labelClass,\n      compitableColumn,\n      labelPlacement,\n      labelAlign,\n      mergedSize,\n      bordered,\n      title,\n      cssVars,\n      mergedClsPrefix,\n      separator,\n      onRender\n    } = this\n    onRender?.()\n    const filteredChildren: VNode[] = children.filter(child =>\n      isDescriptionsItem(child)\n    )\n    if (__DEV__ && memorizedLength !== filteredChildren.length) {\n      warn(\n        'descriptions',\n        '`n-descriptions` only takes `n-descriptions-item` as children.'\n      )\n    }\n    const defaultState: {\n      span: number\n      row: VNode[]\n      secondRow: VNode[]\n      rows: VNode[][]\n    } = {\n      span: 0,\n      row: [],\n      secondRow: [],\n      rows: []\n    }\n    const itemState = filteredChildren.reduce((state, vNode, index) => {\n      const props = vNode.props || {}\n      const isLastIteration = filteredChildren.length - 1 === index\n      const itemLabel = [\n        'label' in props ? props.label : getVNodeChildren(vNode, 'label')\n      ]\n      const itemChildren = [getVNodeChildren(vNode)]\n      const itemSpan = (props.span as number) || 1\n      const memorizedSpan = state.span\n      state.span += itemSpan\n      const labelStyle\n        = props.labelStyle || props['label-style'] || this.labelStyle\n      const contentStyle\n        = props.contentStyle || props['content-style'] || this.contentStyle\n      if (labelPlacement === 'left') {\n        if (bordered) {\n          state.row.push(\n            <th\n              class={[\n                `${mergedClsPrefix}-descriptions-table-header`,\n                labelClass\n              ]}\n              colspan={1}\n              style={labelStyle}\n            >\n              {itemLabel}\n            </th>,\n            <td\n              class={[\n                `${mergedClsPrefix}-descriptions-table-content`,\n                contentClass\n              ]}\n              colspan={\n                isLastIteration\n                  ? (compitableColumn - memorizedSpan) * 2 + 1\n                  : itemSpan * 2 - 1\n              }\n              style={contentStyle}\n            >\n              {itemChildren}\n            </td>\n          )\n        }\n        else {\n          state.row.push(\n            <td\n              class={`${mergedClsPrefix}-descriptions-table-content`}\n              colspan={\n                isLastIteration\n                  ? (compitableColumn - memorizedSpan) * 2\n                  : itemSpan * 2\n              }\n            >\n              <span\n                class={[\n                  `${mergedClsPrefix}-descriptions-table-content__label`,\n                  labelClass\n                ]}\n                style={labelStyle}\n              >\n                {[\n                  ...itemLabel,\n                  separator && (\n                    <span class={`${mergedClsPrefix}-descriptions-separator`}>\n                      {separator}\n                    </span>\n                  )\n                ]}\n              </span>\n              <span\n                class={[\n                  `${mergedClsPrefix}-descriptions-table-content__content`,\n                  contentClass\n                ]}\n                style={contentStyle}\n              >\n                {itemChildren}\n              </span>\n            </td>\n          )\n        }\n      }\n      else {\n        const colspan = isLastIteration\n          ? (compitableColumn - memorizedSpan) * 2\n          : itemSpan * 2\n        state.row.push(\n          <th\n            class={[`${mergedClsPrefix}-descriptions-table-header`, labelClass]}\n            colspan={colspan}\n            style={labelStyle}\n          >\n            {itemLabel}\n          </th>\n        )\n        state.secondRow.push(\n          <td\n            class={[\n              `${mergedClsPrefix}-descriptions-table-content`,\n              contentClass\n            ]}\n            colspan={colspan}\n            style={contentStyle}\n          >\n            {itemChildren}\n          </td>\n        )\n      }\n      if (state.span >= compitableColumn || isLastIteration) {\n        state.span = 0\n        if (state.row.length) {\n          state.rows.push(state.row)\n          state.row = []\n        }\n        if (labelPlacement !== 'left') {\n          if (state.secondRow.length) {\n            state.rows.push(state.secondRow)\n            state.secondRow = []\n          }\n        }\n      }\n      return state\n    }, defaultState)\n    const rows = itemState.rows.map(row => (\n      <tr class={`${mergedClsPrefix}-descriptions-table-row`}>{row}</tr>\n    ))\n    return (\n      <div\n        style={cssVars as any}\n        class={[\n          `${mergedClsPrefix}-descriptions`,\n          this.themeClass,\n          `${mergedClsPrefix}-descriptions--${labelPlacement}-label-placement`,\n          `${mergedClsPrefix}-descriptions--${labelAlign}-label-align`,\n          `${mergedClsPrefix}-descriptions--${mergedSize}-size`,\n          bordered && `${mergedClsPrefix}-descriptions--bordered`\n        ]}\n      >\n        {title || this.$slots.header ? (\n          <div class={`${mergedClsPrefix}-descriptions-header`}>\n            {title || getSlot(this, 'header')}\n          </div>\n        ) : null}\n        <div class={`${mergedClsPrefix}-descriptions-table-wrapper`}>\n          <table class={`${mergedClsPrefix}-descriptions-table`}>\n            <tbody>\n              {labelPlacement === 'top' && (\n                <tr\n                  class={`${mergedClsPrefix}-descriptions-table-row`}\n                  style={{\n                    visibility: 'collapse'\n                  }}\n                >\n                  {repeat(compitableColumn * 2, <td />)}\n                </tr>\n              )}\n              {rows}\n            </tbody>\n          </table>\n        </div>\n      </div>\n    )\n  }\n})\n","import type { CSSProperties, PropType, SlotsType, VNode } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent } from 'vue'\nimport { DESCRIPTION_ITEM_FLAG } from './utils'\n\nexport const descriptionsItemProps = {\n  label: String,\n  span: {\n    type: Number,\n    default: 1\n  },\n  labelClass: String,\n  labelStyle: [Object, String] as PropType<string | CSSProperties>,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<string | CSSProperties>\n} as const\n\nexport type DescriptionItemProps = ExtractPublicPropTypes<\n  typeof descriptionsItemProps\n>\n\nexport interface DescriptionItemSlots {\n  default?: () => VNode[]\n  label?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'DescriptionsItem',\n  [DESCRIPTION_ITEM_FLAG]: true,\n  props: descriptionsItemProps,\n  slots: Object as SlotsType<DescriptionItemSlots>,\n  render() {\n    return null\n  }\n})\n","import type {\n  DialogApiInjection,\n  DialogProviderInjection,\n  DialogReactiveListInjection\n} from './DialogProvider'\nimport { createInjectionKey } from '../../_utils'\n\nexport const dialogProviderInjectionKey\n  = createInjectionKey<DialogProviderInjection>('n-dialog-provider')\n\nexport const dialogApiInjectionKey\n  = createInjectionKey<DialogApiInjection>('n-dialog-api')\n\nexport const dialogReactiveListInjectionKey\n  = createInjectionKey<DialogReactiveListInjection>('n-dialog-reactive-list')\n","import type { Ref } from 'vue'\nimport type { DialogApiInjection, DialogReactive } from './DialogProvider'\nimport { inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport {\n  dialogApiInjectionKey,\n  dialogReactiveListInjectionKey\n} from './context'\n\nexport function useDialog(): DialogApiInjection {\n  const dialog = inject(dialogApiInjectionKey, null)\n  if (dialog === null) {\n    throwError('use-dialog', 'No outer <n-dialog-provider /> founded.')\n  }\n  return dialog\n}\n\nexport function useDialogReactiveList(): Ref<readonly DialogReactive[]> {\n  const dialogReactiveList = inject(dialogReactiveListInjectionKey, null)\n  if (dialogReactiveList === null) {\n    throwError(\n      'use-dialog-reactive-list',\n      'No outer <n-dialog-provider /> founded.'\n    )\n  }\n  return dialogReactiveList\n}\n","export default {\n  titleFontSize: '18px',\n  padding: '16px 28px 20px 28px',\n  iconSize: '28px',\n  actionSpace: '12px',\n  contentMargin: '8px 0 16px 0',\n  iconMargin: '0 4px 0 0',\n  iconMarginIconTop: '4px 0 8px 0',\n  closeSize: '22px',\n  closeIconSize: '18px',\n  closeMargin: '20px 26px 0 0',\n  closeMarginIconTop: '10px 16px 0 0'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor1,\n    textColor2,\n    modalColor,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    infoColor,\n    successColor,\n    warningColor,\n    errorColor,\n    primaryColor,\n    dividerColor,\n    borderRadius,\n    fontWeightStrong,\n    lineHeight,\n    fontSize\n  } = vars\n  return {\n    ...commonVars,\n    fontSize,\n    lineHeight,\n    border: `1px solid ${dividerColor}`,\n    titleTextColor: textColor1,\n    textColor: textColor2,\n    color: modalColor,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeBorderRadius: borderRadius,\n    iconColor: primaryColor,\n    iconColorInfo: infoColor,\n    iconColorSuccess: successColor,\n    iconColorWarning: warningColor,\n    iconColorError: errorColor,\n    borderRadius,\n    titleFontWeight: fontWeightStrong\n  }\n}\n\nexport interface DialogThemeVars extends ReturnType<typeof self> {}\n\nconst dialogLight: DialogTheme = createTheme({\n  name: 'Dialog',\n  common: commonLight,\n  peers: {\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface DialogTheme extends Theme<\n  'Dialog',\n  DialogThemeVars,\n  {\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface DialogThemeOverrides extends ExtractThemeOverrides<DialogTheme> {}\n\nexport default dialogLight\n","import type { DialogTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { self } from './light'\n\nconst dialogDark: DialogTheme = {\n  name: 'Dialog',\n  common: commonDark,\n  peers: {\n    Button: buttonDark\n  },\n  self\n}\n\nexport default dialogDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('dialog', [\n  cM('rtl', `\n    --n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-left) var(--n-icon-margin-bottom) var(--n-icon-margin-right);\n    direction: rtl;\n  `, [\n    cE('close', `\n      right: unset;\n      left: 0;\n      margin-left: 1.8rem;\n    `),\n    cE('action', `\n      direction: rtl;\n      display: flex;\n    `, [\n      c('> *:not(:first-child)', `\n        margin-right: var(--n-action-space);\n      `),\n      c('> *', `\n        margin-right: 0;\n      `)\n    ]),\n    cM('icon-left', [\n      cM('closable', [\n        cE('title', `\n          padding-right: unset;\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const dialogRtl: RtlItem = {\n  name: 'Dialog',\n  style: rtlStyle\n}\n","import type { CSSProperties, PropType, VNodeChild } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ButtonProps } from '../../button'\nimport type { IconPlacement } from './interface'\nimport { keysOf } from '../../_utils'\n\nconst dialogProps = {\n  icon: Function as PropType<() => VNodeChild>,\n  type: {\n    type: String as PropType<\n      'info' | 'success' | 'warning' | 'error' | 'default'\n    >,\n    default: 'default'\n  },\n  title: [String, Function] as PropType<string | (() => VNodeChild)>,\n  closable: {\n    type: Boolean,\n    default: true\n  },\n  negativeText: String,\n  positiveText: String,\n  positiveButtonProps: Object as PropType<ButtonProps>,\n  negativeButtonProps: Object as PropType<ButtonProps>,\n  content: [String, Function] as PropType<string | (() => VNodeChild)>,\n  action: Function as PropType<() => VNodeChild>,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  loading: Boolean,\n  bordered: Boolean,\n  iconPlacement: String as PropType<IconPlacement>,\n  titleClass: [String, Array] as PropType<string | Array<string | undefined>>,\n  titleStyle: [String, Object] as PropType<string | CSSProperties>,\n  contentClass: [String, Array] as PropType<string | Array<string | undefined>>,\n  contentStyle: [String, Object] as PropType<string | CSSProperties>,\n  actionClass: [String, Array] as PropType<string | Array<string | undefined>>,\n  actionStyle: [String, Object] as PropType<string | CSSProperties>,\n  onPositiveClick: Function as PropType<(e: MouseEvent) => void>,\n  onNegativeClick: Function as PropType<(e: MouseEvent) => void>,\n  onClose: Function as PropType<() => void>,\n  closeFocusable: Boolean\n} as const\n\nexport type DialogProps = ExtractPublicPropTypes<typeof dialogProps>\nexport { dialogProps }\nexport const dialogPropKeys = keysOf(dialogProps)\n","import { asModal, c, cB, cE, cM, insideModal } from '../../../_utils/cssr'\n\n// vars:\n// --n-icon-color\n// --n-bezier\n// --n-icon-margin-top\n// --n-icon-margin-right\n// --n-icon-margin-bottom\n// --n-icon-margin-left\n// --n-icon-size\n// --n-close-border-radius\n// --n-close-margin\n// --n-close-size\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-color\n// --n-text-color\n// --n-border-radius\n// --n-padding\n// --n-line-height\n// --n-border\n// --n-content-margin\n// --n-title-font-size\n// --n-title-font-weight\n// --n-title-text-color\n// --n-action-space\nexport default c([\n  cB('dialog', `\n    --n-icon-margin: var(--n-icon-margin-top) var(--n-icon-margin-right) var(--n-icon-margin-bottom) var(--n-icon-margin-left);\n    word-break: break-word;\n    line-height: var(--n-line-height);\n    position: relative;\n    background: var(--n-color);\n    color: var(--n-text-color);\n    box-sizing: border-box;\n    margin: auto;\n    border-radius: var(--n-border-radius);\n    padding: var(--n-padding);\n    transition: \n      border-color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n  `, [\n    cE('icon', `\n      color: var(--n-icon-color);\n    `),\n    cM('bordered', `\n      border: var(--n-border);\n    `),\n    cM('icon-top', [\n      cE('close', `\n        margin: var(--n-close-margin);\n      `),\n      cE('icon', `\n        margin: var(--n-icon-margin);\n      `),\n      cE('content', `\n        text-align: center;\n      `),\n      cE('title', `\n        justify-content: center;\n      `),\n      cE('action', `\n        justify-content: center;\n      `)\n    ]),\n    cM('icon-left', [\n      cE('icon', `\n        margin: var(--n-icon-margin);\n      `),\n      cM('closable', [\n        cE('title', `\n          padding-right: calc(var(--n-close-size) + 6px);\n        `)\n      ])\n    ]),\n    cE('close', `\n      position: absolute;\n      right: 0;\n      top: 0;\n      margin: var(--n-close-margin);\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      z-index: 1;\n    `),\n    cE('content', `\n      font-size: var(--n-font-size);\n      margin: var(--n-content-margin);\n      position: relative;\n      word-break: break-word;\n    `, [\n      cM('last', 'margin-bottom: 0;')\n    ]),\n    cE('action', `\n      display: flex;\n      justify-content: flex-end;\n    `, [\n      c('> *:not(:last-child)', `\n        margin-right: var(--n-action-space);\n      `)\n    ]),\n    cE('icon', `\n      font-size: var(--n-icon-size);\n      transition: color .3s var(--n-bezier);\n    `),\n    cE('title', `\n      transition: color .3s var(--n-bezier);\n      display: flex;\n      align-items: center;\n      font-size: var(--n-title-font-size);\n      font-weight: var(--n-title-font-weight);\n      color: var(--n-title-text-color);\n    `),\n    cB('dialog-icon-container', `\n      display: flex;\n      justify-content: center;\n    `)\n  ]),\n  insideModal(\n    cB('dialog', `\n      width: 446px;\n      max-width: calc(100vw - 32px);\n    `)\n  ),\n  cB('dialog', [\n    asModal(`\n      width: 446px;\n      max-width: calc(100vw - 32px);\n    `)\n  ])\n])\n","import type { CSSProperties, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { DialogTheme, DialogThemeOverrides } from '../styles'\nimport { getMargin } from 'seemly'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseClose, NBaseIcon } from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  createKey,\n  render,\n  resolveSlot,\n  resolveWrappedSlot\n} from '../../_utils'\nimport { NButton } from '../../button'\nimport { dialogLight } from '../styles'\nimport { dialogProps } from './dialogProps'\nimport style from './styles/index.cssr'\n\nconst iconRenderMap = {\n  default: () => <InfoIcon />,\n  info: () => <InfoIcon />,\n  success: () => <SuccessIcon />,\n  warning: () => <WarningIcon />,\n  error: () => <ErrorIcon />\n}\n\nexport interface DialogSlots {\n  action?: () => VNode[]\n  default?: () => VNode[]\n  header?: () => VNode[]\n  icon?: () => VNode[]\n  close?: () => VNode[]\n}\n\nexport const NDialog = defineComponent({\n  name: 'Dialog',\n  alias: [\n    'NimbusConfirmCard', // deprecated\n    'Confirm' // deprecated\n  ],\n  props: {\n    ...(useTheme.props as ThemeProps<DialogTheme, DialogThemeOverrides>),\n    ...dialogProps\n  },\n  slots: Object as SlotsType<DialogSlots>,\n  setup(props) {\n    const {\n      mergedComponentPropsRef,\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef\n    } = useConfig(props)\n    const rtlEnabledRef = useRtl('Dialog', mergedRtlRef, mergedClsPrefixRef)\n    const mergedIconPlacementRef = computed(() => {\n      const { iconPlacement } = props\n      return (\n        iconPlacement\n        || mergedComponentPropsRef?.value?.Dialog?.iconPlacement\n        || 'left'\n      )\n    })\n    function handlePositiveClick(e: MouseEvent): void {\n      const { onPositiveClick } = props\n      if (onPositiveClick)\n        onPositiveClick(e)\n    }\n    function handleNegativeClick(e: MouseEvent): void {\n      const { onNegativeClick } = props\n      if (onNegativeClick)\n        onNegativeClick(e)\n    }\n    function handleCloseClick(): void {\n      const { onClose } = props\n      if (onClose)\n        onClose()\n    }\n    const themeRef = useTheme(\n      'Dialog',\n      '-dialog',\n      style,\n      dialogLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { type } = props\n      const iconPlacement = mergedIconPlacementRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontSize,\n          lineHeight,\n          border,\n          titleTextColor,\n          textColor,\n          color,\n          closeBorderRadius,\n          closeColorHover,\n          closeColorPressed,\n          closeIconColor,\n          closeIconColorHover,\n          closeIconColorPressed,\n          closeIconSize,\n          borderRadius,\n          titleFontWeight,\n          titleFontSize,\n          padding,\n          iconSize,\n          actionSpace,\n          contentMargin,\n          closeSize,\n          [iconPlacement === 'top' ? 'iconMarginIconTop' : 'iconMargin']:\n            iconMargin,\n          [iconPlacement === 'top' ? 'closeMarginIconTop' : 'closeMargin']:\n            closeMargin,\n          [createKey('iconColor', type)]: iconColor\n        }\n      } = themeRef.value\n      const iconMarginDiscrete = getMargin(iconMargin)\n      return {\n        '--n-font-size': fontSize,\n        '--n-icon-color': iconColor,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-close-margin': closeMargin,\n        '--n-icon-margin-top': iconMarginDiscrete.top,\n        '--n-icon-margin-right': iconMarginDiscrete.right,\n        '--n-icon-margin-bottom': iconMarginDiscrete.bottom,\n        '--n-icon-margin-left': iconMarginDiscrete.left,\n        '--n-icon-size': iconSize,\n        '--n-close-size': closeSize,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-color': color,\n        '--n-text-color': textColor,\n        '--n-border-radius': borderRadius,\n        '--n-padding': padding,\n        '--n-line-height': lineHeight,\n        '--n-border': border,\n        '--n-content-margin': contentMargin,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-title-text-color': titleTextColor,\n        '--n-action-space': actionSpace\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'dialog',\n          computed(() => `${props.type[0]}${mergedIconPlacementRef.value[0]}`),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedIconPlacement: mergedIconPlacementRef,\n      mergedTheme: themeRef,\n      handlePositiveClick,\n      handleNegativeClick,\n      handleCloseClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      bordered,\n      mergedIconPlacement,\n      cssVars,\n      closable,\n      showIcon,\n      title,\n      content,\n      action,\n      negativeText,\n      positiveText,\n      positiveButtonProps,\n      negativeButtonProps,\n      handlePositiveClick,\n      handleNegativeClick,\n      mergedTheme,\n      loading,\n      type,\n      mergedClsPrefix\n    } = this\n\n    this.onRender?.()\n\n    const icon = showIcon ? (\n      <NBaseIcon\n        clsPrefix={mergedClsPrefix}\n        class={`${mergedClsPrefix}-dialog__icon`}\n      >\n        {{\n          default: () =>\n            resolveWrappedSlot(\n              this.$slots.icon,\n              children =>\n                children\n                || (this.icon ? render(this.icon) : iconRenderMap[this.type]())\n            )\n        }}\n      </NBaseIcon>\n    ) : null\n\n    const actionNode = resolveWrappedSlot(this.$slots.action, children =>\n      children || positiveText || negativeText || action ? (\n        <div\n          class={[`${mergedClsPrefix}-dialog__action`, this.actionClass]}\n          style={this.actionStyle}\n        >\n          {children\n            || (action\n              ? [render(action)]\n              : [\n                  this.negativeText && (\n                    <NButton\n                      theme={mergedTheme.peers.Button}\n                      themeOverrides={mergedTheme.peerOverrides.Button}\n                      ghost\n                      size=\"small\"\n                      onClick={handleNegativeClick}\n                      {...negativeButtonProps}\n                    >\n                      {{\n                        default: () => render(this.negativeText)\n                      }}\n                    </NButton>\n                  ),\n                  this.positiveText && (\n                    <NButton\n                      theme={mergedTheme.peers.Button}\n                      themeOverrides={mergedTheme.peerOverrides.Button}\n                      size=\"small\"\n                      type={type === 'default' ? 'primary' : type}\n                      disabled={loading}\n                      loading={loading}\n                      onClick={handlePositiveClick}\n                      {...positiveButtonProps}\n                    >\n                      {{\n                        default: () => render(this.positiveText)\n                      }}\n                    </NButton>\n                  )\n                ])}\n        </div>\n      ) : null)\n\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-dialog`,\n          this.themeClass,\n          this.closable && `${mergedClsPrefix}-dialog--closable`,\n          `${mergedClsPrefix}-dialog--icon-${mergedIconPlacement}`,\n          bordered && `${mergedClsPrefix}-dialog--bordered`,\n          this.rtlEnabled && `${mergedClsPrefix}-dialog--rtl`\n        ]}\n        style={cssVars as CSSProperties}\n        role=\"dialog\"\n      >\n        {closable\n          ? resolveWrappedSlot(this.$slots.close, (node) => {\n              const classNames = [\n                `${mergedClsPrefix}-dialog__close`,\n                this.rtlEnabled && `${mergedClsPrefix}-dialog--rtl`\n              ]\n              return node ? (\n                <div class={classNames}>{node}</div>\n              ) : (\n                <NBaseClose\n                  focusable={this.closeFocusable}\n                  clsPrefix={mergedClsPrefix}\n                  class={classNames}\n                  onClick={this.handleCloseClick}\n                />\n              )\n            })\n          : null}\n        {showIcon && mergedIconPlacement === 'top' ? (\n          <div class={`${mergedClsPrefix}-dialog-icon-container`}>{icon}</div>\n        ) : null}\n        <div\n          class={[`${mergedClsPrefix}-dialog__title`, this.titleClass]}\n          style={this.titleStyle}\n        >\n          {showIcon && mergedIconPlacement === 'left' ? icon : null}\n          {resolveSlot(this.$slots.header, () => [render(title)])}\n        </div>\n        <div\n          class={[\n            `${mergedClsPrefix}-dialog__content`,\n            actionNode ? '' : `${mergedClsPrefix}-dialog__content--last`,\n            this.contentClass\n          ]}\n          style={this.contentStyle}\n        >\n          {resolveSlot(this.$slots.default, () => [render(content)])}\n        </div>\n        {actionNode}\n      </div>\n    )\n  }\n})\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { CardTheme } from '../../card/styles'\nimport type { DialogTheme } from '../../dialog/styles'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { cardLight } from '../../card/styles'\nimport { dialogLight } from '../../dialog/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const { modalColor, textColor2, boxShadow3 } = vars\n  return {\n    color: modalColor,\n    textColor: textColor2,\n    boxShadow: boxShadow3\n  }\n}\n\nexport interface ModalThemeVars extends ReturnType<typeof self> {}\n\nconst modalLight: ModalTheme = createTheme({\n  name: 'Modal',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight,\n    Dialog: dialogLight,\n    Card: cardLight\n  },\n  self\n})\n\nexport interface ModalTheme extends Theme<\n  'Modal',\n  ModalThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n    Dialog: DialogTheme\n    Card: CardTheme\n  }\n> {}\n\nexport interface ModalThemeOverrides extends ExtractThemeOverrides<ModalTheme> {}\n\nexport default modalLight\n","import type { ModalTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { cardDark } from '../../card/styles'\nimport { dialogDark } from '../../dialog/styles'\nimport { self } from './light'\n\nconst modalDark: ModalTheme = {\n  name: 'Modal',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark,\n    Dialog: dialogDark,\n    Card: cardDark\n  },\n  self\n}\n\nexport default modalDark\n","import type {\n  ModalApiInjection,\n  ModalProviderInjection,\n  ModalReactiveListInjection\n} from './ModalProvider'\nimport { createInjectionKey } from '../../_utils'\n\nexport const modalProviderInjectionKey\n  = createInjectionKey<ModalProviderInjection>('n-modal-provider')\n\nexport const modalApiInjectionKey\n  = createInjectionKey<ModalApiInjection>('n-modal-api')\n\nexport const modalReactiveListInjectionKey\n  = createInjectionKey<ModalReactiveListInjection>('n-modal-reactive-list')\n","import type { Ref } from 'vue'\nimport type { ModalDraggableOptions } from './interface'\nimport type { ModalApiInjection, ModalReactive } from './ModalProvider'\nimport { off, on } from 'evtd'\nimport { computed, inject, nextTick, onUnmounted, ref } from 'vue'\nimport { throwError } from '../../_utils'\nimport { modalApiInjectionKey, modalReactiveListInjectionKey } from './context'\n\nexport function useModal(): ModalApiInjection {\n  const modal = inject(modalApiInjectionKey, null)\n  if (modal === null) {\n    throwError('use-modal', 'No outer <n-modal-provider /> founded.')\n  }\n  return modal\n}\n\nexport function useModalReactiveList(): Ref<readonly ModalReactive[]> {\n  const modalReactiveList = inject(modalReactiveListInjectionKey, null)\n  if (modalReactiveList === null) {\n    throwError(\n      'use-modal-reactive-list',\n      'No outer <n-modal-provider /> founded.'\n    )\n  }\n  return modalReactiveList\n}\n\nexport const DRAGGABLE_CLASS = 'n-draggable'\n\ninterface UseDragModalOptions {\n  onEnd: (el: HTMLElement) => void\n}\nexport function useDragModal(\n  draggablePropsRef: Ref<boolean | ModalDraggableOptions>,\n  options: UseDragModalOptions\n) {\n  let cleanup: undefined | (() => void)\n\n  const dragXRef = ref<number | null>(null)\n  const dragYRef = ref<number | null>(null)\n\n  const draggableRef = computed(() => {\n    return draggablePropsRef.value !== false\n  })\n\n  const draggableClassRef = computed(() => {\n    return draggableRef.value ? DRAGGABLE_CLASS : ''\n  })\n\n  const boundsToWindowRef = computed(() => {\n    const draggableProps = draggablePropsRef.value\n    if (draggableProps === true || draggableProps === false) {\n      return true\n    }\n    else if (draggableProps) {\n      return draggableProps.bounds !== 'none'\n    }\n    else {\n      return true\n    }\n  })\n\n  function startDrag(modal: HTMLElement) {\n    const header = modal.querySelector(`.${DRAGGABLE_CLASS}`) as HTMLElement\n    if (!header || !draggableClassRef.value) {\n      return\n    }\n\n    let maxMoveX = 0\n    let minMoveX = 0\n    let maxMoveY = 0\n    let minMoveY = 0\n    let prevMoveY = 0\n    let prevMoveX = 0\n    let mousedownEvent: MouseEvent | undefined\n    let rafId: number | null = null\n    let pendingPosition: { x: number, y: number } | null = null\n\n    function handleMouseDown(event: MouseEvent) {\n      event.preventDefault()\n      mousedownEvent = event\n      const { x, y, right, bottom } = modal.getBoundingClientRect()\n\n      minMoveX = x\n      minMoveY = y\n      maxMoveX = window.innerWidth - right\n      maxMoveY = window.innerHeight - bottom\n\n      if (dragXRef.value !== null && dragYRef.value !== null) {\n        prevMoveX = dragXRef.value\n        prevMoveY = dragYRef.value\n      }\n      else {\n        const { left, top } = modal.style\n        prevMoveY = +top.slice(0, -2)\n        prevMoveX = +left.slice(0, -2)\n      }\n    }\n\n    function updatePosition() {\n      if (pendingPosition) {\n        dragXRef.value = pendingPosition.x\n        dragYRef.value = pendingPosition.y\n        pendingPosition = null\n      }\n      rafId = null\n    }\n\n    function handleMouseMove(event: MouseEvent) {\n      if (!mousedownEvent)\n        return\n\n      const { clientX: downX, clientY: downY } = mousedownEvent\n\n      let moveX = event.clientX - downX\n      let moveY = event.clientY - downY\n      if (boundsToWindowRef.value) {\n        if (moveX > maxMoveX) {\n          moveX = maxMoveX\n        }\n        else if (-moveX > minMoveX) {\n          moveX = -minMoveX\n        }\n\n        if (moveY > maxMoveY) {\n          moveY = maxMoveY\n        }\n        else if (-moveY > minMoveY) {\n          moveY = -minMoveY\n        }\n      }\n      const x = moveX + prevMoveX\n      const y = moveY + prevMoveY\n\n      pendingPosition = { x, y }\n\n      if (!rafId) {\n        rafId = requestAnimationFrame(updatePosition)\n      }\n    }\n\n    function handleMouseUp() {\n      mousedownEvent = undefined\n      if (rafId) {\n        cancelAnimationFrame(rafId)\n        rafId = null\n      }\n      if (pendingPosition) {\n        dragXRef.value = pendingPosition.x\n        dragYRef.value = pendingPosition.y\n        pendingPosition = null\n      }\n      void nextTick(() => {\n        options.onEnd(modal)\n      })\n    }\n\n    on('mousedown', header, handleMouseDown)\n    on('mousemove', window, handleMouseMove)\n    on('mouseup', window, handleMouseUp)\n\n    cleanup = () => {\n      if (rafId) {\n        cancelAnimationFrame(rafId)\n      }\n      off('mousedown', header, handleMouseDown)\n      off('mousemove', window, handleMouseMove)\n      off('mouseup', window, handleMouseUp)\n    }\n  }\n\n  function stopDrag() {\n    if (cleanup) {\n      cleanup()\n      cleanup = undefined\n    }\n    dragXRef.value = null\n    dragYRef.value = null\n  }\n\n  onUnmounted(stopDrag)\n  return {\n    stopDrag,\n    startDrag,\n    draggableRef,\n    draggableClassRef,\n    dragX: dragXRef,\n    dragY: dragYRef\n  }\n}\n","import { keysOf } from '../../_utils'\nimport { cardBaseProps } from '../../card/src/Card'\nimport { dialogProps } from '../../dialog/src/dialogProps'\n\nconst presetProps = {\n  ...cardBaseProps,\n  // put dialog props after since I want the card to unbordered by default\n  ...dialogProps\n}\n\nconst presetPropsKeys = keysOf(presetProps)\n\n// Modal explicitly passes its own wrapped onClose/onPositiveClick/onNegativeClick\n// to NModalBodyWrapper, so exclude them here — otherwise Vue merges each pair into\n// an array and BodyWrapper's direct `props.onPositiveClick()` call breaks.\nconst forwardedPresetPropsKeys = presetPropsKeys.filter(\n  key =>\n    key !== 'onClose' && key !== 'onPositiveClick' && key !== 'onNegativeClick'\n)\n\nexport { forwardedPresetPropsKeys, presetProps, presetPropsKeys }\n","import type {\n  ComponentPublicInstance,\n  DirectiveArguments,\n  PropType,\n  SlotsType,\n  VNode\n} from 'vue'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { ModalDraggableOptions } from './interface'\nimport type { ModalSlots } from './Modal'\nimport { clickoutside } from 'vdirs'\nimport {\n  cloneVNode,\n  computed,\n  defineComponent,\n  h,\n  inject,\n  mergeProps,\n  nextTick,\n  normalizeClass,\n  normalizeStyle,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  vShow,\n  watch,\n  withDirectives\n} from 'vue'\nimport { VFocusTrap } from 'vueuc'\nimport { NScrollbar } from '../../_internal'\nimport {\n  getFirstSlotVNodeWithTypedProps,\n  keep,\n  useLockHtmlScroll,\n  warn\n} from '../../_utils'\nimport { NCard } from '../../card'\nimport { cardBasePropKeys } from '../../card/src/Card'\nimport { NDialog } from '../../dialog/src/Dialog'\nimport { dialogPropKeys } from '../../dialog/src/dialogProps'\nimport { drawerBodyInjectionKey } from '../../drawer/src/interface'\nimport { popoverBodyInjectionKey } from '../../popover/src/interface'\nimport { useDragModal } from './composables'\nimport { modalBodyInjectionKey, modalInjectionKey } from './interface'\nimport { presetProps } from './presetProps'\n\nexport default defineComponent({\n  name: 'ModalBody',\n  inheritAttrs: false,\n  slots: Object as SlotsType<ModalSlots>,\n  props: {\n    show: {\n      type: Boolean,\n      required: true\n    },\n    preset: String as PropType<'confirm' | 'dialog' | 'card'>,\n    displayDirective: {\n      type: String as PropType<'if' | 'show'>,\n      required: true\n    },\n    trapFocus: {\n      type: Boolean,\n      default: true\n    },\n    autoFocus: {\n      type: Boolean,\n      default: true\n    },\n    blockScroll: Boolean,\n    draggable: {\n      type: [Boolean, Object] as PropType<boolean | ModalDraggableOptions>,\n      default: false\n    },\n    maskHidden: Boolean,\n    ...presetProps,\n    // events\n    onClickoutside: {\n      type: Function as PropType<(e: MouseEvent) => void>,\n      required: true\n    },\n    onBeforeLeave: {\n      type: Function,\n      required: true\n    },\n    onAfterLeave: {\n      type: Function,\n      required: true\n    },\n    onPositiveClick: {\n      type: Function,\n      required: true\n    },\n    onNegativeClick: {\n      type: Function,\n      required: true\n    },\n    onClose: {\n      type: Function,\n      required: true\n    },\n    onAfterEnter: Function as PropType<(el: HTMLElement) => void>,\n    onEsc: Function as PropType<(e: KeyboardEvent) => void>\n  },\n  setup(props) {\n    const bodyRef = ref<HTMLElement | ComponentPublicInstance | null>(null)\n    const scrollbarRef = ref<ScrollbarInst | null>(null)\n    const displayedRef = ref(props.show)\n    const transformOriginXRef = ref<number | null>(null)\n    const transformOriginYRef = ref<number | null>(null)\n    const NModal = inject(modalInjectionKey)!\n    let mousePosition: { x: number, y: number } | null = null\n    watch(\n      toRef(props, 'show'),\n      (value) => {\n        if (value) {\n          mousePosition = NModal.getMousePosition()\n        }\n      },\n      {\n        immediate: true\n      }\n    )\n\n    const {\n      stopDrag,\n      startDrag,\n      draggableRef,\n      draggableClassRef,\n      dragX,\n      dragY\n    } = useDragModal(toRef(props, 'draggable'), {\n      onEnd: (el) => {\n        syncTransformOrigin(el)\n      }\n    })\n\n    const dialogTitleClassRef = computed(() => {\n      return normalizeClass([props.titleClass, draggableClassRef.value])\n    })\n\n    const cardHeaderClassRef = computed(() => {\n      return normalizeClass([props.headerClass, draggableClassRef.value])\n    })\n\n    watch(toRef(props, 'show'), (value) => {\n      if (value)\n        displayedRef.value = true\n    })\n\n    useLockHtmlScroll(computed(() => props.blockScroll && displayedRef.value))\n\n    function styleTransformOrigin(): string {\n      if (NModal.transformOriginRef.value === 'center') {\n        return ''\n      }\n      const { value: transformOriginX } = transformOriginXRef\n      const { value: transformOriginY } = transformOriginYRef\n      if (transformOriginX === null || transformOriginY === null) {\n        return ''\n      }\n      else if (scrollbarRef.value) {\n        const scrollTop = scrollbarRef.value.containerScrollTop\n        return `${transformOriginX}px ${transformOriginY + scrollTop}px`\n      }\n      return ''\n    }\n\n    function syncTransformOrigin(el: HTMLElement): void {\n      if (NModal.transformOriginRef.value === 'center') {\n        return\n      }\n      if (!mousePosition) {\n        return\n      }\n      if (!scrollbarRef.value)\n        return\n      const scrollTop = scrollbarRef.value.containerScrollTop\n      const { offsetLeft, offsetTop } = el\n      const top = mousePosition.y\n      const left = mousePosition.x\n      transformOriginXRef.value = -(offsetLeft - left)\n      transformOriginYRef.value = -(offsetTop - top - scrollTop)\n      el.style.transformOrigin = styleTransformOrigin()\n    }\n    function handleEnter(el: HTMLElement): void {\n      void nextTick(() => {\n        syncTransformOrigin(el)\n      })\n    }\n    function handleBeforeLeave(el: HTMLElement): void {\n      el.style.transformOrigin = styleTransformOrigin()\n      props.onBeforeLeave()\n    }\n    function handleAfterEnter(el: Element): void {\n      const element = el as HTMLElement\n      draggableRef.value && startDrag(element)\n      props.onAfterEnter && props.onAfterEnter(element)\n    }\n    function handleAfterLeave(): void {\n      displayedRef.value = false\n      transformOriginXRef.value = null\n      transformOriginYRef.value = null\n      stopDrag()\n      props.onAfterLeave()\n    }\n    function handleCloseClick(): void {\n      const { onClose } = props\n      if (onClose) {\n        onClose()\n      }\n    }\n    function handleNegativeClick(): void {\n      props.onNegativeClick()\n    }\n    function handlePositiveClick(): void {\n      props.onPositiveClick()\n    }\n    const childNodeRef = ref<VNode | null>(null)\n    watch(childNodeRef, (node) => {\n      if (node) {\n        void nextTick(() => {\n          const el = node.el as HTMLElement | null\n          if (el && bodyRef.value !== el) {\n            bodyRef.value = el\n          }\n        })\n      }\n    })\n\n    provide(modalBodyInjectionKey, bodyRef)\n    provide(drawerBodyInjectionKey, null)\n    provide(popoverBodyInjectionKey, null)\n    return {\n      mergedTheme: NModal.mergedThemeRef,\n      appear: NModal.appearRef,\n      isMounted: NModal.isMountedRef,\n      mergedClsPrefix: NModal.mergedClsPrefixRef,\n      // reduce dts: avoid expanding component instance types\n      bodyRef: bodyRef as unknown,\n      // reduce dts: string ref only, type unused in render\n      scrollbarRef: scrollbarRef as unknown,\n      draggableClass: draggableClassRef,\n      displayed: displayedRef,\n      childNodeRef,\n      cardHeaderClass: cardHeaderClassRef,\n      dialogTitleClass: dialogTitleClassRef,\n      handlePositiveClick,\n      handleNegativeClick,\n      handleCloseClick,\n      handleAfterEnter,\n      handleAfterLeave,\n      handleBeforeLeave,\n      handleEnter,\n      dragX,\n      dragY\n    }\n  },\n  render() {\n    const {\n      $slots,\n      $attrs,\n      handleEnter,\n      handleAfterEnter,\n      handleAfterLeave,\n      handleBeforeLeave,\n      preset,\n      mergedClsPrefix,\n      dragX,\n      dragY\n    } = this\n    const effectiveAttrs = { ...$attrs }\n    if (dragX !== null && dragY !== null) {\n      effectiveAttrs.style = normalizeStyle([\n        effectiveAttrs.style,\n        {\n          left: `${dragX}px`,\n          top: `${dragY}px`\n        }\n      ])\n    }\n    let childNode: VNode | null = null\n    if (!preset) {\n      childNode = getFirstSlotVNodeWithTypedProps('default', $slots.default, {\n        draggableClass: this.draggableClass\n      })\n      if (!childNode) {\n        warn('modal', 'default slot is empty')\n        return\n      }\n      childNode = cloneVNode(childNode)\n      childNode.props = mergeProps(\n        {\n          class: `${mergedClsPrefix}-modal`\n        },\n        effectiveAttrs,\n        childNode.props || {}\n      )\n    }\n    return this.displayDirective === 'show' || this.displayed || this.show\n      ? withDirectives(\n          <div\n            role=\"none\"\n            class={[\n              `${mergedClsPrefix}-modal-body-wrapper`,\n              this.maskHidden\n              && `${mergedClsPrefix}-modal-body-wrapper--mask-hidden`\n            ]}\n          >\n            <NScrollbar\n              ref=\"scrollbarRef\"\n              theme={this.mergedTheme.peers.Scrollbar}\n              themeOverrides={this.mergedTheme.peerOverrides.Scrollbar}\n              contentClass={`${mergedClsPrefix}-modal-scroll-content`}\n            >\n              {{\n                default: () => (\n                  <VFocusTrap\n                    disabled={!this.trapFocus || this.maskHidden}\n                    active={this.show}\n                    onEsc={this.onEsc}\n                    autoFocus={this.autoFocus}\n                  >\n                    {{\n                      default: () => (\n                        <Transition\n                          name=\"fade-in-scale-up-transition\"\n                          appear={this.appear ?? this.isMounted}\n                          onEnter={handleEnter as any}\n                          onAfterEnter={handleAfterEnter}\n                          onAfterLeave={handleAfterLeave}\n                          onBeforeLeave={handleBeforeLeave as any}\n                        >\n                          {{\n                            default: () => {\n                              const dirs: DirectiveArguments = [\n                                [vShow, this.show]\n                              ]\n                              dirs.push([\n                                clickoutside,\n                                this.onClickoutside,\n                                undefined,\n                                { capture: true }\n                              ])\n                              return withDirectives(\n                                (this.preset === 'confirm'\n                                  || this.preset === 'dialog' ? (\n                                      <NDialog\n                                        {...effectiveAttrs}\n                                        class={[\n                                          `${mergedClsPrefix}-modal`,\n                                          effectiveAttrs.class\n                                        ]}\n                                        ref=\"bodyRef\"\n                                        theme={this.mergedTheme.peers.Dialog}\n                                        themeOverrides={\n                                          this.mergedTheme.peerOverrides.Dialog\n                                        }\n                                        {...keep(this.$props, dialogPropKeys)}\n                                        titleClass={this.dialogTitleClass}\n                                        aria-modal=\"true\"\n                                      >\n                                        {$slots}\n                                      </NDialog>\n                                    ) : this.preset === 'card' ? (\n                                      <NCard\n                                        {...effectiveAttrs}\n                                        ref=\"bodyRef\"\n                                        class={[\n                                          `${mergedClsPrefix}-modal`,\n                                          effectiveAttrs.class\n                                        ]}\n                                        theme={this.mergedTheme.peers.Card}\n                                        themeOverrides={\n                                          this.mergedTheme.peerOverrides.Card\n                                        }\n                                        {...keep(this.$props, cardBasePropKeys)}\n                                        headerClass={this.cardHeaderClass}\n                                        aria-modal=\"true\"\n                                        role=\"dialog\"\n                                      >\n                                        {$slots}\n                                      </NCard>\n                                    ) : (\n                                      (this.childNodeRef = childNode)\n                                    )) as any,\n                                dirs\n                              )\n                            }\n                          }}\n                        </Transition>\n                      )\n                    }}\n                  </VFocusTrap>\n                )\n              }}\n            </NScrollbar>\n          </div>,\n          [\n            [\n              vShow,\n              this.displayDirective === 'if' || this.displayed || this.show\n            ]\n          ]\n        )\n      : null\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { c, cB, cM } from '../../../_utils/cssr'\nimport { DRAGGABLE_CLASS } from '../composables'\n\n// vars:\n// --n-bezier-ease-out\n// --n-box-shadow\n// --n-color\n// --n-text-color\nexport default c([\n  cB('modal-container', `\n    position: fixed;\n    left: 0;\n    top: 0;\n    height: 0;\n    width: 0;\n    display: flex;\n  `),\n  cB('modal-mask', `\n    position: fixed;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    background-color: rgba(0, 0, 0, .4);\n  `, [\n    fadeInTransition({\n      enterDuration: '.25s',\n      leaveDuration: '.25s',\n      enterCubicBezier: 'var(--n-bezier-ease-out)',\n      leaveCubicBezier: 'var(--n-bezier-ease-out)'\n    })\n  ]),\n  cB('modal-body-wrapper', `\n    position: fixed;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    overflow: visible;\n  `, [\n    cB('modal-scroll-content', `\n      min-height: 100%;\n      display: flex;\n      position: relative;\n    `),\n    cM('mask-hidden', `pointer-events: none;`, [\n      cB('modal-scroll-content', [\n        c('> *', `\n          pointer-events: all;\n        `)\n      ])\n    ])\n  ]),\n  cB('modal', `\n    position: relative;\n    align-self: center;\n    color: var(--n-text-color);\n    margin: auto;\n    box-shadow: var(--n-box-shadow);\n  `, [\n    fadeInScaleUpTransition({\n      duration: '.25s',\n      enterScale: '.5'\n    }),\n    c(`.${DRAGGABLE_CLASS}`, `\n      cursor: move;\n      user-select: none;\n    `),\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { CardSlots } from '../../card'\nimport type { DialogSlots } from '../../dialog'\nimport type { ModalTheme, ModalThemeOverrides } from '../styles'\nimport type { ModalDraggableOptions } from './interface'\nimport { getPreciseEventTarget } from 'seemly'\nimport { zindexable } from 'vdirs'\nimport { useClicked, useClickPosition, useIsMounted } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  withDirectives\n} from 'vue'\nimport { VLazyTeleport } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  call,\n  eventEffectNotPerformed,\n  keep,\n  useIsComposing,\n  warnOnce\n} from '../../_utils'\nimport { dialogProviderInjectionKey } from '../../dialog/src/context'\nimport { modalLight } from '../styles'\nimport NModalBodyWrapper from './BodyWrapper'\nimport { modalInjectionKey, modalProviderInjectionKey } from './interface'\nimport { forwardedPresetPropsKeys, presetProps } from './presetProps'\nimport style from './styles/index.cssr'\n\nexport const modalProps = {\n  ...(useTheme.props as ThemeProps<ModalTheme, ModalThemeOverrides>),\n  show: Boolean,\n  showMask: {\n    type: Boolean,\n    default: true\n  },\n  maskClosable: {\n    type: Boolean,\n    default: true\n  },\n  preset: String as PropType<'confirm' | 'dialog' | 'card'>,\n  to: [String, Object] as PropType<string | HTMLElement>,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'if'\n  },\n  transformOrigin: {\n    type: String as PropType<'center' | 'mouse'>,\n    default: 'mouse'\n  },\n  zIndex: Number,\n  autoFocus: {\n    type: Boolean,\n    default: true\n  },\n  trapFocus: {\n    type: Boolean,\n    default: true\n  },\n  closeOnEsc: {\n    type: Boolean,\n    default: true\n  },\n  blockScroll: { type: Boolean, default: true },\n  ...presetProps,\n  draggable: [Boolean, Object] as PropType<boolean | ModalDraggableOptions>,\n  // events\n  onEsc: Function as PropType<() => void>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onAfterEnter: Function as PropType<() => void>,\n  onBeforeLeave: Function as PropType<() => void>,\n  onAfterLeave: Function as PropType<() => void>,\n  onClose: Function as PropType<() => Promise<boolean> | boolean | any>,\n  onPositiveClick: Function as PropType<() => Promise<boolean> | boolean | any>,\n  onNegativeClick: Function as PropType<() => Promise<boolean> | boolean | any>,\n  onMaskClick: Function as PropType<(e: MouseEvent) => void>,\n  // private\n  internalDialog: Boolean,\n  internalModal: Boolean,\n  internalAppear: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  // deprecated\n  overlayStyle: [String, Object] as PropType<string | CSSProperties>,\n  onBeforeHide: Function as PropType<() => void>,\n  onAfterHide: Function as PropType<() => void>,\n  onHide: Function as PropType<(value: false) => void>,\n  unstableShowMask: {\n    type: Boolean,\n    default: undefined\n  }\n}\n\nexport type ModalProps = ExtractPublicPropTypes<typeof modalProps>\n\nexport type ModalSlots = Omit<CardSlots & DialogSlots, 'default'> & {\n  default?: (props: { draggableClass: string }) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Modal',\n  inheritAttrs: false,\n  props: modalProps,\n  slots: Object as SlotsType<ModalSlots>,\n  setup(props) {\n    if (__DEV__) {\n      if (props.onHide) {\n        warnOnce('modal', '`on-hide` is deprecated.')\n      }\n      if (props.onAfterHide) {\n        warnOnce(\n          'modal',\n          '`on-after-hide` is deprecated, please use `on-after-leave` instead.'\n        )\n      }\n      if (props.onBeforeHide) {\n        warnOnce(\n          'modal',\n          '`on-before-hide` is deprecated, please use `on-before-leave` instead.'\n        )\n      }\n      if (props.overlayStyle) {\n        warnOnce(\n          'modal',\n          '`overlay-style` is deprecated, please use `style` instead.'\n        )\n      }\n      if (props.unstableShowMask) {\n        warnOnce(\n          'modal',\n          '`unstable-show-mask` has been removed, please use `show-mask` instead.'\n        )\n      }\n    }\n    const containerRef = ref<HTMLElement | null>(null)\n    const { mergedClsPrefixRef, namespaceRef, inlineThemeDisabled }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Modal',\n      '-modal',\n      style,\n      modalLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const clickedRef = useClicked(64)\n    const clickedPositionRef = useClickPosition()\n    const isMountedRef = useIsMounted()\n    const NDialogProvider = props.internalDialog\n      ? inject(dialogProviderInjectionKey, null)\n      : null\n    const NModalProvider = props.internalModal\n      ? inject(modalProviderInjectionKey, null)\n      : null\n    const isComposingRef = useIsComposing()\n\n    function doUpdateShow(show: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow, onHide } = props\n      if (onUpdateShow)\n        call(onUpdateShow, show)\n      if (_onUpdateShow)\n        call(_onUpdateShow, show)\n      // deprecated\n      if (onHide && !show)\n        onHide(show)\n    }\n    function handleCloseClick(): void {\n      const { onClose } = props\n      if (onClose) {\n        void Promise.resolve(onClose()).then((value) => {\n          if (value === false)\n            return\n          doUpdateShow(false)\n        })\n      }\n      else {\n        doUpdateShow(false)\n      }\n    }\n    function handlePositiveClick(): void {\n      const { onPositiveClick } = props\n      if (onPositiveClick) {\n        void Promise.resolve(onPositiveClick()).then((value) => {\n          if (value === false)\n            return\n          doUpdateShow(false)\n        })\n      }\n      else {\n        doUpdateShow(false)\n      }\n    }\n    function handleNegativeClick(): void {\n      const { onNegativeClick } = props\n      if (onNegativeClick) {\n        void Promise.resolve(onNegativeClick()).then((value) => {\n          if (value === false)\n            return\n          doUpdateShow(false)\n        })\n      }\n      else {\n        doUpdateShow(false)\n      }\n    }\n    function handleBeforeLeave(): void {\n      const { onBeforeLeave, onBeforeHide } = props\n      if (onBeforeLeave)\n        call(onBeforeLeave)\n      // deprecated\n      if (onBeforeHide)\n        onBeforeHide()\n    }\n    function handleAfterLeave(): void {\n      const { onAfterLeave, onAfterHide } = props\n      if (onAfterLeave)\n        call(onAfterLeave)\n      // deprecated\n      if (onAfterHide)\n        onAfterHide()\n    }\n    function handleClickoutside(e: MouseEvent): void {\n      const { onMaskClick } = props\n      if (onMaskClick) {\n        onMaskClick(e)\n      }\n      if (props.maskClosable) {\n        if (\n          containerRef.value?.contains(getPreciseEventTarget(e) as Node | null)\n        ) {\n          doUpdateShow(false)\n        }\n      }\n    }\n    function handleEsc(e: KeyboardEvent): void {\n      props.onEsc?.()\n      if (props.show && props.closeOnEsc && eventEffectNotPerformed(e)) {\n        if (!isComposingRef.value) {\n          doUpdateShow(false)\n        }\n      }\n    }\n    provide(modalInjectionKey, {\n      getMousePosition: () => {\n        const mergedProvider = NDialogProvider || NModalProvider\n        if (mergedProvider) {\n          const { clickedRef, clickedPositionRef } = mergedProvider\n          if (clickedRef.value && clickedPositionRef.value) {\n            return clickedPositionRef.value\n          }\n        }\n        if (clickedRef.value) {\n          return clickedPositionRef.value\n        }\n        return null\n      },\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      isMountedRef,\n      appearRef: toRef(props, 'internalAppear'),\n      transformOriginRef: toRef(props, 'transformOrigin')\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseOut },\n        self: { boxShadow, color, textColor }\n      } = themeRef.value\n      return {\n        '--n-bezier-ease-out': cubicBezierEaseOut,\n        '--n-box-shadow': boxShadow,\n        '--n-color': color,\n        '--n-text-color': textColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('theme-class', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      isMounted: isMountedRef,\n      containerRef,\n      presetProps: computed(() => {\n        // TODO: remove as any after vue fix the issue introduced in 3.2.27\n        return keep(props, forwardedPresetPropsKeys) as any\n      }),\n      handleEsc,\n      handleAfterLeave,\n      handleClickoutside,\n      handleBeforeLeave,\n      doUpdateShow,\n      handleNegativeClick,\n      handlePositiveClick,\n      handleCloseClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <VLazyTeleport to={this.to} show={this.show}>\n        {{\n          default: () => {\n            this.onRender?.()\n            const { showMask } = this\n            return withDirectives(\n              <div\n                role=\"none\"\n                ref=\"containerRef\"\n                class={[\n                  `${mergedClsPrefix}-modal-container`,\n                  this.themeClass,\n                  this.namespace\n                ]}\n                style={this.cssVars as CSSProperties}\n              >\n                {showMask ? (\n                  <Transition\n                    name=\"fade-in-transition\"\n                    key=\"mask\"\n                    appear={this.internalAppear ?? this.isMounted}\n                  >\n                    {{\n                      default: () => {\n                        return this.show ? (\n                          <div\n                            aria-hidden\n                            class={`${mergedClsPrefix}-modal-mask`}\n                          />\n                        ) : null\n                      }\n                    }}\n                  </Transition>\n                ) : null}\n                <NModalBodyWrapper\n                  style={this.overlayStyle}\n                  {...this.$attrs}\n                  ref=\"bodyWrapper\"\n                  displayDirective={this.displayDirective}\n                  show={this.show}\n                  preset={this.preset}\n                  autoFocus={this.autoFocus}\n                  trapFocus={this.trapFocus}\n                  draggable={this.draggable}\n                  blockScroll={this.blockScroll}\n                  maskHidden={!showMask}\n                  {...this.presetProps}\n                  onEsc={this.handleEsc}\n                  onClose={this.handleCloseClick}\n                  onNegativeClick={this.handleNegativeClick}\n                  onPositiveClick={this.handlePositiveClick}\n                  onBeforeLeave={this.handleBeforeLeave}\n                  onAfterEnter={this.onAfterEnter}\n                  onAfterLeave={this.handleAfterLeave}\n                  onClickoutside={this.handleClickoutside}\n                >\n                  {this.$slots}\n                </NModalBodyWrapper>\n              </div>,\n              [\n                [\n                  zindexable,\n                  {\n                    zIndex: this.zIndex,\n                    enabled: this.show\n                  }\n                ]\n              ]\n            )\n          }\n        }}\n      </VLazyTeleport>\n    )\n  }\n})\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ModalDraggableOptions } from '../../modal/src/interface'\n// use absolute path to make sure no circular ref of style\n// this -> modal-index -> modal-style\nimport { defineComponent, h, normalizeClass, ref } from 'vue'\nimport { keep } from '../../_utils'\nimport NModal from '../../modal/src/Modal'\nimport { NDialog } from './Dialog'\nimport { dialogPropKeys, dialogProps } from './dialogProps'\n\nexport const exposedDialogEnvProps = {\n  ...dialogProps,\n  onAfterEnter: Function as PropType<() => void>,\n  onAfterLeave: Function as PropType<() => void>,\n  transformOrigin: String as PropType<'center' | 'mouse'>,\n  blockScroll: { type: Boolean, default: true },\n  closeOnEsc: { type: Boolean, default: true },\n  onEsc: Function as PropType<() => void>,\n  autoFocus: {\n    type: Boolean,\n    default: true\n  },\n  internalStyle: [String, Object] as PropType<string | CSSProperties>,\n  maskClosable: {\n    type: Boolean,\n    default: true\n  },\n  zIndex: Number,\n  onPositiveClick: Function as PropType<\n    (e: MouseEvent) => Promise<unknown> | unknown\n  >,\n  onNegativeClick: Function as PropType<\n    (e: MouseEvent) => Promise<unknown> | unknown\n  >,\n  onClose: Function as PropType<() => Promise<unknown> | unknown>,\n  onMaskClick: Function as PropType<(e: MouseEvent) => void>,\n  draggable: [Boolean, Object] as PropType<boolean | ModalDraggableOptions>\n} as const\n\nexport const NDialogEnvironment = defineComponent({\n  name: 'DialogEnvironment',\n  props: {\n    ...exposedDialogEnvProps,\n    internalKey: {\n      type: String,\n      required: true\n    },\n    to: [String, Object] as PropType<string | HTMLElement>,\n    // private\n    onInternalAfterLeave: {\n      type: Function as PropType<(key: string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const showRef = ref(true)\n    function handleAfterLeave(): void {\n      const { onInternalAfterLeave, internalKey, onAfterLeave } = props\n      if (onInternalAfterLeave)\n        onInternalAfterLeave(internalKey)\n      if (onAfterLeave)\n        onAfterLeave()\n    }\n    function handlePositiveClick(e: MouseEvent): void {\n      const { onPositiveClick } = props\n      if (onPositiveClick) {\n        void Promise.resolve(onPositiveClick(e)).then((result) => {\n          if (result === false)\n            return\n          hide()\n        })\n      }\n      else {\n        hide()\n      }\n    }\n    function handleNegativeClick(e: MouseEvent): void {\n      const { onNegativeClick } = props\n      if (onNegativeClick) {\n        void Promise.resolve(onNegativeClick(e)).then((result) => {\n          if (result === false)\n            return\n          hide()\n        })\n      }\n      else {\n        hide()\n      }\n    }\n    function handleCloseClick(): void {\n      const { onClose } = props\n      if (onClose) {\n        void Promise.resolve(onClose()).then((result) => {\n          if (result === false)\n            return\n          hide()\n        })\n      }\n      else {\n        hide()\n      }\n    }\n    function handleMaskClick(e: MouseEvent): void {\n      const { onMaskClick, maskClosable } = props\n      if (onMaskClick) {\n        onMaskClick(e)\n        if (maskClosable) {\n          hide()\n        }\n      }\n    }\n    function handleEsc(): void {\n      const { onEsc } = props\n      if (onEsc) {\n        onEsc()\n      }\n    }\n    function hide(): void {\n      showRef.value = false\n    }\n    function handleUpdateShow(value: boolean): void {\n      showRef.value = value\n    }\n    return {\n      show: showRef,\n      hide,\n      handleUpdateShow,\n      handleAfterLeave,\n      handleCloseClick,\n      handleNegativeClick,\n      handlePositiveClick,\n      handleMaskClick,\n      handleEsc\n    }\n  },\n  render() {\n    const {\n      handlePositiveClick,\n      handleUpdateShow,\n      handleNegativeClick,\n      handleCloseClick,\n      handleAfterLeave,\n      handleMaskClick,\n      handleEsc,\n      to,\n      zIndex,\n      maskClosable,\n      show\n    } = this\n    return (\n      <NModal\n        show={show}\n        onUpdateShow={handleUpdateShow}\n        onMaskClick={handleMaskClick}\n        onEsc={handleEsc}\n        to={to}\n        zIndex={zIndex}\n        maskClosable={maskClosable}\n        onAfterEnter={this.onAfterEnter}\n        onAfterLeave={handleAfterLeave}\n        closeOnEsc={this.closeOnEsc}\n        blockScroll={this.blockScroll}\n        autoFocus={this.autoFocus}\n        transformOrigin={this.transformOrigin}\n        draggable={this.draggable}\n        internalAppear\n        internalDialog\n      >\n        {{\n          default: ({ draggableClass }: { draggableClass: string }) => (\n            <NDialog\n              {...keep(this.$props, dialogPropKeys, {\n                titleClass: normalizeClass([this.titleClass, draggableClass]),\n                style: this.internalStyle,\n                onClose: handleCloseClick,\n                onNegativeClick: handleNegativeClick,\n                onPositiveClick: handlePositiveClick\n              })}\n            />\n          )\n        }}\n      </NModal>\n    )\n  }\n})\n","import type { CSSProperties, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { ExtractPublicPropTypes, Mutable } from '../../_utils'\nimport type { exposedDialogEnvProps } from './DialogEnvironment'\nimport { createId } from 'seemly'\nimport { useClicked, useClickPosition } from 'vooks'\nimport { defineComponent, Fragment, h, provide, reactive, ref } from 'vue'\nimport { omit } from '../../_utils'\nimport {\n  dialogApiInjectionKey,\n  dialogProviderInjectionKey,\n  dialogReactiveListInjectionKey\n} from './context'\nimport { NDialogEnvironment } from './DialogEnvironment'\n\ntype ExposedDialogEnvPropTypes = ExtractPropTypes<typeof exposedDialogEnvProps>\n\nexport interface DialogOptions extends Mutable<\n  Omit<Partial<ExposedDialogEnvPropTypes>, 'internalStyle'> & {\n    class?: any\n    style?: string | CSSProperties\n  }\n> {}\n\nexport interface DialogReactive extends DialogOptions {\n  readonly key: string\n  readonly destroy: () => void\n}\n\n// FIXME\n// If style is used as CSSProperties, typescript 4.4.2 will throw tons of errors\n// Fxxx\ninterface TypeSafeDialogReactive extends DialogReactive {\n  class?: any\n  style?: any\n}\n\nexport interface DialogApiInjection {\n  destroyAll: () => void\n  create: (options: DialogOptions) => DialogReactive\n  success: (options: DialogOptions) => DialogReactive\n  warning: (options: DialogOptions) => DialogReactive\n  error: (options: DialogOptions) => DialogReactive\n  info: (options: DialogOptions) => DialogReactive\n}\n\nexport interface DialogProviderInjection {\n  clickedRef: Ref<boolean>\n  clickedPositionRef: Ref<{ x: number, y: number } | null>\n}\n\nexport type DialogReactiveListInjection = Ref<DialogReactive[]>\n\ninterface DialogInst {\n  hide: () => void\n}\n\nexport type DialogProviderInst = DialogApiInjection\n\nexport const dialogProviderProps = {\n  injectionKey: String,\n  to: [String, Object] as PropType<string | HTMLElement>\n}\n\nexport type DialogProviderProps = ExtractPublicPropTypes<\n  typeof dialogProviderProps\n>\n\ninterface DialogProviderSetup extends DialogApiInjection {\n  dialogList: Ref<TypeSafeDialogReactive[]>\n  dialogInstRefs: Record<string, DialogInst | undefined>\n  handleAfterLeave: (key: string) => void\n}\n\nexport const NDialogProvider = defineComponent({\n  name: 'DialogProvider',\n  props: dialogProviderProps,\n  setup(): DialogProviderSetup {\n    const dialogListRef = ref<TypeSafeDialogReactive[]>([])\n    const dialogInstRefs: Record<string, DialogInst | undefined> = {}\n    function create(options: DialogOptions = {}): DialogReactive {\n      const key = createId()\n      const dialogReactive = reactive({\n        ...options,\n        key,\n        destroy: () => {\n          dialogInstRefs[`n-dialog-${key}`]?.hide()\n        }\n      }) as DialogReactive\n      dialogListRef.value.push(dialogReactive)\n      return dialogReactive\n    }\n    const typedApi = (\n      ['info', 'success', 'warning', 'error'] as Array<\n        'info' | 'success' | 'warning' | 'error'\n      >\n    ).map(type => (options: DialogOptions): DialogReactive => {\n      return create({ ...options, type })\n    })\n\n    function handleAfterLeave(key: string): void {\n      const { value: dialogList } = dialogListRef\n      dialogList.splice(\n        dialogList.findIndex(dialog => dialog.key === key),\n        1\n      )\n    }\n\n    function destroyAll(): void {\n      Object.values(dialogInstRefs).forEach((dialogInstRef) => {\n        dialogInstRef?.hide()\n      })\n    }\n\n    const api: DialogApiInjection = {\n      create,\n      destroyAll,\n      info: typedApi[0],\n      success: typedApi[1],\n      warning: typedApi[2],\n      error: typedApi[3]\n    }\n    provide(dialogApiInjectionKey, api)\n    provide(dialogProviderInjectionKey, {\n      clickedRef: useClicked(64),\n      clickedPositionRef: useClickPosition()\n    })\n    provide(dialogReactiveListInjectionKey, dialogListRef)\n    return {\n      ...api,\n      dialogList: dialogListRef,\n      dialogInstRefs,\n      handleAfterLeave\n    }\n  },\n  render() {\n    return h(Fragment, null, [\n      this.dialogList.map(dialog =>\n        h(\n          NDialogEnvironment,\n          omit(dialog, ['destroy', 'style'], {\n            internalStyle: dialog.style,\n            to: this.to,\n            ref: ((inst: DialogInst | null) => {\n              if (inst === null) {\n                delete this.dialogInstRefs[`n-dialog-${dialog.key}`]\n              }\n              else {\n                this.dialogInstRefs[`n-dialog-${dialog.key}`] = inst\n              }\n            }) as any,\n            internalKey: dialog.key,\n            onInternalAfterLeave: this.handleAfterLeave\n          })\n        )\n      ),\n      this.$slots.default?.()\n    ])\n  }\n})\n","import type { Ref } from 'vue'\nimport type {\n  LoadingBarApiInjection,\n  LoadingBarProviderSetupProps\n} from './LoadingBarProvider'\nimport { createInjectionKey } from '../../_utils'\n\nexport const loadingBarProviderInjectionKey = createInjectionKey<{\n  props: LoadingBarProviderSetupProps\n  mergedClsPrefixRef: Ref<string>\n}>('n-loading-bar')\n\nexport const loadingBarApiInjectionKey\n  = createInjectionKey<LoadingBarApiInjection>('n-loading-bar-api')\n","import type { LoadingBarTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst loadingBarDark: LoadingBarTheme = {\n  name: 'LoadingBar',\n  common: commonDark,\n  self(vars) {\n    const { primaryColor } = vars\n    return {\n      colorError: 'red',\n      colorLoading: primaryColor,\n      height: '2px'\n    }\n  }\n}\n\nexport default loadingBarDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { primaryColor, errorColor } = vars\n  return {\n    colorError: errorColor,\n    colorLoading: primaryColor,\n    height: '2px'\n  }\n}\n\nexport interface LoadingBarThemeVars extends ReturnType<typeof self> {}\n\nconst loadingBarLight: LoadingBarTheme = {\n  name: 'LoadingBar',\n  common: commonLight,\n  self\n}\n\nexport interface LoadingBarTheme extends Theme<\n  'LoadingBar',\n  LoadingBarThemeVars\n> {}\n\nexport interface LoadingBarThemeOverrides extends ExtractThemeOverrides<LoadingBarTheme> {}\n\nexport default loadingBarLight\n","import { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-height\n// --n-color-loading\n// --n-color-error\nexport default cB('loading-bar-container', `\n  z-index: 5999;\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 2px;\n`, [\n  fadeInTransition({\n    enterDuration: '0.3s',\n    leaveDuration: '0.8s'\n  }),\n  cB('loading-bar', `\n    width: 100%;\n    transition:\n      max-width 4s linear,\n      background .2s linear;\n    height: var(--n-height);\n  `, [\n    cM('starting', `\n      background: var(--n-color-loading);\n    `),\n    cM('finishing', `\n      background: var(--n-color-loading);\n      transition:\n        max-width .2s linear,\n        background .2s linear;\n    `),\n    cM('error', `\n      background: var(--n-color-error);\n      transition:\n        max-width .2s linear,\n        background .2s linear;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  nextTick,\n  ref,\n  Transition,\n  vShow,\n  withDirectives\n} from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { loadingBarLight } from '../styles'\nimport { loadingBarProviderInjectionKey } from './context'\nimport style from './styles/index.cssr'\n\nfunction createClassName(\n  status: 'error' | 'finishing' | 'starting',\n  clsPrefix: string\n): string {\n  return `${clsPrefix}-loading-bar ${clsPrefix}-loading-bar--${status}`\n}\n\nexport default defineComponent({\n  name: 'LoadingBar',\n  props: {\n    containerClass: String,\n    containerStyle: [String, Object] as PropType<string | CSSProperties>\n  },\n  setup() {\n    const { inlineThemeDisabled } = useConfig()\n    const { props: providerProps, mergedClsPrefixRef } = inject(\n      loadingBarProviderInjectionKey\n    )!\n    const loadingBarRef = ref<HTMLElement | null>(null)\n    const enteringRef = ref(false)\n    const startedRef = ref(false)\n    const loadingRef = ref(false)\n    const transitionDisabledRef = ref(false)\n    let finishing = false\n    const erroringRef = ref(false)\n    const mergedLoadingBarStyle = computed(() => {\n      const { loadingBarStyle } = providerProps\n      if (!loadingBarStyle)\n        return ''\n      return loadingBarStyle[erroringRef.value ? 'error' : 'loading']\n    })\n    async function init(): Promise<void> {\n      enteringRef.value = false\n      loadingRef.value = false\n      finishing = false\n      erroringRef.value = false\n      transitionDisabledRef.value = true\n      await nextTick()\n      transitionDisabledRef.value = false\n    }\n    async function start(\n      fromProgress = 0,\n      toProgress = 80,\n      status: 'starting' | 'error' = 'starting'\n    ): Promise<void> {\n      startedRef.value = true\n      await init()\n      if (finishing)\n        return\n      loadingRef.value = true\n      await nextTick()\n      const el = loadingBarRef.value\n      if (!el)\n        return\n      el.style.maxWidth = `${fromProgress}%`\n      el.style.transition = 'none'\n      void el.offsetWidth\n      el.className = createClassName(status, mergedClsPrefixRef.value)\n      el.style.transition = ''\n      el.style.maxWidth = `${toProgress}%`\n    }\n    async function finish(): Promise<void> {\n      if (finishing || erroringRef.value)\n        return\n      if (startedRef.value) {\n        await nextTick()\n      }\n      finishing = true\n      const el = loadingBarRef.value\n      if (!el)\n        return\n      el.className = createClassName('finishing', mergedClsPrefixRef.value)\n      el.style.maxWidth = '100%'\n      void el.offsetWidth\n      loadingRef.value = false\n    }\n    function error(): void {\n      if (finishing || erroringRef.value)\n        return\n      if (!loadingRef.value) {\n        void start(100, 100, 'error').then(() => {\n          erroringRef.value = true\n          const el = loadingBarRef.value\n          if (!el)\n            return\n          el.className = createClassName('error', mergedClsPrefixRef.value)\n          void el.offsetWidth\n          loadingRef.value = false\n        })\n      }\n      else {\n        erroringRef.value = true\n        const el = loadingBarRef.value\n        if (!el)\n          return\n        el.className = createClassName('error', mergedClsPrefixRef.value)\n        el.style.maxWidth = '100%'\n        void el.offsetWidth\n        loadingRef.value = false\n      }\n    }\n    function handleEnter(): void {\n      enteringRef.value = true\n    }\n    function handleAfterEnter(): void {\n      enteringRef.value = false\n    }\n    async function handleAfterLeave(): Promise<void> {\n      await init()\n    }\n    const themeRef = useTheme(\n      'LoadingBar',\n      '-loading-bar',\n      style,\n      loadingBarLight,\n      providerProps,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        self: { height, colorError, colorLoading }\n      } = themeRef.value\n      return {\n        '--n-height': height,\n        '--n-color-loading': colorLoading,\n        '--n-color-error': colorError\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('loading-bar', undefined, cssVarsRef, providerProps)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      loadingBarRef,\n      started: startedRef,\n      loading: loadingRef,\n      entering: enteringRef,\n      transitionDisabled: transitionDisabledRef,\n      start,\n      error,\n      finish,\n      handleEnter,\n      handleAfterEnter,\n      handleAfterLeave,\n      mergedLoadingBarStyle,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    if (!this.started)\n      return null\n    const { mergedClsPrefix } = this\n    return (\n      <Transition\n        name=\"fade-in-transition\"\n        appear\n        onEnter={this.handleEnter}\n        onAfterEnter={this.handleAfterEnter}\n        onAfterLeave={this.handleAfterLeave}\n        css={!this.transitionDisabled}\n      >\n        {/*\n          BUG: need to use v-show nor it will glitch when triggers start, end,\n          start. This could be a bug of vue but currently I have no time to verify\n          it.\n        */}\n        {{\n          default: () => {\n            this.onRender?.()\n            return withDirectives(\n              <div\n                class={[\n                  `${mergedClsPrefix}-loading-bar-container`,\n                  this.themeClass,\n                  this.containerClass\n                ]}\n                style={this.containerStyle}\n              >\n                <div\n                  ref=\"loadingBarRef\"\n                  class={[`${mergedClsPrefix}-loading-bar`]}\n                  style={[\n                    this.cssVars as any,\n                    this.mergedLoadingBarStyle as any\n                  ]}\n                />\n              </div>,\n              [[vShow, this.loading || (!this.loading && this.entering)]]\n            )\n          }\n        }}\n      </Transition>\n    )\n  }\n})\n","import type { CSSProperties, ExtractPropTypes, PropType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { LoadingBarTheme, LoadingBarThemeOverrides } from '../styles'\nimport { useIsMounted } from 'vooks'\nimport {\n  defineComponent,\n  Fragment,\n  h,\n  nextTick,\n  provide,\n  ref,\n  Teleport\n} from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport {\n  loadingBarApiInjectionKey,\n  loadingBarProviderInjectionKey\n} from './context'\nimport NLoadingBar from './LoadingBar'\n\nexport interface LoadingBarInst {\n  start: () => void\n  error: () => void\n  finish: () => void\n}\n\nexport type LoadingBarProviderInst = LoadingBarInst\nexport type LoadingBarApiInjection = LoadingBarInst\n\nexport const loadingBarProviderProps = {\n  ...(useTheme.props as ThemeProps<LoadingBarTheme, LoadingBarThemeOverrides>),\n  to: {\n    type: [String, Object, Boolean] as PropType<string | HTMLElement | false>,\n    default: undefined\n  },\n  containerClass: String,\n  containerStyle: [String, Object] as PropType<string | CSSProperties>,\n  loadingBarStyle: {\n    type: Object as PropType<{\n      loading?: string | CSSProperties\n      error?: string | CSSProperties\n    }>\n  }\n}\n\nexport type LoadingBarProviderProps = ExtractPublicPropTypes<\n  typeof loadingBarProviderProps\n>\n\nexport type LoadingBarProviderSetupProps = ExtractPropTypes<\n  typeof loadingBarProviderProps\n>\n\nexport default defineComponent({\n  name: 'LoadingBarProvider',\n  props: loadingBarProviderProps,\n  setup(props) {\n    const isMountedRef = useIsMounted()\n    const loadingBarRef = ref<LoadingBarInst | null>(null)\n    const methods: LoadingBarProviderInst = {\n      start() {\n        if (isMountedRef.value) {\n          loadingBarRef.value?.start()\n        }\n        else {\n          void nextTick(() => {\n            loadingBarRef.value?.start()\n          })\n        }\n      },\n      error() {\n        if (isMountedRef.value) {\n          loadingBarRef.value?.error()\n        }\n        else {\n          void nextTick(() => {\n            loadingBarRef.value?.error()\n          })\n        }\n      },\n      finish() {\n        if (isMountedRef.value) {\n          loadingBarRef.value?.finish()\n        }\n        else {\n          void nextTick(() => {\n            loadingBarRef.value?.finish()\n          })\n        }\n      }\n    }\n    const { mergedClsPrefixRef } = useConfig(props)\n    provide(loadingBarApiInjectionKey, methods)\n    provide(loadingBarProviderInjectionKey, {\n      props,\n      mergedClsPrefixRef\n    })\n    return Object.assign(methods, {\n      // reduce dts: string ref only, type unused in render\n      loadingBarRef: loadingBarRef as unknown\n    })\n  },\n  render() {\n    return (\n      <>\n        <Teleport disabled={this.to === false} to={this.to || 'body'}>\n          <NLoadingBar\n            ref=\"loadingBarRef\"\n            containerStyle={this.containerStyle}\n            containerClass={this.containerClass}\n          />\n        </Teleport>\n        {this.$slots.default?.()}\n      </>\n    )\n  }\n})\n","import type { LoadingBarApiInjection } from './LoadingBarProvider'\nimport { inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport { loadingBarApiInjectionKey } from './context'\n\nexport function useLoadingBar(): LoadingBarApiInjection {\n  const loadingBar = inject(loadingBarApiInjectionKey, null)\n  if (loadingBar === null) {\n    throwError(\n      'use-loading-bar',\n      'No outer <n-loading-bar-provider /> founded.'\n    )\n  }\n  return loadingBar\n}\n","import type { Ref } from 'vue'\nimport type {\n  MessageApiInjection,\n  MessageProviderSetupProps\n} from './MessageProvider'\nimport { createInjectionKey } from '../../_utils'\n\nexport const messageApiInjectionKey\n  = createInjectionKey<MessageApiInjection>('n-message-api')\n\nexport const messageProviderInjectionKey = createInjectionKey<{\n  props: MessageProviderSetupProps\n  mergedClsPrefixRef: Ref<string>\n}>('n-message-provider')\n","export default {\n  margin: '0 0 8px 0',\n  padding: '10px 20px',\n  maxWidth: '720px',\n  minWidth: '420px',\n  iconMargin: '0 10px 0 0',\n  closeMargin: '0 0 0 10px',\n  closeSize: '20px',\n  closeIconSize: '16px',\n  iconSize: '20px',\n  fontSize: '14px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    infoColor,\n    successColor,\n    errorColor,\n    warningColor,\n    popoverColor,\n    boxShadow2,\n    primaryColor,\n    lineHeight,\n    borderRadius,\n    closeColorHover,\n    closeColorPressed\n  } = vars\n  return {\n    ...commonVariables,\n    closeBorderRadius: borderRadius,\n    textColor: textColor2,\n    textColorInfo: textColor2,\n    textColorSuccess: textColor2,\n    textColorError: textColor2,\n    textColorWarning: textColor2,\n    textColorLoading: textColor2,\n    color: popoverColor,\n    colorInfo: popoverColor,\n    colorSuccess: popoverColor,\n    colorError: popoverColor,\n    colorWarning: popoverColor,\n    colorLoading: popoverColor,\n    boxShadow: boxShadow2,\n    boxShadowInfo: boxShadow2,\n    boxShadowSuccess: boxShadow2,\n    boxShadowError: boxShadow2,\n    boxShadowWarning: boxShadow2,\n    boxShadowLoading: boxShadow2,\n    iconColor: textColor2,\n    iconColorInfo: infoColor,\n    iconColorSuccess: successColor,\n    iconColorWarning: warningColor,\n    iconColorError: errorColor,\n    iconColorLoading: primaryColor,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHoverInfo: closeColorHover,\n    closeColorPressedInfo: closeColorPressed,\n    closeIconColorInfo: closeIconColor,\n    closeIconColorHoverInfo: closeIconColorHover,\n    closeIconColorPressedInfo: closeIconColorPressed,\n    closeColorHoverSuccess: closeColorHover,\n    closeColorPressedSuccess: closeColorPressed,\n    closeIconColorSuccess: closeIconColor,\n    closeIconColorHoverSuccess: closeIconColorHover,\n    closeIconColorPressedSuccess: closeIconColorPressed,\n    closeColorHoverError: closeColorHover,\n    closeColorPressedError: closeColorPressed,\n    closeIconColorError: closeIconColor,\n    closeIconColorHoverError: closeIconColorHover,\n    closeIconColorPressedError: closeIconColorPressed,\n    closeColorHoverWarning: closeColorHover,\n    closeColorPressedWarning: closeColorPressed,\n    closeIconColorWarning: closeIconColor,\n    closeIconColorHoverWarning: closeIconColorHover,\n    closeIconColorPressedWarning: closeIconColorPressed,\n    closeColorHoverLoading: closeColorHover,\n    closeColorPressedLoading: closeColorPressed,\n    closeIconColorLoading: closeIconColor,\n    closeIconColorHoverLoading: closeIconColorHover,\n    closeIconColorPressedLoading: closeIconColorPressed,\n    loadingColor: primaryColor,\n    lineHeight,\n    borderRadius,\n    border: '0'\n  }\n}\n\nexport interface MessageThemeVars extends ReturnType<typeof self> {}\n\nconst messageLight: MessageTheme = {\n  name: 'Message',\n  common: commonLight,\n  self\n}\n\nexport interface MessageTheme extends Theme<'Message', MessageThemeVars> {}\n\nexport interface MessageThemeOverrides extends ExtractThemeOverrides<MessageTheme> {}\n\nexport default messageLight\n","import type { MessageTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst messageDark: MessageTheme = {\n  name: 'Message',\n  common: commonDark,\n  self\n}\n\nexport default messageDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('message', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cE('close', `\n      margin: 0 10px 0 0;\n    `),\n    cE('icon', `\n      margin: 0 0 0 10px;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const messageRtl: RtlItem = {\n  name: 'Message',\n  style: rtlStyle\n}\n","import type { ExtractPropTypes, PropType, VNodeChild } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { MessageSpinProps } from './public-types'\nimport type { MessageType } from './types'\n\nexport const messageProps = {\n  icon: Function as PropType<() => VNodeChild>,\n  type: {\n    type: String as PropType<MessageType>,\n    default: 'info'\n  },\n  content: [String, Number, Function] as PropType<\n    string | number | (() => VNodeChild)\n  >,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  closable: Boolean,\n  keepAliveOnHover: Boolean,\n  spinProps: Object as PropType<MessageSpinProps>,\n  onClose: Function as PropType<() => void>,\n  onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n  onMouseleave: Function as PropType<(e: MouseEvent) => void>\n} as const\n\nexport type MessageProps = ExtractPublicPropTypes<typeof messageProps>\nexport type MessageSetupProps = ExtractPropTypes<typeof messageProps>\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-margin\n// --n-bezier\n// --n-padding\n// --n-max-width\n// --n-font-size\n// --n-icon-margin\n// --n-icon-size\n// --n-text-color\n// --n-color\n// --n-box-shadow\n// --n-icon-color-default\n// --n-icon-color-info\n// --n-icon-color-success\n// --n-icon-color-warning\n// --n-icon-color-error\n// --n-icon-color-loading\n// --n-close-size\n// --n-close-icon-size\n// --n-close-margin\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-border-radius\n// --n-close-icon-color\n// --n-close-icon-color-pressed\n// --n-close-icon-color-hover\n// --n-border-radius\nexport default c([\n  cB('message-wrapper', `\n    margin: var(--n-margin);\n    z-index: 0;\n    transform-origin: top center;\n    display: flex;\n  `, [\n    fadeInHeightExpandTransition({\n      overflow: 'visible',\n      originalTransition: 'transform .3s var(--n-bezier)',\n      enterToProps: {\n        transform: 'scale(1)'\n      },\n      leaveToProps: {\n        transform: 'scale(0.85)'\n      }\n    })\n  ]),\n  cB('message', `\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    transition:\n      color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      opacity .3s var(--n-bezier),\n      transform .3s var(--n-bezier),\n      margin-bottom .3s var(--n-bezier);\n    padding: var(--n-padding);\n    border-radius: var(--n-border-radius);\n    border: var(--n-border);\n    flex-wrap: nowrap;\n    overflow: hidden;\n    max-width: var(--n-max-width);\n    color: var(--n-text-color);\n    background-color: var(--n-color);\n    box-shadow: var(--n-box-shadow);\n  `, [\n    cE('content', `\n      display: inline-block;\n      line-height: var(--n-line-height);\n      font-size: var(--n-font-size);\n    `),\n    cE('icon', `\n      position: relative;\n      margin: var(--n-icon-margin);\n      height: var(--n-icon-size);\n      width: var(--n-icon-size);\n      font-size: var(--n-icon-size);\n      flex-shrink: 0;\n    `, [\n      ['default', 'info', 'success', 'warning', 'error', 'loading'].map(type =>\n        cM(`${type}-type`, [\n          c('> *', `\n            color: var(--n-icon-color-${type});\n            transition: color .3s var(--n-bezier);\n          `)\n        ])\n      ),\n      c('> *', `\n        position: absolute;\n        left: 0;\n        top: 0;\n        right: 0;\n        bottom: 0;\n      `, [iconSwitchTransition()])\n    ]),\n    cE('close', `\n      margin: var(--n-close-margin);\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      flex-shrink: 0;\n    `, [\n      c('&:hover', `\n        color: var(--n-close-icon-color-hover);\n      `),\n      c('&:active', `\n        color: var(--n-close-icon-color-pressed);\n      `)\n    ])\n  ]),\n  cB('message-container', `\n    z-index: 6000;\n    position: fixed;\n    height: 0;\n    overflow: visible;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n  `, [\n    cM('top', `\n      top: 12px;\n      left: 0;\n      right: 0;\n    `),\n    cM('top-left', `\n      top: 12px;\n      left: 12px;\n      right: 0;\n      align-items: flex-start;\n    `),\n    cM('top-right', `\n      top: 12px;\n      left: 0;\n      right: 12px;\n      align-items: flex-end;\n    `),\n    cM('bottom', `\n      bottom: 4px;\n      left: 0;\n      right: 0;\n      justify-content: flex-end;\n    `),\n    cM('bottom-left', `\n      bottom: 4px;\n      left: 12px;\n      right: 0;\n      justify-content: flex-end;\n      align-items: flex-start;\n    `),\n    cM('bottom-right', `\n      bottom: 4px;\n      left: 0;\n      right: 12px;\n      justify-content: flex-end;\n      align-items: flex-end;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, VNodeChild } from 'vue'\nimport type { MessageSpinProps } from './public-types'\nimport type { MessageRenderMessage, MessageType } from './types'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport {\n  NBaseClose,\n  NBaseIcon,\n  NBaseLoading,\n  NIconSwitchTransition\n} from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey, render } from '../../_utils'\nimport { messageLight } from '../styles'\nimport { messageProviderInjectionKey } from './context'\nimport { messageProps } from './message-props'\nimport style from './styles/index.cssr'\n\nconst iconRenderMap = {\n  info: () => <InfoIcon />,\n  success: () => <SuccessIcon />,\n  warning: () => <WarningIcon />,\n  error: () => <ErrorIcon />,\n  default: () => null\n}\n\nexport default defineComponent({\n  name: 'Message',\n  props: {\n    ...messageProps,\n    render: Function as PropType<MessageRenderMessage>\n  },\n  setup(props) {\n    const { inlineThemeDisabled, mergedRtlRef } = useConfig(props)\n    const { props: messageProviderProps, mergedClsPrefixRef } = inject(\n      messageProviderInjectionKey\n    )!\n    const rtlEnabledRef = useRtl('Message', mergedRtlRef, mergedClsPrefixRef)\n    const themeRef = useTheme(\n      'Message',\n      '-message',\n      style,\n      messageLight,\n      messageProviderProps,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { type } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          padding,\n          margin,\n          maxWidth,\n          iconMargin,\n          closeMargin,\n          closeSize,\n          iconSize,\n          fontSize,\n          lineHeight,\n          borderRadius,\n          border,\n          iconColorInfo,\n          iconColorSuccess,\n          iconColorWarning,\n          iconColorError,\n          iconColorLoading,\n          closeIconSize,\n          closeBorderRadius,\n          [createKey('textColor', type)]: textColor,\n          [createKey('boxShadow', type)]: boxShadow,\n          [createKey('color', type)]: color,\n          [createKey('closeColorHover', type)]: closeColorHover,\n          [createKey('closeColorPressed', type)]: closeColorPressed,\n          [createKey('closeIconColor', type)]: closeIconColor,\n          [createKey('closeIconColorPressed', type)]: closeIconColorPressed,\n          [createKey('closeIconColorHover', type)]: closeIconColorHover\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-margin': margin,\n        '--n-padding': padding,\n        '--n-max-width': maxWidth,\n        '--n-font-size': fontSize,\n        '--n-icon-margin': iconMargin,\n        '--n-icon-size': iconSize,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-size': closeSize,\n        '--n-close-margin': closeMargin,\n        '--n-text-color': textColor,\n        '--n-color': color,\n        '--n-box-shadow': boxShadow,\n        '--n-icon-color-info': iconColorInfo,\n        '--n-icon-color-success': iconColorSuccess,\n        '--n-icon-color-warning': iconColorWarning,\n        '--n-icon-color-error': iconColorError,\n        '--n-icon-color-loading': iconColorLoading,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-line-height': lineHeight,\n        '--n-border-radius': borderRadius,\n        '--n-border': border\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'message',\n          computed(() => props.type[0]),\n          cssVarsRef,\n          {}\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      messageProviderProps,\n      handleClose() {\n        props.onClose?.()\n      },\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      placement: messageProviderProps.placement\n    }\n  },\n  render() {\n    const {\n      render: renderMessage,\n      type,\n      closable,\n      content,\n      mergedClsPrefix,\n      cssVars,\n      themeClass,\n      onRender,\n      icon,\n      handleClose,\n      showIcon\n    } = this\n    onRender?.()\n    const iconNode\n      = renderMessage\n        || createIconVNode(icon, type, mergedClsPrefix, this.spinProps)\n    return (\n      <div\n        class={[`${mergedClsPrefix}-message-wrapper`, themeClass]}\n        onMouseenter={this.onMouseenter}\n        onMouseleave={this.onMouseleave}\n        style={[\n          {\n            alignItems: this.placement.startsWith('top')\n              ? 'flex-start'\n              : 'flex-end'\n          },\n          cssVars as CSSProperties\n        ]}\n      >\n        {renderMessage ? (\n          renderMessage(this.$props)\n        ) : (\n          <div\n            class={[\n              `${mergedClsPrefix}-message ${mergedClsPrefix}-message--${type}-type`,\n              this.rtlEnabled && `${mergedClsPrefix}-message--rtl`\n            ]}\n          >\n            {iconNode && showIcon ? (\n              <div\n                class={`${mergedClsPrefix}-message__icon ${mergedClsPrefix}-message__icon--${type}-type`}\n              >\n                <NIconSwitchTransition>\n                  {{\n                    default: () => iconNode\n                  }}\n                </NIconSwitchTransition>\n              </div>\n            ) : null}\n            <div class={`${mergedClsPrefix}-message__content`}>\n              {render(content)}\n            </div>\n            {closable ? (\n              <NBaseClose\n                clsPrefix={mergedClsPrefix}\n                class={`${mergedClsPrefix}-message__close`}\n                onClick={handleClose}\n                absolute\n              />\n            ) : null}\n          </div>\n        )}\n      </div>\n    )\n  }\n})\n\nfunction createIconVNode(\n  icon: undefined | (() => VNodeChild),\n  type: MessageType,\n  clsPrefix: string,\n  spinProps: MessageSpinProps | undefined\n): VNodeChild {\n  if (typeof icon === 'function') {\n    return icon()\n  }\n  else {\n    const innerIcon\n      = type === 'loading' ? (\n        <NBaseLoading\n          clsPrefix={clsPrefix}\n          strokeWidth={24}\n          scale={0.85}\n          {...spinProps}\n        />\n      ) : (\n        iconRenderMap[type]()\n      )\n    if (!innerIcon)\n      return null\n    return (\n      <NBaseIcon clsPrefix={clsPrefix} key={type}>\n        {{\n          default: () => innerIcon\n        }}\n      </NBaseIcon>\n    )\n  }\n}\n","import type { PropType } from 'vue'\nimport { defineComponent, h, onMounted, ref } from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\nimport NMessage from './Message'\nimport { messageProps } from './message-props'\n\nexport default defineComponent({\n  name: 'MessageEnvironment',\n  props: {\n    ...messageProps,\n    duration: {\n      type: Number,\n      default: 3000\n    },\n    onAfterLeave: Function,\n    onLeave: Function,\n    internalKey: {\n      type: String,\n      required: true\n    },\n    // private\n    onInternalAfterLeave: Function as PropType<(key: string) => void>,\n    // deprecated\n    onHide: Function,\n    onAfterHide: Function\n  },\n  setup(props) {\n    let timerId: number | null = null\n    const showRef = ref<boolean>(true)\n    onMounted(() => {\n      setHideTimeout()\n    })\n    function setHideTimeout(): void {\n      const { duration } = props\n      if (duration) {\n        timerId = window.setTimeout(hide, duration)\n      }\n    }\n    function handleMouseenter(e: MouseEvent): void {\n      if (e.currentTarget !== e.target)\n        return\n      if (timerId !== null) {\n        window.clearTimeout(timerId)\n        timerId = null\n      }\n    }\n    function handleMouseleave(e: MouseEvent): void {\n      if (e.currentTarget !== e.target)\n        return\n      setHideTimeout()\n    }\n    function hide(): void {\n      const { onHide } = props\n      showRef.value = false\n      if (timerId) {\n        window.clearTimeout(timerId)\n        timerId = null\n      }\n      // deprecated\n      if (onHide)\n        onHide()\n    }\n    function handleClose(): void {\n      const { onClose } = props\n      if (onClose)\n        onClose()\n      hide()\n    }\n    function handleAfterLeave(): void {\n      const { onAfterLeave, onInternalAfterLeave, onAfterHide, internalKey }\n        = props\n      if (onAfterLeave)\n        onAfterLeave()\n      if (onInternalAfterLeave)\n        onInternalAfterLeave(internalKey)\n      // deprecated\n      if (onAfterHide)\n        onAfterHide()\n    }\n    // deprecated\n    function deactivate(): void {\n      hide()\n    }\n\n    return {\n      show: showRef,\n      hide,\n      handleClose,\n      handleAfterLeave,\n      handleMouseleave,\n      handleMouseenter,\n      deactivate\n    }\n  },\n  render() {\n    return (\n      <NFadeInExpandTransition\n        appear\n        onAfterLeave={this.handleAfterLeave}\n        onLeave={this.onLeave}\n      >\n        {{\n          default: () => [\n            this.show ? (\n              <NMessage\n                content={this.content}\n                type={this.type}\n                icon={this.icon}\n                showIcon={this.showIcon}\n                closable={this.closable}\n                spinProps={this.spinProps}\n                onClose={this.handleClose}\n                onMouseenter={\n                  this.keepAliveOnHover ? this.handleMouseenter : undefined\n                }\n                onMouseleave={\n                  this.keepAliveOnHover ? this.handleMouseleave : undefined\n                }\n              />\n            ) : null\n          ]\n        }}\n      </NFadeInExpandTransition>\n    )\n  }\n})\n","import type { CSSProperties, ExtractPropTypes, PropType, VNodeChild } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { MessageTheme, MessageThemeOverrides } from '../styles'\nimport type { MessageOptions, MessageType } from './types'\nimport { createId } from 'seemly'\nimport {\n  defineComponent,\n  Fragment,\n  h,\n  provide,\n  reactive,\n  ref,\n  Teleport\n} from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { omit } from '../../_utils'\nimport { messageApiInjectionKey, messageProviderInjectionKey } from './context'\nimport MessageEnvironment from './MessageEnvironment'\n\ntype ContentType = string | (() => VNodeChild)\n\nexport interface MessageApiInjection {\n  create: (content: ContentType, options?: MessageOptions) => MessageReactive\n  info: (content: ContentType, options?: MessageOptions) => MessageReactive\n  success: (content: ContentType, options?: MessageOptions) => MessageReactive\n  warning: (content: ContentType, options?: MessageOptions) => MessageReactive\n  error: (content: ContentType, options?: MessageOptions) => MessageReactive\n  loading: (content: ContentType, options?: MessageOptions) => MessageReactive\n  destroyAll: () => void\n}\n\nexport interface MessageReactive {\n  content?: ContentType\n  duration?: number\n  closable?: boolean\n  keepAliveOnHover?: boolean\n  type: MessageType\n  icon?: () => VNodeChild\n  showIcon?: boolean\n  onClose?: () => void\n  destroy: () => void\n}\n\ninterface PrivateMessageReactive extends MessageReactive {\n  key: string\n}\n\ninterface PrivateMessageRef extends MessageReactive {\n  key: string\n  hide: () => void\n}\n\nexport type MessageProviderInst = MessageApiInjection\n\nexport const messageProviderProps = {\n  ...(useTheme.props as ThemeProps<MessageTheme, MessageThemeOverrides>),\n  to: [String, Object] as PropType<string | HTMLElement>,\n  duration: {\n    type: Number,\n    default: 3000\n  },\n  keepAliveOnHover: Boolean,\n  max: Number,\n  placement: {\n    type: String as PropType<\n      | 'top'\n      | 'top-left'\n      | 'top-right'\n      | 'bottom'\n      | 'bottom-left'\n      | 'bottom-right'\n    >,\n    default: 'top'\n  },\n  closable: Boolean,\n  containerClass: String,\n  containerStyle: [String, Object] as PropType<string | CSSProperties>\n}\n\nexport type MessageProviderProps = ExtractPublicPropTypes<\n  typeof messageProviderProps\n>\n\nexport type MessageProviderSetupProps = ExtractPropTypes<\n  typeof messageProviderProps\n>\n\nexport default defineComponent({\n  name: 'MessageProvider',\n  props: messageProviderProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const messageListRef = ref<PrivateMessageReactive[]>([])\n    const messageRefs = ref<Record<string, PrivateMessageRef>>({})\n    const api: MessageApiInjection = {\n      create(content: ContentType, options?: MessageOptions) {\n        return create(content, { type: 'default', ...options })\n      },\n      info(content: ContentType, options?: MessageOptions) {\n        return create(content, { ...options, type: 'info' })\n      },\n      success(content: ContentType, options?: MessageOptions) {\n        return create(content, { ...options, type: 'success' })\n      },\n      warning(content: ContentType, options?: MessageOptions) {\n        return create(content, { ...options, type: 'warning' })\n      },\n      error(content: ContentType, options?: MessageOptions) {\n        return create(content, { ...options, type: 'error' })\n      },\n      loading(content: ContentType, options?: MessageOptions) {\n        return create(content, { ...options, type: 'loading' })\n      },\n      destroyAll\n    }\n    provide(messageProviderInjectionKey, {\n      props,\n      mergedClsPrefixRef\n    })\n    provide(messageApiInjectionKey, api)\n    function create(\n      content: ContentType,\n      options: MessageOptions & { type: MessageType }\n    ): MessageReactive {\n      const key = createId()\n      const messageReactive = reactive({\n        ...options,\n        content,\n        key,\n        destroy: () => {\n          messageRefs.value[key]?.hide()\n        }\n      })\n      const { max } = props\n      if (max && messageListRef.value.length >= max) {\n        messageListRef.value.shift()\n      }\n      messageListRef.value.push(messageReactive)\n      return messageReactive\n    }\n    function handleAfterLeave(key: string): void {\n      messageListRef.value.splice(\n        messageListRef.value.findIndex(message => message.key === key),\n        1\n      )\n      delete messageRefs.value[key]\n    }\n    function destroyAll(): void {\n      Object.values(messageRefs.value).forEach((messageInstRef) => {\n        messageInstRef.hide()\n      })\n    }\n    return Object.assign(\n      {\n        mergedClsPrefix: mergedClsPrefixRef,\n        messageRefs,\n        messageList: messageListRef,\n        handleAfterLeave\n      },\n      api\n    )\n  },\n  render() {\n    return (\n      <>\n        {this.$slots.default?.()}\n        {this.messageList.length ? (\n          <Teleport to={this.to ?? 'body'}>\n            <div\n              class={[\n                `${this.mergedClsPrefix}-message-container`,\n                `${this.mergedClsPrefix}-message-container--${this.placement}`,\n                this.containerClass\n              ]}\n              key=\"message-container\"\n              style={this.containerStyle}\n            >\n              {this.messageList.map((message) => {\n                return (\n                  <MessageEnvironment\n                    ref={\n                      ((inst: PrivateMessageRef) => {\n                        if (inst) {\n                          this.messageRefs[message.key] = inst\n                        }\n                      }) as () => void\n                    }\n                    internalKey={message.key}\n                    onInternalAfterLeave={this.handleAfterLeave}\n                    {...omit(message, ['destroy'], undefined)}\n                    duration={\n                      message.duration === undefined\n                        ? this.duration\n                        : message.duration\n                    }\n                    keepAliveOnHover={\n                      message.keepAliveOnHover === undefined\n                        ? this.keepAliveOnHover\n                        : message.keepAliveOnHover\n                    }\n                    closable={\n                      message.closable === undefined\n                        ? this.closable\n                        : message.closable\n                    }\n                  />\n                )\n              })}\n            </div>\n          </Teleport>\n        ) : null}\n      </>\n    )\n  }\n})\n","import type { MessageApiInjection } from './MessageProvider'\nimport { inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport { messageApiInjectionKey } from './context'\n\nexport function useMessage(): MessageApiInjection {\n  const api = inject(messageApiInjectionKey, null)\n  if (api === null) {\n    throwError(\n      'use-message',\n      'No outer <n-message-provider /> founded. See prerequisite in https://www.naiveui.com/en-US/os-theme/components/message for more details. If you want to use `useMessage` outside setup, please check https://www.naiveui.com/zh-CN/os-theme/components/message#Q-&-A.'\n    )\n  }\n  return api\n}\n","import type { PropType } from 'vue'\n// use absolute path to make sure no circular ref of style\n// this -> modal-index -> modal-style\nimport { defineComponent, h, ref } from 'vue'\nimport { call, omit } from '../../_utils'\nimport NModal, { modalProps } from './Modal'\n\nexport const NModalEnvironment = defineComponent({\n  name: 'ModalEnvironment',\n  props: {\n    ...modalProps,\n    internalKey: {\n      type: String,\n      required: true\n    },\n    // private\n    onInternalAfterLeave: {\n      type: Function as PropType<(key: string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const showRef = ref(true)\n    function handleAfterLeave(): void {\n      const { onInternalAfterLeave, internalKey, onAfterLeave } = props\n      if (onInternalAfterLeave)\n        onInternalAfterLeave(internalKey)\n      if (onAfterLeave)\n        onAfterLeave()\n    }\n    function handleMaskClick(e: MouseEvent): void {\n      const { onMaskClick, maskClosable } = props\n      if (onMaskClick) {\n        onMaskClick(e)\n        if (maskClosable) {\n          hide()\n        }\n      }\n    }\n    function handleEsc(): void {\n      const { onEsc } = props\n      if (onEsc) {\n        onEsc()\n      }\n    }\n    function hide(): void {\n      showRef.value = false\n    }\n    function handleUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n      showRef.value = value\n    }\n    return {\n      show: showRef,\n      hide,\n      handleUpdateShow,\n      handleAfterLeave,\n      handleMaskClick,\n      handleEsc\n    }\n  },\n  render() {\n    const {\n      handleUpdateShow,\n      handleAfterLeave,\n      handleMaskClick,\n      handleEsc,\n      show\n    } = this\n    return (\n      <NModal\n        {...omit(this.$props, [\n          'onUpdateShow',\n          'onUpdate:show',\n          'onMaskClick',\n          'onEsc',\n          'onAfterLeave'\n        ])}\n        show={show}\n        onUpdateShow={handleUpdateShow}\n        onMaskClick={handleMaskClick}\n        onEsc={handleEsc}\n        onAfterLeave={handleAfterLeave}\n        internalAppear\n        internalModal\n      >\n        {this.$slots}\n      </NModal>\n    )\n  }\n})\n","import type {\n  CSSProperties,\n  DefineComponent,\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  VNodeChild\n} from 'vue'\nimport type { ExtractPublicPropTypes, Mutable } from '../../_utils'\nimport type { modalProps } from './Modal'\nimport { createId } from 'seemly'\nimport { useClicked, useClickPosition } from 'vooks'\nimport { defineComponent, Fragment, h, provide, reactive, ref } from 'vue'\nimport { omit } from '../../_utils'\nimport {\n  modalApiInjectionKey,\n  modalProviderInjectionKey,\n  modalReactiveListInjectionKey\n} from './context'\nimport { NModalEnvironment } from './ModalEnvironment'\n\nexport type ModalOptions = Mutable<\n  Omit<Partial<ExtractPropTypes<typeof modalProps>>, 'internalStyle'> & {\n    class?: any\n    style?: string | CSSProperties\n    render?: () => VNodeChild\n  }\n>\n\nexport type ModalReactive = {\n  readonly key: string\n  readonly destroy: () => void\n} & ModalOptions\n\n// FIXME\n// If style is used as CSSProperties, typescript 4.4.2 will throw tons of errors\n// Fxxx\ntype TypeSafeModalReactive = ModalReactive & {\n  class?: any\n  style?: any\n}\n\nexport interface ModalApiInjection {\n  destroyAll: () => void\n  create: (options: ModalOptions) => ModalReactive\n}\n\nexport interface ModalProviderInjection {\n  clickedRef: Ref<boolean>\n  clickedPositionRef: Ref<{ x: number, y: number } | null>\n}\n\nexport type ModalReactiveListInjection = Ref<ModalReactive[]>\n\ninterface ModalInst {\n  hide: () => void\n}\n\nexport type ModalProviderInst = ModalApiInjection\n\nexport const modalProviderProps = {\n  to: [String, Object] as PropType<string | HTMLElement>\n}\n\nexport type ModalProviderProps = ExtractPublicPropTypes<\n  typeof modalProviderProps\n>\n\nexport const NModalProvider: DefineComponent<{ to?: string | HTMLElement }>\n  = defineComponent({\n    name: 'ModalProvider',\n    props: modalProviderProps,\n    setup() {\n      const modalListRef = ref<TypeSafeModalReactive[]>([])\n      const modalInstRefs: Record<string, ModalInst | undefined> = {}\n      function create(options: ModalOptions = {}): ModalReactive {\n        const key = createId()\n        const modalReactive = reactive({\n          ...options,\n          key,\n          destroy: () => {\n            modalInstRefs[`n-modal-${key}`]?.hide()\n          }\n        })\n        modalListRef.value.push(modalReactive)\n        return modalReactive\n      }\n\n      function handleAfterLeave(key: string): void {\n        const { value: modalList } = modalListRef\n        modalList.splice(\n          modalList.findIndex(modal => modal.key === key),\n          1\n        )\n      }\n\n      function destroyAll(): void {\n        Object.values(modalInstRefs).forEach((modalInstRef) => {\n          modalInstRef?.hide()\n        })\n      }\n\n      const api = {\n        create,\n        destroyAll\n      }\n\n      provide(modalApiInjectionKey, api)\n      provide(modalProviderInjectionKey, {\n        clickedRef: useClicked(64),\n        clickedPositionRef: useClickPosition()\n      })\n      provide(modalReactiveListInjectionKey, modalListRef)\n      return {\n        ...api,\n        modalList: modalListRef,\n        modalInstRefs,\n        handleAfterLeave\n      }\n    },\n    render() {\n      return h(Fragment, null, [\n        this.modalList.map(modal =>\n          h(\n            NModalEnvironment,\n            omit(modal, ['destroy', 'render'], {\n              to: modal.to ?? this.to,\n              ref: ((inst: ModalInst | null) => {\n                if (inst === null) {\n                  delete this.modalInstRefs[`n-modal-${modal.key}`]\n                }\n                else {\n                  this.modalInstRefs[`n-modal-${modal.key}`] = inst\n                }\n              }) as any,\n              internalKey: modal.key,\n              onInternalAfterLeave: this.handleAfterLeave\n            }),\n            {\n              default: modal.render\n            }\n          )\n        ),\n        this.$slots.default?.()\n      ])\n    }\n  })\n","export default {\n  closeMargin: '16px 12px',\n  closeSize: '20px',\n  closeIconSize: '16px',\n  width: '365px',\n  padding: '16px',\n  titleFontSize: '16px',\n  metaFontSize: '12px',\n  descriptionFontSize: '12px'\n}\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    successColor,\n    infoColor,\n    warningColor,\n    errorColor,\n    popoverColor,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    textColor1,\n    textColor3,\n    borderRadius,\n    fontWeightStrong,\n    boxShadow2,\n    lineHeight,\n    fontSize\n  } = vars\n  return {\n    ...commonVars,\n    borderRadius,\n    lineHeight,\n    fontSize,\n    headerFontWeight: fontWeightStrong,\n    iconColor: textColor2,\n    iconColorSuccess: successColor,\n    iconColorInfo: infoColor,\n    iconColorWarning: warningColor,\n    iconColorError: errorColor,\n    color: popoverColor,\n    textColor: textColor2,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeBorderRadius: borderRadius,\n    closeColorHover,\n    closeColorPressed,\n    headerTextColor: textColor1,\n    descriptionTextColor: textColor3,\n    actionTextColor: textColor2,\n    boxShadow: boxShadow2\n  }\n}\n\nexport interface NotificationThemeVars extends ReturnType<typeof self> {}\n\nconst notificationLight: NotificationTheme = createTheme({\n  name: 'Notification',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface NotificationTheme extends Theme<\n  'Notification',\n  NotificationThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface NotificationThemeOverrides extends ExtractThemeOverrides<NotificationTheme> {}\n\nexport default notificationLight\n","import type { NotificationTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst notificationDark: NotificationTheme = {\n  name: 'Notification',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark\n  },\n  self\n}\n\nexport default notificationDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('notification', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('notification-main', `\n      margin-left: unset;\n      margin-right: 8px;\n    `, [\n      cE('header', `\n        margin: var(--n-icon-margin);\n        margin-right: 0;\n      `)\n    ]),\n    cE('avatar', `\n      left: unset;\n      right: var(--n-padding-left);\n    `),\n    cM('show-avatar', [\n      cB('notification-main', `\n        margin-right: 40px;\n        margin-reft: unset;\n      `)\n    ]),\n    cM('closable', [\n      cB('notification-main', [\n        c('> *:first-child', `\n          padding-left: 20px;\n          padding-right: unset;\n        `)\n      ]),\n      cE('close', `\n        right: unset;\n        left: 0;\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const notificationRtl: RtlItem = {\n  name: 'Notification',\n  style: rtlStyle\n}\n","import type { NotificationProviderInjection } from './NotificationProvider'\nimport { createInjectionKey } from '../../_utils'\n\nexport const notificationProviderInjectionKey\n  = createInjectionKey<NotificationProviderInjection>('n-notification-provider')\n","import type { PropType } from 'vue'\nimport type { NotificationPlacement } from './NotificationProvider'\nimport { defineComponent, h, inject, ref, watchEffect } from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { notificationProviderInjectionKey } from './context'\n\nexport const NotificationContainer = defineComponent({\n  name: 'NotificationContainer',\n  props: {\n    scrollable: {\n      type: Boolean,\n      required: true\n    },\n    placement: {\n      type: String as PropType<NotificationPlacement>,\n      required: true\n    }\n  },\n  setup() {\n    const { mergedThemeRef, mergedClsPrefixRef, wipTransitionCountRef }\n      = inject(notificationProviderInjectionKey)!\n    const selfRef = ref<HTMLElement | null>(null)\n    watchEffect(() => {\n      if (wipTransitionCountRef.value > 0) {\n        selfRef?.value?.classList.add('transitioning')\n      }\n      else {\n        selfRef?.value?.classList.remove('transitioning')\n      }\n    })\n    return {\n      selfRef,\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      transitioning: wipTransitionCountRef\n    }\n  },\n  render() {\n    const { $slots, scrollable, mergedClsPrefix, mergedTheme, placement } = this\n    return (\n      <div\n        ref=\"selfRef\"\n        class={[\n          `${mergedClsPrefix}-notification-container`,\n          scrollable && `${mergedClsPrefix}-notification-container--scrollable`,\n          `${mergedClsPrefix}-notification-container--${placement}`\n        ]}\n      >\n        {scrollable ? (\n          <NScrollbar\n            theme={mergedTheme.peers.Scrollbar}\n            themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n            contentStyle={{ overflow: 'hidden' }}\n          >\n            {$slots}\n          </NScrollbar>\n        ) : (\n          $slots.default?.()\n        )}\n      </div>\n    )\n  }\n})\n","import type { CSSProperties, PropType, Ref, VNodeChild } from 'vue'\nimport { getPadding } from 'seemly'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NBaseClose, NBaseIcon } from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { useConfig, useRtl, useThemeClass } from '../../_mixins'\nimport { createKey, keysOf, render } from '../../_utils'\nimport { notificationProviderInjectionKey } from './context'\n\nconst iconRenderMap = {\n  info: () => <InfoIcon />,\n  success: () => <SuccessIcon />,\n  warning: () => <WarningIcon />,\n  error: () => <ErrorIcon />,\n  default: () => null\n}\n\nexport const notificationProps = {\n  closable: {\n    type: Boolean,\n    default: true\n  },\n  type: {\n    type: String as PropType<\n      'info' | 'success' | 'warning' | 'error' | 'default'\n    >,\n    default: 'default'\n  },\n  avatar: Function as PropType<() => VNodeChild>,\n  title: [String, Function] as PropType<string | (() => VNodeChild)>,\n  description: [String, Function] as PropType<string | (() => VNodeChild)>,\n  content: [String, Function] as PropType<string | (() => VNodeChild)>,\n  meta: [String, Function] as PropType<string | (() => VNodeChild)>,\n  action: [String, Function] as PropType<string | (() => VNodeChild)>,\n  onClose: {\n    type: Function as PropType<() => void>,\n    required: true\n  },\n  keepAliveOnHover: Boolean,\n  onMouseenter: Function as PropType<(e: MouseEvent) => void>,\n  onMouseleave: Function as PropType<(e: MouseEvent) => void>\n} as const\n\nexport const notificationPropKeys = keysOf(notificationProps)\n\nexport const Notification = defineComponent({\n  name: 'Notification',\n  props: notificationProps,\n  setup(props) {\n    const {\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      props: providerProps\n    } = inject(notificationProviderInjectionKey)!\n    const { inlineThemeDisabled, mergedRtlRef } = useConfig()\n    const rtlEnabledRef = useRtl(\n      'Notification',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { type } = props\n      const {\n        self: {\n          color,\n          textColor,\n          closeIconColor,\n          closeIconColorHover,\n          closeIconColorPressed,\n          headerTextColor,\n          descriptionTextColor,\n          actionTextColor,\n          borderRadius,\n          headerFontWeight,\n          boxShadow,\n          lineHeight,\n          fontSize,\n          closeMargin,\n          closeSize,\n          width,\n          padding,\n          closeIconSize,\n          closeBorderRadius,\n          closeColorHover,\n          closeColorPressed,\n          titleFontSize,\n          metaFontSize,\n          descriptionFontSize,\n          [createKey('iconColor', type)]: iconColor\n        },\n        common: { cubicBezierEaseOut, cubicBezierEaseIn, cubicBezierEaseInOut }\n      } = mergedThemeRef.value\n      const { left, right, top, bottom } = getPadding(padding)\n      return {\n        '--n-color': color,\n        '--n-font-size': fontSize,\n        '--n-text-color': textColor,\n        '--n-description-text-color': descriptionTextColor,\n        '--n-action-text-color': actionTextColor,\n        '--n-title-text-color': headerTextColor,\n        '--n-title-font-weight': headerFontWeight,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-bezier-ease-out': cubicBezierEaseOut,\n        '--n-bezier-ease-in': cubicBezierEaseIn,\n        '--n-border-radius': borderRadius,\n        '--n-box-shadow': boxShadow,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-line-height': lineHeight,\n        '--n-icon-color': iconColor,\n        '--n-close-margin': closeMargin,\n        '--n-close-size': closeSize,\n        '--n-close-icon-size': closeIconSize,\n        '--n-width': width,\n        '--n-padding-left': left,\n        '--n-padding-right': right,\n        '--n-padding-top': top,\n        '--n-padding-bottom': bottom,\n        '--n-title-font-size': titleFontSize,\n        '--n-meta-font-size': metaFontSize,\n        '--n-description-font-size': descriptionFontSize\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'notification',\n          computed(() => props.type[0]),\n          cssVarsRef,\n          providerProps\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      showAvatar: computed(() => {\n        return props.avatar || props.type !== 'default'\n      }),\n      handleCloseClick() {\n        props.onClose()\n      },\n      rtlEnabled: rtlEnabledRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-notification-wrapper`, this.themeClass]}\n        onMouseenter={this.onMouseenter}\n        onMouseleave={this.onMouseleave}\n        style={this.cssVars as CSSProperties}\n      >\n        <div\n          class={[\n            `${mergedClsPrefix}-notification`,\n            this.rtlEnabled && `${mergedClsPrefix}-notification--rtl`,\n            this.themeClass,\n            {\n              [`${mergedClsPrefix}-notification--closable`]: this.closable,\n              [`${mergedClsPrefix}-notification--show-avatar`]: this.showAvatar\n            }\n          ]}\n          style={this.cssVars as CSSProperties}\n        >\n          {this.showAvatar ? (\n            <div class={`${mergedClsPrefix}-notification__avatar`}>\n              {this.avatar ? (\n                render(this.avatar)\n              ) : this.type !== 'default' ? (\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{ default: () => iconRenderMap[this.type]() }}\n                </NBaseIcon>\n              ) : null}\n            </div>\n          ) : null}\n          {this.closable ? (\n            <NBaseClose\n              clsPrefix={mergedClsPrefix}\n              class={`${mergedClsPrefix}-notification__close`}\n              onClick={this.handleCloseClick}\n            />\n          ) : null}\n          <div ref=\"bodyRef\" class={`${mergedClsPrefix}-notification-main`}>\n            {this.title ? (\n              <div class={`${mergedClsPrefix}-notification-main__header`}>\n                {render(this.title)}\n              </div>\n            ) : null}\n            {this.description ? (\n              <div class={`${mergedClsPrefix}-notification-main__description`}>\n                {render(this.description)}\n              </div>\n            ) : null}\n            {this.content ? (\n              <pre class={`${mergedClsPrefix}-notification-main__content`}>\n                {render(this.content)}\n              </pre>\n            ) : null}\n            {this.meta || this.action ? (\n              <div class={`${mergedClsPrefix}-notification-main-footer`}>\n                {this.meta ? (\n                  <div\n                    class={`${mergedClsPrefix}-notification-main-footer__meta`}\n                  >\n                    {render(this.meta)}\n                  </div>\n                ) : null}\n                {this.action ? (\n                  <div\n                    class={`${mergedClsPrefix}-notification-main-footer__action`}\n                  >\n                    {render(this.action)}\n                  </div>\n                ) : null}\n              </div>\n            ) : null}\n          </div>\n        </div>\n      </div>\n    )\n  }\n})\n","import type { ExtractPropTypes, PropType } from 'vue'\nimport {\n  defineComponent,\n  h,\n  inject,\n  nextTick,\n  onMounted,\n  ref,\n  Transition\n} from 'vue'\nimport { keep, mergeEventHandlers } from '../../_utils'\nimport { notificationProviderInjectionKey } from './context'\nimport {\n  Notification,\n  notificationPropKeys,\n  notificationProps\n} from './Notification'\n\nexport const notificationEnvOptions = {\n  ...notificationProps,\n  duration: Number,\n  onClose: Function as PropType<() => Promise<boolean> | boolean | any>,\n  onLeave: Function as PropType<() => void>,\n  onAfterEnter: Function as PropType<() => void>,\n  onAfterLeave: Function as PropType<() => void>,\n  /** @deprecated */\n  onHide: Function as PropType<() => void>,\n  /** @deprecated */\n  onAfterShow: Function as PropType<() => void>,\n  /** @deprecated */\n  onAfterHide: Function as PropType<() => void>\n} as const\n\nexport type NotificationOptions = Partial<\n  ExtractPropTypes<typeof notificationEnvOptions>\n>\n\nexport const NotificationEnvironment = defineComponent({\n  name: 'NotificationEnvironment',\n  props: {\n    ...notificationEnvOptions,\n    // private\n    internalKey: {\n      type: String,\n      required: true\n    },\n    onInternalAfterLeave: {\n      type: Function as PropType<(key: string) => void>,\n      required: true\n    }\n  },\n  setup(props) {\n    const { wipTransitionCountRef } = inject(notificationProviderInjectionKey)!\n    const showRef = ref(true)\n    let timerId: number | null = null\n    function hide(): void {\n      showRef.value = false\n      if (timerId) {\n        window.clearTimeout(timerId)\n      }\n    }\n    function handleBeforeEnter(el: HTMLElement): void {\n      wipTransitionCountRef.value++\n      void nextTick(() => {\n        el.style.height = `${el.offsetHeight}px`\n        el.style.maxHeight = '0'\n        el.style.transition = 'none'\n        void el.offsetHeight\n        el.style.transition = ''\n        el.style.maxHeight = el.style.height\n      })\n    }\n    function handleAfterEnter(el: HTMLElement): void {\n      wipTransitionCountRef.value--\n      el.style.height = ''\n      el.style.maxHeight = ''\n      const { onAfterEnter, onAfterShow } = props\n      if (onAfterEnter)\n        onAfterEnter()\n      // deprecated\n      if (onAfterShow)\n        onAfterShow()\n    }\n    function handleBeforeLeave(el: HTMLElement): void {\n      wipTransitionCountRef.value++\n      el.style.maxHeight = `${el.offsetHeight}px`\n      el.style.height = `${el.offsetHeight}px`\n      void el.offsetHeight\n    }\n    function handleLeave(el: HTMLElement): void {\n      const { onHide } = props\n      if (onHide)\n        onHide()\n      el.style.maxHeight = '0'\n      void el.offsetHeight\n    }\n    function handleAfterLeave(): void {\n      wipTransitionCountRef.value--\n      const { onAfterLeave, onInternalAfterLeave, onAfterHide, internalKey }\n        = props\n      if (onAfterLeave)\n        onAfterLeave()\n      onInternalAfterLeave(internalKey)\n      // deprecated\n      if (onAfterHide)\n        onAfterHide()\n    }\n    function setHideTimeout(): void {\n      const { duration } = props\n      if (duration) {\n        timerId = window.setTimeout(hide, duration)\n      }\n    }\n    function handleMouseenter(e: MouseEvent): void {\n      if (e.currentTarget !== e.target)\n        return\n      if (timerId !== null) {\n        window.clearTimeout(timerId)\n        timerId = null\n      }\n    }\n    function handleMouseleave(e: MouseEvent): void {\n      if (e.currentTarget !== e.target)\n        return\n      setHideTimeout()\n    }\n    function handleClose(): void {\n      const { onClose } = props\n      if (onClose) {\n        void Promise.resolve(onClose()).then((feedback) => {\n          if (feedback === false)\n            return\n          hide()\n        })\n      }\n      else {\n        hide()\n      }\n    }\n    onMounted(() => {\n      if (props.duration) {\n        timerId = window.setTimeout(hide, props.duration)\n      }\n    })\n    return {\n      show: showRef,\n      hide,\n      handleClose,\n      handleAfterLeave,\n      handleLeave,\n      handleBeforeLeave,\n      handleAfterEnter,\n      handleBeforeEnter,\n      handleMouseenter,\n      handleMouseleave\n    }\n  },\n  render() {\n    return (\n      <Transition\n        name=\"notification-transition\"\n        appear={true}\n        // convert to any since Element is not compatible with HTMLElement\n        onBeforeEnter={this.handleBeforeEnter as any}\n        onAfterEnter={this.handleAfterEnter as any}\n        onBeforeLeave={this.handleBeforeLeave as any}\n        onLeave={this.handleLeave as any}\n        onAfterLeave={this.handleAfterLeave as any}\n      >\n        {{\n          default: () => {\n            return this.show ? (\n              <Notification\n                {...keep(this.$props, notificationPropKeys, {\n                  onClose: this.handleClose,\n                  onMouseenter:\n                    this.duration && this.keepAliveOnHover\n                      ? mergeEventHandlers([\n                          this.handleMouseenter,\n                          this.onMouseenter\n                        ])\n                      : this.onMouseenter,\n                  onMouseleave:\n                    this.duration && this.keepAliveOnHover\n                      ? mergeEventHandlers([\n                          this.handleMouseleave,\n                          this.onMouseleave\n                        ])\n                      : this.onMouseleave\n                })}\n              />\n            ) : null\n          }\n        }}\n      </Transition>\n    )\n  }\n})\n","import type { CNode } from 'css-render'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-color\n// --n-text-color\n// --n-description-text-color\n// --n-action-text-color\n// --n-title-text-color\n// --n-title-font-weight\n// --n-title-font-size\n// --n-meta-font-size\n// --n-description-font-size\n// --n-bezier\n// --n-bezier-ease-out\n// --n-bezier-ease-in\n// --n-border-radius\n// --n-box-shadow\n// --n-close-margin\n// --n-close-size\n// --n-close-icon-size\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-line-height\n// --n-icon-color\n// --n-width\n// --n-padding-top\n// --n-padding-bottom\n// --n-padding-left\n// --n-padding-right\nexport default c([\n  cB('notification-container', `\n    z-index: 4000;\n    position: fixed;\n    overflow: visible;\n    display: flex;\n    flex-direction: column;\n    align-items: flex-end;\n  `, [\n    c('>', [\n      cB('scrollbar', `\n        width: initial;\n        overflow: visible;\n        height: -moz-fit-content !important;\n        height: fit-content !important;\n        max-height: 100vh !important;\n      `, [\n        c('>', [\n          cB('scrollbar-container', `\n            height: -moz-fit-content !important;\n            height: fit-content !important;\n            max-height: 100vh !important;\n          `, [\n            cB('scrollbar-content', `\n              padding-top: 12px;\n              padding-bottom: 33px;\n            `)\n          ])\n        ])\n      ])\n    ]),\n    cM('top, top-right, top-left', `\n      top: 12px;\n    `, [\n      c('&.transitioning >', [\n        cB('scrollbar', [\n          c('>', [\n            cB('scrollbar-container', `\n              min-height: 100vh !important;\n            `)\n          ])\n        ])\n      ])\n    ]),\n    cM('bottom, bottom-right, bottom-left', `\n      bottom: 12px;\n    `, [\n      c('>', [\n        cB('scrollbar', [\n          c('>', [\n            cB('scrollbar-container', [\n              cB('scrollbar-content', `\n                padding-bottom: 12px;\n              `)\n            ])\n          ])\n        ])\n      ]),\n      cB('notification-wrapper', `\n        display: flex;\n        align-items: flex-end;\n        margin-bottom: 0;\n        margin-top: 12px;\n      `)\n    ]),\n    cM('top, bottom', `\n      left: 50%;\n      transform: translateX(-50%);\n    `, [\n      cB('notification-wrapper', [\n        c('&.notification-transition-enter-from, &.notification-transition-leave-to', `\n          transform: scale(0.85);\n        `),\n        c('&.notification-transition-leave-from, &.notification-transition-enter-to', `\n          transform: scale(1);\n        `)\n      ])\n    ]),\n    cM('top', [\n      cB('notification-wrapper', `\n        transform-origin: top center;\n      `)\n    ]),\n    cM('bottom', [\n      cB('notification-wrapper', `\n        transform-origin: bottom center;\n      `)\n    ]),\n    cM('top-right, bottom-right', [\n      cB('notification', `\n        margin-left: 28px;\n        margin-right: 16px;\n      `)\n    ]),\n    cM('top-left, bottom-left', [\n      cB('notification', `\n        margin-left: 16px;\n        margin-right: 28px;\n      `)\n    ]),\n    cM('top-right', `\n      right: 0;\n    `, [\n      placementTransformStyle('top-right')\n    ]),\n    cM('top-left', `\n      left: 0;\n    `, [\n      placementTransformStyle('top-left')\n    ]),\n    cM('bottom-right', `\n      right: 0;\n    `, [\n      placementTransformStyle('bottom-right')\n    ]),\n    cM('bottom-left', `\n      left: 0;\n    `, [\n      placementTransformStyle('bottom-left')\n    ]),\n    cM('scrollable', [\n      cM('top-right', `\n        top: 0;\n      `),\n      cM('top-left', `\n        top: 0;\n      `),\n      cM('bottom-right', `\n        bottom: 0;\n      `),\n      cM('bottom-left', `\n        bottom: 0;\n      `)\n    ]),\n    cB('notification-wrapper', `\n      margin-bottom: 12px;\n    `, [\n      c('&.notification-transition-enter-from, &.notification-transition-leave-to', `\n        opacity: 0;\n        margin-top: 0 !important;\n        margin-bottom: 0 !important;\n      `),\n      c('&.notification-transition-leave-from, &.notification-transition-enter-to', `\n        opacity: 1;\n      `),\n      c('&.notification-transition-leave-active', `\n        transition:\n          background-color .3s var(--n-bezier),\n          color .3s var(--n-bezier),\n          opacity .3s var(--n-bezier),\n          transform .3s var(--n-bezier-ease-in),\n          max-height .3s var(--n-bezier),\n          margin-top .3s linear,\n          margin-bottom .3s linear,\n          box-shadow .3s var(--n-bezier);\n      `),\n      c('&.notification-transition-enter-active', `\n        transition:\n          background-color .3s var(--n-bezier),\n          color .3s var(--n-bezier),\n          opacity .3s var(--n-bezier),\n          transform .3s var(--n-bezier-ease-out),\n          max-height .3s var(--n-bezier),\n          margin-top .3s linear,\n          margin-bottom .3s linear,\n          box-shadow .3s var(--n-bezier);\n      `)\n    ]),\n    cB('notification', `\n      background-color: var(--n-color);\n      color: var(--n-text-color);\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier),\n        opacity .3s var(--n-bezier),\n        box-shadow .3s var(--n-bezier);\n      font-family: inherit;\n      font-size: var(--n-font-size);\n      font-weight: 400;\n      position: relative;\n      display: flex;\n      overflow: hidden;\n      flex-shrink: 0;\n      padding-left: var(--n-padding-left);\n      padding-right: var(--n-padding-right);\n      width: var(--n-width);\n      max-width: calc(100vw - 16px - 16px);\n      border-radius: var(--n-border-radius);\n      box-shadow: var(--n-box-shadow);\n      box-sizing: border-box;\n      opacity: 1;\n    `, [\n      cE('avatar', [\n        cB('icon', `\n          color: var(--n-icon-color);\n        `),\n        cB('base-icon', `\n          color: var(--n-icon-color);\n        `)\n      ]),\n      cM('show-avatar', [\n        cB('notification-main', `\n          margin-left: 40px;\n          width: calc(100% - 40px);  \n        `)\n      ]),\n      cM('closable', [\n        cB('notification-main', [\n          c('> *:first-child', `\n            padding-right: 20px;\n          `)\n        ]),\n        cE('close', `\n          position: absolute;\n          top: 0;\n          right: 0;\n          margin: var(--n-close-margin);\n          transition:\n            background-color .3s var(--n-bezier),\n            color .3s var(--n-bezier);\n        `)\n      ]),\n      cE('avatar', `\n        position: absolute;\n        top: var(--n-padding-top);\n        left: var(--n-padding-left);\n        width: 28px;\n        height: 28px;\n        font-size: 28px;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `, [\n        cB('icon', 'transition: color .3s var(--n-bezier);')\n      ]),\n      cB('notification-main', `\n        padding-top: var(--n-padding-top);\n        padding-bottom: var(--n-padding-bottom);\n        box-sizing: border-box;\n        display: flex;\n        flex-direction: column;\n        margin-left: 8px;\n        width: calc(100% - 8px);\n      `, [\n        cB('notification-main-footer', `\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          margin-top: 12px;\n        `, [\n          cE('meta', `\n            font-size: var(--n-meta-font-size);\n            transition: color .3s var(--n-bezier-ease-out);\n            color: var(--n-description-text-color);\n          `),\n          cE('action', `\n            cursor: pointer;\n            transition: color .3s var(--n-bezier-ease-out);\n            color: var(--n-action-text-color);\n          `)\n        ]),\n        cE('header', `\n          font-weight: var(--n-title-font-weight);\n          font-size: var(--n-title-font-size);\n          transition: color .3s var(--n-bezier-ease-out);\n          color: var(--n-title-text-color);\n        `),\n        cE('description', `\n          margin-top: 8px;\n          font-size: var(--n-description-font-size);\n          white-space: pre-wrap;\n          word-wrap: break-word;\n          transition: color .3s var(--n-bezier-ease-out);\n          color: var(--n-description-text-color);\n        `),\n        cE('content', `\n          line-height: var(--n-line-height);\n          margin: 12px 0 0 0;\n          font-family: inherit;\n          white-space: pre-wrap;\n          word-wrap: break-word;\n          transition: color .3s var(--n-bezier-ease-out);\n          color: var(--n-text-color);\n        `, [\n          c('&:first-child', 'margin: 0;')\n        ])\n      ])\n    ])\n  ])\n])\n\nfunction placementTransformStyle(placement: string): CNode {\n  const direction = placement.split('-')[1]\n  const transformXEnter = direction === 'left' ? 'calc(-100%)' : 'calc(100%)'\n  const transformXLeave = '0'\n  return cB('notification-wrapper', [\n    c('&.notification-transition-enter-from, &.notification-transition-leave-to', `\n      transform: translate(${transformXEnter}, 0);\n    `),\n    c('&.notification-transition-leave-from, &.notification-transition-enter-to', `\n      transform: translate(${transformXLeave}, 0);\n    `)\n  ])\n}\n","import type { CSSProperties, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MergedTheme, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, Mutable } from '../../_utils'\nimport type { NotificationTheme, NotificationThemeOverrides } from '../styles'\nimport type { NotificationOptions } from './NotificationEnvironment'\nimport { createId } from 'seemly'\nimport {\n  defineComponent,\n  Fragment,\n  h,\n  provide,\n  reactive,\n  ref,\n  Teleport\n} from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { createInjectionKey, omit } from '../../_utils'\nimport { notificationLight } from '../styles'\nimport { notificationProviderInjectionKey } from './context'\nimport { NotificationContainer } from './NotificationContainer'\nimport { NotificationEnvironment } from './NotificationEnvironment'\nimport style from './styles/index.cssr'\n\nexport type NotificationPlacement\n  = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'top' | 'bottom'\n\nexport interface NotificationProviderInjection {\n  props: ExtractPropTypes<typeof notificationProviderProps>\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<NotificationTheme>>\n  wipTransitionCountRef: Ref<number>\n}\n\ntype Create = (options: NotificationOptions) => NotificationReactive\ntype TypedCreate = (\n  options: Omit<NotificationOptions, 'type'>\n) => NotificationReactive\n\nexport interface NotificationApiInjection {\n  create: Create\n  info: TypedCreate\n  success: TypedCreate\n  warning: TypedCreate\n  error: TypedCreate\n  /** @deprecated */\n  open: Create\n  destroyAll: () => void\n}\n\nexport type NotificationProviderInst = NotificationApiInjection\n\nexport const notificationApiInjectionKey\n  = createInjectionKey<NotificationApiInjection>('n-notification-api')\n\nexport type NotificationType = 'info' | 'success' | 'warning' | 'error'\n\nexport type NotificationReactive = {\n  readonly key: string\n  readonly destroy: () => void\n  /** @deprecated */\n  readonly hide: () => void\n  /** @deprecated */\n  readonly deactivate: () => void\n} & Mutable<NotificationOptions>\n\ninterface NotificationRef {\n  hide: () => void\n}\n\nexport const notificationProviderProps = {\n  ...(useTheme.props as ThemeProps<\n    NotificationTheme,\n    NotificationThemeOverrides\n  >),\n  containerClass: String,\n  containerStyle: [String, Object] as PropType<string | CSSProperties>,\n  to: [String, Object] as PropType<string | HTMLElement>,\n  scrollable: {\n    type: Boolean,\n    default: true\n  },\n  max: Number,\n  placement: {\n    type: String as PropType<NotificationPlacement>,\n    default: 'top-right'\n  },\n  keepAliveOnHover: Boolean\n}\n\nexport type NotificationProviderProps = ExtractPublicPropTypes<\n  typeof notificationProviderProps\n>\n\nexport default defineComponent({\n  name: 'NotificationProvider',\n  props: notificationProviderProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const notificationListRef = ref<NotificationReactive[]>([])\n    const notificationRefs: Record<string, NotificationRef> = {}\n    const leavingKeySet = new Set<string>()\n    function create(options: NotificationOptions): NotificationReactive {\n      const key = createId()\n      const destroy = (): void => {\n        leavingKeySet.add(key)\n        // If you push n + 1 message when max is n, notificationRefs[key] maybe not be set\n        if (notificationRefs[key]) {\n          notificationRefs[key].hide()\n        }\n      }\n      const notificationReactive = reactive({\n        ...options,\n        key,\n        destroy,\n        hide: destroy,\n        deactivate: destroy\n      })\n      const { max } = props\n      if (max && notificationListRef.value.length - leavingKeySet.size >= max) {\n        let someoneMountedRemoved = false\n        let index = 0\n        for (const notification of notificationListRef.value) {\n          if (!leavingKeySet.has(notification.key)) {\n            if (notificationRefs[notification.key]) {\n              notification.destroy()\n              someoneMountedRemoved = true\n            }\n            break\n          }\n          index++\n        }\n        if (!someoneMountedRemoved) {\n          notificationListRef.value.splice(index, 1)\n        }\n      }\n      notificationListRef.value.push(notificationReactive)\n      return notificationReactive\n    }\n    const apis = (['info', 'success', 'warning', 'error'] as const).map(\n      (type: NotificationType) => {\n        return (options: Omit<NotificationOptions, 'type'>) =>\n          create({ ...options, type })\n      }\n    )\n    function handleAfterLeave(key: string): void {\n      leavingKeySet.delete(key)\n      notificationListRef.value.splice(\n        notificationListRef.value.findIndex(\n          notification => notification.key === key\n        ),\n        1\n      )\n    }\n    const themeRef = useTheme(\n      'Notification',\n      '-notification',\n      style,\n      notificationLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const api = {\n      create,\n      info: apis[0],\n      success: apis[1],\n      warning: apis[2],\n      error: apis[3],\n      open,\n      destroyAll\n    }\n    const wipTransitionCountRef = ref(0)\n    provide(notificationApiInjectionKey, api)\n    provide(notificationProviderInjectionKey, {\n      props,\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      wipTransitionCountRef\n    })\n    // deprecated\n    function open(options: NotificationOptions): NotificationReactive {\n      return create(options)\n    }\n    function destroyAll(): void {\n      Object.values(notificationListRef.value).forEach((notification) => {\n        notification.hide()\n      })\n    }\n    return Object.assign(\n      {\n        mergedClsPrefix: mergedClsPrefixRef,\n        notificationList: notificationListRef,\n        notificationRefs,\n        handleAfterLeave\n      },\n      api\n    )\n  },\n  render() {\n    const { placement } = this\n    return (\n      <>\n        {this.$slots.default?.()}\n        {this.notificationList.length ? (\n          <Teleport to={this.to ?? 'body'}>\n            <NotificationContainer\n              class={this.containerClass}\n              style={this.containerStyle}\n              scrollable={\n                this.scrollable && placement !== 'top' && placement !== 'bottom'\n              }\n              placement={placement}\n            >\n              {{\n                default: () => {\n                  return this.notificationList.map((notification) => {\n                    return (\n                      <NotificationEnvironment\n                        ref={\n                          ((inst: NotificationRef) => {\n                            const refKey = notification.key\n                            if (inst === null) {\n                              delete this.notificationRefs[refKey]\n                            }\n                            else {\n                              this.notificationRefs[refKey] = inst\n                            }\n                          }) as any\n                        }\n                        {...omit(notification, [\n                          'destroy',\n                          'hide',\n                          'deactivate'\n                        ])}\n                        internalKey={notification.key}\n                        onInternalAfterLeave={this.handleAfterLeave}\n                        keepAliveOnHover={\n                          notification.keepAliveOnHover === undefined\n                            ? this.keepAliveOnHover\n                            : notification.keepAliveOnHover\n                        }\n                      />\n                    )\n                  })\n                }\n              }}\n            </NotificationContainer>\n          </Teleport>\n        ) : null}\n      </>\n    )\n  }\n})\n","import type { NotificationApiInjection } from './NotificationProvider'\nimport { inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport { notificationApiInjectionKey } from './NotificationProvider'\n\nexport function useNotification(): NotificationApiInjection {\n  const api = inject(notificationApiInjectionKey, null)\n  if (api === null) {\n    throwError('use-notification', 'No outer `n-notification-provider` found.')\n  }\n  return api\n}\n","import type { PropType } from 'vue'\nimport { defineComponent } from 'vue'\n\nexport const NInjectionExtractor = defineComponent({\n  name: 'InjectionExtractor',\n  props: {\n    onSetup: Function as PropType<() => void>\n  },\n  setup(props, { slots }) {\n    props.onSetup?.()\n    return () => slots.default?.()\n  }\n})\n","import type { App, Component, VNode } from 'vue'\nimport type { ConfigProviderProps } from '../../config-provider'\nimport type { DialogApi } from '../../dialog'\nimport type { LoadingBarApi } from '../../loading-bar'\nimport type { MessageApi } from '../../message'\nimport type { ModalApi } from '../../modal'\nimport type { NotificationApi } from '../../notification'\nimport type { DiscreteApiType, MaybeRef } from './interface'\nimport { createApp, h, unref } from 'vue'\nimport { isBrowser, warn } from '../../_utils'\nimport { NConfigProvider } from '../../config-provider'\nimport { useDialog } from '../../dialog'\nimport { useLoadingBar } from '../../loading-bar'\nimport { useMessage } from '../../message'\nimport { useModal } from '../../modal'\nimport { useNotification } from '../../notification'\nimport { NInjectionExtractor } from './InjectionExtractor'\n\nexport type Provider<P = any> = new (...args: any[]) => { $props: P }\n\nexport type ProviderProps<C> = C extends Provider<infer P> ? P : unknown\n\nexport interface DiscreteAppOptions {\n  providersAndProps: Array<{\n    type: DiscreteApiType\n    Provider: Component\n    props: any\n  }>\n  configProviderProps?: MaybeRef<ConfigProviderProps>\n}\n\nexport interface DiscreteApp {\n  unmount: () => void\n  app: App\n  message?: MessageApi\n  notification?: NotificationApi\n  dialog?: DialogApi\n  loadingBar?: LoadingBarApi\n  modal?: ModalApi\n}\n\nconst injectionFactoryMap: Record<DiscreteApiType, any> = {\n  message: useMessage,\n  notification: useNotification,\n  loadingBar: useLoadingBar,\n  dialog: useDialog,\n  modal: useModal\n}\n\nexport function createDiscreteApp({\n  providersAndProps,\n  configProviderProps\n}: DiscreteAppOptions): DiscreteApp {\n  let app: App<Element> | null = createApp(App)\n  const extractedApi: Omit<DiscreteApp, 'unmount'> = {\n    app\n  }\n  function App(): VNode {\n    return h(NConfigProvider, unref(configProviderProps), {\n      default: () =>\n        providersAndProps.map(({ type, Provider, props }) => {\n          return h(Provider, unref(props), {\n            default: () =>\n              h(NInjectionExtractor, {\n                onSetup: () =>\n                  (extractedApi[type] = injectionFactoryMap[type]())\n              })\n          })\n        })\n    })\n  }\n\n  let hostEl: Element | null\n  if (isBrowser) {\n    hostEl = document.createElement('div')\n    document.body.appendChild(hostEl)\n\n    app.mount(hostEl)\n  }\n\n  const unmount = (): void => {\n    if (app === null || hostEl === null) {\n      warn(\n        'discrete',\n        'unmount call no need because discrete app has been unmounted'\n      )\n      return\n    }\n    app.unmount()\n    hostEl.parentNode?.removeChild(hostEl)\n    hostEl = null\n    app = null\n  }\n\n  return { unmount, ...extractedApi }\n}\n","import type { Component } from 'vue'\nimport type {\n  DiscreteApi,\n  DiscreteApiOptions,\n  DiscreteApiType\n} from './interface'\nimport { NDialogProvider } from '../../dialog'\nimport { NLoadingBarProvider } from '../../loading-bar'\nimport { NMessageProvider } from '../../message'\nimport { NModalProvider } from '../../modal/src/ModalProvider'\nimport { NNotificationProvider } from '../../notification'\nimport { createDiscreteApp } from './discreteApp'\n\nexport function createDiscreteApi<T extends DiscreteApiType>(\n  includes: T[],\n  {\n    configProviderProps,\n    messageProviderProps,\n    dialogProviderProps,\n    notificationProviderProps,\n    loadingBarProviderProps,\n    modalProviderProps\n  }: DiscreteApiOptions = {}\n): DiscreteApi<T> {\n  const providersAndProps: Array<{\n    type: DiscreteApiType\n    Provider: Component\n    props: any\n  }> = []\n\n  includes.forEach((type) => {\n    switch (type) {\n      case 'message':\n        providersAndProps.push({\n          type,\n          Provider: NMessageProvider,\n          props: messageProviderProps\n        })\n        break\n      case 'notification':\n        providersAndProps.push({\n          type,\n          Provider: NNotificationProvider,\n          props: notificationProviderProps\n        })\n        break\n      case 'dialog':\n        providersAndProps.push({\n          type,\n          Provider: NDialogProvider,\n          props: dialogProviderProps\n        })\n        break\n      case 'loadingBar':\n        providersAndProps.push({\n          type,\n          Provider: NLoadingBarProvider,\n          props: loadingBarProviderProps\n        })\n        break\n      case 'modal':\n        providersAndProps.push({\n          type,\n          Provider: NModalProvider,\n          props: modalProviderProps\n        })\n    }\n  })\n\n  const discreteApp = createDiscreteApp({\n    providersAndProps,\n    configProviderProps\n  })\n\n  return discreteApp as any\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { textColor1, dividerColor, fontWeightStrong } = vars\n  return {\n    textColor: textColor1,\n    color: dividerColor,\n    fontWeight: fontWeightStrong\n  }\n}\n\nexport interface DividerThemeVars extends ReturnType<typeof self> {}\n\nconst dividerLight: DividerTheme = {\n  name: 'Divider',\n  common: commonLight,\n  self\n}\n\nexport interface DividerTheme extends Theme<'Divider', DividerThemeVars> {}\n\nexport interface DividerThemeOverrides extends ExtractThemeOverrides<DividerTheme> {}\n\nexport default dividerLight\n","import type { DividerTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst dividerDark: DividerTheme = {\n  name: 'Divider',\n  common: commonDark,\n  self\n}\n\nexport default dividerDark\n","import { cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-text-color\n// --n-font-weight\nexport default cB('divider', `\n  position: relative;\n  display: flex;\n  width: 100%;\n  box-sizing: border-box;\n  font-size: 16px;\n  color: var(--n-text-color);\n  transition:\n    color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier);\n`, [\n  cNotM('vertical', `\n    margin-top: 24px;\n    margin-bottom: 24px;\n  `, [\n    cNotM('no-title', `\n      display: flex;\n      align-items: center;\n    `)\n  ]),\n  cE('title', `\n    display: flex;\n    align-items: center;\n    margin-left: 12px;\n    margin-right: 12px;\n    white-space: nowrap;\n    font-weight: var(--n-font-weight);\n  `),\n  cM('title-position-left', [\n    cE('line', [\n      cM('left', {\n        width: '28px'\n      })\n    ])\n  ]),\n  cM('title-position-right', [\n    cE('line', [\n      cM('right', {\n        width: '28px'\n      })\n    ])\n  ]),\n  cM('dashed', [\n    cE('line', `\n      background-color: #0000;\n      height: 0px;\n      width: 100%;\n      border-style: dashed;\n      border-width: 1px 0 0;\n    `)\n  ]),\n  cM('vertical', `\n    display: inline-block;\n    height: 1em;\n    margin: 0 8px;\n    vertical-align: middle;\n    width: 1px;\n  `),\n  cE('line', `\n    border: none;\n    transition: background-color .3s var(--n-bezier), border-color .3s var(--n-bezier);\n    height: 1px;\n    width: 100%;\n    margin: 0;\n  `),\n  cNotM('dashed', [\n    cE('line', {\n      backgroundColor: 'var(--n-color)'\n    })\n  ]),\n  cM('dashed', [\n    cE('line', {\n      borderColor: 'var(--n-color)'\n    })\n  ]),\n  cM('vertical', {\n    backgroundColor: 'var(--n-color)'\n  })\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { DividerTheme, DividerThemeOverrides } from '../styles'\nimport { computed, defineComponent, Fragment, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { dividerLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const dividerProps = {\n  ...(useTheme.props as ThemeProps<DividerTheme, DividerThemeOverrides>),\n  titlePlacement: {\n    type: String as PropType<'left' | 'center' | 'right'>,\n    default: 'center'\n  },\n  dashed: Boolean,\n  vertical: Boolean\n} as const\n\nexport type DividerProps = ExtractPublicPropTypes<typeof dividerProps>\n\nexport default defineComponent({\n  name: 'Divider',\n  props: dividerProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Divider',\n      '-divider',\n      style,\n      dividerLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { color, textColor, fontWeight }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color': color,\n        '--n-text-color': textColor,\n        '--n-font-weight': fontWeight\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('divider', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      $slots,\n      titlePlacement,\n      vertical,\n      dashed,\n      cssVars,\n      mergedClsPrefix\n    } = this\n    this.onRender?.()\n    return (\n      <div\n        role=\"separator\"\n        class={[\n          `${mergedClsPrefix}-divider`,\n          this.themeClass,\n          {\n            [`${mergedClsPrefix}-divider--vertical`]: vertical,\n            [`${mergedClsPrefix}-divider--no-title`]: !$slots.default,\n            [`${mergedClsPrefix}-divider--dashed`]: dashed,\n            [`${mergedClsPrefix}-divider--title-position-${titlePlacement}`]:\n              $slots.default && titlePlacement\n          }\n        ]}\n        style={cssVars as CSSProperties}\n      >\n        {!vertical ? (\n          <div\n            class={`${mergedClsPrefix}-divider__line ${mergedClsPrefix}-divider__line--left`}\n          />\n        ) : null}\n        {!vertical && $slots.default ? (\n          <>\n            <div class={`${mergedClsPrefix}-divider__title`}>\n              {this.$slots.default?.()}\n            </div>\n            <div\n              class={`${mergedClsPrefix}-divider__line ${mergedClsPrefix}-divider__line--right`}\n            />\n          </>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    modalColor,\n    textColor1,\n    textColor2,\n    boxShadow3,\n    lineHeight,\n    fontWeightStrong,\n    dividerColor,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    borderRadius,\n    primaryColorHover\n  } = vars\n  return {\n    bodyPadding: '16px 24px',\n    borderRadius,\n    headerPadding: '16px 24px',\n    footerPadding: '16px 24px',\n    color: modalColor,\n    textColor: textColor2,\n    titleTextColor: textColor1,\n    titleFontSize: '18px',\n    titleFontWeight: fontWeightStrong,\n    boxShadow: boxShadow3,\n    lineHeight,\n    headerBorderBottom: `1px solid ${dividerColor}`,\n    footerBorderTop: `1px solid ${dividerColor}`,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeSize: '22px',\n    closeIconSize: '18px',\n    closeColorHover,\n    closeColorPressed,\n    closeBorderRadius: borderRadius,\n    resizableTriggerColorHover: primaryColorHover\n  }\n}\n\nexport interface DrawerThemeVars extends ReturnType<typeof self> {}\n\nconst drawerLight: DrawerTheme = createTheme({\n  name: 'Drawer',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface DrawerTheme extends Theme<\n  'Drawer',\n  DrawerThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface DrawerThemeOverrides extends ExtractThemeOverrides<DrawerTheme> {}\n\nexport default drawerLight\n","import type { DrawerTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst drawerDark: DrawerTheme = {\n  name: 'Drawer',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark\n  },\n  self\n}\n\nexport default drawerDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('drawer', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `, [\n    cB('drawer-content', [\n      cB('drawer-header', [\n        cE('close', `\n          margin-left: 0;\n          margin-right: 6px;\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { scrollbarRtl } from '../../_internal/scrollbar/styles/rtl'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const drawerRtl: RtlItem = {\n  name: 'Drawer',\n  style: rtlStyle,\n  peers: [scrollbarRtl]\n}\n\nexport default drawerRtl\n","import type { CSSProperties, DirectiveArguments, PropType } from 'vue'\nimport type { ScrollbarProps } from '../../_internal'\nimport { clickoutside } from 'vdirs'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  mergeProps,\n  onBeforeUnmount,\n  provide,\n  ref,\n  Transition,\n  vShow,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VFocusTrap } from 'vueuc'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig, useRtl } from '../../_mixins'\nimport { useLockHtmlScroll } from '../../_utils'\nimport { modalBodyInjectionKey } from '../../modal/src/interface'\nimport { popoverBodyInjectionKey } from '../../popover/src/interface'\nimport { drawerBodyInjectionKey, drawerInjectionKey } from './interface'\n\nexport type Placement = 'left' | 'right' | 'top' | 'bottom'\n\nexport default defineComponent({\n  name: 'NDrawerContent',\n  inheritAttrs: false,\n  props: {\n    blockScroll: Boolean,\n    show: {\n      type: Boolean as PropType<boolean | undefined>,\n      default: undefined\n    },\n    displayDirective: {\n      type: String as PropType<'if' | 'show'>,\n      required: true\n    },\n    placement: {\n      type: String as PropType<Placement>,\n      required: true\n    },\n    contentClass: String,\n    contentStyle: [Object, String] as PropType<string | CSSProperties>,\n    nativeScrollbar: {\n      type: Boolean,\n      required: true\n    },\n    scrollbarProps: Object as PropType<ScrollbarProps>,\n    trapFocus: {\n      type: Boolean,\n      default: true\n    },\n    autoFocus: {\n      type: Boolean,\n      default: true\n    },\n    showMask: {\n      type: [Boolean, String] as PropType<boolean | 'transparent'>,\n      required: true\n    },\n    maxWidth: Number,\n    maxHeight: Number,\n    minWidth: Number,\n    minHeight: Number,\n    resizable: Boolean,\n    onClickoutside: Function as PropType<(e: MouseEvent) => void>,\n    onAfterLeave: Function as PropType<() => void>,\n    onAfterEnter: Function as PropType<() => void>,\n    onEsc: Function as PropType<(e: KeyboardEvent) => void>\n  },\n  setup(props) {\n    const displayedRef = ref(!!props.show)\n    const bodyRef = ref<HTMLElement | null>(null) // used for detached content\n    const NDrawer = inject(drawerInjectionKey)!\n\n    let startPosition = 0\n    let memoizedBodyStyleCursor = ''\n    let hoverTimerId: number | null = null\n    const isHoverOnResizeTriggerRef = ref(false)\n    const isDraggingRef = ref(false)\n\n    const isVertical = computed<boolean>(() => {\n      return props.placement === 'top' || props.placement === 'bottom'\n    })\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n\n    const rtlEnabledRef = useRtl('Drawer', mergedRtlRef, mergedClsPrefixRef)\n\n    const handleBodyMouseleave = handleBodyMouseup\n\n    const handleMousedownResizeTrigger = (e: MouseEvent): void => {\n      isDraggingRef.value = true\n      startPosition = isVertical.value ? e.clientY : e.clientX\n      memoizedBodyStyleCursor = document.body.style.cursor\n      document.body.style.cursor = isVertical.value ? 'ns-resize' : 'ew-resize'\n      document.body.addEventListener('mousemove', handleBodyMousemove)\n      document.body.addEventListener('mouseleave', handleBodyMouseleave)\n      document.body.addEventListener('mouseup', handleBodyMouseup)\n    }\n\n    const handleMouseenterResizeTrigger = (): void => {\n      if (hoverTimerId !== null) {\n        window.clearTimeout(hoverTimerId)\n        hoverTimerId = null\n      }\n      if (isDraggingRef.value) {\n        isHoverOnResizeTriggerRef.value = true\n      }\n      else {\n        hoverTimerId = window.setTimeout(() => {\n          isHoverOnResizeTriggerRef.value = true\n        }, 300)\n      }\n    }\n\n    const handleMouseleaveResizeTrigger = (): void => {\n      if (hoverTimerId !== null) {\n        window.clearTimeout(hoverTimerId)\n        hoverTimerId = null\n      }\n      isHoverOnResizeTriggerRef.value = false\n    }\n\n    const { doUpdateHeight, doUpdateWidth } = NDrawer\n\n    const regulateWidth = (size: number): number => {\n      const { maxWidth } = props\n      if (maxWidth && size > maxWidth)\n        return maxWidth\n      const { minWidth } = props\n      if (minWidth && size < minWidth)\n        return minWidth\n      return size\n    }\n\n    const regulateHeight = (size: number): number => {\n      const { maxHeight } = props\n      if (maxHeight && size > maxHeight)\n        return maxHeight\n      const { minHeight } = props\n      if (minHeight && size < minHeight)\n        return minHeight\n      return size\n    }\n\n    function handleBodyMousemove(e: MouseEvent): void {\n      if (isDraggingRef.value) {\n        if (isVertical.value) {\n          let height = bodyRef.value?.offsetHeight || 0\n          const increment = startPosition - e.clientY\n          height += props.placement === 'bottom' ? increment : -increment\n          height = regulateHeight(height)\n          doUpdateHeight(height)\n          startPosition = e.clientY\n        }\n        else {\n          let width = bodyRef.value?.offsetWidth || 0\n          const increment = startPosition - e.clientX\n          width += props.placement === 'right' ? increment : -increment\n          width = regulateWidth(width)\n          doUpdateWidth(width)\n          startPosition = e.clientX\n        }\n      }\n    }\n\n    function handleBodyMouseup(): void {\n      if (isDraggingRef.value) {\n        startPosition = 0\n        isDraggingRef.value = false\n        document.body.style.cursor = memoizedBodyStyleCursor\n        document.body.removeEventListener('mousemove', handleBodyMousemove)\n        document.body.removeEventListener('mouseup', handleBodyMouseup)\n        document.body.removeEventListener('mouseleave', handleBodyMouseleave)\n      }\n    }\n\n    watchEffect(() => {\n      if (props.show)\n        displayedRef.value = true\n    })\n    watch(\n      () => props.show,\n      (value) => {\n        if (!value) {\n          handleBodyMouseup()\n        }\n      }\n    )\n    onBeforeUnmount(() => {\n      handleBodyMouseup()\n    })\n    const bodyDirectivesRef = computed<DirectiveArguments>(() => {\n      const { show } = props\n      const directives: DirectiveArguments = [[vShow, show]]\n      if (!props.showMask) {\n        directives.push([\n          clickoutside,\n          props.onClickoutside,\n          undefined,\n          { capture: true }\n        ])\n      }\n      return directives\n    })\n    function handleAfterLeave(): void {\n      displayedRef.value = false\n      props.onAfterLeave?.()\n    }\n    useLockHtmlScroll(computed(() => props.blockScroll && displayedRef.value))\n    provide(drawerBodyInjectionKey, bodyRef)\n    provide(popoverBodyInjectionKey, null)\n    provide(modalBodyInjectionKey, null)\n    return {\n      bodyRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: NDrawer.mergedClsPrefixRef,\n      isMounted: NDrawer.isMountedRef,\n      mergedTheme: NDrawer.mergedThemeRef,\n      displayed: displayedRef,\n      transitionName: computed(() => {\n        return {\n          right: 'slide-in-from-right-transition',\n          left: 'slide-in-from-left-transition',\n          top: 'slide-in-from-top-transition',\n          bottom: 'slide-in-from-bottom-transition'\n        }[props.placement]\n      }),\n      handleAfterLeave,\n      bodyDirectives: bodyDirectivesRef,\n      handleMousedownResizeTrigger,\n      handleMouseenterResizeTrigger,\n      handleMouseleaveResizeTrigger,\n      isDragging: isDraggingRef,\n      isHoverOnResizeTrigger: isHoverOnResizeTriggerRef\n    }\n  },\n  render() {\n    const { $slots, mergedClsPrefix } = this\n    return this.displayDirective === 'show' || this.displayed || this.show\n      ? withDirectives(\n          /* Keep the wrapper dom. Make sure the drawer has a host.\n          Nor the detached content will disappear without transition */\n          <div role=\"none\">\n            <VFocusTrap\n              disabled={!this.showMask || !this.trapFocus}\n              active={this.show}\n              autoFocus={this.autoFocus}\n              onEsc={this.onEsc}\n            >\n              {{\n                default: () => (\n                  <Transition\n                    name={this.transitionName}\n                    appear={this.isMounted}\n                    onAfterEnter={this.onAfterEnter}\n                    onAfterLeave={this.handleAfterLeave}\n                  >\n                    {{\n                      default: () =>\n                        withDirectives(\n                          h(\n                            'div',\n                            mergeProps(this.$attrs, {\n                              role: 'dialog',\n                              ref: 'bodyRef',\n                              'aria-modal': 'true',\n                              class: [\n                                `${mergedClsPrefix}-drawer`,\n                                this.rtlEnabled\n                                && `${mergedClsPrefix}-drawer--rtl`,\n                                `${mergedClsPrefix}-drawer--${this.placement}-placement`,\n                                /**\n                                 * When the mouse is pressed to resize the drawer,\n                                 * disable text selection\n                                 */\n                                this.isDragging\n                                && `${mergedClsPrefix}-drawer--unselectable`,\n                                this.nativeScrollbar\n                                && `${mergedClsPrefix}-drawer--native-scrollbar`\n                              ]\n                            }),\n                            [\n                              this.resizable ? (\n                                <div\n                                  class={[\n                                    `${mergedClsPrefix}-drawer__resize-trigger`,\n                                    (this.isDragging\n                                      || this.isHoverOnResizeTrigger)\n                                    && `${mergedClsPrefix}-drawer__resize-trigger--hover`\n                                  ]}\n                                  onMouseenter={\n                                    this.handleMouseenterResizeTrigger\n                                  }\n                                  onMouseleave={\n                                    this.handleMouseleaveResizeTrigger\n                                  }\n                                  onMousedown={\n                                    this.handleMousedownResizeTrigger\n                                  }\n                                />\n                              ) : null,\n                              this.nativeScrollbar ? (\n                                <div\n                                  class={[\n                                    `${mergedClsPrefix}-drawer-content-wrapper`,\n                                    this.contentClass\n                                  ]}\n                                  style={this.contentStyle}\n                                  role=\"none\"\n                                >\n                                  {$slots.default?.()}\n                                </div>\n                              ) : (\n                                <NScrollbar\n                                  {...this.scrollbarProps}\n                                  contentStyle={this.contentStyle}\n                                  contentClass={[\n                                    `${mergedClsPrefix}-drawer-content-wrapper`,\n                                    this.contentClass\n                                  ]}\n                                  theme={this.mergedTheme.peers.Scrollbar}\n                                  themeOverrides={\n                                    this.mergedTheme.peerOverrides.Scrollbar\n                                  }\n                                >\n                                  {$slots}\n                                </NScrollbar>\n                              )\n                            ]\n                          ),\n                          this.bodyDirectives\n                        )\n                    }}\n                  </Transition>\n                )\n              }}\n            </VFocusTrap>\n          </div>,\n          [\n            [\n              vShow,\n              this.displayDirective === 'if' || this.displayed || this.show\n            ]\n          ]\n        )\n      : null\n  }\n})\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseIn, cubicBezierEaseOut } = commonVariables\n\ninterface SlideInFromBottomTransitionOptions {\n  duration?: string\n  leaveDuration?: string\n  name?: string\n}\n\nexport function slideInFromBottomTransition({\n  duration = '0.3s',\n  leaveDuration = '0.2s',\n  name = 'slide-in-from-bottom'\n}: SlideInFromBottomTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-leave-active`, {\n      transition: `transform ${leaveDuration} ${cubicBezierEaseIn}`\n    }),\n    c(`&.${name}-transition-enter-active`, {\n      transition: `transform ${duration} ${cubicBezierEaseOut}`\n    }),\n    c(`&.${name}-transition-enter-to`, {\n      transform: 'translateY(0)'\n    }),\n    c(`&.${name}-transition-enter-from`, {\n      transform: 'translateY(100%)'\n    }),\n    c(`&.${name}-transition-leave-from`, {\n      transform: 'translateY(0)'\n    }),\n    c(`&.${name}-transition-leave-to`, {\n      transform: 'translateY(100%)'\n    })\n  ]\n}\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseIn, cubicBezierEaseOut } = commonVariables\n\ninterface SlideInFromLeftTransitionOptions {\n  duration?: string\n  leaveDuration?: string\n  name?: string\n}\n\nexport function slideInFromLeftTransition({\n  duration = '0.3s',\n  leaveDuration = '0.2s',\n  name = 'slide-in-from-left'\n}: SlideInFromLeftTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-leave-active`, {\n      transition: `transform ${leaveDuration} ${cubicBezierEaseIn}`\n    }),\n    c(`&.${name}-transition-enter-active`, {\n      transition: `transform ${duration} ${cubicBezierEaseOut}`\n    }),\n    c(`&.${name}-transition-enter-to`, {\n      transform: 'translateX(0)'\n    }),\n    c(`&.${name}-transition-enter-from`, {\n      transform: 'translateX(-100%)'\n    }),\n    c(`&.${name}-transition-leave-from`, {\n      transform: 'translateX(0)'\n    }),\n    c(`&.${name}-transition-leave-to`, {\n      transform: 'translateX(-100%)'\n    })\n  ]\n}\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseIn, cubicBezierEaseOut } = commonVariables\n\ninterface SlideInFromRightTransitionOptions {\n  duration?: string\n  leaveDuration?: string\n  name?: string\n}\n\nexport function slideInFromRightTransition({\n  duration = '0.3s',\n  leaveDuration = '0.2s',\n  name = 'slide-in-from-right'\n}: SlideInFromRightTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-leave-active`, {\n      transition: `transform ${leaveDuration} ${cubicBezierEaseIn}`\n    }),\n    c(`&.${name}-transition-enter-active`, {\n      transition: `transform ${duration} ${cubicBezierEaseOut}`\n    }),\n    c(`&.${name}-transition-enter-to`, {\n      transform: 'translateX(0)'\n    }),\n    c(`&.${name}-transition-enter-from`, {\n      transform: 'translateX(100%)'\n    }),\n    c(`&.${name}-transition-leave-from`, {\n      transform: 'translateX(0)'\n    }),\n    c(`&.${name}-transition-leave-to`, {\n      transform: 'translateX(100%)'\n    })\n  ]\n}\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseIn, cubicBezierEaseOut } = commonVariables\n\ninterface SlideInFromTopTransitionOptions {\n  duration?: string\n  leaveDuration?: string\n  name?: string\n}\n\nexport function slideInFromTopTransition({\n  duration = '0.3s',\n  leaveDuration = '0.2s',\n  name = 'slide-in-from-top'\n}: SlideInFromTopTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-leave-active`, {\n      transition: `transform ${leaveDuration} ${cubicBezierEaseIn}`\n    }),\n    c(`&.${name}-transition-enter-active`, {\n      transition: `transform ${duration} ${cubicBezierEaseOut}`\n    }),\n    c(`&.${name}-transition-enter-to`, {\n      transform: 'translateY(0)'\n    }),\n    c(`&.${name}-transition-enter-from`, {\n      transform: 'translateY(-100%)'\n    }),\n    c(`&.${name}-transition-leave-from`, {\n      transform: 'translateY(0)'\n    }),\n    c(`&.${name}-transition-leave-to`, {\n      transform: 'translateY(-100%)'\n    })\n  ]\n}\n","import { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { slideInFromBottomTransition } from '../../../_styles/transitions/slide-in-from-bottom'\nimport { slideInFromLeftTransition } from '../../../_styles/transitions/slide-in-from-left'\nimport { slideInFromRightTransition } from '../../../_styles/transitions/slide-in-from-right'\nimport { slideInFromTopTransition } from '../../../_styles/transitions/slide-in-from-top'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-line-height\n// --n-color\n// --n-border-radius\n// --n-text-color\n// --n-box-shadow\n// --n-bezier\n// --n-bezier-out\n// --n-bezier-in\n// --n-body-padding\n// --n-header-padding\n// --n-footer-padding\n// --n-title-font-size\n// --n-title-text-color\n// --n-title-font-weight\n// --n-header-border-bottom\n// --n-footer-border-top\n// --n-close-border-radius\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-close-size\n// --n-close-icon-size\nexport default c([\n  cB('drawer', `\n    word-break: break-word;\n    line-height: var(--n-line-height);\n    position: absolute;\n    pointer-events: all;\n    box-shadow: var(--n-box-shadow);\n    transition:\n      background-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n    background-color: var(--n-color);\n    color: var(--n-text-color);\n    box-sizing: border-box;\n  `, [\n    slideInFromRightTransition(),\n    slideInFromLeftTransition(),\n    slideInFromTopTransition(),\n    slideInFromBottomTransition(),\n    cM('unselectable', `\n      user-select: none; \n      -webkit-user-select: none;\n    `),\n    cM('native-scrollbar', [\n      cB('drawer-content-wrapper', `\n        overflow: auto;\n        height: 100%;\n      `)\n    ]),\n    cE('resize-trigger', `\n      position: absolute;\n      background-color: #0000;\n      transition: background-color .3s var(--n-bezier);\n    `, [\n      cM('hover', `\n        background-color: var(--n-resize-trigger-color-hover);\n      `)\n    ]),\n    cB('drawer-content-wrapper', `\n      box-sizing: border-box;\n    `),\n    cB('drawer-content', `\n      height: 100%;\n      display: flex;\n      flex-direction: column;\n    `, [\n      cM('native-scrollbar', [\n        cB('drawer-body-content-wrapper', `\n          height: 100%;\n          overflow: auto;\n        `)\n      ]),\n      cB('drawer-body', `\n        flex: 1 0 0;\n        overflow: hidden;\n      `),\n      cB('drawer-body-content-wrapper', `\n        box-sizing: border-box;\n        padding: var(--n-body-padding);\n      `),\n      cB('drawer-header', `\n        font-weight: var(--n-title-font-weight);\n        line-height: 1;\n        font-size: var(--n-title-font-size);\n        color: var(--n-title-text-color);\n        padding: var(--n-header-padding);\n        transition: border .3s var(--n-bezier);\n        border-bottom: 1px solid var(--n-divider-color);\n        border-bottom: var(--n-header-border-bottom);\n        display: flex;\n        justify-content: space-between;\n        align-items: center;\n      `, [\n        cE('main', `\n          flex: 1;\n        `),\n        cE('close', `\n          margin-left: 6px;\n          transition:\n            background-color .3s var(--n-bezier),\n            color .3s var(--n-bezier);\n        `)\n      ]),\n      cB('drawer-footer', `\n        display: flex;\n        justify-content: flex-end;\n        border-top: var(--n-footer-border-top);\n        transition: border .3s var(--n-bezier);\n        padding: var(--n-footer-padding);\n      `)\n    ]),\n    cM('right-placement', `\n      top: 0;\n      bottom: 0;\n      right: 0;\n      border-top-left-radius: var(--n-border-radius);\n      border-bottom-left-radius: var(--n-border-radius);\n    `, [\n      cE('resize-trigger', `\n        width: 3px;\n        height: 100%;\n        top: 0;\n        left: 0;\n        transform: translateX(-1.5px);\n        cursor: ew-resize;\n      `)\n    ]),\n    cM('left-placement', `\n      top: 0;\n      bottom: 0;\n      left: 0;\n      border-top-right-radius: var(--n-border-radius);\n      border-bottom-right-radius: var(--n-border-radius);\n    `, [\n      cE('resize-trigger', `\n        width: 3px;\n        height: 100%;\n        top: 0;\n        right: 0;\n        transform: translateX(1.5px);\n        cursor: ew-resize;\n      `)\n    ]),\n    cM('top-placement', `\n      top: 0;\n      left: 0;\n      right: 0;\n      border-bottom-left-radius: var(--n-border-radius);\n      border-bottom-right-radius: var(--n-border-radius);\n    `, [\n      cE('resize-trigger', `\n        width: 100%;\n        height: 3px;\n        bottom: 0;\n        left: 0;\n        transform: translateY(1.5px);\n        cursor: ns-resize;\n      `)\n    ]),\n    cM('bottom-placement', `\n      left: 0;\n      bottom: 0;\n      right: 0;\n      border-top-left-radius: var(--n-border-radius);\n      border-top-right-radius: var(--n-border-radius);\n    `, [\n      cE('resize-trigger', `\n        width: 100%;\n        height: 3px;\n        top: 0;\n        left: 0;\n        transform: translateY(-1.5px);\n        cursor: ns-resize;\n      `)\n    ])\n  ]),\n  c('body', [\n    c('>', [\n      cB('drawer-container', `\n        position: fixed;\n      `)\n    ])\n  ]),\n  cB('drawer-container', `\n    position: relative;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    pointer-events: none;\n  `, [\n    c('> *', `\n      pointer-events: all;\n    `)\n  ]),\n  cB('drawer-mask', `\n    background-color: rgba(0, 0, 0, .3);\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n  `, [\n    cM('invisible', `\n      background-color: rgba(0, 0, 0, 0)\n    `),\n    fadeInTransition({\n      enterDuration: '0.2s',\n      leaveDuration: '0.2s',\n      enterCubicBezier: 'var(--n-bezier-in)',\n      leaveCubicBezier: 'var(--n-bezier-out)'\n    })\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ScrollbarProps } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { DrawerTheme, DrawerThemeOverrides } from '../styles'\nimport type { Placement } from './DrawerBodyWrapper'\nimport { zindexable } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VLazyTeleport } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  call,\n  eventEffectNotPerformed,\n  formatLength,\n  useIsComposing,\n  warnOnce\n} from '../../_utils'\nimport { drawerLight } from '../styles'\nimport NDrawerBodyWrapper from './DrawerBodyWrapper'\nimport { drawerInjectionKey } from './interface'\nimport style from './styles/index.cssr'\n\nexport const drawerProps = {\n  ...(useTheme.props as ThemeProps<DrawerTheme, DrawerThemeOverrides>),\n  show: Boolean,\n  width: [Number, String] as PropType<string | number>,\n  height: [Number, String] as PropType<string | number>,\n  placement: {\n    type: String as PropType<Placement>,\n    default: 'right'\n  },\n  maskClosable: {\n    type: Boolean,\n    default: true\n  },\n  showMask: {\n    type: [Boolean, String] as PropType<boolean | 'transparent'>,\n    default: true\n  },\n  to: [String, Object] as PropType<string | HTMLElement>,\n  displayDirective: {\n    type: String as PropType<'if' | 'show'>,\n    default: 'if'\n  },\n  nativeScrollbar: {\n    type: Boolean,\n    default: true\n  },\n  zIndex: Number,\n  onMaskClick: Function as PropType<(e: MouseEvent) => void>,\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<string | CSSProperties>,\n  trapFocus: {\n    type: Boolean,\n    default: true\n  },\n  onEsc: Function as PropType<() => void>,\n  autoFocus: {\n    type: Boolean,\n    default: true\n  },\n  closeOnEsc: {\n    type: Boolean,\n    default: true\n  },\n  blockScroll: {\n    type: Boolean,\n    default: true\n  },\n  maxWidth: Number,\n  maxHeight: Number,\n  minWidth: Number,\n  minHeight: Number,\n  resizable: Boolean,\n  defaultWidth: {\n    type: [Number, String] as PropType<string | number>,\n    default: 251\n  },\n  defaultHeight: {\n    type: [Number, String] as PropType<string | number>,\n    default: 251\n  },\n  onUpdateWidth: [Function, Array] as PropType<\n    MaybeArray<(value: number) => void>\n  >,\n  onUpdateHeight: [Function, Array] as PropType<\n    MaybeArray<(value: number) => void>\n  >,\n  'onUpdate:width': [Function, Array] as PropType<\n    MaybeArray<(value: number) => void>\n  >,\n  'onUpdate:height': [Function, Array] as PropType<\n    MaybeArray<(value: number) => void>\n  >,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onAfterEnter: Function as PropType<() => void>,\n  onAfterLeave: Function as PropType<() => void>,\n  /** @deprecated */\n  drawerStyle: [String, Object] as PropType<string | CSSProperties>,\n  drawerClass: String,\n  target: null,\n  onShow: Function as PropType<(value: boolean) => void>,\n  onHide: Function as PropType<(value: boolean) => void>\n} as const\n\nexport type DrawerProps = ExtractPublicPropTypes<typeof drawerProps>\n\nexport default defineComponent({\n  name: 'Drawer',\n  inheritAttrs: false,\n  props: drawerProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.drawerStyle !== undefined) {\n          warnOnce(\n            'drawer',\n            '`drawer-style` is deprecated, please use `style` instead.'\n          )\n        }\n        if (props.drawerClass !== undefined) {\n          warnOnce(\n            'drawer',\n            '`drawer-class` is deprecated, please use `class` instead.'\n          )\n        }\n        if (props.target !== undefined) {\n          warnOnce('drawer', '`target` is deprecated, please use `to` instead.')\n        }\n        if (props.onShow !== undefined) {\n          warnOnce(\n            'drawer',\n            '`on-show` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n        if (props.onHide !== undefined) {\n          warnOnce(\n            'drawer',\n            '`on-hide` is deprecated, please use `on-update:show` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, namespaceRef, inlineThemeDisabled }\n      = useConfig(props)\n    const isMountedRef = useIsMounted()\n    const themeRef = useTheme(\n      'Drawer',\n      '-drawer',\n      style,\n      drawerLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const uncontrolledWidthRef = ref<string | number>(props.defaultWidth)\n    const uncontrolledHeightRef = ref<string | number>(props.defaultHeight)\n\n    const mergedWidthRef = useMergedState(\n      toRef(props, 'width'),\n      uncontrolledWidthRef\n    )\n    const mergedHeightRef = useMergedState(\n      toRef(props, 'height'),\n      uncontrolledHeightRef\n    )\n\n    const styleWidthRef = computed(() => {\n      const { placement } = props\n      if (placement === 'top' || placement === 'bottom')\n        return ''\n      return formatLength(mergedWidthRef.value)\n    })\n\n    const styleHeightRef = computed(() => {\n      const { placement } = props\n      if (placement === 'left' || placement === 'right')\n        return ''\n      return formatLength(mergedHeightRef.value)\n    })\n\n    const doUpdateWidth = (value: number): void => {\n      const { onUpdateWidth, 'onUpdate:width': _onUpdateWidth } = props\n      if (onUpdateWidth)\n        call(onUpdateWidth, value)\n      if (_onUpdateWidth)\n        call(_onUpdateWidth, value)\n      uncontrolledWidthRef.value = value\n    }\n    const doUpdateHeight = (value: number): void => {\n      const { onUpdateHeight, 'onUpdate:width': _onUpdateHeight } = props\n      if (onUpdateHeight)\n        call(onUpdateHeight, value)\n      if (_onUpdateHeight)\n        call(_onUpdateHeight, value)\n      uncontrolledHeightRef.value = value\n    }\n\n    const mergedBodyStyleRef = computed<Array<CSSProperties | string>>(() => {\n      return [\n        {\n          width: styleWidthRef.value,\n          height: styleHeightRef.value\n        },\n        props.drawerStyle || ''\n      ]\n    })\n\n    function handleMaskClick(e: MouseEvent): void {\n      const { onMaskClick, maskClosable } = props\n      if (maskClosable) {\n        doUpdateShow(false)\n      }\n      if (onMaskClick)\n        onMaskClick(e)\n    }\n\n    function handleOutsideClick(e: MouseEvent): void {\n      handleMaskClick(e)\n    }\n\n    const isComposingRef = useIsComposing()\n\n    function handleEsc(e: KeyboardEvent): void {\n      props.onEsc?.()\n      if (props.show && props.closeOnEsc && eventEffectNotPerformed(e)) {\n        if (!isComposingRef.value) {\n          doUpdateShow(false)\n        }\n      }\n    }\n    function doUpdateShow(show: boolean): void {\n      const { onHide, onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, show)\n      if (_onUpdateShow)\n        call(_onUpdateShow, show)\n      // deprecated\n      if (onHide && !show)\n        call(onHide, show)\n    }\n    provide(drawerInjectionKey, {\n      isMountedRef,\n      mergedThemeRef: themeRef,\n      mergedClsPrefixRef,\n      doUpdateShow,\n      doUpdateHeight,\n      doUpdateWidth\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut, cubicBezierEaseIn, cubicBezierEaseOut },\n        self: {\n          color,\n          textColor,\n          boxShadow,\n          lineHeight,\n          headerPadding,\n          footerPadding,\n          borderRadius,\n          bodyPadding,\n          titleFontSize,\n          titleTextColor,\n          titleFontWeight,\n          headerBorderBottom,\n          footerBorderTop,\n          closeIconColor,\n          closeIconColorHover,\n          closeIconColorPressed,\n          closeColorHover,\n          closeColorPressed,\n          closeIconSize,\n          closeSize,\n          closeBorderRadius,\n          resizableTriggerColorHover\n        }\n      } = themeRef.value\n      return {\n        '--n-line-height': lineHeight,\n        '--n-color': color,\n        '--n-border-radius': borderRadius,\n        '--n-text-color': textColor,\n        '--n-box-shadow': boxShadow,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-bezier-out': cubicBezierEaseOut,\n        '--n-bezier-in': cubicBezierEaseIn,\n        '--n-header-padding': headerPadding,\n        '--n-body-padding': bodyPadding,\n        '--n-footer-padding': footerPadding,\n        '--n-title-text-color': titleTextColor,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-header-border-bottom': headerBorderBottom,\n        '--n-footer-border-top': footerBorderTop,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-close-size': closeSize,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-resize-trigger-color-hover': resizableTriggerColorHover\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('drawer', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      mergedBodyStyle: mergedBodyStyleRef,\n      handleOutsideClick,\n      handleMaskClick,\n      handleEsc,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      isMounted: isMountedRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <VLazyTeleport to={this.to} show={this.show}>\n        {{\n          default: () => {\n            this.onRender?.()\n            return withDirectives(\n              <div\n                class={[\n                  `${mergedClsPrefix}-drawer-container`,\n                  this.namespace,\n                  this.themeClass\n                ]}\n                style={this.cssVars as CSSProperties}\n                role=\"none\"\n              >\n                {this.showMask ? (\n                  <Transition name=\"fade-in-transition\" appear={this.isMounted}>\n                    {{\n                      default: () =>\n                        this.show ? (\n                          <div\n                            aria-hidden\n                            class={[\n                              `${mergedClsPrefix}-drawer-mask`,\n                              this.showMask === 'transparent'\n                              && `${mergedClsPrefix}-drawer-mask--invisible`\n                            ]}\n                            onClick={this.handleMaskClick}\n                          />\n                        ) : null\n                    }}\n                  </Transition>\n                ) : null}\n                <NDrawerBodyWrapper\n                  {...this.$attrs}\n                  class={[this.drawerClass, this.$attrs.class]}\n                  style={[this.mergedBodyStyle, this.$attrs.style]}\n                  blockScroll={this.blockScroll}\n                  contentStyle={this.contentStyle}\n                  contentClass={this.contentClass}\n                  placement={this.placement}\n                  scrollbarProps={this.scrollbarProps}\n                  show={this.show}\n                  displayDirective={this.displayDirective}\n                  nativeScrollbar={this.nativeScrollbar}\n                  onAfterEnter={this.onAfterEnter}\n                  onAfterLeave={this.onAfterLeave}\n                  trapFocus={this.trapFocus}\n                  autoFocus={this.autoFocus}\n                  resizable={this.resizable}\n                  maxHeight={this.maxHeight}\n                  minHeight={this.minHeight}\n                  maxWidth={this.maxWidth}\n                  minWidth={this.minWidth}\n                  showMask={this.showMask}\n                  onEsc={this.handleEsc}\n                  onClickoutside={this.handleOutsideClick}\n                >\n                  {this.$slots}\n                </NDrawerBodyWrapper>\n              </div>,\n              [[zindexable, { zIndex: this.zIndex, enabled: this.show }]]\n            )\n          }\n        }}\n      </VLazyTeleport>\n    )\n  }\n})\n","import type { CSSProperties, PropType, SlotsType, VNode } from 'vue'\nimport type { ScrollbarProps } from '../../_internal'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent, h, inject } from 'vue'\nimport { NBaseClose, NScrollbar } from '../../_internal'\nimport { throwError } from '../../_utils'\nimport { drawerInjectionKey } from './interface'\n\nexport const drawerContentProps = {\n  title: String,\n  headerClass: String,\n  headerStyle: [Object, String] as PropType<string | CSSProperties>,\n  footerClass: String,\n  footerStyle: [Object, String] as PropType<string | CSSProperties>,\n  bodyClass: String,\n  bodyStyle: [Object, String] as PropType<string | CSSProperties>,\n  bodyContentClass: String,\n  bodyContentStyle: [Object, String] as PropType<string | CSSProperties>,\n  nativeScrollbar: { type: Boolean, default: true },\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  closable: Boolean\n}\n\nexport type DrawerContentProps = ExtractPublicPropTypes<\n  typeof drawerContentProps\n>\n\nexport interface DrawerContentSlots {\n  default?: () => VNode[]\n  header?: () => VNode[]\n  footer?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'DrawerContent',\n  props: drawerContentProps,\n  slots: Object as SlotsType<DrawerContentSlots>,\n  setup() {\n    const NDrawer = inject(drawerInjectionKey, null)\n    if (!NDrawer) {\n      throwError(\n        'drawer-content',\n        '`n-drawer-content` must be placed inside `n-drawer`.'\n      )\n    }\n    const { doUpdateShow } = NDrawer\n    function handleCloseClick(): void {\n      doUpdateShow(false)\n    }\n    return {\n      handleCloseClick,\n      mergedTheme: NDrawer.mergedThemeRef,\n      mergedClsPrefix: NDrawer.mergedClsPrefixRef\n    }\n  },\n  render() {\n    const {\n      title,\n      mergedClsPrefix,\n      nativeScrollbar,\n      mergedTheme,\n      bodyClass,\n      bodyStyle,\n      bodyContentClass,\n      bodyContentStyle,\n      headerClass,\n      headerStyle,\n      footerClass,\n      footerStyle,\n      scrollbarProps,\n      closable,\n      $slots\n    } = this\n    return (\n      <div\n        role=\"none\"\n        class={[\n          `${mergedClsPrefix}-drawer-content`,\n          nativeScrollbar\n          && `${mergedClsPrefix}-drawer-content--native-scrollbar`\n        ]}\n      >\n        {$slots.header || title || closable ? (\n          <div\n            class={[`${mergedClsPrefix}-drawer-header`, headerClass]}\n            style={headerStyle}\n            role=\"none\"\n          >\n            <div\n              class={`${mergedClsPrefix}-drawer-header__main`}\n              role=\"heading\"\n              aria-level=\"1\"\n            >\n              {$slots.header !== undefined ? $slots.header() : title}\n            </div>\n            {closable && (\n              <NBaseClose\n                onClick={this.handleCloseClick}\n                clsPrefix={mergedClsPrefix}\n                class={`${mergedClsPrefix}-drawer-header__close`}\n                absolute\n              />\n            )}\n          </div>\n        ) : null}\n        {nativeScrollbar ? (\n          <div\n            class={[`${mergedClsPrefix}-drawer-body`, bodyClass]}\n            style={bodyStyle}\n            role=\"none\"\n          >\n            <div\n              class={[\n                `${mergedClsPrefix}-drawer-body-content-wrapper`,\n                bodyContentClass\n              ]}\n              style={bodyContentStyle}\n              role=\"none\"\n            >\n              {$slots.default?.()}\n            </div>\n          </div>\n        ) : (\n          <NScrollbar\n            themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n            theme={mergedTheme.peers.Scrollbar}\n            {...scrollbarProps}\n            class={`${mergedClsPrefix}-drawer-body`}\n            contentClass={[\n              `${mergedClsPrefix}-drawer-body-content-wrapper`,\n              bodyContentClass\n            ]}\n            contentStyle={bodyContentStyle}\n          >\n            {$slots}\n          </NScrollbar>\n        )}\n        {$slots.footer ? (\n          <div\n            class={[`${mergedClsPrefix}-drawer-footer`, footerClass]}\n            style={footerStyle}\n            role=\"none\"\n          >\n            {$slots.footer()}\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","export default {\n  actionMargin: '0 0 0 20px',\n  actionMarginRtl: '0 20px 0 0'\n}\n","import type { DynamicInputTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\nimport commonVariables from './_common'\n\nconst dynamicInputDark: DynamicInputTheme = {\n  name: 'DynamicInput',\n  common: commonDark,\n  peers: {\n    Input: inputDark,\n    Button: buttonDark\n  },\n  self() {\n    return commonVariables\n  }\n}\n\nexport default dynamicInputDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\nimport commonVariables from './_common'\n\nfunction self() {\n  return commonVariables\n}\n\nexport interface DynamicInputThemeVars extends ReturnType<typeof self> {}\n\nconst dynamicInputLight: DynamicInputTheme = createTheme({\n  name: 'DynamicInput',\n  common: commonLight,\n  peers: {\n    Input: inputLight,\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface DynamicInputTheme extends Theme<\n  'DynamicInput',\n  DynamicInputThemeVars,\n  {\n    Input: InputTheme\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface DynamicInputThemeOverrides extends ExtractThemeOverrides<DynamicInputTheme> {}\n\nexport default dynamicInputLight\n","import type { CNode } from 'css-render'\nimport type { ButtonType } from '../../../button/src/public-types'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\nimport { n1, zero } from './index.cssr'\n\nfunction createRightBorderStyle(type: ButtonType): CNode {\n  return cM(`${type}-type`, [\n    c('& +', [\n      cB('button', {}, [\n        cM(`${type}-type`, [\n          cE('border', {\n            borderRightWidth: zero\n          }),\n          cE('state-border', {\n            left: n1\n          })\n        ])\n      ])\n    ])\n  ])\n}\n\nexport default cB('button-group', [\n  cNotM('vertical', [\n    cM('rtl', `\n      direction: rtl;\n    `, [\n      cB('button', [\n        c('&:last-child:not(:first-child)', `\n          margin-right: ${zero};\n          border-top-right-radius: ${zero};\n          border-bottom-right-radius: ${zero};\n        `),\n        c('&:first-child:not(:last-child)', `\n          margin-left: ${zero};\n          border-top-left-radius: ${zero};\n          border-bottom-left-radius: ${zero};\n        `),\n        c('&:not(:last-child):not(:first-child)', `\n          margin-left: ${zero};\n          margin-right: ${zero};\n          border-radius: ${zero};\n        `),\n        createRightBorderStyle('default'),\n        cM('ghost', [\n          createRightBorderStyle('primary'),\n          createRightBorderStyle('info'),\n          createRightBorderStyle('success'),\n          createRightBorderStyle('warning'),\n          createRightBorderStyle('error')\n        ])\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const buttonGroupRtl: RtlItem = {\n  name: 'ButtonGroup',\n  style: rtlStyle\n}\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('input-number', [\n  cM('rtl', `\n    direction: rtl;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { buttonRtl } from '../../button/styles/rtl'\nimport { inputRtl } from '../../input/styles/rtl'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const inputNumberRtl: RtlItem = {\n  name: 'InputNumber',\n  style: rtlStyle,\n  peers: [inputRtl, buttonRtl]\n}\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('dynamic-input', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('dynamic-input-preset-pair', [\n      cB('dynamic-input-pair-input', [\n        c('&:first-child', {\n          'margin-left': '12px',\n          'margin-right': '0'\n        })\n      ])\n    ]),\n    cB('dynamic-input-item', [\n      cE('action', `\n        margin: var(--action-margin-rtl);\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { buttonGroupRtl } from '../../button-group/styles/rtl'\nimport { buttonRtl } from '../../button/styles/rtl'\nimport { checkboxRtl } from '../../checkbox/styles/rtl'\nimport { inputNumberRtl } from '../../input-number/styles/rtl'\nimport { inputRtl } from '../../input/styles/rtl'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const dynamicInputRtl: RtlItem = {\n  name: 'DynamicInput',\n  style: rtlStyle,\n  peers: [inputRtl, buttonRtl, buttonGroupRtl, checkboxRtl, inputNumberRtl]\n}\n","import type { Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { DynamicInputTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils'\n\nexport interface DynamicInputInjection {\n  mergedThemeRef: Ref<MergedTheme<DynamicInputTheme>>\n  keyPlaceholderRef: Ref<string | undefined>\n  valuePlaceholderRef: Ref<string | undefined>\n  placeholderRef: Ref<string | undefined>\n}\n\nexport const dynamicInputInjectionKey\n  = createInjectionKey<DynamicInputInjection>('n-dynamic-input')\n\nexport type OnUpdateValue = <T>(value: T[]) => void\n\nexport interface DynamicInputDefaultSlotProps {\n  value: any\n  index: number\n}\n\nexport interface DynamicInputActionSlotProps {\n  value: any\n  index: number\n  create: (index: number) => void\n  remove: (index: number) => void\n  move: (type: 'up' | 'down', index: number) => void\n}\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NInput } from '../../input'\nimport { dynamicInputInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'DynamicInputInputPreset',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: String,\n      default: ''\n    },\n    disabled: Boolean,\n    parentPath: String,\n    path: String,\n    onUpdateValue: {\n      type: Function as PropType<(value: string) => void>,\n      required: true\n    }\n  },\n  setup() {\n    const { mergedThemeRef, placeholderRef } = inject(dynamicInputInjectionKey)!\n    return {\n      mergedTheme: mergedThemeRef,\n      placeholder: placeholderRef\n    }\n  },\n  render() {\n    const {\n      mergedTheme,\n      placeholder,\n      value,\n      clsPrefix,\n      onUpdateValue,\n      disabled\n    } = this\n    return (\n      <div class={`${clsPrefix}-dynamic-input-preset-input`}>\n        <NInput\n          theme={mergedTheme.peers.Input}\n          theme-overrides={mergedTheme.peerOverrides.Input}\n          value={value}\n          placeholder={placeholder}\n          onUpdateValue={onUpdateValue}\n          disabled={disabled}\n        />\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NInput } from '../../input'\nimport { dynamicInputInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'DynamicInputPairPreset',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: Object as PropType<{ key: string, value: string }>,\n      default: () => ({\n        key: '',\n        value: ''\n      })\n    },\n    disabled: Boolean,\n    parentPath: String,\n    path: String,\n    onUpdateValue: {\n      type: Function as PropType<\n        (data: { key: string, value: string }) => void\n      >,\n      required: true\n    }\n  },\n  setup(props) {\n    const { mergedThemeRef, keyPlaceholderRef, valuePlaceholderRef } = inject(\n      dynamicInputInjectionKey\n    )!\n    return {\n      mergedTheme: mergedThemeRef,\n      keyPlaceholder: keyPlaceholderRef,\n      valuePlaceholder: valuePlaceholderRef,\n      handleKeyInput(key: string) {\n        props.onUpdateValue({\n          key,\n          value: props.value.value\n        })\n      },\n      handleValueInput(value: string) {\n        props.onUpdateValue({\n          key: props.value.key,\n          value\n        })\n      }\n    }\n  },\n  render() {\n    const {\n      mergedTheme,\n      keyPlaceholder,\n      valuePlaceholder,\n      value,\n      clsPrefix,\n      disabled\n    } = this\n    return (\n      <div class={`${clsPrefix}-dynamic-input-preset-pair`}>\n        <NInput\n          theme={mergedTheme.peers.Input}\n          theme-overrides={mergedTheme.peerOverrides.Input}\n          value={value.key}\n          class={`${clsPrefix}-dynamic-input-pair-input`}\n          placeholder={keyPlaceholder}\n          onUpdateValue={this.handleKeyInput}\n          disabled={disabled}\n        />\n        <NInput\n          theme={mergedTheme.peers.Input}\n          theme-overrides={mergedTheme.peerOverrides.Input}\n          value={value.value}\n          class={`${clsPrefix}-dynamic-input-pair-input`}\n          placeholder={valuePlaceholder}\n          onUpdateValue={this.handleValueInput}\n          disabled={disabled}\n        />\n      </div>\n    )\n  }\n})\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --action-margin\nexport default cB('dynamic-input', {\n  width: '100%'\n}, [\n  cB('dynamic-input-item', `\n    margin-bottom: 10px;\n    display: flex;\n    flex-wrap: nowrap;\n  `, [\n    cB('dynamic-input-preset-input', {\n      flex: 1,\n      alignItems: 'center'\n    }),\n    cB('dynamic-input-preset-pair', `\n      flex: 1;\n      display: flex;\n      align-items: center;\n    `, [\n      cB('dynamic-input-pair-input', [\n        c('&:first-child', {\n          'margin-right': '12px'\n        })\n      ])\n    ]),\n    cE('action', `\n      align-self: flex-start;\n      display: flex;\n      justify-content: flex-end;\n      flex-shrink: 0;\n      flex-grow: 0;\n      margin: var(--action-margin);\n    `, [\n      cM('icon', {\n        cursor: 'pointer'\n      })\n    ]),\n    c('&:last-child', {\n      marginBottom: 0\n    })\n  ]),\n  cB('form-item', `\n    padding-top: 0 !important;\n    margin-right: 0 !important;\n  `, [\n    cB('form-item-blank', {\n      paddingTop: '0 !important'\n    })\n  ])\n])\n","import type { CSSProperties, PropType, Ref, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ButtonProps } from '../../button'\nimport type { DynamicInputTheme, DynamicInputThemeOverrides } from '../styles'\nimport type {\n  DynamicInputActionSlotProps,\n  DynamicInputDefaultSlotProps,\n  OnUpdateValue\n} from './interface'\nimport { createId } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  isProxy,\n  provide,\n  ref,\n  toRaw,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  AddIcon,\n  ArrowDownIcon,\n  ArrowUpIcon,\n  RemoveIcon\n} from '../../_internal/icons'\nimport { useConfig, useLocale, useTheme, useThemeClass } from '../../_mixins'\nimport { formItemInjectionKey } from '../../_mixins/use-form-item'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  call,\n  resolveSlot,\n  resolveSlotWithTypedProps,\n  warnOnce\n} from '../../_utils'\nimport { NButton } from '../../button'\nimport { NButtonGroup } from '../../button-group'\nimport { dynamicInputLight } from '../styles'\nimport NDynamicInputInputPreset from './InputPreset'\nimport { dynamicInputInjectionKey } from './interface'\nimport NDynamicInputPairPreset from './PairPreset'\nimport style from './styles/index.cssr'\n\nconst globalDataKeyMap = new WeakMap()\n\nexport const dynamicInputProps = {\n  ...(useTheme.props as ThemeProps<\n    DynamicInputTheme,\n    DynamicInputThemeOverrides\n  >),\n  max: Number,\n  min: {\n    type: Number,\n    default: 0\n  },\n  value: Array as PropType<any[]>,\n  // TODO: make it robust for different types\n  defaultValue: {\n    type: Array as PropType<any[]>,\n    default: () => []\n  },\n  preset: {\n    type: String as PropType<'input' | 'pair'>,\n    default: 'input'\n  },\n  keyField: String,\n  itemClass: String,\n  itemStyle: [String, Object] as PropType<string | CSSProperties>,\n  // for preset pair\n  keyPlaceholder: {\n    type: String,\n    default: ''\n  },\n  valuePlaceholder: {\n    type: String,\n    default: ''\n  },\n  // for preset input\n  placeholder: {\n    type: String,\n    default: ''\n  },\n  disabled: Boolean,\n  showSortButton: Boolean,\n  createButtonProps: Object as PropType<ButtonProps>,\n  onCreate: Function as PropType<(index: number) => any>,\n  onRemove: Function as PropType<(index: number) => void>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  // deprecated\n  onClear: Function as PropType<() => void>,\n  onInput: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type DynamicInputProps = ExtractPublicPropTypes<typeof dynamicInputProps>\n\nexport interface DynamicInputSlots {\n  action?: (props: DynamicInputActionSlotProps) => VNode[]\n  default?: (props: DynamicInputDefaultSlotProps) => VNode[]\n  'create-button-default'?: () => VNode[]\n  'create-button-icon'?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'DynamicInput',\n  props: dynamicInputProps,\n  setup(props, { slots }) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onClear !== undefined) {\n          warnOnce(\n            'dynamic-input',\n            '`on-clear` is deprecated, it is out of usage anymore.'\n          )\n        }\n        if (props.onInput !== undefined) {\n          warnOnce(\n            'dynamic-input',\n            '`on-input` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const {\n      mergedComponentPropsRef,\n      mergedClsPrefixRef,\n      mergedRtlRef,\n      inlineThemeDisabled\n    } = useConfig()\n    const NFormItem = inject(formItemInjectionKey, null)\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const themeRef = useTheme(\n      'DynamicInput',\n      '-dynamic-input',\n      style,\n      dynamicInputLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const insertionDisabledRef = computed(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (Array.isArray(mergedValue)) {\n        const { max } = props\n        return max !== undefined && mergedValue.length >= max\n      }\n      return false\n    })\n    const removeDisabledRef = computed(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (Array.isArray(mergedValue))\n        return mergedValue.length <= props.min\n      return true\n    })\n    const buttonSizeRef = computed(() => {\n      return mergedComponentPropsRef?.value?.DynamicInput?.buttonSize\n    })\n    function doUpdateValue(value: any[]): void {\n      const { onInput, 'onUpdate:value': _onUpdateValue, onUpdateValue } = props\n      if (onInput)\n        call(onInput, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue, value)\n      if (onUpdateValue)\n        call(onUpdateValue, value)\n      uncontrolledValueRef.value = value\n    }\n    function ensureKey(value: any, index: number): string | number {\n      if (value === undefined || value === null)\n        return index\n      if (typeof value !== 'object')\n        return index\n      const rawValue = isProxy(value) ? toRaw(value) : value\n      let key = globalDataKeyMap.get(rawValue as WeakKey)\n      if (key === undefined) {\n        globalDataKeyMap.set(rawValue as WeakKey, (key = createId()))\n      }\n      return key\n    }\n    function handleValueChange(index: number, value: any): void {\n      const { value: mergedValue } = mergedValueRef\n      const newValue = Array.from(mergedValue ?? [])\n      const originalItem = newValue[index]\n      newValue[index] = value\n      // update dataKeyMap\n      if (\n        originalItem\n        && value\n        && typeof originalItem === 'object'\n        && typeof value === 'object'\n      ) {\n        const rawOriginal = isProxy(originalItem)\n          ? toRaw(originalItem)\n          : originalItem\n        const rawNew = isProxy(value) ? toRaw(value) : value\n        // inherit key is value position is not change\n        const originalKey = globalDataKeyMap.get(rawOriginal as WeakKey)\n        if (originalKey !== undefined) {\n          globalDataKeyMap.set(rawNew as WeakKey, originalKey)\n        }\n      }\n      doUpdateValue(newValue)\n    }\n    function handleCreateClick(): void {\n      createItem(-1)\n    }\n    function createItem(index: number): void {\n      const { value: mergedValue } = mergedValueRef\n      const { onCreate } = props\n      const newValue = Array.from(mergedValue ?? [])\n      if (onCreate) {\n        newValue.splice(index + 1, 0, onCreate(index + 1))\n        doUpdateValue(newValue)\n      }\n      else if (slots.default) {\n        newValue.splice(index + 1, 0, null)\n        doUpdateValue(newValue)\n      }\n      else {\n        switch (props.preset) {\n          case 'input':\n            newValue.splice(index + 1, 0, '')\n            doUpdateValue(newValue)\n            break\n          case 'pair':\n            newValue.splice(index + 1, 0, { key: '', value: '' })\n            doUpdateValue(newValue)\n            break\n        }\n      }\n    }\n    function remove(index: number): void {\n      const { value: mergedValue } = mergedValueRef\n      if (!Array.isArray(mergedValue))\n        return\n      const { min } = props\n      if (mergedValue.length <= min)\n        return\n      const { onRemove } = props\n      if (onRemove) {\n        onRemove(index)\n      }\n      const newValue = Array.from(mergedValue)\n      newValue.splice(index, 1)\n      doUpdateValue(newValue)\n    }\n    function swap(\n      array: any[],\n      currentIndex: number,\n      targetIndex: number\n    ): void {\n      if (\n        currentIndex < 0\n        || targetIndex < 0\n        || currentIndex >= array.length\n        || targetIndex >= array.length\n      ) {\n        return\n      }\n      if (currentIndex === targetIndex)\n        return\n      const currentItem = array[currentIndex]\n      array[currentIndex] = array[targetIndex]\n      array[targetIndex] = currentItem\n    }\n    function move(type: 'up' | 'down', index: number): void {\n      const { value: mergedValue } = mergedValueRef\n      if (!Array.isArray(mergedValue))\n        return\n      const newValue = Array.from(mergedValue)\n      if (type === 'up') {\n        swap(newValue, index, index - 1)\n      }\n      if (type === 'down') {\n        swap(newValue, index, index + 1)\n      }\n      doUpdateValue(newValue)\n    }\n    provide(dynamicInputInjectionKey, {\n      mergedThemeRef: themeRef,\n      keyPlaceholderRef: toRef(props, 'keyPlaceholder'),\n      valuePlaceholderRef: toRef(props, 'valuePlaceholder'),\n      placeholderRef: toRef(props, 'placeholder')\n    })\n    const rtlEnabledRef = useRtl(\n      'DynamicInput',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        self: { actionMargin, actionMarginRtl }\n      } = themeRef.value\n      return {\n        '--action-margin': actionMargin,\n        '--action-margin-rtl': actionMarginRtl\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('dynamic-input', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      locale: useLocale('DynamicInput').localeRef,\n      rtlEnabled: rtlEnabledRef,\n      buttonSize: buttonSizeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      NFormItem,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      insertionDisabled: insertionDisabledRef,\n      removeDisabled: removeDisabledRef,\n      handleCreateClick,\n      ensureKey,\n      handleValueChange,\n      remove,\n      move,\n      createItem,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      $slots,\n      itemClass,\n      buttonSize,\n      mergedClsPrefix,\n      mergedValue,\n      locale,\n      mergedTheme,\n      keyField,\n      itemStyle,\n      preset,\n      showSortButton,\n      NFormItem,\n      ensureKey,\n      handleValueChange,\n      remove,\n      createItem,\n      move,\n      onRender,\n      disabled\n    } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-dynamic-input`,\n          this.rtlEnabled && `${mergedClsPrefix}-dynamic-input--rtl`,\n          this.themeClass\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {!Array.isArray(mergedValue) || mergedValue.length === 0 ? (\n          <NButton\n            block\n            ghost\n            dashed\n            size={buttonSize}\n            {...this.createButtonProps}\n            disabled={this.insertionDisabled || disabled}\n            theme={mergedTheme.peers.Button}\n            themeOverrides={mergedTheme.peerOverrides.Button}\n            onClick={this.handleCreateClick}\n          >\n            {{\n              default: () =>\n                resolveSlot($slots['create-button-default'], () => [\n                  locale.create\n                ]),\n              icon: () =>\n                resolveSlot($slots['create-button-icon'], () => [\n                  <NBaseIcon clsPrefix={mergedClsPrefix}>\n                    {{ default: () => <AddIcon /> }}\n                  </NBaseIcon>\n                ])\n            }}\n          </NButton>\n        ) : (\n          mergedValue.map((_, index) => (\n            <div\n              key={keyField ? _[keyField] : ensureKey(_, index)}\n              data-key={keyField ? _[keyField] : ensureKey(_, index)}\n              class={[`${mergedClsPrefix}-dynamic-input-item`, itemClass]}\n              style={itemStyle}\n            >\n              {resolveSlotWithTypedProps(\n                $slots.default,\n                {\n                  value: mergedValue[index],\n                  index\n                },\n                () => {\n                  return [\n                    preset === 'input' ? (\n                      <NDynamicInputInputPreset\n                        disabled={disabled}\n                        clsPrefix={mergedClsPrefix}\n                        value={mergedValue[index]}\n                        parentPath={\n                          NFormItem ? NFormItem.path.value : undefined\n                        }\n                        path={\n                          NFormItem?.path.value\n                            ? `${NFormItem.path.value}[${index}]`\n                            : undefined\n                        }\n                        onUpdateValue={(v) => {\n                          handleValueChange(index, v)\n                        }}\n                      />\n                    ) : preset === 'pair' ? (\n                      <NDynamicInputPairPreset\n                        disabled={disabled}\n                        clsPrefix={mergedClsPrefix}\n                        value={mergedValue[index]}\n                        parentPath={\n                          NFormItem ? NFormItem.path.value : undefined\n                        }\n                        path={\n                          NFormItem?.path.value\n                            ? `${NFormItem.path.value}[${index}]`\n                            : undefined\n                        }\n                        onUpdateValue={(v) => {\n                          handleValueChange(index, v)\n                        }}\n                      />\n                    ) : null\n                  ]\n                }\n              )}\n              {resolveSlotWithTypedProps(\n                $slots.action,\n                {\n                  value: mergedValue[index],\n                  index,\n                  create: createItem,\n                  remove,\n                  move\n                },\n                () => [\n                  <div class={`${mergedClsPrefix}-dynamic-input-item__action`}>\n                    <NButtonGroup size={buttonSize}>\n                      {{\n                        default: () => [\n                          <NButton\n                            disabled={this.removeDisabled || disabled}\n                            theme={mergedTheme.peers.Button}\n                            themeOverrides={mergedTheme.peerOverrides.Button}\n                            circle\n                            onClick={() => {\n                              remove(index)\n                            }}\n                          >\n                            {{\n                              icon: () => (\n                                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                  {{ default: () => <RemoveIcon /> }}\n                                </NBaseIcon>\n                              )\n                            }}\n                          </NButton>,\n                          <NButton\n                            disabled={this.insertionDisabled || disabled}\n                            circle\n                            theme={mergedTheme.peers.Button}\n                            themeOverrides={mergedTheme.peerOverrides.Button}\n                            onClick={() => {\n                              createItem(index)\n                            }}\n                          >\n                            {{\n                              icon: () => (\n                                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                  {{ default: () => <AddIcon /> }}\n                                </NBaseIcon>\n                              )\n                            }}\n                          </NButton>,\n                          showSortButton ? (\n                            <NButton\n                              disabled={index === 0 || disabled}\n                              circle\n                              theme={mergedTheme.peers.Button}\n                              themeOverrides={mergedTheme.peerOverrides.Button}\n                              onClick={() => {\n                                move('up', index)\n                              }}\n                            >\n                              {{\n                                icon: () => (\n                                  <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                    {{\n                                      default: () => <ArrowUpIcon />\n                                    }}\n                                  </NBaseIcon>\n                                )\n                              }}\n                            </NButton>\n                          ) : null,\n                          showSortButton ? (\n                            <NButton\n                              disabled={\n                                index === mergedValue.length - 1 || disabled\n                              }\n                              circle\n                              theme={mergedTheme.peers.Button}\n                              themeOverrides={mergedTheme.peerOverrides.Button}\n                              onClick={() => {\n                                move('down', index)\n                              }}\n                            >\n                              {{\n                                icon: () => (\n                                  <NBaseIcon clsPrefix={mergedClsPrefix}>\n                                    {{ default: () => <ArrowDownIcon /> }}\n                                  </NBaseIcon>\n                                )\n                              }}\n                            </NButton>\n                          ) : null\n                        ]\n                      }}\n                    </NButtonGroup>\n                  </div>\n                ]\n              )}\n            </div>\n          ))\n        )}\n      </div>\n    )\n  }\n})\n","export default {\n  gapSmall: '4px 8px',\n  gapMedium: '8px 12px',\n  gapLarge: '12px 16px'\n}\n","import type { SpaceTheme } from './light'\nimport commonVars from './_common'\n\nconst spaceDark: SpaceTheme = {\n  name: 'Space',\n  self() {\n    return commonVars\n  }\n}\n\nexport default spaceDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport commonVars from './_common'\n\nfunction self() {\n  return commonVars\n}\n\nexport interface SpaceThemeVars extends ReturnType<typeof self> {}\n\nconst spaceLight: SpaceTheme = {\n  name: 'Space',\n  self\n}\n\nexport interface SpaceTheme extends Theme<'Space', SpaceThemeVars> {}\n\nexport interface SpaceThemeOverrides extends ExtractThemeOverrides<SpaceTheme> {}\n\nexport default spaceLight\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('space', [\n  cM('rtl', `\n    direction: rtl;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const spaceRtl: RtlItem = {\n  name: 'Space',\n  style: rtlStyle\n}\n","import { isBrowser } from '../../_utils'\n\nlet supportFlexGap: boolean | undefined\n\nexport function ensureSupportFlexGap(): boolean {\n  if (!isBrowser)\n    return true\n  if (supportFlexGap === undefined) {\n    // create flex container with row-gap set\n    const flex = document.createElement('div')\n    flex.style.display = 'flex'\n    flex.style.flexDirection = 'column'\n    flex.style.rowGap = '1px'\n\n    // create two, elements inside it\n    flex.appendChild(document.createElement('div'))\n    flex.appendChild(document.createElement('div'))\n\n    // append to the DOM (needed to obtain scrollHeight)\n    document.body.appendChild(flex)\n    const isSupported = flex.scrollHeight === 1 // flex container should be 1px high from the row-gap\n    document.body.removeChild(flex)\n    return (supportFlexGap = isSupported)\n  }\n  return supportFlexGap\n}\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { SpaceTheme, SpaceThemeOverrides } from '../styles'\nimport type { SpaceSize } from './public-types'\nimport { depx, getGap } from 'seemly'\nimport { Comment, computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { createKey, flatten, getSlot } from '../../_utils'\nimport { spaceLight } from '../styles'\nimport { ensureSupportFlexGap } from './utils'\n\ntype Align\n  = | 'stretch'\n    | 'baseline'\n    | 'start'\n    | 'end'\n    | 'center'\n    | 'flex-end'\n    | 'flex-start'\n\nexport type Justify\n  = 'start' | 'end' | 'center' | 'space-around' | 'space-between' | 'space-evenly'\n\nexport const spaceProps = {\n  ...(useTheme.props as ThemeProps<SpaceTheme, SpaceThemeOverrides>),\n  align: String as PropType<Align>,\n  justify: {\n    type: String as PropType<Justify>,\n    default: 'start'\n  },\n  inline: Boolean,\n  vertical: Boolean,\n  reverse: Boolean,\n  size: [String, Number, Array] as PropType<SpaceSize>,\n  wrapItem: {\n    type: Boolean,\n    default: true\n  },\n  itemClass: String,\n  itemStyle: [String, Object] as PropType<string | CSSProperties>,\n  wrap: {\n    type: Boolean,\n    default: true\n  },\n  // internal\n  internalUseGap: {\n    type: Boolean,\n    default: undefined\n  }\n} as const\n\nexport type SpaceProps = ExtractPublicPropTypes<typeof spaceProps>\n\nexport default defineComponent({\n  name: 'Space',\n  props: spaceProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed<SpaceSize>(() => {\n      return (\n        props.size ?? mergedComponentPropsRef?.value?.Space?.size ?? 'medium'\n      )\n    })\n    const themeRef = useTheme(\n      'Space',\n      '-space',\n      undefined,\n      spaceLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Space', mergedRtlRef, mergedClsPrefixRef)\n    return {\n      useGap: ensureSupportFlexGap(),\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      margin: computed<{ horizontal: number, vertical: number }>(() => {\n        const size = mergedSizeRef.value\n        if (Array.isArray(size)) {\n          return {\n            horizontal: size[0],\n            vertical: size[1]\n          }\n        }\n        if (typeof size === 'number') {\n          return {\n            horizontal: size,\n            vertical: size\n          }\n        }\n        const {\n          self: { [createKey('gap', size)]: gap }\n        } = themeRef.value\n        const { row, col } = getGap(gap)\n        return {\n          horizontal: depx(col),\n          vertical: depx(row)\n        }\n      })\n    }\n  },\n  render() {\n    const {\n      vertical,\n      reverse,\n      align,\n      inline,\n      justify,\n      itemClass,\n      itemStyle,\n      margin,\n      wrap,\n      mergedClsPrefix,\n      rtlEnabled,\n      useGap,\n      wrapItem,\n      internalUseGap\n    } = this\n    const children = flatten(getSlot(this), false)\n    if (!children.length)\n      return null\n    const horizontalMargin = `${margin.horizontal}px`\n    const semiHorizontalMargin = `${margin.horizontal / 2}px`\n    const verticalMargin = `${margin.vertical}px`\n    const semiVerticalMargin = `${margin.vertical / 2}px`\n    const lastIndex = children.length - 1\n    const isJustifySpace = justify.startsWith('space-')\n    return (\n      <div\n        role=\"none\"\n        class={[\n          `${mergedClsPrefix}-space`,\n          rtlEnabled && `${mergedClsPrefix}-space--rtl`\n        ]}\n        style={{\n          display: inline ? 'inline-flex' : 'flex',\n          flexDirection: (() => {\n            if (vertical && !reverse)\n              return 'column'\n            if (vertical && reverse)\n              return 'column-reverse'\n            if (!vertical && reverse)\n              return 'row-reverse'\n            /** (!vertical && !reverse) */ else return 'row'\n          })(),\n          justifyContent: ['start', 'end'].includes(justify)\n            ? `flex-${justify}`\n            : justify,\n          flexWrap: !wrap || vertical ? 'nowrap' : 'wrap',\n          marginTop: useGap || vertical ? '' : `-${semiVerticalMargin}`,\n          marginBottom: useGap || vertical ? '' : `-${semiVerticalMargin}`,\n          alignItems: align,\n          gap: useGap ? `${margin.vertical}px ${margin.horizontal}px` : ''\n        }}\n      >\n        {!wrapItem && (useGap || internalUseGap)\n          ? children\n          : children.map((child, index) =>\n              child.type === Comment ? (\n                child\n              ) : (\n                <div\n                  role=\"none\"\n                  class={itemClass}\n                  style={[\n                    itemStyle as any,\n                    {\n                      maxWidth: '100%'\n                    },\n                    useGap\n                      ? ''\n                      : vertical\n                        ? {\n                            marginBottom:\n                              index !== lastIndex ? verticalMargin : ''\n                          }\n                        : rtlEnabled\n                          ? {\n                              marginLeft: isJustifySpace\n                                ? justify === 'space-between'\n                                && index === lastIndex\n                                  ? ''\n                                  : semiHorizontalMargin\n                                : index !== lastIndex\n                                  ? horizontalMargin\n                                  : '',\n                              marginRight: isJustifySpace\n                                ? justify === 'space-between' && index === 0\n                                  ? ''\n                                  : semiHorizontalMargin\n                                : '',\n                              paddingTop: semiVerticalMargin,\n                              paddingBottom: semiVerticalMargin\n                            }\n                          : {\n                              marginRight: isJustifySpace\n                                ? justify === 'space-between'\n                                && index === lastIndex\n                                  ? ''\n                                  : semiHorizontalMargin\n                                : index !== lastIndex\n                                  ? horizontalMargin\n                                  : '',\n                              marginLeft: isJustifySpace\n                                ? justify === 'space-between' && index === 0\n                                  ? ''\n                                  : semiHorizontalMargin\n                                : '',\n                              paddingTop: semiVerticalMargin,\n                              paddingBottom: semiVerticalMargin\n                            }\n                  ]}\n                >\n                  {child}\n                </div>\n              )\n            )}\n      </div>\n    )\n  }\n})\n","import type { DynamicTagsTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\nimport { spaceDark } from '../../space/styles'\nimport { tagDark } from '../../tag/styles'\n\nconst dynamicTagsDark: DynamicTagsTheme = {\n  name: 'DynamicTags',\n  common: commonDark,\n  peers: {\n    Input: inputDark,\n    Button: buttonDark,\n    Tag: tagDark,\n    Space: spaceDark\n  },\n  self() {\n    return {\n      inputWidth: '64px'\n    }\n  }\n}\n\nexport default dynamicTagsDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport type { SpaceTheme } from '../../space/styles'\nimport type { TagTheme } from '../../tag/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\nimport { spaceLight } from '../../space/styles'\nimport { tagLight } from '../../tag/styles'\n\nexport function self() {\n  return {\n    inputWidth: '64px'\n  }\n}\n\nexport interface DynamicTagsThemeVars extends ReturnType<typeof self> {}\n\nconst dynamicTagsLight: DynamicTagsTheme = createTheme({\n  name: 'DynamicTags',\n  common: commonLight,\n  peers: {\n    Input: inputLight,\n    Button: buttonLight,\n    Tag: tagLight,\n    Space: spaceLight\n  },\n  self\n})\n\nexport interface DynamicTagsTheme extends Theme<\n  'DynamicTags',\n  DynamicTagsThemeVars,\n  {\n    Input: InputTheme\n    Button: ButtonTheme\n    Tag: TagTheme\n    Space: SpaceTheme\n  }\n> {}\n\nexport interface DynamicTagsThemeOverrides extends ExtractThemeOverrides<DynamicTagsTheme> {}\n\nexport default dynamicTagsLight\n","import { cB } from '../../../_utils/cssr'\n\n// vars:\n// --input-width\nexport default cB('dynamic-tags', [\n  cB('input', {\n    minWidth: 'var(--n-input-width)'\n  })\n])\n","import type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { InputInst, InputProps } from '../../input'\nimport type { DynamicTagsTheme, DynamicTagsThemeOverrides } from '../styles'\nimport type {\n  DynamicTagsInputSlotProps,\n  DynamicTagsOption,\n  DynamicTagsTriggerSlotProps,\n  OnCreate,\n  OnUpdateValue,\n  OnUpdateValueImpl\n} from './interface'\nimport type { DynamicTagsSize } from './public-types'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { AddIcon } from '../../_internal/icons'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport { call, smallerSize, warnOnce } from '../../_utils'\nimport { NButton } from '../../button'\nimport { NInput } from '../../input'\nimport { NSpace } from '../../space'\nimport { NTag } from '../../tag'\nimport commonProps from '../../tag/src/common-props'\nimport { dynamicTagsLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const dynamicTagsProps = {\n  ...(useTheme.props as ThemeProps<\n    DynamicTagsTheme,\n    DynamicTagsThemeOverrides\n  >),\n  ...commonProps,\n  size: String as PropType<DynamicTagsSize>,\n  closable: {\n    type: Boolean,\n    default: true\n  },\n  defaultValue: {\n    type: Array as PropType<Array<string | DynamicTagsOption>>,\n    default: () => []\n  },\n  value: Array as PropType<Array<string | DynamicTagsOption>>,\n  inputClass: String,\n  inputStyle: [String, Object] as PropType<string | CSSProperties>,\n  inputProps: Object as PropType<InputProps>,\n  max: Number as PropType<number>,\n  tagClass: String,\n  tagStyle: [String, Object] as PropType<string | CSSProperties>,\n  renderTag: Function as PropType<\n    | ((tag: string, index: number) => VNodeChild)\n    | ((tag: DynamicTagsOption, index: number) => VNodeChild)\n  >,\n  onCreate: {\n    type: Function as PropType<OnCreate>,\n    default: (label: string) => label\n  },\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n}\n\nexport type DynamicTagsProps = ExtractPublicPropTypes<typeof dynamicTagsProps>\n\nexport interface DynamicTagsSlots {\n  input?: (props: DynamicTagsInputSlotProps) => VNode[]\n  trigger?: (props: DynamicTagsTriggerSlotProps) => VNode[]\n  default?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'DynamicTags',\n  props: dynamicTagsProps,\n  slots: Object as SlotsType<DynamicTagsSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'dynamic-tags',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size\n        || mergedComponentPropsRef?.value?.DynamicTags?.size\n        || 'medium'\n      )\n    })\n    const { localeRef } = useLocale('DynamicTags')\n    const formItem = useFormItem(props)\n    const { mergedDisabledRef } = formItem\n    const inputValueRef = ref('')\n    const showInputRef = ref(false)\n    const inputForceFocusedRef = ref(true)\n    const inputInstRef = ref<InputInst | null>(null)\n    const themeRef = useTheme(\n      'DynamicTags',\n      '-dynamic-tags',\n      style,\n      dynamicTagsLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const localizedAddRef = computed(() => {\n      return localeRef.value.add\n    })\n    const inputSizeRef = computed(() => {\n      return smallerSize(mergedSizeRef.value)\n    })\n    const triggerDisabledRef = computed(() => {\n      return (\n        mergedDisabledRef.value\n        || (!!props.max && mergedValueRef.value.length >= props.max)\n      )\n    })\n    function doChange(value: Array<string | DynamicTagsOption>): void {\n      const {\n        onChange,\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value)\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function handleCloseClick(index: number): void {\n      const tags = mergedValueRef.value.slice(0)\n      tags.splice(index, 1)\n      doChange(tags)\n    }\n    function handleInputKeyDown(e: KeyboardEvent): void {\n      if (inputInstRef.value?.isCompositing)\n        return\n      switch (e.key) {\n        case 'Enter':\n          handleInputConfirm()\n      }\n    }\n    function handleInputConfirm(externalValue?: string): void {\n      const nextValue = externalValue ?? inputValueRef.value\n      if (nextValue) {\n        const tags = mergedValueRef.value.slice(0)\n        tags.push(props.onCreate(nextValue))\n        doChange(tags)\n      }\n      showInputRef.value = false\n      inputForceFocusedRef.value = true\n      inputValueRef.value = ''\n    }\n    function handleInputBlur(): void {\n      handleInputConfirm()\n    }\n    function handleAddClick(): void {\n      showInputRef.value = true\n      void nextTick(() => {\n        inputInstRef.value?.focus()\n        inputForceFocusedRef.value = false\n      })\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        self: { inputWidth }\n      } = themeRef.value\n      return {\n        '--n-input-width': inputWidth\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('dynamic-tags', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      // reduce dts: string ref only, type unused in render\n      inputInstRef: inputInstRef as unknown,\n      localizedAdd: localizedAddRef,\n      inputSize: inputSizeRef,\n      mergedSize: mergedSizeRef,\n      inputValue: inputValueRef,\n      showInput: showInputRef,\n      inputForceFocused: inputForceFocusedRef,\n      mergedValue: mergedValueRef,\n      mergedDisabled: mergedDisabledRef,\n      triggerDisabled: triggerDisabledRef,\n      handleInputKeyDown,\n      handleAddClick,\n      handleInputBlur,\n      handleCloseClick,\n      handleInputConfirm,\n      mergedTheme: themeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedTheme, cssVars, mergedClsPrefix, onRender, renderTag } = this\n    onRender?.()\n    return (\n      <NSpace\n        class={[`${mergedClsPrefix}-dynamic-tags`, this.themeClass]}\n        size=\"small\"\n        style={cssVars as any}\n        theme={mergedTheme.peers.Space}\n        themeOverrides={mergedTheme.peerOverrides.Space}\n        itemStyle=\"display: flex;\"\n      >\n        {{\n          default: () => {\n            const {\n              mergedTheme,\n              tagClass,\n              tagStyle,\n              type,\n              round,\n              mergedSize,\n              color,\n              closable,\n              mergedDisabled,\n              showInput,\n              inputValue,\n              inputClass,\n              inputStyle,\n              inputSize,\n              inputForceFocused,\n              triggerDisabled,\n              handleInputKeyDown,\n              handleInputBlur,\n              handleAddClick,\n              handleCloseClick,\n              handleInputConfirm,\n              $slots\n            } = this\n            return this.mergedValue\n              .map((tag, index) =>\n                renderTag ? (\n                  renderTag(tag as string & DynamicTagsOption, index)\n                ) : (\n                  <NTag\n                    key={index}\n                    theme={mergedTheme.peers.Tag}\n                    themeOverrides={mergedTheme.peerOverrides.Tag}\n                    class={tagClass}\n                    style={tagStyle}\n                    type={type}\n                    round={round}\n                    size={mergedSize}\n                    color={color}\n                    closable={closable}\n                    disabled={mergedDisabled}\n                    onClose={() => {\n                      handleCloseClick(index)\n                    }}\n                  >\n                    {{\n                      default: () => (typeof tag === 'string' ? tag : tag.label)\n                    }}\n                  </NTag>\n                )\n              )\n              .concat(\n                showInput ? (\n                  $slots.input ? (\n                    $slots.input({\n                      submit: handleInputConfirm,\n                      deactivate: handleInputBlur\n                    })\n                  ) : (\n                    <NInput\n                      placeholder=\"\"\n                      size={inputSize}\n                      style={inputStyle}\n                      class={inputClass}\n                      autosize\n                      {...this.inputProps}\n                      ref=\"inputInstRef\"\n                      value={inputValue}\n                      onUpdateValue={(v) => {\n                        this.inputValue = v\n                      }}\n                      theme={mergedTheme.peers.Input}\n                      themeOverrides={mergedTheme.peerOverrides.Input}\n                      onKeydown={handleInputKeyDown}\n                      onBlur={handleInputBlur}\n                      internalForceFocus={inputForceFocused}\n                    />\n                  )\n                ) : $slots.trigger ? (\n                  $slots.trigger({\n                    activate: handleAddClick,\n                    disabled: triggerDisabled\n                  })\n                ) : (\n                  <NButton\n                    dashed\n                    disabled={triggerDisabled}\n                    theme={mergedTheme.peers.Button}\n                    themeOverrides={mergedTheme.peerOverrides.Button}\n                    size={inputSize}\n                    onClick={handleAddClick}\n                  >\n                    {{\n                      icon: () => (\n                        <NBaseIcon clsPrefix={mergedClsPrefix}>\n                          {{ default: () => <AddIcon /> }}\n                        </NBaseIcon>\n                      )\n                    }}\n                  </NButton>\n                )\n              )\n          }\n        }}\n      </NSpace>\n    )\n  }\n})\n","import type { ElementTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst elementDark: ElementTheme = {\n  name: 'Element',\n  common: commonDark\n}\n\nexport default elementDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport interface ElementThemeVars {}\n\nconst elementLight: ElementTheme = {\n  name: 'Element',\n  common: commonLight\n}\n\nexport interface ElementTheme extends Theme<'Element', ElementThemeVars> {}\n\nexport interface ElementThemeOverrides extends ExtractThemeOverrides<ElementTheme> {}\n\nexport default elementLight\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ElementTheme, ElementThemeOverrides } from '../styles'\nimport { kebabCase } from 'lodash-es'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { elementLight } from '../styles'\n\nexport const elementProps = {\n  ...(useTheme.props as ThemeProps<ElementTheme, ElementThemeOverrides>),\n  tag: {\n    type: String,\n    default: 'div'\n  }\n} as const\n\nexport type ElementProps = ExtractPublicPropTypes<typeof elementProps>\n\nexport default defineComponent({\n  name: 'Element',\n  alias: ['El'],\n  props: elementProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Element',\n      '-element',\n      undefined,\n      elementLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { common } = themeRef.value\n      return (\n        Object.keys(common) as unknown as Array<keyof typeof common>\n      ).reduce<Record<string, string>>((prevValue, key) => {\n        prevValue[`--${kebabCase(key)}`] = common[key]\n        return prevValue\n      }, {})\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('element', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { tag, mergedClsPrefix, cssVars, themeClass, onRender, $slots } = this\n    onRender?.()\n    return h(\n      tag,\n      {\n        role: 'none',\n        class: [`${mergedClsPrefix}-element`, themeClass],\n        style: cssVars\n      },\n      $slots.default?.()\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { Katex, KatexOptions } from '../../config-provider/src/katex'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { configProviderInjectionKey } from '../../config-provider/src/context'\n\nexport const equationProps = {\n  value: String,\n  katex: Object as PropType<Katex>,\n  katexOptions: Object as PropType<KatexOptions>\n} as const\n\nexport type EquationProps = ExtractPublicPropTypes<typeof equationProps>\n\nexport const Equation = defineComponent({\n  name: 'Equation',\n  props: equationProps,\n  setup(props) {\n    const configProviderContext = inject(configProviderInjectionKey, null)\n    const extractedHtmlInfo = computed(() => {\n      const outerHtml\n        = (\n          props.katex || configProviderContext?.mergedKatexRef.value\n        )?.renderToString(props.value || '', {\n          throwOnError: false,\n          ...props.katexOptions\n        }) || 'no katex provided'\n      const matchResult = outerHtml.match(\n        /^<([a-z]+)[^>]+class=\"([^\"]+)\"[^>]*>/\n      )\n      const wrapperTag = matchResult?.[1] || 'span'\n      const wrapperClass = matchResult?.[2]\n      const innerHtml = outerHtml\n        .replace(/^<[a-z]+[^>]*>/, '')\n        .replace(/<\\/[a-z]+>$/, '')\n      return { wrapperTag, innerHtml, wrapperClass }\n    })\n    return () => {\n      const { innerHtml, wrapperClass, wrapperTag } = extractedHtmlInfo.value\n      return h(wrapperTag, { class: wrapperClass, innerHTML: innerHtml })\n    }\n  }\n})\n","export default {\n  gapSmall: '4px 8px',\n  gapMedium: '8px 12px',\n  gapLarge: '12px 16px'\n}\n","import type { FlexTheme } from './light'\nimport commonVars from './_common'\n\nconst flexDark: FlexTheme = {\n  name: 'Flex',\n  self() {\n    return commonVars\n  }\n}\n\nexport default flexDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport commonVars from './_common'\n\nfunction self() {\n  return commonVars\n}\n\nexport interface FlexThemeVars extends ReturnType<typeof self> {}\n\nconst flexLight: FlexTheme = {\n  name: 'Flex',\n  self\n}\n\nexport interface FlexTheme extends Theme<'Flex', FlexThemeVars> {}\n\nexport interface FlexThemeOverrides extends ExtractThemeOverrides<FlexTheme> {}\n\nexport default flexLight\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('space', [\n  cM('rtl', `\n    direction: rtl;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const flexRtl: RtlItem = {\n  name: 'Flex',\n  style: rtlStyle\n}\n","import type { PropType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FlexTheme, FlexThemeOverrides } from '../styles'\nimport type { FlexAlign, FlexJustify } from './type'\nimport { depx, getGap } from 'seemly'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { createKey, flatten, getSlot } from '../../_utils'\nimport { flexLight } from '../styles'\n\nexport const flexProps = {\n  ...(useTheme.props as ThemeProps<FlexTheme, FlexThemeOverrides>),\n  align: String as PropType<FlexAlign>,\n  justify: {\n    type: String as PropType<FlexJustify>,\n    default: 'start'\n  },\n  inline: Boolean,\n  vertical: Boolean,\n  reverse: Boolean,\n  size: {\n    type: [String, Number, Array] as PropType<\n      'small' | 'medium' | 'large' | number | [number, number]\n    >,\n    default: 'medium'\n  },\n  wrap: {\n    type: Boolean,\n    default: true\n  }\n} as const\n\nexport type FlexProps = ExtractPublicPropTypes<typeof flexProps>\n\nexport default defineComponent({\n  name: 'Flex',\n  props: flexProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Flex',\n      '-flex',\n      undefined,\n      flexLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Flex', mergedRtlRef, mergedClsPrefixRef)\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      margin: computed<{ horizontal: number, vertical: number }>(() => {\n        const { size } = props\n        if (Array.isArray(size)) {\n          return {\n            horizontal: size[0],\n            vertical: size[1]\n          }\n        }\n        if (typeof size === 'number') {\n          return {\n            horizontal: size,\n            vertical: size\n          }\n        }\n        const {\n          self: { [createKey('gap', size)]: gap }\n        } = themeRef.value\n        const { row, col } = getGap(gap)\n        return {\n          horizontal: depx(col),\n          vertical: depx(row)\n        }\n      })\n    }\n  },\n  render() {\n    const {\n      vertical,\n      reverse,\n      align,\n      inline,\n      justify,\n      margin,\n      wrap,\n      mergedClsPrefix,\n      rtlEnabled\n    } = this\n    const children = flatten(getSlot(this), false)\n    if (!children.length)\n      return null\n    return (\n      <div\n        role=\"none\"\n        class={[\n          `${mergedClsPrefix}-flex`,\n          rtlEnabled && `${mergedClsPrefix}-flex--rtl`\n        ]}\n        style={{\n          display: inline ? 'inline-flex' : 'flex',\n          flexDirection: (() => {\n            if (vertical && !reverse)\n              return 'column'\n            if (vertical && reverse)\n              return 'column-reverse'\n            if (!vertical && reverse)\n              return 'row-reverse'\n            else return 'row'\n          })(),\n          justifyContent: justify,\n          flexWrap: !wrap || vertical ? 'nowrap' : 'wrap',\n          alignItems: align,\n          gap: `${margin.vertical}px ${margin.horizontal}px`\n        }}\n      >\n        {children}\n      </div>\n    )\n  }\n})\n","import type { ButtonGroupTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst buttonGroupDark: ButtonGroupTheme = {\n  name: 'ButtonGroup',\n  common: commonDark\n}\n\nexport default buttonGroupDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport interface ButtonGroupThemeVars {}\n\nconst buttonGroupLight: ButtonGroupTheme = {\n  name: 'ButtonGroup',\n  common: commonLight\n}\n\nexport interface ButtonGroupTheme extends Theme<\n  'ButtonGroup',\n  ButtonGroupThemeVars\n> {}\n\nexport interface ButtonGroupThemeOverrides extends ExtractThemeOverrides<ButtonGroupTheme> {}\n\nexport default buttonGroupLight\n","export default {\n  feedbackPadding: '4px 0 0 2px',\n  feedbackHeightSmall: '24px',\n  feedbackHeightMedium: '24px',\n  feedbackHeightLarge: '26px',\n  feedbackFontSizeSmall: '13px',\n  feedbackFontSizeMedium: '14px',\n  feedbackFontSizeLarge: '14px',\n  labelFontSizeLeftSmall: '14px',\n  labelFontSizeLeftMedium: '14px',\n  labelFontSizeLeftLarge: '15px',\n  labelFontSizeTopSmall: '13px',\n  labelFontSizeTopMedium: '14px',\n  labelFontSizeTopLarge: '14px',\n  labelHeightSmall: '24px',\n  labelHeightMedium: '26px',\n  labelHeightLarge: '28px',\n  labelPaddingVertical: '0 0 6px 2px',\n  labelPaddingHorizontal: '0 12px 0 0',\n  labelTextAlignVertical: 'left',\n  labelTextAlignHorizontal: 'right',\n  labelFontWeight: '400'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    textColor1,\n    errorColor,\n    warningColor,\n    lineHeight,\n    textColor3\n  } = vars\n  return {\n    ...commonVariables,\n    blankHeightSmall: heightSmall,\n    blankHeightMedium: heightMedium,\n    blankHeightLarge: heightLarge,\n    lineHeight,\n    labelTextColor: textColor1,\n    asteriskColor: errorColor,\n    feedbackTextColorError: errorColor,\n    feedbackTextColorWarning: warningColor,\n    feedbackTextColor: textColor3\n  }\n}\n\nexport interface FormThemeVars extends ReturnType<typeof self> {}\n\nconst formLight: FormTheme = {\n  name: 'Form',\n  common: commonLight,\n  self\n}\n\nexport interface FormTheme extends Theme<'Form', FormThemeVars> {}\n\nexport interface FormThemeOverrides extends ExtractThemeOverrides<FormTheme> {}\n\nexport default formLight\n","import type { FormTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst formItemDark: FormTheme = {\n  name: 'Form',\n  common: commonDark,\n  self\n}\n\nexport default formItemDark\n","import type { GradientTextTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst gradientTextDark: GradientTextTheme = {\n  name: 'GradientText',\n  common: commonDark,\n  self(vars) {\n    const {\n      primaryColor,\n      successColor,\n      warningColor,\n      errorColor,\n      infoColor,\n      primaryColorSuppl,\n      successColorSuppl,\n      warningColorSuppl,\n      errorColorSuppl,\n      infoColorSuppl,\n      fontWeightStrong\n    } = vars\n    return {\n      fontWeight: fontWeightStrong,\n      rotate: '252deg',\n      colorStartPrimary: primaryColor,\n      colorEndPrimary: primaryColorSuppl,\n      colorStartInfo: infoColor,\n      colorEndInfo: infoColorSuppl,\n      colorStartWarning: warningColor,\n      colorEndWarning: warningColorSuppl,\n      colorStartError: errorColor,\n      colorEndError: errorColorSuppl,\n      colorStartSuccess: successColor,\n      colorEndSuccess: successColorSuppl\n    }\n  }\n}\n\nexport default gradientTextDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    primaryColor,\n    successColor,\n    warningColor,\n    errorColor,\n    infoColor,\n    fontWeightStrong\n  } = vars\n  return {\n    fontWeight: fontWeightStrong,\n    rotate: '252deg',\n    colorStartPrimary: changeColor(primaryColor, { alpha: 0.6 }),\n    colorEndPrimary: primaryColor,\n    colorStartInfo: changeColor(infoColor, { alpha: 0.6 }),\n    colorEndInfo: infoColor,\n    colorStartWarning: changeColor(warningColor, { alpha: 0.6 }),\n    colorEndWarning: warningColor,\n    colorStartError: changeColor(errorColor, { alpha: 0.6 }),\n    colorEndError: errorColor,\n    colorStartSuccess: changeColor(successColor, { alpha: 0.6 }),\n    colorEndSuccess: successColor\n  }\n}\n\nexport interface GradientTextThemeVars extends ReturnType<typeof self> {}\n\nconst gradientTextLight: GradientTextTheme = {\n  name: 'GradientText',\n  common: commonLight,\n  self\n}\n\nexport interface GradientTextTheme extends Theme<\n  'GradientText',\n  GradientTextThemeVars\n> {}\n\nexport interface GradientTextThemeOverrides extends ExtractThemeOverrides<GradientTextTheme> {}\n\nexport default gradientTextLight\n","import type { InputNumberTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { inputDark } from '../../input/styles'\n\nconst inputNumberDark: InputNumberTheme = {\n  name: 'InputNumber',\n  common: commonDark,\n  peers: {\n    Button: buttonDark,\n    Input: inputDark\n  },\n  self(vars) {\n    const { textColorDisabled } = vars\n    return {\n      iconColorDisabled: textColorDisabled\n    }\n  }\n}\n\nexport default inputNumberDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { inputLight } from '../../input/styles'\n\nfunction self(vars: ThemeCommonVars) {\n  const { textColorDisabled } = vars\n  return {\n    iconColorDisabled: textColorDisabled\n  }\n}\n\nexport interface InputNumberThemeVars extends ReturnType<typeof self> {}\n\nconst inputNumberLight: InputNumberTheme = createTheme({\n  name: 'InputNumber',\n  common: commonLight,\n  peers: {\n    Button: buttonLight,\n    Input: inputLight\n  },\n  self\n})\n\nexport interface InputNumberTheme extends Theme<\n  'InputNumber',\n  InputNumberThemeVars,\n  {\n    Button: ButtonTheme\n    Input: InputTheme\n  }\n> {}\n\nexport interface InputNumberThemeOverrides extends ExtractThemeOverrides<InputNumberTheme> {}\n\nexport default inputNumberLight\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { InputTheme } from '../../input/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { inputLight } from '../../input/styles'\n\nexport function self() {\n  return {\n    inputWidthSmall: '24px',\n    inputWidthMedium: '30px',\n    inputWidthLarge: '36px',\n    gapSmall: '8px',\n    gapMedium: '8px',\n    gapLarge: '8px'\n  }\n}\n\nexport interface InputOtpThemeVars extends ReturnType<typeof self> {}\n\nconst inputOtpLight: InputOtpTheme = createTheme({\n  name: 'InputOtp',\n  common: commonLight,\n  peers: {\n    Input: inputLight\n  },\n  self\n})\n\nexport interface InputOtpTheme extends Theme<\n  'InputOtp',\n  InputOtpThemeVars,\n  {\n    Input: InputTheme\n  }\n> {}\n\nexport interface InputOtpThemeOverrides extends ExtractThemeOverrides<InputOtpTheme> {}\n\nexport default inputOtpLight\n","import type { InputOtpTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { inputDark } from '../../input/styles'\nimport { self } from './light'\n\nconst inputOtpDark: InputOtpTheme = {\n  name: 'InputOtp',\n  common: commonDark,\n  peers: {\n    Input: inputDark\n  },\n  self\n}\n\nexport default inputOtpDark\n","import { cB, cM } from '../../../_utils/cssr'\n\n// --n-gap\nexport default cB('input-otp', [\n  cM('rtl', `\n    direction: rtl;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/input-otp-rtl.cssr'\n\nexport const inputOtpRtl: RtlItem = {\n  name: 'InputOtp',\n  style: rtlStyle\n}\n","import type { LayoutTheme } from './light'\nimport { composite } from 'seemly'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\n\nconst layoutDark: LayoutTheme = {\n  name: 'Layout',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark\n  },\n  self(vars) {\n    const {\n      textColor2,\n      bodyColor,\n      popoverColor,\n      cardColor,\n      dividerColor,\n      scrollbarColor,\n      scrollbarColorHover\n    } = vars\n    return {\n      textColor: textColor2,\n      textColorInverted: textColor2,\n      color: bodyColor,\n      colorEmbedded: bodyColor,\n      headerColor: cardColor,\n      headerColorInverted: cardColor,\n      footerColor: cardColor,\n      footerColorInverted: cardColor,\n      headerBorderColor: dividerColor,\n      headerBorderColorInverted: dividerColor,\n      footerBorderColor: dividerColor,\n      footerBorderColorInverted: dividerColor,\n      siderBorderColor: dividerColor,\n      siderBorderColorInverted: dividerColor,\n      siderColor: cardColor,\n      siderColorInverted: cardColor,\n      siderToggleButtonBorder: '1px solid transparent',\n      siderToggleButtonColor: popoverColor,\n      siderToggleButtonIconColor: textColor2,\n      siderToggleButtonIconColorInverted: textColor2,\n      siderToggleBarColor: composite(bodyColor, scrollbarColor),\n      siderToggleBarColorHover: composite(bodyColor, scrollbarColorHover),\n      __invertScrollbar: 'false'\n    }\n  }\n}\n\nexport default layoutDark\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { composite } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    baseColor,\n    textColor2,\n    bodyColor,\n    cardColor,\n    dividerColor,\n    actionColor,\n    scrollbarColor,\n    scrollbarColorHover,\n    invertedColor\n  } = vars\n  return {\n    textColor: textColor2,\n    textColorInverted: '#FFF',\n    color: bodyColor,\n    colorEmbedded: actionColor,\n    headerColor: cardColor,\n    headerColorInverted: invertedColor,\n    footerColor: actionColor,\n    footerColorInverted: invertedColor,\n    headerBorderColor: dividerColor,\n    headerBorderColorInverted: invertedColor,\n    footerBorderColor: dividerColor,\n    footerBorderColorInverted: invertedColor,\n    siderBorderColor: dividerColor,\n    siderBorderColorInverted: invertedColor,\n    siderColor: cardColor,\n    siderColorInverted: invertedColor,\n    siderToggleButtonBorder: `1px solid ${dividerColor}`,\n    siderToggleButtonColor: baseColor,\n    siderToggleButtonIconColor: textColor2,\n    siderToggleButtonIconColorInverted: textColor2,\n    siderToggleBarColor: composite(bodyColor, scrollbarColor),\n    siderToggleBarColorHover: composite(bodyColor, scrollbarColorHover),\n    // hack for inverted background\n    __invertScrollbar: 'true'\n  }\n}\n\nexport interface LayoutThemeVars extends ReturnType<typeof self> {}\n\nconst layoutLight: LayoutTheme = createTheme({\n  name: 'Layout',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight\n  },\n  self\n})\n\nexport interface LayoutTheme extends Theme<\n  'Layout',\n  LayoutThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n  }\n> {}\n\nexport interface LayoutThemeOverrides extends ExtractThemeOverrides<LayoutTheme> {}\n\nexport default layoutLight\n","import type { RowTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst rowDark: RowTheme = {\n  name: 'Row',\n  common: commonDark\n}\n\nexport default rowDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport interface RowThemeVars {}\n\nconst rowLight: RowTheme = {\n  name: 'Row',\n  common: commonLight\n}\n\nexport interface RowTheme extends Theme<'Row', RowThemeVars> {}\n\nexport interface RowThemeOverrides extends ExtractThemeOverrides<RowTheme> {}\n\nexport default rowLight\n","import { repeat } from 'seemly'\nimport { cB, cM } from '../../../_utils/cssr'\n\nconst positionStyles = repeat(24, null)\n  .map((_, index) => {\n    const prefixIndex = index + 1\n    const percent = `calc(100% / 24 * ${prefixIndex})`\n    return [\n      cM(`${prefixIndex}-span`, {\n        width: percent\n      }),\n      cM(`${prefixIndex}-offset`, {\n        marginLeft: percent\n      }),\n      cM(`${prefixIndex}-push`, {\n        right: percent,\n        left: 'unset'\n      }),\n      cM(`${prefixIndex}-pull`, {\n        left: percent,\n        right: 'unset'\n      })\n    ]\n  })\n\nexport default cB('row', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    cB('col', positionStyles)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const rowRtl: RtlItem = {\n  name: 'Row',\n  style: rtlStyle\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { composite } from 'seemly'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    cardColor,\n    modalColor,\n    popoverColor,\n    dividerColor,\n    borderRadius,\n    fontSize,\n    hoverColor\n  } = vars\n  return {\n    textColor: textColor2,\n    color: cardColor,\n    colorHover: hoverColor,\n    colorModal: modalColor,\n    colorHoverModal: composite(modalColor, hoverColor),\n    colorPopover: popoverColor,\n    colorHoverPopover: composite(popoverColor, hoverColor),\n    borderColor: dividerColor,\n    borderColorModal: composite(modalColor, dividerColor),\n    borderColorPopover: composite(popoverColor, dividerColor),\n    borderRadius,\n    fontSize\n  }\n}\n\nexport interface ListThemeVars extends ReturnType<typeof self> {}\n\nconst listLight: ListTheme = {\n  name: 'List',\n  common: commonLight,\n  self\n}\n\nexport interface ListTheme extends Theme<'List', ListThemeVars> {}\n\nexport interface ListThemeOverrides extends ExtractThemeOverrides<ListTheme> {}\n\nexport default listLight\n","import type { ListTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst listDark: ListTheme = {\n  name: 'List',\n  common: commonDark,\n  self\n}\n\nexport default listDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('list', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `, [\n    cB('list-item', [\n      cE('prefix', `\n        margin-right: 0;\n        margin-left: 20px;\n      `),\n      cE('suffix', `\n        margin-right: 20px;\n        margin-left: 0;\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const listRtl: RtlItem = {\n  name: 'List',\n  style: rtlStyle\n}\n","import type { LogTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { codeDark } from '../../code/styles'\n\nconst logDark: LogTheme = {\n  name: 'Log',\n  common: commonDark,\n  peers: {\n    Scrollbar: scrollbarDark,\n    Code: codeDark\n  },\n  self(vars) {\n    const { textColor2, inputColor, fontSize, primaryColor } = vars\n    return {\n      loaderFontSize: fontSize,\n      loaderTextColor: textColor2,\n      loaderColor: inputColor,\n      loaderBorder: '1px solid #0000',\n      loadingColor: primaryColor\n    }\n  }\n}\n\nexport default logDark\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { CodeTheme } from '../../code/styles'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { codeLight } from '../../code/styles'\n\nfunction self(vars: ThemeCommonVars) {\n  const { textColor2, modalColor, borderColor, fontSize, primaryColor } = vars\n  return {\n    loaderFontSize: fontSize,\n    loaderTextColor: textColor2,\n    loaderColor: modalColor,\n    loaderBorder: `1px solid ${borderColor}`,\n    loadingColor: primaryColor\n  }\n}\n\nexport interface LogThemeVars extends ReturnType<typeof self> {}\n\nconst logLight: LogTheme = createTheme({\n  name: 'Log',\n  common: commonLight,\n  peers: {\n    Scrollbar: scrollbarLight,\n    Code: codeLight\n  },\n  self\n})\n\nexport interface LogTheme extends Theme<\n  'Log',\n  LogThemeVars,\n  {\n    Scrollbar: ScrollbarTheme\n    Code: CodeTheme\n  }\n> {}\n\nexport interface LogThemeOverrides extends ExtractThemeOverrides<LogTheme> {}\n\nexport default logLight\n","import type { MentionTheme } from './light'\nimport { internalSelectMenuDark } from '../../_internal/select-menu/styles'\nimport { commonDark } from '../../_styles/common'\nimport { inputDark } from '../../input/styles'\n\nconst listDark: MentionTheme = {\n  name: 'Mention',\n  common: commonDark,\n  peers: {\n    InternalSelectMenu: internalSelectMenuDark,\n    Input: inputDark\n  },\n  self(vars) {\n    const { boxShadow2 } = vars\n    return {\n      menuBoxShadow: boxShadow2\n    }\n  }\n}\n\nexport default listDark\n","import type { InternalSelectMenuTheme } from '../../_internal/select-menu/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { InputTheme } from '../../input/styles'\nimport { internalSelectMenuLight } from '../../_internal/select-menu/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { inputLight } from '../../input/styles'\n\nfunction self(vars: ThemeCommonVars) {\n  const { boxShadow2 } = vars\n  return {\n    menuBoxShadow: boxShadow2\n  }\n}\n\nconst mentionLight: MentionTheme = createTheme({\n  name: 'Mention',\n  common: commonLight,\n  peers: {\n    InternalSelectMenu: internalSelectMenuLight,\n    Input: inputLight\n  },\n  self\n})\n\nexport interface MentionTheme extends Theme<\n  'Mention',\n  MentionThemeVars,\n  {\n    InternalSelectMenu: InternalSelectMenuTheme\n    Input: InputTheme\n  }\n> {}\n\nexport interface MentionThemeOverrides extends ExtractThemeOverrides<MentionTheme> {}\n\nexport default mentionLight\nexport interface MentionThemeVars extends ReturnType<typeof self> {}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { DropdownTheme } from '../../dropdown/styles'\nimport type { TooltipTheme } from '../../tooltip/styles'\nimport { changeColor } from 'seemly'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { dropdownLight } from '../../dropdown/styles'\nimport { tooltipLight } from '../../tooltip/styles'\n\nexport function createPartialInvertedVars(\n  color: string,\n  activeItemColor: string,\n  activeTextColor: string,\n  groupTextColor: string\n) {\n  return {\n    itemColorHoverInverted: '#0000',\n    itemColorActiveInverted: activeItemColor,\n    itemColorActiveHoverInverted: activeItemColor,\n    itemColorActiveCollapsedInverted: activeItemColor,\n    itemTextColorInverted: color,\n    itemTextColorHoverInverted: activeTextColor,\n    itemTextColorChildActiveInverted: activeTextColor,\n    itemTextColorChildActiveHoverInverted: activeTextColor,\n    itemTextColorActiveInverted: activeTextColor,\n    itemTextColorActiveHoverInverted: activeTextColor,\n    itemTextColorHorizontalInverted: color,\n    itemTextColorHoverHorizontalInverted: activeTextColor,\n    itemTextColorChildActiveHorizontalInverted: activeTextColor,\n    itemTextColorChildActiveHoverHorizontalInverted: activeTextColor,\n    itemTextColorActiveHorizontalInverted: activeTextColor,\n    itemTextColorActiveHoverHorizontalInverted: activeTextColor,\n    itemIconColorInverted: color,\n    itemIconColorHoverInverted: activeTextColor,\n    itemIconColorActiveInverted: activeTextColor,\n    itemIconColorActiveHoverInverted: activeTextColor,\n    itemIconColorChildActiveInverted: activeTextColor,\n    itemIconColorChildActiveHoverInverted: activeTextColor,\n    itemIconColorCollapsedInverted: color,\n    itemIconColorHorizontalInverted: color,\n    itemIconColorHoverHorizontalInverted: activeTextColor,\n    itemIconColorActiveHorizontalInverted: activeTextColor,\n    itemIconColorActiveHoverHorizontalInverted: activeTextColor,\n    itemIconColorChildActiveHorizontalInverted: activeTextColor,\n    itemIconColorChildActiveHoverHorizontalInverted: activeTextColor,\n    arrowColorInverted: color,\n    arrowColorHoverInverted: activeTextColor,\n    arrowColorActiveInverted: activeTextColor,\n    arrowColorActiveHoverInverted: activeTextColor,\n    arrowColorChildActiveInverted: activeTextColor,\n    arrowColorChildActiveHoverInverted: activeTextColor,\n    groupTextColorInverted: groupTextColor\n  }\n}\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    textColor3,\n    primaryColor,\n    textColor2,\n    textColor1,\n    fontSize,\n    dividerColor,\n    hoverColor,\n    primaryColorHover\n  } = vars\n  return {\n    borderRadius,\n    color: '#0000',\n    groupTextColor: textColor3,\n    itemColorHover: hoverColor,\n    itemColorActive: changeColor(primaryColor, { alpha: 0.1 }),\n    itemColorActiveHover: changeColor(primaryColor, { alpha: 0.1 }),\n    itemColorActiveCollapsed: changeColor(primaryColor, { alpha: 0.1 }),\n    itemTextColor: textColor2,\n    itemTextColorHover: textColor2,\n    itemTextColorActive: primaryColor,\n    itemTextColorActiveHover: primaryColor,\n    itemTextColorChildActive: primaryColor,\n    itemTextColorChildActiveHover: primaryColor,\n    itemTextColorHorizontal: textColor2,\n    itemTextColorHoverHorizontal: primaryColorHover,\n    itemTextColorActiveHorizontal: primaryColor,\n    itemTextColorActiveHoverHorizontal: primaryColor,\n    itemTextColorChildActiveHorizontal: primaryColor,\n    itemTextColorChildActiveHoverHorizontal: primaryColor,\n    itemIconColor: textColor1,\n    itemIconColorHover: textColor1,\n    itemIconColorActive: primaryColor,\n    itemIconColorActiveHover: primaryColor,\n    itemIconColorChildActive: primaryColor,\n    itemIconColorChildActiveHover: primaryColor,\n    itemIconColorCollapsed: textColor1,\n    itemIconColorHorizontal: textColor1,\n    itemIconColorHoverHorizontal: primaryColorHover,\n    itemIconColorActiveHorizontal: primaryColor,\n    itemIconColorActiveHoverHorizontal: primaryColor,\n    itemIconColorChildActiveHorizontal: primaryColor,\n    itemIconColorChildActiveHoverHorizontal: primaryColor,\n    itemHeight: '42px',\n    arrowColor: textColor2,\n    arrowColorHover: textColor2,\n    arrowColorActive: primaryColor,\n    arrowColorActiveHover: primaryColor,\n    arrowColorChildActive: primaryColor,\n    arrowColorChildActiveHover: primaryColor,\n    colorInverted: '#0000',\n    borderColorHorizontal: '#0000',\n    fontSize,\n    dividerColor,\n    ...createPartialInvertedVars('#BBB', primaryColor, '#FFF', '#AAA')\n  }\n}\n\nexport interface MenuThemeVars extends ReturnType<typeof self> {}\n\nconst menuLight: MenuTheme = createTheme({\n  name: 'Menu',\n  common: commonLight,\n  peers: {\n    Tooltip: tooltipLight,\n    Dropdown: dropdownLight\n  },\n  self\n})\n\nexport interface MenuTheme extends Theme<\n  'Menu',\n  MenuThemeVars,\n  {\n    Tooltip: TooltipTheme\n    Dropdown: DropdownTheme\n  }\n> {}\n\nexport interface MenuThemeOverrides extends ExtractThemeOverrides<MenuTheme> {}\n\nexport default menuLight\n","import type { MenuTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport { dropdownDark } from '../../dropdown/styles'\nimport { tooltipDark } from '../../tooltip/styles'\nimport { self } from './light'\n\nconst menuDark: MenuTheme = {\n  name: 'Menu',\n  common: commonDark,\n  peers: {\n    Tooltip: tooltipDark,\n    Dropdown: dropdownDark\n  },\n  self(vars) {\n    const { primaryColor, primaryColorSuppl } = vars\n    const commonSelf = self(vars)\n    commonSelf.itemColorActive = changeColor(primaryColor, { alpha: 0.15 })\n    commonSelf.itemColorActiveHover = changeColor(primaryColor, { alpha: 0.15 })\n    commonSelf.itemColorActiveCollapsed = changeColor(primaryColor, {\n      alpha: 0.15\n    })\n    commonSelf.itemColorActiveInverted = primaryColorSuppl\n    commonSelf.itemColorActiveHoverInverted = primaryColorSuppl\n    commonSelf.itemColorActiveCollapsedInverted = primaryColorSuppl\n    return commonSelf\n  }\n}\n\nexport default menuDark\n","export default {\n  titleFontSize: '18px',\n  backSize: '22px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport common from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor1,\n    textColor2,\n    textColor3,\n    fontSize,\n    fontWeightStrong,\n    primaryColorHover,\n    primaryColorPressed\n  } = vars\n  return {\n    ...common,\n    titleFontWeight: fontWeightStrong,\n    fontSize,\n    titleTextColor: textColor1,\n    backColor: textColor2,\n    backColorHover: primaryColorHover,\n    backColorPressed: primaryColorPressed,\n    subtitleTextColor: textColor3\n  }\n}\n\nexport const pageHeaderLight: PageHeaderTheme = createTheme({\n  name: 'PageHeader',\n  common: commonLight,\n  self\n})\n\nexport interface PageHeaderThemeVars extends ReturnType<typeof self> {}\n\nexport interface PageHeaderTheme extends Theme<\n  'PageHeader',\n  PageHeaderThemeVars\n> {}\n\nexport interface PageHeaderThemeOverrides extends ExtractThemeOverrides<PageHeaderTheme> {}\n","import type { PageHeaderTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nexport const pageHeaderDark: PageHeaderTheme = {\n  name: 'PageHeader',\n  common: commonDark,\n  self\n}\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('page-header-wrapper', [\n  cM('rtl', [\n    cB('page-header-header', `\n      direction: rtl;\n    `),\n    cB('page-header', `\n      direction: rtl;\n    `, [\n      cE('back', `\n        margin-right: 0;\n        margin-left: 16px;\n      `),\n      cE('avatar', `\n        margin-right: 0;\n        margin-left: 12px;\n      `),\n      cE('title', `\n        margin-right: 0;\n        margin-left: 16px;\n      `)\n    ]),\n    cB('page-header-content', `\n      direction: rtl;\n    `),\n    cB('page-header-footer', `\n      direction: rtl;\n    `)\n  ])\n])\n","import rtlStyle from '../src/styles/rtl.cssr'\n\nexport default {\n  name: 'PageHeader',\n  style: rtlStyle\n}\n","export default {\n  iconSize: '22px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { PopoverTheme } from '../../popover/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { popoverLight } from '../../popover/styles'\n\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { fontSize, warningColor } = vars\n  return {\n    ...commonVars,\n    fontSize,\n    iconColor: warningColor\n  }\n}\n\nexport interface PopconfirmThemeVars extends ReturnType<typeof self> {}\n\nconst popconfirmLight: PopconfirmTheme = createTheme({\n  name: 'Popconfirm',\n  common: commonLight,\n  peers: {\n    Button: buttonLight,\n    Popover: popoverLight\n  },\n  self\n})\n\nexport interface PopconfirmTheme extends Theme<\n  'Popconfirm',\n  PopconfirmThemeVars,\n  {\n    Button: ButtonTheme\n    Popover: PopoverTheme\n  }\n> {}\n\nexport interface PopconfirmThemeOverrides extends ExtractThemeOverrides<PopconfirmTheme> {}\n\nexport default popconfirmLight\n","import type { PopconfirmTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { popoverDark } from '../../popover/styles'\nimport { self } from './light'\n\nconst popconfirmDark: PopconfirmTheme = {\n  name: 'Popconfirm',\n  common: commonDark,\n  peers: {\n    Button: buttonDark,\n    Popover: popoverDark\n  },\n  self\n}\n\nexport default popconfirmDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    infoColor,\n    successColor,\n    warningColor,\n    errorColor,\n    textColor2,\n    progressRailColor,\n    fontSize,\n    fontWeight\n  } = vars\n  return {\n    fontSize,\n    fontSizeCircle: '28px',\n    fontWeightCircle: fontWeight,\n    railColor: progressRailColor,\n    railHeight: '8px',\n    iconSizeCircle: '36px',\n    iconSizeLine: '18px',\n    iconColor: infoColor,\n    iconColorInfo: infoColor,\n    iconColorSuccess: successColor,\n    iconColorWarning: warningColor,\n    iconColorError: errorColor,\n    textColorCircle: textColor2,\n    textColorLineInner: 'rgb(255, 255, 255)',\n    textColorLineOuter: textColor2,\n    fillColor: infoColor,\n    fillColorInfo: infoColor,\n    fillColorSuccess: successColor,\n    fillColorWarning: warningColor,\n    fillColorError: errorColor,\n    lineBgProcessing:\n      'linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)'\n  }\n}\n\nexport interface ProgressThemeVars extends ReturnType<typeof self> {}\n\nconst progressLight: ProgressTheme = {\n  name: 'Progress',\n  common: commonLight,\n  self\n}\n\nexport interface ProgressTheme extends Theme<'Progress', ProgressThemeVars> {}\n\nexport interface ProgressThemeOverrides extends ExtractThemeOverrides<ProgressTheme> {}\n\nexport default progressLight\n","import type { ProgressTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst progressDark: ProgressTheme = {\n  name: 'Progress',\n  common: commonDark,\n  self(vars) {\n    const commonSelf = self(vars)\n    commonSelf.textColorLineInner = 'rgb(0, 0, 0)'\n    commonSelf.lineBgProcessing\n      = 'linear-gradient(90deg, rgba(255, 255, 255, .3) 0%, rgba(255, 255, 255, .5) 100%)'\n    return commonSelf\n  }\n}\n\nexport default progressDark\n","import type { RateTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst rateDark: RateTheme = {\n  name: 'Rate',\n  common: commonDark,\n  self(vars) {\n    const { railColor } = vars\n    return {\n      itemColor: railColor,\n      itemColorActive: '#CCAA33',\n      itemSize: '20px',\n      sizeSmall: '16px',\n      sizeMedium: '20px',\n      sizeLarge: '24px'\n    }\n  }\n}\n\nexport default rateDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { railColor } = vars\n  return {\n    itemColor: railColor,\n    itemColorActive: '#FFCC33',\n    sizeSmall: '16px',\n    sizeMedium: '20px',\n    sizeLarge: '24px'\n  }\n}\n\nexport interface RateThemeVars extends ReturnType<typeof self> {}\n\nconst themeLight: RateTheme = {\n  name: 'Rate',\n  common: commonLight,\n  self\n}\n\nexport interface RateTheme extends Theme<'Rate', RateThemeVars> {}\n\nexport interface RateThemeOverrides extends ExtractThemeOverrides<RateTheme> {}\n\nexport default themeLight\n","export default {\n  titleFontSizeSmall: '26px',\n  titleFontSizeMedium: '32px',\n  titleFontSizeLarge: '40px',\n  titleFontSizeHuge: '48px',\n  fontSizeSmall: '14px',\n  fontSizeMedium: '14px',\n  fontSizeLarge: '15px',\n  fontSizeHuge: '16px',\n  iconSizeSmall: '64px',\n  iconSizeMedium: '80px',\n  iconSizeLarge: '100px',\n  iconSizeHuge: '125px',\n  iconColor418: undefined,\n  iconColor404: undefined,\n  iconColor403: undefined,\n  iconColor500: undefined\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    textColor1,\n    errorColor,\n    successColor,\n    infoColor,\n    warningColor,\n    lineHeight,\n    fontWeightStrong\n  } = vars\n  return {\n    ...commonVariables,\n    lineHeight,\n    titleFontWeight: fontWeightStrong,\n    titleTextColor: textColor1,\n    textColor: textColor2,\n    iconColorError: errorColor,\n    iconColorSuccess: successColor,\n    iconColorInfo: infoColor,\n    iconColorWarning: warningColor\n  }\n}\n\nexport interface ResultThemeVars extends ReturnType<typeof self> {}\n\nconst resultLight: ResultTheme = {\n  name: 'Result',\n  common: commonLight,\n  self\n}\n\nexport interface ResultTheme extends Theme<'Result', ResultThemeVars> {}\n\nexport interface ResultThemeOverrides extends ExtractThemeOverrides<ResultTheme> {}\n\nexport default resultLight\n","import type { ResultTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst resultDark: ResultTheme = {\n  name: 'Result',\n  common: commonDark,\n  self\n}\n\nexport default resultDark\n","export default {\n  railHeight: '4px',\n  railWidthVertical: '4px',\n  handleSize: '18px',\n  dotHeight: '8px',\n  dotWidth: '8px',\n  dotBorderRadius: '4px'\n}\n","import type { SliderTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport sizeVariables from './_common'\n\nconst sliderDark: SliderTheme = {\n  name: 'Slider',\n  common: commonDark,\n  self(vars) {\n    const boxShadow = '0 2px 8px 0 rgba(0, 0, 0, 0.12)'\n    const {\n      railColor,\n      modalColor,\n      primaryColorSuppl,\n      popoverColor,\n      textColor2,\n      cardColor,\n      borderRadius,\n      fontSize,\n      opacityDisabled\n    } = vars\n    return {\n      ...sizeVariables,\n      fontSize,\n      markFontSize: fontSize,\n      railColor,\n      railColorHover: railColor,\n      fillColor: primaryColorSuppl,\n      fillColorHover: primaryColorSuppl,\n      opacityDisabled,\n      handleColor: '#FFF',\n      dotColor: cardColor,\n      dotColorModal: modalColor,\n      dotColorPopover: popoverColor,\n      handleBoxShadow: '0px 2px 4px 0 rgba(0, 0, 0, 0.4)',\n      handleBoxShadowHover: '0px 2px 4px 0 rgba(0, 0, 0, 0.4)',\n      handleBoxShadowActive: '0px 2px 4px 0 rgba(0, 0, 0, 0.4)',\n      handleBoxShadowFocus: '0px 2px 4px 0 rgba(0, 0, 0, 0.4)',\n      indicatorColor: popoverColor,\n      indicatorBoxShadow: boxShadow,\n      indicatorTextColor: textColor2,\n      indicatorBorderRadius: borderRadius,\n      dotBorder: `2px solid ${railColor}`,\n      dotBorderActive: `2px solid ${primaryColorSuppl}`,\n      dotBoxShadow: ''\n    }\n  }\n}\n\nexport default sliderDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport sizeVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const indicatorColor = 'rgba(0, 0, 0, .85)'\n  const boxShadow = '0 2px 8px 0 rgba(0, 0, 0, 0.12)'\n  const {\n    railColor,\n    primaryColor,\n    baseColor,\n    cardColor,\n    modalColor,\n    popoverColor,\n    borderRadius,\n    fontSize,\n    opacityDisabled\n  } = vars\n\n  return {\n    ...sizeVariables,\n    fontSize,\n    markFontSize: fontSize,\n    railColor,\n    railColorHover: railColor,\n    fillColor: primaryColor,\n    fillColorHover: primaryColor,\n    opacityDisabled,\n    handleColor: '#FFF',\n    dotColor: cardColor,\n    dotColorModal: modalColor,\n    dotColorPopover: popoverColor,\n    handleBoxShadow:\n      '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n    handleBoxShadowHover:\n      '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n    handleBoxShadowActive:\n      '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n    handleBoxShadowFocus:\n      '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n    indicatorColor,\n    indicatorBoxShadow: boxShadow,\n    indicatorTextColor: baseColor,\n    indicatorBorderRadius: borderRadius,\n    dotBorder: `2px solid ${railColor}`,\n    dotBorderActive: `2px solid ${primaryColor}`,\n    dotBoxShadow: ''\n  }\n}\n\nexport interface SliderThemeVars extends ReturnType<typeof self> {}\n\nconst sliderLight: SliderTheme = {\n  name: 'Slider',\n  common: commonLight,\n  self\n}\n\nexport interface SliderTheme extends Theme<'Slider', SliderThemeVars> {}\n\nexport interface SliderThemeOverrides extends ExtractThemeOverrides<SliderTheme> {}\n\nexport default sliderLight\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    opacityDisabled,\n    heightTiny,\n    heightSmall,\n    heightMedium,\n    heightLarge,\n    heightHuge,\n    primaryColor,\n    fontSize\n  } = vars\n  return {\n    fontSize,\n    textColor: primaryColor,\n    sizeTiny: heightTiny,\n    sizeSmall: heightSmall,\n    sizeMedium: heightMedium,\n    sizeLarge: heightLarge,\n    sizeHuge: heightHuge,\n    color: primaryColor,\n    opacitySpinning: opacityDisabled\n  }\n}\n\nexport interface SpinThemeVars extends ReturnType<typeof self> {}\n\nconst spinLight: SpinTheme = {\n  name: 'Spin',\n  common: commonLight,\n  self\n}\n\nexport interface SpinTheme extends Theme<'Spin', SpinThemeVars> {}\n\nexport interface SpinThemeOverrides extends ExtractThemeOverrides<SpinTheme> {}\n\nexport default spinLight\n","import type { SpinTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst spinDark: SpinTheme = {\n  name: 'Spin',\n  common: commonDark,\n  self\n}\n\nexport default spinDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { textColor2, textColor3, fontSize, fontWeight } = vars\n  return {\n    labelFontSize: fontSize,\n    labelFontWeight: fontWeight,\n    valueFontWeight: fontWeight,\n    valueFontSize: '24px',\n    labelTextColor: textColor3,\n    valuePrefixTextColor: textColor2,\n    valueSuffixTextColor: textColor2,\n    valueTextColor: textColor2\n  }\n}\n\nexport interface StatisticThemeVars extends ReturnType<typeof self> {}\n\nconst statisticLight: StatisticTheme = {\n  name: 'Statistic',\n  common: commonLight,\n  self\n}\n\nexport interface StatisticTheme extends Theme<\n  'Statistic',\n  StatisticThemeVars\n> {}\n\nexport interface StatisticThemeOverrides extends ExtractThemeOverrides<StatisticTheme> {}\n\nexport default statisticLight\n","import type { StatisticTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst statisticDark: StatisticTheme = {\n  name: 'Statistic',\n  common: commonDark,\n  self\n}\n\nexport default statisticDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('statistic', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `, [\n    cB('statistic-value', [\n      cE('prefix', `\n        margin: 0 0 0 4px;\n      `),\n      cE('suffix', `\n        margin: 0 4px 0 0;\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const statisticRtl: RtlItem = {\n  name: 'Statistic',\n  style: rtlStyle\n}\n","export default {\n  stepHeaderFontSizeSmall: '14px',\n  stepHeaderFontSizeMedium: '16px',\n  indicatorIndexFontSizeSmall: '14px',\n  indicatorIndexFontSizeMedium: '16px',\n  indicatorSizeSmall: '22px',\n  indicatorSizeMedium: '28px',\n  indicatorIconSizeSmall: '14px',\n  indicatorIconSizeMedium: '18px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    fontWeightStrong,\n    baseColor,\n    textColorDisabled,\n    primaryColor,\n    errorColor,\n    textColor1,\n    textColor2\n  } = vars\n  return {\n    ...commonVariables,\n    stepHeaderFontWeight: fontWeightStrong,\n    indicatorTextColorProcess: baseColor,\n    indicatorTextColorWait: textColorDisabled,\n    indicatorTextColorFinish: primaryColor,\n    indicatorTextColorError: errorColor,\n    indicatorBorderColorProcess: primaryColor,\n    indicatorBorderColorWait: textColorDisabled,\n    indicatorBorderColorFinish: primaryColor,\n    indicatorBorderColorError: errorColor,\n    indicatorColorProcess: primaryColor,\n    indicatorColorWait: '#0000',\n    indicatorColorFinish: '#0000',\n    indicatorColorError: '#0000',\n    splitorColorProcess: textColorDisabled,\n    splitorColorWait: textColorDisabled,\n    splitorColorFinish: primaryColor,\n    splitorColorError: textColorDisabled,\n    headerTextColorProcess: textColor1,\n    headerTextColorWait: textColorDisabled,\n    headerTextColorFinish: textColorDisabled,\n    headerTextColorError: errorColor,\n    descriptionTextColorProcess: textColor2,\n    descriptionTextColorWait: textColorDisabled,\n    descriptionTextColorFinish: textColorDisabled,\n    descriptionTextColorError: errorColor\n  }\n}\n\nexport interface StepsThemeVars extends ReturnType<typeof self> {}\n\nconst stepsLight: StepsTheme = {\n  name: 'Steps',\n  common: commonLight,\n  self\n}\n\nexport interface StepsTheme extends Theme<'Steps', StepsThemeVars> {}\n\nexport interface StepsThemeOverrides extends ExtractThemeOverrides<StepsTheme> {}\n\nexport default stepsLight\n","import type { StepsTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst stepsDark: StepsTheme = {\n  name: 'Steps',\n  common: commonDark,\n  self\n}\n\nexport default stepsDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('steps', [\n    cM('rtl', `\n      direction: rtl;\n      text-align: right;\n    `, [\n      cB('step-content', [\n        cB('step-content-header', `\n          margin-left: 0;\n          margin-right: 9px;\n        `),\n        cE('description', `\n          margin-left: 0;\n          margin-right: 9px;\n        `)\n      ]),\n      cM('vertical', [\n        c('>', [\n          cB('step', [\n            c('>', [\n              cB('step-indicator', [\n                c('>', [\n                  cB('step-splitor', `\n                    left: unset;\n                    right: calc(var(--n-indicator-size) / 2);\n                  `)\n                ])\n              ])\n            ])\n          ])\n        ])\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const stepsRtl: RtlItem = {\n  name: 'Steps',\n  style: rtlStyle\n}\n","export default {\n  buttonHeightSmall: '14px',\n  buttonHeightMedium: '18px',\n  buttonHeightLarge: '22px',\n  buttonWidthSmall: '14px',\n  buttonWidthMedium: '18px',\n  buttonWidthLarge: '22px',\n  buttonWidthPressedSmall: '20px',\n  buttonWidthPressedMedium: '24px',\n  buttonWidthPressedLarge: '28px',\n  railHeightSmall: '18px',\n  railHeightMedium: '22px',\n  railHeightLarge: '26px',\n  railWidthSmall: '32px',\n  railWidthMedium: '40px',\n  railWidthLarge: '48px'\n}\n","import type { SwitchTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport commonVars from './_common'\n\nconst switchDark: SwitchTheme = {\n  name: 'Switch',\n  common: commonDark,\n  self(vars) {\n    const {\n      primaryColorSuppl,\n      opacityDisabled,\n      borderRadius,\n      primaryColor,\n      textColor2,\n      baseColor\n    } = vars\n    const railOverlayColor = 'rgba(255, 255, 255, .20)'\n    return {\n      ...commonVars,\n      iconColor: baseColor,\n      textColor: textColor2,\n      loadingColor: primaryColorSuppl,\n      opacityDisabled,\n      railColor: railOverlayColor,\n      railColorActive: primaryColorSuppl,\n      buttonBoxShadow: '0px 2px 4px 0 rgba(0, 0, 0, 0.4)',\n      buttonColor: '#FFF',\n      railBorderRadiusSmall: borderRadius,\n      railBorderRadiusMedium: borderRadius,\n      railBorderRadiusLarge: borderRadius,\n      buttonBorderRadiusSmall: borderRadius,\n      buttonBorderRadiusMedium: borderRadius,\n      buttonBorderRadiusLarge: borderRadius,\n      boxShadowFocus: `0 0 8px 0 ${changeColor(primaryColor, { alpha: 0.3 })}`\n    }\n  }\n}\n\nexport default switchDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { changeColor } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { primaryColor, opacityDisabled, borderRadius, textColor3 } = vars\n  const railOverlayColor = 'rgba(0, 0, 0, .14)'\n  return {\n    ...commonVars,\n    iconColor: textColor3,\n    textColor: 'white',\n    loadingColor: primaryColor,\n    opacityDisabled,\n    railColor: railOverlayColor,\n    railColorActive: primaryColor,\n    buttonBoxShadow:\n      '0 1px 4px 0 rgba(0, 0, 0, 0.3), inset 0 0 1px 0 rgba(0, 0, 0, 0.05)',\n    buttonColor: '#FFF',\n    railBorderRadiusSmall: borderRadius,\n    railBorderRadiusMedium: borderRadius,\n    railBorderRadiusLarge: borderRadius,\n    buttonBorderRadiusSmall: borderRadius,\n    buttonBorderRadiusMedium: borderRadius,\n    buttonBorderRadiusLarge: borderRadius,\n    boxShadowFocus: `0 0 0 2px ${changeColor(primaryColor, { alpha: 0.2 })}`\n  }\n}\n\nexport interface SwitchThemeVars extends ReturnType<typeof self> {}\n\nconst switchLight: SwitchTheme = {\n  name: 'Switch',\n  common: commonLight,\n  self\n}\n\nexport interface SwitchTheme extends Theme<'Switch', SwitchThemeVars> {}\n\nexport interface SwitchThemeOverrides extends ExtractThemeOverrides<SwitchTheme> {}\n\nexport default switchLight\n","export default {\n  thPaddingSmall: '6px',\n  thPaddingMedium: '12px',\n  thPaddingLarge: '12px',\n  tdPaddingSmall: '6px',\n  tdPaddingMedium: '12px',\n  tdPaddingLarge: '12px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { composite } from 'seemly'\nimport { commonLight } from '../../_styles/common'\nimport sizeVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    dividerColor,\n    cardColor,\n    modalColor,\n    popoverColor,\n    tableHeaderColor,\n    tableColorStriped,\n    textColor1,\n    textColor2,\n    borderRadius,\n    fontWeightStrong,\n    lineHeight,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge\n  } = vars\n  return {\n    ...sizeVariables,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    lineHeight,\n    borderRadius,\n    borderColor: composite(cardColor, dividerColor),\n    borderColorModal: composite(modalColor, dividerColor),\n    borderColorPopover: composite(popoverColor, dividerColor),\n    tdColor: cardColor,\n    tdColorModal: modalColor,\n    tdColorPopover: popoverColor,\n    tdColorStriped: composite(cardColor, tableColorStriped),\n    tdColorStripedModal: composite(modalColor, tableColorStriped),\n    tdColorStripedPopover: composite(popoverColor, tableColorStriped),\n    thColor: composite(cardColor, tableHeaderColor),\n    thColorModal: composite(modalColor, tableHeaderColor),\n    thColorPopover: composite(popoverColor, tableHeaderColor),\n    thTextColor: textColor1,\n    tdTextColor: textColor2,\n    thFontWeight: fontWeightStrong\n  }\n}\n\nexport interface TableThemeVars extends ReturnType<typeof self> {}\n\nconst tableLight: TableTheme = {\n  name: 'Table',\n  common: commonLight,\n  self\n}\n\nexport interface TableTheme extends Theme<'Table', TableThemeVars> {}\n\nexport interface TableThemeOverrides extends ExtractThemeOverrides<TableTheme> {}\n\nexport default tableLight\n","import type { TableTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst tableDark: TableTheme = {\n  name: 'Table',\n  common: commonDark,\n  self\n}\n\nexport default tableDark\n","import { c, cB, cM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('table', [\n    cM('rtl', `\n      direction: rtl;\n      text-align: right;\n    `, [\n      c('th, td', `\n        border-right: 0px solid var(--n-merged-border-color);\n        border-left: 1px solid var(--n-merged-border-color);\n      `, [\n        c('&:last-child', `\n          border-left: none;\n          border-right: inherit;\n        `)\n      ]),\n      cM('single-line', [\n        c('th, td', `\n          border-left: 0px solid var(--n-merged-border-color);\n        `)\n      ])\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const tableRtl: RtlItem = {\n  name: 'Table',\n  style: rtlStyle\n}\n","export default {\n  tabFontSizeSmall: '14px',\n  tabFontSizeMedium: '14px',\n  tabFontSizeLarge: '16px',\n  tabGapSmallLine: '36px',\n  tabGapMediumLine: '36px',\n  tabGapLargeLine: '36px',\n  tabGapSmallLineVertical: '8px',\n  tabGapMediumLineVertical: '8px',\n  tabGapLargeLineVertical: '8px',\n  tabPaddingSmallLine: '6px 0',\n  tabPaddingMediumLine: '10px 0',\n  tabPaddingLargeLine: '14px 0',\n  tabPaddingVerticalSmallLine: '6px 12px',\n  tabPaddingVerticalMediumLine: '8px 16px',\n  tabPaddingVerticalLargeLine: '10px 20px',\n  tabGapSmallBar: '36px',\n  tabGapMediumBar: '36px',\n  tabGapLargeBar: '36px',\n  tabGapSmallBarVertical: '8px',\n  tabGapMediumBarVertical: '8px',\n  tabGapLargeBarVertical: '8px',\n  tabPaddingSmallBar: '4px 0',\n  tabPaddingMediumBar: '6px 0',\n  tabPaddingLargeBar: '10px 0',\n  tabPaddingVerticalSmallBar: '6px 12px',\n  tabPaddingVerticalMediumBar: '8px 16px',\n  tabPaddingVerticalLargeBar: '10px 20px',\n  tabGapSmallCard: '4px',\n  tabGapMediumCard: '4px',\n  tabGapLargeCard: '4px',\n  tabGapSmallCardVertical: '4px',\n  tabGapMediumCardVertical: '4px',\n  tabGapLargeCardVertical: '4px',\n  tabPaddingSmallCard: '8px 16px',\n  tabPaddingMediumCard: '10px 20px',\n  tabPaddingLargeCard: '12px 24px',\n  tabPaddingSmallSegment: '4px 0',\n  tabPaddingMediumSegment: '6px 0',\n  tabPaddingLargeSegment: '8px 0',\n  tabPaddingVerticalLargeSegment: '0 8px',\n  tabPaddingVerticalSmallCard: '8px 12px',\n  tabPaddingVerticalMediumCard: '10px 16px',\n  tabPaddingVerticalLargeCard: '12px 20px',\n  tabPaddingVerticalSmallSegment: '0 4px',\n  tabPaddingVerticalMediumSegment: '0 6px',\n  tabGapSmallSegment: '0',\n  tabGapMediumSegment: '0',\n  tabGapLargeSegment: '0',\n  tabGapSmallSegmentVertical: '0',\n  tabGapMediumSegmentVertical: '0',\n  tabGapLargeSegmentVertical: '0',\n  panePaddingSmall: '8px 0 0 0',\n  panePaddingMedium: '12px 0 0 0',\n  panePaddingLarge: '16px 0 0 0',\n  closeSize: '18px',\n  closeIconSize: '14px'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport sizeVariables from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    textColor2,\n    primaryColor,\n    textColorDisabled,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    tabColor,\n    baseColor,\n    dividerColor,\n    fontWeight,\n    textColor1,\n    borderRadius,\n    fontSize,\n    fontWeightStrong\n  } = vars\n  return {\n    ...sizeVariables,\n    colorSegment: tabColor,\n    tabFontSizeCard: fontSize,\n    tabTextColorLine: textColor1,\n    tabTextColorActiveLine: primaryColor,\n    tabTextColorHoverLine: primaryColor,\n    tabTextColorDisabledLine: textColorDisabled,\n    tabTextColorSegment: textColor1,\n    tabTextColorActiveSegment: textColor2,\n    tabTextColorHoverSegment: textColor2,\n    tabTextColorDisabledSegment: textColorDisabled,\n    tabTextColorBar: textColor1,\n    tabTextColorActiveBar: primaryColor,\n    tabTextColorHoverBar: primaryColor,\n    tabTextColorDisabledBar: textColorDisabled,\n    tabTextColorCard: textColor1,\n    tabTextColorHoverCard: textColor1,\n    tabTextColorActiveCard: primaryColor,\n    tabTextColorDisabledCard: textColorDisabled,\n    barColor: primaryColor,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed,\n    closeColorHover,\n    closeColorPressed,\n    closeBorderRadius: borderRadius,\n    tabColor,\n    tabColorSegment: baseColor,\n    tabBorderColor: dividerColor,\n    tabFontWeightActive: fontWeight,\n    tabFontWeight: fontWeight,\n    tabBorderRadius: borderRadius,\n    paneTextColor: textColor2,\n    fontWeightStrong\n  }\n}\n\nexport interface TabsThemeVars extends ReturnType<typeof self> {}\n\nconst tabsLight: TabsTheme = createTheme({\n  name: 'Tabs',\n  common: commonLight,\n  peers: {\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface TabsTheme extends Theme<\n  'Tabs',\n  TabsThemeVars,\n  {\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface TabsThemeOverrides extends ExtractThemeOverrides<TabsTheme> {}\n\nexport default tabsLight\n","import type { TabsTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { self } from './light'\n\nconst tabsDark: TabsTheme = {\n  name: 'Tabs',\n  common: commonDark,\n  peers: {\n    Button: buttonDark\n  },\n  self(vars) {\n    const commonSelf = self(vars)\n    const { inputColor } = vars\n    commonSelf.colorSegment = inputColor\n    commonSelf.tabColorSegment = inputColor\n    return commonSelf\n  }\n}\n\nexport default tabsDark\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('tabs', [\n  cM('rtl', `\n    direction: rtl;\n  `, [\n    // Keep physical left/right placement under direction: rtl\n    cM('left', `\n      flex-direction: row-reverse;\n    `),\n    cM('right', `\n      flex-direction: row;\n    `),\n    cB('tabs-nav', [\n      cE('prefix', `\n        padding-left: 16px;\n        padding-right: 0;\n      `),\n      cE('suffix', `\n        padding-right: 16px;\n        padding-left: 0;\n      `)\n    ]),\n    cM('top, bottom', [\n      c('>', [\n        cB('tabs-nav', [\n          cB('tabs-nav-scroll-wrapper', [\n            c('&::before', `\n              left: unset;\n              right: 0;\n            `),\n            c('&::after', `\n              right: unset;\n              left: 0;\n            `),\n            cM('shadow-start', [\n              c('&::before', `\n                box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12);\n              `)\n            ]),\n            cM('shadow-end', [\n              c('&::after', `\n                box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12);\n              `)\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cB('tab-pane', [\n      c('&.next-transition-enter-from, &.prev-transition-leave-to', `\n        transform: translateX(-32px);\n      `),\n      c('&.next-transition-leave-to, &.prev-transition-enter-from', `\n        transform: translateX(32px);\n      `)\n    ]),\n    cB('tabs-scroll-button', [\n      cM('start', `\n        padding-left: 6px;\n        padding-right: 10px;\n      `),\n      cM('end', `\n        padding-right: 6px;\n        padding-left: 10px;\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { buttonRtl } from '../../button/styles'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const tabsRtl: RtlItem = {\n  name: 'Tabs',\n  style: rtlStyle,\n  peers: [buttonRtl]\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { textColor1, textColor2, fontWeightStrong, fontSize } = vars\n  return {\n    fontSize,\n    titleTextColor: textColor1,\n    textColor: textColor2,\n    titleFontWeight: fontWeightStrong\n  }\n}\n\nexport interface ThingThemeVars extends ReturnType<typeof self> {}\n\nconst thingLight: ThingTheme = {\n  name: 'Thing',\n  common: commonLight,\n  self\n}\n\nexport interface ThingTheme extends Theme<'Thing', ThingThemeVars> {}\n\nexport interface ThingThemeOverrides extends ExtractThemeOverrides<ThingTheme> {}\n\nexport default thingLight\n","import type { ThingTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst thingDark: ThingTheme = {\n  name: 'Thing',\n  common: commonDark,\n  self\n}\n\nexport default thingDark\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('thing', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `, [\n    cB('thing-avatar', `\n      margin-left: 12px;\n      margin-right: 0;\n    `)\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { buttonRtl } from '../../button/styles/rtl'\nimport { spaceRtl } from '../../space/styles/rtl'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const thingRtl: RtlItem = {\n  name: 'Thing',\n  style: rtlStyle,\n  peers: [buttonRtl, spaceRtl]\n}\n","export default {\n  titleMarginMedium: '0 0 6px 0',\n  titleMarginLarge: '-2px 0 6px 0',\n  titleFontSizeMedium: '14px',\n  titleFontSizeLarge: '16px',\n  iconSizeMedium: '14px',\n  iconSizeLarge: '14px'\n}\n","import type { TimelineTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport sizeVariables from './_common'\n\nconst timelineDark: TimelineTheme = {\n  name: 'Timeline',\n  common: commonDark,\n  self(vars) {\n    const {\n      textColor3,\n      infoColorSuppl,\n      errorColorSuppl,\n      successColorSuppl,\n      warningColorSuppl,\n      textColor1,\n      textColor2,\n      railColor,\n      fontWeightStrong,\n      fontSize\n    } = vars\n    return {\n      ...sizeVariables,\n      contentFontSize: fontSize,\n      titleFontWeight: fontWeightStrong,\n      circleBorder: `2px solid ${textColor3}`,\n      circleBorderInfo: `2px solid ${infoColorSuppl}`,\n      circleBorderError: `2px solid ${errorColorSuppl}`,\n      circleBorderSuccess: `2px solid ${successColorSuppl}`,\n      circleBorderWarning: `2px solid ${warningColorSuppl}`,\n      iconColor: textColor3,\n      iconColorInfo: infoColorSuppl,\n      iconColorError: errorColorSuppl,\n      iconColorSuccess: successColorSuppl,\n      iconColorWarning: warningColorSuppl,\n      titleTextColor: textColor1,\n      contentTextColor: textColor2,\n      metaTextColor: textColor3,\n      lineColor: railColor\n    }\n  }\n}\n\nexport default timelineDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport sizeVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    textColor3,\n    infoColor,\n    errorColor,\n    successColor,\n    warningColor,\n    textColor1,\n    textColor2,\n    railColor,\n    fontWeightStrong,\n    fontSize\n  } = vars\n  return {\n    ...sizeVariables,\n    contentFontSize: fontSize,\n    titleFontWeight: fontWeightStrong,\n    circleBorder: `2px solid ${textColor3}`,\n    circleBorderInfo: `2px solid ${infoColor}`,\n    circleBorderError: `2px solid ${errorColor}`,\n    circleBorderSuccess: `2px solid ${successColor}`,\n    circleBorderWarning: `2px solid ${warningColor}`,\n    iconColor: textColor3,\n    iconColorInfo: infoColor,\n    iconColorError: errorColor,\n    iconColorSuccess: successColor,\n    iconColorWarning: warningColor,\n    titleTextColor: textColor1,\n    contentTextColor: textColor2,\n    metaTextColor: textColor3,\n    lineColor: railColor\n  }\n}\n\nexport interface TimelineThemeVars extends ReturnType<typeof self> {}\n\nconst timelineLight: TimelineTheme = {\n  name: 'Timeline',\n  common: commonLight,\n  self\n}\n\nexport interface TimelineTheme extends Theme<'Timeline', TimelineThemeVars> {}\n\nexport interface TimelineThemeOverrides extends ExtractThemeOverrides<TimelineTheme> {}\n\nexport default timelineLight\n","export default {\n  extraFontSizeSmall: '12px',\n  extraFontSizeMedium: '12px',\n  extraFontSizeLarge: '14px',\n  titleFontSizeSmall: '14px',\n  titleFontSizeMedium: '16px',\n  titleFontSizeLarge: '16px',\n  closeSize: '20px',\n  closeIconSize: '16px',\n  headerHeightSmall: '44px',\n  headerHeightMedium: '44px',\n  headerHeightLarge: '50px'\n}\n","import type { TransferTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { checkboxDark } from '../../checkbox/styles'\nimport { emptyDark } from '../../empty/styles'\nimport { inputDark } from '../../input/styles'\nimport commonVariables from './_common'\n\nconst transferDark: TransferTheme = {\n  name: 'Transfer',\n  common: commonDark,\n  peers: {\n    Checkbox: checkboxDark,\n    Scrollbar: scrollbarDark,\n    Input: inputDark,\n    Empty: emptyDark,\n    Button: buttonDark\n  },\n  self(vars) {\n    const {\n      fontWeight,\n      fontSizeLarge,\n      fontSizeMedium,\n      fontSizeSmall,\n      heightLarge,\n      heightMedium,\n      borderRadius,\n      inputColor,\n      tableHeaderColor,\n      textColor1,\n      textColorDisabled,\n      textColor2,\n      textColor3,\n      hoverColor,\n      closeColorHover,\n      closeColorPressed,\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed,\n      dividerColor\n    } = vars\n    return {\n      ...commonVariables,\n      itemHeightSmall: heightMedium,\n      itemHeightMedium: heightMedium,\n      itemHeightLarge: heightLarge,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      borderRadius,\n      dividerColor,\n      borderColor: '#0000',\n      listColor: inputColor,\n      headerColor: tableHeaderColor,\n      titleTextColor: textColor1,\n      titleTextColorDisabled: textColorDisabled,\n      extraTextColor: textColor3,\n      extraTextColorDisabled: textColorDisabled,\n      itemTextColor: textColor2,\n      itemTextColorDisabled: textColorDisabled,\n      itemColorPending: hoverColor,\n      titleFontWeight: fontWeight,\n      closeColorHover,\n      closeColorPressed,\n      closeIconColor,\n      closeIconColorHover,\n      closeIconColorPressed\n    }\n  }\n}\n\nexport default transferDark\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { CheckboxTheme } from '../../checkbox/styles'\nimport type { EmptyTheme } from '../../empty/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { composite } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { checkboxLight } from '../../checkbox/styles'\nimport { emptyLight } from '../../empty/styles'\nimport { inputLight } from '../../input/styles'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    fontWeight,\n    fontSizeLarge,\n    fontSizeMedium,\n    fontSizeSmall,\n    heightLarge,\n    heightMedium,\n    borderRadius,\n    cardColor,\n    tableHeaderColor,\n    textColor1,\n    textColorDisabled,\n    textColor2,\n    textColor3,\n    borderColor,\n    hoverColor,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed\n  } = vars\n  return {\n    ...commonVariables,\n    itemHeightSmall: heightMedium,\n    itemHeightMedium: heightMedium,\n    itemHeightLarge: heightLarge,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    borderRadius,\n    dividerColor: borderColor,\n    borderColor,\n    listColor: cardColor,\n    headerColor: composite(cardColor, tableHeaderColor),\n    titleTextColor: textColor1,\n    titleTextColorDisabled: textColorDisabled,\n    extraTextColor: textColor3,\n    extraTextColorDisabled: textColorDisabled,\n    itemTextColor: textColor2,\n    itemTextColorDisabled: textColorDisabled,\n    itemColorPending: hoverColor,\n    titleFontWeight: fontWeight,\n    closeColorHover,\n    closeColorPressed,\n    closeIconColor,\n    closeIconColorHover,\n    closeIconColorPressed\n  }\n}\n\nexport interface TransferThemeVars extends ReturnType<typeof self> {}\n\nconst transferLight: TransferTheme = createTheme({\n  name: 'Transfer',\n  common: commonLight,\n  peers: {\n    Checkbox: checkboxLight,\n    Scrollbar: scrollbarLight,\n    Input: inputLight,\n    Empty: emptyLight,\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface TransferTheme extends Theme<\n  'Transfer',\n  TransferThemeVars,\n  {\n    Checkbox: CheckboxTheme\n    Scrollbar: ScrollbarTheme\n    Input: InputTheme\n    Empty: EmptyTheme\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface TransferThemeOverrides extends ExtractThemeOverrides<TransferTheme> {}\n\nexport default transferLight\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { CheckboxTheme } from '../../checkbox/styles'\nimport type { EmptyTheme } from '../../empty/styles'\nimport { changeColor } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { checkboxLight } from '../../checkbox/styles'\nimport { emptyLight } from '../../empty/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadiusSmall,\n    dividerColor,\n    hoverColor,\n    pressedColor,\n    primaryColor,\n    textColor3,\n    textColor2,\n    textColorDisabled,\n    fontSize\n  } = vars\n  return {\n    fontSize,\n    lineHeight: '1.5',\n    nodeHeight: '30px',\n    nodeWrapperPadding: '3px 0',\n    nodeBorderRadius: borderRadiusSmall,\n    nodeColorHover: hoverColor,\n    nodeColorPressed: pressedColor,\n    nodeColorActive: changeColor(primaryColor, { alpha: 0.1 }),\n    arrowColor: textColor3,\n    nodeTextColor: textColor2,\n    nodeTextColorDisabled: textColorDisabled,\n    loadingColor: primaryColor,\n    dropMarkColor: primaryColor,\n    lineColor: dividerColor\n  }\n}\n\nexport interface TreeThemeVars extends ReturnType<typeof self> {}\n\nconst treeLight: TreeTheme = createTheme({\n  name: 'Tree',\n  common: commonLight,\n  peers: {\n    Checkbox: checkboxLight,\n    Scrollbar: scrollbarLight,\n    Empty: emptyLight\n  },\n  self\n})\n\nexport interface TreeTheme extends Theme<\n  'Tree',\n  TreeThemeVars,\n  {\n    Checkbox: CheckboxTheme\n    Scrollbar: ScrollbarTheme\n    Empty: EmptyTheme\n  }\n> {}\n\nexport interface TreeThemeOverrides extends ExtractThemeOverrides<TreeTheme> {}\n\nexport default treeLight\n","import type { TreeTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { checkboxDark } from '../../checkbox/styles'\nimport { emptyDark } from '../../empty/styles'\nimport { self } from './light'\n\nconst treeDark: TreeTheme = {\n  name: 'Tree',\n  common: commonDark,\n  peers: {\n    Checkbox: checkboxDark,\n    Scrollbar: scrollbarDark,\n    Empty: emptyDark\n  },\n  self(vars) {\n    const { primaryColor } = vars\n    const commonSelf = self(vars)\n    commonSelf.nodeColorActive = changeColor(primaryColor, { alpha: 0.15 })\n    return commonSelf\n  }\n}\n\nexport default treeDark\n","import { cB, cE, cM } from '../../../_utils/cssr'\n\nexport default cB('tree', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `, [\n    cB('tree-node-switcher', `\n      transform: rotate(180deg);\n    `, [\n      cM('expanded', `\n        transform: rotate(90deg);\n      `)\n    ]),\n    cB('tree-node-checkbox', `\n      margin-right: 0;\n      margin-left: 4px;\n    `),\n    cB('tree-node-content', [\n      cE('prefix', `\n        margin-right: 0;\n        margin-left: 8px;\n      `)\n    ]),\n    cB('tree-node-checkbox', [\n      cM('right', `\n        margin-right: 4px;\n      `)\n    ])\n  ])\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const treeRtl: RtlItem = {\n  name: 'Tree',\n  style: rtlStyle\n}\n","import type { TreeSelectTheme } from './light'\nimport { internalSelectionDark } from '../../_internal/selection/styles'\nimport { commonDark } from '../../_styles/common'\nimport { emptyDark } from '../../empty/styles'\nimport { treeDark } from '../../tree/styles'\n\nconst treeSelectDark: TreeSelectTheme = {\n  name: 'TreeSelect',\n  common: commonDark,\n  peers: {\n    Tree: treeDark,\n    Empty: emptyDark,\n    InternalSelection: internalSelectionDark\n  }\n}\n\nexport default treeSelectDark\n","import type { InternalSelectionTheme } from '../../_internal/selection/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins/use-theme'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { EmptyTheme } from '../../empty/styles'\nimport type { TreeTheme } from '../../tree/styles'\nimport { internalSelectionLight } from '../../_internal/selection/styles'\nimport { createTheme } from '../../_mixins/use-theme'\nimport { commonLight } from '../../_styles/common'\nimport { emptyLight } from '../../empty/styles'\nimport { treeLight } from '../../tree/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    popoverColor,\n    boxShadow2,\n    borderRadius,\n    heightMedium,\n    dividerColor,\n    textColor2\n  } = vars\n  return {\n    menuPadding: '4px',\n    menuColor: popoverColor,\n    menuBoxShadow: boxShadow2,\n    menuBorderRadius: borderRadius,\n    menuHeight: `calc(${heightMedium} * 7.6)`,\n    actionDividerColor: dividerColor,\n    actionTextColor: textColor2,\n    actionPadding: '8px 12px',\n    headerDividerColor: dividerColor,\n    headerTextColor: textColor2,\n    headerPadding: '8px 12px'\n  }\n}\n\nexport interface TreeSelectThemeVars extends ReturnType<typeof self> {}\n\nconst treeSelectLight: TreeSelectTheme = createTheme({\n  name: 'TreeSelect',\n  common: commonLight,\n  peers: {\n    Tree: treeLight,\n    Empty: emptyLight,\n    InternalSelection: internalSelectionLight\n  },\n  self\n})\n\nexport interface TreeSelectTheme extends Theme<\n  'TreeSelect',\n  TreeSelectThemeVars,\n  {\n    Tree: TreeTheme\n    Empty: EmptyTheme\n    InternalSelection: InternalSelectionTheme\n  }\n> {}\n\nexport interface TreeSelectThemeOverrides extends ExtractThemeOverrides<TreeSelectTheme> {}\n\nexport default treeSelectLight\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport { scrollbarRtl } from '../../_internal/scrollbar/styles'\nimport { internalSelectMenuRtl } from '../../_internal/select-menu/styles'\nimport { internalSelectionRtl } from '../../_internal/selection/styles'\nimport { c } from '../../_utils/cssr'\nimport { tagRtl } from '../../tag/styles'\nimport { treeRtl } from '../../tree/styles'\n\nexport const treeSelectRtl: RtlItem = {\n  name: 'Select',\n  style: c([]),\n  peers: [\n    internalSelectionRtl,\n    internalSelectMenuRtl,\n    tagRtl,\n    scrollbarRtl,\n    treeRtl\n  ]\n}\n","export default {\n  headerFontSize1: '30px',\n  headerFontSize2: '22px',\n  headerFontSize3: '18px',\n  headerFontSize4: '16px',\n  headerFontSize5: '16px',\n  headerFontSize6: '16px',\n  headerMargin1: '28px 0 20px 0',\n  headerMargin2: '28px 0 20px 0',\n  headerMargin3: '28px 0 20px 0',\n  headerMargin4: '28px 0 18px 0',\n  headerMargin5: '28px 0 18px 0',\n  headerMargin6: '28px 0 18px 0',\n  headerPrefixWidth1: '16px',\n  headerPrefixWidth2: '16px',\n  headerPrefixWidth3: '12px',\n  headerPrefixWidth4: '12px',\n  headerPrefixWidth5: '12px',\n  headerPrefixWidth6: '12px',\n  headerBarWidth1: '4px',\n  headerBarWidth2: '4px',\n  headerBarWidth3: '3px',\n  headerBarWidth4: '3px',\n  headerBarWidth5: '3px',\n  headerBarWidth6: '3px',\n  pMargin: '16px 0 16px 0',\n  liMargin: '.25em 0 0 0',\n  olPadding: '0 0 0 2em',\n  ulPadding: '0 0 0 2em'\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\nimport commonVars from './_common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    primaryColor,\n    textColor2,\n    borderColor,\n    lineHeight,\n    fontSize,\n    borderRadiusSmall,\n    dividerColor,\n    fontWeightStrong,\n    textColor1,\n    textColor3,\n    infoColor,\n    warningColor,\n    errorColor,\n    successColor,\n    codeColor\n  } = vars\n  return {\n    ...commonVars,\n    aTextColor: primaryColor,\n    blockquoteTextColor: textColor2,\n    blockquotePrefixColor: borderColor,\n    blockquoteLineHeight: lineHeight,\n    blockquoteFontSize: fontSize,\n    codeBorderRadius: borderRadiusSmall,\n    liTextColor: textColor2,\n    liLineHeight: lineHeight,\n    liFontSize: fontSize,\n    hrColor: dividerColor,\n    headerFontWeight: fontWeightStrong,\n    headerTextColor: textColor1,\n    pTextColor: textColor2,\n    pTextColor1Depth: textColor1,\n    pTextColor2Depth: textColor2,\n    pTextColor3Depth: textColor3,\n    pLineHeight: lineHeight,\n    pFontSize: fontSize,\n    headerBarColor: primaryColor,\n    headerBarColorPrimary: primaryColor,\n    headerBarColorInfo: infoColor,\n    headerBarColorError: errorColor,\n    headerBarColorWarning: warningColor,\n    headerBarColorSuccess: successColor,\n    textColor: textColor2,\n    textColor1Depth: textColor1,\n    textColor2Depth: textColor2,\n    textColor3Depth: textColor3,\n    textColorPrimary: primaryColor,\n    textColorInfo: infoColor,\n    textColorSuccess: successColor,\n    textColorWarning: warningColor,\n    textColorError: errorColor,\n    codeTextColor: textColor2,\n    codeColor,\n    codeBorder: '1px solid #0000'\n  }\n}\n\nexport interface TypographyThemeVars extends ReturnType<typeof self> {}\n\nconst typographyLight: TypographyTheme = {\n  name: 'Typography',\n  common: commonLight,\n  self\n}\n\nexport interface TypographyTheme extends Theme<\n  'Typography',\n  TypographyThemeVars\n> {}\n\nexport interface TypographyThemeOverrides extends ExtractThemeOverrides<TypographyTheme> {}\n\nexport default typographyLight\n","import type { TypographyTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst typographyDark: TypographyTheme = {\n  name: 'Typography',\n  common: commonDark,\n  self\n}\n\nexport default typographyDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { ProgressTheme } from '../../progress/styles'\nimport { changeColor } from 'seemly'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { progressLight } from '../../progress/styles'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    iconColor,\n    primaryColor,\n    errorColor,\n    textColor2,\n    successColor,\n    opacityDisabled,\n    actionColor,\n    borderColor,\n    hoverColor,\n    lineHeight,\n    borderRadius,\n    fontSize\n  } = vars\n  return {\n    fontSize,\n    lineHeight,\n    borderRadius,\n    draggerColor: actionColor,\n    draggerBorder: `1px dashed ${borderColor}`,\n    draggerBorderHover: `1px dashed ${primaryColor}`,\n    itemColorHover: hoverColor,\n    itemColorHoverError: changeColor(errorColor, {\n      alpha: 0.06\n    }),\n    itemTextColor: textColor2,\n    itemTextColorError: errorColor,\n    itemTextColorSuccess: successColor,\n    itemIconColor: iconColor,\n    itemDisabledOpacity: opacityDisabled,\n    itemBorderImageCardError: `1px solid ${errorColor}`,\n    itemBorderImageCard: `1px solid ${borderColor}`\n  }\n}\n\nexport interface UploadThemeVars extends ReturnType<typeof self> {}\n\nconst uploadLight: UploadTheme = createTheme({\n  name: 'Upload',\n  common: commonLight,\n  peers: {\n    Button: buttonLight,\n    Progress: progressLight\n  },\n  self\n})\n\nexport interface UploadTheme extends Theme<\n  'Upload',\n  UploadThemeVars,\n  {\n    Button: ButtonTheme\n    Progress: ProgressTheme\n  }\n> {}\n\nexport interface UploadThemeOverrides extends ExtractThemeOverrides<UploadTheme> {}\n\nexport default uploadLight\n","import type { UploadTheme } from './light'\nimport { changeColor } from 'seemly'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { progressDark } from '../../progress/styles'\nimport { self } from './light'\n\nconst uploadDark: UploadTheme = {\n  name: 'Upload',\n  common: commonDark,\n  peers: {\n    Button: buttonDark,\n    Progress: progressDark\n  },\n  self(vars) {\n    const { errorColor } = vars\n    const commonSelf = self(vars)\n    commonSelf.itemColorHoverError = changeColor(errorColor, {\n      alpha: 0.09\n    })\n    return commonSelf\n  }\n}\n\nexport default uploadDark\n","import { cB, cM } from '../../../_utils/cssr'\n\nexport default cB('upload', [\n  cM('rtl', `\n    direction: rtl;\n    text-align: right;\n  `)\n])\n","import type { RtlItem } from '../../config-provider/src/internal-interface'\nimport rtlStyle from '../src/styles/rtl.cssr'\n\nexport const uploadRtl: RtlItem = {\n  name: 'Upload',\n  style: rtlStyle\n}\n","import type { WatermarkTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst watermarkDark: WatermarkTheme = {\n  name: 'Watermark',\n  common: commonDark,\n  self(vars) {\n    const { fontFamily } = vars\n    return {\n      fontFamily\n    }\n  }\n}\n\nexport default watermarkDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport interface WatermarkThemeVars {\n  fontFamily: string\n}\n\nconst watermarkLight: WatermarkTheme = createTheme({\n  name: 'Watermark',\n  common: commonLight,\n  self(vars) {\n    const { fontFamily } = vars\n    return {\n      fontFamily\n    }\n  }\n})\n\nexport interface WatermarkTheme extends Theme<\n  'Watermark',\n  WatermarkThemeVars\n> {}\n\nexport interface WatermarkThemeOverrides extends ExtractThemeOverrides<WatermarkTheme> {}\n\nexport default watermarkLight\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../config-provider'\nimport { commonLight } from '../../styles'\n\nfunction self(vars: ThemeCommonVars) {\n  const { popoverColor, dividerColor, borderRadius } = vars\n  return {\n    color: popoverColor,\n    buttonBorderColor: dividerColor,\n    borderRadiusSquare: borderRadius,\n    boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)'\n  }\n}\n\nexport interface FloatButtonGroupThemeVars extends ReturnType<typeof self> {}\n\nconst themeLight: FloatButtonGroupTheme = {\n  name: 'FloatButtonGroup',\n  common: commonLight,\n  self\n}\n\nexport interface FloatButtonGroupTheme extends Theme<\n  'FloatButtonGroup',\n  FloatButtonGroupThemeVars\n> {}\n\nexport interface FloatButtonGroupThemeOverrides extends ExtractThemeOverrides<FloatButtonGroupTheme> {}\n\nexport default themeLight\n","import { c, cB, cE, cM } from '../../../_utils/cssr/index'\n\n// --n-border-radius-square\nexport default cB('float-button-group', [\n  cB('float-button', `\n    position: relative;\n  `),\n  cM('square-shape', `\n    background-color: var(--n-color);\n    cursor: pointer;\n    display: flex;\n    width: fit-content;\n    align-items: center;\n    justify-content: center;\n    border-radius: var(--n-border-radius-square);\n    flex-direction: column;\n    box-shadow: var(--n-box-shadow);\n    transition:\n      color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n  `, [\n    cB('float-button', `\n      background-color: unset;\n      border-radius: 0;\n      box-shadow: none;\n      box-sizing: content-box;\n    `, [\n      c('&:not(:last-child)', `\n        border-bottom: 1px solid var(--n-button-border-color);    \n      `),\n      c('&:first-child', `\n        border-top-left-radius: 4px;\n        border-top-right-radius: 4px;\n      `),\n      c('&:last-child', `\n        border-bottom-left-radius: 4px;\n        border-bottom-right-radius: 4px;\n      `),\n      cE('fill', `\n        top: 4px;\n        right: 4px;\n        bottom: 4px;\n        left: 4px;\n        border-radius: var(--n-border-radius-square);  \n      `)\n    ])\n  ]),\n  cM('circle-shape', [\n    c('>:not(:last-child)', `\n      margin-bottom: 16px;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type {\n  FloatButtonGroupTheme,\n  FloatButtonGroupThemeOverrides\n} from '../styles/light'\nimport { computed, defineComponent, h, provide, toRef } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createInjectionKey, formatLength } from '../../_utils'\nimport floatButtonGroupLight from '../styles/light'\nimport style from './styles/index.cssr'\n\nexport interface ButtonGroupInjection {\n  shapeRef: Ref<'circle' | 'square'>\n}\n\nexport const floatButtonGroupProps = {\n  ...(useTheme.props as ThemeProps<\n    FloatButtonGroupTheme,\n    FloatButtonGroupThemeOverrides\n  >),\n  left: [Number, String] as PropType<string | number>,\n  right: [Number, String] as PropType<string | number>,\n  top: [Number, String] as PropType<string | number>,\n  bottom: [Number, String] as PropType<string | number>,\n  shape: {\n    type: String as PropType<'square' | 'circle'>,\n    default: 'circle'\n  },\n  position: {\n    type: String as PropType<'relative' | 'absolute' | 'fixed'>,\n    default: 'fixed'\n  }\n} as const\n\nexport type FloatButtonGroupProps = ExtractPublicPropTypes<\n  typeof floatButtonGroupProps\n>\n\nexport const floatButtonGroupInjectionKey\n  = createInjectionKey<ButtonGroupInjection>('n-float-button-group')\n\nexport default defineComponent({\n  name: 'FloatButtonGroup',\n  props: floatButtonGroupProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'FloatButtonGroup',\n      '-float-button-group',\n      style,\n      floatButtonGroupLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed<Record<string, string>>(() => {\n      const {\n        self: { color, boxShadow, buttonBorderColor, borderRadiusSquare },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-box-shadow': boxShadow,\n        '--n-color': color,\n        '--n-button-border-color': buttonBorderColor,\n        '--n-border-radius-square': borderRadiusSquare,\n        position: props.position,\n        left: formatLength(props.left) || '',\n        right: formatLength(props.right) || '',\n        top: formatLength(props.top) || '',\n        bottom: formatLength(props.bottom) || ''\n      }\n    })\n\n    provide(floatButtonGroupInjectionKey, {\n      shapeRef: toRef(props, 'shape')\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('float-button', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      mergedClsPrefix: mergedClsPrefixRef,\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, cssVars, shape } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-float-button-group`,\n          `${mergedClsPrefix}-float-button-group--${shape}-shape`\n        ]}\n        style={cssVars as CSSProperties}\n        role=\"group\"\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { FloatButtonTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst floatButtonDark: FloatButtonTheme = {\n  name: 'FloatButton',\n  common: commonDark,\n  self(vars) {\n    const {\n      popoverColor,\n      textColor2,\n      buttonColor2Hover,\n      buttonColor2Pressed,\n      primaryColor,\n      primaryColorHover,\n      primaryColorPressed,\n      baseColor,\n      borderRadius\n    } = vars\n    return {\n      color: popoverColor,\n      textColor: textColor2,\n      boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)',\n      boxShadowHover: '0 2px 12px 0px rgba(0, 0, 0, .18)',\n      boxShadowPressed: '0 2px 12px 0px rgba(0, 0, 0, .18)',\n      colorHover: buttonColor2Hover,\n      colorPressed: buttonColor2Pressed,\n      colorPrimary: primaryColor,\n      colorPrimaryHover: primaryColorHover,\n      colorPrimaryPressed: primaryColorPressed,\n      textColorPrimary: baseColor,\n      borderRadiusSquare: borderRadius\n    }\n  }\n}\n\nexport default floatButtonDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    popoverColor,\n    textColor2,\n    buttonColor2Hover,\n    buttonColor2Pressed,\n    primaryColor,\n    primaryColorHover,\n    primaryColorPressed,\n    borderRadius\n  } = vars\n  return {\n    color: popoverColor,\n    colorHover: buttonColor2Hover,\n    colorPressed: buttonColor2Pressed,\n    colorPrimary: primaryColor,\n    colorPrimaryHover: primaryColorHover,\n    colorPrimaryPressed: primaryColorPressed,\n    textColor: textColor2,\n    boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .16)',\n    boxShadowHover: '0 2px 12px 0px rgba(0, 0, 0, .24)',\n    boxShadowPressed: '0 2px 12px 0px rgba(0, 0, 0, .24)',\n    textColorPrimary: '#fff',\n    borderRadiusSquare: borderRadius\n  }\n}\n\nexport interface FloatButtonThemeVars extends ReturnType<typeof self> {}\n\nconst themeLight: FloatButtonTheme = {\n  name: 'FloatButton',\n  common: commonLight,\n  self\n}\n\nexport interface FloatButtonTheme extends Theme<\n  'FloatButton',\n  FloatButtonThemeVars\n> {}\n\nexport interface FloatButtonThemeOverrides extends ExtractThemeOverrides<FloatButtonTheme> {}\n\nexport default themeLight\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-box-shadow\n// --n-box-shadow-hover\n// --n-box-shadow-pressed\n// --n-color\n// --n-text-color\n// --n-color-hover\n// --n-color-pressed\n// --n-border-radius-square\nexport default cB('float-button', `\n  user-select: none;\n  cursor: pointer;\n  color: var(--n-text-color);\n  background-color: var(--n-color);\n  font-size: 18px;\n  transition:\n    color .3s var(--n-bezier),\n    border-color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier),\n    background-color .3s var(--n-bezier);\n  box-shadow: var(--n-box-shadow);\n  display: flex;\n  align-items: stretch;\n  box-sizing: border-box;\n`, [\n  cM('circle-shape', `\n    border-radius: 4096px;\n  `),\n  cM('square-shape', `\n    border-radius: var(--n-border-radius-square);\n  `),\n  cE('fill', `\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0\n    left: 0;\n    transition: background-color .3s var(--n-bezier);\n    border-radius: inherit;\n  `),\n  cE('body', `\n    position: relative;\n    flex-grow: 1;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: transform .3s var(--n-bezier), opacity .3s var(--n-bezier);\n    border-radius: inherit;\n    flex-direction: column;\n    box-sizing: border-box;\n    padding: 2px 4px;\n    gap: 2px;\n    transform: scale(1);\n  `, [\n    cE('description', `\n      font-size: 12px;\n      text-align: center;\n      line-height: 14px;\n    `)\n  ]),\n  c('&:hover', 'box-shadow: var(--n-box-shadow-hover);', [\n    c('>', [\n      cE('fill', `\n        background-color: var(--n-color-hover);\n      `)\n    ])\n  ]),\n  c('&:active', 'box-shadow: var(--n-box-shadow-pressed);', [\n    c('>', [\n      cE('fill', `\n        background-color: var(--n-color-pressed);\n      `)\n    ])\n  ]),\n  cM('show-menu', [\n    c('>', [\n      cE('menu', `\n        pointer-events: all;\n        bottom: 100%;\n        opacity: 1;\n      `),\n      cE('close', `\n        transform: scale(1);\n        opacity: 1;\n      `),\n      cE('body', `\n        transform: scale(0.75);\n        opacity: 0;\n      `)\n    ])\n  ]),\n  cE('close', `\n    opacity: 0;\n    transform: scale(0.75);\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    left: 0;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition: transform .3s var(--n-bezier), opacity .3s var(--n-bezier);\n  `),\n  cE('menu', `\n    position: absolute;\n    bottom: calc(100% - 8px);\n    display: flex;\n    flex-direction: column;\n    opacity: 0;\n    pointer-events: none;\n    transition:\n      opacity .3s var(--n-bezier),\n      bottom .3s var(--n-bezier); \n  `, [\n    c('> *', `\n      margin-bottom: 16px;\n    `),\n    cB('float-button', `\n      position: relative !important;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FloatButtonTheme, FloatButtonThemeOverrides } from '../styles'\nimport { off, on } from 'evtd'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  ref,\n  toRef\n} from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { CloseIcon } from '../../_internal/icons'\nimport { useTheme, useThemeClass } from '../../_mixins'\nimport useConfig from '../../_mixins/use-config'\nimport {\n  call,\n  formatLength,\n  resolveSlot,\n  resolveWrappedSlot\n} from '../../_utils'\nimport { floatButtonGroupInjectionKey } from '../../float-button-group/src/FloatButtonGroup'\nimport { floatButtonLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const floatButtonProps = {\n  ...(useTheme.props as ThemeProps<\n    FloatButtonTheme,\n    FloatButtonThemeOverrides\n  >),\n  width: { type: [Number, String] as PropType<string | number>, default: 40 },\n  height: { type: [Number, String] as PropType<string | number>, default: 40 },\n  left: [Number, String] as PropType<string | number>,\n  right: [Number, String] as PropType<string | number>,\n  top: [Number, String] as PropType<string | number>,\n  bottom: [Number, String] as PropType<string | number>,\n  shape: {\n    type: String as PropType<'square' | 'circle'>,\n    default: 'circle'\n  },\n  position: {\n    type: String as PropType<'relative' | 'absolute' | 'fixed'>,\n    default: 'fixed'\n  },\n  type: {\n    type: String as PropType<'default' | 'primary'>,\n    default: 'default'\n  },\n  menuTrigger: String as PropType<'hover' | 'click'>,\n  showMenu: {\n    type: Boolean,\n    default: undefined\n  },\n  onUpdateShowMenu: {\n    type: [Function, Array] as PropType<MaybeArray<(value: boolean) => void>>,\n    default: undefined\n  },\n  'onUpdate:showMenu': {\n    type: [Function, Array] as PropType<MaybeArray<(value: boolean) => void>>,\n    default: undefined\n  }\n} as const\n\nexport type FloatButtonProps = ExtractPublicPropTypes<typeof floatButtonProps>\n\nexport interface FloatButtonSlots {\n  default?: () => VNode[]\n  description?: () => VNode[]\n  menu?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'FloatButton',\n  props: floatButtonProps,\n  slots: Object as SlotsType<FloatButtonSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n\n    const selfElRef = ref<HTMLDivElement | null>(null)\n\n    const themeRef = useTheme(\n      'FloatButton',\n      '-float-button',\n      style,\n      floatButtonLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const floatButtonGroupInjection = inject(floatButtonGroupInjectionKey, null)\n\n    const uncontrolledShowMenuRef = ref(false)\n    const controlledShoeMenuRef = toRef(props, 'showMenu')\n    const mergedShowMenuRef = useMergedState(\n      controlledShoeMenuRef,\n      uncontrolledShowMenuRef\n    )\n\n    function doUpdateShowMenu(value: boolean): void {\n      const { onUpdateShowMenu, 'onUpdate:showMenu': _onUpdateShowMenu } = props\n      uncontrolledShowMenuRef.value = value\n      if (onUpdateShowMenu) {\n        call(onUpdateShowMenu, value)\n      }\n      if (_onUpdateShowMenu) {\n        call(_onUpdateShowMenu, value)\n      }\n    }\n\n    const cssVarsRef = computed<Record<string, string>>(() => {\n      const {\n        self: {\n          color,\n          textColor,\n          boxShadow,\n          boxShadowHover,\n          boxShadowPressed,\n          colorHover,\n          colorPrimary,\n          colorPrimaryHover,\n          textColorPrimary,\n          borderRadiusSquare,\n          colorPressed,\n          colorPrimaryPressed\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      const { type } = props\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-box-shadow': boxShadow,\n        '--n-box-shadow-hover': boxShadowHover,\n        '--n-box-shadow-pressed': boxShadowPressed,\n        '--n-color': type === 'primary' ? colorPrimary : color,\n        '--n-text-color': type === 'primary' ? textColorPrimary : textColor,\n        '--n-color-hover': type === 'primary' ? colorPrimaryHover : colorHover,\n        '--n-color-pressed':\n          type === 'primary' ? colorPrimaryPressed : colorPressed,\n        '--n-border-radius-square': borderRadiusSquare\n      }\n    })\n    const inlineStyle = computed<CSSProperties>(() => {\n      const { width, height } = props\n      return {\n        position: floatButtonGroupInjection ? undefined : props.position,\n        width: formatLength(width),\n        minHeight: formatLength(height),\n        ...(floatButtonGroupInjection\n          ? null\n          : {\n              left: formatLength(props.left),\n              right: formatLength(props.right),\n              top: formatLength(props.top),\n              bottom: formatLength(props.bottom)\n            })\n      }\n    })\n\n    const mergedShapeRef = computed(() => {\n      return floatButtonGroupInjection\n        ? floatButtonGroupInjection.shapeRef.value\n        : props.shape\n    })\n\n    const Mouseenter = (): void => {\n      if (props.menuTrigger === 'hover') {\n        doUpdateShowMenu(true)\n      }\n    }\n\n    const handleMouseleave = (): void => {\n      if (props.menuTrigger === 'hover' && mergedShowMenuRef.value) {\n        doUpdateShowMenu(false)\n      }\n    }\n\n    const handleClick = (): void => {\n      if (props.menuTrigger === 'click') {\n        doUpdateShowMenu(!mergedShowMenuRef.value)\n      }\n    }\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'float-button',\n          computed(() => props.type[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    onMounted(() => {\n      const selfEl = selfElRef.value\n      if (selfEl) {\n        on('mousemoveoutside', selfEl, handleMouseleave)\n      }\n    })\n\n    onBeforeUnmount(() => {\n      const selfEl = selfElRef.value\n      if (selfEl) {\n        off('mousemoveoutside', selfEl, handleMouseleave)\n      }\n    })\n\n    return {\n      inlineStyle,\n      selfElRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedShape: mergedShapeRef,\n      mergedShowMenu: mergedShowMenuRef,\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      Mouseenter,\n      handleMouseleave,\n      handleClick\n    }\n  },\n\n  render() {\n    const {\n      mergedClsPrefix,\n      cssVars,\n      mergedShape,\n      type,\n      menuTrigger,\n      mergedShowMenu,\n      themeClass,\n      $slots,\n      inlineStyle,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        ref=\"selfElRef\"\n        class={[\n          `${mergedClsPrefix}-float-button`,\n          `${mergedClsPrefix}-float-button--${mergedShape}-shape`,\n          `${mergedClsPrefix}-float-button--${type}-type`,\n          mergedShowMenu && `${mergedClsPrefix}-float-button--show-menu`,\n          themeClass\n        ]}\n        style={[cssVars as CSSProperties, inlineStyle]}\n        onMouseenter={this.Mouseenter}\n        onMouseleave={this.handleMouseleave}\n        onClick={this.handleClick}\n        role=\"button\"\n      >\n        <div class={`${mergedClsPrefix}-float-button__fill`} aria-hidden></div>\n        <div class={`${mergedClsPrefix}-float-button__body`}>\n          {$slots.default?.()}\n          {resolveWrappedSlot($slots.description, (children) => {\n            if (children) {\n              return (\n                <div class={`${mergedClsPrefix}-float-button__description`}>\n                  {children}\n                </div>\n              )\n            }\n            return null\n          })}\n        </div>\n        {menuTrigger ? (\n          <div class={`${mergedClsPrefix}-float-button__close`}>\n            <NBaseIcon clsPrefix={mergedClsPrefix}>\n              {{ default: () => <CloseIcon /> }}\n            </NBaseIcon>\n          </div>\n        ) : null}\n        {menuTrigger ? (\n          <div\n            onClick={(e) => {\n              e.stopPropagation()\n            }}\n            data-float-button-menu\n            class={`${mergedClsPrefix}-float-button__menu`}\n          >\n            {resolveSlot($slots.menu, () => [])}\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { FormInjection } from './interface'\nimport { createInjectionKey } from '../../_utils'\n\nexport const formInjectionKey = createInjectionKey<FormInjection>('n-form')\nexport const formItemInstsInjectionKey\n  = createInjectionKey<unknown>('n-form-item-insts')\n","import { c, cB, cM } from '../../../_utils/cssr'\n\nexport default cB('form', [\n  cM('inline', `\n    width: 100%;\n    display: inline-flex;\n    align-items: flex-start;\n    align-content: space-around;\n  `, [\n    cB('form-item', {\n      width: 'auto',\n      marginRight: '18px'\n    }, [\n      c('&:last-child', {\n        marginRight: 0\n      })\n    ])\n  ])\n])\n","import type { ValidateError } from 'async-validator'\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FormTheme, FormThemeOverrides } from '../styles'\nimport type {\n  FormInst,\n  FormItemInst,\n  FormItemInternalValidateResult,\n  FormRules,\n  FormValidateCallback,\n  FormValidateFilter,\n  FormValidateMessages,\n  LabelAlign,\n  LabelPlacement,\n  ShouldRuleBeApplied\n} from './interface'\nimport type { FormSize } from './public-types'\nimport { defineComponent, h, provide, ref } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { keysOf } from '../../_utils'\nimport { formLight } from '../styles'\nimport { formInjectionKey, formItemInstsInjectionKey } from './context'\nimport style from './styles/form.cssr'\n\nexport const formProps = {\n  ...(useTheme.props as ThemeProps<FormTheme, FormThemeOverrides>),\n  inline: Boolean,\n  labelWidth: [Number, String] as PropType<number | string>,\n  labelAlign: String as PropType<LabelAlign>,\n  labelPlacement: {\n    type: String as PropType<LabelPlacement>,\n    default: 'top'\n  },\n  model: {\n    type: Object as PropType<Record<string, any>>,\n    default: () => {}\n  },\n  rules: Object as PropType<FormRules>,\n  disabled: Boolean,\n  size: String as PropType<FormSize>,\n  showRequireMark: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  requireMarkPlacement: String as PropType<'left' | 'right' | 'right-hanging'>,\n  showFeedback: {\n    type: Boolean,\n    default: true\n  },\n  onSubmit: {\n    type: Function as PropType<(e: Event) => void>,\n    default: (e: Event) => {\n      e.preventDefault()\n    }\n  },\n  showLabel: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  validateMessages: Object as PropType<Partial<FormValidateMessages>>\n} as const\n\nexport type FormSetupProps = ExtractPropTypes<typeof formProps>\nexport type FormProps = ExtractPublicPropTypes<typeof formProps>\n\nconst defaultShouldRuleBeApplied: ShouldRuleBeApplied = () => true\n\nfunction normalizeValidateFilter(filter: FormValidateFilter | undefined): {\n  paths: string[] | null\n  shouldRuleBeApplied: ShouldRuleBeApplied\n} {\n  if (filter === undefined) {\n    return {\n      paths: null,\n      shouldRuleBeApplied: defaultShouldRuleBeApplied\n    }\n  }\n  if (typeof filter === 'function') {\n    return {\n      paths: null,\n      shouldRuleBeApplied: filter\n    }\n  }\n  if (Array.isArray(filter)) {\n    return {\n      paths: filter,\n      shouldRuleBeApplied: defaultShouldRuleBeApplied\n    }\n  }\n  return filter\n}\n\nexport default defineComponent({\n  name: 'Form',\n  props: formProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    useTheme('Form', '-form', style, formLight, props, mergedClsPrefixRef)\n    // from path to form-item\n    const formItems: Record<string, FormItemInst[]> = {}\n    // for label-width = 'auto'\n    const maxChildLabelWidthRef = ref<number | undefined>(undefined)\n    const deriveMaxChildLabelWidth = (currentWidth: number): void => {\n      const currentMaxChildLabelWidth = maxChildLabelWidthRef.value\n      if (\n        currentMaxChildLabelWidth === undefined\n        || currentWidth >= currentMaxChildLabelWidth\n      ) {\n        maxChildLabelWidthRef.value = currentWidth\n      }\n    }\n    function invalidateLabelWidth(): void {\n      for (const key of keysOf(formItems)) {\n        const formItemInstances = formItems[key]\n        for (const formItemInstance of formItemInstances) {\n          formItemInstance.invalidateLabelWidth?.()\n        }\n      }\n    }\n    async function validate(\n      validateCallback?: FormValidateCallback,\n      filter?: FormValidateFilter\n    ): Promise<{ warnings: ValidateError[][] | undefined }> {\n      const { paths, shouldRuleBeApplied } = normalizeValidateFilter(filter)\n      return await new Promise<{ warnings: ValidateError[][] | undefined }>(\n        (resolve, reject) => {\n          const formItemValidationPromises: Array<\n            Promise<FormItemInternalValidateResult>\n          > = []\n          for (const key of keysOf(formItems)) {\n            if (paths !== null && !paths.includes(key))\n              continue\n            const formItemInstances = formItems[key]\n            for (const formItemInstance of formItemInstances) {\n              if (formItemInstance.path) {\n                formItemValidationPromises.push(\n                  formItemInstance.internalValidate(null, shouldRuleBeApplied)\n                )\n              }\n            }\n          }\n          void Promise.all(formItemValidationPromises).then((results) => {\n            const formInvalid = results.some(result => !result.valid)\n            const errors: ValidateError[][] = []\n            const warnings: ValidateError[][] = []\n            results.forEach((result) => {\n              if (result.errors?.length) {\n                errors.push(result.errors)\n              }\n              if (result.warnings?.length) {\n                warnings.push(result.warnings)\n              }\n            })\n            if (validateCallback) {\n              validateCallback(errors.length ? errors : undefined, {\n                warnings: warnings.length ? warnings : undefined\n              })\n            }\n            if (formInvalid) {\n              reject(errors.length ? errors : undefined)\n            }\n            else {\n              resolve({\n                warnings: warnings.length ? warnings : undefined\n              })\n            }\n          })\n        }\n      )\n    }\n    function restoreValidation(): void {\n      for (const key of keysOf(formItems)) {\n        const formItemInstances = formItems[key]\n        for (const formItemInstance of formItemInstances) {\n          formItemInstance.restoreValidation()\n        }\n      }\n    }\n    provide(formInjectionKey, {\n      props,\n      maxChildLabelWidthRef,\n      deriveMaxChildLabelWidth\n    })\n    provide(formItemInstsInjectionKey, { formItems })\n    const formExposedMethod: FormInst = {\n      validate,\n      restoreValidation,\n      invalidateLabelWidth\n    }\n    return Object.assign(formExposedMethod, {\n      mergedClsPrefix: mergedClsPrefixRef\n    })\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <form\n        class={[\n          `${mergedClsPrefix}-form`,\n          this.inline && `${mergedClsPrefix}-form--inline`\n        ]}\n        onSubmit={this.onSubmit}\n      >\n        {this.$slots.default?.()}\n      </form>\n    )\n  }\n})\n","/* eslint no-console:0 */\n\nimport {\n  ValidateError,\n  ValidateOption,\n  RuleValuePackage,\n  InternalRuleItem,\n  SyncErrorType,\n  RuleType,\n  Value,\n  Values,\n} from './interface';\n\nconst formatRegExp = /%[sdj%]/g;\n\ndeclare var ASYNC_VALIDATOR_NO_WARNING;\n\nexport let warning: (type: string, errors: SyncErrorType[]) => void = () => {};\n\n// don't print warning message when in production env or node runtime\nif (\n  typeof process !== 'undefined' &&\n  process.env &&\n  process.env.NODE_ENV !== 'production' &&\n  typeof window !== 'undefined' &&\n  typeof document !== 'undefined'\n) {\n  warning = (type, errors) => {\n    if (\n      typeof console !== 'undefined' &&\n      console.warn &&\n      typeof ASYNC_VALIDATOR_NO_WARNING === 'undefined'\n    ) {\n      if (errors.every(e => typeof e === 'string')) {\n        console.warn(type, errors);\n      }\n    }\n  };\n}\n\nexport function convertFieldsError(\n  errors: ValidateError[],\n): Record<string, ValidateError[]> {\n  if (!errors || !errors.length) return null;\n  const fields = {};\n  errors.forEach(error => {\n    const field = error.field;\n    fields[field] = fields[field] || [];\n    fields[field].push(error);\n  });\n  return fields;\n}\n\nexport function format(\n  template: ((...args: any[]) => string) | string,\n  ...args: any[]\n): string {\n  let i = 0;\n  const len = args.length;\n  if (typeof template === 'function') {\n    return template.apply(null, args);\n  }\n  if (typeof template === 'string') {\n    let str = template.replace(formatRegExp, x => {\n      if (x === '%%') {\n        return '%';\n      }\n      if (i >= len) {\n        return x;\n      }\n      switch (x) {\n        case '%s':\n          return String(args[i++]);\n        case '%d':\n          return (Number(args[i++]) as unknown) as string;\n        case '%j':\n          try {\n            return JSON.stringify(args[i++]);\n          } catch (_) {\n            return '[Circular]';\n          }\n          break;\n        default:\n          return x;\n      }\n    });\n    return str;\n  }\n  return template;\n}\n\nfunction isNativeStringType(type: string) {\n  return (\n    type === 'string' ||\n    type === 'url' ||\n    type === 'hex' ||\n    type === 'email' ||\n    type === 'date' ||\n    type === 'pattern'\n  );\n}\n\nexport function isEmptyValue(value: Value, type?: string) {\n  if (value === undefined || value === null) {\n    return true;\n  }\n  if (type === 'array' && Array.isArray(value) && !value.length) {\n    return true;\n  }\n  if (isNativeStringType(type) && typeof value === 'string' && !value) {\n    return true;\n  }\n  return false;\n}\n\nexport function isEmptyObject(obj: object) {\n  return Object.keys(obj).length === 0;\n}\n\nfunction asyncParallelArray(\n  arr: RuleValuePackage[],\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n) {\n  const results: ValidateError[] = [];\n  let total = 0;\n  const arrLength = arr.length;\n\n  function count(errors: ValidateError[]) {\n    results.push(...(errors || []));\n    total++;\n    if (total === arrLength) {\n      callback(results);\n    }\n  }\n\n  arr.forEach(a => {\n    func(a, count);\n  });\n}\n\nfunction asyncSerialArray(\n  arr: RuleValuePackage[],\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n) {\n  let index = 0;\n  const arrLength = arr.length;\n\n  function next(errors: ValidateError[]) {\n    if (errors && errors.length) {\n      callback(errors);\n      return;\n    }\n    const original = index;\n    index = index + 1;\n    if (original < arrLength) {\n      func(arr[original], next);\n    } else {\n      callback([]);\n    }\n  }\n\n  next([]);\n}\n\nfunction flattenObjArr(objArr: Record<string, RuleValuePackage[]>) {\n  const ret: RuleValuePackage[] = [];\n  Object.keys(objArr).forEach(k => {\n    ret.push(...(objArr[k] || []));\n  });\n  return ret;\n}\n\nexport class AsyncValidationError extends Error {\n  errors: ValidateError[];\n  fields: Record<string, ValidateError[]>;\n\n  constructor(\n    errors: ValidateError[],\n    fields: Record<string, ValidateError[]>,\n  ) {\n    super('Async Validation Error');\n    this.errors = errors;\n    this.fields = fields;\n  }\n}\n\ntype ValidateFunc = (\n  data: RuleValuePackage,\n  doIt: (errors: ValidateError[]) => void,\n) => void;\n\nexport function asyncMap(\n  objArr: Record<string, RuleValuePackage[]>,\n  option: ValidateOption,\n  func: ValidateFunc,\n  callback: (errors: ValidateError[]) => void,\n  source: Values,\n): Promise<Values> {\n  if (option.first) {\n    const pending = new Promise<Values>((resolve, reject) => {\n      const next = (errors: ValidateError[]) => {\n        callback(errors);\n        return errors.length\n          ? reject(new AsyncValidationError(errors, convertFieldsError(errors)))\n          : resolve(source);\n      };\n      const flattenArr = flattenObjArr(objArr);\n      asyncSerialArray(flattenArr, func, next);\n    });\n    pending.catch(e => e);\n    return pending;\n  }\n  const firstFields =\n    option.firstFields === true\n      ? Object.keys(objArr)\n      : option.firstFields || [];\n\n  const objArrKeys = Object.keys(objArr);\n  const objArrLength = objArrKeys.length;\n  let total = 0;\n  const results: ValidateError[] = [];\n  const pending = new Promise<Values>((resolve, reject) => {\n    const next = (errors: ValidateError[]) => {\n      results.push.apply(results, errors);\n      total++;\n      if (total === objArrLength) {\n        callback(results);\n        return results.length\n          ? reject(\n              new AsyncValidationError(results, convertFieldsError(results)),\n            )\n          : resolve(source);\n      }\n    };\n    if (!objArrKeys.length) {\n      callback(results);\n      resolve(source);\n    }\n    objArrKeys.forEach(key => {\n      const arr = objArr[key];\n      if (firstFields.indexOf(key) !== -1) {\n        asyncSerialArray(arr, func, next);\n      } else {\n        asyncParallelArray(arr, func, next);\n      }\n    });\n  });\n  pending.catch(e => e);\n  return pending;\n}\n\nfunction isErrorObj(\n  obj: ValidateError | string | (() => string),\n): obj is ValidateError {\n  return !!(obj && (obj as ValidateError).message !== undefined);\n}\n\nfunction getValue(value: Values, path: string[]) {\n  let v = value;\n  for (let i = 0; i < path.length; i++) {\n    if (v == undefined) {\n      return v;\n    }\n    v = v[path[i]];\n  }\n  return v;\n}\n\nexport function complementError(rule: InternalRuleItem, source: Values) {\n  return (oe: ValidateError | (() => string) | string): ValidateError => {\n    let fieldValue;\n    if (rule.fullFields) {\n      fieldValue = getValue(source, rule.fullFields);\n    } else {\n      fieldValue = source[(oe as any).field || rule.fullField];\n    }\n    if (isErrorObj(oe)) {\n      oe.field = oe.field || rule.fullField;\n      oe.fieldValue = fieldValue;\n      return oe;\n    }\n    return {\n      message: typeof oe === 'function' ? oe() : oe,\n      fieldValue,\n      field: ((oe as unknown) as ValidateError).field || rule.fullField,\n    };\n  };\n}\n\nexport function deepMerge<T extends object>(target: T, source: Partial<T>): T {\n  if (source) {\n    for (const s in source) {\n      if (source.hasOwnProperty(s)) {\n        const value = source[s];\n        if (typeof value === 'object' && typeof target[s] === 'object') {\n          target[s] = {\n            ...target[s],\n            ...value,\n          };\n        } else {\n          target[s] = value;\n        }\n      }\n    }\n  }\n  return target;\n}\n","import { ExecuteRule } from '../interface';\nimport { format, isEmptyValue } from '../util';\n\nconst required: ExecuteRule = (rule, value, source, errors, options, type) => {\n  if (\n    rule.required &&\n    (!source.hasOwnProperty(rule.field) ||\n      isEmptyValue(value, type || rule.type))\n  ) {\n    errors.push(format(options.messages.required, rule.fullField));\n  }\n};\n\nexport default required;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\n/**\n *  Rule for validating whitespace.\n *\n *  @param rule The validation rule.\n *  @param value The value of the field on the source object.\n *  @param source The source object being validated.\n *  @param errors An array of errors that this rule may add\n *  validation errors to.\n *  @param options The validation options.\n *  @param options.messages The validation messages.\n */\nconst whitespace: ExecuteRule = (rule, value, source, errors, options) => {\n  if (/^\\s+$/.test(value) || value === '') {\n    errors.push(format(options.messages.whitespace, rule.fullField));\n  }\n};\n\nexport default whitespace;\n","// https://github.com/kevva/url-regex/blob/master/index.js\nlet urlReg: RegExp;\n\nexport default () => {\n  if (urlReg) {\n    return urlReg;\n  }\n\n  const word = '[a-fA-F\\\\d:]';\n  const b = options =>\n    options && options.includeBoundaries\n      ? `(?:(?<=\\\\s|^)(?=${word})|(?<=${word})(?=\\\\s|$))`\n      : '';\n\n  const v4 =\n    '(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}';\n\n  const v6seg = '[a-fA-F\\\\d]{1,4}';\n  const v6 = `\n(?:\n(?:${v6seg}:){7}(?:${v6seg}|:)|                                    // 1:2:3:4:5:6:7::  1:2:3:4:5:6:7:8\n(?:${v6seg}:){6}(?:${v4}|:${v6seg}|:)|                             // 1:2:3:4:5:6::    1:2:3:4:5:6::8   1:2:3:4:5:6::8  1:2:3:4:5:6::1.2.3.4\n(?:${v6seg}:){5}(?::${v4}|(?::${v6seg}){1,2}|:)|                   // 1:2:3:4:5::      1:2:3:4:5::7:8   1:2:3:4:5::8    1:2:3:4:5::7:1.2.3.4\n(?:${v6seg}:){4}(?:(?::${v6seg}){0,1}:${v4}|(?::${v6seg}){1,3}|:)| // 1:2:3:4::        1:2:3:4::6:7:8   1:2:3:4::8      1:2:3:4::6:7:1.2.3.4\n(?:${v6seg}:){3}(?:(?::${v6seg}){0,2}:${v4}|(?::${v6seg}){1,4}|:)| // 1:2:3::          1:2:3::5:6:7:8   1:2:3::8        1:2:3::5:6:7:1.2.3.4\n(?:${v6seg}:){2}(?:(?::${v6seg}){0,3}:${v4}|(?::${v6seg}){1,5}|:)| // 1:2::            1:2::4:5:6:7:8   1:2::8          1:2::4:5:6:7:1.2.3.4\n(?:${v6seg}:){1}(?:(?::${v6seg}){0,4}:${v4}|(?::${v6seg}){1,6}|:)| // 1::              1::3:4:5:6:7:8   1::8            1::3:4:5:6:7:1.2.3.4\n(?::(?:(?::${v6seg}){0,5}:${v4}|(?::${v6seg}){1,7}|:))             // ::2:3:4:5:6:7:8  ::2:3:4:5:6:7:8  ::8             ::1.2.3.4\n)(?:%[0-9a-zA-Z]{1,})?                                             // %eth0            %1\n`\n    .replace(/\\s*\\/\\/.*$/gm, '')\n    .replace(/\\n/g, '')\n    .trim();\n\n  // Pre-compile only the exact regexes because adding a global flag make regexes stateful\n  const v46Exact = new RegExp(`(?:^${v4}$)|(?:^${v6}$)`);\n  const v4exact = new RegExp(`^${v4}$`);\n  const v6exact = new RegExp(`^${v6}$`);\n\n  const ip = options =>\n    options && options.exact\n      ? v46Exact\n      : new RegExp(\n          `(?:${b(options)}${v4}${b(options)})|(?:${b(options)}${v6}${b(\n            options,\n          )})`,\n          'g',\n        );\n\n  ip.v4 = (options?) =>\n    options && options.exact\n      ? v4exact\n      : new RegExp(`${b(options)}${v4}${b(options)}`, 'g');\n  ip.v6 = (options?) =>\n    options && options.exact\n      ? v6exact\n      : new RegExp(`${b(options)}${v6}${b(options)}`, 'g');\n\n  const protocol = `(?:(?:[a-z]+:)?//)`;\n  const auth = '(?:\\\\S+(?::\\\\S*)?@)?';\n  const ipv4 = ip.v4().source;\n  const ipv6 = ip.v6().source;\n  const host = '(?:(?:[a-z\\\\u00a1-\\\\uffff0-9][-_]*)*[a-z\\\\u00a1-\\\\uffff0-9]+)';\n  const domain =\n    '(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*';\n  const tld = `(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))`;\n  const port = '(?::\\\\d{2,5})?';\n  const path = '(?:[/?#][^\\\\s\"]*)?';\n  const regex = `(?:${protocol}|www\\\\.)${auth}(?:localhost|${ipv4}|${ipv6}|${host}${domain}${tld})${port}${path}`;\n  urlReg = new RegExp(`(?:^${regex}$)`, 'i');\n  return urlReg;\n};\n","import { ExecuteRule, Value } from '../interface';\nimport { format } from '../util';\nimport required from './required';\nimport getUrlRegex from './url';\n/* eslint max-len:0 */\n\nconst pattern = {\n  // http://emailregex.com/\n  email: /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]+\\.)+[a-zA-Z\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]{2,}))$/,\n  // url: new RegExp(\n  //   '^(?!mailto:)(?:(?:http|https|ftp)://|//)(?:\\\\S+(?::\\\\S*)?@)?(?:(?:(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}(?:\\\\.(?:[0-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))|(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]+-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,})))|localhost)(?::\\\\d{2,5})?(?:(/|\\\\?|#)[^\\\\s]*)?$',\n  //   'i',\n  // ),\n  hex: /^#?([a-f0-9]{6}|[a-f0-9]{3})$/i,\n};\n\nconst types = {\n  integer(value: Value) {\n    return types.number(value) && parseInt(value, 10) === value;\n  },\n  float(value: Value) {\n    return types.number(value) && !types.integer(value);\n  },\n  array(value: Value) {\n    return Array.isArray(value);\n  },\n  regexp(value: Value) {\n    if (value instanceof RegExp) {\n      return true;\n    }\n    try {\n      return !!new RegExp(value);\n    } catch (e) {\n      return false;\n    }\n  },\n  date(value: Value) {\n    return (\n      typeof value.getTime === 'function' &&\n      typeof value.getMonth === 'function' &&\n      typeof value.getYear === 'function' &&\n      !isNaN(value.getTime())\n    );\n  },\n  number(value: Value) {\n    if (isNaN(value)) {\n      return false;\n    }\n    return typeof value === 'number';\n  },\n  object(value: Value) {\n    return typeof value === 'object' && !types.array(value);\n  },\n  method(value: Value) {\n    return typeof value === 'function';\n  },\n  email(value: Value) {\n    return (\n      typeof value === 'string' &&\n      value.length <= 320 &&\n      !!value.match(pattern.email)\n    );\n  },\n  url(value: Value) {\n    return (\n      typeof value === 'string' &&\n      value.length <= 2048 &&\n      !!value.match(getUrlRegex())\n    );\n  },\n  hex(value: Value) {\n    return typeof value === 'string' && !!value.match(pattern.hex);\n  },\n};\n\nconst type: ExecuteRule = (rule, value, source, errors, options) => {\n  if (rule.required && value === undefined) {\n    required(rule, value, source, errors, options);\n    return;\n  }\n  const custom = [\n    'integer',\n    'float',\n    'array',\n    'regexp',\n    'object',\n    'method',\n    'email',\n    'number',\n    'date',\n    'url',\n    'hex',\n  ];\n  const ruleType = rule.type;\n  if (custom.indexOf(ruleType) > -1) {\n    if (!types[ruleType](value)) {\n      errors.push(\n        format(options.messages.types[ruleType], rule.fullField, rule.type),\n      );\n    }\n    // straight typeof check\n  } else if (ruleType && typeof value !== rule.type) {\n    errors.push(\n      format(options.messages.types[ruleType], rule.fullField, rule.type),\n    );\n  }\n};\n\nexport default type;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst range: ExecuteRule = (rule, value, source, errors, options) => {\n  const len = typeof rule.len === 'number';\n  const min = typeof rule.min === 'number';\n  const max = typeof rule.max === 'number';\n  // 正则匹配码点范围从U+010000一直到U+10FFFF的文字（补充平面Supplementary Plane）\n  const spRegexp = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g;\n  let val = value;\n  let key = null;\n  const num = typeof value === 'number';\n  const str = typeof value === 'string';\n  const arr = Array.isArray(value);\n  if (num) {\n    key = 'number';\n  } else if (str) {\n    key = 'string';\n  } else if (arr) {\n    key = 'array';\n  }\n  // if the value is not of a supported type for range validation\n  // the validation rule rule should use the\n  // type property to also test for a particular type\n  if (!key) {\n    return false;\n  }\n  if (arr) {\n    val = value.length;\n  }\n  if (str) {\n    // 处理码点大于U+010000的文字length属性不准确的bug，如\"𠮷𠮷𠮷\".lenght !== 3\n    val = value.replace(spRegexp, '_').length;\n  }\n  if (len) {\n    if (val !== rule.len) {\n      errors.push(format(options.messages[key].len, rule.fullField, rule.len));\n    }\n  } else if (min && !max && val < rule.min) {\n    errors.push(format(options.messages[key].min, rule.fullField, rule.min));\n  } else if (max && !min && val > rule.max) {\n    errors.push(format(options.messages[key].max, rule.fullField, rule.max));\n  } else if (min && max && (val < rule.min || val > rule.max)) {\n    errors.push(\n      format(options.messages[key].range, rule.fullField, rule.min, rule.max),\n    );\n  }\n};\n\nexport default range;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteRule = (rule, value, source, errors, options) => {\n  rule[ENUM] = Array.isArray(rule[ENUM]) ? rule[ENUM] : [];\n  if (rule[ENUM].indexOf(value) === -1) {\n    errors.push(\n      format(options.messages[ENUM], rule.fullField, rule[ENUM].join(', ')),\n    );\n  }\n};\n\nexport default enumerable;\n","import { ExecuteRule } from '../interface';\nimport { format } from '../util';\n\nconst pattern: ExecuteRule = (rule, value, source, errors, options) => {\n  if (rule.pattern) {\n    if (rule.pattern instanceof RegExp) {\n      // if a RegExp instance is passed, reset `lastIndex` in case its `global`\n      // flag is accidentally set to `true`, which in a validation scenario\n      // is not necessary and the result might be misleading\n      rule.pattern.lastIndex = 0;\n      if (!rule.pattern.test(value)) {\n        errors.push(\n          format(\n            options.messages.pattern.mismatch,\n            rule.fullField,\n            value,\n            rule.pattern,\n          ),\n        );\n      }\n    } else if (typeof rule.pattern === 'string') {\n      const _pattern = new RegExp(rule.pattern);\n      if (!_pattern.test(value)) {\n        errors.push(\n          format(\n            options.messages.pattern.mismatch,\n            rule.fullField,\n            value,\n            rule.pattern,\n          ),\n        );\n      }\n    }\n  }\n};\n\nexport default pattern;\n","import required from './required';\nimport whitespace from './whitespace';\nimport type from './type';\nimport range from './range';\nimport enumRule from './enum';\nimport pattern from './pattern';\n\nexport default {\n  required,\n  whitespace,\n  type,\n  range,\n  enum: enumRule,\n  pattern,\n};\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst string: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'string');\n    if (!isEmptyValue(value, 'string')) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n      rules.pattern(rule, value, source, errors, options);\n      if (rule.whitespace === true) {\n        rules.whitespace(rule, value, source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\n\nexport default string;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst method: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default method;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst number: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (value === '') {\n      value = undefined;\n    }\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default number;\n","import { isEmptyValue } from '../util';\nimport rules from '../rule';\nimport { ExecuteValidator } from '../interface';\n\nconst boolean: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default boolean;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst regexp: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default regexp;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst integer: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default integer;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst floatFn: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default floatFn;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule/index';\n\nconst array: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if ((value === undefined || value === null) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, 'array');\n    if (value !== undefined && value !== null) {\n      rules.type(rule, value, source, errors, options);\n      rules.range(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default array;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst object: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default object;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst ENUM = 'enum' as const;\n\nconst enumerable: ExecuteValidator = (\n  rule,\n  value,\n  callback,\n  source,\n  options,\n) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (value !== undefined) {\n      rules[ENUM](rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default enumerable;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst pattern: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, 'string') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'string')) {\n      rules.pattern(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default pattern;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst date: ExecuteValidator = (rule, value, callback, source, options) => {\n  // console.log('integer rule called %j', rule);\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  // console.log('validate on %s value', value);\n  if (validate) {\n    if (isEmptyValue(value, 'date') && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n    if (!isEmptyValue(value, 'date')) {\n      let dateObject;\n\n      if (value instanceof Date) {\n        dateObject = value;\n      } else {\n        dateObject = new Date(value);\n      }\n\n      rules.type(rule, dateObject, source, errors, options);\n      if (dateObject) {\n        rules.range(rule, dateObject.getTime(), source, errors, options);\n      }\n    }\n  }\n  callback(errors);\n};\n\nexport default date;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\n\nconst required: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const type = Array.isArray(value) ? 'array' : typeof value;\n  rules.required(rule, value, source, errors, options, type);\n  callback(errors);\n};\n\nexport default required;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst type: ExecuteValidator = (rule, value, callback, source, options) => {\n  const ruleType = rule.type;\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value, ruleType) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options, ruleType);\n    if (!isEmptyValue(value, ruleType)) {\n      rules.type(rule, value, source, errors, options);\n    }\n  }\n  callback(errors);\n};\n\nexport default type;\n","import { ExecuteValidator } from '../interface';\nimport rules from '../rule';\nimport { isEmptyValue } from '../util';\n\nconst any: ExecuteValidator = (rule, value, callback, source, options) => {\n  const errors: string[] = [];\n  const validate =\n    rule.required || (!rule.required && source.hasOwnProperty(rule.field));\n  if (validate) {\n    if (isEmptyValue(value) && !rule.required) {\n      return callback();\n    }\n    rules.required(rule, value, source, errors, options);\n  }\n  callback(errors);\n};\n\nexport default any;\n","import string from './string';\nimport method from './method';\nimport number from './number';\nimport boolean from './boolean';\nimport regexp from './regexp';\nimport integer from './integer';\nimport float from './float';\nimport array from './array';\nimport object from './object';\nimport enumValidator from './enum';\nimport pattern from './pattern';\nimport date from './date';\nimport required from './required';\nimport type from './type';\nimport any from './any';\n\nexport default {\n  string,\n  method,\n  number,\n  boolean,\n  regexp,\n  integer,\n  float,\n  array,\n  object,\n  enum: enumValidator,\n  pattern,\n  date,\n  url: type,\n  hex: type,\n  email: type,\n  required,\n  any,\n};\n","import { InternalValidateMessages } from './interface';\n\nexport function newMessages(): InternalValidateMessages {\n  return {\n    default: 'Validation error on field %s',\n    required: '%s is required',\n    enum: '%s must be one of %s',\n    whitespace: '%s cannot be empty',\n    date: {\n      format: '%s date %s is invalid for format %s',\n      parse: '%s date could not be parsed, %s is invalid ',\n      invalid: '%s date %s is invalid',\n    },\n    types: {\n      string: '%s is not a %s',\n      method: '%s is not a %s (function)',\n      array: '%s is not an %s',\n      object: '%s is not an %s',\n      number: '%s is not a %s',\n      date: '%s is not a %s',\n      boolean: '%s is not a %s',\n      integer: '%s is not an %s',\n      float: '%s is not a %s',\n      regexp: '%s is not a valid %s',\n      email: '%s is not a valid %s',\n      url: '%s is not a valid %s',\n      hex: '%s is not a valid %s',\n    },\n    string: {\n      len: '%s must be exactly %s characters',\n      min: '%s must be at least %s characters',\n      max: '%s cannot be longer than %s characters',\n      range: '%s must be between %s and %s characters',\n    },\n    number: {\n      len: '%s must equal %s',\n      min: '%s cannot be less than %s',\n      max: '%s cannot be greater than %s',\n      range: '%s must be between %s and %s',\n    },\n    array: {\n      len: '%s must be exactly %s in length',\n      min: '%s cannot be less than %s in length',\n      max: '%s cannot be greater than %s in length',\n      range: '%s must be between %s and %s in length',\n    },\n    pattern: {\n      mismatch: '%s value %s does not match pattern %s',\n    },\n    clone() {\n      const cloned = JSON.parse(JSON.stringify(this));\n      cloned.clone = this.clone;\n      return cloned;\n    },\n  };\n}\n\nexport const messages = newMessages();\n","import {\n  format,\n  complementError,\n  asyncMap,\n  warning,\n  deepMerge,\n  convertFieldsError,\n} from './util';\nimport validators from './validator/index';\nimport { messages as defaultMessages, newMessages } from './messages';\nimport {\n  InternalRuleItem,\n  InternalValidateMessages,\n  Rule,\n  RuleItem,\n  Rules,\n  ValidateCallback,\n  ValidateMessages,\n  ValidateOption,\n  Values,\n  RuleValuePackage,\n  ValidateError,\n  ValidateFieldsError,\n  SyncErrorType,\n  ValidateResult,\n} from './interface';\n\nexport * from './interface';\n\n/**\n *  Encapsulates a validation schema.\n *\n *  @param descriptor An object declaring validation rules\n *  for this schema.\n */\nclass Schema {\n  // ========================= Static =========================\n  static register = function register(type: string, validator) {\n    if (typeof validator !== 'function') {\n      throw new Error(\n        'Cannot register a validator by type, validator is not a function',\n      );\n    }\n    validators[type] = validator;\n  };\n\n  static warning = warning;\n\n  static messages = defaultMessages;\n\n  static validators = validators;\n\n  // ======================== Instance ========================\n  rules: Record<string, RuleItem[]> = null;\n  _messages: InternalValidateMessages = defaultMessages;\n\n  constructor(descriptor: Rules) {\n    this.define(descriptor);\n  }\n\n  define(rules: Rules) {\n    if (!rules) {\n      throw new Error('Cannot configure a schema with no rules');\n    }\n    if (typeof rules !== 'object' || Array.isArray(rules)) {\n      throw new Error('Rules must be an object');\n    }\n    this.rules = {};\n\n    Object.keys(rules).forEach(name => {\n      const item: Rule = rules[name];\n      this.rules[name] = Array.isArray(item) ? item : [item];\n    });\n  }\n\n  messages(messages?: ValidateMessages) {\n    if (messages) {\n      this._messages = deepMerge(newMessages(), messages);\n    }\n    return this._messages;\n  }\n\n  validate(\n    source: Values,\n    option?: ValidateOption,\n    callback?: ValidateCallback,\n  ): Promise<Values>;\n  validate(source: Values, callback: ValidateCallback): Promise<Values>;\n  validate(source: Values): Promise<Values>;\n\n  validate(source_: Values, o: any = {}, oc: any = () => {}): Promise<Values> {\n    let source: Values = source_;\n    let options: ValidateOption = o;\n    let callback: ValidateCallback = oc;\n    if (typeof options === 'function') {\n      callback = options;\n      options = {};\n    }\n    if (!this.rules || Object.keys(this.rules).length === 0) {\n      if (callback) {\n        callback(null, source);\n      }\n      return Promise.resolve(source);\n    }\n\n    function complete(results: (ValidateError | ValidateError[])[]) {\n      let errors: ValidateError[] = [];\n      let fields: ValidateFieldsError = {};\n\n      function add(e: ValidateError | ValidateError[]) {\n        if (Array.isArray(e)) {\n          errors = errors.concat(...e);\n        } else {\n          errors.push(e);\n        }\n      }\n\n      for (let i = 0; i < results.length; i++) {\n        add(results[i]);\n      }\n      if (!errors.length) {\n        callback(null, source);\n      } else {\n        fields = convertFieldsError(errors);\n        (callback as (\n          errors: ValidateError[],\n          fields: ValidateFieldsError,\n        ) => void)(errors, fields);\n      }\n    }\n\n    if (options.messages) {\n      let messages = this.messages();\n      if (messages === defaultMessages) {\n        messages = newMessages();\n      }\n      deepMerge(messages, options.messages);\n      options.messages = messages;\n    } else {\n      options.messages = this.messages();\n    }\n\n    const series: Record<string, RuleValuePackage[]> = {};\n    const keys = options.keys || Object.keys(this.rules);\n    keys.forEach(z => {\n      const arr = this.rules[z];\n      let value = source[z];\n      arr.forEach(r => {\n        let rule: InternalRuleItem = r;\n        if (typeof rule.transform === 'function') {\n          if (source === source_) {\n            source = { ...source };\n          }\n          value = source[z] = rule.transform(value);\n        }\n        if (typeof rule === 'function') {\n          rule = {\n            validator: rule,\n          };\n        } else {\n          rule = { ...rule };\n        }\n\n        // Fill validator. Skip if nothing need to validate\n        rule.validator = this.getValidationMethod(rule);\n        if (!rule.validator) {\n          return;\n        }\n\n        rule.field = z;\n        rule.fullField = rule.fullField || z;\n        rule.type = this.getType(rule);\n        series[z] = series[z] || [];\n        series[z].push({\n          rule,\n          value,\n          source,\n          field: z,\n        });\n      });\n    });\n    const errorFields = {};\n    return asyncMap(\n      series,\n      options,\n      (data, doIt) => {\n        const rule = data.rule;\n        let deep =\n          (rule.type === 'object' || rule.type === 'array') &&\n          (typeof rule.fields === 'object' ||\n            typeof rule.defaultField === 'object');\n        deep = deep && (rule.required || (!rule.required && data.value));\n        rule.field = data.field;\n\n        function addFullField(key: string, schema: RuleItem) {\n          return {\n            ...schema,\n            fullField: `${rule.fullField}.${key}`,\n            fullFields: rule.fullFields ? [...rule.fullFields, key] : [key],\n          };\n        }\n\n        function cb(e: SyncErrorType | SyncErrorType[] = []) {\n          let errorList = Array.isArray(e) ? e : [e];\n          if (!options.suppressWarning && errorList.length) {\n            Schema.warning('async-validator:', errorList);\n          }\n          if (errorList.length && rule.message !== undefined) {\n            errorList = [].concat(rule.message);\n          }\n\n          // Fill error info\n          let filledErrors = errorList.map(complementError(rule, source));\n\n          if (options.first && filledErrors.length) {\n            errorFields[rule.field] = 1;\n            return doIt(filledErrors);\n          }\n          if (!deep) {\n            doIt(filledErrors);\n          } else {\n            // if rule is required but the target object\n            // does not exist fail at the rule level and don't\n            // go deeper\n            if (rule.required && !data.value) {\n              if (rule.message !== undefined) {\n                filledErrors = []\n                  .concat(rule.message)\n                  .map(complementError(rule, source));\n              } else if (options.error) {\n                filledErrors = [\n                  options.error(\n                    rule,\n                    format(options.messages.required, rule.field),\n                  ),\n                ];\n              }\n              return doIt(filledErrors);\n            }\n\n            let fieldsSchema: Record<string, Rule> = {};\n            if (rule.defaultField) {\n              Object.keys(data.value).map(key => {\n                fieldsSchema[key] = rule.defaultField;\n              });\n            }\n            fieldsSchema = {\n              ...fieldsSchema,\n              ...data.rule.fields,\n            };\n\n            const paredFieldsSchema: Record<string, RuleItem[]> = {};\n\n            Object.keys(fieldsSchema).forEach(field => {\n              const fieldSchema = fieldsSchema[field];\n              const fieldSchemaList = Array.isArray(fieldSchema)\n                ? fieldSchema\n                : [fieldSchema];\n              paredFieldsSchema[field] = fieldSchemaList.map(\n                addFullField.bind(null, field),\n              );\n            });\n            const schema = new Schema(paredFieldsSchema);\n            schema.messages(options.messages);\n            if (data.rule.options) {\n              data.rule.options.messages = options.messages;\n              data.rule.options.error = options.error;\n            }\n            schema.validate(data.value, data.rule.options || options, errs => {\n              const finalErrors = [];\n              if (filledErrors && filledErrors.length) {\n                finalErrors.push(...filledErrors);\n              }\n              if (errs && errs.length) {\n                finalErrors.push(...errs);\n              }\n              doIt(finalErrors.length ? finalErrors : null);\n            });\n          }\n        }\n\n        let res: ValidateResult;\n        if (rule.asyncValidator) {\n          res = rule.asyncValidator(rule, data.value, cb, data.source, options);\n        } else if (rule.validator) {\n          try {\n            res = rule.validator(rule, data.value, cb, data.source, options);\n          } catch (error) {\n            console.error?.(error);\n            // rethrow to report error\n            if (!options.suppressValidatorError) {\n              setTimeout(() => {\n                throw error;\n              }, 0);\n            }\n            cb(error.message);\n          }\n          if (res === true) {\n            cb();\n          } else if (res === false) {\n            cb(\n              typeof rule.message === 'function'\n                ? rule.message(rule.fullField || rule.field)\n                : rule.message || `${rule.fullField || rule.field} fails`,\n            );\n          } else if (res instanceof Array) {\n            cb(res);\n          } else if (res instanceof Error) {\n            cb(res.message);\n          }\n        }\n        if (res && (res as Promise<void>).then) {\n          (res as Promise<void>).then(\n            () => cb(),\n            e => cb(e),\n          );\n        }\n      },\n      results => {\n        complete(results);\n      },\n      source,\n    );\n  }\n\n  getType(rule: InternalRuleItem) {\n    if (rule.type === undefined && rule.pattern instanceof RegExp) {\n      rule.type = 'pattern';\n    }\n    if (\n      typeof rule.validator !== 'function' &&\n      rule.type &&\n      !validators.hasOwnProperty(rule.type)\n    ) {\n      throw new Error(format('Unknown rule type %s', rule.type));\n    }\n    return rule.type || 'string';\n  }\n\n  getValidationMethod(rule: InternalRuleItem) {\n    if (typeof rule.validator === 'function') {\n      return rule.validator;\n    }\n    const keys = Object.keys(rule);\n    const messageIndex = keys.indexOf('message');\n    if (messageIndex !== -1) {\n      keys.splice(messageIndex, 1);\n    }\n    if (keys.length === 1 && keys[0] === 'required') {\n      return validators.required;\n    }\n    return validators[this.getType(rule)] || undefined;\n  }\n}\n\nexport default Schema;\n","import type { CNode } from 'css-render'\nimport { c } from '../../_utils/cssr'\nimport commonVariables from '../common/_common'\n\nconst { cubicBezierEaseInOut } = commonVariables\n\ninterface FadeDownTransitionOptions {\n  name?: string\n  fromOffset?: string\n  enterDuration?: string\n  leaveDuration?: string\n  enterCubicBezier?: string\n  leaveCubicBezier?: string\n}\n\nexport function fadeDownTransition({\n  name = 'fade-down',\n  fromOffset = '-4px',\n  enterDuration = '.3s',\n  leaveDuration = '.3s',\n  enterCubicBezier = cubicBezierEaseInOut,\n  leaveCubicBezier = cubicBezierEaseInOut\n}: FadeDownTransitionOptions = {}): CNode[] {\n  return [\n    c(`&.${name}-transition-enter-from, &.${name}-transition-leave-to`, {\n      opacity: 0,\n      transform: `translateY(${fromOffset})`\n    }),\n    c(`&.${name}-transition-enter-to, &.${name}-transition-leave-from`, {\n      opacity: 1,\n      transform: 'translateY(0)'\n    }),\n    c(`&.${name}-transition-leave-active`, {\n      transition: `opacity ${leaveDuration} ${leaveCubicBezier}, transform ${leaveDuration} ${leaveCubicBezier}`\n    }),\n    c(`&.${name}-transition-enter-active`, {\n      transition: `opacity ${enterDuration} ${enterCubicBezier}, transform ${enterDuration} ${enterCubicBezier}`\n    })\n  ]\n}\n","import { fadeDownTransition } from '../../../_styles/transitions/fade-down.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-line-height\n// --n-blank-height\n// --n-feedback-padding\n// --n-feedback-font-size\n// --n-label-font-size-left\n// --n-label-font-size-top\n// --n-label-height\n// --n-label-padding\n// --n-asterisk-color\n// --n-label-text-color\n// --n-bezier\n// --n-feedback-text-color\n// --n-feedback-text-color-warning\n// --n-feedback-text-color-error\n// --n-label-text-align\n// --n-label-padding\nexport default cB('form-item', `\n  display: grid;\n  line-height: var(--n-line-height);\n`, [\n  cB('form-item-label', `\n    grid-area: label;\n    align-items: center;\n    line-height: 1.25;\n    text-align: var(--n-label-text-align);\n    font-size: var(--n-label-font-size);\n    min-height: var(--n-label-height);\n    padding: var(--n-label-padding);\n    color: var(--n-label-text-color);\n    transition: color .3s var(--n-bezier);\n    box-sizing: border-box;\n    font-weight: var(--n-label-font-weight);\n  `, [\n    cE('asterisk', `\n      white-space: nowrap;\n      user-select: none;\n      -webkit-user-select: none;\n      color: var(--n-asterisk-color);\n      transition: color .3s var(--n-bezier);\n    `),\n    cE('asterisk-placeholder', `\n      grid-area: mark;\n      user-select: none;\n      -webkit-user-select: none;\n      visibility: hidden;      \n    `)\n  ]),\n  cB('form-item-blank', `\n    grid-area: blank;\n    min-height: var(--n-blank-height);\n  `),\n  cM('auto-label-width', [\n    cB('form-item-label', 'white-space: nowrap;')\n  ]),\n  cM('left-labelled', `\n    grid-template-areas:\n      \"label blank\"\n      \"label feedback\";\n    grid-template-columns: auto minmax(0, 1fr);\n    grid-template-rows: auto 1fr;\n    align-items: flex-start;\n  `, [\n    cB('form-item-label', `\n      display: grid;\n      grid-template-columns: 1fr auto;\n      min-height: var(--n-blank-height);\n      height: auto;\n      box-sizing: border-box;\n      flex-shrink: 0;\n      flex-grow: 0;\n    `, [\n      cM('reverse-columns-space', `\n        grid-template-columns: auto 1fr;\n      `),\n      cM('left-mark', `\n        grid-template-areas:\n          \"mark text\"\n          \".    text\";\n      `),\n      cM('right-mark', `\n        grid-template-areas: \n          \"text mark\"\n          \"text .\";\n      `),\n      cM('right-hanging-mark', `\n        grid-template-areas: \n          \"text mark\"\n          \"text .\";\n      `),\n      cE('text', `\n        grid-area: text;      \n      `),\n      cE('asterisk', `\n        grid-area: mark;      \n        align-self: end;\n      `)\n    ])\n  ]),\n  cM('top-labelled', `\n    grid-template-areas:\n      \"label\"\n      \"blank\"\n      \"feedback\";\n    grid-template-rows: minmax(var(--n-label-height), auto) 1fr;\n    grid-template-columns: minmax(0, 100%);\n  `, [\n    cM('no-label', `\n      grid-template-areas:\n        \"blank\"\n        \"feedback\";\n        grid-template-rows: 1fr;\n    `),\n    cB('form-item-label', `\n      display: flex;\n      align-items: flex-start;\n      justify-content: var(--n-label-text-align);\n    `)\n  ]),\n  cB('form-item-blank', `\n    box-sizing: border-box;\n    display: flex;\n    align-items: center;\n    position: relative;\n  `),\n  cB('form-item-feedback-wrapper', `\n    grid-area: feedback;\n    box-sizing: border-box;\n    min-height: var(--n-feedback-height);\n    font-size: var(--n-feedback-font-size);\n    line-height: 1.25;\n    transform-origin: top left;\n  `, [\n    c('&:not(:empty)', `\n      padding: var(--n-feedback-padding);\n    `),\n    cB('form-item-feedback', {\n      transition: 'color .3s var(--n-bezier)',\n      color: 'var(--n-feedback-text-color)'\n    }, [\n      cM('warning', {\n        color: 'var(--n-feedback-text-color-warning)'\n      }),\n      cM('error', {\n        color: 'var(--n-feedback-text-color-error)'\n      }),\n      fadeDownTransition({\n        fromOffset: '-3px',\n        enterDuration: '.3s',\n        leaveDuration: '.2s'\n      })\n    ])\n  ])\n])\n","import type { ComputedRef } from 'vue'\nimport type { FormItemSetupProps } from './FormItem'\nimport type { FormItemRule } from './interface'\nimport type { FormItemSize } from './public-types'\nimport { get } from 'lodash-es'\nimport { computed, inject, ref } from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { formatLength } from '../../_utils'\nimport { formInjectionKey } from './context'\n\nexport function formItemSize(props: FormItemSetupProps): {\n  mergedSize: ComputedRef<FormItemSize>\n} {\n  const NForm = inject(formInjectionKey, null)\n  const { mergedComponentPropsRef } = useConfig(props)\n  return {\n    mergedSize: computed(() => {\n      if (props.size !== undefined)\n        return props.size\n\n      if (NForm?.props.size !== undefined)\n        return NForm.props.size\n\n      const configSize = mergedComponentPropsRef?.value?.Form?.size\n      if (configSize)\n        return configSize\n\n      return 'medium'\n    })\n  }\n}\n\nexport function formItemMisc(props: FormItemSetupProps) {\n  const NForm = inject(formInjectionKey, null)\n  const mergedLabelPlacementRef = computed(() => {\n    const { labelPlacement } = props\n    if (labelPlacement !== undefined)\n      return labelPlacement\n    if (NForm?.props.labelPlacement)\n      return NForm.props.labelPlacement\n    return 'top'\n  })\n  const isAutoLabelWidthRef = computed(() => {\n    return (\n      mergedLabelPlacementRef.value === 'left'\n      && (props.labelWidth === 'auto' || NForm?.props.labelWidth === 'auto')\n    )\n  })\n  const mergedLabelWidthRef = computed(() => {\n    if (mergedLabelPlacementRef.value === 'top')\n      return\n    const { labelWidth } = props\n\n    if (labelWidth !== undefined && labelWidth !== 'auto') {\n      return formatLength(labelWidth)\n    }\n\n    if (isAutoLabelWidthRef.value) {\n      const autoComputedWidth = NForm?.maxChildLabelWidthRef.value\n      if (autoComputedWidth !== undefined) {\n        return formatLength(autoComputedWidth)\n      }\n      else {\n        return undefined\n      }\n    }\n\n    if (NForm?.props.labelWidth !== undefined) {\n      return formatLength(NForm.props.labelWidth)\n    }\n    return undefined\n  })\n  const mergedLabelAlignRef = computed(() => {\n    const { labelAlign } = props\n    if (labelAlign)\n      return labelAlign\n    if (NForm?.props.labelAlign)\n      return NForm.props.labelAlign\n    return undefined\n  })\n  const mergedLabelStyleRef = computed(() => {\n    return [\n      props.labelProps?.style,\n      props.labelStyle,\n      {\n        width: mergedLabelWidthRef.value\n      }\n    ]\n  })\n  const mergedShowRequireMarkRef = computed(() => {\n    const { showRequireMark } = props\n    if (showRequireMark !== undefined)\n      return showRequireMark\n    return NForm?.props.showRequireMark\n  })\n  const mergedRequireMarkPlacementRef = computed(() => {\n    const { requireMarkPlacement } = props\n    if (requireMarkPlacement !== undefined)\n      return requireMarkPlacement\n    return NForm?.props.requireMarkPlacement || 'right'\n  })\n  const validationErroredRef = ref(false)\n  const validationWarnedRef = ref(false)\n  const mergedValidationStatusRef = computed(() => {\n    const { validationStatus } = props\n    if (validationStatus !== undefined)\n      return validationStatus\n    if (validationErroredRef.value)\n      return 'error'\n    if (validationWarnedRef.value)\n      return 'warning'\n    return undefined\n  })\n  const mergedShowFeedbackRef = computed(() => {\n    const { showFeedback } = props\n    if (showFeedback !== undefined)\n      return showFeedback\n    if (NForm?.props.showFeedback !== undefined)\n      return NForm.props.showFeedback\n    return true\n  })\n  const mergedShowLabelRef = computed(() => {\n    const { showLabel } = props\n    if (showLabel !== undefined)\n      return showLabel\n    if (NForm?.props.showLabel !== undefined)\n      return NForm.props.showLabel\n    return true\n  })\n  return {\n    validationErrored: validationErroredRef,\n    validationWarned: validationWarnedRef,\n    mergedLabelStyle: mergedLabelStyleRef,\n    mergedLabelPlacement: mergedLabelPlacementRef,\n    mergedLabelAlign: mergedLabelAlignRef,\n    mergedShowRequireMark: mergedShowRequireMarkRef,\n    mergedRequireMarkPlacement: mergedRequireMarkPlacementRef,\n    mergedValidationStatus: mergedValidationStatusRef,\n    mergedShowFeedback: mergedShowFeedbackRef,\n    mergedShowLabel: mergedShowLabelRef,\n    isAutoLabelWidth: isAutoLabelWidthRef\n  }\n}\n\nexport function formItemRule(props: FormItemSetupProps) {\n  const NForm = inject(formInjectionKey, null)\n  const compatibleRulePathRef = computed(() => {\n    const { rulePath } = props\n    if (rulePath !== undefined)\n      return rulePath\n    const { path } = props\n    if (path !== undefined)\n      return path\n    return undefined\n  })\n  const mergedRulesRef = computed(() => {\n    const rules: FormItemRule[] = []\n    const { rule } = props\n    if (rule !== undefined) {\n      if (Array.isArray(rule))\n        rules.push(...rule)\n      else rules.push(rule)\n    }\n    if (NForm) {\n      const { rules: formRules } = NForm.props\n      const { value: rulePath } = compatibleRulePathRef\n      if (formRules !== undefined && rulePath !== undefined) {\n        const formRule = get(formRules, rulePath)\n        if (formRule !== undefined) {\n          if (Array.isArray(formRule)) {\n            rules.push(...formRule)\n          }\n          else {\n            // terminate object must be a form item rule\n            rules.push(formRule as FormItemRule)\n          }\n        }\n      }\n    }\n    return rules\n  })\n  const hasRequiredRuleRef = computed(() => {\n    return mergedRulesRef.value.some(rule => rule.required)\n  })\n  // deprecated\n  const mergedRequiredRef = computed(() => {\n    return hasRequiredRuleRef.value || props.required\n  })\n  return {\n    mergedRules: mergedRulesRef,\n    mergedRequired: mergedRequiredRef\n  }\n}\n","import type { RuleItem, ValidateError, ValidateOption } from 'async-validator'\nimport type {\n  CSSProperties,\n  ExtractPropTypes,\n  LabelHTMLAttributes,\n  PropType,\n  Ref,\n  Slot,\n  SlotsType,\n  VNodeChild\n} from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FormTheme, FormThemeOverrides } from '../styles'\nimport type {\n  FormItemInst,\n  FormItemInternalValidate,\n  FormItemInternalValidateResult,\n  FormItemRule,\n  FormItemRuleValidator,\n  FormItemRuleValidatorParams,\n  FormItemSlots,\n  FormItemValidateOptions,\n  LabelAlign,\n  LabelPlacement,\n  ShouldRuleBeApplied,\n  ValidateCallback,\n  ValidationTrigger\n} from './interface'\nimport Schema from 'async-validator'\nimport { get } from 'lodash-es'\nimport { createId } from 'seemly'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watch\n} from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { formItemInjectionKey } from '../../_mixins/use-form-item'\nimport {\n  createKey,\n  keysOf,\n  resolveWrappedSlot,\n  useInjectionInstanceCollection,\n  warn\n} from '../../_utils'\nimport { formLight } from '../styles'\nimport { formInjectionKey, formItemInstsInjectionKey } from './context'\nimport style from './styles/form-item.cssr'\nimport { formItemMisc, formItemRule, formItemSize } from './utils'\n\nexport const formItemProps = {\n  ...(useTheme.props as ThemeProps<FormTheme, FormThemeOverrides>),\n  label: String,\n  labelWidth: [Number, String] as PropType<string | number>,\n  labelStyle: [String, Object] as PropType<CSSProperties | string>,\n  labelAlign: String as PropType<LabelAlign>,\n  labelPlacement: String as PropType<LabelPlacement>,\n  path: String,\n  first: Boolean,\n  rulePath: String,\n  required: Boolean,\n  showRequireMark: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  requireMarkPlacement: String as PropType<'left' | 'right' | 'right-hanging'>,\n  showFeedback: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  rule: [Object, Array] as PropType<FormItemRule | FormItemRule[]>,\n  size: String as PropType<'small' | 'medium' | 'large'>,\n  ignorePathChange: Boolean,\n  validationStatus: String as PropType<'error' | 'warning' | 'success'>,\n  feedback: String,\n  feedbackClass: String,\n  feedbackStyle: [String, Object] as PropType<string | CSSProperties>,\n  showLabel: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  labelProps: Object as PropType<LabelHTMLAttributes>,\n  contentClass: String,\n  contentStyle: [String, Object] as PropType<string | CSSProperties>\n} as const\n\nexport type FormItemSetupProps = ExtractPropTypes<typeof formItemProps>\nexport type FormItemProps = ExtractPublicPropTypes<typeof formItemProps>\nexport const formItemPropKeys = keysOf(formItemProps)\n\n// Wrapped Validator is to be passed into async-validator\n// In their source code, validator can be a asyncValidator.\n// asyncValidator will non-promise return value will be ignored.\n// We need to deal with some type quirks.\ntype WrappedValidator = (\n  ...args: FormItemRuleValidatorParams\n) => boolean | Error | Error[] | Promise<void> | undefined\n\n// wrap sync validator\nfunction wrapValidator(\n  validator: FormItemRuleValidator,\n  async: boolean\n): WrappedValidator {\n  return (...args: Parameters<FormItemRuleValidator>) => {\n    try {\n      const validateResult = validator(...args)\n      if (\n        (!async\n          && (typeof validateResult === 'boolean'\n            || validateResult instanceof Error\n            || Array.isArray(validateResult))) // Error[]\n            || (validateResult as any)?.then\n      ) {\n        return validateResult as any\n      }\n      else if (validateResult === undefined) {\n        return true\n      }\n      else {\n        warn(\n          'form-item/validate',\n          `You return a ${typeof validateResult} `\n          + `typed value in the validator method, which is not recommended. Please use ${\n            async ? '`Promise`' : '`boolean`, `Error` or `Promise`'\n          } typed value instead.`\n        )\n        return true\n      }\n    }\n    catch (err) {\n      warn(\n        'form-item/validate',\n        'An error is catched in the validation, '\n        + 'so the validation won\\'t be done. Your callback in `validate` method of '\n        + '`n-form` or `n-form-item` won\\'t be called in this validation.'\n      )\n      console.error(err)\n      // If returns undefined, async-validator won't trigger callback\n      // so the result will be abandoned, which means not true and not false\n      return undefined\n    }\n  }\n}\n\nexport default defineComponent({\n  name: 'FormItem',\n  props: formItemProps,\n  slots: Object as SlotsType<FormItemSlots>,\n  setup(props) {\n    useInjectionInstanceCollection(\n      formItemInstsInjectionKey,\n      'formItems',\n      toRef(props, 'path')\n    )\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const NForm = inject(formInjectionKey, null)\n    const formItemSizeRefs = formItemSize(props)\n    const formItemMiscRefs = formItemMisc(props)\n    const {\n      validationErrored: validationErroredRef,\n      validationWarned: validationWarnedRef\n    } = formItemMiscRefs\n    const { mergedRequired: mergedRequiredRef, mergedRules: mergedRulesRef }\n      = formItemRule(props)\n    const { mergedSize: mergedSizeRef } = formItemSizeRefs\n    const {\n      mergedLabelPlacement: labelPlacementRef,\n      mergedLabelAlign: labelTextAlignRef,\n      mergedRequireMarkPlacement: mergedRequireMarkPlacementRef\n    } = formItemMiscRefs\n    const renderExplainsRef = ref<\n      Array<{\n        key: string\n        render: () => VNodeChild\n      }>\n    >([])\n    const feedbackIdRef = ref(createId())\n    const labelElementRef = ref<null | HTMLLabelElement>(null)\n    const mergedDisabledRef = NForm\n      ? toRef(NForm.props, 'disabled')\n      : ref(false)\n    const themeRef = useTheme(\n      'Form',\n      '-form-item',\n      style,\n      formLight,\n      props,\n      mergedClsPrefixRef\n    )\n    watch(toRef(props, 'path'), () => {\n      if (props.ignorePathChange)\n        return\n      restoreValidation()\n    })\n    function invalidateLabelWidth(): void {\n      if (!formItemMiscRefs.isAutoLabelWidth.value)\n        return\n      const labelElement = labelElementRef.value\n      if (labelElement !== null) {\n        const memoizedWhitespace = labelElement.style.whiteSpace\n        labelElement.style.whiteSpace = 'nowrap'\n        labelElement.style.width = ''\n        NForm?.deriveMaxChildLabelWidth(\n          Number(getComputedStyle(labelElement).width.slice(0, -2))\n        )\n        labelElement.style.whiteSpace = memoizedWhitespace\n      }\n    }\n    function restoreValidation(): void {\n      renderExplainsRef.value = []\n      validationErroredRef.value = false\n      validationWarnedRef.value = false\n      if (props.feedback) {\n        feedbackIdRef.value = createId()\n      }\n    }\n    const internalValidate: FormItemInternalValidate = async (\n      trigger: ValidationTrigger | string | null = null,\n      shouldRuleBeApplied: ShouldRuleBeApplied = () => true,\n      options: ValidateOption = {\n        suppressWarning: true\n      }\n    ) => {\n      const { path } = props\n      if (!options) {\n        options = {}\n      }\n      else {\n        if (!options.first)\n          options.first = props.first\n      }\n      const { value: rules } = mergedRulesRef\n      const value = NForm ? get(NForm.props.model, path || '') : undefined\n      const messageRenderers: Record<string, () => VNodeChild> = {}\n      const originalMessageRendersMessage: Record<string, any> = {}\n      const activeRules = (\n        !trigger\n          ? rules\n          : rules.filter((rule) => {\n              if (Array.isArray(rule.trigger)) {\n                return rule.trigger.includes(trigger)\n              }\n              else {\n                return rule.trigger === trigger\n              }\n            })\n      )\n        .filter(shouldRuleBeApplied)\n        .map((rule, i) => {\n          const shallowClonedRule = Object.assign({}, rule)\n          if (shallowClonedRule.validator) {\n            shallowClonedRule.validator = wrapValidator(\n              shallowClonedRule.validator,\n              false\n            )\n          }\n          if (shallowClonedRule.asyncValidator) {\n            shallowClonedRule.asyncValidator = wrapValidator(\n              shallowClonedRule.asyncValidator,\n              true\n            ) as any\n          }\n          if (shallowClonedRule.renderMessage) {\n            const rendererKey = `__renderMessage__${i}`\n            originalMessageRendersMessage[rendererKey]\n              = shallowClonedRule.message\n            shallowClonedRule.message = rendererKey\n            messageRenderers[rendererKey] = shallowClonedRule.renderMessage\n          }\n          return shallowClonedRule\n        })\n      const activeErrorRules = activeRules.filter(r => r.level !== 'warning')\n      const activeWarningRules = activeRules.filter(\n        r => r.level === 'warning'\n      )\n\n      const validationResult: FormItemInternalValidateResult = {\n        valid: true,\n        errors: undefined,\n        warnings: undefined\n      }\n      if (!activeRules.length)\n        return validationResult\n\n      const mergedPath = path ?? '__n_no_path__'\n      const validator = new Schema({\n        [mergedPath]: activeErrorRules as RuleItem[]\n      })\n      const warningValidator = new Schema({\n        [mergedPath]: activeWarningRules as RuleItem[]\n      })\n      const { validateMessages } = NForm?.props || {}\n      if (validateMessages) {\n        validator.messages(validateMessages)\n        warningValidator.messages(validateMessages)\n      }\n\n      const renderMessages = (errors: ValidateError[]): void => {\n        renderExplainsRef.value = errors.map((error: ValidateError) => {\n          const transformedMessage = error?.message || ''\n          return {\n            key: transformedMessage,\n            render: () => {\n              if (transformedMessage.startsWith('__renderMessage__')) {\n                return messageRenderers[transformedMessage]()\n              }\n              return transformedMessage\n            }\n          }\n        })\n        errors.forEach((error) => {\n          if (error.message?.startsWith('__renderMessage__')) {\n            error.message = originalMessageRendersMessage[error.message]\n          }\n        })\n      }\n\n      if (activeErrorRules.length) {\n        const errors = await new Promise<ValidateError[] | null>((resolve) => {\n          void validator.validate({ [mergedPath]: value }, options, resolve)\n        })\n        if (errors?.length) {\n          validationResult.valid = false\n          validationResult.errors = errors\n          renderMessages(errors)\n        }\n      }\n\n      // if there are already errors, warning check can be skipped\n      if (activeWarningRules.length && !validationResult.errors) {\n        const warnings = await new Promise<ValidateError[] | null>(\n          (resolve) => {\n            void warningValidator.validate(\n              { [mergedPath]: value },\n              options,\n              resolve\n            )\n          }\n        )\n        if (warnings?.length) {\n          renderMessages(warnings)\n          validationResult.warnings = warnings\n        }\n      }\n\n      if (!validationResult.errors && !validationResult.warnings) {\n        restoreValidation()\n      }\n      else {\n        validationErroredRef.value = !!validationResult.errors\n        validationWarnedRef.value = !!validationResult.warnings\n      }\n\n      return validationResult\n    }\n    function handleContentBlur(): void {\n      void internalValidate('blur')\n    }\n    function handleContentChange(): void {\n      void internalValidate('change')\n    }\n    function handleContentFocus(): void {\n      void internalValidate('focus')\n    }\n    function handleContentInput(): void {\n      void internalValidate('input')\n    }\n    // Resolve : ()\n    // Reject  : (errors: AsyncValidator.ValidateError[])\n    async function validate(options: FormItemValidateOptions): Promise<{\n      warnings: ValidateError[] | undefined\n    }>\n    async function validate(\n      trigger?: string | null,\n      callback?: ValidateCallback\n    ): Promise<{\n      warnings: ValidateError[] | undefined\n    }>\n    async function validate(\n      options?: string | null | FormItemValidateOptions,\n      callback?: ValidateCallback\n    ): Promise<{\n      warnings: ValidateError[] | undefined\n    }> {\n      /** the following code is for compatibility */\n      let trigger: ValidationTrigger | string | undefined\n      let validateCallback: ValidateCallback | undefined\n      let shouldRuleBeApplied: ShouldRuleBeApplied | undefined\n      let asyncValidatorOptions: Record<string, any> | undefined\n      if (typeof options === 'string') {\n        trigger = options\n        validateCallback = callback\n      }\n      else if (options !== null && typeof options === 'object') {\n        trigger = options.trigger\n        validateCallback = options.callback\n        shouldRuleBeApplied = options.shouldRuleBeApplied\n        asyncValidatorOptions = options.options\n      }\n      return await new Promise<{\n        warnings: ValidateError[] | undefined\n      }>((resolve, reject) => {\n        void internalValidate(\n          trigger,\n          shouldRuleBeApplied,\n          asyncValidatorOptions\n        ).then(({ valid, errors, warnings }) => {\n          if (valid) {\n            if (validateCallback) {\n              validateCallback(undefined, { warnings })\n            }\n            resolve({ warnings })\n          }\n          else {\n            if (validateCallback) {\n              validateCallback(errors, { warnings })\n            }\n            reject(errors)\n          }\n        })\n      })\n    }\n\n    provide(formItemInjectionKey, {\n      path: toRef(props, 'path'),\n      disabled: mergedDisabledRef,\n      mergedSize: formItemSizeRefs.mergedSize,\n      mergedValidationStatus: formItemMiscRefs.mergedValidationStatus,\n      restoreValidation,\n      handleContentBlur,\n      handleContentChange,\n      handleContentFocus,\n      handleContentInput\n    })\n    const exposedRef: FormItemInst = {\n      validate,\n      restoreValidation,\n      internalValidate,\n      invalidateLabelWidth\n    }\n    onMounted(invalidateLabelWidth)\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const { value: labelPlacement } = labelPlacementRef\n      const direction: 'vertical' | 'horizontal'\n        = labelPlacement === 'top' ? 'vertical' : 'horizontal'\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          labelTextColor,\n          asteriskColor,\n          lineHeight,\n          feedbackTextColor,\n          feedbackTextColorWarning,\n          feedbackTextColorError,\n          feedbackPadding,\n          labelFontWeight,\n          [createKey('labelHeight', size)]: labelHeight,\n          [createKey('blankHeight', size)]: blankHeight,\n          [createKey('feedbackFontSize', size)]: feedbackFontSize,\n          [createKey('feedbackHeight', size)]: feedbackHeight,\n          [createKey('labelPadding', direction)]: labelPadding,\n          [createKey('labelTextAlign', direction)]: labelTextAlign,\n          [createKey(createKey('labelFontSize', labelPlacement), size)]:\n            labelFontSize\n        }\n      } = themeRef.value\n\n      let mergedLabelTextAlign = labelTextAlignRef.value ?? labelTextAlign\n      if (labelPlacement === 'top') {\n        mergedLabelTextAlign\n          = mergedLabelTextAlign === 'right' ? 'flex-end' : 'flex-start'\n      }\n\n      const cssVars = {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-line-height': lineHeight,\n        '--n-blank-height': blankHeight,\n        '--n-label-font-size': labelFontSize,\n        '--n-label-text-align': mergedLabelTextAlign,\n        '--n-label-height': labelHeight,\n        '--n-label-padding': labelPadding,\n        '--n-label-font-weight': labelFontWeight,\n        '--n-asterisk-color': asteriskColor,\n        '--n-label-text-color': labelTextColor,\n        '--n-feedback-padding': feedbackPadding,\n        '--n-feedback-font-size': feedbackFontSize,\n        '--n-feedback-height': feedbackHeight,\n        '--n-feedback-text-color': feedbackTextColor,\n        '--n-feedback-text-color-warning': feedbackTextColorWarning,\n        '--n-feedback-text-color-error': feedbackTextColorError\n      }\n      return cssVars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'form-item',\n          computed(() => {\n            return `${mergedSizeRef.value[0]}${labelPlacementRef.value[0]}${\n              labelTextAlignRef.value?.[0] || ''\n            }`\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    const reverseColSpaceRef = computed(() => {\n      // label placement left\n      // require-mark-placement | label align | areas (1fr auto)\n      // left                   | left        | mark text (need reverse)\n      // left                   | right       | mark text (okay)\n      // right                  | left        | mark text (okay)\n      // right                  | right       | mark text (okay)\n      // right-hanging          | left        | text mark (okay)\n      // right-hanging          | right       | text mark (okay)\n      return (\n        labelPlacementRef.value === 'left'\n        && mergedRequireMarkPlacementRef.value === 'left'\n        && labelTextAlignRef.value === 'left'\n      )\n    })\n    return {\n      labelElementRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedRequired: mergedRequiredRef,\n      feedbackId: feedbackIdRef,\n      renderExplains: renderExplainsRef,\n      reverseColSpace: reverseColSpaceRef,\n      ...formItemMiscRefs,\n      ...formItemSizeRefs,\n      ...exposedRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      $slots,\n      mergedClsPrefix,\n      mergedShowLabel,\n      mergedShowRequireMark,\n      mergedRequireMarkPlacement,\n      onRender\n    } = this\n    const renderedShowRequireMark\n      = mergedShowRequireMark !== undefined\n        ? mergedShowRequireMark\n        : this.mergedRequired\n    onRender?.()\n\n    const renderLabel = (): JSX.Element | null => {\n      const labelText = this.$slots.label ? this.$slots.label() : this.label\n      if (!labelText)\n        return null\n      const textNode = (\n        <span class={`${mergedClsPrefix}-form-item-label__text`}>\n          {labelText}\n        </span>\n      )\n      const markNode = renderedShowRequireMark ? (\n        <span class={`${mergedClsPrefix}-form-item-label__asterisk`}>\n          {mergedRequireMarkPlacement !== 'left' ? '\\u00A0*' : '*\\u00A0'}\n        </span>\n      ) : (\n        mergedRequireMarkPlacement === 'right-hanging' && (\n          <span\n            class={`${mergedClsPrefix}-form-item-label__asterisk-placeholder`}\n          >\n            {'\\u00A0*'}\n          </span>\n        )\n      )\n      const { labelProps } = this\n      return (\n        <label\n          {...labelProps}\n          class={[\n            labelProps?.class,\n            `${mergedClsPrefix}-form-item-label`,\n            `${mergedClsPrefix}-form-item-label--${mergedRequireMarkPlacement}-mark`,\n            this.reverseColSpace\n            && `${mergedClsPrefix}-form-item-label--reverse-columns-space`\n          ]}\n          style={this.mergedLabelStyle as any}\n          ref=\"labelElementRef\"\n        >\n          {mergedRequireMarkPlacement === 'left'\n            ? [markNode, textNode]\n            : [textNode, markNode]}\n        </label>\n      )\n    }\n\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-form-item`,\n          this.themeClass,\n          `${mergedClsPrefix}-form-item--${this.mergedSize}-size`,\n          `${mergedClsPrefix}-form-item--${this.mergedLabelPlacement}-labelled`,\n          this.isAutoLabelWidth\n          && `${mergedClsPrefix}-form-item--auto-label-width`,\n          !mergedShowLabel && `${mergedClsPrefix}-form-item--no-label`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {mergedShowLabel && renderLabel()}\n        <div\n          class={[\n            `${mergedClsPrefix}-form-item-blank`,\n            this.contentClass,\n            this.mergedValidationStatus\n            && `${mergedClsPrefix}-form-item-blank--${this.mergedValidationStatus}`\n          ]}\n          style={this.contentStyle}\n        >\n          {$slots.default?.()}\n        </div>\n        {this.mergedShowFeedback ? (\n          <div\n            key={this.feedbackId}\n            style={this.feedbackStyle}\n            class={[\n              `${mergedClsPrefix}-form-item-feedback-wrapper`,\n              this.feedbackClass\n            ]}\n          >\n            <Transition name=\"fade-down-transition\" mode=\"out-in\">\n              {{\n                default: () => {\n                  const { mergedValidationStatus } = this\n                  return resolveWrappedSlot(\n                    $slots.feedback as Slot | undefined,\n                    (children) => {\n                      const { feedback } = this\n                      const feedbackNodes\n                        = children || feedback ? (\n                          <div\n                            key=\"__feedback__\"\n                            class={`${mergedClsPrefix}-form-item-feedback__line`}\n                          >\n                            {children || feedback}\n                          </div>\n                        ) : this.renderExplains.length ? (\n                          this.renderExplains?.map(({ key, render }) => (\n                            <div\n                              key={key}\n                              class={`${mergedClsPrefix}-form-item-feedback__line`}\n                            >\n                              {render()}\n                            </div>\n                          ))\n                        ) : null\n                      return feedbackNodes ? (\n                        mergedValidationStatus === 'warning' ? (\n                          <div\n                            key=\"controlled-warning\"\n                            class={`${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--warning`}\n                          >\n                            {feedbackNodes}\n                          </div>\n                        ) : mergedValidationStatus === 'error' ? (\n                          <div\n                            key=\"controlled-error\"\n                            class={`${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--error`}\n                          >\n                            {feedbackNodes}\n                          </div>\n                        ) : mergedValidationStatus === 'success' ? (\n                          <div\n                            key=\"controlled-success\"\n                            class={`${mergedClsPrefix}-form-item-feedback ${mergedClsPrefix}-form-item-feedback--success`}\n                          >\n                            {feedbackNodes}\n                          </div>\n                        ) : (\n                          <div\n                            key=\"controlled-default\"\n                            class={`${mergedClsPrefix}-form-item-feedback`}\n                          >\n                            {feedbackNodes}\n                          </div>\n                        )\n                      ) : null\n                    }\n                  )\n                }\n              }}\n            </Transition>\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import { repeat } from 'seemly'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\nconst positionStyles = repeat(24, null)\n  .map((_, index) => {\n    const prefixIndex = index + 1\n    const percent = `calc(100% / 24 * ${prefixIndex})`\n    return [\n      cM(`${prefixIndex}-span`, {\n        width: percent\n      }),\n      cM(`${prefixIndex}-offset`, {\n        marginLeft: percent\n      }),\n      cM(`${prefixIndex}-push`, {\n        left: percent\n      }),\n      cM(`${prefixIndex}-pull`, {\n        right: percent\n      })\n    ]\n  })\n\nexport default c([\n  cB('row', {\n    width: '100%',\n    display: 'flex',\n    flexWrap: 'wrap'\n  }),\n  cB('col', {\n    verticalAlign: 'top',\n    boxSizing: 'border-box',\n    display: 'inline-block',\n    position: 'relative',\n    zIndex: 'auto'\n  }, [\n    cE('box', {\n      position: 'relative',\n      zIndex: 'auto',\n      width: '100%',\n      height: '100%'\n    }),\n    positionStyles\n  ])\n])\n","import type { PropType, Ref } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { useMemo } from 'vooks'\nimport { defineComponent, h, provide, toRef } from 'vue'\nimport { useConfig, useRtl, useStyle } from '../../_mixins'\nimport { createInjectionKey, formatLength, keysOf } from '../../_utils'\nimport style from './styles/index.cssr'\n\nexport interface RowInjection {\n  gutterRef: Ref<string | number | [number, number]>\n  verticalGutterRef: Ref<number>\n  horizontalGutterRef: Ref<number>\n  mergedClsPrefixRef: Ref<string>\n}\n\nexport const rowInjectionKey = createInjectionKey<RowInjection>('n-row')\n\nexport const rowProps = {\n  gutter: {\n    type: [Array, Number, String] as PropType<\n      string | number | [number, number]\n    >,\n    default: 0\n  },\n  alignItems: String,\n  justifyContent: String\n} as const\n\nexport const rowPropKeys = keysOf(rowProps)\n\nexport type RowProps = ExtractPublicPropTypes<typeof rowProps>\n\nexport default defineComponent({\n  name: 'Row',\n  props: rowProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    useStyle('-legacy-grid', style, mergedClsPrefixRef)\n    const rtlEnabledRef = useRtl('Row', mergedRtlRef, mergedClsPrefixRef)\n    const verticalGutterRef = useMemo(() => {\n      const { gutter } = props\n      if (Array.isArray(gutter)) {\n        return gutter[1] || 0\n      }\n      return 0\n    })\n    const horizontalGutterRef = useMemo(() => {\n      const { gutter } = props\n      if (Array.isArray(gutter)) {\n        return gutter[0]\n      }\n      return Number(gutter)\n    })\n    provide(rowInjectionKey, {\n      mergedClsPrefixRef,\n      gutterRef: toRef(props, 'gutter'),\n      verticalGutterRef,\n      horizontalGutterRef\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      styleMargin: useMemo(\n        () =>\n          `-${formatLength(verticalGutterRef.value, {\n            c: 0.5\n          })} -${formatLength(horizontalGutterRef.value, { c: 0.5 })}`\n      ),\n      styleWidth: useMemo(\n        () => `calc(100% + ${formatLength(horizontalGutterRef.value)})`\n      )\n    }\n  },\n  render() {\n    return (\n      <div\n        class={[\n          `${this.mergedClsPrefix}-row`,\n          this.rtlEnabled && `${this.mergedClsPrefix}-row--rtl`\n        ]}\n        style={{\n          margin: this.styleMargin,\n          width: this.styleWidth,\n          alignItems: this.alignItems,\n          justifyContent: this.justifyContent\n        }}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { Span } from './interface'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { formatLength, keysOf, throwError } from '../../_utils'\nimport { rowInjectionKey } from './Row'\n\nexport const colProps = {\n  span: {\n    type: [String, Number] as PropType<Span>,\n    default: 1\n  },\n  push: {\n    type: [String, Number] as PropType<Span>,\n    default: 0\n  },\n  pull: {\n    type: [String, Number] as PropType<Span>,\n    default: 0\n  },\n  offset: {\n    type: [String, Number] as PropType<Span>,\n    default: 0\n  }\n} as const\n\nexport const colPropKeys = keysOf(colProps)\n\nexport type ColProps = ExtractPublicPropTypes<typeof colProps>\n\nexport default defineComponent({\n  name: 'Col',\n  props: colProps,\n  setup(props) {\n    const NRow = inject(rowInjectionKey, null)\n    if (!NRow)\n      throwError('col', '`n-col` must be placed inside `n-row`.')\n    return {\n      mergedClsPrefix: NRow.mergedClsPrefixRef,\n      gutter: NRow.gutterRef,\n      stylePadding: computed(\n        () =>\n          `${formatLength(NRow.verticalGutterRef.value, {\n            c: 0.5\n          })} ${formatLength(NRow.horizontalGutterRef.value, { c: 0.5 })}`\n      ),\n      mergedPush: computed(() => Number(props.push) - Number(props.pull))\n    }\n  },\n  render() {\n    const {\n      $slots,\n      span,\n      mergedPush,\n      offset,\n      stylePadding,\n      gutter,\n      mergedClsPrefix\n    } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-col`,\n          {\n            [`${mergedClsPrefix}-col--${span}-span`]: true,\n            [`${mergedClsPrefix}-col--${mergedPush}-push`]: mergedPush > 0,\n            [`${mergedClsPrefix}-col--${-mergedPush}-pull`]: mergedPush < 0,\n            [`${mergedClsPrefix}-col--${offset}-offset`]: offset\n          }\n        ]}\n        style={{\n          padding: stylePadding\n        }}\n      >\n        {gutter ? <div>{$slots.default?.()}</div> : $slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FormItemInst } from './interface'\nimport { defineComponent, h, ref } from 'vue'\nimport { keep, keysOf } from '../../_utils'\nimport NCol, { colPropKeys, colProps } from '../../legacy-grid/src/Col'\nimport NFormItem, { formItemPropKeys, formItemProps } from './FormItem'\n\nexport const formItemColProps = {\n  ...colProps,\n  ...formItemProps\n} as const\n\nexport const formItemColPropKeys = keysOf(formItemColProps)\n\nexport type FormItemColProps = ExtractPublicPropTypes<typeof formItemColProps>\n\nexport default defineComponent({\n  name: 'FormItemCol',\n  props: formItemColProps,\n  setup() {\n    const formItemInstRef = ref<FormItemInst | null>(null)\n    const validate = ((...args: any[]) => {\n      const { value } = formItemInstRef\n      if (value) {\n        return value.validate(...args)\n      }\n    }) as FormItemInst['validate']\n    const restoreValidation: FormItemInst['restoreValidation'] = () => {\n      const { value } = formItemInstRef\n      if (value) {\n        value.restoreValidation()\n      }\n    }\n    return {\n      // reduce dts: string ref only, type unused in render\n      formItemInstRef: formItemInstRef as unknown,\n      validate,\n      restoreValidation\n    }\n  },\n  render() {\n    return h(NCol, keep(this.$props, colPropKeys), {\n      default: () => {\n        const itemProps = keep(this.$props, formItemPropKeys)\n        return h(\n          NFormItem,\n          {\n            ref: 'formItemInstRef',\n            ...itemProps\n          },\n          this.$slots\n        )\n      }\n    })\n  }\n})\n","import type { NGridInjection } from './Grid'\nimport { createInjectionKey } from '../../_utils'\n\nexport const defaultSpan = 1\nexport const gridInjectionKey = createInjectionKey<NGridInjection>('n-grid')\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { pxfy } from 'seemly'\nimport { computed, defineComponent, getCurrentInstance, h, inject } from 'vue'\nimport { keysOf } from '../../_utils'\nimport { gridInjectionKey } from './config'\n\nexport const defaultSpan = 1\n\ninterface GridItemVNodeProps {\n  privateOffset?: number\n  privateSpan?: number\n  privateColStart?: number\n  privateShow?: boolean\n}\n\nexport const gridItemProps = {\n  span: {\n    type: [Number, String] as PropType<string | number>,\n    default: defaultSpan\n  },\n  offset: {\n    type: [Number, String] as PropType<string | number>,\n    default: 0\n  },\n  suffix: Boolean,\n  // private props\n  privateOffset: Number,\n  privateSpan: Number,\n  privateColStart: Number,\n  privateShow: {\n    type: Boolean,\n    default: true\n  }\n} as const\n\nexport const gridItemPropKeys = keysOf(gridItemProps)\n\nexport type GridItemProps = ExtractPublicPropTypes<typeof gridItemProps>\n\nexport default defineComponent({\n  __GRID_ITEM__: true,\n  name: 'GridItem',\n  alias: ['Gi'],\n  props: gridItemProps,\n  setup() {\n    const {\n      isSsrRef,\n      xGapRef,\n      itemStyleRef,\n      overflowRef,\n      layoutShiftDisabledRef\n    } = inject(gridInjectionKey)!\n    const self = getCurrentInstance()\n    return {\n      overflow: overflowRef,\n      itemStyle: itemStyleRef,\n      layoutShiftDisabled: layoutShiftDisabledRef,\n      mergedXGap: computed(() => {\n        return pxfy(xGapRef.value || 0)\n      }),\n      deriveStyle: () => {\n        void isSsrRef.value\n        // Here is quite a hack, I hope there is a better way to solve it\n        const {\n          privateSpan = defaultSpan,\n          privateShow = true,\n          privateColStart = undefined,\n          privateOffset = 0\n        } = self!.vnode.props as GridItemVNodeProps\n        const { value: xGap } = xGapRef\n        const mergedXGap = pxfy(xGap || 0)\n        return {\n          display: !privateShow ? 'none' : '',\n          gridColumn: `${\n            privateColStart ?? `span ${privateSpan}`\n          } / span ${privateSpan}`,\n          marginLeft: privateOffset\n            ? `calc((100% - (${privateSpan} - 1) * ${mergedXGap}) / ${privateSpan} * ${privateOffset} + ${mergedXGap} * ${privateOffset})`\n            : ''\n        }\n      }\n    }\n  },\n  render() {\n    if (this.layoutShiftDisabled) {\n      const { span, offset, mergedXGap } = this\n      return (\n        <div\n          style={{\n            gridColumn: `span ${span} / span ${span}`,\n            marginLeft: offset\n              ? `calc((100% - (${span} - 1) * ${mergedXGap}) / ${span} * ${offset} + ${mergedXGap} * ${offset})`\n              : ''\n          }}\n        >\n          {this.$slots.default?.()}\n        </div>\n      )\n    }\n    return (\n      <div style={[this.itemStyle as any, this.deriveStyle()]}>\n        {this.$slots.default?.({ overflow: this.overflow })}\n      </div>\n    )\n  }\n})\n","import type { SlotsType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FormItemInst, FormItemSlots } from './interface'\nimport { defineComponent, h, ref } from 'vue'\nimport { keep, keysOf } from '../../_utils'\nimport NGridItem, {\n  gridItemPropKeys,\n  gridItemProps\n} from '../../grid/src/GridItem'\nimport NFormItem, { formItemPropKeys, formItemProps } from './FormItem'\n\nexport const formItemGiProps = {\n  ...gridItemProps,\n  ...formItemProps\n} as const\n\nexport const formItemGiPropKeys = keysOf(formItemGiProps)\n\nexport type FormItemGiProps = ExtractPublicPropTypes<typeof formItemGiProps>\n\nexport default defineComponent({\n  __GRID_ITEM__: true,\n  name: 'FormItemGridItem',\n  alias: ['FormItemGi'],\n  props: formItemGiProps,\n  slots: Object as SlotsType<FormItemSlots>,\n  setup() {\n    const formItemInstRef = ref<FormItemInst | null>(null)\n    const validate = ((...args: any[]) => {\n      const { value } = formItemInstRef\n      if (value) {\n        return value.validate(...args)\n      }\n    }) as FormItemInst['validate']\n    const restoreValidation: FormItemInst['restoreValidation'] = () => {\n      const { value } = formItemInstRef\n      if (value) {\n        value.restoreValidation()\n      }\n    }\n    return {\n      // reduce dts: string ref only, type unused in render\n      formItemInstRef: formItemInstRef as unknown,\n      validate,\n      restoreValidation\n    }\n  },\n  render() {\n    return h(NGridItem, keep(this.$.vnode.props || {}, gridItemPropKeys), {\n      default: () => {\n        const itemProps = keep(this.$props, formItemPropKeys)\n        return h(\n          NFormItem,\n          {\n            ref: 'formItemInstRef',\n            ...itemProps\n          },\n          this.$slots\n        )\n      }\n    })\n  }\n})\n","import type { ExtractPublicPropTypes } from '../../_utils'\nimport type { FormItemColRef } from './interface'\nimport { defineComponent, h, ref } from 'vue'\nimport { keep } from '../../_utils'\nimport NRow, { rowPropKeys, rowProps } from '../../legacy-grid/src/Row'\nimport NFormItemCol, {\n  formItemColPropKeys,\n  formItemColProps\n} from './FormItemCol'\n\nexport const formItemRowProps = {\n  ...rowProps,\n  ...formItemColProps\n}\n\nexport type FormItemRowProps = ExtractPublicPropTypes<typeof formItemRowProps>\n\nexport default defineComponent({\n  name: 'FormItemRow',\n  props: formItemRowProps,\n  setup() {\n    const formItemColInstRef = ref<FormItemColRef | null>(null)\n    const validate = ((...args: any[]) => {\n      const { value } = formItemColInstRef\n      if (value) {\n        return value.validate(...args)\n      }\n    }) as FormItemColRef['validate']\n    const restoreValidation: FormItemColRef['restoreValidation'] = () => {\n      const { value } = formItemColInstRef\n      if (value) {\n        value.restoreValidation()\n      }\n    }\n    return {\n      // reduce dts: string ref only, type unused in render\n      formItemColInstRef: formItemColInstRef as unknown,\n      validate,\n      restoreValidation\n    }\n  },\n  render() {\n    return h(NRow, keep(this.$props, rowPropKeys), {\n      default: () => {\n        const colProps = keep(this.$props, formItemColPropKeys)\n        return h(\n          NFormItemCol,\n          {\n            ref: 'formItemColInstRef',\n            ...colProps,\n            span: 24\n          },\n          this.$slots\n        )\n      }\n    })\n  }\n})\n","import { merge } from 'lodash-es'\nimport {\n  defineComponent,\n  inject,\n  onBeforeMount,\n  onUnmounted,\n  watchEffect\n} from 'vue'\nimport { commonLight } from '../../_styles/common'\nimport { warn } from '../../_utils'\nimport { configProviderInjectionKey } from '../../config-provider/src/context'\n\nexport default defineComponent({\n  name: 'GlobalStyle',\n  setup() {\n    if (typeof document === 'undefined')\n      return // TODO: inject style for SSR\n    const NConfigProvider = inject(configProviderInjectionKey, null)\n    const { body } = document\n    const { style } = body\n    let styleApplied = false\n    let firstApply = true\n    onBeforeMount(() => {\n      watchEffect(() => {\n        const {\n          textColor2,\n          fontSize,\n          fontFamily,\n          bodyColor,\n          cubicBezierEaseInOut,\n          lineHeight\n        } = NConfigProvider\n          ? merge(\n              {},\n              NConfigProvider.mergedThemeRef.value?.common || commonLight,\n              NConfigProvider.mergedThemeOverridesRef.value?.common\n            )\n          : commonLight\n        if (styleApplied || !body.hasAttribute('n-styled')) {\n          style.setProperty('-webkit-text-size-adjust', '100%')\n          style.setProperty('-webkit-tap-highlight-color', 'transparent')\n          style.padding = '0'\n          style.margin = '0'\n          style.backgroundColor = bodyColor\n          style.color = textColor2\n          style.fontSize = fontSize\n          style.fontFamily = fontFamily\n          style.lineHeight = lineHeight\n          const transition = `color .3s ${cubicBezierEaseInOut}, background-color .3s ${cubicBezierEaseInOut}`\n          if (firstApply) {\n            setTimeout(() => {\n              style.transition = transition\n            }, 0)\n          }\n          else {\n            style.transition = transition\n          }\n          body.setAttribute('n-styled', '')\n          styleApplied = true\n          firstApply = false\n        }\n        else if (__DEV__) {\n          warn(\n            'global-style',\n            'More than one n-global-style exist in the document.body. Only the first mounted one will work.'\n          )\n        }\n      })\n    })\n    onUnmounted(() => {\n      if (styleApplied) {\n        body.removeAttribute('n-styled')\n      }\n    })\n  },\n  render() {\n    return null\n  }\n})\n","import { cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-weight\n// --n-rotate\n// --n-bezier\n// --n-color-start\n// --n-color-end\nexport default cB('gradient-text', `\n  display: inline-block;\n  font-weight: var(--n-font-weight);\n  -webkit-background-clip: text;\n  background-clip: text;\n  color: #0000;\n  white-space: nowrap;\n  background-image: linear-gradient(var(--n-rotate), var(--n-color-start) 0%, var(--n-color-end) 100%);\n  transition:\n    --n-color-start .3s var(--n-bezier),\n    --n-color-end .3s var(--n-bezier);\n`)\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { GradientTextTheme, GradientTextThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey, formatLength, useHoudini } from '../../_utils'\nimport { gradientTextLight } from '../styles'\nimport style from './styles/index.cssr'\n\ntype Gradient\n  = | string\n    | {\n      deg?: string | number\n      from: string\n      to: string\n    }\n\nexport const gradientTextProps = {\n  ...(useTheme.props as ThemeProps<\n    GradientTextTheme,\n    GradientTextThemeOverrides\n  >),\n  size: [String, Number] as PropType<string | number>,\n  fontSize: [String, Number] as PropType<string | number>,\n  type: {\n    type: String as PropType<\n      'info' | 'success' | 'warning' | 'error' | 'primary' | 'danger'\n    >,\n    default: 'primary'\n  },\n  color: [Object, String] as PropType<Gradient>,\n  gradient: [Object, String] as PropType<Gradient>\n} as const\n\nexport type GradientTextProps = ExtractPublicPropTypes<typeof gradientTextProps>\n\nexport default defineComponent({\n  name: 'GradientText',\n  props: gradientTextProps,\n  setup(props) {\n    useHoudini()\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const compatibleTypeRef = computed<\n      'info' | 'success' | 'warning' | 'error' | 'primary'\n    >(() => {\n      const { type } = props\n      if (type === 'danger')\n        return 'error'\n      return type\n    })\n    const styleFontSizeRef = computed(() => {\n      let fontSize = props.size || props.fontSize\n      if (fontSize)\n        fontSize = formatLength(fontSize)\n      return fontSize || undefined\n    })\n    const styleBgImageRef = computed(() => {\n      const gradient = props.color || props.gradient\n      if (typeof gradient === 'string') {\n        return gradient\n      }\n      else if (gradient) {\n        const deg = gradient.deg || 0\n        const from = gradient.from\n        const to = gradient.to\n        return `linear-gradient(${deg}deg, ${from} 0%, ${to} 100%)`\n      }\n      return undefined\n    })\n    const themeRef = useTheme(\n      'GradientText',\n      '-gradient-text',\n      style,\n      gradientTextLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { value: type } = compatibleTypeRef\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          rotate,\n          [createKey('colorStart', type)]: colorStart,\n          [createKey('colorEnd', type)]: colorEnd,\n          fontWeight\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-rotate': rotate,\n        '--n-color-start': colorStart,\n        '--n-color-end': colorEnd,\n        '--n-font-weight': fontWeight\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'gradient-text',\n          computed(() => compatibleTypeRef.value[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      compatibleType: compatibleTypeRef,\n      styleFontSize: styleFontSizeRef,\n      styleBgImage: styleBgImageRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, onRender } = this\n    onRender?.()\n    return (\n      <span\n        class={[\n          `${mergedClsPrefix}-gradient-text`,\n          `${mergedClsPrefix}-gradient-text--${this.compatibleType}-type`,\n          this.themeClass\n        ]}\n        style={[\n          {\n            fontSize: this.styleFontSize,\n            backgroundImage: this.styleBgImage\n          },\n          this.cssVars as any\n        ]}\n      >\n        {this.$slots.default?.()}\n      </span>\n    )\n  }\n})\n","export const defaultBreakpoints = {\n  xs: 0, // mobile\n  s: 640, // tablet\n  m: 1024, // laptop s\n  l: 1280, // laptop\n  xl: 1536, // laptop l\n  xxl: 1920 // normal desktop display\n} as const\n","import type { CSSProperties, PropType, Ref, VNode } from 'vue'\nimport type { VResizeObserverOnResize } from 'vueuc'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { beforeNextFrameOnce, parseResponsivePropValue, pxfy } from 'seemly'\nimport { useBreakpoints, useMemo } from 'vooks'\nimport {\n  cloneVNode,\n  computed,\n  defineComponent,\n  h,\n  mergeProps,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  vShow\n} from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { useConfig } from '../../_mixins'\nimport { flatten, getSlot, isBrowser, isNodeVShowFalse } from '../../_utils'\nimport { defaultBreakpoints } from '../../config-provider/src/config'\nimport { defaultSpan, gridInjectionKey } from './config'\n\nconst defaultCols = 24\n\nconst SSR_ATTR_NAME = '__ssr__'\n\nexport const gridProps = {\n  layoutShiftDisabled: Boolean,\n  responsive: {\n    type: [String, Boolean] as PropType<'self' | 'screen'>,\n    default: 'self'\n  },\n  cols: {\n    type: [Number, String] as PropType<number | string>,\n    default: defaultCols\n  },\n  itemResponsive: Boolean,\n  collapsed: Boolean,\n  // may create grid rows < collapsedRows since a item may take all the row\n  collapsedRows: {\n    type: Number,\n    default: 1\n  },\n  itemStyle: [Object, String] as PropType<CSSProperties | string>,\n  xGap: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0\n  },\n  yGap: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0\n  }\n} as const\n\nexport interface NGridInjection {\n  isSsrRef: Ref<boolean>\n  itemStyleRef: Ref<CSSProperties | string | undefined>\n  xGapRef: Ref<string | undefined>\n  overflowRef: Ref<boolean>\n  layoutShiftDisabledRef: Ref<boolean>\n}\n\nexport type GridProps = ExtractPublicPropTypes<typeof gridProps>\n\nexport default defineComponent({\n  name: 'Grid',\n  inheritAttrs: false,\n  props: gridProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedBreakpointsRef } = useConfig(props)\n    const numRegex = /^\\d+$/\n    const widthRef = ref<number | undefined>(undefined)\n    const breakpointsRef = useBreakpoints(\n      mergedBreakpointsRef?.value || defaultBreakpoints\n    )\n    const isResponsiveRef = useMemo(() => {\n      if (props.itemResponsive)\n        return true\n      if (!numRegex.test(props.cols.toString()))\n        return true\n      if (!numRegex.test(props.xGap.toString()))\n        return true\n      if (!numRegex.test(props.yGap.toString()))\n        return true\n      return false\n    })\n    const responsiveQueryRef = computed(() => {\n      if (!isResponsiveRef.value)\n        return undefined\n      return props.responsive === 'self' ? widthRef.value : breakpointsRef.value\n    })\n    const responsiveColsRef = useMemo(() => {\n      return (\n        Number(\n          parseResponsivePropValue(\n            props.cols.toString(),\n            responsiveQueryRef.value\n          )\n        ) ?? defaultCols\n      )\n    })\n    const responsiveXGapRef = useMemo(() =>\n      parseResponsivePropValue(props.xGap.toString(), responsiveQueryRef.value)\n    )\n    const responsiveYGapRef = useMemo(() =>\n      parseResponsivePropValue(props.yGap.toString(), responsiveQueryRef.value)\n    )\n    const handleResize: VResizeObserverOnResize = (entry) => {\n      widthRef.value = entry.contentRect.width\n    }\n    const handleResizeRaf: VResizeObserverOnResize = (entry) => {\n      beforeNextFrameOnce(handleResize, entry)\n    }\n    const overflowRef = ref(false)\n    const handleResizeRef = computed<VResizeObserverOnResize | undefined>(\n      () => {\n        if (props.responsive === 'self') {\n          return handleResizeRaf\n        }\n        return undefined\n      }\n    )\n\n    // for SSR, fix bug https://github.com/tusen-ai/naive-ui/issues/2462\n    const isSsrRef = ref(false)\n    const contentElRef = ref<HTMLElement>()\n    onMounted(() => {\n      const { value: contentEl } = contentElRef\n      if (contentEl) {\n        if (contentEl.hasAttribute(SSR_ATTR_NAME)) {\n          contentEl.removeAttribute(SSR_ATTR_NAME)\n          isSsrRef.value = true\n        }\n      }\n    })\n\n    provide(gridInjectionKey, {\n      layoutShiftDisabledRef: toRef(props, 'layoutShiftDisabled'),\n      isSsrRef,\n      itemStyleRef: toRef(props, 'itemStyle'),\n      xGapRef: responsiveXGapRef,\n      overflowRef\n    })\n\n    return {\n      isSsr: !isBrowser,\n      contentEl: contentElRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      style: computed<CSSProperties>(() => {\n        if (props.layoutShiftDisabled) {\n          return {\n            width: '100%',\n            display: 'grid',\n            gridTemplateColumns: `repeat(${props.cols}, minmax(0, 1fr))`,\n            columnGap: pxfy(props.xGap),\n            rowGap: pxfy(props.yGap)\n          }\n        }\n        return {\n          width: '100%',\n          display: 'grid',\n          gridTemplateColumns: `repeat(${responsiveColsRef.value}, minmax(0, 1fr))`,\n          columnGap: pxfy(responsiveXGapRef.value),\n          rowGap: pxfy(responsiveYGapRef.value)\n        }\n      }),\n      isResponsive: isResponsiveRef,\n      responsiveQuery: responsiveQueryRef,\n      responsiveCols: responsiveColsRef,\n      handleResize: handleResizeRef,\n      overflow: overflowRef\n    }\n  },\n  render() {\n    if (this.layoutShiftDisabled) {\n      return h(\n        'div',\n        mergeProps(\n          {\n            ref: 'contentEl',\n            class: `${this.mergedClsPrefix}-grid`,\n            style: this.style\n          },\n          this.$attrs\n        ),\n        this.$slots\n      )\n    }\n\n    const renderContent = (): VNode => {\n      this.overflow = false\n\n      // render will be called twice when mounted, I can't figure out why\n      // 2 jobs will be pushed into job queues with same id, and then be flushed\n      const rawChildren = flatten(getSlot(this))\n\n      const childrenAndRawSpan: Array<{\n        child: VNode\n        rawChildSpan: number\n      }> = []\n\n      const { collapsed, collapsedRows, responsiveCols, responsiveQuery } = this\n\n      rawChildren.forEach((child) => {\n        if ((child?.type as any)?.__GRID_ITEM__ !== true)\n          return\n\n        if (isNodeVShowFalse(child)) {\n          const clonedNode = cloneVNode(child)\n          if (clonedNode.props) {\n            clonedNode.props.privateShow = false\n          }\n          else {\n            clonedNode.props = { privateShow: false }\n          }\n          childrenAndRawSpan.push({\n            child: clonedNode,\n            rawChildSpan: 0\n          })\n          return\n        }\n\n        // We don't want v-show to control display, so we need to stripe it\n        // here, nor it may mess child's style\n        child.dirs = child.dirs?.filter(({ dir }) => dir !== vShow) || null\n\n        if (child.dirs?.length === 0) {\n          child.dirs = null\n        }\n        const clonedChild = cloneVNode(child)\n\n        const rawChildSpan = Number(\n          parseResponsivePropValue(\n            clonedChild.props?.span as string | number | undefined,\n            responsiveQuery\n          ) ?? defaultSpan\n        )\n\n        if (rawChildSpan === 0)\n          return\n        childrenAndRawSpan.push({\n          child: clonedChild,\n          rawChildSpan\n        })\n      })\n\n      let suffixSpan = 0\n      const maybeSuffixNode\n        = childrenAndRawSpan[childrenAndRawSpan.length - 1]?.child\n      if (maybeSuffixNode?.props) {\n        const suffixPropValue = maybeSuffixNode.props?.suffix\n        if (suffixPropValue !== undefined && suffixPropValue !== false) {\n          suffixSpan = Number(\n            parseResponsivePropValue(\n              maybeSuffixNode.props?.span as string | number | null | undefined,\n              responsiveQuery\n            ) ?? defaultSpan\n          )\n          maybeSuffixNode.props.privateSpan = suffixSpan\n          maybeSuffixNode.props.privateColStart\n            = responsiveCols + 1 - suffixSpan\n          maybeSuffixNode.props.privateShow\n            = maybeSuffixNode.props.privateShow ?? true\n        }\n      }\n\n      let spanCounter = 0\n      let done = false\n      for (const { child, rawChildSpan } of childrenAndRawSpan) {\n        if (done) {\n          this.overflow = true\n        }\n\n        if (!done) {\n          const childOffset = Number(\n            parseResponsivePropValue(\n              child.props?.offset as string | number | undefined,\n              responsiveQuery\n            ) ?? 0\n          )\n          // it could be 0 sometimes (v-show = false)\n          const childSpan = Math.min(rawChildSpan + childOffset, responsiveCols)\n          if (!child.props) {\n            child.props = {\n              privateSpan: childSpan,\n              privateOffset: childOffset\n            }\n          }\n          else {\n            child.props.privateSpan = childSpan\n            child.props.privateOffset = childOffset\n          }\n          if (collapsed) {\n            const remainder = spanCounter % responsiveCols\n            if (childSpan + remainder > responsiveCols) {\n              spanCounter += responsiveCols - remainder\n            }\n            if (\n              childSpan + spanCounter + suffixSpan\n              > collapsedRows * responsiveCols\n            ) {\n              done = true\n            }\n            else {\n              spanCounter += childSpan\n            }\n          }\n        }\n        if (done) {\n          if (child.props) {\n            // suffix node's privateShow may be true\n            if (child.props.privateShow !== true) {\n              child.props.privateShow = false\n            }\n          }\n          else {\n            child.props = {\n              privateShow: false\n            }\n          }\n        }\n      }\n      return h(\n        'div',\n        mergeProps(\n          {\n            ref: 'contentEl',\n            class: `${this.mergedClsPrefix}-grid`,\n            style: this.style,\n            [SSR_ATTR_NAME]: this.isSsr || undefined\n          },\n          this.$attrs\n        ),\n        childrenAndRawSpan.map(({ child }) => child)\n      )\n    }\n    return this.isResponsive && this.responsive === 'self' ? (\n      <VResizeObserver onResize={this.handleResize}>\n        {{\n          default: renderContent\n        }}\n      </VResizeObserver>\n    ) : (\n      renderContent()\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const {\n    borderRadius,\n    fontSizeMini,\n    fontSizeTiny,\n    fontSizeSmall,\n    fontWeight,\n    textColor2,\n    cardColor,\n    buttonColor2Hover\n  } = vars\n  return {\n    activeColors: ['#9be9a8', '#40c463', '#30a14e', '#216e39'],\n    borderRadius,\n    borderColor: cardColor,\n    textColor: textColor2,\n    mininumColor: buttonColor2Hover,\n    fontWeight,\n    loadingColorStart: 'rgba(0, 0, 0, 0.06)',\n    loadingColorEnd: 'rgba(0, 0, 0, 0.12)',\n    rectSizeSmall: '10px',\n    rectSizeMedium: '11px',\n    rectSizeLarge: '12px',\n    borderRadiusSmall: '2px',\n    borderRadiusMedium: '2px',\n    borderRadiusLarge: '2px',\n    xGapSmall: '2px',\n    xGapMedium: '3px',\n    xGapLarge: '3px',\n    yGapSmall: '2px',\n    yGapMedium: '3px',\n    yGapLarge: '3px',\n    fontSizeSmall: fontSizeTiny,\n    fontSizeMedium: fontSizeMini,\n    fontSizeLarge: fontSizeSmall\n  }\n}\n\nexport interface HeatmapThemeVars extends ReturnType<typeof self> {}\n\nconst heatmapLight: HeatmapTheme = createTheme({\n  name: 'Heatmap',\n  common: commonLight,\n  self\n})\n\nexport interface HeatmapTheme extends Theme<'Heatmap', HeatmapThemeVars> {}\n\nexport interface HeatmapThemeOverrides extends ExtractThemeOverrides<HeatmapTheme> {}\n\nexport default heatmapLight\n","import type { ComputedRef, Ref } from 'vue'\nimport type { MergedTheme, Theme } from '../../_mixins'\nimport type { HeatmapThemeVars } from '../styles'\nimport { useSsrAdapter } from '@css-render/vue3-ssr'\nimport { hash } from 'css-render'\nimport { inject, onMounted, ref, watchEffect } from 'vue'\nimport { c } from '../../_utils/cssr'\nimport { configProviderInjectionKey } from '../../config-provider/src/context'\n\nexport function useLoadingStyleClass(\n  props: { loading?: boolean },\n  themeRef: ComputedRef<MergedTheme<Theme<'Heatmap', HeatmapThemeVars, any>>>\n): Ref<string> {\n  const loadingClassRef = ref('')\n  const adapter = useSsrAdapter()\n  const NConfigProvider = inject(configProviderInjectionKey, null)\n  const styleMountTarget = NConfigProvider?.styleMountTarget\n  onMounted(() => {\n    watchEffect(() => {\n      if (!props.loading) {\n        return\n      }\n      const {\n        self: { loadingColorStart, loadingColorEnd }\n      } = themeRef.value\n      const loadingColorHash = hash(loadingColorStart) + hash(loadingColorEnd)\n      const className = `heatmap-loading-${loadingColorHash}`\n      const animationName = `heatmap-loading-animation-${loadingColorHash}`\n      loadingClassRef.value = className\n      const cnode = c([\n        c(\n          `.${className}`,\n          `\n          animation: 2s ${animationName} infinite cubic-bezier(0.36, 0, 0.64, 1);\n        `\n        ),\n        c(\n          `@keyframes ${animationName}`,\n          `\n          0% {\n            background: ${loadingColorStart};\n          }\n          40% {\n            background: ${loadingColorEnd};\n          }\n          80% {\n            background: ${loadingColorStart};\n          }\n          100% {\n            background: ${loadingColorStart};\n          }\n        `\n        )\n      ])\n      // We don't unmount it since we didn't know its mount count\n      cnode.mount({\n        id: loadingColorHash,\n        ssr: adapter,\n        parent: styleMountTarget\n      })\n    })\n  })\n  return loadingClassRef\n}\n","import type { PropType, SlotsType, VNode } from 'vue'\nimport { defineComponent, h } from 'vue'\n\ninterface HeatmapColorIndicatorSlots {\n  'leading-text'?: () => VNode[]\n  'trailing-text'?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'HeatmapColorIndicator',\n  slots: Object as SlotsType<HeatmapColorIndicatorSlots>,\n  props: {\n    colors: {\n      type: Array as PropType<string[]>,\n      required: true\n    },\n    clsPrefix: {\n      type: String,\n      required: true\n    }\n  },\n  setup(props, { slots }) {\n    return () => {\n      const { colors, clsPrefix } = props\n      return (\n        <div class={`${clsPrefix}-heatmap-color-indicator`}>\n          <span class={`${clsPrefix}-heatmap-color-indicator__label`}>\n            {slots['leading-text']?.()}\n          </span>\n          <div class={`${clsPrefix}-heatmap-color-indicator__cells`}>\n            {colors.map((color: string, index: number) => (\n              <div\n                key={index}\n                class={`${clsPrefix}-heatmap-color-indicator__cell`}\n                style={{ backgroundColor: color }}\n              />\n            ))}\n          </div>\n          <span class={`${clsPrefix}-heatmap-color-indicator__label`}>\n            {slots['trailing-text']?.()}\n          </span>\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { PopoverProps } from '../../popover/src/Popover'\nimport type { HeatmapDataItem } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { resolveSlotWithTypedProps } from '../../_utils'\nimport Tooltip from '../../tooltip/src/Tooltip'\n\nexport interface RectSlots {\n  tooltip?: (props: HeatmapDataItem) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'HeatmapRect',\n  slots: Object as SlotsType<RectSlots>,\n  props: {\n    mergedClsPrefix: {\n      type: String,\n      required: true\n    },\n    data: {\n      type: Object as PropType<HeatmapDataItem>,\n      required: true\n    },\n    color: {\n      type: String,\n      required: true\n    },\n    style: Object,\n    loading: Boolean,\n    loadingClass: String,\n    tooltip: {\n      type: [Boolean, Object] as PropType<PopoverProps | boolean>,\n      default: true\n    }\n  },\n  setup(props) {\n    const cssVarsRef = computed(() => ({\n      '--n-rect-color': props.color\n    }))\n\n    const tooltipPropsRef = computed(() => {\n      return typeof props.tooltip === 'object' ? props.tooltip : {}\n    })\n\n    const defaultTooltipContentRef = computed(() => {\n      const date = new Date(props.data.timestamp).toLocaleDateString()\n      return props.data.value !== null ? `${date} ${props.data.value}` : date\n    })\n\n    return {\n      cssVars: cssVarsRef as Ref<CSSProperties>,\n      tooltipProps: tooltipPropsRef,\n      defaultTooltipContent: defaultTooltipContentRef\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      style,\n      cssVars,\n      tooltip,\n      tooltipProps,\n      defaultTooltipContent,\n      loading,\n      data\n    } = this\n    const triggerNode = (\n      <div\n        class={[\n          `${mergedClsPrefix}-heatmap-rect`,\n          loading && `${mergedClsPrefix}-heatmap-rect--loading`,\n          loading && this.loadingClass\n        ]}\n        style={[cssVars, style]}\n      />\n    )\n\n    return tooltip === false || loading ? (\n      triggerNode\n    ) : (\n      <Tooltip trigger=\"hover\" {...tooltipProps}>\n        {{\n          default: () =>\n            resolveSlotWithTypedProps(this.$slots.tooltip, data, () => [\n              <div>{defaultTooltipContent}</div>\n            ]),\n          trigger: () => triggerNode\n        }}\n      </Tooltip>\n    )\n  }\n})\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-font-weight\n// --n-text-color\n// --n-border-radius\n// --n-x-gap\n// --n-y-gap\n// --n-rect-size\n// --n-rect-color (for individual rect background color)\n// --n-bezier\n\nexport default c([\n  cB('heatmap', `\n    display: flex;\n    flex-direction: column;\n    max-width: fit-content;\n    font-size: var(--n-font-size);\n  `, [\n    cE('content', `\n      display: block;\n    `),\n    cE('calendar-table', `\n      border-collapse: separate;\n      border-spacing: var(--n-y-gap) var(--n-x-gap);\n      font-size: var(--n-font-size);\n    `),\n    cE('week-header-cell', `\n      width: 27px;\n      padding: 0;\n      border: none;\n      font-size: var(--n-font-size);\n    `),\n    cE('month-label-cell', `\n      font-size: var(--n-font-size);\n      color: var(--n-text-color);\n      text-align: left;\n      height: 15px;\n      line-height: 15px;\n      font-weight: var(--n-font-weight);\n      padding: 0 2px 8px;\n      vertical-align: bottom;\n      transition: color .3s var(--n-bezier);\n    `),\n    cE('week-label-cell', `\n      font-size: var(--n-font-size);\n      color: var(--n-text-color);\n      text-align: right;\n      width: 27px;\n      height: 11px;\n      line-height: 11px;\n      padding: 0 4px 0 0;\n      border: none;\n      vertical-align: middle;\n      white-space: nowrap;\n      font-weight: var(--n-font-weight);\n      transition: color .3s var(--n-bezier);\n    `),\n    cE('day-cell', `\n      width: var(--n-rect-size);\n      height: var(--n-rect-size);\n      padding: 0;\n      border: none;\n      vertical-align: middle;\n      transition: color .3s var(--n-bezier);\n    `),\n    cE('empty-cell', `\n      width: var(--n-rect-size);\n      height: var(--n-rect-size);\n      border-radius: var(--n-border-radius);\n    `),\n    cE('footer', `\n      display: flex;\n      justify-content: space-between;\n      margin-left: 17px;\n      align-items: center;\n      margin-top: 8px;\n      &:has(> :only-child) {\n        justify-content: flex-end;\n      }\n    `),\n    cE('indicator', `\n      display: flex;\n      align-items: center;\n      justify-content: flex-end;\n    `)\n  ]),\n  cB('heatmap-rect', `\n    width: var(--n-rect-size);\n    height: var(--n-rect-size);\n    border-radius: var(--n-border-radius);\n    background-color: var(--n-rect-color);\n    transition: background-color .3s var(--n-bezier);\n  `, [\n    cM('loading', `\n      cursor: default;\n      background: var(--n-loading-color-start);\n    `)\n  ]),\n  cB('heatmap-color-indicator', `\n    display: flex;\n    align-items: center;\n    justify-content: flex-end;\n    gap: 4px;\n    font-size: var(--n-font-size);\n  `, [\n    cE('cells', `\n      display: flex;\n      gap: var(--n-x-gap);\n    `),\n    cE('cell', `\n      width: var(--n-rect-size);\n      height: var(--n-rect-size);\n      border-radius: var(--n-border-radius);\n      transition: background-color .3s var(--n-bezier);\n    `),\n    cE('label', `\n      font-size: var(--n-font-size);\n      color: var(--n-text-color);\n      transition: color .3s var(--n-bezier);\n    `)\n  ])\n])\n","export const heatmapColorThemes = {\n  green: ['#c6e48b', '#7bc96f', '#239a3b', '#196127'],\n  blue: ['#c0e7ff', '#73b3ff', '#0969da', '#0550ae'],\n  orange: ['#fed7aa', '#fb923c', '#ea580c', '#c2410c'],\n  purple: ['#e9d5ff', '#c084fc', '#9333ea', '#7c3aed'],\n  red: ['#fecaca', '#f87171', '#dc2626', '#b91c1c']\n}\n\nexport type HeatmapColorTheme = keyof typeof heatmapColorThemes\n","import type { DayRect } from '../interface'\nimport type {\n  HeatmapData,\n  HeatmapDataItem,\n  HeatmapFirstDayOfWeek\n} from '../public-types'\nimport {\n  differenceInCalendarDays,\n  eachDayOfInterval,\n  endOfWeek,\n  endOfYear,\n  getDay,\n  isWithinInterval,\n  startOfDay,\n  startOfWeek,\n  startOfYear,\n  subYears\n} from 'date-fns'\nimport { groupBy } from 'lodash-es'\n\n/** get color by value/maxValue */\nexport function calcColorByValue(\n  colors: string[],\n  value: number | null | undefined,\n  maxValue: number\n): string {\n  if (maxValue === 0 || value === null || value === undefined || value <= 0) {\n    return colors[0]\n  }\n\n  const ratio = Math.min(value / maxValue, 1)\n  const maxLevel = colors.length - 1\n  const level = Math.min(Math.ceil(ratio * maxLevel), maxLevel)\n\n  return colors[level]\n}\n\n/**\n * fill gaps for the given data\n *\n * fill gaps `[firstDate,lastDate]` with value `0`\n *\n * fill `[firstCalendarDate,firstDate]` and `[lastDate,lastCalendarDate]` with value `null` by default\n *\n * fill `[firstCalendarDate,firstDate]` with value `0` when `fillCalendarLeading` is `true`\n */\nexport function completeDataGaps(\n  data: HeatmapData,\n  firstDayOfWeek: HeatmapFirstDayOfWeek,\n  fillCalendarLeading: boolean\n): HeatmapData {\n  const sortedData = [...data].sort((a, b) => a.timestamp - b.timestamp)\n  const firstDate = sortedData[0].timestamp\n  const lastDate = sortedData[sortedData.length - 1].timestamp\n\n  const firstCalendarDate = startOfWeek(firstDate, {\n    weekStartsOn: firstDayOfWeek\n  })\n  const lastCalendarEndDate = endOfWeek(lastDate, {\n    weekStartsOn: firstDayOfWeek\n  })\n\n  const dataMap = new Map(\n    sortedData.map(d => [startOfDay(d.timestamp).getTime(), d])\n  )\n\n  const allCalendarDates = eachDayOfInterval({\n    start: firstCalendarDate,\n    end: lastCalendarEndDate\n  })\n\n  const startDate = fillCalendarLeading ? firstCalendarDate : firstDate\n  return allCalendarDates.map((date) => {\n    const key = startOfDay(date).getTime()\n    const dateValue = dataMap.get(key)\n\n    if (dateValue) {\n      return dateValue\n    }\n\n    const value = isWithinInterval(date, { start: startDate, end: lastDate })\n      ? 0\n      : null\n\n    return { timestamp: date.getTime(), value }\n  })\n}\n\n/**\n * Create a DayRect object with position information\n */\nexport function createDayRect(\n  item: HeatmapDataItem,\n  calendarStartDate: number,\n  weekStartOn: number,\n  colors: string[],\n  maxValue: number\n): DayRect {\n  const daysFromGridStart = differenceInCalendarDays(\n    item.timestamp,\n    calendarStartDate\n  )\n\n  const colIndex = Math.floor(daysFromGridStart / 7)\n  const dayOfWeek = getDay(item.timestamp)\n  const rowIndex = (dayOfWeek - weekStartOn + 7) % 7\n\n  return {\n    timestamp: item.timestamp,\n    value: item.value,\n    color: calcColorByValue(colors, item.value, maxValue),\n    dayOfWeek,\n    rowIndex,\n    colIndex\n  }\n}\n\n/**\n * Create a sparse matrix from items with position information\n */\nexport function createSparseMatrix<T>(\n  rows: number,\n  items: T[],\n  getRowIndex: (item: T) => number,\n  getColIndex: (item: T) => number\n): T[][] {\n  const groupedByRow = groupBy(items, getRowIndex)\n\n  return Array.from({ length: rows }, (_, rowIndex) => {\n    const rowData = groupedByRow[rowIndex] || []\n    const row: T[] = []\n    rowData.forEach((item) => {\n      row[getColIndex(item)] = item\n    })\n    return row\n  })\n}\n\n/**\n * This creates a 7x53 matrix (typical year layout) filled with loading cells\n */\nexport function createLoadingMatrix(\n  firstDayOfWeek: HeatmapFirstDayOfWeek\n): DayRect[][] {\n  const rows = 7\n  const cols = 53\n  const currentTimestamp = Date.now()\n\n  return Array.from({ length: rows }, (_, row) =>\n    Array.from({ length: cols }, (_, col) => ({\n      timestamp: currentTimestamp,\n      value: 0,\n      color: '#000000',\n      dayOfWeek: (firstDayOfWeek + row) % 7,\n      rowIndex: row,\n      colIndex: col\n    })))\n}\n\n/**\n * Generate heatmap data for mock purposes.\n * This function generates random data and the result is not stable.\n * @param range - 'recent' for last year, or a specific year number\n */\nexport function heatmapMockData(year?: 'recent' | number): HeatmapData {\n  let start: Date\n  let end: Date\n\n  if (year === undefined || year === 'recent') {\n    end = new Date()\n    start = subYears(end, 1)\n  }\n  else {\n    const _year = Number(year)\n    start = startOfYear(new Date(_year, 0, 1))\n    end = endOfYear(new Date(_year, 11, 31))\n  }\n\n  const allDays = eachDayOfInterval({ start, end })\n\n  return allDays.map((day) => {\n    const dayOfWeek = day.getDay()\n    const isWeekend = dayOfWeek === 0 || dayOfWeek === 6\n\n    if (isWeekend && Math.random() < 0.7) {\n      return { timestamp: day.getTime(), value: 0 }\n    }\n\n    if (!isWeekend && Math.random() < 0.15) {\n      return { timestamp: day.getTime(), value: 0 }\n    }\n\n    const value = Math.floor(Math.random() ** 2 * 40) + 1\n\n    return { timestamp: day.getTime(), value }\n  })\n}\n","import type { CSSProperties, PropType, Ref, SlotsType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TooltipProps } from '../../tooltip'\nimport type { HeatmapTheme, HeatmapThemeOverrides } from '../styles/light'\nimport type { DayRect } from './interface'\nimport type {\n  HeatmapData,\n  HeatmapFirstDayOfWeek,\n  HeatmapSlots\n} from './public-types'\nimport type { HeatmapColorTheme } from './theme'\nimport { addDays, format, parseISO, startOfWeek } from 'date-fns'\nimport { groupBy, mapValues, maxBy } from 'lodash-es'\nimport { pxfy } from 'seemly'\nimport { computed, defineComponent, h } from 'vue'\nimport {\n  useConfig,\n  useLocale,\n  useRtl,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport { createKey, resolveSlot, resolveWrappedSlot } from '../../_utils'\nimport { transformNaiveFirstDayOfWeekToDateFns } from '../../date-picker/src/utils'\nimport heatmapLight from '../styles/light'\nimport { useLoadingStyleClass } from './animationStyle'\nimport HeatmapColorIndicator from './ColorIndicator'\nimport Rect from './Rect'\nimport style from './styles/index.cssr'\nimport { heatmapColorThemes } from './theme'\nimport {\n  completeDataGaps,\n  createDayRect,\n  createLoadingMatrix,\n  createSparseMatrix\n} from './utils'\n\ninterface Col {\n  week: number\n  month: string\n}\n\nexport const heatmapProps = {\n  ...(useTheme.props as ThemeProps<HeatmapTheme, HeatmapThemeOverrides>),\n  activeColors: Array as PropType<string[]>,\n  colorTheme: String as PropType<HeatmapColorTheme>,\n  data: Array as PropType<HeatmapData>,\n  loadingData: Object as PropType<HeatmapData>,\n  fillCalendarLeading: Boolean,\n  firstDayOfWeek: {\n    type: Number as PropType<HeatmapFirstDayOfWeek>,\n    default: 0\n  },\n  loading: Boolean,\n  minimumColor: String,\n  showColorIndicator: {\n    type: Boolean,\n    default: true\n  },\n  showWeekLabels: {\n    type: Boolean,\n    default: true\n  },\n  showMonthLabels: {\n    type: Boolean,\n    default: true\n  },\n  size: {\n    type: String as PropType<'small' | 'medium' | 'large'>,\n    default: 'medium'\n  },\n  tooltip: {\n    type: [Boolean, Object] as PropType<TooltipProps | boolean>,\n    default: false\n  },\n  xGap: [Number, String] as PropType<number | string>,\n  yGap: [Number, String] as PropType<number | string>\n} as const\n\nexport type HeatmapProps = ExtractPublicPropTypes<typeof heatmapProps>\n\nexport default defineComponent({\n  name: 'Heatmap',\n  slots: Object as SlotsType<HeatmapSlots>,\n  props: heatmapProps,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef, inlineThemeDisabled }\n      = useConfig(props)\n    const { localeRef, dateLocaleRef } = useLocale('Heatmap')\n    const themeRef = useTheme(\n      'Heatmap',\n      '-heatmap',\n      style,\n      heatmapLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Heatmap', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const { xGap, yGap, size } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontWeight,\n          textColor,\n          borderColor,\n          loadingColorStart,\n          [createKey('rectSize', size)]: rectSize,\n          [createKey('borderRadius', size)]: sizeBorderRadius,\n          [createKey('xGap', size)]: defaultXGap,\n          [createKey('yGap', size)]: defaultYGap,\n          [createKey('fontSize', size)]: fontSize\n        }\n      } = themeRef.value\n      const cssVars = {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-font-weight': fontWeight,\n        '--n-text-color': textColor,\n        '--n-border-radius': sizeBorderRadius,\n        '--n-border-color': borderColor,\n        '--n-loading-color-start': loadingColorStart,\n        '--n-rect-size': rectSize,\n        '--n-x-gap':\n          xGap !== undefined\n            ? typeof xGap === 'number'\n              ? pxfy(xGap)\n              : xGap\n            : defaultXGap,\n        '--n-y-gap':\n          yGap !== undefined\n            ? typeof yGap === 'number'\n              ? pxfy(yGap)\n              : yGap\n            : defaultYGap\n      }\n\n      return cssVars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'heatmap',\n          computed(() => {\n            const { size } = props\n            return size[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    const mergedColorsRef = computed(() => {\n      const {\n        mininumColor: builtInMinimumColor,\n        activeColors: builtInActiveColors\n      } = themeRef.value.self\n      const mergedMininumColor = props.minimumColor || builtInMinimumColor\n      const theme = props.colorTheme && heatmapColorThemes[props.colorTheme]\n      const mergedActiveColors\n        = props.activeColors || theme || builtInActiveColors\n\n      return [mergedMininumColor, ...mergedActiveColors]\n    })\n\n    const normalizedDataRef = computed(() => {\n      if (!props.data || props.data.length === 0) {\n        return []\n      }\n      return completeDataGaps(\n        props.data,\n        transformNaiveFirstDayOfWeekToDateFns(props.firstDayOfWeek),\n        props.fillCalendarLeading\n      )\n    })\n\n    const normalizedLoadingDataRef = computed(() => {\n      if (!props.loadingData || props.loadingData.length === 0) {\n        return []\n      }\n      return completeDataGaps(\n        props.loadingData,\n        transformNaiveFirstDayOfWeekToDateFns(props.firstDayOfWeek),\n        props.fillCalendarLeading\n      )\n    })\n\n    const maxValueRef = computed(() => {\n      const validData = normalizedDataRef.value.filter(d => d.value !== null)\n      return maxBy(validData, d => d.value!)?.value ?? 0\n    })\n\n    const heatmapMatrixRef = computed(() => {\n      const data = normalizedDataRef.value\n      const loadingData = normalizedLoadingDataRef.value\n      if (props.loading && !loadingData.length) {\n        return createLoadingMatrix(\n          transformNaiveFirstDayOfWeekToDateFns(props.firstDayOfWeek)\n        )\n      }\n\n      const finalData = props.loading ? loadingData : data\n      if (!finalData.length)\n        return []\n\n      const maxValue = maxValueRef.value\n      const colors = mergedColorsRef.value\n      const calendarStartDate = finalData[0].timestamp\n\n      const dayRects = finalData.map(item =>\n        createDayRect(\n          item,\n          calendarStartDate,\n          transformNaiveFirstDayOfWeekToDateFns(props.firstDayOfWeek),\n          colors,\n          maxValue\n        )\n      )\n\n      return createSparseMatrix(\n        7,\n        dayRects,\n        dayRect => dayRect.rowIndex,\n        dayRect => dayRect.colIndex\n      )\n    })\n\n    const weekLabelsRef = computed(() => {\n      const { weekdayFormat } = localeRef.value\n      const { locale } = dateLocaleRef.value\n\n      const baseDate = startOfWeek(new Date(), {\n        weekStartsOn: transformNaiveFirstDayOfWeekToDateFns(\n          props.firstDayOfWeek\n        )\n      })\n\n      return Array.from({ length: 7 }, (_, i) => {\n        return {\n          label: format(addDays(baseDate, i), weekdayFormat, { locale }),\n          visible: i % 2 !== 0\n        }\n      })\n    })\n\n    const loadingMonthLabelsRef = computed(() => {\n      const { monthFormat } = localeRef.value\n      const { locale } = dateLocaleRef.value\n      const currentYear = new Date().getFullYear()\n      // for more consistent month label widths\n      const colSpans = [5, 4, 5, 4, 5, 4, 5, 4, 4, 5, 4, 4]\n      return Array.from({ length: 12 }, (_, i) => {\n        const monthDate = new Date(currentYear, i, 1)\n        return {\n          name: format(monthDate, monthFormat, { locale }),\n          colSpan: colSpans[i]\n        }\n      })\n    })\n\n    function getColsMonth(matrix: DayRect[][]): Col[] {\n      const cols = matrix[0].length\n      const res: Col[] = []\n      for (let col = 0; col < cols; col++) {\n        for (let row = 0; row < matrix.length; row++) {\n          const cell = matrix[row][col]\n          if (cell?.value !== null) {\n            res.push({\n              week: col,\n              month: format(cell.timestamp, 'yyyy-MM')\n            })\n            break\n          }\n        }\n      }\n      return res\n    }\n\n    const dataMonthLabelsRef = computed(() => {\n      const { monthFormat } = localeRef.value\n      const { locale } = dateLocaleRef.value\n      const matrix = heatmapMatrixRef.value\n      if (!matrix || matrix.length === 0 || !matrix[0]) {\n        return []\n      }\n      const colsWithMonth = getColsMonth(matrix)\n      const monthStats = mapValues(\n        groupBy(colsWithMonth, 'month'),\n        (entries) => {\n          const weekNumbers = entries.map(e => e.week)\n          return {\n            weekCount: entries.length,\n            start: Math.min(...weekNumbers),\n            end: Math.max(...weekNumbers)\n          }\n        }\n      )\n\n      return Object.entries(monthStats)\n        .filter(([, stats]) => stats.weekCount >= 3) // ensure have enough space\n        .sort(([a], [b]) => a.localeCompare(b))\n        .map(([month, stats]) => {\n          const monthDate = new Date(parseISO(`${month}-01`))\n          return {\n            name: format(monthDate, monthFormat, { locale }),\n            colSpan: stats.end - stats.start + 1\n          }\n        })\n    })\n\n    const monthLabelsRef = computed(() => {\n      return props.loading && !props.loadingData\n        ? loadingMonthLabelsRef.value\n        : dataMonthLabelsRef.value\n    })\n\n    const loadingClassRef = useLoadingStyleClass(props, themeRef)\n\n    return {\n      weekLabels: weekLabelsRef,\n      monthLabels: monthLabelsRef,\n      mergedColors: mergedColorsRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      locale: localeRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      heatmapMatrix: heatmapMatrixRef,\n      loadingClass: loadingClassRef\n    }\n  },\n  render() {\n    const {\n      loading,\n      showWeekLabels,\n      showMonthLabels,\n      showColorIndicator,\n      mergedClsPrefix,\n      themeClass,\n      cssVars,\n      rtlEnabled,\n      locale,\n      weekLabels,\n      monthLabels,\n      mergedColors,\n      $slots,\n      heatmapMatrix,\n      loadingClass,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          themeClass,\n          `${mergedClsPrefix}-heatmap`,\n          rtlEnabled && `${mergedClsPrefix}-heatmap--rtl`\n        ]}\n        style={cssVars}\n      >\n        <div class={`${mergedClsPrefix}-heatmap__content`}>\n          <table class={`${mergedClsPrefix}-heatmap__calendar-table`}>\n            {showMonthLabels && (\n              <thead>\n                <tr>\n                  {showWeekLabels && (\n                    <th\n                      class={`${mergedClsPrefix}-heatmap__week-header-cell`}\n                    />\n                  )}\n                  {monthLabels.map((monthLabel, index) => (\n                    <th\n                      key={`month-${index}`}\n                      colspan={monthLabel.colSpan}\n                      class={`${mergedClsPrefix}-heatmap__month-label-cell`}\n                    >\n                      {monthLabel.name}\n                    </th>\n                  ))}\n                </tr>\n              </thead>\n            )}\n            <tbody>\n              {weekLabels.map((weekLabel, rowIdx) => {\n                return (\n                  <tr key={`row-${rowIdx}`}>\n                    {showWeekLabels && (\n                      <td class={`${mergedClsPrefix}-heatmap__week-label-cell`}>\n                        {weekLabel.visible ? weekLabel.label : null}\n                      </td>\n                    )}\n                    {(heatmapMatrix[rowIdx] || []).map(\n                      (day: DayRect, weekIdx: number) => {\n                        return day.value !== null ? (\n                          <td\n                            key={`day-${rowIdx}-${weekIdx}`}\n                            class={`${mergedClsPrefix}-heatmap__day-cell`}\n                          >\n                            <Rect\n                              mergedClsPrefix={mergedClsPrefix}\n                              data={day}\n                              color={day.color}\n                              tooltip={this.tooltip}\n                              loading={loading}\n                              loadingClass={loadingClass}\n                            >\n                              {{\n                                tooltip: () => $slots.tooltip?.(day)\n                              }}\n                            </Rect>\n                          </td>\n                        ) : (\n                          <td\n                            key={`empty-${rowIdx}-${weekIdx}`}\n                            class={`${mergedClsPrefix}-heatmap__day-cell`}\n                          >\n                            <div\n                              class={`${mergedClsPrefix}-heatmap__empty-cell`}\n                            />\n                          </td>\n                        )\n                      }\n                    )}\n                  </tr>\n                )\n              })}\n            </tbody>\n          </table>\n        </div>\n        <div class={`${mergedClsPrefix}-heatmap__footer`}>\n          {resolveWrappedSlot(\n            $slots.footer,\n            children =>\n              children && (\n                <div class={`${mergedClsPrefix}-heatmap__footer`}>\n                  {children}\n                </div>\n              )\n          )}\n          <div class={`${mergedClsPrefix}-heatmap__indicator`}>\n            {resolveSlot($slots.indicator, () => [\n              showColorIndicator && (\n                <HeatmapColorIndicator\n                  colors={mergedColors}\n                  clsPrefix={mergedClsPrefix}\n                >\n                  {{\n                    'leading-text': () =>\n                      resolveSlot($slots['indicator-leading-text'], () => [\n                        locale.less\n                      ]),\n                    'trailing-text': () =>\n                      resolveSlot($slots['indicator-trailing-text'], () => [\n                        locale.more\n                      ])\n                  }}\n                </HeatmapColorIndicator>\n              )\n            ])}\n          </div>\n        </div>\n      </div>\n    )\n  }\n})\n","export function splitAndMarkByRegex(\n  str: string,\n  regex: RegExp\n): Array<{\n  text: string\n  isMatch: boolean\n}> {\n  if (!regex.global) {\n    throw new Error(\n      'splitAndMarkByRegex requires a global regex (with \"g\" flag)'\n    )\n  }\n\n  const result = []\n  let lastIndex = 0\n  for (const match of str.matchAll(regex)) {\n    const { index } = match\n    if (index > lastIndex) {\n      result.push({ text: str.slice(lastIndex, index), isMatch: false })\n    }\n\n    result.push({ text: match[0], isMatch: true })\n\n    lastIndex = index + match[0].length\n  }\n\n  if (lastIndex < str.length) {\n    result.push({ text: str.slice(lastIndex), isMatch: false })\n  }\n\n  return result\n}\n","import type { CSSProperties, PropType, VNode, VNodeChild } from 'vue'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { splitAndMarkByRegex } from './utils'\n\nexport const highlightProps = {\n  highlightTag: {\n    type: String,\n    default: 'mark'\n  },\n  caseSensitive: Boolean,\n  autoEscape: {\n    type: Boolean,\n    default: true\n  },\n  text: String,\n  patterns: {\n    type: Array as PropType<string[]>,\n    default: () => []\n  },\n  highlightClass: String,\n  highlightStyle: [Object, String] as PropType<CSSProperties | string>\n} as const\n\nexport default defineComponent({\n  name: 'Highlight',\n  props: highlightProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig()\n\n    const escapeRegExp = (text: string): string =>\n      text.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n\n    const highlightedNodeRef = computed<VNode>(() => {\n      const mergedClsPrefix = mergedClsPrefixRef.value\n\n      let children: VNodeChild[] = []\n\n      const { patterns, text } = props\n\n      if (patterns.length === 0 || !text) {\n        children = [text]\n      }\n      else {\n        const {\n          highlightTag,\n          caseSensitive,\n          autoEscape,\n          highlightClass,\n          highlightStyle\n        } = props\n\n        const pattern = patterns\n          .map(word => (autoEscape ? escapeRegExp(word) : word))\n          .join('|')\n        const regex = new RegExp(`(${pattern})`, caseSensitive ? 'g' : 'gi')\n\n        const splitItems = splitAndMarkByRegex(text, regex)\n\n        children = splitItems.map(({ text, isMatch }) => {\n          if (isMatch) {\n            return h(\n              highlightTag,\n              {\n                class: [`${mergedClsPrefix}-highlight__mark`, highlightClass],\n                style: highlightStyle\n              },\n              text\n            )\n          }\n          return text\n        })\n      }\n\n      return h(\n        'span',\n        {\n          class: `${mergedClsPrefix}-highlight`\n        },\n        children\n      )\n    })\n\n    return {\n      highlightedNode: highlightedNodeRef,\n      mergedClsPrefix: mergedClsPrefixRef\n    }\n  },\n  render() {\n    return this.highlightedNode\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { primaryColor, baseColor } = vars\n  return {\n    color: primaryColor,\n    iconColor: baseColor\n  }\n}\n\nexport interface IconWrapperThemeVars extends ReturnType<typeof self> {}\n\nconst iconWrapperLight: IconWrapperTheme = {\n  name: 'IconWrapper',\n  common: commonLight,\n  self\n}\n\nexport interface IconWrapperTheme extends Theme<\n  'IconWrapper',\n  IconWrapperThemeVars\n> {}\n\nexport interface IconWrapperThemeOverrides extends ExtractThemeOverrides<IconWrapperTheme> {}\n\nexport default iconWrapperLight\n","import type { IconWrapperTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst iconDark: IconWrapperTheme = {\n  name: 'IconWrapper',\n  common: commonDark,\n  self\n}\n\nexport default iconDark\n","import { cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-border-radius\n// --n-color\n// --n-icon-color\nexport default cB('icon-wrapper', `\n  transition:\n    color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier);\n  background-color: var(--n-color);\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  color: var(--n-icon-color);\n`)\n","import type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { IconWrapperTheme, IconWrapperThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { formatLength } from '../../_utils'\nimport { iconWrapperLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const iconWrapperProps = {\n  ...(useTheme.props as ThemeProps<\n    IconWrapperTheme,\n    IconWrapperThemeOverrides\n  >),\n  size: {\n    type: Number,\n    default: 24\n  },\n  borderRadius: {\n    type: Number,\n    default: 6\n  },\n  color: String,\n  iconColor: String\n} as const\n\nexport type IconWrapperProps = ExtractPublicPropTypes<typeof iconWrapperProps>\n\nexport const NIconWrapper = defineComponent({\n  name: 'IconWrapper',\n  props: iconWrapperProps,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'IconWrapper',\n      '-icon-wrapper',\n      style,\n      iconWrapperLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { color, iconColor }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color': color,\n        '--n-icon-color': iconColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('icon-wrapper', undefined, cssVarsRef, props)\n      : undefined\n    return () => {\n      const size = formatLength(props.size)\n      themeClassHandle?.onRender()\n      return (\n        <div\n          class={[\n            `${mergedClsPrefixRef.value}-icon-wrapper`,\n            themeClassHandle?.themeClass.value\n          ]}\n          style={[\n            cssVarsRef?.value as any,\n            {\n              height: size,\n              width: size,\n              borderRadius: formatLength(props.borderRadius),\n              backgroundColor: props.color,\n              color: props.iconColor\n            }\n          ]}\n        >\n          {slots.default?.()}\n        </div>\n      )\n    }\n  }\n})\n","import type { ImageTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { tooltipDark } from '../../styles'\n\nexport const imageDark: ImageTheme = {\n  name: 'Image',\n  common: commonDark,\n  peers: {\n    Tooltip: tooltipDark\n  },\n  self: (vars) => {\n    const { textColor2 } = vars\n    return {\n      toolbarIconColor: textColor2,\n      toolbarColor: 'rgba(0, 0, 0, .35)',\n      toolbarBoxShadow: 'none',\n      toolbarBorderRadius: '24px'\n    }\n  }\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { TooltipTheme } from '../../tooltip/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { tooltipLight } from '../../tooltip/styles'\n\nfunction self() {\n  return {\n    toolbarIconColor: 'rgba(255, 255, 255, .9)',\n    toolbarColor: 'rgba(0, 0, 0, .35)',\n    toolbarBoxShadow: 'none',\n    toolbarBorderRadius: '24px'\n  }\n}\nexport const imageLight: ImageTheme = createTheme({\n  name: 'Image',\n  common: commonLight,\n  peers: {\n    Tooltip: tooltipLight\n  },\n  self\n})\n\nexport interface ImageThemeVars extends ReturnType<typeof self> {}\n\nexport interface ImageTheme extends Theme<\n  'Image',\n  ImageThemeVars,\n  {\n    Tooltip: TooltipTheme\n  }\n> {}\n\nexport interface ImageThemeOverrides extends ExtractThemeOverrides<ImageTheme> {}\n","import { h } from 'vue'\n\nexport function renderPrevIcon() {\n  return (\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M6 5C5.75454 5 5.55039 5.17688 5.50806 5.41012L5.5 5.5V14.5C5.5 14.7761 5.72386 15 6 15C6.24546 15 6.44961 14.8231 6.49194 14.5899L6.5 14.5V5.5C6.5 5.22386 6.27614 5 6 5ZM13.8536 5.14645C13.68 4.97288 13.4106 4.9536 13.2157 5.08859L13.1464 5.14645L8.64645 9.64645C8.47288 9.82001 8.4536 10.0894 8.58859 10.2843L8.64645 10.3536L13.1464 14.8536C13.3417 15.0488 13.6583 15.0488 13.8536 14.8536C14.0271 14.68 14.0464 14.4106 13.9114 14.2157L13.8536 14.1464L9.70711 10L13.8536 5.85355C14.0488 5.65829 14.0488 5.34171 13.8536 5.14645Z\"\n        fill=\"currentColor\"\n      />\n    </svg>\n  )\n}\n\nexport function renderNextIcon() {\n  return (\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M13.5 5C13.7455 5 13.9496 5.17688 13.9919 5.41012L14 5.5V14.5C14 14.7761 13.7761 15 13.5 15C13.2545 15 13.0504 14.8231 13.0081 14.5899L13 14.5V5.5C13 5.22386 13.2239 5 13.5 5ZM5.64645 5.14645C5.82001 4.97288 6.08944 4.9536 6.28431 5.08859L6.35355 5.14645L10.8536 9.64645C11.0271 9.82001 11.0464 10.0894 10.9114 10.2843L10.8536 10.3536L6.35355 14.8536C6.15829 15.0488 5.84171 15.0488 5.64645 14.8536C5.47288 14.68 5.4536 14.4106 5.58859 14.2157L5.64645 14.1464L9.79289 10L5.64645 5.85355C5.45118 5.65829 5.45118 5.34171 5.64645 5.14645Z\"\n        fill=\"currentColor\"\n      />\n    </svg>\n  )\n}\n\nexport function renderCloseIcon() {\n  return (\n    <svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n      <path\n        d=\"M4.089 4.216l.057-.07a.5.5 0 0 1 .638-.057l.07.057L10 9.293l5.146-5.147a.5.5 0 0 1 .638-.057l.07.057a.5.5 0 0 1 .057.638l-.057.07L10.707 10l5.147 5.146a.5.5 0 0 1 .057.638l-.057.07a.5.5 0 0 1-.638.057l-.07-.057L10 10.707l-5.146 5.147a.5.5 0 0 1-.638.057l-.07-.057a.5.5 0 0 1-.057-.638l.057-.07L9.293 10L4.146 4.854a.5.5 0 0 1-.057-.638l.057-.07l-.057.07z\"\n        fill=\"currentColor\"\n      />\n    </svg>\n  )\n}\n","import type { ImgHTMLAttributes, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ImageTheme, ImageThemeOverrides } from '../styles'\nimport type { ImageRenderToolbar } from './public-types'\nimport { useTheme } from '../../_mixins'\nimport { createInjectionKey } from '../../_utils'\n\nexport interface MoveStrategy {\n  moveVerticalDirection: 'verticalTop' | 'verticalBottom'\n  moveHorizontalDirection: 'horizontalLeft' | 'horizontalRight'\n  deltaHorizontal: number\n  deltaVertical: number\n}\n\nexport const imagePreviewSharedProps = {\n  ...(useTheme.props as ThemeProps<ImageTheme, ImageThemeOverrides>),\n  onPreviewPrev: Function as PropType<() => void>,\n  onPreviewNext: Function as PropType<() => void>,\n  showToolbar: { type: Boolean, default: true },\n  showToolbarTooltip: Boolean,\n  keepDragOffset: Boolean,\n  renderToolbar: Function as PropType<ImageRenderToolbar>\n}\n\nexport interface ImageContext {\n  previewedImgPropsRef: Ref<ImgHTMLAttributes | undefined>\n}\n\nexport const imageContextKey = createInjectionKey<ImageContext>('n-image')\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { c, cB, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-toolbar-icon-color\n// --n-toolbar-color\n// --n-toolbar-border-radius\n// --n-toolbar-box-shadow\n// --n-bezier\nexport default c([\n  c('body >', [\n    cB('image-container', 'position: fixed;')\n  ]),\n  cB('image-preview-container', `\n    position: fixed;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    display: flex;\n  `),\n  cB('image-preview-overlay', `\n    z-index: -1;\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    background: rgba(0, 0, 0, .3);\n  `, [\n    fadeInTransition()\n  ]),\n  cB('image-preview-toolbar', `\n    z-index: 1;\n    position: absolute;\n    left: 50%;\n    transform: translateX(-50%);\n    border-radius: var(--n-toolbar-border-radius);\n    height: 48px;\n    bottom: 40px;\n    padding: 0 12px;\n    background: var(--n-toolbar-color);\n    box-shadow: var(--n-toolbar-box-shadow);\n    color: var(--n-toolbar-icon-color);\n    transition: color .3s var(--n-bezier);\n    display: flex;\n    align-items: center;\n  `, [\n    cB('base-icon', `\n      padding: 0 8px;\n      font-size: 28px;\n      cursor: pointer;\n    `),\n    fadeInTransition()\n  ]),\n  cB('image-preview-wrapper', `\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n    display: flex;\n    pointer-events: none;\n  `, [\n    fadeInScaleUpTransition()\n  ]),\n  cB('image-preview', `\n    user-select: none;\n    -webkit-user-select: none;\n    pointer-events: all;\n    margin: auto;\n    max-height: calc(100vh - 32px);\n    max-width: calc(100vw - 32px);\n    transition: transform .3s var(--n-bezier);\n  `),\n  cB('image', `\n    display: inline-flex;\n    max-height: 100%;\n    max-width: 100%;\n  `, [\n    cNotM('preview-disabled', `\n      cursor: pointer;\n    `),\n    c('img', `\n      border-radius: inherit;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, VNode } from 'vue'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { MoveStrategy } from './interface'\nimport type { ImagePreviewInst } from './public-types'\nimport { off, on } from 'evtd'\nimport { kebabCase } from 'lodash-es'\nimport { beforeNextFrameOnce } from 'seemly'\nimport { zindexable } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  inject,\n  normalizeStyle,\n  onBeforeUnmount,\n  ref,\n  toRef,\n  toRefs,\n  Transition,\n  vShow,\n  watch,\n  withDirectives\n} from 'vue'\nimport { LazyTeleport } from 'vueuc'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  DownloadIcon,\n  ResizeSmallIcon,\n  RotateClockwiseIcon,\n  RotateCounterclockwiseIcon,\n  ZoomInIcon,\n  ZoomOutIcon\n} from '../../_internal/icons'\nimport { useConfig, useLocale, useTheme, useThemeClass } from '../../_mixins'\nimport { call, download } from '../../_utils'\nimport { NTooltip } from '../../tooltip'\nimport { imageLight } from '../styles'\nimport { renderCloseIcon, renderNextIcon, renderPrevIcon } from './icons'\nimport { imageContextKey, imagePreviewSharedProps } from './interface'\nimport style from './styles/index.cssr'\n\nconst BLEEDING = 32\n\nexport const imagePreviewProps = {\n  ...imagePreviewSharedProps,\n  src: String,\n  show: {\n    type: Boolean,\n    default: undefined\n  },\n  defaultShow: Boolean,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onNext: Function as PropType<() => void>,\n  onPrev: Function as PropType<() => void>,\n  onClose: [Function, Array] as PropType<MaybeArray<() => void>>\n}\n\nexport type ImagePreviewProps = ExtractPublicPropTypes<typeof imagePreviewProps>\n\nexport default defineComponent({\n  name: 'ImagePreview',\n  props: imagePreviewProps,\n  setup(props) {\n    const { src } = toRefs(props)\n\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Image',\n      '-image',\n      style,\n      imageLight,\n      props,\n      mergedClsPrefixRef\n    )\n    let thumbnailEl: HTMLImageElement | null = null\n    const previewRef = ref<HTMLImageElement | null>(null)\n    const previewWrapperRef = ref<HTMLDivElement | null>(null)\n\n    const displayedRef = ref(false)\n    const { localeRef } = useLocale('Image')\n\n    const uncontrolledShowRef = ref(props.defaultShow)\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n\n    function syncTransformOrigin(): void {\n      const { value: previewWrapper } = previewWrapperRef\n      if (!thumbnailEl || !previewWrapper)\n        return\n      const { style } = previewWrapper\n      const tbox = thumbnailEl.getBoundingClientRect()\n      const tx = tbox.left + tbox.width / 2\n      const ty = tbox.top + tbox.height / 2\n\n      style.transformOrigin = `${tx}px ${ty}px`\n    }\n\n    function handleKeydown(e: KeyboardEvent): void {\n      switch (e.key) {\n        case ' ':\n          e.preventDefault()\n          break\n        case 'ArrowLeft':\n          props.onPrev?.()\n          break\n        case 'ArrowRight':\n          props.onNext?.()\n          break\n        case 'ArrowUp':\n          e.preventDefault()\n          zoomIn()\n          break\n        case 'ArrowDown':\n          e.preventDefault()\n          zoomOut()\n          break\n        case 'Escape':\n          close()\n          break\n      }\n    }\n\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow) {\n        call(onUpdateShow, value)\n      }\n      if (_onUpdateShow) {\n        call(_onUpdateShow, value)\n      }\n      uncontrolledShowRef.value = value\n      displayedRef.value = true\n    }\n\n    watch(mergedShowRef, (value) => {\n      if (value) {\n        on('keydown', document, handleKeydown)\n      }\n      else {\n        off('keydown', document, handleKeydown)\n      }\n    })\n\n    onBeforeUnmount(() => {\n      off('keydown', document, handleKeydown)\n    })\n\n    let startX = 0\n    let startY = 0\n    let offsetX = 0\n    let offsetY = 0\n    let startOffsetX = 0\n    let startOffsetY = 0\n    let mouseDownClientX = 0\n    let mouseDownClientY = 0\n\n    let dragging = false\n\n    function handleMouseMove(e: MouseEvent): void {\n      const { clientX, clientY } = e\n      offsetX = clientX - startX\n      offsetY = clientY - startY\n      beforeNextFrameOnce(derivePreviewStyle)\n    }\n\n    function getMoveStrategy(opts: {\n      mouseUpClientX: number\n      mouseUpClientY: number\n      mouseDownClientX: number\n      mouseDownClientY: number\n    }): MoveStrategy {\n      const {\n        mouseUpClientX,\n        mouseUpClientY,\n        mouseDownClientX,\n        mouseDownClientY\n      } = opts\n      const deltaHorizontal = mouseDownClientX - mouseUpClientX\n      const deltaVertical = mouseDownClientY - mouseUpClientY\n      const moveVerticalDirection: 'verticalTop' | 'verticalBottom'\n        = `vertical${deltaVertical > 0 ? 'Top' : 'Bottom'}`\n      const moveHorizontalDirection: 'horizontalLeft' | 'horizontalRight'\n        = `horizontal${deltaHorizontal > 0 ? 'Left' : 'Right'}`\n\n      return {\n        moveVerticalDirection,\n        moveHorizontalDirection,\n        deltaHorizontal,\n        deltaVertical\n      }\n    }\n\n    // avoid image move outside viewport\n    function getDerivedOffset(moveStrategy?: MoveStrategy): {\n      offsetX: number\n      offsetY: number\n    } {\n      const { value: preview } = previewRef\n      if (!preview)\n        return { offsetX: 0, offsetY: 0 }\n      const pbox = preview.getBoundingClientRect()\n      const {\n        moveVerticalDirection,\n        moveHorizontalDirection,\n        deltaHorizontal,\n        deltaVertical\n      } = moveStrategy || {}\n\n      let nextOffsetX = 0\n      let nextOffsetY = 0\n      if (pbox.width <= window.innerWidth) {\n        nextOffsetX = 0\n      }\n      else if (pbox.left > 0) {\n        nextOffsetX = (pbox.width - window.innerWidth) / 2\n      }\n      else if (pbox.right < window.innerWidth) {\n        nextOffsetX = -(pbox.width - window.innerWidth) / 2\n      }\n      else if (moveHorizontalDirection === 'horizontalRight') {\n        nextOffsetX = Math.min(\n          (pbox.width - window.innerWidth) / 2,\n          startOffsetX - (deltaHorizontal ?? 0)\n        )\n      }\n      else {\n        nextOffsetX = Math.max(\n          -((pbox.width - window.innerWidth) / 2),\n          startOffsetX - (deltaHorizontal ?? 0)\n        )\n      }\n\n      if (pbox.height <= window.innerHeight) {\n        nextOffsetY = 0\n      }\n      else if (pbox.top > 0) {\n        nextOffsetY = (pbox.height - window.innerHeight) / 2\n      }\n      else if (pbox.bottom < window.innerHeight) {\n        nextOffsetY = -(pbox.height - window.innerHeight) / 2\n      }\n      else if (moveVerticalDirection === 'verticalBottom') {\n        nextOffsetY = Math.min(\n          (pbox.height - window.innerHeight) / 2,\n          startOffsetY - (deltaVertical ?? 0)\n        )\n      }\n      else {\n        nextOffsetY = Math.max(\n          -((pbox.height - window.innerHeight) / 2),\n          startOffsetY - (deltaVertical ?? 0)\n        )\n      }\n\n      return {\n        offsetX: nextOffsetX,\n        offsetY: nextOffsetY\n      }\n    }\n    function handleMouseUp(e: MouseEvent): void {\n      off('mousemove', document, handleMouseMove)\n      off('mouseup', document, handleMouseUp)\n      dragging = false\n      if (!props.keepDragOffset) {\n        const { clientX: mouseUpClientX, clientY: mouseUpClientY } = e\n        const moveStrategy = getMoveStrategy({\n          mouseUpClientX,\n          mouseUpClientY,\n          mouseDownClientX,\n          mouseDownClientY\n        })\n        const offset = getDerivedOffset(moveStrategy)\n        offsetX = offset.offsetX\n        offsetY = offset.offsetY\n      }\n      derivePreviewStyle()\n    }\n    const imageContext = inject(imageContextKey, null)\n\n    function handlePreviewMousedown(e: MouseEvent): void {\n      imageContext?.previewedImgPropsRef.value?.onMousedown?.(e)\n      if (e.button !== 0)\n        return\n\n      const { clientX, clientY } = e\n      dragging = true\n      startX = clientX - offsetX\n      startY = clientY - offsetY\n      startOffsetX = offsetX\n      startOffsetY = offsetY\n\n      mouseDownClientX = clientX\n      mouseDownClientY = clientY\n\n      derivePreviewStyle()\n      on('mousemove', document, handleMouseMove)\n      on('mouseup', document, handleMouseUp)\n    }\n\n    const scaleRadix = 1.5\n    let scaleExp = 0\n    let scale = 1\n    let rotate = 0\n    function handlePreviewDblclick(e: MouseEvent): void {\n      imageContext?.previewedImgPropsRef.value?.onDblclick?.(e)\n      const originalImageSizeScale = getOrignalImageSizeScale()\n      scale = scale === originalImageSizeScale ? 1 : originalImageSizeScale\n      derivePreviewStyle()\n    }\n    function resetScale(): void {\n      scale = 1\n      scaleExp = 0\n    }\n    function resetOffset(): void {\n      offsetX = 0\n      offsetY = 0\n    }\n    function handleSwitchPrev(): void {\n      resetScale()\n      resetOffset()\n      rotate = 0\n      props.onPrev?.()\n    }\n    function handleSwitchNext(): void {\n      resetScale()\n      resetOffset()\n      rotate = 0\n      props.onNext?.()\n    }\n    function rotateCounterclockwise(): void {\n      rotate -= 90\n      derivePreviewStyle()\n    }\n    function rotateClockwise(): void {\n      rotate += 90\n      derivePreviewStyle()\n    }\n    function getMaxScale(): number {\n      const { value: preview } = previewRef\n      if (!preview)\n        return 1\n      const { innerWidth, innerHeight } = window\n      const heightMaxScale = Math.max(\n        1,\n        preview.naturalHeight / (innerHeight - BLEEDING)\n      )\n      const widthMaxScale = Math.max(\n        1,\n        preview.naturalWidth / (innerWidth - BLEEDING)\n      )\n      return Math.max(3, heightMaxScale * 2, widthMaxScale * 2)\n    }\n    function getOrignalImageSizeScale(): number {\n      const { value: preview } = previewRef\n      if (!preview)\n        return 1\n      const { innerWidth, innerHeight } = window\n      const heightScale = preview.naturalHeight / (innerHeight - BLEEDING)\n      const widthScale = preview.naturalWidth / (innerWidth - BLEEDING)\n      if (heightScale < 1 && widthScale < 1) {\n        return 1\n      }\n      return Math.max(heightScale, widthScale)\n    }\n\n    function zoomIn(): void {\n      const maxScale = getMaxScale()\n      if (scale < maxScale) {\n        scaleExp += 1\n        scale = Math.min(maxScale, scaleRadix ** scaleExp)\n        derivePreviewStyle()\n      }\n    }\n    function zoomOut(): void {\n      if (scale > 0.5) {\n        const originalScale = scale\n        scaleExp -= 1\n        scale = Math.max(0.5, scaleRadix ** scaleExp)\n        const diff = originalScale - scale\n        derivePreviewStyle(false)\n        const offset = getDerivedOffset()\n        scale += diff\n        derivePreviewStyle(false)\n        scale -= diff\n        offsetX = offset.offsetX\n        offsetY = offset.offsetY\n        derivePreviewStyle()\n      }\n    }\n\n    function handleDownloadClick(): void {\n      const imgSrc = src.value\n      if (imgSrc) {\n        download(imgSrc, undefined)\n      }\n    }\n\n    function derivePreviewStyle(transition: boolean = true): void {\n      const { value: preview } = previewRef\n      if (!preview)\n        return\n      const { style } = preview\n      const controlledStyle = normalizeStyle(\n        imageContext?.previewedImgPropsRef.value?.style\n      )\n      let controlledStyleString = ''\n      if (typeof controlledStyle === 'string') {\n        controlledStyleString = `${controlledStyle};`\n      }\n      else {\n        for (const key in controlledStyle) {\n          controlledStyleString += `${kebabCase(key)}: ${controlledStyle[key]};`\n        }\n      }\n      const transformStyle = `transform-origin: center; transform: translateX(${offsetX}px) translateY(${offsetY}px) rotate(${rotate}deg) scale(${scale});`\n      if (dragging) {\n        style.cssText = `${\n          controlledStyleString\n        }cursor: grabbing; transition: none;${transformStyle}`\n      }\n      else {\n        style.cssText = `${controlledStyleString}cursor: grab;${\n          transformStyle\n        }${transition ? '' : 'transition: none;'}`\n      }\n      if (!transition) {\n        void preview.offsetHeight\n      }\n    }\n\n    function close() {\n      if (mergedShowRef.value) {\n        const { onClose } = props\n        if (onClose)\n          call(onClose)\n        doUpdateShow(false)\n        uncontrolledShowRef.value = false\n      }\n    }\n\n    function resizeToOrignalImageSize(): void {\n      scale = getOrignalImageSizeScale()\n      scaleExp = Math.ceil(Math.log(scale) / Math.log(scaleRadix))\n      offsetX = 0\n      offsetY = 0\n      derivePreviewStyle()\n    }\n    const exposedMethods: ImagePreviewInst = {\n      setThumbnailEl: (el) => {\n        thumbnailEl = el\n      }\n    }\n\n    function withTooltip(\n      node: VNode,\n      tooltipKey: keyof typeof localeRef.value\n    ): VNode {\n      if (props.showToolbarTooltip) {\n        const { value: theme } = themeRef\n        return (\n          <NTooltip\n            to={false}\n            theme={theme.peers.Tooltip}\n            themeOverrides={theme.peerOverrides.Tooltip}\n            keepAliveOnHover={false}\n          >\n            {{\n              default: () => {\n                return localeRef.value[tooltipKey]\n              },\n              trigger: () => node\n            }}\n          </NTooltip>\n        )\n      }\n      else {\n        return node\n      }\n    }\n\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          toolbarIconColor,\n          toolbarBorderRadius,\n          toolbarBoxShadow,\n          toolbarColor\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-toolbar-icon-color': toolbarIconColor,\n        '--n-toolbar-color': toolbarColor,\n        '--n-toolbar-border-radius': toolbarBorderRadius,\n        '--n-toolbar-box-shadow': toolbarBoxShadow\n      }\n    })\n\n    const { inlineThemeDisabled } = useConfig()\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('image-preview', undefined, cssVarsRef, props)\n      : undefined\n\n    function handleWheel(event: WheelEvent) {\n      event.preventDefault()\n    }\n\n    return {\n      clsPrefix: mergedClsPrefixRef,\n      previewRef,\n      previewWrapperRef,\n      previewSrc: src,\n      mergedShow: mergedShowRef,\n      appear: useIsMounted(),\n      displayed: displayedRef,\n      previewedImgProps: imageContext?.previewedImgPropsRef,\n      handleWheel,\n      handlePreviewMousedown,\n      handlePreviewDblclick,\n      syncTransformOrigin,\n      handleAfterLeave: () => {\n        resetScale()\n        resetOffset()\n        rotate = 0\n        displayedRef.value = false\n      },\n      handleDragStart: (e: DragEvent) => {\n        imageContext?.previewedImgPropsRef.value?.onDragstart?.(e)\n        e.preventDefault()\n      },\n      zoomIn,\n      zoomOut,\n      handleDownloadClick,\n      rotateCounterclockwise,\n      rotateClockwise,\n      handleSwitchPrev,\n      handleSwitchNext,\n      withTooltip,\n      resizeToOrignalImageSize,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      doUpdateShow,\n      close,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { clsPrefix, renderToolbar, withTooltip } = this\n\n    const prevNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.handleSwitchPrev}>\n        {{ default: renderPrevIcon }}\n      </NBaseIcon>,\n      'tipPrevious'\n    )\n    const nextNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.handleSwitchNext}>\n        {{ default: renderNextIcon }}\n      </NBaseIcon>,\n      'tipNext'\n    )\n\n    const rotateCounterclockwiseNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.rotateCounterclockwise}>\n        {{\n          default: () => <RotateCounterclockwiseIcon />\n        }}\n      </NBaseIcon>,\n      'tipCounterclockwise'\n    )\n    const rotateClockwiseNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.rotateClockwise}>\n        {{\n          default: () => <RotateClockwiseIcon />\n        }}\n      </NBaseIcon>,\n      'tipClockwise'\n    )\n    const originalSizeNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.resizeToOrignalImageSize}>\n        {{\n          default: () => {\n            return <ResizeSmallIcon />\n          }\n        }}\n      </NBaseIcon>,\n      'tipOriginalSize'\n    )\n    const zoomOutNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.zoomOut}>\n        {{ default: () => <ZoomOutIcon /> }}\n      </NBaseIcon>,\n      'tipZoomOut'\n    )\n\n    const downloadNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.handleDownloadClick}>\n        {{ default: () => <DownloadIcon /> }}\n      </NBaseIcon>,\n      'tipDownload'\n    )\n\n    const closeNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={() => this.close()}>\n        {{ default: renderCloseIcon }}\n      </NBaseIcon>,\n      'tipClose'\n    )\n\n    const zoomInNode = withTooltip(\n      <NBaseIcon clsPrefix={clsPrefix} onClick={this.zoomIn}>\n        {{ default: () => <ZoomInIcon /> }}\n      </NBaseIcon>,\n      'tipZoomIn'\n    )\n\n    return (\n      <>\n        {this.$slots.default?.()}\n        <LazyTeleport show={this.mergedShow}>\n          {{\n            default: () => {\n              if (!(this.mergedShow || this.displayed)) {\n                return null\n              }\n              this.onRender?.()\n              return withDirectives(\n                <div\n                  ref=\"containerRef\"\n                  class={[\n                    `${clsPrefix}-image-preview-container`,\n                    this.themeClass\n                  ]}\n                  style={this.cssVars as CSSProperties}\n                  onWheel={this.handleWheel}\n                >\n                  <Transition name=\"fade-in-transition\" appear={this.appear}>\n                    {{\n                      default: () =>\n                        this.mergedShow ? (\n                          <div\n                            class={`${clsPrefix}-image-preview-overlay`}\n                            onClick={() => this.close()}\n                          />\n                        ) : null\n                    }}\n                  </Transition>\n                  {this.showToolbar ? (\n                    <Transition name=\"fade-in-transition\" appear={this.appear}>\n                      {{\n                        default: () => {\n                          if (!this.mergedShow)\n                            return null\n                          return (\n                            <div class={`${clsPrefix}-image-preview-toolbar`}>\n                              {renderToolbar ? (\n                                renderToolbar({\n                                  nodes: {\n                                    prev: prevNode,\n                                    next: nextNode,\n                                    rotateCounterclockwise:\n                                      rotateCounterclockwiseNode,\n                                    rotateClockwise: rotateClockwiseNode,\n                                    resizeToOriginalSize: originalSizeNode,\n                                    zoomOut: zoomOutNode,\n                                    zoomIn: zoomInNode,\n                                    download: downloadNode,\n                                    close: closeNode\n                                  }\n                                })\n                              ) : (\n                                <>\n                                  {this.onPrev ? (\n                                    <>\n                                      {prevNode}\n                                      {nextNode}\n                                    </>\n                                  ) : null}\n                                  {rotateCounterclockwiseNode}\n                                  {rotateClockwiseNode}\n                                  {originalSizeNode}\n                                  {zoomOutNode}\n                                  {zoomInNode}\n                                  {downloadNode}\n                                  {closeNode}\n                                </>\n                              )}\n                            </div>\n                          )\n                        }\n                      }}\n                    </Transition>\n                  ) : null}\n                  <Transition\n                    name=\"fade-in-scale-up-transition\"\n                    onAfterLeave={this.handleAfterLeave}\n                    appear={this.appear}\n                    // BUG:\n                    // onEnter will be called twice, I don't know why\n                    // Maybe it is a bug of vue\n                    onEnter={this.syncTransformOrigin}\n                    onBeforeLeave={this.syncTransformOrigin}\n                  >\n                    {{\n                      default: () => {\n                        const { previewedImgProps = {} } = this\n                        return withDirectives(\n                          <div\n                            class={`${clsPrefix}-image-preview-wrapper`}\n                            ref=\"previewWrapperRef\"\n                          >\n                            <img\n                              {...previewedImgProps}\n                              draggable={false}\n                              onMousedown={this.handlePreviewMousedown}\n                              onDblclick={this.handlePreviewDblclick}\n                              class={[\n                                `${clsPrefix}-image-preview`,\n                                previewedImgProps.class\n                              ]}\n                              key={this.previewSrc}\n                              src={this.previewSrc}\n                              ref=\"previewRef\"\n                              onDragstart={this.handleDragStart}\n                            />\n                          </div>,\n                          [[vShow, this.mergedShow]]\n                        )\n                      }\n                    }}\n                  </Transition>\n                </div>,\n                [[zindexable, { enabled: this.mergedShow }]]\n              )\n            }\n          }}\n        </LazyTeleport>\n      </>\n    )\n  }\n})\n","import type { PropType, Ref } from 'vue'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ImagePreviewInst, ImageRenderToolbar } from './public-types'\nimport { createId } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, provide, ref, toRef } from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { call, createInjectionKey, throwError } from '../../_utils'\n\nimport NImagePreview from './ImagePreview'\nimport { imagePreviewSharedProps } from './interface'\n\nexport const imageGroupInjectionKey = createInjectionKey<\n  ImagePreviewInst & {\n    groupId: string\n    mergedClsPrefixRef: Ref<string>\n    renderToolbarRef: Ref<ImageRenderToolbar | undefined>\n    registerImageUrl: (id: number, url: string) => () => void\n    toggleShow: (imageId: string) => void\n  }\n>('n-image-group')\n\nexport const imageGroupProps = {\n  ...imagePreviewSharedProps,\n  srcList: Array as PropType<string[]>,\n  current: Number,\n  defaultCurrent: {\n    type: Number,\n    default: 0\n  },\n  show: {\n    type: Boolean,\n    default: undefined\n  },\n  defaultShow: Boolean,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateCurrent: [Function, Array] as PropType<\n    MaybeArray<(current: number) => void>\n  >,\n  'onUpdate:current': [Function, Array] as PropType<\n    MaybeArray<(current: number) => void>\n  >\n}\n\nexport type ImageGroupProps = ExtractPublicPropTypes<typeof imageGroupProps>\n\nexport default defineComponent({\n  name: 'ImageGroup',\n  props: imageGroupProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const groupId = `c${createId()}`\n    const previewInstRef = ref<ImagePreviewInst | null>(null)\n\n    const uncontrolledShowRef = ref(props.defaultShow)\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n\n    const registeredImageUrlMap = ref(new Map<string, string>())\n\n    const mergedImageUrlMap = computed(() => {\n      if (props.srcList) {\n        const map: Map<string, string> = new Map()\n        props.srcList.forEach((url, index) => {\n          map.set(`p${index}`, url)\n        })\n        return map\n      }\n      return registeredImageUrlMap.value\n    })\n\n    const imageIdListRef = computed(() =>\n      Array.from(mergedImageUrlMap.value.keys())\n    )\n\n    const imageCountGetter = () => imageIdListRef.value.length\n\n    function registerImageUrl(id: number, url: string) {\n      if (props.srcList) {\n        throwError(\n          'image-group',\n          '`n-image` can\\'t be placed inside `n-image-group` when image group\\'s `src-list` prop is set.'\n        )\n      }\n\n      const sid = `r${id}`\n      if (!registeredImageUrlMap.value.has(`r${sid}`)) {\n        registeredImageUrlMap.value.set(sid, url)\n      }\n\n      return function unregisterPreviewUrl() {\n        if (!registeredImageUrlMap.value.has(sid)) {\n          registeredImageUrlMap.value.delete(sid)\n        }\n      }\n    }\n\n    const uncontrolledCurrentRef = ref(props.defaultCurrent)\n    const controlledCurrentRef = toRef(props, 'current')\n    const mergedCurrentRef = useMergedState(\n      controlledCurrentRef,\n      uncontrolledCurrentRef\n    )\n\n    const setCurrentIndex = (index: number) => {\n      if (index !== mergedCurrentRef.value) {\n        const { onUpdateCurrent, 'onUpdate:current': _onUpdateCurrent } = props\n        if (onUpdateCurrent) {\n          call(onUpdateCurrent, index)\n        }\n        if (_onUpdateCurrent) {\n          call(_onUpdateCurrent, index)\n        }\n        uncontrolledCurrentRef.value = index\n      }\n    }\n\n    const currentId = computed(\n      () => imageIdListRef.value[mergedCurrentRef.value]\n    )\n    const setCurrentId = (nextId: string) => {\n      const nextIndex = imageIdListRef.value.indexOf(nextId)\n      if (nextIndex !== mergedCurrentRef.value) {\n        setCurrentIndex(nextIndex)\n      }\n    }\n\n    const currentUrl = computed(() =>\n      mergedImageUrlMap.value.get(currentId.value)\n    )\n\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow) {\n        call(onUpdateShow, value)\n      }\n      if (_onUpdateShow) {\n        call(_onUpdateShow, value)\n      }\n      uncontrolledShowRef.value = value\n    }\n\n    function onClose() {\n      doUpdateShow(false)\n    }\n\n    const nextIndex = computed(() => {\n      const findNext = (start: number, end: number) => {\n        for (let i = start; i <= end; i++) {\n          const id = imageIdListRef.value[i]\n          if (mergedImageUrlMap.value.get(id)) {\n            return i\n          }\n        }\n        return undefined\n      }\n\n      const next = findNext(mergedCurrentRef.value + 1, imageCountGetter() - 1)\n      return next === undefined ? findNext(0, mergedCurrentRef.value - 1) : next\n    })\n\n    const prevIndex = computed(() => {\n      const findPrev = (start: number, end: number) => {\n        for (let i = start; i >= end; i--) {\n          const id = imageIdListRef.value[i]\n          if (mergedImageUrlMap.value.get(id)) {\n            return i\n          }\n        }\n        return undefined\n      }\n\n      const prev = findPrev(mergedCurrentRef.value - 1, 0)\n      return prev === undefined\n        ? findPrev(imageCountGetter() - 1, mergedCurrentRef.value + 1)\n        : prev\n    })\n\n    function go(step: 1 | -1): void {\n      if (step === 1) {\n        prevIndex.value !== undefined && setCurrentIndex(nextIndex.value!)\n        props.onPreviewNext?.()\n      }\n      else {\n        nextIndex.value !== undefined && setCurrentIndex(prevIndex.value!)\n        props.onPreviewPrev?.()\n      }\n    }\n    provide(imageGroupInjectionKey, {\n      mergedClsPrefixRef,\n      registerImageUrl,\n      setThumbnailEl: (el) => {\n        previewInstRef.value?.setThumbnailEl(el)\n      },\n      toggleShow: (imageId: string) => {\n        doUpdateShow(true)\n        setCurrentId(imageId)\n      },\n      groupId,\n      renderToolbarRef: toRef(props, 'renderToolbar')\n    })\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      // reduce dts: string ref only, type unused in render\n      previewInstRef: previewInstRef as unknown,\n      mergedShow: mergedShowRef,\n      src: currentUrl,\n      onClose,\n      next: () => {\n        go(1)\n      },\n      prev: () => {\n        go(-1)\n      }\n    }\n  },\n  render() {\n    return (\n      <NImagePreview\n        theme={this.theme}\n        themeOverrides={this.themeOverrides}\n        ref=\"previewInstRef\"\n        onPrev={this.prev}\n        onNext={this.next}\n        src={this.src}\n        show={this.mergedShow}\n        showToolbar={this.showToolbar}\n        showToolbarTooltip={this.showToolbarTooltip}\n        renderToolbar={this.renderToolbar}\n        keepDragOffset={this.keepDragOffset}\n        onClose={this.onClose}\n      >\n        {this.$slots}\n      </NImagePreview>\n    )\n  }\n})\n","import type { ImgHTMLAttributes, PropType, SlotsType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ImageInst, ImagePreviewInst, ImageSlots } from './public-types'\nimport type { IntersectionObserverOptions } from './utils'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { useConfig } from '../../_mixins'\nimport { resolveSlot } from '../../_utils'\nimport { isImageSupportNativeLazy } from '../../_utils/env/is-native-lazy-load'\nimport { imageGroupInjectionKey } from './ImageGroup'\nimport NImagePreview from './ImagePreview'\nimport { imageContextKey, imagePreviewSharedProps } from './interface'\nimport { observeIntersection } from './utils'\n\nexport const imageProps = {\n  alt: String,\n  height: [String, Number] as PropType<string | number>,\n  imgProps: Object as PropType<ImgHTMLAttributes>,\n  previewedImgProps: Object as PropType<ImgHTMLAttributes>,\n  lazy: Boolean,\n  intersectionObserverOptions: Object as PropType<IntersectionObserverOptions>,\n  objectFit: {\n    type: String as PropType<\n      'fill' | 'contain' | 'cover' | 'none' | 'scale-down'\n    >,\n    default: 'fill'\n  },\n  previewSrc: String,\n  fallbackSrc: String,\n  width: [String, Number] as PropType<string | number>,\n  src: String,\n  previewDisabled: Boolean,\n  loadDescription: String,\n  onError: Function as PropType<(e: Event) => void>,\n  onLoad: Function as PropType<(e: Event) => void>,\n  ...imagePreviewSharedProps\n}\n\nexport type ImageProps = ExtractPublicPropTypes<typeof imageProps>\n\nlet uuid = 0\n\nexport default defineComponent({\n  name: 'Image',\n  props: imageProps,\n  slots: Object as SlotsType<ImageSlots>,\n  inheritAttrs: false,\n  setup(props) {\n    const imageRef = ref<HTMLImageElement | null>(null)\n    const showErrorRef = ref(false)\n    const previewInstRef = ref<ImagePreviewInst | null>(null)\n    const imageGroupHandle = inject(imageGroupInjectionKey, null)\n    const { mergedClsPrefixRef } = imageGroupHandle || useConfig(props)\n\n    const mergedPreviewSrcRef = computed(() => {\n      return props.previewSrc || props.src\n    })\n\n    const previewShowRef = ref(false)\n\n    const imageId = uuid++\n\n    const showPreview = () => {\n      if (props.previewDisabled || showErrorRef.value)\n        return\n      if (imageGroupHandle) {\n        imageGroupHandle.setThumbnailEl(imageRef.value)\n        imageGroupHandle.toggleShow(`r${imageId}`)\n        return\n      }\n      const { value: previewInst } = previewInstRef\n      if (!previewInst)\n        return\n      previewInst.setThumbnailEl(imageRef.value)\n      previewShowRef.value = true\n    }\n\n    const exposedMethods: ImageInst = {\n      click: () => {\n        showPreview()\n      },\n      showPreview\n    }\n\n    const shouldStartLoadingRef = ref(!props.lazy)\n\n    onMounted(() => {\n      imageRef.value?.setAttribute(\n        'data-group-id',\n        imageGroupHandle?.groupId || ''\n      )\n    })\n\n    onMounted(() => {\n      // Use IntersectionObserver if lazy and intersectionObserverOptions is set\n      if (props.lazy && props.intersectionObserverOptions) {\n        let unobserve: (() => void) | undefined\n        const stopWatchHandle = watchEffect(() => {\n          unobserve?.()\n          unobserve = undefined\n          unobserve = observeIntersection(\n            imageRef.value,\n            props.intersectionObserverOptions,\n            shouldStartLoadingRef\n          )\n        })\n        onBeforeUnmount(() => {\n          stopWatchHandle()\n          unobserve?.()\n        })\n      }\n    })\n\n    watchEffect(() => {\n      void (props.src || props.imgProps?.src)\n      showErrorRef.value = false\n    })\n\n    watchEffect((onInvalidate) => {\n      const unregister = imageGroupHandle?.registerImageUrl?.(\n        imageId,\n        mergedPreviewSrcRef.value || ''\n      )\n      onInvalidate(() => {\n        unregister?.()\n      })\n    })\n\n    function onImgClick(e: PointerEvent) {\n      exposedMethods.showPreview()\n      props.imgProps?.onClick?.(e)\n    }\n\n    function onPreviewClose() {\n      previewShowRef.value = false\n    }\n\n    const loadedRef = ref(false)\n\n    provide(imageContextKey, {\n      previewedImgPropsRef: toRef(props, 'previewedImgProps')\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      groupId: imageGroupHandle?.groupId,\n      // reduce dts: string ref only, type unused in render\n      previewInstRef: previewInstRef as unknown,\n      imageRef,\n      mergedPreviewSrc: mergedPreviewSrcRef,\n      showError: showErrorRef,\n      shouldStartLoading: shouldStartLoadingRef,\n      loaded: loadedRef,\n      mergedOnClick: (e: PointerEvent) => {\n        onImgClick(e)\n      },\n      onPreviewClose,\n      mergedOnError: (e: Event) => {\n        if (props.intersectionObserverOptions && !shouldStartLoadingRef.value)\n          return\n        showErrorRef.value = true\n        loadedRef.value = true\n        const { onError, imgProps: { onError: imgPropsOnError } = {} } = props\n        onError?.(e)\n        imgPropsOnError?.(e)\n      },\n      mergedOnLoad: (e: Event) => {\n        const { onLoad, imgProps: { onLoad: imgPropsOnLoad } = {} } = props\n        onLoad?.(e)\n        imgPropsOnLoad?.(e)\n        loadedRef.value = true\n      },\n      previewShow: previewShowRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { mergedClsPrefix, imgProps = {}, loaded, $attrs, lazy } = this\n    const errorNode = resolveSlot(this.$slots.error, () => [])\n    const placeholderNode = this.$slots.placeholder?.()\n    const loadSrc = this.src || imgProps.src\n\n    const imgNode\n      = this.showError && errorNode.length\n        ? errorNode\n        : h('img', {\n            ...imgProps,\n            ref: 'imageRef',\n            width: this.width || imgProps.width,\n            height: this.height || imgProps.height,\n            src: this.showError\n              ? this.fallbackSrc\n              : lazy && this.intersectionObserverOptions\n                ? this.shouldStartLoading\n                  ? loadSrc\n                  : undefined\n                : loadSrc,\n            alt: this.alt || imgProps.alt,\n            'aria-label': this.alt || imgProps.alt,\n            onClick: this.mergedOnClick,\n            onError: this.mergedOnError,\n            onLoad: this.mergedOnLoad,\n            // If interseciton observer options is set, do not use native lazy\n            loading:\n              isImageSupportNativeLazy\n              && lazy\n              && !this.intersectionObserverOptions\n                ? 'lazy'\n                : 'eager',\n            style: [\n              imgProps.style || '',\n              placeholderNode && !loaded\n                ? { height: '0', width: '0', visibility: 'hidden' }\n                : '',\n              { objectFit: this.objectFit }\n            ],\n            'data-error': this.showError,\n            'data-preview-src': this.previewSrc || this.src\n          })\n    return (\n      <div\n        {...$attrs}\n        role=\"none\"\n        class={[\n          $attrs.class,\n          `${mergedClsPrefix}-image`,\n          (this.previewDisabled || this.showError)\n          && `${mergedClsPrefix}-image--preview-disabled`\n        ]}\n      >\n        {this.groupId ? (\n          imgNode\n        ) : (\n          <NImagePreview\n            theme={this.theme}\n            themeOverrides={this.themeOverrides}\n            ref=\"previewInstRef\"\n            showToolbar={this.showToolbar}\n            showToolbarTooltip={this.showToolbarTooltip}\n            renderToolbar={this.renderToolbar}\n            keepDragOffset={this.keepDragOffset}\n            src={this.mergedPreviewSrc}\n            show={!this.previewDisabled && this.previewShow}\n            onClose={this.onPreviewClose}\n          >\n            {{\n              default: () => imgNode\n            }}\n          </NImagePreview>\n        )}\n        {!loaded && placeholderNode}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ScrollbarProps } from '../../scrollbar/src/Scrollbar'\nimport { defineComponent, h, ref } from 'vue'\nimport { NxScrollbar } from '../../_internal'\nimport { resolveSlot } from '../../_utils'\n\nexport const infiniteScrollProps = {\n  distance: {\n    type: Number,\n    default: 0\n  },\n  onLoad: Function as PropType<() => Promise<void> | void>,\n  scrollbarProps: Object as PropType<ScrollbarProps>\n} as const\n\nexport type InfiniteScrollProps = ExtractPublicPropTypes<\n  typeof infiniteScrollProps\n>\n\nexport default defineComponent({\n  name: 'InfiniteScroll',\n  props: infiniteScrollProps,\n  setup(props) {\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n\n    let loading = false\n\n    const handleCheckBottom = async (): Promise<void> => {\n      const { value: scrollbarInst } = scrollbarInstRef\n      if (scrollbarInst) {\n        const { containerRef } = scrollbarInst\n        const scrollHeight = containerRef?.scrollHeight\n        const clientHeight = containerRef?.clientHeight\n        const scrollTop = containerRef?.scrollTop\n\n        if (\n          containerRef\n          && scrollHeight !== undefined\n          && clientHeight !== undefined\n          && scrollTop !== undefined\n        ) {\n          if (scrollTop + clientHeight >= scrollHeight - props.distance) {\n            loading = true\n            try {\n              await props.onLoad?.()\n            }\n            catch {}\n            loading = false\n          }\n        }\n      }\n    }\n\n    const handleScroll = (): void => {\n      if (loading)\n        return\n      void handleCheckBottom()\n    }\n\n    const handleWheel = (e: WheelEvent): void => {\n      if (e.deltaY <= 0)\n        return\n      if (loading)\n        return\n      void handleCheckBottom()\n    }\n\n    return {\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      handleScroll,\n      handleWheel\n    }\n  },\n  render() {\n    return (\n      <NxScrollbar\n        {...this.scrollbarProps}\n        ref=\"scrollbarInstRef\"\n        onWheel={this.handleWheel}\n        onScroll={this.handleScroll}\n      >\n        {{\n          default: () => {\n            return resolveSlot(this.$slots.default, () => [])\n          }\n        }}\n      </NxScrollbar>\n    )\n  }\n})\n","import { c, cB } from '../../../_utils/cssr'\n\nexport default c([\n  cB('input-number-suffix', `\n    display: inline-block;\n    margin-right: 10px;\n  `),\n  cB('input-number-prefix', `\n    display: inline-block;\n    margin-left: 10px;\n  `)\n])\n","// string => string (expected, not implemented)\n// string => number (legacy)\nexport function parse(value: string): number | null {\n  if (\n    value === undefined\n    || value === null\n    || (typeof value === 'string' && value.trim() === '')\n  ) {\n    return null\n  }\n  return Number(value)\n}\n\n// This function is created for `update-value-on-input` prop. When the prop is\n// true, the input value will update the value and <input />'s value at the same\n// time. So we need to make user's content won't be replaced by its parsed value\n// in some certain cases. For example '0.' should be parsed and replaced by '0',\n// '-0' should be parsed and replaced by '0', since user may input '-0.1' after.\nexport function isWipValue(value: string): boolean {\n  return (\n    (value.includes('.')\n      && (/^(-)?\\d+.*(\\.|0)$/.test(value) || /^-?\\d*$/.test(value)))\n    || value === '-'\n    || value === '-0'\n  )\n}\n\n// string => boolean (expected, not implemented)\n// number => boolean (legacy)\nexport function validator(value: number | null): boolean {\n  if (value === undefined || value === null)\n    return true\n  if (Number.isNaN(value))\n    return false\n  return true\n}\n\n// string => string (expected, not implemented)\n// number => string (legacy)\nexport function format(\n  value: number | undefined | null,\n  precision: number | undefined\n): string {\n  if (typeof value !== 'number')\n    return ''\n  return precision === undefined ? String(value) : value.toFixed(precision)\n}\n\nexport function parseNumber(\n  number: number | null | undefined | string\n): number | null {\n  if (number === null)\n    return null\n  if (typeof number === 'number') {\n    return number\n  }\n  else {\n    const parsedNumber = Number(number)\n    if (Number.isNaN(parsedNumber)) {\n      return null\n    }\n    else {\n      return parsedNumber\n    }\n  }\n}\n","import type { InputHTMLAttributes, PropType, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputInst } from '../../input'\nimport type { InputNumberTheme, InputNumberThemeOverrides } from '../styles'\nimport type { InputNumberInst, OnUpdateValue, Size } from './interface'\nimport { on } from 'evtd'\nimport { rgba } from 'seemly'\nimport { useMemo, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  ref,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { AddIcon, RemoveIcon } from '../../_internal/icons'\nimport { useConfig, useFormItem, useLocale, useTheme } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { call, resolveSlot, resolveWrappedSlot, warnOnce } from '../../_utils'\nimport { NxButton } from '../../button'\nimport { NInput } from '../../input'\nimport { inputNumberLight } from '../styles'\nimport style from './styles/input-number.cssr'\nimport { format, isWipValue, parse, parseNumber, validator } from './utils'\n\nconst HOLDING_CHANGE_THRESHOLD = 800\nconst HOLDING_CHANGE_INTERVAL = 100\n\nexport const inputNumberProps = {\n  ...(useTheme.props as ThemeProps<\n    InputNumberTheme,\n    InputNumberThemeOverrides\n  >),\n  autofocus: Boolean,\n  loading: {\n    type: Boolean,\n    default: undefined\n  },\n  placeholder: String,\n  defaultValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  value: Number as PropType<number | null>,\n  step: {\n    type: [Number, String],\n    default: 1\n  },\n  min: [Number, String],\n  max: [Number, String],\n  size: String as PropType<Size>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  validator: Function as PropType<(value: number) => boolean>,\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  showButton: {\n    type: Boolean,\n    default: true\n  },\n  buttonPlacement: {\n    type: String as PropType<'right' | 'both'>,\n    default: 'right'\n  },\n  inputProps: Object as PropType<InputHTMLAttributes>,\n  readonly: Boolean,\n  clearable: Boolean,\n  keyboard: {\n    type: Object as PropType<{\n      ArrowUp?: boolean\n      ArrowDown?: boolean\n    }>,\n    default: {}\n  },\n  updateValueOnInput: {\n    type: Boolean,\n    default: true\n  },\n  round: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  parse: Function as PropType<(input: string) => number | null>,\n  format: Function as PropType<(value: number | null) => string>,\n  precision: Number,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onFocus: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onBlur: [Function, Array] as PropType<MaybeArray<(e: FocusEvent) => void>>,\n  onClear: [Function, Array] as PropType<MaybeArray<(e: MouseEvent) => void>>,\n  // deprecated\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n}\n\nexport type InputNumberProps = ExtractPublicPropTypes<typeof inputNumberProps>\n\nexport interface InputNumberSlots {\n  'add-icon'?: () => VNode[]\n  'minus-icon'?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'InputNumber',\n  props: inputNumberProps,\n  slots: Object as SlotsType<InputNumberSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'input-number',\n            '`on-change` is deprecated, please use `on-update:value` instead'\n          )\n        }\n      })\n    }\n    const {\n      mergedBorderedRef,\n      mergedClsPrefixRef,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'InputNumber',\n      '-input-number',\n      style,\n      inputNumberLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const { localeRef } = useLocale('InputNumber')\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as Size\n        const configSize = mergedComponentPropsRef?.value?.InputNumber?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n    // dom ref\n    const inputInstRef = ref<InputInst | null>(null)\n    const minusButtonInstRef = ref<{ $el: HTMLElement } | null>(null)\n    const addButtonInstRef = ref<{ $el: HTMLElement } | null>(null)\n    // value\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const displayedValueRef = ref('')\n    const getPrecision = (value: string | number): number => {\n      const fraction = String(value).split('.')[1]\n      return fraction ? fraction.length : 0\n    }\n    const getMaxPrecision = (currentValue: number): number => {\n      const precisions = [props.min, props.max, props.step, currentValue].map(\n        (value): number => {\n          if (value === undefined)\n            return 0\n          return getPrecision(value)\n        }\n      )\n      return Math.max(...precisions)\n    }\n    const mergedPlaceholderRef = useMemo(() => {\n      const { placeholder } = props\n      if (placeholder !== undefined)\n        return placeholder\n      return localeRef.value.placeholder\n    })\n    const mergedStepRef = useMemo(() => {\n      const parsedNumber = parseNumber(props.step)\n      if (parsedNumber !== null) {\n        return parsedNumber === 0 ? 1 : Math.abs(parsedNumber)\n      }\n      return 1\n    })\n    const mergedMinRef = useMemo(() => {\n      const parsedNumber = parseNumber(props.min)\n      if (parsedNumber !== null)\n        return parsedNumber\n      else return null\n    })\n    const mergedMaxRef = useMemo(() => {\n      const parsedNumber = parseNumber(props.max)\n      if (parsedNumber !== null)\n        return parsedNumber\n      else return null\n    })\n    const deriveDisplayedValueFromValue = (): void => {\n      const { value: mergedValue } = mergedValueRef\n      if (validator(mergedValue)) {\n        const { format: formatProp, precision } = props\n        if (formatProp) {\n          displayedValueRef.value = formatProp(mergedValue)\n        }\n        else {\n          if (\n            mergedValue === null\n            || precision === undefined\n            // precision overflow\n            || getPrecision(mergedValue) > precision\n          ) {\n            displayedValueRef.value = format(mergedValue, undefined)\n          }\n          else {\n            displayedValueRef.value = format(mergedValue, precision)\n          }\n        }\n      }\n      else {\n        // null can pass the validator check\n        // so mergedValue is a number\n        displayedValueRef.value = String(mergedValue)\n      }\n    }\n    deriveDisplayedValueFromValue()\n    const doUpdateValue = (value: number | null): void => {\n      const { value: mergedValue } = mergedValueRef\n      if (value === mergedValue) {\n        deriveDisplayedValueFromValue()\n        return\n      }\n      const {\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onChange)\n        call(onChange, value)\n      if (onUpdateValue)\n        call(onUpdateValue, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    const deriveValueFromDisplayedValue = ({\n      offset,\n      doUpdateIfValid,\n      fixPrecision,\n      isInputing\n    }: {\n      offset: number\n      doUpdateIfValid: boolean\n      fixPrecision: boolean\n      isInputing: boolean\n    }): null | number | false => {\n      const { value: displayedValue } = displayedValueRef\n      if (isInputing && isWipValue(displayedValue)) {\n        return false\n      }\n      const parsedValue = (props.parse || parse)(displayedValue)\n      if (parsedValue === null) {\n        if (doUpdateIfValid)\n          doUpdateValue(null)\n        return null\n      }\n      if (validator(parsedValue)) {\n        const currentPrecision = getPrecision(parsedValue)\n        const { precision } = props\n        if (\n          precision !== undefined\n          && precision < currentPrecision\n          && !fixPrecision\n        ) {\n          return false\n        }\n        let nextValue = Number.parseFloat(\n          (parsedValue + offset).toFixed(\n            precision ?? getMaxPrecision(parsedValue)\n          )\n        )\n        if (validator(nextValue)) {\n          const { value: mergedMax } = mergedMaxRef\n          const { value: mergedMin } = mergedMinRef\n          if (mergedMax !== null && nextValue > mergedMax) {\n            if (!doUpdateIfValid || isInputing)\n              return false\n            // if doUpdateIfValid=true, we try to make it a valid value\n            nextValue = mergedMax\n          }\n          if (mergedMin !== null && nextValue < mergedMin) {\n            if (!doUpdateIfValid || isInputing)\n              return false\n            // if doUpdateIfValid=true, we try to make it a valid value\n            nextValue = mergedMin\n          }\n          if (props.validator && !props.validator(nextValue))\n            return false\n          if (doUpdateIfValid)\n            doUpdateValue(nextValue)\n          return nextValue\n        }\n      }\n      return false\n    }\n    const displayedValueInvalidRef = useMemo(() => {\n      const derivedValue = deriveValueFromDisplayedValue({\n        offset: 0,\n        doUpdateIfValid: false,\n        isInputing: false,\n        fixPrecision: false\n      })\n      return derivedValue === false\n    })\n    const minusableRef = useMemo(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (props.validator && mergedValue === null) {\n        return false\n      }\n      const { value: mergedStep } = mergedStepRef\n      const derivedNextValue = deriveValueFromDisplayedValue({\n        offset: -mergedStep,\n        doUpdateIfValid: false,\n        isInputing: false,\n        fixPrecision: false\n      })\n      return derivedNextValue !== false\n    })\n    const addableRef = useMemo(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (props.validator && mergedValue === null) {\n        return false\n      }\n      const { value: mergedStep } = mergedStepRef\n      const derivedNextValue = deriveValueFromDisplayedValue({\n        offset: +mergedStep,\n        doUpdateIfValid: false,\n        isInputing: false,\n        fixPrecision: false\n      })\n      return derivedNextValue !== false\n    })\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      const { nTriggerFormFocus } = formItem\n      if (onFocus)\n        call(onFocus, e)\n      nTriggerFormFocus()\n    }\n    function doBlur(e: FocusEvent): void {\n      if (e.target === inputInstRef.value?.wrapperElRef) {\n        // hit input wrapper\n        // which means not activated\n        return\n      }\n      const value = deriveValueFromDisplayedValue({\n        offset: 0,\n        doUpdateIfValid: true,\n        isInputing: false,\n        fixPrecision: true\n      })\n      // If valid, update event has been emitted\n      // make sure e.target.value is correct in blur callback\n      if (value !== false) {\n        const inputElRef = inputInstRef.value?.inputElRef\n        if (inputElRef) {\n          inputElRef.value = String(value || '')\n        }\n        // If value is not changed, the displayed value may be greater than or\n        // less than the current value. The derived value is reformatted so the\n        // value is not changed. We can simply derive a new displayed value\n        if (mergedValueRef.value === value) {\n          deriveDisplayedValueFromValue()\n        }\n      }\n      else {\n        // If not valid, nothing will be emitted, so derive displayed value from\n        // origin value\n        deriveDisplayedValueFromValue()\n      }\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e)\n      nTriggerFormBlur()\n      // User may change value in blur callback, we make sure it will be\n      // displayed. Sometimes mergedValue won't be viewed as changed\n      void nextTick(() => {\n        deriveDisplayedValueFromValue()\n      })\n    }\n    function doClear(e: MouseEvent): void {\n      const { onClear } = props\n      if (onClear)\n        call(onClear, e)\n    }\n    function doAdd(): void {\n      const { value: addable } = addableRef\n      if (!addable) {\n        clearAddHoldTimeout()\n        return\n      }\n      const { value: mergedValue } = mergedValueRef\n      if (mergedValue === null) {\n        if (!props.validator) {\n          doUpdateValue(createValidValue())\n        }\n      }\n      else {\n        const { value: mergedStep } = mergedStepRef\n        deriveValueFromDisplayedValue({\n          offset: mergedStep,\n          doUpdateIfValid: true,\n          isInputing: false,\n          fixPrecision: true\n        })\n      }\n    }\n    function doMinus(): void {\n      const { value: minusable } = minusableRef\n      if (!minusable) {\n        clearMinusHoldTimeout()\n        return\n      }\n      const { value: mergedValue } = mergedValueRef\n      if (mergedValue === null) {\n        if (!props.validator) {\n          doUpdateValue(createValidValue())\n        }\n      }\n      else {\n        const { value: mergedStep } = mergedStepRef\n        deriveValueFromDisplayedValue({\n          offset: -mergedStep,\n          doUpdateIfValid: true,\n          isInputing: false,\n          fixPrecision: true\n        })\n      }\n    }\n    const handleFocus = doFocus\n    const handleBlur = doBlur\n    function createValidValue(): number | null {\n      if (props.validator)\n        return null\n      const { value: mergedMin } = mergedMinRef\n      const { value: mergedMax } = mergedMaxRef\n      if (mergedMin !== null) {\n        return Math.max(0, mergedMin)\n      }\n      else if (mergedMax !== null) {\n        return Math.min(0, mergedMax)\n      }\n      else {\n        return 0\n      }\n    }\n    function handleClear(e: MouseEvent): void {\n      doClear(e)\n      doUpdateValue(null)\n    }\n    function handleMouseDown(e: MouseEvent): void {\n      if (addButtonInstRef.value?.$el.contains(e.target as Node)) {\n        e.preventDefault()\n      }\n      if (minusButtonInstRef.value?.$el.contains(e.target as Node)) {\n        e.preventDefault()\n      }\n      inputInstRef.value?.activate()\n    }\n    let minusHoldStateIntervalId: number | null = null\n    let addHoldStateIntervalId: number | null = null\n    let firstMinusMousedownId: number | null = null\n    function clearMinusHoldTimeout(): void {\n      if (firstMinusMousedownId) {\n        window.clearTimeout(firstMinusMousedownId)\n        firstMinusMousedownId = null\n      }\n      if (minusHoldStateIntervalId) {\n        window.clearInterval(minusHoldStateIntervalId)\n        minusHoldStateIntervalId = null\n      }\n    }\n    let firstAddMousedownId: number | null = null\n    function clearAddHoldTimeout(): void {\n      if (firstAddMousedownId) {\n        window.clearTimeout(firstAddMousedownId)\n        firstAddMousedownId = null\n      }\n      if (addHoldStateIntervalId) {\n        window.clearInterval(addHoldStateIntervalId)\n        addHoldStateIntervalId = null\n      }\n    }\n    function handleMinusMousedown(): void {\n      clearMinusHoldTimeout()\n      firstMinusMousedownId = window.setTimeout(() => {\n        minusHoldStateIntervalId = window.setInterval(() => {\n          doMinus()\n        }, HOLDING_CHANGE_INTERVAL)\n      }, HOLDING_CHANGE_THRESHOLD)\n      on('mouseup', document, clearMinusHoldTimeout, {\n        once: true\n      })\n    }\n    function handleAddMousedown(): void {\n      clearAddHoldTimeout()\n      firstAddMousedownId = window.setTimeout(() => {\n        addHoldStateIntervalId = window.setInterval(() => {\n          doAdd()\n        }, HOLDING_CHANGE_INTERVAL)\n      }, HOLDING_CHANGE_THRESHOLD)\n      on('mouseup', document, clearAddHoldTimeout, {\n        once: true\n      })\n    }\n    const handleAddClick = (): void => {\n      if (addHoldStateIntervalId)\n        return\n      doAdd()\n    }\n    const handleMinusClick = (): void => {\n      if (minusHoldStateIntervalId)\n        return\n      doMinus()\n    }\n    function handleKeyDown(e: KeyboardEvent): void {\n      if (e.key === 'Enter') {\n        if (e.target === inputInstRef.value?.wrapperElRef) {\n          // hit input wrapper\n          // which means not activated\n          return\n        }\n        const value = deriveValueFromDisplayedValue({\n          offset: 0,\n          doUpdateIfValid: true,\n          isInputing: false,\n          fixPrecision: true\n        })\n        if (value !== false) {\n          inputInstRef.value?.deactivate()\n        }\n      }\n      else if (e.key === 'ArrowUp') {\n        if (!addableRef.value)\n          return\n        if (props.keyboard.ArrowUp === false)\n          return\n        e.preventDefault()\n        const value = deriveValueFromDisplayedValue({\n          offset: 0,\n          doUpdateIfValid: true,\n          isInputing: false,\n          fixPrecision: true\n        })\n        if (value !== false) {\n          doAdd()\n        }\n      }\n      else if (e.key === 'ArrowDown') {\n        if (!minusableRef.value)\n          return\n        if (props.keyboard.ArrowDown === false)\n          return\n        e.preventDefault()\n        const value = deriveValueFromDisplayedValue({\n          offset: 0,\n          doUpdateIfValid: true,\n          isInputing: false,\n          fixPrecision: true\n        })\n        if (value !== false) {\n          doMinus()\n        }\n      }\n    }\n    function handleUpdateDisplayedValue(value: string): void {\n      displayedValueRef.value = value\n      if (\n        props.updateValueOnInput\n        && !props.format\n        && !props.parse\n        && props.precision === undefined\n      ) {\n        deriveValueFromDisplayedValue({\n          offset: 0,\n          doUpdateIfValid: true,\n          isInputing: true,\n          fixPrecision: false\n        })\n      }\n    }\n    watch(mergedValueRef, () => {\n      deriveDisplayedValueFromValue()\n    })\n    const exposedMethods: InputNumberInst = {\n      focus: () => inputInstRef.value?.focus(),\n      blur: () => inputInstRef.value?.blur(),\n      select: () => inputInstRef.value?.select()\n    }\n    const rtlEnabledRef = useRtl(\n      'InputNumber',\n      mergedRtlRef,\n      mergedClsPrefixRef\n    )\n    return {\n      ...exposedMethods,\n      rtlEnabled: rtlEnabledRef,\n      // reduce dts: string ref only, type unused in render\n      inputInstRef: inputInstRef as unknown,\n      minusButtonInstRef: minusButtonInstRef as unknown,\n      addButtonInstRef: addButtonInstRef as unknown,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      mergedPlaceholder: mergedPlaceholderRef,\n      displayedValueInvalid: displayedValueInvalidRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      displayedValue: displayedValueRef,\n      addable: addableRef,\n      minusable: minusableRef,\n      mergedStatus: mergedStatusRef,\n      handleFocus,\n      handleBlur,\n      handleClear,\n      handleMouseDown,\n      handleAddClick,\n      handleMinusClick,\n      handleAddMousedown,\n      handleMinusMousedown,\n      handleKeyDown,\n      handleUpdateDisplayedValue,\n      // theme\n      mergedTheme: themeRef,\n      inputThemeOverrides: {\n        paddingSmall: '0 8px 0 10px',\n        paddingMedium: '0 8px 0 12px',\n        paddingLarge: '0 8px 0 14px'\n      },\n      buttonThemeOverrides: computed(() => {\n        const {\n          self: { iconColorDisabled }\n        } = themeRef.value\n        const [r, g, b, a] = rgba(iconColorDisabled)\n        return {\n          textColorTextDisabled: `rgb(${r}, ${g}, ${b})`,\n          opacityDisabled: `${a}`\n        }\n      })\n    }\n  },\n  render() {\n    const { mergedClsPrefix, $slots } = this\n    const renderMinusButton = (): VNode => {\n      return (\n        <NxButton\n          text\n          disabled={!this.minusable || this.mergedDisabled || this.readonly}\n          focusable={false}\n          theme={this.mergedTheme.peers.Button}\n          themeOverrides={this.mergedTheme.peerOverrides.Button}\n          builtinThemeOverrides={this.buttonThemeOverrides}\n          onClick={this.handleMinusClick}\n          onMousedown={this.handleMinusMousedown}\n          ref=\"minusButtonInstRef\"\n        >\n          {{\n            icon: () =>\n              resolveSlot($slots['minus-icon'], () => [\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{\n                    default: () => <RemoveIcon />\n                  }}\n                </NBaseIcon>\n              ])\n          }}\n        </NxButton>\n      )\n    }\n    const renderAddButton = (): VNode => {\n      return (\n        <NxButton\n          text\n          disabled={!this.addable || this.mergedDisabled || this.readonly}\n          focusable={false}\n          theme={this.mergedTheme.peers.Button}\n          themeOverrides={this.mergedTheme.peerOverrides.Button}\n          builtinThemeOverrides={this.buttonThemeOverrides}\n          onClick={this.handleAddClick}\n          onMousedown={this.handleAddMousedown}\n          ref=\"addButtonInstRef\"\n        >\n          {{\n            icon: () =>\n              resolveSlot($slots['add-icon'], () => [\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{\n                    default: () => <AddIcon />\n                  }}\n                </NBaseIcon>\n              ])\n          }}\n        </NxButton>\n      )\n    }\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-input-number`,\n          this.rtlEnabled && `${mergedClsPrefix}-input-number--rtl`\n        ]}\n      >\n        <NInput\n          ref=\"inputInstRef\"\n          autofocus={this.autofocus}\n          status={this.mergedStatus}\n          bordered={this.mergedBordered}\n          loading={this.loading}\n          value={this.displayedValue}\n          onUpdateValue={this.handleUpdateDisplayedValue}\n          theme={this.mergedTheme.peers.Input}\n          themeOverrides={this.mergedTheme.peerOverrides.Input}\n          builtinThemeOverrides={this.inputThemeOverrides}\n          size={this.mergedSize}\n          placeholder={this.mergedPlaceholder}\n          disabled={this.mergedDisabled}\n          readonly={this.readonly as any}\n          round={this.round}\n          textDecoration={\n            this.displayedValueInvalid ? 'line-through' : undefined\n          }\n          onFocus={this.handleFocus}\n          onBlur={this.handleBlur}\n          onKeydown={this.handleKeyDown}\n          onMousedown={this.handleMouseDown}\n          onClear={this.handleClear}\n          clearable={this.clearable}\n          inputProps={this.inputProps}\n          internalLoadingBeforeSuffix\n        >\n          {{\n            prefix: () =>\n              this.showButton && this.buttonPlacement === 'both'\n                ? [\n                    renderMinusButton(),\n                    resolveWrappedSlot($slots.prefix, (children) => {\n                      if (children) {\n                        return (\n                          <span\n                            class={`${mergedClsPrefix}-input-number-prefix`}\n                          >\n                            {children}\n                          </span>\n                        )\n                      }\n                      return null\n                    })\n                  ]\n                : $slots.prefix?.(),\n            suffix: () =>\n              this.showButton\n                ? [\n                    resolveWrappedSlot($slots.suffix, (children) => {\n                      if (children) {\n                        return (\n                          <span\n                            class={`${mergedClsPrefix}-input-number-suffix`}\n                          >\n                            {children}\n                          </span>\n                        )\n                      }\n                      return null\n                    }),\n                    this.buttonPlacement === 'right'\n                      ? renderMinusButton()\n                      : null,\n                    renderAddButton()\n                  ]\n                : $slots.suffix?.()\n          }}\n        </NInput>\n      </div>\n    )\n  }\n})\n","import { c, cB, cM, cNotM } from '../../../_utils/cssr'\n\n// --n-input-width\n// --n-gap\nexport default c([\n  cB('input-otp', `\n    display: flex;\n    align-items: center;\n    gap: var(--n-gap);\n  `, [\n    cM('block', ``, [\n      cB('input', ``, [\n        cNotM('autosize', `\n          text-align: center;\n          min-width: 0;\n        `),\n        cM('autosize', `\n          text-align: center;\n          min-width: 0;\n        `)\n      ]),\n    ]),\n    cNotM('block', ``, [\n      cB('input', ``, [\n        cNotM('autosize', `\n          width: var(--n-input-width);\n          text-align: center;\n        `),\n        cM('autosize', `\n          width: var(--n-input-width);\n          text-align: center;\n        `)\n      ])\n    ])\n  ])\n])\n","import type { InputInst } from 'naive-ui'\nimport type { CSSProperties, PropType, Ref, SlotsType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputOtpTheme, InputOtpThemeOverrides } from '../styles/light'\nimport type {\n  InputOtpAllowInput,\n  InputOtpInst,\n  InputOtpOnBlur,\n  InputOtpOnFinish,\n  InputOtpOnFocus,\n  InputOtpOnUpdateValue,\n  InputOtpOnUpdateValueMeta,\n  InputOtpSize,\n  InputOtpSlots\n} from './public-types'\nimport { pxfy, repeat } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, ref, toRef } from 'vue'\nimport {\n  useConfig,\n  useFormItem,\n  useRtl,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  createKey,\n  isArrayShallowEqual,\n  resolveSlotWithTypedProps\n} from '../../_utils'\nimport { NInput } from '../../input'\nimport inputOtpLight from '../styles/light'\nimport style from './styles/index.cssr'\n\nexport const inputOtpProps = {\n  ...(useTheme.props as ThemeProps<InputOtpTheme, InputOtpThemeOverrides>),\n  defaultValue: { type: Array as PropType<string[]>, default: [] },\n  value: Array as PropType<null | string[]>,\n  length: {\n    type: Number,\n    default: 6\n  },\n  block: Boolean,\n  size: String as PropType<InputOtpSize>,\n  disabled: Boolean,\n  mask: Boolean,\n  readonly: Boolean,\n  status: String as PropType<FormValidationStatus>,\n  gap: [String, Number] as PropType<string | number>,\n  placeholder: { type: String, default: '' },\n  allowInput: Function as PropType<InputOtpAllowInput>,\n  onBlur: [Function, Array] as PropType<MaybeArray<InputOtpOnBlur>>,\n  onFocus: [Function, Array] as PropType<MaybeArray<InputOtpOnFocus>>,\n  'onUpdate:value': [Function, Array] as PropType<\n    MaybeArray<InputOtpOnUpdateValue>\n  >,\n  onUpdateValue: [Function, Array] as PropType<\n    MaybeArray<InputOtpOnUpdateValue>\n  >,\n  onFinish: [Function, Array] as PropType<MaybeArray<InputOtpOnFinish>>\n}\n\nexport type InputOtpProps = ExtractPublicPropTypes<typeof inputOtpProps>\n\nexport default defineComponent({\n  name: 'InputOtp',\n  props: inputOtpProps,\n  slots: Object as SlotsType<InputOtpSlots>,\n  setup(props) {\n    const {\n      mergedClsPrefixRef,\n      mergedRtlRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'InputOtp',\n      '-input-otp',\n      style,\n      inputOtpLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('InputOtp', mergedRtlRef, mergedClsPrefixRef)\n\n    // form-item\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as InputOtpSize\n        const configSize = mergedComponentPropsRef?.value?.InputOtp?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef, mergedStatusRef } = formItem\n\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const { gap: propGap } = props\n      const {\n        self: {\n          [createKey('inputWidth', size)]: inputWidth,\n          [createKey('gap', size)]: gap\n        }\n      } = themeRef.value\n      return {\n        '--n-gap':\n          propGap === undefined\n            ? gap\n            : typeof propGap === 'number'\n              ? pxfy(propGap)\n              : propGap,\n        '--n-input-width': inputWidth\n      }\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'input-otp',\n          computed(() => {\n            const { value: size } = mergedSizeRef\n            return size[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n\n    const inputRefList = ref<InputInst[]>([])\n    const inputTypeRef = computed(() =>\n      props.mask ? ('password' as const) : ('text' as const)\n    )\n\n    const handleFocus = (e: FocusEvent, index: number) => {\n      // If it's focused from other input element inside the component, returns\n      if (\n        inputRefList?.value.some(\n          inputInst => inputInst.inputElRef === e.relatedTarget\n        )\n      ) {\n        return\n      }\n      const { onFocus } = props\n      if (onFocus) {\n        call(onFocus, e, index)\n      }\n      const { nTriggerFormFocus } = formItem\n      nTriggerFormFocus()\n    }\n\n    const handleBlur = (e: FocusEvent, index: number) => {\n      // If it's blured to other input element inside the component, returns\n      if (\n        inputRefList?.value.some(\n          inputInst => inputInst.inputElRef === e.relatedTarget\n        )\n      ) {\n        return\n      }\n      const { onBlur } = props\n      const { nTriggerFormBlur } = formItem\n      if (onBlur)\n        call(onBlur, e, index)\n      nTriggerFormBlur()\n    }\n\n    const focusOnChar = (charIndex: number) => {\n      if (charIndex >= props.length)\n        return\n      if (charIndex < 0)\n        return\n      inputRefList?.value[charIndex].focus()\n      inputRefList?.value[charIndex].select()\n    }\n\n    const focusOnNextChar = (currentIndex: number) => {\n      if (currentIndex >= props.length - 1) {\n        return\n      }\n      focusOnChar(currentIndex + 1)\n    }\n\n    const focusOnPrevChar = (currentIndex: number) => {\n      if (currentIndex <= 0) {\n        return\n      }\n      focusOnChar(currentIndex - 1)\n    }\n\n    const justifyValue = (value: string[] | null): string[] => {\n      const justifiedValue = value ? Array.from(value) : []\n      const length = props.length\n      while (justifiedValue.length > length) {\n        justifiedValue.pop()\n      }\n      while (justifiedValue.length < length) {\n        justifiedValue.push('')\n      }\n      return justifiedValue\n    }\n\n    function doUpdateValue(\n      value: string[],\n      meta: InputOtpOnUpdateValueMeta\n    ): void {\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (isArrayShallowEqual(value, mergedValueRef.value)) {\n        nTriggerFormInput()\n        return\n      }\n      const {\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue,\n        length,\n        onFinish\n      } = props\n      if (_onUpdateValue)\n        call(_onUpdateValue, value, meta)\n      if (onUpdateValue)\n        call(onUpdateValue, value, meta)\n      if (value.filter(v => v).length === length && onFinish) {\n        call(onFinish, value)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n\n    const handlePaste = (e: ClipboardEvent, index: number) => {\n      if (props.readonly || mergedDisabledRef.value) {\n        return\n      }\n\n      e.preventDefault()\n      const { clipboardData } = e\n      const text = clipboardData?.getData('text')\n      if (!text)\n        return\n\n      const currentValue = justifyValue(mergedValueRef.value)\n      let startIndex = index\n      const allowInput = props.allowInput\n      let pasteApplied = false\n      let appendedText = ''\n      for (let i = 0; i < text.length; ++i) {\n        if (allowInput && !allowInput(text[i], startIndex, currentValue)) {\n          continue\n        }\n        pasteApplied = true\n        currentValue[startIndex] = text[i]\n        appendedText += text[i]\n        startIndex++\n        if (startIndex >= currentValue.length) {\n          break\n        }\n      }\n\n      if (pasteApplied) {\n        focusOnChar(startIndex)\n        doUpdateValue(currentValue, {\n          diff: appendedText,\n          index: startIndex,\n          source: 'paste'\n        })\n      }\n    }\n\n    const handleKeydown = (e: KeyboardEvent, index: number) => {\n      if (mergedDisabledRef.value)\n        return\n      const keyCode = e.code || e.key\n      const currentValue = justifyValue(mergedValueRef.value)\n      if (keyCode === 'Backspace' && !props.readonly) {\n        e.preventDefault()\n        currentValue[Math.max(index, 0)] = ''\n        doUpdateValue(currentValue, { diff: '', index, source: 'delete' })\n        focusOnPrevChar(index)\n      }\n      else if (keyCode === 'ArrowLeft') {\n        e.preventDefault()\n        focusOnPrevChar(index)\n      }\n      else if (keyCode === 'ArrowRight') {\n        e.preventDefault()\n        focusOnNextChar(index)\n      }\n    }\n\n    const handleInput = (value: string, index: number) => {\n      const currentValue = justifyValue(mergedValueRef.value)\n      const currentValueAtIndex = currentValue[index]\n      const diff = value.replace(currentValueAtIndex, '')\n      const text = diff || value\n\n      // Multi-character input (e.g. browser extension autofill)\n      if (text.length > 1) {\n        let startIndex = index\n        const allowInput = props.allowInput\n        let pasteApplied = false\n        let appendedText = ''\n        for (let i = 0; i < text.length; ++i) {\n          if (allowInput && !allowInput(text[i], startIndex, currentValue)) {\n            continue\n          }\n          pasteApplied = true\n          currentValue[startIndex] = text[i]\n          appendedText += text[i]\n          startIndex++\n          if (startIndex >= currentValue.length) {\n            break\n          }\n        }\n        if (pasteApplied) {\n          focusOnChar(Math.min(startIndex, props.length - 1))\n          doUpdateValue(currentValue, {\n            diff: appendedText,\n            index: startIndex,\n            source: 'input'\n          })\n        }\n        return\n      }\n\n      // Single character — original behavior\n      const char = text[text.length - 1] || ''\n      const allowInput = props.allowInput\n      if (allowInput && !allowInput(char, index, currentValue)) {\n        return\n      }\n      currentValue[index] = char\n      doUpdateValue(currentValue, { diff: char, index, source: 'input' })\n      focusOnNextChar(index)\n    }\n\n    const getTemplateEvents = (index: number) => {\n      return {\n        onInput: (value: string) => handleInput(value, index),\n        onPaste: (event: ClipboardEvent) => handlePaste(event, index),\n        onKeydown: (event: KeyboardEvent) => handleKeydown(event, index),\n        onFocus: (event: FocusEvent) => handleFocus(event, index),\n        onBlur: (event: FocusEvent) => handleBlur(event, index)\n      }\n    }\n\n    const exposedMethods: InputOtpInst = {\n      focusOnChar\n    }\n\n    return {\n      mergedTheme: themeRef,\n      perItemValueArray: computed(() => justifyValue(mergedValueRef.value)),\n      mergedClsPrefix: mergedClsPrefixRef,\n      inputRefList,\n      inputType: inputTypeRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedStatus: mergedStatusRef,\n      mergedDisabled: mergedDisabledRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      getTemplateEvents,\n      onRender: themeClassHandle?.onRender,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const {\n      mergedTheme,\n      mergedClsPrefix,\n      perItemValueArray,\n      size,\n      placeholder,\n      mergedDisabled,\n      mergedStatus,\n      readonly,\n      inputType,\n      $slots,\n      getTemplateEvents,\n      themeClass,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        style={this.cssVars as CSSProperties}\n        class={[\n          `${mergedClsPrefix}-input-otp`,\n          themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-input-otp--rtl`,\n          this.block && `${mergedClsPrefix}-input-otp--block`\n        ]}\n      >\n        {repeat(this.length, undefined).map((_, index) =>\n          resolveSlotWithTypedProps(\n            $slots.default,\n            {\n              index,\n              value: perItemValueArray[index],\n              type: inputType,\n              size,\n              placeholder,\n              disabled: mergedDisabled,\n              readonly,\n              status: mergedStatus,\n              builtinThemeOverrides: {\n                paddingTiny: '0',\n                paddingSmall: '0',\n                paddingMedium: '0',\n                paddingLarge: '0'\n              },\n              theme: mergedTheme.peers.Input,\n              themeOverrides: mergedTheme.peerOverrides.Input,\n              ref: (el: any) => (this.inputRefList[index] = el),\n              ...getTemplateEvents(index)\n            },\n            ({ index, ...restProps }) => [<NInput {...restProps} key={index} />]\n          )\n        )}\n      </div>\n    )\n  }\n})\n","import type { PropType, Ref } from 'vue'\nimport { createInjectionKey } from '../../_utils'\n\nexport const layoutSiderInjectionKey = createInjectionKey<{\n  collapsedRef: Ref<boolean>\n  collapseModeRef: Ref<'transform' | 'width'>\n}>('n-layout-sider')\n\nexport const positionProp = {\n  type: String as PropType<'static' | 'absolute'>,\n  default: 'static'\n} as const\n\nexport interface LayoutInst {\n  scrollTo: ((options: ScrollToOptions) => void)\n    & ((x: number, y: number) => void)\n}\n\nexport type LayoutSiderInst = LayoutInst\n","import { cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-text-color\nexport default cB('layout', `\n  color: var(--n-text-color);\n  background-color: var(--n-color);\n  box-sizing: border-box;\n  position: relative;\n  z-index: auto;\n  flex: auto;\n  overflow: hidden;\n  transition:\n    box-shadow .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    color .3s var(--n-bezier);\n`, [\n  cB('layout-scroll-container', `\n    overflow-x: hidden;\n    box-sizing: border-box;\n    height: 100%;\n  `),\n  cM('absolute-positioned', `\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n    bottom: 0;\n  `)\n])\n","import type { CSSProperties, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { ScrollbarInst, ScrollbarProps } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { LayoutTheme, LayoutThemeOverrides } from '../styles'\nimport type { LayoutInst } from './interface'\nimport { computed, defineComponent, h, provide, ref } from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createInjectionKey, useReactivated } from '../../_utils'\nimport { layoutLight } from '../styles'\nimport { positionProp } from './interface'\nimport style from './styles/layout.cssr'\n\nexport const layoutProps = {\n  embedded: Boolean,\n  position: positionProp,\n  nativeScrollbar: {\n    type: Boolean,\n    default: true\n  },\n  scrollbarProps: Object as PropType<Partial<ScrollbarProps>>,\n  onScroll: Function as PropType<(e: Event) => void>,\n  contentClass: String,\n  contentStyle: {\n    type: [String, Object] as PropType<string | CSSProperties>,\n    default: ''\n  },\n  hasSider: Boolean,\n  siderPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'left'\n  }\n} as const\n\nexport type LayoutProps = ExtractPublicPropTypes<typeof layoutProps>\n\nexport const layoutInjectionKey\n  = createInjectionKey<ExtractPropTypes<typeof layoutProps>>('n-layout')\n\nexport function createLayoutComponent(isContent: boolean) {\n  return defineComponent({\n    name: isContent ? 'LayoutContent' : 'Layout',\n    props: {\n      ...(useTheme.props as ThemeProps<LayoutTheme, LayoutThemeOverrides>),\n      ...layoutProps\n    },\n    setup(props) {\n      const scrollableElRef = ref<HTMLElement | null>(null)\n      const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n      const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n      const themeRef = useTheme(\n        'Layout',\n        '-layout',\n        style,\n        layoutLight,\n        props,\n        mergedClsPrefixRef\n      )\n      function scrollTo(options: ScrollToOptions): void\n      function scrollTo(x: number, y: number): void\n      function scrollTo(options: ScrollToOptions | number, y?: number): void {\n        if (props.nativeScrollbar) {\n          const { value: scrollableEl } = scrollableElRef\n          if (scrollableEl) {\n            if (y === undefined) {\n              scrollableEl.scrollTo(options as any)\n            }\n            else {\n              scrollableEl.scrollTo(options as any, y as any)\n            }\n          }\n        }\n        else {\n          const { value: scrollbarInst } = scrollbarInstRef\n          if (scrollbarInst) {\n            scrollbarInst.scrollTo(options as any, y as any)\n          }\n        }\n      }\n      provide(layoutInjectionKey, props)\n      let scrollX = 0\n      let scrollY = 0\n      const handleNativeElScroll = (e: Event): void => {\n        const target = e.target as HTMLElement\n        scrollX = target.scrollLeft\n        scrollY = target.scrollTop\n        props.onScroll?.(e)\n      }\n      useReactivated(() => {\n        if (props.nativeScrollbar) {\n          const el = scrollableElRef.value\n          if (el) {\n            el.scrollTop = scrollY\n            el.scrollLeft = scrollX\n          }\n        }\n      })\n      const hasSiderStyle: CSSProperties = {\n        display: 'flex',\n        flexWrap: 'nowrap',\n        width: '100%',\n        flexDirection: 'row'\n      }\n      const exposedMethods: LayoutInst = {\n        scrollTo\n      }\n      const cssVarsRef = computed(() => {\n        const {\n          common: { cubicBezierEaseInOut },\n          self\n        } = themeRef.value\n        return {\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-color': props.embedded ? self.colorEmbedded : self.color,\n          '--n-text-color': self.textColor\n        }\n      })\n      const themeClassHandle = inlineThemeDisabled\n        ? useThemeClass(\n            'layout',\n            computed(() => {\n              return props.embedded ? 'e' : ''\n            }),\n            cssVarsRef,\n            props\n          )\n        : undefined\n      return {\n        mergedClsPrefix: mergedClsPrefixRef,\n        scrollableElRef,\n        // reduce dts: string ref only, type unused in render\n        scrollbarInstRef: scrollbarInstRef as unknown,\n        hasSiderStyle,\n        mergedTheme: themeRef,\n        handleNativeElScroll,\n        cssVars: inlineThemeDisabled\n          ? undefined\n          : (cssVarsRef as Ref<CSSProperties>),\n        themeClass: themeClassHandle?.themeClass,\n        onRender: themeClassHandle?.onRender,\n        ...exposedMethods\n      }\n    },\n    render() {\n      const { mergedClsPrefix, hasSider } = this\n      this.onRender?.()\n      const hasSiderStyle = hasSider ? this.hasSiderStyle : undefined\n      const layoutClass = [\n        this.themeClass,\n        isContent && `${mergedClsPrefix}-layout-content`,\n        `${mergedClsPrefix}-layout`,\n        `${mergedClsPrefix}-layout--${this.position}-positioned`\n      ]\n      return (\n        <div class={layoutClass} style={this.cssVars as CSSProperties}>\n          {this.nativeScrollbar ? (\n            <div\n              ref=\"scrollableElRef\"\n              class={[\n                `${mergedClsPrefix}-layout-scroll-container`,\n                this.contentClass\n              ]}\n              style={[this.contentStyle, hasSiderStyle] as any}\n              onScroll={this.handleNativeElScroll}\n            >\n              {this.$slots.default?.()}\n            </div>\n          ) : (\n            <NScrollbar\n              {...this.scrollbarProps}\n              onScroll={this.onScroll}\n              ref=\"scrollbarInstRef\"\n              theme={this.mergedTheme.peers.Scrollbar}\n              themeOverrides={this.mergedTheme.peerOverrides.Scrollbar}\n              contentClass={this.contentClass}\n              contentStyle={[this.contentStyle, hasSiderStyle] as any}\n            >\n              {this.$slots}\n            </NScrollbar>\n          )}\n        </div>\n      )\n    }\n  })\n}\n\nexport default createLayoutComponent(false)\n","import { createLayoutComponent } from './Layout'\n\nexport default createLayoutComponent(true)\n","import { cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-border-color\n// --n-text-color\nexport default cB('layout-footer', `\n  transition:\n    box-shadow .3s var(--n-bezier),\n    color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    border-color .3s var(--n-bezier);\n  color: var(--n-text-color);\n  background-color: var(--n-color);\n  box-sizing: border-box;\n`, [\n  cM('absolute-positioned', `\n    position: absolute;\n    left: 0;\n    right: 0;\n    bottom: 0;\n  `),\n  cM('bordered', `\n    border-top: solid 1px var(--n-border-color);\n  `)\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { LayoutTheme, LayoutThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { layoutLight } from '../styles'\nimport { positionProp } from './interface'\nimport style from './styles/layout-footer.cssr'\n\nexport const layoutFooterProps = {\n  ...(useTheme.props as ThemeProps<LayoutTheme, LayoutThemeOverrides>),\n  inverted: Boolean,\n  position: positionProp,\n  bordered: Boolean\n}\n\nexport type LayoutFooterProps = ExtractPublicPropTypes<typeof layoutFooterProps>\n\nexport default defineComponent({\n  name: 'LayoutFooter',\n  props: layoutFooterProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Layout',\n      '-layout-footer',\n      style,\n      layoutLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const vars: any = {\n        '--n-bezier': cubicBezierEaseInOut\n      }\n      if (props.inverted) {\n        vars['--n-color'] = self.footerColorInverted\n        vars['--n-text-color'] = self.textColorInverted\n        vars['--n-border-color'] = self.footerBorderColorInverted\n      }\n      else {\n        vars['--n-color'] = self.footerColor\n        vars['--n-text-color'] = self.textColor\n        vars['--n-border-color'] = self.footerBorderColor\n      }\n      return vars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'layout-footer',\n          computed(() => (props.inverted ? 'a' : 'b')),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-layout-footer`,\n          this.themeClass,\n          this.position\n          && `${mergedClsPrefix}-layout-footer--${this.position}-positioned`,\n          this.bordered && `${mergedClsPrefix}-layout-footer--bordered`\n        ]}\n        style={this.cssVars}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import { cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-text-color\n// --n-color\n// --n-border-color\nexport default cB('layout-header', `\n  transition:\n    color .3s var(--n-bezier),\n    background-color .3s var(--n-bezier),\n    box-shadow .3s var(--n-bezier),\n    border-color .3s var(--n-bezier);\n  box-sizing: border-box;\n  width: 100%;\n  background-color: var(--n-color);\n  color: var(--n-text-color);\n`, [\n  cM('absolute-positioned', `\n    position: absolute;\n    left: 0;\n    right: 0;\n    top: 0;\n  `),\n  cM('bordered', `\n    border-bottom: solid 1px var(--n-border-color);\n  `)\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { LayoutTheme, LayoutThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { layoutLight } from '../styles'\nimport { positionProp } from './interface'\nimport style from './styles/layout-header.cssr'\n\nexport const headerProps = {\n  position: positionProp,\n  inverted: Boolean,\n  bordered: Boolean\n} as const\n\nexport type LayoutHeaderProps = ExtractPublicPropTypes<typeof headerProps>\n\nexport default defineComponent({\n  name: 'LayoutHeader',\n  props: {\n    ...(useTheme.props as ThemeProps<LayoutTheme, LayoutThemeOverrides>),\n    ...headerProps\n  },\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Layout',\n      '-layout-header',\n      style,\n      layoutLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const vars: any = {\n        '--n-bezier': cubicBezierEaseInOut\n      }\n      if (props.inverted) {\n        vars['--n-color'] = self.headerColorInverted\n        vars['--n-text-color'] = self.textColorInverted\n        vars['--n-border-color'] = self.headerBorderColorInverted\n      }\n      else {\n        vars['--n-color'] = self.headerColor\n        vars['--n-text-color'] = self.textColor\n        vars['--n-border-color'] = self.headerBorderColor\n      }\n      return vars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'layout-header',\n          computed(() => (props.inverted ? 'a' : 'b')),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-layout-header`,\n          this.themeClass,\n          this.position\n          && `${mergedClsPrefix}-layout-header--${this.position}-positioned`,\n          this.bordered && `${mergedClsPrefix}-layout-header--bordered`\n        ]}\n        style={this.cssVars}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-color\n// --n-text-color\n// --n-border-color\n// --n-toggle-button-color\n// --n-toggle-bar-color\n// --n-toggle-bar-color-hover\nexport default cB('layout-sider', `\n  flex-shrink: 0;\n  box-sizing: border-box;\n  position: relative;\n  z-index: 1;\n  color: var(--n-text-color);\n  transition:\n    color .3s var(--n-bezier),\n    border-color .3s var(--n-bezier),\n    min-width .3s var(--n-bezier),\n    max-width .3s var(--n-bezier),\n    transform .3s var(--n-bezier),\n    background-color .3s var(--n-bezier);\n  background-color: var(--n-color);\n  display: flex;\n  justify-content: flex-end;\n`, [\n  cM('bordered', [\n    cE('border', `\n      content: \"\";\n      position: absolute;\n      top: 0;\n      bottom: 0;\n      width: 1px;\n      background-color: var(--n-border-color);\n      transition: background-color .3s var(--n-bezier);\n    `)\n  ]),\n  cE('left-placement', [\n    cM('bordered', [\n      cE('border', `\n        right: 0;\n      `)\n    ])\n  ]),\n  cM('right-placement', `\n    justify-content: flex-start;\n  `, [\n    cM('bordered', [\n      cE('border', `\n        left: 0;\n      `)\n    ]),\n    cM('collapsed', [\n      cB('layout-toggle-button', [\n        cB('base-icon', `\n          transform: rotate(180deg);\n        `)\n      ]),\n      cB('layout-toggle-bar', [\n        c('&:hover', [\n          cE('top', {\n            transform: 'rotate(-12deg) scale(1.15) translateY(-2px)'\n          }),\n          cE('bottom', {\n            transform: 'rotate(12deg) scale(1.15) translateY(2px)'\n          })\n        ])\n      ])\n    ]),\n    cB('layout-toggle-button', `\n      left: 0;\n      transform: translateX(-50%) translateY(-50%);\n    `, [\n      cB('base-icon', `\n        transform: rotate(0);\n      `)\n    ]),\n    cB('layout-toggle-bar', `\n      left: -28px;\n      transform: rotate(180deg);\n    `, [\n      c('&:hover', [\n        cE('top', {\n          transform: 'rotate(12deg) scale(1.15) translateY(-2px)'\n        }),\n        cE('bottom', {\n          transform: 'rotate(-12deg) scale(1.15) translateY(2px)'\n        })\n      ])\n    ])\n  ]),\n  cM('collapsed', [\n    cB('layout-toggle-bar', [\n      c('&:hover', [\n        cE('top', {\n          transform: 'rotate(-12deg) scale(1.15) translateY(-2px)'\n        }),\n        cE('bottom', {\n          transform: 'rotate(12deg) scale(1.15) translateY(2px)'\n        })\n      ])\n    ]),\n    cB('layout-toggle-button', [\n      cB('base-icon', `\n        transform: rotate(0);\n      `)\n    ])\n  ]),\n  cB('layout-toggle-button', `\n    transition:\n      color .3s var(--n-bezier),\n      right .3s var(--n-bezier),\n      left .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    cursor: pointer;\n    width: 24px;\n    height: 24px;\n    position: absolute;\n    top: 50%;\n    right: 0;\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    font-size: 18px;\n    color: var(--n-toggle-button-icon-color);\n    border: var(--n-toggle-button-border);\n    background-color: var(--n-toggle-button-color);\n    box-shadow: 0 2px 4px 0px rgba(0, 0, 0, .06);\n    transform: translateX(50%) translateY(-50%);\n    z-index: 1;\n  `, [\n    cB('base-icon', `\n      transition: transform .3s var(--n-bezier);\n      transform: rotate(180deg);\n    `)\n  ]),\n  cB('layout-toggle-bar', `\n    cursor: pointer;\n    height: 72px;\n    width: 32px;\n    position: absolute;\n    top: calc(50% - 36px);\n    right: -28px;\n  `, [\n    cE('top, bottom', `\n      position: absolute;\n      width: 4px;\n      border-radius: 2px;\n      height: 38px;\n      left: 14px;\n      transition: \n        background-color .3s var(--n-bezier),\n        transform .3s var(--n-bezier);\n    `),\n    cE('bottom', `\n      position: absolute;\n      top: 34px;\n    `),\n    c('&:hover', [\n      cE('top', {\n        transform: 'rotate(12deg) scale(1.15) translateY(-2px)'\n      }),\n      cE('bottom', {\n        transform: 'rotate(-12deg) scale(1.15) translateY(2px)'\n      })\n    ]),\n    cE('top, bottom', {\n      backgroundColor: 'var(--n-toggle-bar-color)'\n    }),\n    c('&:hover', [\n      cE('top, bottom', {\n        backgroundColor: 'var(--n-toggle-bar-color-hover)'\n      })\n    ])\n  ]),\n  cE('border', `\n    position: absolute;\n    top: 0;\n    right: 0;\n    bottom: 0;\n    width: 1px;\n    transition: background-color .3s var(--n-bezier);\n  `),\n  cB('layout-sider-scroll-container', `\n    flex-grow: 1;\n    flex-shrink: 0;\n    box-sizing: border-box;\n    height: 100%;\n    opacity: 0;\n    transition: opacity .3s var(--n-bezier);\n    max-width: 100%;\n  `),\n  cM('show-content', [\n    cB('layout-sider-scroll-container', {\n      opacity: 1\n    })\n  ]),\n  cM('absolute-positioned', `\n    position: absolute;\n    left: 0;\n    top: 0;\n    bottom: 0;\n  `)\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    onClick: Function as PropType<(e: MouseEvent) => void>\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div onClick={this.onClick} class={`${clsPrefix}-layout-toggle-bar`}>\n        <div class={`${clsPrefix}-layout-toggle-bar__top`} />\n        <div class={`${clsPrefix}-layout-toggle-bar__bottom`} />\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { ChevronRightIcon } from '../../_internal/icons'\n\nexport default defineComponent({\n  name: 'LayoutToggleButton',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    onClick: Function as PropType<(e: MouseEvent) => void>\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div class={`${clsPrefix}-layout-toggle-button`} onClick={this.onClick}>\n        <NBaseIcon clsPrefix={clsPrefix}>\n          {{\n            default: () => <ChevronRightIcon />\n          }}\n        </NBaseIcon>\n      </div>\n    )\n  }\n})\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ScrollbarInst, ScrollbarProps } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { LayoutTheme, LayoutThemeOverrides } from '../styles'\nimport type { LayoutSiderInst } from './interface'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, inject, provide, ref, toRef } from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { call, formatLength, useReactivated, warn } from '../../_utils'\nimport { layoutLight } from '../styles'\nimport { layoutSiderInjectionKey, positionProp } from './interface'\nimport { layoutInjectionKey } from './Layout'\nimport style from './styles/layout-sider.cssr'\nimport ToggleBar from './ToggleBar'\nimport ToggleButton from './ToggleButton'\n\nexport const layoutSiderProps = {\n  position: positionProp,\n  bordered: Boolean,\n  collapsedWidth: {\n    type: Number,\n    default: 48\n  },\n  width: {\n    type: [Number, String] as PropType<string | number>,\n    default: 272\n  },\n  contentClass: String,\n  contentStyle: {\n    type: [String, Object] as PropType<string | CSSProperties>,\n    default: ''\n  },\n  collapseMode: {\n    type: String as PropType<'width' | 'transform'>,\n    default: 'transform'\n  },\n  collapsed: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  defaultCollapsed: Boolean,\n  showCollapsedContent: {\n    type: Boolean,\n    default: true\n  },\n  showTrigger: {\n    type: [Boolean, String] as PropType<boolean | 'arrow-circle' | 'bar'>,\n    default: false\n  },\n  nativeScrollbar: {\n    type: Boolean,\n    default: true\n  },\n  inverted: Boolean,\n  scrollbarProps: Object as PropType<\n    Partial<ScrollbarProps> & { style: CSSProperties }\n  >,\n  triggerClass: String,\n  triggerStyle: [String, Object] as PropType<string | CSSProperties>,\n  collapsedTriggerClass: String,\n  collapsedTriggerStyle: [String, Object] as PropType<string | CSSProperties>,\n  'onUpdate:collapsed': [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onUpdateCollapsed: [Function, Array] as PropType<\n    MaybeArray<(value: boolean) => void>\n  >,\n  onAfterEnter: Function as PropType<() => void>,\n  onAfterLeave: Function as PropType<() => void>,\n  // deprecated\n  onExpand: [Function, Array] as PropType<MaybeArray<() => void>>,\n  onCollapse: [Function, Array] as PropType<MaybeArray<() => void>>,\n  onScroll: Function as PropType<(e: Event) => void>\n} as const\n\nexport type LayoutSiderProps = ExtractPublicPropTypes<typeof layoutSiderProps>\n\nexport default defineComponent({\n  name: 'LayoutSider',\n  props: {\n    ...(useTheme.props as ThemeProps<LayoutTheme, LayoutThemeOverrides>),\n    ...layoutSiderProps\n  },\n  setup(props) {\n    const layoutProps = inject(layoutInjectionKey)\n    if (__DEV__) {\n      if (!layoutProps) {\n        warn(\n          'layout-sider',\n          'Layout sider is not allowed to be put outside layout.'\n        )\n      }\n      else {\n        if (!layoutProps.hasSider) {\n          warn(\n            'layout-sider',\n            'You are putting `n-layout-sider` in a `n-layout` but haven\\'t set `has-sider` on the `n-layout`.'\n          )\n        }\n      }\n    }\n    const scrollableElRef = ref<HTMLElement | null>(null)\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n    const uncontrolledCollapsedRef = ref(props.defaultCollapsed)\n    const mergedCollapsedRef = useMergedState(\n      toRef(props, 'collapsed'),\n      uncontrolledCollapsedRef\n    )\n    const styleMaxWidthRef = computed(() => {\n      return formatLength(\n        mergedCollapsedRef.value ? props.collapsedWidth : props.width\n      )\n    })\n    const scrollContainerStyleRef = computed<CSSProperties>(() => {\n      if (props.collapseMode !== 'transform')\n        return {}\n      return {\n        minWidth: formatLength(props.width)\n      }\n    })\n    const siderPlacementRef = computed(() => {\n      return layoutProps ? layoutProps.siderPlacement : 'left'\n    })\n    function scrollTo(options: ScrollToOptions): void\n    function scrollTo(x: number, y: number): void\n    function scrollTo(options: ScrollToOptions | number, y?: number): void {\n      if (props.nativeScrollbar) {\n        const { value: scrollableEl } = scrollableElRef\n        if (scrollableEl) {\n          if (y === undefined) {\n            scrollableEl.scrollTo(options as any)\n          }\n          else {\n            scrollableEl.scrollTo(options as any, y as any)\n          }\n        }\n      }\n      else {\n        const { value: scrollbarInst } = scrollbarInstRef\n        if (scrollbarInst) {\n          scrollbarInst.scrollTo(options as any, y as any)\n        }\n      }\n    }\n    function handleTriggerClick(): void {\n      const {\n        'onUpdate:collapsed': _onUpdateCollapsed,\n        onUpdateCollapsed,\n        // deprecated\n        onExpand,\n        onCollapse\n      } = props\n      const { value: collapsed } = mergedCollapsedRef\n      if (onUpdateCollapsed) {\n        call(onUpdateCollapsed, !collapsed)\n      }\n      if (_onUpdateCollapsed) {\n        call(_onUpdateCollapsed, !collapsed)\n      }\n      uncontrolledCollapsedRef.value = !collapsed\n      if (collapsed) {\n        if (onExpand)\n          call(onExpand)\n      }\n      else {\n        if (onCollapse)\n          call(onCollapse)\n      }\n    }\n    let scrollX = 0\n    let scrollY = 0\n    const handleNativeElScroll = (e: Event): void => {\n      const target = e.target as HTMLElement\n      scrollX = target.scrollLeft\n      scrollY = target.scrollTop\n      props.onScroll?.(e)\n    }\n    useReactivated(() => {\n      if (props.nativeScrollbar) {\n        const el = scrollableElRef.value\n        if (el) {\n          el.scrollTop = scrollY\n          el.scrollLeft = scrollX\n        }\n      }\n    })\n    provide(layoutSiderInjectionKey, {\n      collapsedRef: mergedCollapsedRef,\n      collapseModeRef: toRef(props, 'collapseMode')\n    })\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Layout',\n      '-layout-sider',\n      style,\n      layoutLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    function handleTransitionend(e: TransitionEvent): void {\n      if (e.propertyName === 'max-width') {\n        if (mergedCollapsedRef.value) {\n          props.onAfterLeave?.()\n        }\n        else {\n          props.onAfterEnter?.()\n        }\n      }\n    }\n\n    const exposedMethods: LayoutSiderInst = {\n      scrollTo\n    }\n\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const {\n        siderToggleButtonColor,\n        siderToggleButtonBorder,\n        siderToggleBarColor,\n        siderToggleBarColorHover\n      } = self\n      const vars: any = {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-toggle-button-color': siderToggleButtonColor,\n        '--n-toggle-button-border': siderToggleButtonBorder,\n        '--n-toggle-bar-color': siderToggleBarColor,\n        '--n-toggle-bar-color-hover': siderToggleBarColorHover\n      }\n      if (props.inverted) {\n        vars['--n-color'] = self.siderColorInverted\n        vars['--n-text-color'] = self.textColorInverted\n        vars['--n-border-color'] = self.siderBorderColorInverted\n        vars['--n-toggle-button-icon-color']\n          = self.siderToggleButtonIconColorInverted\n        vars.__invertScrollbar = self.__invertScrollbar\n      }\n      else {\n        vars['--n-color'] = self.siderColor\n        vars['--n-text-color'] = self.textColor\n        vars['--n-border-color'] = self.siderBorderColor\n        vars['--n-toggle-button-icon-color'] = self.siderToggleButtonIconColor\n      }\n      return vars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'layout-sider',\n          computed(() => (props.inverted ? 'a' : 'b')),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      scrollableElRef,\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: themeRef,\n      styleMaxWidth: styleMaxWidthRef,\n      mergedCollapsed: mergedCollapsedRef,\n      scrollContainerStyle: scrollContainerStyleRef,\n      siderPlacement: siderPlacementRef,\n      handleNativeElScroll,\n      handleTransitionend,\n      handleTriggerClick,\n      inlineThemeDisabled,\n      cssVars: cssVarsRef as Ref<CSSProperties>,\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { mergedClsPrefix, mergedCollapsed, showTrigger } = this\n    this.onRender?.()\n    return (\n      <aside\n        class={[\n          `${mergedClsPrefix}-layout-sider`,\n          this.themeClass,\n          `${mergedClsPrefix}-layout-sider--${this.position}-positioned`,\n          `${mergedClsPrefix}-layout-sider--${this.siderPlacement}-placement`,\n          this.bordered && `${mergedClsPrefix}-layout-sider--bordered`,\n          mergedCollapsed && `${mergedClsPrefix}-layout-sider--collapsed`,\n          (!mergedCollapsed || this.showCollapsedContent)\n          && `${mergedClsPrefix}-layout-sider--show-content`\n        ]}\n        onTransitionend={this.handleTransitionend}\n        style={[\n          this.inlineThemeDisabled ? undefined : this.cssVars,\n          {\n            maxWidth: this.styleMaxWidth,\n            width: formatLength(this.width)\n          }\n        ]}\n      >\n        {!this.nativeScrollbar ? (\n          <NScrollbar\n            {...this.scrollbarProps}\n            onScroll={this.onScroll}\n            ref=\"scrollbarInstRef\"\n            style={this.scrollContainerStyle}\n            contentStyle={this.contentStyle}\n            contentClass={this.contentClass}\n            theme={this.mergedTheme.peers.Scrollbar}\n            themeOverrides={this.mergedTheme.peerOverrides.Scrollbar}\n            // here is a hack, since in light theme the scrollbar color is dark,\n            // we need to invert it in light color...\n            builtinThemeOverrides={\n              this.inverted\n              && (this.cssVars as any).__invertScrollbar === 'true'\n                ? {\n                    colorHover: 'rgba(255, 255, 255, .4)',\n                    color: 'rgba(255, 255, 255, .3)'\n                  }\n                : undefined\n            }\n          >\n            {this.$slots}\n          </NScrollbar>\n        ) : (\n          <div\n            class={[\n              `${mergedClsPrefix}-layout-sider-scroll-container`,\n              this.contentClass\n            ]}\n            onScroll={this.handleNativeElScroll}\n            style={[\n              this.scrollContainerStyle,\n              {\n                overflow: 'auto'\n              },\n              this.contentStyle\n            ]}\n            ref=\"scrollableElRef\"\n          >\n            {this.$slots.default?.()}\n          </div>\n        )}\n        {showTrigger ? (\n          showTrigger === 'bar' ? (\n            <ToggleBar\n              clsPrefix={mergedClsPrefix}\n              class={\n                mergedCollapsed ? this.collapsedTriggerClass : this.triggerClass\n              }\n              style={\n                mergedCollapsed ? this.collapsedTriggerStyle : this.triggerStyle\n              }\n              onClick={this.handleTriggerClick}\n            />\n          ) : (\n            <ToggleButton\n              clsPrefix={mergedClsPrefix}\n              class={\n                mergedCollapsed ? this.collapsedTriggerClass : this.triggerClass\n              }\n              style={\n                mergedCollapsed ? this.collapsedTriggerStyle : this.triggerStyle\n              }\n              onClick={this.handleTriggerClick}\n            />\n          )\n        ) : null}\n        {this.bordered ? (\n          <div class={`${mergedClsPrefix}-layout-sider__border`} />\n        ) : null}\n      </aside>\n    )\n  }\n})\n","export default {\n  extraFontSize: '12px',\n  width: '440px'\n}\n","import type { TransferTheme } from './light'\nimport { scrollbarDark } from '../../_internal/scrollbar/styles'\nimport { commonDark } from '../../_styles/common'\nimport { buttonDark } from '../../button/styles'\nimport { checkboxDark } from '../../checkbox/styles'\nimport { emptyDark } from '../../empty/styles'\nimport { inputDark } from '../../input/styles'\nimport commonVariables from './_common'\n\nconst transferDark: TransferTheme = {\n  name: 'Transfer',\n  common: commonDark,\n  peers: {\n    Checkbox: checkboxDark,\n    Scrollbar: scrollbarDark,\n    Input: inputDark,\n    Empty: emptyDark,\n    Button: buttonDark\n  },\n  self(vars) {\n    const {\n      iconColorDisabled,\n      iconColor,\n      fontWeight,\n      fontSizeLarge,\n      fontSizeMedium,\n      fontSizeSmall,\n      heightLarge,\n      heightMedium,\n      heightSmall,\n      borderRadius,\n      inputColor,\n      tableHeaderColor,\n      textColor1,\n      textColorDisabled,\n      textColor2,\n      hoverColor\n    } = vars\n    return {\n      ...commonVariables,\n      itemHeightSmall: heightSmall,\n      itemHeightMedium: heightMedium,\n      itemHeightLarge: heightLarge,\n      fontSizeSmall,\n      fontSizeMedium,\n      fontSizeLarge,\n      borderRadius,\n      borderColor: '#0000',\n      listColor: inputColor,\n      headerColor: tableHeaderColor,\n      titleTextColor: textColor1,\n      titleTextColorDisabled: textColorDisabled,\n      extraTextColor: textColor2,\n      filterDividerColor: '#0000',\n      itemTextColor: textColor2,\n      itemTextColorDisabled: textColorDisabled,\n      itemColorPending: hoverColor,\n      titleFontWeight: fontWeight,\n      iconColor,\n      iconColorDisabled\n    }\n  }\n}\n\nexport default transferDark\n","import type { ScrollbarTheme } from '../../_internal/scrollbar/styles'\nimport type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { CheckboxTheme } from '../../checkbox/styles'\nimport type { EmptyTheme } from '../../empty/styles'\nimport type { InputTheme } from '../../input/styles'\nimport { composite } from 'seemly'\nimport { scrollbarLight } from '../../_internal/scrollbar/styles'\nimport { createTheme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\nimport { buttonLight } from '../../button/styles'\nimport { checkboxLight } from '../../checkbox/styles'\nimport { emptyLight } from '../../empty/styles'\nimport { inputLight } from '../../input/styles'\nimport commonVariables from './_common'\n\nfunction self(vars: ThemeCommonVars) {\n  const {\n    fontWeight,\n    iconColorDisabled,\n    iconColor,\n    fontSizeLarge,\n    fontSizeMedium,\n    fontSizeSmall,\n    heightLarge,\n    heightMedium,\n    heightSmall,\n    borderRadius,\n    cardColor,\n    tableHeaderColor,\n    textColor1,\n    textColorDisabled,\n    textColor2,\n    borderColor,\n    hoverColor\n  } = vars\n  return {\n    ...commonVariables,\n    itemHeightSmall: heightSmall,\n    itemHeightMedium: heightMedium,\n    itemHeightLarge: heightLarge,\n    fontSizeSmall,\n    fontSizeMedium,\n    fontSizeLarge,\n    borderRadius,\n    borderColor,\n    listColor: cardColor,\n    headerColor: composite(cardColor, tableHeaderColor),\n    titleTextColor: textColor1,\n    titleTextColorDisabled: textColorDisabled,\n    extraTextColor: textColor2,\n    filterDividerColor: borderColor,\n    itemTextColor: textColor2,\n    itemTextColorDisabled: textColorDisabled,\n    itemColorPending: hoverColor,\n    titleFontWeight: fontWeight,\n    iconColor,\n    iconColorDisabled\n  }\n}\n\nexport interface TransferThemeVars extends ReturnType<typeof self> {}\n\nconst transferLight: TransferTheme = createTheme({\n  name: 'Transfer',\n  common: commonLight,\n  peers: {\n    Checkbox: checkboxLight,\n    Scrollbar: scrollbarLight,\n    Input: inputLight,\n    Empty: emptyLight,\n    Button: buttonLight\n  },\n  self\n})\n\nexport interface TransferTheme extends Theme<\n  'Transfer',\n  TransferThemeVars,\n  {\n    Checkbox: CheckboxTheme\n    Scrollbar: ScrollbarTheme\n    Input: InputTheme\n    Empty: EmptyTheme\n    Button: ButtonTheme\n  }\n> {}\n\nexport interface TransferThemeOverrides extends ExtractThemeOverrides<TransferTheme> {}\n\nexport default transferLight\n","import type { Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { LegacyTransferTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils'\n\nexport type OptionValue = string | number\nexport interface Option {\n  label: string\n  value: OptionValue\n  disabled?: boolean\n}\n\nexport interface CheckedStatus {\n  checked: boolean\n  indeterminate: boolean\n  disabled?: boolean\n}\n\nexport type Filter = (\n  pattern: string,\n  option: Option,\n  from: 'source' | 'target'\n) => boolean\n\nexport interface TransferInjection {\n  mergedClsPrefixRef: Ref<string>\n  mergedSizeRef: Ref<'small' | 'medium' | 'large'>\n  disabledRef: Ref<boolean>\n  mergedThemeRef: Ref<MergedTheme<LegacyTransferTheme>>\n  srcCheckedValuesRef: Ref<OptionValue[]>\n  tgtCheckedValuesRef: Ref<OptionValue[]>\n  srcOptsRef: Ref<Option[]>\n  tgtOptsRef: Ref<Option[]>\n  srcCheckedStatusRef: Ref<CheckedStatus>\n  tgtCheckedStatusRef: Ref<CheckedStatus>\n  handleSrcCheckboxClick: (checked: boolean, value: OptionValue) => void\n  handleTgtCheckboxClick: (checked: boolean, value: OptionValue) => void\n}\n\nexport const transferInjectionKey\n  = createInjectionKey<TransferInjection>('n-transfer')\n\nexport type OnUpdateValue = (value: OptionValue[]) => void\n","import { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\nconst animation = c([\n  c('@keyframes legacy-transfer-slide-in-from-left', `\n    0% {\n      transform: translateX(-150%);\n    }\n    100% {\n      transform: translateX(0);\n    }\n  `),\n  c('@keyframes legacy-transfer-slide-out-to-right', `\n    0% {\n      transform: translateX(0);\n    }\n    100% {\n      transform: translateX(150%);\n    }\n  `),\n  c('@keyframes legacy-transfer-slide-in-from-right', `\n    0% {\n      transform: translateX(150%);\n    }\n    100% {\n      transform: translateX(0);\n    }\n  `),\n  c('@keyframes legacy-transfer-slide-out-to-left', `\n    0% {\n      transform: translateX(0);\n    }\n    100% {\n      transform: translateX(-150%);\n    }\n  `),\n  c('@keyframes legacy-transfer-height-collapse', `\n    0% {\n      max-height: var(--n-item-height);\n    }\n    100% {\n      max-height: 0;\n    }\n  `),\n  c('@keyframes legacy-transfer-height-expand', `\n    0% {\n      max-height: 0;\n    }\n    100% {\n      max-height: var(--n-item-height);\n    }\n  `)\n])\n\nexport default c([\n  cB('legacy-transfer', `\n    display: flex;\n    width: var(--n-width);\n    font-size: var(--n-font-size);\n    height: 240px;\n    display: flex;\n    flex-wrap: nowrap;\n  `, [\n    cB('legacy-transfer-icon', `\n      color: var(--n-icon-color);\n      transition: color .3s var(--n-bezier);\n    `),\n    cM('disabled', [\n      cB('legacy-transfer-icon', {\n        color: 'var(--n-icon-color-disabled)'\n      })\n    ]),\n    cB('legacy-transfer-list', `\n      height: inherit;\n      display: flex;\n      flex-direction: column;\n      background-clip: padding-box;\n      width: calc(50% - 36px);\n      position: relative;\n      transition: background-color .3s var(--n-bezier);\n      border-radius: var(--n-border-radius);\n      background-color: var(--n-list-color);\n    `, [\n      cE('border', `\n        border: 1px solid var(--n-border-color);\n        transition: border-color .3s var(--n-bezier);\n        pointer-events: none;\n        border-radius: inherit;\n        position: absolute;\n        left: 0;\n        right: 0;\n        top: 0;\n        bottom: 0;\n      `),\n      cB('legacy-transfer-list-header', `\n        height: calc(var(--n-item-height) + 4px);\n        box-sizing: border-box;\n        display: flex;\n        align-items: center;\n        background-clip: padding-box;\n        border-radius: inherit;\n        border-bottom-left-radius: 0;\n        border-bottom-right-radius: 0;\n        background-color: var(--n-header-color);\n        transition:\n          border-color .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n      `, [\n        cE('checkbox', `\n          display: flex;\n          align-items: center;\n          position: relative;\n          padding: 0 9px 0 14px;\n        `),\n        cE('header', `\n          flex: 1;\n          line-height: 1;\n          font-weight: var(--n-header-font-weight);\n          transition: color .3s var(--n-bezier);\n          color: var(--n-header-text-color);\n        `, [\n          cM('disabled', {\n            color: 'var(--n-header-text-color-disabled)'\n          })\n        ]),\n        cE('extra', `\n          transition: color .3s var(--n-bezier);\n          font-size: var(--n-extra-font-size);\n          justify-self: flex-end;\n          margin-right: 14px;\n          white-space: nowrap;\n          color: var(--n-header-extra-text-color);\n        `)\n      ]),\n      cB('legacy-transfer-list-body', `\n        flex-basis: 0;\n        flex-grow: 1;\n        box-sizing: border-box;\n        position: relative;\n        display: flex;\n        flex-direction: column;\n        border-radius: inherit;\n        border-top-left-radius: 0;\n        border-top-right-radius: 0;\n      `, [\n        cB('legacy-transfer-filter', `\n          padding: 0 8px 8px 8px;\n          box-sizing: border-box;\n          background-color: var(--n-header-color);\n          transition:\n            border-color .3s var(--n-bezier),\n            background-color .3s var(--n-bezier);\n          border-bottom: 1px solid var(--n-filter-divider-color);\n        `),\n        cB('legacy-transfer-list-flex-container', `\n          flex: 1;\n          position: relative;\n        `, [\n          cB('scrollbar', `\n            position: absolute;\n            left: 0;\n            right: 0;\n            top: 0;\n            bottom: 0;\n            height: unset;\n          `, [\n            cB('scrollbar-content', {\n              width: '100%'\n            })\n          ]),\n          cB('empty', `\n            position: absolute;\n            left: 50%;\n            top: 50%;\n            transform: translateY(-50%) translateX(-50%);\n          `, [\n            fadeInTransition()\n          ]),\n          cB('legacy-transfer-list-content', `\n            padding: 0;\n            margin: 0;\n            position: relative;\n          `, [\n            cM('transition-disabled', [\n              cB('legacy-transfer-list-item', {\n                animation: 'none !important'\n              })\n            ]),\n            cB('legacy-transfer-list-item', `\n              height: var(--n-item-height);\n              max-height: var(--n-item-height);\n                transition:\n                  background-color .3s var(--n-bezier),\n                  color .3s var(--n-bezier);\n              position: relative;\n              cursor: pointer;\n              display: flex;\n              align-items: center;\n              color: var(--n-item-text-color);\n            `, [\n              cNotM('disabled', [\n                c('&:hover', {\n                  backgroundColor: 'var(--n-item-color-pending)'\n                })\n              ]),\n              cE('extra', `\n                text-overflow: ellipsis;\n                overflow: hidden;\n                white-space: nowrap;\n                padding-right: 4px;\n              `),\n              cE('checkbox', `\n                display: flex;\n                align-items: center;\n                position: relative;\n                padding: 0 9px 0 14px;\n              `),\n              cM('disabled', `\n                cursor: not-allowed\n                background-color: #0000;\n                color: var(--n-item-text-color-disabled);\n              `),\n              cM('source', {\n                animationFillMode: 'forwards'\n              }, [\n                c('&.item-enter-active', `\n                  transform: translateX(150%);\n                  animation-duration: .25s, .25s;\n                  animation-timing-function: var(--n-bezier), var(--n-bezier-ease-out);\n                  animation-delay: 0s, .25s;\n                  animation-name: legacy-transfer-height-expand, legacy-transfer-slide-in-from-right;\n                `),\n                c('&.item-leave-active', `\n                  transform: translateX(-150%);\n                  animation-duration: .25s, .25s;\n                  animation-timing-function: var(--n-bezier), var(--n-bezier-ease-in);\n                  animation-delay: .25s, 0s;\n                  animation-name: legacy-transfer-height-collapse, legacy-transfer-slide-out-to-right;\n                `)\n              ]),\n              cM('target', {\n                animationFillMode: 'forwards'\n              }, [\n                c('&.item-enter-active', `\n                  transform: translateX(-150%);\n                  animation-duration: .25s, .25s;\n                  animation-timing-function: var(--n-bezier), var(--n-bezier-ease-out);\n                  animation-delay: 0s, .25s;\n                  animation-name: legacy-transfer-height-expand, legacy-transfer-slide-in-from-left;\n                `),\n                c('&.item-leave-active', `\n                  transform: translateX(150%);\n                  animation-duration: .25s, .25s;\n                  animation-timing-function: var(--n-bezier), var(--n-bezier-ease-in);\n                  animation-delay: .25s, 0s;\n                  animation-name: legacy-transfer-height-collapse, legacy-transfer-slide-out-to-left;\n                `)\n              ])\n            ])\n          ])\n        ])\n      ])\n    ]),\n    cB('legacy-transfer-gap', {\n      width: '72px',\n      display: 'flex',\n      alignItems: 'center',\n      justifyContent: 'center',\n      flexDirection: 'column'\n    }),\n    cB('button', [\n      c('&:first-child', {\n        marginBottom: '12px'\n      })\n    ])\n  ]),\n  animation\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { SearchIcon } from '../../_internal/icons'\nimport { NInput } from '../../input'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'TransferFilter',\n  props: {\n    value: String,\n    placeholder: String,\n    disabled: Boolean,\n    onFocus: {\n      type: Function as PropType<() => void>,\n      required: true\n    },\n    onBlur: {\n      type: Function as PropType<() => void>,\n      required: true\n    },\n    onUpdateValue: {\n      type: Function as PropType<(value: string | null) => void>,\n      required: true\n    }\n  },\n  setup() {\n    const { mergedThemeRef, mergedClsPrefixRef } = inject(transferInjectionKey)!\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef\n    }\n  },\n  render() {\n    const { mergedTheme, mergedClsPrefix } = this\n    return (\n      <div class={`${mergedClsPrefix}-legacy-transfer-filter`}>\n        <NInput\n          value={this.value}\n          onUpdateValue={this.onUpdateValue}\n          disabled={this.disabled}\n          theme={mergedTheme.peers.Input}\n          themeOverrides={mergedTheme.peerOverrides.Input}\n          clearable\n          size=\"small\"\n          placeholder={this.placeholder}\n          onFocus={this.onFocus}\n          onBlur={this.onBlur}\n        >\n          {{\n            'clear-icon-placeholder': () => (\n              <NBaseIcon\n                clsPrefix={mergedClsPrefix}\n                class={`${mergedClsPrefix}-legacy-transfer-icon`}\n              >\n                {{ default: () => <SearchIcon /> }}\n              </NBaseIcon>\n            )\n          }}\n        </NInput>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NCheckbox } from '../../checkbox'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'TransferHeader',\n  props: {\n    source: Boolean,\n    onChange: {\n      type: Function as PropType<(value: boolean) => void>,\n      required: true\n    },\n    title: String\n  },\n  setup(props) {\n    const {\n      srcOptsRef,\n      tgtOptsRef,\n      srcCheckedStatusRef,\n      tgtCheckedStatusRef,\n      srcCheckedValuesRef,\n      tgtCheckedValuesRef,\n      mergedThemeRef,\n      disabledRef,\n      mergedClsPrefixRef\n    } = inject(transferInjectionKey)!\n    const checkboxPropsRef = computed(() => {\n      const { source } = props\n      if (source) {\n        return srcCheckedStatusRef.value\n      }\n      else {\n        return tgtCheckedStatusRef.value\n      }\n    })\n    return () => {\n      const { source } = props\n      const { value: checkboxProps } = checkboxPropsRef\n      const { value: mergedTheme } = mergedThemeRef\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      return (\n        <div class={`${mergedClsPrefix}-legacy-transfer-list-header`}>\n          <div\n            class={`${mergedClsPrefix}-legacy-transfer-list-header__checkbox`}\n          >\n            <NCheckbox\n              theme={mergedTheme.peers.Checkbox}\n              themeOverrides={mergedTheme.peerOverrides.Checkbox}\n              checked={checkboxProps.checked}\n              indeterminate={checkboxProps.indeterminate}\n              disabled={checkboxProps.disabled || disabledRef.value}\n              onUpdateChecked={props.onChange}\n            />\n          </div>\n          <div class={`${mergedClsPrefix}-legacy-transfer-list-header__header`}>\n            {props.title}\n          </div>\n          <div class={`${mergedClsPrefix}-legacy-transfer-list-header__extra`}>\n            {source\n              ? srcCheckedValuesRef.value.length\n              : tgtCheckedValuesRef.value.length}\n            /\n            {source ? srcOptsRef.value.length : tgtOptsRef.value.length}\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import { useMemo } from 'vooks'\nimport { defineComponent, h, inject } from 'vue'\nimport { getTitleAttribute } from '../../_utils'\nimport { NCheckbox } from '../../checkbox'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NTransferListItem',\n  props: {\n    source: Boolean,\n    label: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: [String, Number],\n      required: true\n    },\n    disabled: Boolean\n  },\n  setup(props) {\n    const { source } = props\n    const {\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      srcCheckedValuesRef,\n      tgtCheckedValuesRef,\n      handleSrcCheckboxClick,\n      handleTgtCheckboxClick\n    } = inject(transferInjectionKey)!\n    const checkedRef = source\n      ? useMemo(() => srcCheckedValuesRef.value.includes(props.value))\n      : useMemo(() => tgtCheckedValuesRef.value.includes(props.value))\n    const handleClick = source\n      ? () => {\n          if (!props.disabled) {\n            handleSrcCheckboxClick(!checkedRef.value, props.value)\n          }\n        }\n      : () => {\n          if (!props.disabled) {\n            handleTgtCheckboxClick(!checkedRef.value, props.value)\n          }\n        }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef,\n      checked: checkedRef,\n      handleClick\n    }\n  },\n  render() {\n    const { disabled, mergedTheme, mergedClsPrefix, label, checked, source }\n      = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-legacy-transfer-list-item`,\n          disabled && `${mergedClsPrefix}-legacy-transfer-list-item--disabled`,\n          source\n            ? `${mergedClsPrefix}-legacy-transfer-list-item--source`\n            : `${mergedClsPrefix}-legacy-transfer-list-item--target`\n        ]}\n        onClick={this.handleClick}\n      >\n        <div class={`${mergedClsPrefix}-legacy-transfer-list-item__checkbox`}>\n          <NCheckbox\n            theme={mergedTheme.peers.Checkbox}\n            themeOverrides={mergedTheme.peerOverrides.Checkbox}\n            disabled={disabled}\n            checked={checked}\n          />\n        </div>\n        <div\n          class={`${mergedClsPrefix}-legacy-transfer-list-item__label`}\n          title={getTitleAttribute(label)}\n        >\n          {label}\n        </div>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { Option } from './interface'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  inject,\n  ref,\n  Transition,\n  TransitionGroup\n} from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig } from '../../_mixins'\nimport { NEmpty } from '../../empty'\nimport { transferInjectionKey } from './interface'\nimport NTransferListItem from './TransferListItem'\n\nexport default defineComponent({\n  name: 'TransferList',\n  props: {\n    virtualScroll: {\n      type: Boolean,\n      required: true\n    },\n    itemSize: {\n      type: Number,\n      required: true\n    },\n    options: {\n      type: Array as PropType<Option[]>,\n      required: true\n    },\n    disabled: {\n      type: Boolean,\n      required: true\n    },\n    isMounted: {\n      type: Boolean,\n      required: true\n    },\n    isInputing: {\n      type: Boolean,\n      required: true\n    },\n    source: Boolean\n  },\n  setup() {\n    const { mergedThemeRef, mergedClsPrefixRef } = inject(transferInjectionKey)!\n    const { mergedComponentPropsRef } = useConfig()\n    const scrollerInstRef = ref<ScrollbarInst | null>(null)\n    const vlInstRef = ref<VirtualListInst | null>(null)\n    const mergedRenderEmptyRef = computed(() => {\n      return mergedComponentPropsRef?.value?.Transfer?.renderEmpty\n    })\n    function syncVLScroller(): void {\n      scrollerInstRef.value?.sync()\n    }\n    function scrollContainer(): HTMLElement | null {\n      const { value } = vlInstRef\n      if (!value)\n        return null\n      const { listElRef } = value\n      return listElRef\n    }\n    function scrollContent(): HTMLElement | null {\n      const { value } = vlInstRef\n      if (!value)\n        return null\n      const { itemsElRef } = value\n      return itemsElRef\n    }\n    return {\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      // reduce dts: string ref only, type unused in render\n      scrollerInstRef: scrollerInstRef as unknown,\n      vlInstRef: vlInstRef as unknown,\n      syncVLScroller,\n      scrollContainer,\n      scrollContent\n    }\n  },\n  render() {\n    const { mergedTheme, mergedClsPrefix, virtualScroll, syncVLScroller } = this\n    return (\n      <>\n        <NScrollbar\n          ref=\"scrollerInstRef\"\n          theme={mergedTheme.peers.Scrollbar}\n          themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n          container={virtualScroll ? this.scrollContainer : undefined}\n          content={virtualScroll ? this.scrollContent : undefined}\n        >\n          {{\n            default: () =>\n              virtualScroll ? (\n                <VirtualList\n                  ref=\"vlInstRef\"\n                  style={{ height: '100%' }}\n                  class={`${mergedClsPrefix}-legacy-transfer-list-content`}\n                  items={this.options}\n                  itemSize={this.itemSize}\n                  showScrollbar={false}\n                  onResize={syncVLScroller}\n                  onScroll={syncVLScroller}\n                  keyField=\"value\"\n                >\n                  {{\n                    default: ({ item }: { item: Option }) => {\n                      const { source, disabled } = this\n                      return (\n                        <NTransferListItem\n                          source={source}\n                          key={item.value}\n                          value={item.value}\n                          disabled={item.disabled || disabled}\n                          label={item.label}\n                        />\n                      )\n                    }\n                  }}\n                </VirtualList>\n              ) : (\n                <div class={`${mergedClsPrefix}-legacy-transfer-list-content`}>\n                  <TransitionGroup\n                    name=\"item\"\n                    appear={this.isMounted}\n                    css={!this.isInputing}\n                  >\n                    {{\n                      default: () => {\n                        const { source, disabled } = this\n                        return this.options.map(option => (\n                          <NTransferListItem\n                            source={source}\n                            key={option.value}\n                            value={option.value}\n                            disabled={option.disabled || disabled}\n                            label={option.label}\n                          />\n                        ))\n                      }\n                    }}\n                  </TransitionGroup>\n                </div>\n              )\n          }}\n        </NScrollbar>\n        <Transition\n          name=\"fade-in-transition\"\n          appear={this.isMounted}\n          css={!this.isInputing}\n        >\n          {{\n            default: () =>\n              this.options.length\n                ? null\n                : this.mergedRenderEmpty?.() || (\n                  <NEmpty\n                    theme={mergedTheme.peers.Empty}\n                    themeOverrides={mergedTheme.peerOverrides.Empty}\n                  />\n                )\n          }}\n        </Transition>\n      </>\n    )\n  }\n})\n","import type { Ref } from 'vue'\nimport type { CheckedStatus, Filter, Option, OptionValue } from './interface'\nimport { useMemo, useMergedState } from 'vooks'\nimport { computed, ref, toRef } from 'vue'\n\ninterface UseTransferDataProps {\n  defaultValue: OptionValue[] | null\n  value?: OptionValue[] | null\n  options: Option[]\n  filterable: boolean\n  filter: Filter\n}\n\nexport function useTransferData(\n  props: UseTransferDataProps,\n  mergedDisabledRef: Ref<boolean>\n) {\n  const uncontrolledValueRef = ref(props.defaultValue)\n  const controlledValueRef = toRef(props, 'value')\n  const mergedValueRef = useMergedState(\n    controlledValueRef,\n    uncontrolledValueRef\n  )\n  const optMapRef = computed(() => {\n    const map = new Map()\n    ;(props.options || []).forEach(opt => map.set(opt.value, opt))\n    return map\n  })\n  const tgtValueSetRef = computed(() => new Set(mergedValueRef.value || []))\n  const srcOptsRef = computed(() =>\n    props.options.filter(option => !tgtValueSetRef.value.has(option.value))\n  )\n  const tgtOptsRef = computed(() => {\n    const optMap = optMapRef.value\n    return (mergedValueRef.value || []).map(v => optMap.get(v))\n  })\n  const srcPatternRef = ref('')\n  const tgtPatternRef = ref('')\n  const filteredSrcOptsRef = computed(() => {\n    if (!props.filterable)\n      return srcOptsRef.value\n    const { filter } = props\n    return srcOptsRef.value.filter(opt =>\n      filter(srcPatternRef.value, opt, 'source')\n    )\n  })\n  const filteredTgtOptsRef = computed(() => {\n    if (!props.filterable)\n      return tgtOptsRef.value\n    const { filter } = props\n    return tgtOptsRef.value.filter(opt =>\n      filter(tgtPatternRef.value, opt as Option, 'target')\n    )\n  })\n  const avlSrcValueSetRef = computed(\n    () =>\n      new Set(\n        filteredSrcOptsRef.value\n          .filter(opt => !opt.disabled)\n          .map(opt => opt.value)\n      )\n  )\n  const avlTgtValueSetRef = computed(\n    () =>\n      new Set(\n        filteredTgtOptsRef.value\n          .filter(opt => !opt.disabled)\n          .map(opt => opt.value)\n      )\n  )\n  const srcCheckedValuesRef = ref<OptionValue[]>([])\n  const tgtCheckedValuesRef = ref<OptionValue[]>([])\n  const srcCheckedStatusRef = computed<CheckedStatus>(() => {\n    const srcCheckedLength = srcCheckedValuesRef.value.filter(v =>\n      avlSrcValueSetRef.value.has(v)\n    ).length\n    const avlValueCount = avlSrcValueSetRef.value.size\n    if (avlValueCount === 0) {\n      return {\n        checked: false,\n        indeterminate: false,\n        disabled: true\n      }\n    }\n    else if (srcCheckedLength === 0) {\n      return {\n        checked: false,\n        indeterminate: false\n      }\n    }\n    else if (srcCheckedLength === avlValueCount) {\n      return {\n        checked: true,\n        indeterminate: false\n      }\n    }\n    else {\n      return {\n        checked: false,\n        indeterminate: true\n      }\n    }\n  })\n  const tgtCheckedStatusRef = computed(() => {\n    const tgtCheckedLength = tgtCheckedValuesRef.value.filter(v =>\n      avlTgtValueSetRef.value.has(v)\n    ).length\n    const avlValueCount = avlTgtValueSetRef.value.size\n    if (avlValueCount === 0) {\n      return {\n        checked: false,\n        indeterminate: false,\n        disabled: true\n      }\n    }\n    else if (tgtCheckedLength === 0) {\n      return {\n        checked: false,\n        indeterminate: false\n      }\n    }\n    else if (tgtCheckedLength === avlValueCount) {\n      return {\n        checked: true,\n        indeterminate: false\n      }\n    }\n    else {\n      return {\n        checked: false,\n        indeterminate: true\n      }\n    }\n  })\n  const fromButtonDisabledRef = useMemo(() => {\n    if (mergedDisabledRef.value)\n      return true\n    return tgtCheckedValuesRef.value.length === 0\n  })\n  const toButtonDisabledRef = useMemo(() => {\n    if (mergedDisabledRef.value)\n      return true\n    return srcCheckedValuesRef.value.length === 0\n  })\n  const isInputingRef = ref(false)\n  function handleInputFocus(): void {\n    isInputingRef.value = true\n  }\n  function handleInputBlur(): void {\n    isInputingRef.value = false\n  }\n  function handleSrcFilterUpdateValue(value: string | null): void {\n    srcPatternRef.value = value ?? ''\n  }\n  function handleTgtFilterUpdateValue(value: string | null): void {\n    tgtPatternRef.value = value ?? ''\n  }\n  return {\n    uncontrolledValue: uncontrolledValueRef,\n    mergedValue: mergedValueRef,\n    avlSrcValueSet: avlSrcValueSetRef,\n    avlTgtValueSet: avlTgtValueSetRef,\n    tgtOpts: tgtOptsRef,\n    srcOpts: srcOptsRef,\n    filteredSrcOpts: filteredSrcOptsRef,\n    filteredTgtOpts: filteredTgtOptsRef,\n    srcCheckedValues: srcCheckedValuesRef,\n    tgtCheckedValues: tgtCheckedValuesRef,\n    srcCheckedStatus: srcCheckedStatusRef,\n    tgtCheckedStatus: tgtCheckedStatusRef,\n    srcPattern: srcPatternRef,\n    tgtPattern: tgtPatternRef,\n    isInputing: isInputingRef,\n    fromButtonDisabled: fromButtonDisabledRef,\n    toButtonDisabled: toButtonDisabledRef,\n    handleInputFocus,\n    handleInputBlur,\n    handleTgtFilterUpdateValue,\n    handleSrcFilterUpdateValue\n  }\n}\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type {\n  LegacyTransferTheme,\n  LegacyTransferThemeOverrides\n} from '../styles'\nimport type { Filter, OnUpdateValue, Option, OptionValue } from './interface'\nimport { depx } from 'seemly'\nimport { useIsMounted } from 'vooks'\nimport { computed, defineComponent, h, provide, watchEffect } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { ChevronLeftIcon, ChevronRightIcon } from '../../_internal/icons'\nimport { useConfig, useFormItem, useLocale, useTheme } from '../../_mixins'\nimport { call, warnOnce } from '../../_utils'\nimport { createKey } from '../../_utils/cssr'\nimport { NButton } from '../../button'\nimport { legacyTransferLight } from '../styles'\nimport { transferInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport NTransferFilter from './TransferFilter'\nimport NTransferHeader from './TransferHeader'\nimport NTransferList from './TransferList'\nimport { useTransferData } from './use-transfer-data'\n\nexport const transferProps = {\n  ...(useTheme.props as ThemeProps<\n    LegacyTransferTheme,\n    LegacyTransferThemeOverrides\n  >),\n  value: Array as PropType<OptionValue[] | null>,\n  defaultValue: {\n    type: Array as PropType<OptionValue[] | null>,\n    default: null\n  },\n  options: {\n    type: Array as PropType<Option[]>,\n    default: () => []\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  virtualScroll: Boolean,\n  sourceTitle: String,\n  targetTitle: String,\n  filterable: Boolean,\n  sourceFilterPlaceholder: String,\n  targetFilterPlaceholder: String,\n  filter: {\n    type: Function as PropType<Filter>,\n    default: (pattern: string, option: Option) => {\n      if (!pattern)\n        return true\n      return ~`${option.label}`\n        .toLowerCase()\n        .indexOf(`${pattern}`.toLowerCase())\n    }\n  },\n  size: String as PropType<'small' | 'medium' | 'large'>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type TransferProps = ExtractPublicPropTypes<typeof transferProps>\n\nexport default defineComponent({\n  name: 'LegacyTransfer',\n  props: transferProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'legacy-transfer',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'LegacyTransfer',\n      '-legacy-transfer',\n      style,\n      legacyTransferLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const formItem = useFormItem(props)\n    const { mergedSizeRef, mergedDisabledRef } = formItem\n    const itemSizeRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        self: { [createKey('itemHeight', size)]: itemSize }\n      } = themeRef.value\n      return depx(itemSize)\n    })\n    const {\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      avlSrcValueSet: avlSrcValueSetRef,\n      avlTgtValueSet: avlTgtValueSetRef,\n      tgtOpts: tgtOptsRef,\n      srcOpts: srcOptsRef,\n      filteredSrcOpts: filteredSrcOptsRef,\n      filteredTgtOpts: filteredTgtOptsRef,\n      srcCheckedValues: srcCheckedValuesRef,\n      tgtCheckedValues: tgtCheckedValuesRef,\n      srcCheckedStatus: srcCheckedStatusRef,\n      tgtCheckedStatus: tgtCheckedStatusRef,\n      srcPattern: srcPatternRef,\n      tgtPattern: tgtPatternRef,\n      isInputing: isInputingRef,\n      fromButtonDisabled: fromButtonDisabledRef,\n      toButtonDisabled: toButtonDisabledRef,\n      handleInputFocus,\n      handleInputBlur,\n      handleTgtFilterUpdateValue,\n      handleSrcFilterUpdateValue\n    } = useTransferData(props, mergedDisabledRef)\n    function doUpdateValue(value: OptionValue[]): void {\n      const {\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateValue)\n        call(onUpdateValue, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue, value)\n      if (onChange)\n        call(onChange, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function handleSrcHeaderCheck(): void {\n      const {\n        value: { checked, indeterminate }\n      } = srcCheckedStatusRef\n      if (indeterminate || checked) {\n        srcCheckedValuesRef.value = []\n      }\n      else {\n        srcCheckedValuesRef.value = Array.from(avlSrcValueSetRef.value)\n      }\n    }\n    function handleTgtHeaderCheck(): void {\n      const {\n        value: { checked, indeterminate }\n      } = tgtCheckedStatusRef\n      if (indeterminate || checked) {\n        tgtCheckedValuesRef.value = []\n      }\n      else {\n        tgtCheckedValuesRef.value = Array.from(avlTgtValueSetRef.value)\n      }\n    }\n    function handleTgtCheckboxClick(\n      checked: boolean,\n      optionValue: OptionValue\n    ): void {\n      if (checked) {\n        tgtCheckedValuesRef.value.push(optionValue)\n      }\n      else {\n        const index = tgtCheckedValuesRef.value.findIndex(\n          v => v === optionValue\n        )\n        if (~index) {\n          tgtCheckedValuesRef.value.splice(index, 1)\n        }\n      }\n    }\n    function handleSrcCheckboxClick(\n      checked: boolean,\n      optionValue: OptionValue\n    ): void {\n      if (checked) {\n        srcCheckedValuesRef.value.push(optionValue)\n      }\n      else {\n        const index = srcCheckedValuesRef.value.findIndex(\n          v => v === optionValue\n        )\n        if (~index) {\n          srcCheckedValuesRef.value.splice(index, 1)\n        }\n      }\n    }\n    function handleToTgtClick(): void {\n      doUpdateValue(\n        srcCheckedValuesRef.value.concat(mergedValueRef.value || [])\n      )\n      srcCheckedValuesRef.value = []\n    }\n    function handleToSrcClick(): void {\n      const tgtCheckedValueSet = new Set(tgtCheckedValuesRef.value)\n      doUpdateValue(\n        (mergedValueRef.value || []).filter(v => !tgtCheckedValueSet.has(v))\n      )\n      tgtCheckedValuesRef.value = []\n    }\n    provide(transferInjectionKey, {\n      mergedClsPrefixRef,\n      mergedSizeRef,\n      disabledRef: mergedDisabledRef,\n      mergedThemeRef: themeRef,\n      srcCheckedValuesRef,\n      tgtCheckedValuesRef,\n      srcOptsRef,\n      tgtOptsRef,\n      srcCheckedStatusRef,\n      tgtCheckedStatusRef,\n      handleSrcCheckboxClick,\n      handleTgtCheckboxClick\n    })\n    const { localeRef } = useLocale('LegacyTransfer')\n    return {\n      locale: localeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedDisabled: mergedDisabledRef,\n      itemSize: itemSizeRef,\n      isMounted: useIsMounted(),\n      isInputing: isInputingRef,\n      mergedTheme: themeRef,\n      filteredSrcOpts: filteredSrcOptsRef,\n      filteredTgtOpts: filteredTgtOptsRef,\n      srcPattern: srcPatternRef,\n      tgtPattern: tgtPatternRef,\n      toButtonDisabled: toButtonDisabledRef,\n      fromButtonDisabled: fromButtonDisabledRef,\n      handleSrcHeaderCheck,\n      handleTgtHeaderCheck,\n      handleToSrcClick,\n      handleToTgtClick,\n      handleInputFocus,\n      handleInputBlur,\n      handleTgtFilterUpdateValue,\n      handleSrcFilterUpdateValue,\n      cssVars: computed(() => {\n        const { value: size } = mergedSizeRef\n        const {\n          common: {\n            cubicBezierEaseInOut,\n            cubicBezierEaseIn,\n            cubicBezierEaseOut\n          },\n          self: {\n            width,\n            borderRadius,\n            borderColor,\n            listColor,\n            headerColor,\n            titleTextColor,\n            titleTextColorDisabled,\n            extraTextColor,\n            filterDividerColor,\n            itemTextColor,\n            itemColorPending,\n            itemTextColorDisabled,\n            extraFontSize,\n            titleFontWeight,\n            iconColor,\n            iconColorDisabled,\n            [createKey('fontSize', size)]: fontSize,\n            [createKey('itemHeight', size)]: itemHeight\n          }\n        } = themeRef.value\n        return {\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-bezier-ease-in': cubicBezierEaseIn,\n          '--n-bezier-ease-out': cubicBezierEaseOut,\n          '--n-border-color': borderColor,\n          '--n-border-radius': borderRadius,\n          '--n-extra-font-size': extraFontSize,\n          '--n-filter-divider-color': filterDividerColor,\n          '--n-font-size': fontSize,\n          '--n-header-color': headerColor,\n          '--n-header-extra-text-color': extraTextColor,\n          '--n-header-font-weight': titleFontWeight,\n          '--n-header-text-color': titleTextColor,\n          '--n-header-text-color-disabled': titleTextColorDisabled,\n          '--n-item-color-pending': itemColorPending,\n          '--n-item-height': itemHeight,\n          '--n-item-text-color': itemTextColor,\n          '--n-item-text-color-disabled': itemTextColorDisabled,\n          '--n-list-color': listColor,\n          '--n-width': width,\n          '--n-icon-color': iconColor,\n          '--n-icon-color-disabled': iconColorDisabled\n        }\n      }) as Ref<CSSProperties>\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-legacy-transfer`,\n          this.mergedDisabled && `${mergedClsPrefix}-legacy-transfer--disabled`,\n          this.filterable && `${mergedClsPrefix}-legacy-transfer--filterable`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-legacy-transfer-list`}>\n          <NTransferHeader\n            source\n            onChange={this.handleSrcHeaderCheck}\n            title={this.sourceTitle || this.locale.sourceTitle}\n          />\n          <div class={`${mergedClsPrefix}-legacy-transfer-list-body`}>\n            {this.filterable ? (\n              <NTransferFilter\n                onUpdateValue={this.handleSrcFilterUpdateValue}\n                value={this.srcPattern}\n                disabled={this.mergedDisabled}\n                placeholder={this.sourceFilterPlaceholder}\n                onFocus={this.handleInputFocus}\n                onBlur={this.handleInputBlur}\n              />\n            ) : null}\n            <div\n              class={`${mergedClsPrefix}-legacy-transfer-list-flex-container`}\n            >\n              <NTransferList\n                source\n                options={this.filteredSrcOpts}\n                disabled={this.mergedDisabled}\n                virtualScroll={this.virtualScroll}\n                isMounted={this.isMounted}\n                isInputing={this.isInputing}\n                itemSize={this.itemSize}\n              />\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-legacy-transfer-list__border`} />\n        </div>\n        <div class={`${mergedClsPrefix}-legacy-transfer-gap`}>\n          <NButton\n            disabled={this.toButtonDisabled || this.mergedDisabled}\n            theme={this.mergedTheme.peers.Button}\n            themeOverrides={this.mergedTheme.peerOverrides.Button}\n            onClick={this.handleToTgtClick}\n          >\n            {{\n              icon: () => (\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{ default: () => <ChevronRightIcon /> }}\n                </NBaseIcon>\n              )\n            }}\n          </NButton>\n          <NButton\n            disabled={this.fromButtonDisabled || this.mergedDisabled}\n            theme={this.mergedTheme.peers.Button}\n            themeOverrides={this.mergedTheme.peerOverrides.Button}\n            onClick={this.handleToSrcClick}\n          >\n            {{\n              icon: () => (\n                <NBaseIcon clsPrefix={mergedClsPrefix}>\n                  {{ default: () => <ChevronLeftIcon /> }}\n                </NBaseIcon>\n              )\n            }}\n          </NButton>\n        </div>\n        <div class={`${mergedClsPrefix}-legacy-transfer-list`}>\n          <NTransferHeader\n            onChange={this.handleTgtHeaderCheck}\n            title={this.targetTitle || this.locale.targetTitle}\n          />\n          <div class={`${mergedClsPrefix}-legacy-transfer-list-body`}>\n            {this.filterable ? (\n              <NTransferFilter\n                onUpdateValue={this.handleTgtFilterUpdateValue}\n                value={this.tgtPattern}\n                disabled={this.mergedDisabled}\n                placeholder={this.targetFilterPlaceholder}\n                onFocus={this.handleInputFocus}\n                onBlur={this.handleInputBlur}\n              />\n            ) : null}\n            <div\n              class={`${mergedClsPrefix}-legacy-transfer-list-flex-container`}\n            >\n              <NTransferList\n                options={this.filteredTgtOpts}\n                disabled={this.mergedDisabled}\n                virtualScroll={this.virtualScroll}\n                isMounted={this.isMounted}\n                isInputing={this.isInputing}\n                itemSize={this.itemSize}\n              />\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-legacy-transfer-list__border`} />\n        </div>\n      </div>\n    )\n  }\n})\n","import { c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-bezier\n// --n-text-color\n// --n-color\n// --n-color-hover\n// --n-border-radius\n// --n-border-color\n// --n-border-color-modal\n// --n-border-color-popover\n// --n-color-modal\n// --n-color-popover\n// --n-color-hover-modal\n// --n-color-hover-popover\nexport default c([\n  cB('list', `\n    --n-merged-border-color: var(--n-border-color);\n    --n-merged-color: var(--n-color);\n    --n-merged-color-hover: var(--n-color-hover);\n    margin: 0;\n    font-size: var(--n-font-size);\n    transition:\n      background-color .3s var(--n-bezier),\n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n    padding: 0;\n    list-style-type: none;\n    color: var(--n-text-color);\n    background-color: var(--n-merged-color);\n  `, [\n    cM('show-divider', [\n      cB('list-item', [\n        c('&:not(:last-child)', [\n          cE('divider', `\n            background-color: var(--n-merged-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('clickable', [\n      cB('list-item', `\n        cursor: pointer;\n      `)\n    ]),\n    cM('bordered', `\n      border: 1px solid var(--n-merged-border-color);\n      border-radius: var(--n-border-radius);\n    `),\n    cM('hoverable', [\n      cB('list-item', `\n        border-radius: var(--n-border-radius);\n      `, [\n        c('&:hover', `\n          background-color: var(--n-merged-color-hover);\n        `, [\n          cE('divider', `\n            background-color: transparent;\n          `)\n        ])\n      ])\n    ]),\n    cM('bordered, hoverable', [\n      cB('list-item', `\n        padding: 12px 20px;\n      `),\n      cE('header, footer', `\n        padding: 12px 20px;\n      `)\n    ]),\n    cE('header, footer', `\n      padding: 12px 0;\n      box-sizing: border-box;\n      transition: border-color .3s var(--n-bezier);\n    `, [\n      c('&:not(:last-child)', `\n        border-bottom: 1px solid var(--n-merged-border-color);\n      `)\n    ]),\n    cB('list-item', `\n      position: relative;\n      padding: 12px 0;    \n      box-sizing: border-box;\n      display: flex;\n      flex-wrap: nowrap;\n      align-items: center;\n      transition:\n        background-color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier);\n    `, [\n      cE('prefix', `\n        margin-right: 20px;\n        flex: 0;\n      `),\n      cE('suffix', `\n        margin-left: 20px;\n        flex: 0;\n      `),\n      cE('main', `\n        flex: 1;\n      `),\n      cE('divider', `\n        height: 1px;\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        background-color: transparent;\n        transition: background-color .3s var(--n-bezier);\n        pointer-events: none;\n      `)\n    ])\n  ]),\n  insideModal(\n    cB('list', `\n      --n-merged-color-hover: var(--n-color-hover-modal);\n      --n-merged-color: var(--n-color-modal);\n      --n-merged-border-color: var(--n-border-color-modal);\n    `)\n  ),\n  insidePopover(\n    cB('list', `\n      --n-merged-color-hover: var(--n-color-hover-popover);\n      --n-merged-color: var(--n-color-popover);\n      --n-merged-border-color: var(--n-border-color-popover);\n    `)\n  )\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ListTheme, ListThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, provide, toRef } from 'vue'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport { createInjectionKey } from '../../_utils'\nimport { listLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const listProps = {\n  ...(useTheme.props as ThemeProps<ListTheme, ListThemeOverrides>),\n  size: {\n    type: String as PropType<'small' | 'medium' | 'large'>,\n    default: 'medium'\n  },\n  bordered: Boolean,\n  clickable: Boolean,\n  hoverable: Boolean,\n  showDivider: {\n    type: Boolean,\n    default: true\n  }\n}\n\nexport type ListProps = ExtractPublicPropTypes<typeof listProps>\n\nexport interface ListSlots {\n  default?: () => VNode[]\n  footer?: () => VNode[]\n  header?: () => VNode[]\n}\n\ninterface ListInjection {\n  showDividerRef: Ref<boolean>\n  mergedClsPrefixRef: Ref<string>\n}\n\nexport const listInjectionKey = createInjectionKey<ListInjection>('n-list')\n\nexport default defineComponent({\n  name: 'List',\n  props: listProps,\n  slots: Object as SlotsType<ListSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const rtlEnabledRef = useRtl('List', mergedRtlRef, mergedClsPrefixRef)\n    const themeRef = useTheme(\n      'List',\n      '-list',\n      style,\n      listLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(listInjectionKey, {\n      showDividerRef: toRef(props, 'showDivider'),\n      mergedClsPrefixRef\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontSize,\n          textColor,\n          color,\n          colorModal,\n          colorPopover,\n          borderColor,\n          borderColorModal,\n          borderColorPopover,\n          borderRadius,\n          colorHover,\n          colorHoverModal,\n          colorHoverPopover\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-color': color,\n        '--n-border-radius': borderRadius,\n        '--n-border-color': borderColor,\n        '--n-border-color-modal': borderColorModal,\n        '--n-border-color-popover': borderColorPopover,\n        '--n-color-modal': colorModal,\n        '--n-color-popover': colorPopover,\n        '--n-color-hover': colorHover,\n        '--n-color-hover-modal': colorHoverModal,\n        '--n-color-hover-popover': colorHoverPopover\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('list', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { $slots, mergedClsPrefix, onRender } = this\n    onRender?.()\n    return (\n      <ul\n        class={[\n          `${mergedClsPrefix}-list`,\n          this.rtlEnabled && `${mergedClsPrefix}-list--rtl`,\n          this.bordered && `${mergedClsPrefix}-list--bordered`,\n          this.showDivider && `${mergedClsPrefix}-list--show-divider`,\n          this.hoverable && `${mergedClsPrefix}-list--hoverable`,\n          this.clickable && `${mergedClsPrefix}-list--clickable`,\n          this.themeClass\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {$slots.header ? (\n          <div class={`${mergedClsPrefix}-list__header`}>{$slots.header()}</div>\n        ) : null}\n        {$slots.default?.()}\n        {$slots.footer ? (\n          <div class={`${mergedClsPrefix}-list__footer`}>{$slots.footer()}</div>\n        ) : null}\n      </ul>\n    )\n  }\n})\n","import type { SlotsType, VNode } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport { listInjectionKey } from './List'\n\nexport interface ListItemSlots {\n  default?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'ListItem',\n  slots: Object as SlotsType<ListItemSlots>,\n  setup() {\n    const listInjection = inject(listInjectionKey, null)\n    if (!listInjection) {\n      throwError('list-item', '`n-list-item` must be placed in `n-list`.')\n    }\n    return {\n      showDivider: listInjection.showDividerRef,\n      mergedClsPrefix: listInjection.mergedClsPrefixRef\n    }\n  },\n  render() {\n    const { $slots, mergedClsPrefix } = this\n    return (\n      <li class={`${mergedClsPrefix}-list-item`}>\n        {$slots.prefix ? (\n          <div class={`${mergedClsPrefix}-list-item__prefix`}>\n            {$slots.prefix()}\n          </div>\n        ) : null}\n        {$slots.default ? (\n          <div class={`${mergedClsPrefix}-list-item__main`}>\n            {$slots.default()}\n          </div>\n        ) : null}\n        {$slots.suffix ? (\n          <div class={`${mergedClsPrefix}-list-item__suffix`}>\n            {$slots.suffix()}\n          </div>\n        ) : null}\n        {this.showDivider && (\n          <div class={`${mergedClsPrefix}-list-item__divider`} />\n        )}\n      </li>\n    )\n  }\n})\n","import type { LogInjection } from './Log'\nimport { createInjectionKey } from '../../_utils'\n\nexport const logInjectionKey = createInjectionKey<LogInjection>('n-log')\n","import {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  onMounted,\n  ref,\n  toRef,\n  watch\n} from 'vue'\nimport { logInjectionKey } from './context'\n\nexport default defineComponent({\n  props: {\n    line: {\n      type: String,\n      default: ''\n    }\n  },\n  setup(props) {\n    const { trimRef, highlightRef, languageRef, mergedHljsRef }\n      = inject(logInjectionKey)!\n    const selfRef = ref<HTMLElement | null>(null)\n    const maybeTrimmedLinesRef = computed(() => {\n      return trimRef.value ? props.line.trim() : props.line\n    })\n    function setInnerHTML(): void {\n      if (selfRef.value) {\n        selfRef.value.innerHTML = generateCodeHTML(\n          languageRef.value,\n          maybeTrimmedLinesRef.value\n        )\n      }\n    }\n    function generateCodeHTML(\n      language: string | undefined,\n      code: string\n    ): string {\n      const { value: hljs } = mergedHljsRef\n      if (hljs) {\n        if (language && hljs.getLanguage(language)) {\n          return hljs.highlight(code, { language }).value\n        }\n      }\n      return code\n    }\n    onMounted(() => {\n      if (highlightRef.value) {\n        setInnerHTML()\n      }\n    })\n    watch(toRef(props, 'line'), () => {\n      if (highlightRef.value) {\n        setInnerHTML()\n      }\n    })\n    return {\n      highlight: highlightRef,\n      selfRef,\n      maybeTrimmedLines: maybeTrimmedLinesRef\n    }\n  },\n  render() {\n    const { highlight, maybeTrimmedLines } = this\n    return <pre ref=\"selfRef\">{highlight ? null : maybeTrimmedLines}</pre>\n  }\n})\n","import type { PropType } from 'vue'\nimport type { LogSpinProps } from './public-types'\nimport { defineComponent, h } from 'vue'\nimport { NBaseLoading } from '../../_internal'\nimport { useLocale } from '../../_mixins'\n\nexport default defineComponent({\n  name: 'LogLoader',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    spinProps: Object as PropType<LogSpinProps>\n  },\n  setup() {\n    return {\n      locale: useLocale('Log').localeRef\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <div class={`${clsPrefix}-log-loader`}>\n        <NBaseLoading\n          clsPrefix={clsPrefix}\n          strokeWidth={24}\n          scale={0.85}\n          {...this.spinProps}\n        />\n        <span class={`${clsPrefix}-log-loader__content`}>\n          {this.locale.loading}\n        </span>\n      </div>\n    )\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-loading-color\n// --n-loader-border\n// --n-loader-color\n// --n-loader-text-color\n// --n-loader-font-size\n// --n-loading-color\nexport default cB('log', `\n  position: relative;\n  box-sizing: border-box;\n  transition: border-color .3s var(--n-bezier);\n`, [\n  c('pre', `\n    white-space: pre-wrap;\n    word-break: break-word;\n    margin: 0;\n  `),\n  cB('log-loader', `\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n    box-sizing: border-box;\n    position: absolute;\n    right: 16px;\n    top: 8px;\n    height: 34px;\n    border-radius: 17px;\n    line-height: 34px;\n    white-space: nowrap;\n    overflow: hidden;\n    border: var(--n-loader-border);\n    color: var(--n-loader-text-color);\n    background-color: var(--n-loader-color);\n    font-size: var(--n-loader-font-size);\n  `, [\n    fadeInScaleUpTransition(),\n    cE('content', `\n      display: inline-block;\n      vertical-align: bottom;\n      line-height: 34px;\n      padding-left: 40px;\n      padding-right: 20px;\n      white-space: nowrap;\n    `),\n    cB('base-loading', `\n      color: var(--n-loading-color);\n      position: absolute;\n      left: 12px;\n      top: calc(50% - 10px);\n      font-size: 20px;\n      width: 20px;\n      height: 20px;\n      display: inline-block;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { Hljs, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { LogTheme, LogThemeOverrides } from '../styles'\nimport type { LogSpinProps } from './public-types'\nimport { throttle as _throttle } from 'lodash-es'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  provide,\n  ref,\n  toRef,\n  Transition\n} from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig, useHljs, useTheme, useThemeClass } from '../../_mixins'\nimport { warn } from '../../_utils'\nimport { NCode } from '../../code'\nimport { logLight } from '../styles'\nimport { logInjectionKey } from './context'\nimport NLogLine from './LogLine'\nimport NLogLoader from './LogLoader'\nimport style from './styles/index.cssr'\n\n// Fix vue-tsc error\nconst throttle: <T>(f: T, t: number) => T = _throttle\n\nexport interface LogInjection {\n  trimRef: Ref<boolean>\n  languageRef: Ref<string | undefined>\n  highlightRef: Ref<boolean>\n  mergedHljsRef: Ref<Hljs | undefined>\n}\n\nexport interface LogInst {\n  scrollTo: ((options: {\n    silent?: boolean\n    position: 'top' | 'bottom'\n  }) => void)\n  & ((options: { silent?: boolean, top: number }) => void)\n}\n\nexport const logProps = {\n  ...(useTheme.props as ThemeProps<LogTheme, LogThemeOverrides>),\n  loading: Boolean,\n  trim: Boolean,\n  log: String,\n  fontSize: {\n    type: Number,\n    default: 14\n  },\n  lines: {\n    type: Array as PropType<string[]>,\n    default: () => []\n  },\n  lineHeight: {\n    type: Number,\n    default: 1.25\n  },\n  language: String,\n  rows: {\n    type: Number,\n    default: 15\n  },\n  offsetTop: {\n    type: Number,\n    default: 0\n  },\n  offsetBottom: {\n    type: Number,\n    default: 0\n  },\n  hljs: Object,\n  spinProps: Object as PropType<LogSpinProps>,\n  onReachTop: Function as PropType<() => void>,\n  onReachBottom: Function as PropType<() => void>,\n  onRequireMore: Function as PropType<(from: 'top' | 'bottom') => void>\n} as const\n\nexport type LogProps = ExtractPublicPropTypes<typeof logProps>\n\nexport default defineComponent({\n  name: 'Log',\n  props: logProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const silentRef = ref(false)\n    const highlightRef = computed(() => {\n      return props.language !== undefined\n    })\n    const styleHeightRef = computed(() => {\n      return `calc(${Math.round(\n        props.rows * props.lineHeight * props.fontSize\n      )}px)`\n    })\n    const mergedLinesRef = computed(() => {\n      const { log } = props\n      if (log) {\n        return log.split('\\n')\n      }\n      return props.lines\n    })\n    const scrollbarRef = ref<ScrollbarInst | null>(null)\n    const themeRef = useTheme(\n      'Log',\n      '-log',\n      style,\n      logLight,\n      props,\n      mergedClsPrefixRef\n    )\n    function handleScroll(e: Event): void {\n      const container = e.target as HTMLElement\n      const content = container.firstElementChild as HTMLElement\n      if (silentRef.value) {\n        void nextTick(() => {\n          silentRef.value = false\n        })\n        return\n      }\n      const containerHeight = container.offsetHeight\n      const containerScrollTop = container.scrollTop\n      const contentHeight = content.offsetHeight\n      const scrollTop = containerScrollTop\n      const scrollBottom = contentHeight - containerScrollTop - containerHeight\n      if (scrollTop <= props.offsetTop) {\n        const { onReachTop, onRequireMore } = props\n        if (onRequireMore)\n          onRequireMore('top')\n        if (onReachTop)\n          onReachTop()\n      }\n      if (scrollBottom <= props.offsetBottom) {\n        const { onReachBottom, onRequireMore } = props\n        if (onRequireMore)\n          onRequireMore('bottom')\n        if (onReachBottom)\n          onReachBottom()\n      }\n    }\n    const handleWheel: (e: WheelEvent) => void = throttle(_handleWheel, 300)\n    function _handleWheel(e: WheelEvent): void {\n      if (silentRef.value) {\n        void nextTick(() => {\n          silentRef.value = false\n        })\n        return\n      }\n      if (scrollbarRef.value) {\n        const { containerRef, contentRef } = scrollbarRef.value\n        if (containerRef && contentRef) {\n          const containerHeight = containerRef.offsetHeight\n          const containerScrollTop = containerRef.scrollTop\n          const contentHeight = contentRef.offsetHeight\n          const scrollTop = containerScrollTop\n          const scrollBottom\n            = contentHeight - containerScrollTop - containerHeight\n          const deltaY = e.deltaY\n          if (scrollTop === 0 && deltaY < 0) {\n            const { onRequireMore } = props\n            if (onRequireMore)\n              onRequireMore('top')\n          }\n          if (scrollBottom <= 0 && deltaY > 0) {\n            const { onRequireMore } = props\n            if (onRequireMore)\n              onRequireMore('bottom')\n          }\n        }\n      }\n    }\n    function scrollTo(options: {\n      silent?: boolean\n      position: 'top' | 'bottom'\n    }): void\n    function scrollTo(options: { silent?: boolean, top: number }): void\n    function scrollTo(options: {\n      silent?: boolean\n      top?: number\n      position?: 'top' | 'bottom'\n    }): void {\n      const { value: scrollbarInst } = scrollbarRef\n      if (!scrollbarInst)\n        return\n      const { silent, top, position } = options\n      if (silent) {\n        silentRef.value = true\n      }\n      if (top !== undefined) {\n        scrollbarInst.scrollTo({ left: 0, top })\n      }\n      else if (position === 'bottom' || position === 'top') {\n        scrollbarInst.scrollTo({ position })\n      }\n    }\n    // deprecated\n    function scrollToTop(silent = false): void {\n      warn(\n        'log',\n        '`scrollToTop` is deprecated, please use `scrollTo({ position: \\'top\\'})` instead.'\n      )\n      scrollTo({\n        position: 'top',\n        silent\n      })\n    }\n    function scrollToBottom(silent = false): void {\n      warn(\n        'log',\n        '`scrollToTop` is deprecated, please use `scrollTo({ position: \\'bottom\\'})` instead.'\n      )\n      scrollTo({\n        position: 'bottom',\n        silent\n      })\n    }\n    provide(logInjectionKey, {\n      languageRef: toRef(props, 'language'),\n      mergedHljsRef: useHljs(props, highlightRef),\n      trimRef: toRef(props, 'trim'),\n      highlightRef\n    })\n\n    const exportedMethods: LogInst = {\n      scrollTo\n    }\n\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          loaderFontSize,\n          loaderTextColor,\n          loaderColor,\n          loaderBorder,\n          loadingColor\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-loader-font-size': loaderFontSize,\n        '--n-loader-border': loaderBorder,\n        '--n-loader-color': loaderColor,\n        '--n-loader-text-color': loaderTextColor,\n        '--n-loading-color': loadingColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('log', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      ...exportedMethods,\n      mergedClsPrefix: mergedClsPrefixRef,\n      // reduce dts: string ref only, type unused in render\n      scrollbarRef: scrollbarRef as unknown,\n      mergedTheme: themeRef,\n      styleHeight: styleHeightRef,\n      mergedLines: mergedLinesRef,\n      scrollToTop,\n      scrollToBottom,\n      handleWheel,\n      handleScroll,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, mergedTheme, onRender } = this\n    onRender?.()\n    return h(\n      'div',\n      {\n        class: [`${mergedClsPrefix}-log`, this.themeClass],\n        style: [\n          {\n            lineHeight: this.lineHeight,\n            height: this.styleHeight\n          },\n          this.cssVars\n        ],\n        onWheelPassive: this.handleWheel\n      },\n      [\n        <NScrollbar\n          ref=\"scrollbarRef\"\n          theme={mergedTheme.peers.Scrollbar}\n          themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n          onScroll={this.handleScroll}\n        >\n          {{\n            default: () => (\n              <NCode\n                internalNoHighlight\n                internalFontSize={this.fontSize}\n                theme={mergedTheme.peers.Code}\n                themeOverrides={mergedTheme.peerOverrides.Code}\n              >\n                {{\n                  default: () =>\n                    this.mergedLines.map((line, index) => {\n                      return <NLogLine key={index} line={line} />\n                    })\n                }}\n              </NCode>\n            )\n          }}\n        </NScrollbar>,\n        <Transition name=\"fade-in-scale-up-transition\">\n          {{\n            default: () =>\n              this.loading ? (\n                <NLogLoader\n                  clsPrefix={mergedClsPrefix}\n                  spinProps={this.spinProps}\n                />\n              ) : null\n          }}\n        </Transition>\n      ]\n    )\n  }\n})\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport function self() {\n  return {}\n}\n\nexport interface MarqueeThemeVars extends ReturnType<typeof self> {}\n\nconst marqueeLight: MarqueeTheme = {\n  name: 'Marquee',\n  common: commonLight,\n  self\n}\n\nexport interface MarqueeTheme extends Theme<'Marquee', MarqueeThemeVars> {}\n\nexport interface MarqueeThemeOverrides extends ExtractThemeOverrides<MarqueeTheme> {}\n\nexport default marqueeLight\n","import type { MarqueeTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst marqueeDark: MarqueeTheme = {\n  name: 'Marquee',\n  common: commonDark,\n  self\n}\n\nexport default marqueeDark\n","import type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { MarqueeTheme, MarqueeThemeOverrides } from '../styles'\nimport { useTheme } from '../../_mixins'\n\nexport const marqueeProps = {\n  ...(useTheme.props as ThemeProps<MarqueeTheme, MarqueeThemeOverrides>),\n  autoFill: Boolean,\n  speed: {\n    type: Number,\n    default: 48\n  }\n}\n\nexport type MarqueeProps = ExtractPublicPropTypes<typeof marqueeProps>\n","import { c, cB, cE, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-play\n// --n-direction\n// --n-duration\n// --n-delay\n// --n-iteration-count\n// --n-min-width\nexport default c([\n  cB('marquee', `\n    overflow: hidden;\n    display: flex;\n  `, [\n    cE('group', `\n      flex: 0 0 auto;\n      min-width: var(--n-min-width);\n      z-index: 1;\n      display: flex;\n      flex-direction: row;\n      align-items: center;\n      animation: n-marquee var(--n-duration) linear var(--n-delay) var(--n-iteration-count);\n      animation-play-state: var(--n-play);\n      animation-delay: var(--n-delay);\n      animation-direction: var(--n-direction);\n    `),\n    cNotM('auto-fill', [\n      cE('group', `min-width: 100%;`),\n      cE('item', `min-width: 100%;`)\n    ])\n  ]),\n  c('@keyframes n-marquee', {\n    from: {\n      transform: 'translateX(0)'\n    },\n    to: {\n      transform: 'translateX(-100%)'\n    }\n  })\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport { repeat } from 'seemly'\nimport { computed, defineComponent, h, nextTick, ref } from 'vue'\nimport { VResizeObserver } from 'vueuc'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { marqueeLight } from '../styles'\nimport { marqueeProps } from './props'\nimport style from './styles/index.cssr'\n\nexport default defineComponent({\n  name: 'Marquee',\n  props: marqueeProps,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    useTheme(\n      'Marquee',\n      '-marquee',\n      style,\n      marqueeLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const containerElRef = ref<HTMLDivElement | null>(null)\n\n    const contentWidthRef = ref(-1)\n    const containerWidthRef = ref(-1)\n\n    const playStateRef = ref<'paused' | 'running'>('running')\n\n    const repeatCountInOneGroupRef = computed(() => {\n      if (!props.autoFill)\n        return 1\n      const { value: contentWidth } = contentWidthRef\n      const { value: containerWidth } = containerWidthRef\n      if (contentWidth === -1 || containerWidth === -1)\n        return 1\n      return Math.ceil(containerWidthRef.value / contentWidth)\n    })\n\n    const durationRef = computed(() => {\n      const { value: contentWidth } = contentWidthRef\n      if (contentWidth === -1)\n        return 0\n      return (contentWidth * repeatCountInOneGroupRef.value) / props.speed\n    })\n\n    const animationCssVarsRef = computed(() => {\n      return {\n        '--n-play': playStateRef.value,\n        '--n-direction': 'normal',\n        '--n-duration': `${durationRef.value}s`,\n        '--n-delay': '0s',\n        '--n-iteration-count': 'infinite',\n        '--n-min-width': 'auto'\n      }\n    })\n\n    function resetScrollState() {\n      playStateRef.value = 'paused'\n      nextTick().then(() => {\n        void containerElRef.value?.offsetTop\n        playStateRef.value = 'running'\n      })\n    }\n\n    function handleContainerResize(entry: ResizeObserverEntry) {\n      containerWidthRef.value = entry.contentRect.width\n    }\n\n    function handleContentResize(entry: ResizeObserverEntry) {\n      contentWidthRef.value = entry.contentRect.width\n    }\n\n    function handleAnimationIteration() {\n      resetScrollState()\n    }\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      animationCssVars: animationCssVarsRef as Ref<CSSProperties>,\n      containerElRef,\n      repeatCountInOneGroup: repeatCountInOneGroupRef,\n      handleContainerResize,\n      handleContentResize,\n      handleAnimationIteration\n    }\n  },\n  render() {\n    const {\n      $slots,\n      mergedClsPrefix,\n      animationCssVars,\n      repeatCountInOneGroup,\n      handleAnimationIteration\n    } = this\n    const originalNode = (\n      <VResizeObserver onResize={this.handleContentResize}>\n        {{\n          default: () => (\n            <div\n              class={`${mergedClsPrefix}-marquee__item ${mergedClsPrefix}-marquee__original-item`}\n            >\n              {$slots.default?.()}\n            </div>\n          )\n        }}\n      </VResizeObserver>\n    )\n    const mirrorNode = (\n      <div class={`${mergedClsPrefix}-marquee__item`}>{$slots.default?.()}</div>\n    )\n    if (this.autoFill) {\n      return (\n        <VResizeObserver onResize={this.handleContainerResize}>\n          {{\n            default: () => (\n              <div\n                class={`${mergedClsPrefix}-marquee ${mergedClsPrefix}-marquee--auto-fill`}\n                ref=\"containerElRef\"\n                style={animationCssVars}\n              >\n                <div\n                  class={`${mergedClsPrefix}-marquee__group`}\n                  onAnimationiteration={handleAnimationIteration}\n                >\n                  {originalNode}\n                  {repeat(repeatCountInOneGroup - 1, mirrorNode)}\n                </div>\n                <div class={`${mergedClsPrefix}-marquee__group`}>\n                  {repeat(repeatCountInOneGroup, mirrorNode)}\n                </div>\n              </div>\n            )\n          }}\n        </VResizeObserver>\n      )\n    }\n    else {\n      return (\n        <div\n          class={[`${mergedClsPrefix}-marquee`]}\n          ref=\"containerElRef\"\n          style={animationCssVars}\n        >\n          <div\n            class={`${mergedClsPrefix}-marquee__group`}\n            onAnimationiteration={handleAnimationIteration}\n          >\n            {originalNode}\n          </div>\n          <div class={`${mergedClsPrefix}-marquee__group`}>{mirrorNode}</div>\n        </div>\n      )\n    }\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB } from '../../../_utils/cssr'\n\n// --n-menu-box-shadow\nexport default c([\n  cB('mention', 'width: 100%; z-index: auto; position: relative;'),\n  cB('mention-menu', `\n    box-shadow: var(--n-menu-box-shadow);\n  `, [\n    fadeInScaleUpTransition({\n      originalTransition: 'background-color .3s var(--n-bezier), box-shadow .3s var(--n-bezier)'\n    })\n  ])\n])\n","/**\n * The original package is https://www.npmjs.com/package/textarea-caret-ts\n * The original file is https://github.com/TheRealSyler/textarea-caret-position/blob/master/index.ts\n *\n * Here I modified it to make it works when input is scrolled.\n */\n\nimport { isBrowser } from '../../_utils'\n\nexport interface Position {\n  /**\n   * position in pixel.\n   */\n  top: number\n  /**\n   * position in pixel.\n   */\n  left: number\n  /**\n   * if true the position is relative to the inner window size, if false the position is relative to itself.\n   */\n  absolute: boolean\n  /**\n   * height in pixel.\n   */\n  height: number\n}\nexport interface Point {\n  /**\n   * left position.\n   */\n  left: number\n  /**\n   * top position.\n   */\n  top: number\n}\nexport interface Options {\n  /**\n   * Enables debug Mode.\n   */\n  debug?: boolean\n  /**\n   * usesSelection End Instead of selection Start.\n   */\n  useSelectionEnd?: boolean\n  /**\n   * if true the left position gets caped if left >= element Width.\n   */\n  checkWidthOverflow?: boolean\n}\n\n/**\n * Returns the Absolute (relative to the inner window size) position of the caret in the given element.\n * @param element Input (has to be type='text') or Text Area.\n */\nexport function getAbsolutePosition(\n  element: HTMLInputElement | HTMLTextAreaElement\n): Position {\n  const caretRelPost = getRelativePosition(element)\n  return {\n    left:\n      window.scrollX + element.getBoundingClientRect().left + caretRelPost.left,\n    top:\n      window.scrollY + element.getBoundingClientRect().top + caretRelPost.top,\n    absolute: true,\n    height: caretRelPost.height\n  }\n}\n/**\n * Returns the relative position of the caret in the given element.\n * @param element Input (has to be type='text') or Text Area.\n */\nexport function getRelativePosition(\n  element: HTMLInputElement | HTMLTextAreaElement,\n  options: Options = {\n    debug: false,\n    useSelectionEnd: false,\n    checkWidthOverflow: true\n  }\n): Position {\n  const selectionStart\n    = element.selectionStart !== null ? element.selectionStart : 0\n  const selectionEnd = element.selectionEnd !== null ? element.selectionEnd : 0\n  const position = options.useSelectionEnd ? selectionEnd : selectionStart\n  // We'll copy the properties below into the mirror div.\n  // Note that some browsers, such as Firefox, do not concatenate properties\n  // into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n  // so we have to list every single property explicitly.\n  const properties: string[] = [\n    'direction', // RTL support\n    'boxSizing',\n    'width', // on Chrome and IE, exclude the scrollbar, so the mirror div wraps exactly as the textarea does\n    'height',\n    'overflowX',\n    'overflowY', // copy the scrollbar for IE\n    'borderTopWidth',\n    'borderRightWidth',\n    'borderBottomWidth',\n    'borderLeftWidth',\n    'borderStyle',\n    'paddingTop',\n    'paddingRight',\n    'paddingBottom',\n    'paddingLeft',\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n    'fontStyle',\n    'fontVariant',\n    'fontWeight',\n    'fontStretch',\n    'fontSize',\n    'fontSizeAdjust',\n    'lineHeight',\n    'fontFamily',\n    'textAlign',\n    'textTransform',\n    'textIndent',\n    'textDecoration', // might not make a difference, but better be safe\n    'letterSpacing',\n    'wordSpacing',\n    'tabSize',\n    'MozTabSize'\n  ]\n  // Firefox 1.0+\n  const isFirefox = navigator.userAgent.toLowerCase().includes('firefox')\n  if (!isBrowser) {\n    throw new Error(\n      'textarea-caret-position#getCaretPosition should only be called in a browser'\n    )\n  }\n\n  const debug = options?.debug\n  if (debug) {\n    const el = document.querySelector(\n      '#input-textarea-caret-position-mirror-div'\n    )\n    if (el?.parentNode)\n      el.parentNode.removeChild(el)\n  }\n\n  // The mirror div will replicate the textareas style\n  const div = document.createElement('div')\n  div.id = 'input-textarea-caret-position-mirror-div'\n  document.body.appendChild(div)\n\n  const style = div.style\n  const computed = window.getComputedStyle\n    ? window.getComputedStyle(element)\n    : (element as any).currentStyle // currentStyle for IE < 9\n\n  const isInput = element.nodeName === 'INPUT'\n\n  // Default textarea styles\n  style.whiteSpace = isInput ? 'nowrap' : 'pre-wrap'\n  if (!isInput)\n    style.wordWrap = 'break-word' // only for textarea-s\n\n  // Position off-screen\n  style.position = 'absolute' // required to return coordinates properly\n  if (!debug)\n    style.visibility = 'hidden' // not 'display: none' because we want rendering\n\n  // Transfer the element's properties to the div\n  properties.forEach((prop) => {\n    if (isInput && prop === 'lineHeight') {\n      // Special case for <input>s because text is rendered centered and line height may be != height\n      if (computed.boxSizing === 'border-box') {\n        const height = Number.parseInt(computed.height as string)\n        const outerHeight\n          = Number.parseInt(computed.paddingTop as string)\n            + Number.parseInt(computed.paddingBottom as string)\n            + Number.parseInt(computed.borderTopWidth as string)\n            + Number.parseInt(computed.borderBottomWidth as string)\n        const targetHeight\n          = outerHeight + Number.parseInt(computed.lineHeight as string)\n        if (height > targetHeight) {\n          style.lineHeight = `${height - outerHeight}px`\n        }\n        else if (height === targetHeight) {\n          style.lineHeight = computed.lineHeight\n        }\n        else {\n          style.lineHeight = '0'\n        }\n      }\n      else {\n        style.lineHeight = computed.height\n      }\n    }\n    else {\n      style[prop as any] = computed[prop]\n    }\n  })\n\n  if (isFirefox) {\n    // Firefox lies about the overflow property for textareas: https://bugzilla.mozilla.org/show_bug.cgi?id=984275\n    if (element.scrollHeight > Number.parseInt(computed.height as string)) {\n      style.overflowY = 'scroll'\n    }\n  }\n  else {\n    style.overflow = 'hidden' // for Chrome to not render a scrollbar; IE keeps overflowY = 'scroll'\n  }\n\n  div.textContent = element.value.substring(0, position)\n  // The second special handling for input type=\"text\" vs textarea:\n  // spaces need to be replaced with non-breaking spaces - http://stackoverflow.com/a/13402035/1269037\n  if (isInput && div.textContent) {\n    div.textContent = div.textContent.replace(/\\s/g, '\\u00A0')\n  }\n\n  const span = document.createElement('span')\n  // Wrapping must be replicated *exactly*, including when a long word gets\n  // onto the next line, with whitespace at the end of the line before (#7).\n  // The  *only* reliable way to do that is to copy the *entire* rest of the\n  // textareas content into the <span> created at the caret position.\n  // For inputs, just '.' would be enough, but no need to bother.\n  span.textContent = element.value.substring(position) || '.' // || because a completely empty faux span doesn't render at all\n  span.style.position = 'relative'\n  span.style.left = `${-element.scrollLeft}px`\n  span.style.top = `${-element.scrollTop}px`\n  div.appendChild(span)\n\n  const relativePosition = {\n    top: span.offsetTop + Number.parseInt(computed.borderTopWidth as string),\n    left: span.offsetLeft + Number.parseInt(computed.borderLeftWidth as string),\n    absolute: false,\n    // We don't use line-height since it may be too large for position. Eg. 34px\n    // for input\n    height: Number.parseInt(computed.fontSize as string) * 1.5\n  }\n\n  if (debug) {\n    span.style.backgroundColor = '#aaa'\n  }\n  else {\n    document.body.removeChild(div)\n  }\n\n  if (\n    relativePosition.left >= element.clientWidth\n    && options.checkWidthOverflow\n  ) {\n    relativePosition.left = element.clientWidth\n  }\n  return relativePosition\n}\n/**\n * sets the top and left css style of the element based on the absolute position of the caretElements caret,\n * @param offset offsets the position.\n * @param detectBoundary offsets the position if the position would be outside the window.\n * @param returnOnly if true the element position wont be set.\n */\nexport function setElementPositionBasedOnCaret(\n  element: HTMLElement,\n  caretElement: HTMLInputElement | HTMLTextAreaElement,\n  offset: Point = { top: 0, left: 0 },\n  margin: number = 2,\n  detectBoundary = true,\n  returnOnly = false\n): Point {\n  const pos = getAbsolutePosition(caretElement)\n  if (detectBoundary) {\n    pos.left\n      = pos.left + (element.clientWidth + margin) + offset.left\n        > window.scrollX + window.innerWidth\n        ? (pos.left\n            = window.scrollX + window.innerWidth - (element.clientWidth + margin))\n        : (pos.left += offset.left)\n    pos.top\n      = pos.top + (element.clientWidth + margin) + offset.top\n        > window.scrollY + window.innerHeight\n        ? (pos.top -= element.clientWidth + margin)\n        : (pos.top += offset.top)\n  }\n  else {\n    pos.top += offset.top\n    pos.left += offset.left\n  }\n  if (!returnOnly) {\n    element.style.top = `${pos.top}px`\n    element.style.left = `${pos.left}px`\n  }\n  return pos\n}\n","import type { TreeNode } from 'treemate'\nimport type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type { InternalSelectMenuRef, ScrollbarProps } from '../../_internal'\nimport type { RenderLabel } from '../../_internal/select-menu/src/interface'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { InputInst } from '../../input'\nimport type {\n  SelectBaseOption,\n  SelectGroupOption,\n  SelectIgnoredOption\n} from '../../select/src/interface'\nimport type { MentionTheme, MentionThemeOverrides } from '../styles'\nimport type { MentionOption } from './interface'\nimport type { MentionSize } from './public-types'\nimport { createTreeMate } from 'treemate'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  ref,\n  toRef,\n  Transition\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NInternalSelectMenu } from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { call, useAdjustedTo, warn } from '../../_utils'\nimport { NInput } from '../../input'\nimport { mentionLight } from '../styles'\nimport style from './styles/index.cssr'\nimport { getRelativePosition } from './utils'\n\nexport const mentionProps = {\n  ...(useTheme.props as ThemeProps<MentionTheme, MentionThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  autosize: [Boolean, Object] as PropType<\n    boolean | { maxRows?: number, minRows?: number }\n  >,\n  options: {\n    type: Array as PropType<MentionOption[]>,\n    default: []\n  },\n  filter: {\n    type: Function as PropType<\n      (pattern: string, option: MentionOption) => boolean\n    >,\n    default: (pattern: string, option: MentionOption) => {\n      if (!pattern)\n        return true\n      if (typeof option.label === 'string') {\n        return option.label.startsWith(pattern)\n      }\n      if (typeof option.value === 'string') {\n        return option.value.startsWith(pattern)\n      }\n      return false\n    }\n  },\n  type: {\n    type: String as PropType<'text' | 'textarea'>,\n    default: 'text'\n  },\n  separator: {\n    type: String,\n    validator: (separator: string) => {\n      if (separator.length !== 1) {\n        warn('mention', '`separator`\\'s length must be 1.')\n        return false\n      }\n      return true\n    },\n    default: ' '\n  },\n  bordered: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  disabled: Boolean,\n  value: String as PropType<string | null>,\n  defaultValue: {\n    type: String,\n    default: ''\n  },\n  loading: Boolean,\n  prefix: {\n    type: [String, Array] as PropType<string | string[]>,\n    default: '@'\n  },\n  placeholder: {\n    type: String,\n    default: ''\n  },\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  size: String as PropType<MentionSize>,\n  renderLabel: Function as PropType<RenderLabel>,\n  status: String as PropType<FormValidationStatus>,\n  'onUpdate:show': [Array, Function] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateShow: [Array, Function] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  'onUpdate:value': [Array, Function] as PropType<\n    MaybeArray<(value: string) => void>\n  >,\n  onUpdateValue: [Array, Function] as PropType<\n    MaybeArray<(value: string) => void>\n  >,\n  onSearch: Function as PropType<(pattern: string, prefix: string) => void>,\n  onSelect: Function as PropType<\n    (option: MentionOption, prefix: string) => void\n  >,\n  onFocus: Function as PropType<(e: FocusEvent) => void>,\n  onBlur: Function as PropType<(e: FocusEvent) => void>,\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  // private\n  internalDebug: Boolean\n} as const\n\nexport type MentionProps = ExtractPublicPropTypes<typeof mentionProps>\n\nexport interface MentionSlots {\n  default?: () => VNode[]\n  empty?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Mention',\n  props: mentionProps,\n  slots: Object as SlotsType<MentionSlots>,\n  setup(props) {\n    const {\n      namespaceRef,\n      mergedClsPrefixRef,\n      mergedBorderedRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const themeRef = useTheme(\n      'Mention',\n      '-mention',\n      style,\n      mentionLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as MentionSize\n        const configSize = mergedComponentPropsRef?.value?.Mention?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const inputInstRef = ref<InputInst | null>(null)\n    const cursorRef = ref<HTMLElement | null>(null)\n    const followerRef = ref<FollowerInst | null>(null)\n    const wrapperElRef = ref<HTMLElement | null>(null)\n    const partialPatternRef = ref<string>('')\n    let cachedPrefix: string | null = null\n    // cached pattern end is for partial pattern\n    // for example @abc|def\n    // end is after `c`\n    let cachedPartialPatternStart: number | null = null\n    let cachedPartialPatternEnd: number | null = null\n    const filteredOptionsRef = computed(() => {\n      const { value: pattern } = partialPatternRef\n      return props.options.filter(option => props.filter(pattern, option))\n    })\n    const treeMateRef = computed(() => {\n      return createTreeMate<\n        SelectBaseOption,\n        SelectGroupOption,\n        SelectIgnoredOption\n        // We need to cast filteredOptionsRef's type since the render function\n        // is not compatible\n        // MentionOption { value: string, render?: (value: string) => VNodeChild }\n        // SelectOption { value: string | number, render?: (value: string | number) => VNodeChild }\n        // The 2 types are not compatible since `render`s are not compatible\n        // However we know it works...\n      >(filteredOptionsRef.value as any, {\n        getKey: (v) => {\n          return (v as any).value\n        }\n      })\n    })\n    const selectMenuInstRef = ref<InternalSelectMenuRef | null>(null)\n    const showMenuRef = ref(false)\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        self: { menuBoxShadow }\n      } = themeRef.value\n      return {\n        '--n-menu-box-shadow': menuBoxShadow\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('mention', undefined, cssVarsRef, props)\n      : undefined\n    function doUpdateShowMenu(show: boolean): void {\n      if (props.disabled)\n        return\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, show)\n      if (_onUpdateShow)\n        call(_onUpdateShow, show)\n      if (!show) {\n        cachedPrefix = null\n        cachedPartialPatternStart = null\n        cachedPartialPatternEnd = null\n      }\n      showMenuRef.value = show\n    }\n    function doUpdateValue(value: string): void {\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      if (_onUpdateValue) {\n        call(_onUpdateValue, value)\n      }\n      if (onUpdateValue) {\n        call(onUpdateValue, value)\n      }\n      nTriggerFormInput()\n      nTriggerFormChange()\n      uncontrolledValueRef.value = value\n    }\n    function getInputEl(): HTMLInputElement | HTMLTextAreaElement {\n      return props.type === 'text'\n        ? inputInstRef.value!.inputElRef!\n        : inputInstRef.value!.textareaElRef!\n    }\n    function deriveShowMenu(): void {\n      const inputEl = getInputEl()\n      if (document.activeElement !== inputEl) {\n        doUpdateShowMenu(false)\n        return\n      }\n      const { selectionEnd } = inputEl\n      if (selectionEnd === null) {\n        doUpdateShowMenu(false)\n        return\n      }\n      const inputValue = inputEl.value\n      const { separator } = props\n      const { prefix } = props\n      const prefixArray = typeof prefix === 'string' ? [prefix] : prefix\n      for (let i = selectionEnd - 1; i >= 0; --i) {\n        const char = inputValue[i]\n        if (char === separator || char === '\\n' || char === '\\r') {\n          doUpdateShowMenu(false)\n          return\n        }\n        if (prefixArray.includes(char)) {\n          const partialPattern = inputValue.slice(i + 1, selectionEnd)\n          doUpdateShowMenu(true)\n          props.onSearch?.(partialPattern, char)\n          partialPatternRef.value = partialPattern\n          cachedPrefix = char\n          cachedPartialPatternStart = i + 1\n          cachedPartialPatternEnd = selectionEnd\n          return\n        }\n      }\n      doUpdateShowMenu(false)\n    }\n    function syncCursor(): void {\n      const { value: cursorAnchor } = cursorRef\n      if (!cursorAnchor)\n        return\n      const inputEl = getInputEl()\n      const cursorPos: {\n        left: number\n        top: number\n        height: number\n      } = getRelativePosition(inputEl)\n      const inputRect = inputEl.getBoundingClientRect()\n      const wrapperRect = wrapperElRef.value!.getBoundingClientRect()\n      cursorAnchor.style.left = `${cursorPos.left + inputRect.left - wrapperRect.left}px`\n      cursorAnchor.style.top = `${cursorPos.top + inputRect.top - wrapperRect.top}px`\n      cursorAnchor.style.height = `${cursorPos.height}px`\n    }\n    function syncPosition(): void {\n      if (!showMenuRef.value)\n        return\n      followerRef.value?.syncPosition()\n    }\n    function handleInputUpdateValue(value: string): void {\n      doUpdateValue(value)\n      // Vue update is mirco task.\n      // So DOM must have been done when sync start in marco task.\n      // I can't use nextTick(), Chrome doesn't update scrollLeft of INPUT\n      // element is immediatelly updated. The behavior is wired but that's what\n      // happens.\n      syncAfterCursorMove()\n    }\n    function syncAfterCursorMove(): void {\n      setTimeout(() => {\n        syncCursor()\n        deriveShowMenu()\n        void nextTick().then(syncPosition)\n      }, 0)\n    }\n    function handleInputKeyDown(e: KeyboardEvent): void {\n      if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n        if (inputInstRef.value?.isCompositing)\n          return\n        syncAfterCursorMove()\n      }\n      else if (\n        e.key === 'ArrowUp'\n        || e.key === 'ArrowDown'\n        || e.key === 'Enter'\n      ) {\n        if (inputInstRef.value?.isCompositing)\n          return\n        const { value: selectMenuInst } = selectMenuInstRef\n        if (showMenuRef.value) {\n          if (selectMenuInst) {\n            e.preventDefault()\n            if (e.key === 'ArrowUp') {\n              selectMenuInst.prev()\n            }\n            else if (e.key === 'ArrowDown') {\n              selectMenuInst.next()\n            }\n            else {\n              // Enter\n              const pendingOptionTmNode = selectMenuInst.getPendingTmNode()\n              if (pendingOptionTmNode) {\n                handleSelect(pendingOptionTmNode)\n              }\n              else {\n                doUpdateShowMenu(false)\n              }\n            }\n          }\n        }\n        else {\n          syncAfterCursorMove()\n        }\n      }\n    }\n    function handleInputFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      onFocus?.(e)\n      const { nTriggerFormFocus } = formItem\n      nTriggerFormFocus()\n      syncAfterCursorMove()\n    }\n    function focus(): void {\n      inputInstRef.value?.focus()\n    }\n    function blur(): void {\n      inputInstRef.value?.blur()\n    }\n    function handleInputBlur(e: FocusEvent): void {\n      const { onBlur } = props\n      onBlur?.(e)\n      const { nTriggerFormBlur } = formItem\n      nTriggerFormBlur()\n      doUpdateShowMenu(false)\n    }\n    function handleSelect(tmNode: TreeNode<SelectBaseOption>): void {\n      if (\n        cachedPrefix === null\n        || cachedPartialPatternStart === null\n        || cachedPartialPatternEnd === null\n      ) {\n        if (__DEV__) {\n          warn(\n            'mention',\n            'Cache works unexpectly, this is probably a bug. Please create an issue.'\n          )\n        }\n        return\n      }\n      const {\n        rawNode: { value = '' }\n      } = tmNode\n      const inputEl = getInputEl()\n      const inputValue = inputEl.value\n      const { separator } = props\n      const nextEndPart = inputValue.slice(cachedPartialPatternEnd)\n      const alreadySeparated = nextEndPart.startsWith(separator)\n      const nextMiddlePart = `${value}${alreadySeparated ? '' : separator}`\n      doUpdateValue(\n        inputValue.slice(0, cachedPartialPatternStart)\n        + nextMiddlePart\n        + nextEndPart\n      )\n      props.onSelect?.(tmNode.rawNode as MentionOption, cachedPrefix)\n      const nextSelectionEnd\n        = cachedPartialPatternStart\n          + nextMiddlePart.length\n          + (alreadySeparated ? 1 : 0)\n      void nextTick().then(() => {\n        // input value is updated\n        inputEl.selectionStart = nextSelectionEnd\n        inputEl.selectionEnd = nextSelectionEnd\n        deriveShowMenu()\n      })\n    }\n    function handleInputMouseDown(): void {\n      if (!props.disabled) {\n        syncAfterCursorMove()\n      }\n    }\n    return {\n      namespace: namespaceRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedBordered: mergedBorderedRef,\n      mergedSize: formItem.mergedSizeRef,\n      mergedStatus: formItem.mergedStatusRef,\n      mergedTheme: themeRef,\n      treeMate: treeMateRef,\n      // reduce dts: string ref only, type unused in render\n      selectMenuInstRef: selectMenuInstRef as unknown,\n      inputInstRef: inputInstRef as unknown,\n      cursorRef,\n      // reduce dts: string ref only, type unused in render\n      followerRef: followerRef as unknown,\n      wrapperElRef,\n      showMenu: showMenuRef,\n      adjustedTo: useAdjustedTo(props),\n      isMounted: useIsMounted(),\n      mergedValue: mergedValueRef,\n      handleInputFocus,\n      handleInputBlur,\n      handleInputUpdateValue,\n      handleInputKeyDown,\n      handleSelect,\n      handleInputMouseDown,\n      focus,\n      blur,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedTheme, mergedClsPrefix, $slots } = this\n    return (\n      <div class={`${mergedClsPrefix}-mention`} ref=\"wrapperElRef\">\n        <NInput\n          status={this.mergedStatus}\n          themeOverrides={mergedTheme.peerOverrides.Input}\n          theme={mergedTheme.peers.Input}\n          size={this.mergedSize}\n          autosize={this.autosize}\n          type={this.type}\n          ref=\"inputInstRef\"\n          placeholder={this.placeholder}\n          onMousedown={this.handleInputMouseDown}\n          onUpdateValue={this.handleInputUpdateValue}\n          onKeydown={this.handleInputKeyDown}\n          onFocus={this.handleInputFocus}\n          onBlur={this.handleInputBlur}\n          bordered={this.mergedBordered}\n          disabled={this.disabled}\n          value={this.mergedValue}\n        />\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => {\n                    const style: CSSProperties = {\n                      position: 'absolute',\n                      width: 0\n                    }\n                    if (__DEV__ && this.internalDebug) {\n                      style.width = '1px'\n                      style.background = 'red'\n                    }\n                    return <div style={style} ref=\"cursorRef\" />\n                  }\n                }}\n              </VTarget>,\n              <VFollower\n                ref=\"followerRef\"\n                placement={this.placement}\n                show={this.showMenu}\n                containerClass={this.namespace}\n                to={this.adjustedTo}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                    >\n                      {{\n                        default: () => {\n                          const { mergedTheme, onRender } = this\n                          onRender?.()\n                          return this.showMenu ? (\n                            <NInternalSelectMenu\n                              clsPrefix={mergedClsPrefix}\n                              theme={mergedTheme.peers.InternalSelectMenu}\n                              themeOverrides={\n                                mergedTheme.peerOverrides.InternalSelectMenu\n                              }\n                              autoPending\n                              ref=\"selectMenuInstRef\"\n                              class={[\n                                `${mergedClsPrefix}-mention-menu`,\n                                this.themeClass\n                              ]}\n                              loading={this.loading}\n                              treeMate={this.treeMate}\n                              virtualScroll={false}\n                              style={this.cssVars as any}\n                              onToggle={this.handleSelect}\n                              renderLabel={this.renderLabel}\n                              scrollbarProps={this.scrollbarProps}\n                            >\n                              {$slots}\n                            </NInternalSelectMenu>\n                          ) : null\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import type {\n  MenuInjection,\n  MenuOptionGroupInjection,\n  SubmenuInjection\n} from './use-menu-child'\nimport { createInjectionKey } from '../../_utils'\n\nexport const menuInjectionKey = createInjectionKey<MenuInjection>('n-menu')\n\nexport const submenuInjectionKey = createInjectionKey<SubmenuInjection | null>(\n  'n-submenu'\n)\n\nexport const menuItemGroupInjectionKey\n  = createInjectionKey<MenuOptionGroupInjection | null>('n-menu-item-group')\n","import type { CNode, CNodeChildren, CProperties } from 'css-render'\nimport { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\nconst hoverStyleChildren = [\n  c('&::before', 'background-color: var(--n-item-color-hover);'),\n  cE('arrow', `\n    color: var(--n-arrow-color-hover);\n  `),\n  cE('icon', `\n    color: var(--n-item-icon-color-hover);\n  `),\n  cB('menu-item-content-header', `\n    color: var(--n-item-text-color-hover);\n  `, [\n    c('a', `\n      color: var(--n-item-text-color-hover);\n    `),\n    cE('extra', `\n      color: var(--n-item-text-color-hover);\n    `)\n  ])\n]\n\nconst horizontalHoverStyleChildren = [\n  cE('icon', `\n    color: var(--n-item-icon-color-hover-horizontal);\n  `),\n  cB('menu-item-content-header', `\n    color: var(--n-item-text-color-hover-horizontal);\n  `, [\n    c('a', `\n      color: var(--n-item-text-color-hover-horizontal);\n    `),\n    cE('extra', `\n      color: var(--n-item-text-color-hover-horizontal);\n    `)\n  ])\n]\n\n// vars:\n// --n-color\n// --n-group-text-color\n// --n-bezier\n// --n-font-size\n// --n-border-color-horizontal\n// --n-border-radius\n// --n-item-color-hover\n// --n-item-color-active\n// --n-item-color-active-hover\n// --n-item-color-active-collapsed\n// --n-arrow-color\n// --n-arrow-color-hover\n// --n-arrow-color-active\n// --n-arrow-color-active-hover\n// --n-arrow-color-child-active\n// --n-arrow-color-child-active-hover\n// --n-item-text-color\n// --n-item-text-color-hover\n// --n-item-text-color-active\n// --n-item-text-color-active-hover\n// --n-item-text-color-child-active\n// --n-item-text-color-child-active-hover\n// --n-item-text-color-horizontal\n// --n-item-text-color-hover-horizontal\n// --n-item-text-color-active-horizontal\n// --n-item-text-color-active-hover-horizontal\n// --n-item-text-color-child-active-horizontal\n// --n-item-text-color-child-active-hover-horizontal\n// --n-item-icon-color\n// --n-item-icon-color-hover\n// --n-item-icon-color-active\n// --n-item-icon-color-active-hover\n// --n-item-icon-color-child-active\n// --n-item-icon-color-child-active-hover\n// --n-item-icon-color-collapsed\n// --n-item-icon-color-horizontal\n// --n-item-icon-color-hover-horizontal\n// --n-item-icon-color-active-horizontal\n// --n-item-icon-color-active-hover-horizontal\n// --n-item-icon-color-child-active-horizontal\n// --n-item-icon-color-child-active-hover-horizontal\n// --n-item-height\nexport default c([\n  cB('menu', `\n    background-color: var(--n-color);\n    color: var(--n-item-text-color);\n    overflow: hidden;\n    transition: background-color .3s var(--n-bezier);\n    box-sizing: border-box;\n    font-size: var(--n-font-size);\n    padding-bottom: 6px;\n  `, [\n    cM('horizontal', `\n      max-width: 100%;\n      width: 100%;\n      display: flex;\n      overflow: hidden;\n      padding-bottom: 0;\n    `, [\n      cB('submenu', 'margin: 0;'),\n      cB('menu-item', 'margin: 0;'),\n      cB('menu-item-content', `\n        padding: 0 20px;\n        border-bottom: 2px solid #0000;\n      `, [\n        c('&::before', 'display: none;'),\n        cM('selected', 'border-bottom: 2px solid var(--n-border-color-horizontal)')\n      ]),\n      cB('menu-item-content', [\n        cM('selected', [\n          cE('icon', 'color: var(--n-item-icon-color-active-horizontal);'),\n          cB('menu-item-content-header', `\n            color: var(--n-item-text-color-active-horizontal);\n          `, [\n            c('a', 'color: var(--n-item-text-color-active-horizontal);'),\n            cE('extra', 'color: var(--n-item-text-color-active-horizontal);')\n          ])\n        ]),\n        cM('child-active', `\n          border-bottom: 2px solid var(--n-border-color-horizontal);\n        `, [\n          cB('menu-item-content-header', `\n            color: var(--n-item-text-color-child-active-horizontal);\n          `, [\n            c('a', `\n              color: var(--n-item-text-color-child-active-horizontal);\n            `),\n            cE('extra', `\n              color: var(--n-item-text-color-child-active-horizontal);\n            `)\n          ]),\n          cE('icon', `\n            color: var(--n-item-icon-color-child-active-horizontal);\n          `)\n        ]),\n        cNotM('disabled', [\n          cNotM('selected, child-active', [\n            c('&:focus-within', horizontalHoverStyleChildren)\n          ]),\n          cM('selected', [\n            hoverStyle(null, [\n              cE('icon', 'color: var(--n-item-icon-color-active-hover-horizontal);'),\n              cB('menu-item-content-header', `\n                color: var(--n-item-text-color-active-hover-horizontal);\n              `, [\n                c('a', 'color: var(--n-item-text-color-active-hover-horizontal);'),\n                cE('extra', 'color: var(--n-item-text-color-active-hover-horizontal);')\n              ])\n            ])\n          ]),\n          cM('child-active', [\n            hoverStyle(null, [\n              cE('icon', 'color: var(--n-item-icon-color-child-active-hover-horizontal);'),\n              cB('menu-item-content-header', `\n                color: var(--n-item-text-color-child-active-hover-horizontal);\n              `, [\n                c('a', 'color: var(--n-item-text-color-child-active-hover-horizontal);'),\n                cE('extra', 'color: var(--n-item-text-color-child-active-hover-horizontal);')\n              ])\n            ])\n          ]),\n          hoverStyle('border-bottom: 2px solid var(--n-border-color-horizontal);', horizontalHoverStyleChildren)\n        ]),\n        cB('menu-item-content-header', [\n          c('a', 'color: var(--n-item-text-color-horizontal);')\n        ])\n      ])\n    ]),\n    cNotM('responsive', [\n      cB('menu-item-content-header', `\n        overflow: hidden;\n        text-overflow: ellipsis;\n      `)\n    ]),\n    cM('collapsed', [\n      cB('menu-item-content', [\n        cM('selected', [\n          c('&::before', `\n            background-color: var(--n-item-color-active-collapsed) !important;\n          `)\n        ]),\n        cB('menu-item-content-header', 'opacity: 0;'),\n        cE('arrow', 'opacity: 0;'),\n        cE('icon', 'color: var(--n-item-icon-color-collapsed);')\n      ])\n    ]),\n    cB('menu-item', `\n      height: var(--n-item-height);\n      margin-top: 6px;\n      position: relative;\n    `),\n    cB('menu-item-content', `\n      box-sizing: border-box;\n      line-height: 1.75;\n      height: 100%;\n      display: grid;\n      grid-template-areas: \"icon content arrow\";\n      grid-template-columns: auto 1fr auto;\n      align-items: center;\n      cursor: pointer;\n      position: relative;\n      padding-right: 18px;\n      transition:\n        background-color .3s var(--n-bezier),\n        padding-left .3s var(--n-bezier),\n        border-color .3s var(--n-bezier);\n    `, [\n      c('> *', 'z-index: 1;'),\n      c('&::before', `\n        z-index: auto;\n        content: \"\";\n        background-color: #0000;\n        position: absolute;\n        left: 8px;\n        right: 8px;\n        top: 0;\n        bottom: 0;\n        pointer-events: none;\n        border-radius: var(--n-border-radius);\n        transition: background-color .3s var(--n-bezier);\n      `),\n      cM('disabled', `\n        opacity: .45;\n        cursor: not-allowed;\n      `),\n      cM('collapsed', [\n        cE('arrow', 'transform: rotate(0);')\n      ]),\n      cM('selected', [\n        c('&::before', 'background-color: var(--n-item-color-active);'),\n        cE('arrow', 'color: var(--n-arrow-color-active);'),\n        cE('icon', 'color: var(--n-item-icon-color-active);'),\n        cB('menu-item-content-header', `\n          color: var(--n-item-text-color-active);\n        `, [\n          c('a', 'color: var(--n-item-text-color-active);'),\n          cE('extra', 'color: var(--n-item-text-color-active);')\n        ])\n      ]),\n      cM('child-active', [\n        cB('menu-item-content-header', `\n          color: var(--n-item-text-color-child-active);\n        `, [\n          c('a', `\n            color: var(--n-item-text-color-child-active);\n          `),\n          cE('extra', `\n            color: var(--n-item-text-color-child-active);\n          `)\n        ]),\n        cE('arrow', `\n          color: var(--n-arrow-color-child-active);\n        `),\n        cE('icon', `\n          color: var(--n-item-icon-color-child-active);\n        `)\n      ]),\n      cNotM('disabled', [\n        cNotM('selected, child-active', [\n          c('&:focus-within', hoverStyleChildren)\n        ]),\n        cM('selected', [\n          hoverStyle(null, [\n            cE('arrow', 'color: var(--n-arrow-color-active-hover);'),\n            cE('icon', 'color: var(--n-item-icon-color-active-hover);'),\n            cB('menu-item-content-header', `\n              color: var(--n-item-text-color-active-hover);\n            `, [\n              c('a', 'color: var(--n-item-text-color-active-hover);'),\n              cE('extra', 'color: var(--n-item-text-color-active-hover);')\n            ])\n          ])\n        ]),\n        cM('child-active', [\n          hoverStyle(null, [\n            cE('arrow', 'color: var(--n-arrow-color-child-active-hover);'),\n            cE('icon', 'color: var(--n-item-icon-color-child-active-hover);'),\n            cB('menu-item-content-header', `\n              color: var(--n-item-text-color-child-active-hover);\n            `, [\n              c('a', 'color: var(--n-item-text-color-child-active-hover);'),\n              cE('extra', 'color: var(--n-item-text-color-child-active-hover);')\n            ])\n          ])\n        ]),\n        cM('selected', [\n          hoverStyle(null, [\n            c('&::before', 'background-color: var(--n-item-color-active-hover);')\n          ])\n        ]),\n        hoverStyle(null, hoverStyleChildren)\n      ]),\n      cE('icon', `\n        grid-area: icon;\n        color: var(--n-item-icon-color);\n        transition:\n          color .3s var(--n-bezier),\n          font-size .3s var(--n-bezier),\n          margin-right .3s var(--n-bezier);\n        box-sizing: content-box;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n      `),\n      cE('arrow', `\n        grid-area: arrow;\n        font-size: 16px;\n        color: var(--n-arrow-color);\n        transform: rotate(180deg);\n        opacity: 1;\n        transition:\n          color .3s var(--n-bezier),\n          transform 0.2s var(--n-bezier),\n          opacity 0.2s var(--n-bezier);\n      `),\n      cB('menu-item-content-header', `\n        grid-area: content;\n        transition:\n          color .3s var(--n-bezier),\n          opacity .3s var(--n-bezier);\n        opacity: 1;\n        white-space: nowrap;\n        color: var(--n-item-text-color);\n      `, [\n        c('a', `\n          outline: none;\n          text-decoration: none;\n          transition: color .3s var(--n-bezier);\n          color: var(--n-item-text-color);\n        `, [\n          c('&::before', `\n            content: \"\";\n            position: absolute;\n            left: 0;\n            right: 0;\n            top: 0;\n            bottom: 0;\n          `)\n        ]),\n        cE('extra', `\n          font-size: .93em;\n          color: var(--n-group-text-color);\n          transition: color .3s var(--n-bezier);\n        `)\n      ])\n    ]),\n    cB('submenu', `\n      cursor: pointer;\n      position: relative;\n      margin-top: 6px;\n    `, [\n      cB('menu-item-content', `\n        height: var(--n-item-height);\n      `),\n      cB('submenu-children', `\n        overflow: hidden;\n        padding: 0;\n      `, [\n        fadeInHeightExpandTransition({\n          duration: '.2s'\n        })\n      ])\n    ]),\n    cB('menu-item-group', [\n      cB('menu-item-group-title', `\n        margin-top: 6px;\n        color: var(--n-group-text-color);\n        cursor: default;\n        font-size: .93em;\n        height: 36px;\n        display: flex;\n        align-items: center;\n        transition:\n          padding-left .3s var(--n-bezier),\n          color .3s var(--n-bezier);\n      `)\n    ])\n  ]),\n  cB('menu-tooltip', [\n    c('a', `\n      color: inherit;\n      text-decoration: none;\n    `)\n  ]),\n  cB('menu-divider', `\n    transition: background-color .3s var(--n-bezier);\n    background-color: var(--n-divider-color);\n    height: 1px;\n    margin: 6px 18px;\n  `)\n])\n\nfunction hoverStyle(props: CProperties, children: CNodeChildren): CNode[] {\n  return [cM('hover', props, children), c('&:hover', props, children)]\n}\n","import type { PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { ChevronDownFilledIcon } from '../../_internal/icons'\nimport { render } from '../../_utils'\nimport { menuInjectionKey } from './context'\n\nexport default defineComponent({\n  name: 'MenuOptionContent',\n  props: {\n    collapsed: Boolean,\n    disabled: Boolean,\n    title: [String, Function],\n    icon: Function,\n    extra: [String, Function],\n    showArrow: Boolean,\n    childActive: Boolean,\n    hover: Boolean,\n    paddingLeft: Number,\n    selected: Boolean,\n    maxIconSize: {\n      type: Number,\n      required: true\n    },\n    activeIconSize: {\n      type: Number,\n      required: true\n    },\n    iconMarginRight: {\n      type: Number,\n      required: true\n    },\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    onClick: Function as PropType<(e: MouseEvent) => void>,\n    tmNode: {\n      type: Object as PropType<TmNode>,\n      required: true\n    },\n    isEllipsisPlaceholder: Boolean\n  },\n  setup(props) {\n    const { props: menuProps } = inject(menuInjectionKey)!\n    return {\n      menuProps,\n      style: computed(() => {\n        const { paddingLeft } = props\n        return { paddingLeft: paddingLeft && `${paddingLeft}px` }\n      }),\n      iconStyle: computed(() => {\n        const { maxIconSize, activeIconSize, iconMarginRight } = props\n        return {\n          width: `${maxIconSize}px`,\n          height: `${maxIconSize}px`,\n          fontSize: `${activeIconSize}px`,\n          marginRight: `${iconMarginRight}px`\n        }\n      })\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      tmNode,\n      menuProps: { renderIcon, renderLabel, renderExtra, expandIcon }\n    } = this\n    const icon = renderIcon ? renderIcon(tmNode.rawNode) : render(this.icon)\n    return (\n      <div\n        onClick={(e) => {\n          this.onClick?.(e)\n        }}\n        role=\"none\"\n        class={[\n          `${clsPrefix}-menu-item-content`,\n          {\n            [`${clsPrefix}-menu-item-content--selected`]: this.selected,\n            [`${clsPrefix}-menu-item-content--collapsed`]: this.collapsed,\n            [`${clsPrefix}-menu-item-content--child-active`]: this.childActive,\n            [`${clsPrefix}-menu-item-content--disabled`]: this.disabled,\n            [`${clsPrefix}-menu-item-content--hover`]: this.hover\n          }\n        ]}\n        style={this.style}\n      >\n        {icon && (\n          <div\n            class={`${clsPrefix}-menu-item-content__icon`}\n            style={this.iconStyle}\n            role=\"none\"\n          >\n            {[icon]}\n          </div>\n        )}\n        <div class={`${clsPrefix}-menu-item-content-header`} role=\"none\">\n          {this.isEllipsisPlaceholder\n            ? this.title\n            : renderLabel\n              ? renderLabel(tmNode.rawNode)\n              : render(this.title)}\n          {this.extra || renderExtra ? (\n            <span class={`${clsPrefix}-menu-item-content-header__extra`}>\n              {' '}\n              {renderExtra ? renderExtra(tmNode.rawNode) : render(this.extra)}\n            </span>\n          ) : null}\n        </div>\n        {this.showArrow ? (\n          <NBaseIcon\n            ariaHidden={true}\n            class={`${clsPrefix}-menu-item-content__arrow`}\n            clsPrefix={clsPrefix}\n          >\n            {{\n              default: () =>\n                expandIcon ? (\n                  expandIcon(tmNode.rawNode)\n                ) : (\n                  <ChevronDownFilledIcon />\n                )\n            }}\n          </NBaseIcon>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { Key } from 'treemate'\nimport type { ComputedRef, Ref } from 'vue'\nimport type { FollowerPlacement } from 'vueuc'\nimport type { MergedTheme } from '../../_mixins/use-theme'\nimport type { MenuTheme } from '../styles'\nimport type { OnUpdateValueImpl } from './interface'\nimport type { MenuSetupProps } from './Menu'\nimport type { UseMenuChildProps } from './use-menu-child-props'\nimport { computed, inject } from 'vue'\nimport {\n  menuInjectionKey,\n  menuItemGroupInjectionKey,\n  submenuInjectionKey\n} from './context'\n\nconst ICON_MARGIN_RIGHT = 8\n\nexport interface MenuInjection {\n  props: MenuSetupProps\n  mergedCollapsedRef: Ref<boolean>\n  invertedRef: Ref<boolean>\n  isHorizontalRef: Ref<boolean>\n  mergedClsPrefixRef: Ref<string>\n  mergedValueRef: Ref<Key | null>\n  mergedExpandedKeysRef: Ref<Key[]>\n  activePathRef: Ref<Key[]>\n  mergedThemeRef: Ref<MergedTheme<MenuTheme>>\n  doSelect: OnUpdateValueImpl\n  toggleExpand: (key: Key) => void\n}\n\nexport interface SubmenuInjection {\n  paddingLeftRef: Ref<number | undefined>\n  mergedDisabledRef: Ref<boolean>\n}\n\nexport interface MenuOptionGroupInjection {\n  paddingLeftRef: Ref<number | undefined>\n  mergedDisabledRef: Ref<boolean>\n}\n\nexport interface UseMenuChild {\n  dropdownPlacement: ComputedRef<FollowerPlacement>\n  activeIconSize: ComputedRef<number>\n  maxIconSize: ComputedRef<number>\n  paddingLeft: ComputedRef<number | undefined>\n  iconMarginRight: ComputedRef<number>\n  NMenu: MenuInjection\n  NSubmenu: SubmenuInjection | null\n  NMenuOptionGroup: MenuOptionGroupInjection | null\n}\n\nexport function useMenuChild(props: UseMenuChildProps): UseMenuChild {\n  const NMenu = inject(menuInjectionKey)!\n  const { props: menuProps, mergedCollapsedRef } = NMenu\n  const NSubmenu = inject(submenuInjectionKey, null)\n  const NMenuOptionGroup = inject<MenuOptionGroupInjection | null>(\n    menuItemGroupInjectionKey,\n    null\n  )\n  const horizontalRef = computed(() => {\n    return menuProps.mode === 'horizontal'\n  })\n  const dropdownPlacementRef = computed(() => {\n    if (horizontalRef.value) {\n      return menuProps.dropdownPlacement\n    }\n    if ('tmNodes' in props)\n      return 'right-start'\n    return 'right'\n  })\n  const maxIconSizeRef = computed(() => {\n    return Math.max(\n      menuProps.collapsedIconSize ?? menuProps.iconSize,\n      menuProps.iconSize\n    )\n  })\n  const activeIconSizeRef = computed(() => {\n    if (!horizontalRef.value && props.root && mergedCollapsedRef.value) {\n      return menuProps.collapsedIconSize ?? menuProps.iconSize\n    }\n    else {\n      return menuProps.iconSize\n    }\n  })\n  const paddingLeftRef = computed(() => {\n    if (horizontalRef.value)\n      return undefined\n    const { collapsedWidth, indent, rootIndent } = menuProps\n    const { root, isGroup } = props\n    const mergedRootIndent = rootIndent === undefined ? indent : rootIndent\n    if (root) {\n      if (mergedCollapsedRef.value) {\n        return collapsedWidth / 2 - maxIconSizeRef.value / 2\n      }\n      return mergedRootIndent\n    }\n    if (\n      NMenuOptionGroup\n      && typeof NMenuOptionGroup.paddingLeftRef.value === 'number'\n    ) {\n      if (mergedCollapsedRef.value) {\n        return collapsedWidth / 2 - maxIconSizeRef.value / 2\n      }\n      return indent / 2 + NMenuOptionGroup.paddingLeftRef.value\n    }\n    if (NSubmenu && typeof NSubmenu.paddingLeftRef.value === 'number') {\n      return (isGroup ? indent / 2 : indent) + NSubmenu.paddingLeftRef.value\n    }\n    // Shouldn't reach here\n    return 0\n  })\n  const iconMarginRightRef = computed(() => {\n    const { collapsedWidth, indent, rootIndent } = menuProps\n    const { value: maxIconSize } = maxIconSizeRef\n    const { root } = props\n    if (horizontalRef.value)\n      return ICON_MARGIN_RIGHT\n    if (!root)\n      return ICON_MARGIN_RIGHT\n    if (!mergedCollapsedRef.value)\n      return ICON_MARGIN_RIGHT\n    const mergedRootIndent = rootIndent === undefined ? indent : rootIndent\n    return (\n      mergedRootIndent\n      + maxIconSize\n      + ICON_MARGIN_RIGHT\n      - (collapsedWidth + maxIconSize) / 2\n    )\n  })\n  return {\n    dropdownPlacement: dropdownPlacementRef,\n    activeIconSize: activeIconSizeRef,\n    maxIconSize: maxIconSizeRef,\n    paddingLeft: paddingLeftRef,\n    iconMarginRight: iconMarginRightRef,\n    NMenu,\n    NSubmenu,\n    NMenuOptionGroup\n  }\n}\n","import type { Key } from 'treemate'\nimport type { ExtractPropTypes, PropType, VNodeChild } from 'vue'\n\nexport const useMenuChildProps = {\n  internalKey: {\n    type: [String, Number] as PropType<Key>,\n    required: true\n  },\n  root: Boolean,\n  isGroup: Boolean,\n  level: {\n    type: Number,\n    required: true\n  },\n  title: [String, Function] as PropType<string | (() => VNodeChild)>,\n  extra: [String, Function] as PropType<string | (() => VNodeChild)>\n} as const\n\nexport type UseMenuChildProps = ExtractPropTypes<typeof useMenuChildProps>\n","import { defineComponent, h, inject } from 'vue'\nimport { menuInjectionKey } from './context'\n\nexport default defineComponent({\n  name: 'MenuDivider',\n  setup() {\n    const NMenu = inject(menuInjectionKey)!\n    const { mergedClsPrefixRef, isHorizontalRef } = NMenu\n    return () =>\n      isHorizontalRef.value ? null : (\n        <div class={`${mergedClsPrefixRef.value}-menu-divider`} />\n      )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h } from 'vue'\nimport { keysOf, render } from '../../_utils'\nimport { NTooltip } from '../../tooltip'\nimport NMenuOptionContent from './MenuOptionContent'\nimport { useMenuChild } from './use-menu-child'\nimport { useMenuChildProps } from './use-menu-child-props'\n\nexport const menuItemProps = {\n  ...useMenuChildProps,\n  tmNode: {\n    type: Object as PropType<TmNode>,\n    required: true\n  },\n  disabled: Boolean,\n  icon: Function,\n  onClick: Function\n} as const\n\nexport const menuItemPropKeys = keysOf(menuItemProps)\n\nexport const NMenuOption = defineComponent({\n  name: 'MenuOption',\n  props: menuItemProps,\n  setup(props) {\n    const MenuChild = useMenuChild(props)\n    const { NSubmenu, NMenu, NMenuOptionGroup } = MenuChild\n    const { props: menuProps, mergedClsPrefixRef, mergedCollapsedRef } = NMenu\n    const parentDisabledRef = NSubmenu\n      ? NSubmenu.mergedDisabledRef\n      : NMenuOptionGroup\n        ? NMenuOptionGroup.mergedDisabledRef\n        : { value: false }\n    const mergedDisabledRef = computed(() => {\n      return parentDisabledRef.value || props.disabled\n    })\n    function doClick(e: MouseEvent): void {\n      const { onClick } = props\n      if (onClick)\n        onClick(e)\n    }\n    function handleClick(e: MouseEvent): void {\n      if (!mergedDisabledRef.value) {\n        NMenu.doSelect(props.internalKey, props.tmNode.rawNode)\n        doClick(e)\n      }\n    }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      dropdownPlacement: MenuChild.dropdownPlacement,\n      paddingLeft: MenuChild.paddingLeft,\n      iconMarginRight: MenuChild.iconMarginRight,\n      maxIconSize: MenuChild.maxIconSize,\n      activeIconSize: MenuChild.activeIconSize,\n      mergedTheme: NMenu.mergedThemeRef,\n      menuProps,\n      dropdownEnabled: useMemo(() => {\n        return (\n          props.root\n          && mergedCollapsedRef.value\n          && menuProps.mode !== 'horizontal'\n          && !mergedDisabledRef.value\n        )\n      }),\n      selected: useMemo(() => {\n        if (NMenu.mergedValueRef.value === props.internalKey)\n          return true\n        return false\n      }),\n      mergedDisabled: mergedDisabledRef,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedTheme,\n      tmNode,\n      menuProps: { renderLabel, nodeProps }\n    } = this\n    const attrs = nodeProps?.(tmNode.rawNode)\n    return (\n      <div\n        {...attrs}\n        role=\"menuitem\"\n        class={[`${mergedClsPrefix}-menu-item`, attrs?.class]}\n      >\n        <NTooltip\n          theme={mergedTheme.peers.Tooltip}\n          themeOverrides={mergedTheme.peerOverrides.Tooltip}\n          trigger=\"hover\"\n          placement={this.dropdownPlacement}\n          disabled={!this.dropdownEnabled || this.title === undefined}\n          internalExtraClass={['menu-tooltip']}\n        >\n          {{\n            default: () =>\n              renderLabel ? renderLabel(tmNode.rawNode) : render(this.title),\n            trigger: () => (\n              <NMenuOptionContent\n                tmNode={tmNode}\n                clsPrefix={mergedClsPrefix}\n                paddingLeft={this.paddingLeft}\n                iconMarginRight={this.iconMarginRight}\n                maxIconSize={this.maxIconSize}\n                activeIconSize={this.activeIconSize}\n                selected={this.selected}\n                title={this.title}\n                extra={this.extra}\n                disabled={this.mergedDisabled}\n                icon={this.icon}\n                onClick={this.handleClick}\n              />\n            )\n          }}\n        </NTooltip>\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { computed, defineComponent, Fragment, h, inject, provide } from 'vue'\nimport { keysOf, render } from '../../_utils'\nimport { menuInjectionKey, menuItemGroupInjectionKey } from './context'\n\nimport { useMenuChild } from './use-menu-child'\nimport { useMenuChildProps } from './use-menu-child-props'\nimport { itemRenderer } from './utils'\n\nexport const menuItemGroupProps = {\n  ...useMenuChildProps,\n  tmNode: {\n    type: Object as PropType<TmNode>,\n    required: true\n  },\n  tmNodes: {\n    type: Array as PropType<TmNode[]>,\n    required: true\n  }\n} as const\n\nexport const menuItemGroupPropKeys = keysOf(menuItemGroupProps)\n\nexport const NMenuOptionGroup = defineComponent({\n  name: 'MenuOptionGroup',\n  props: menuItemGroupProps,\n  setup(props) {\n    const MenuChild = useMenuChild(props)\n    const { NSubmenu } = MenuChild\n    const mergedDisabledRef = computed(() => {\n      if (NSubmenu?.mergedDisabledRef.value)\n        return true\n      return props.tmNode.disabled\n    })\n    provide(menuItemGroupInjectionKey, {\n      paddingLeftRef: MenuChild.paddingLeft,\n      mergedDisabledRef\n    })\n    const { mergedClsPrefixRef, props: menuProps } = inject(menuInjectionKey)!\n    return function () {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const paddingLeft = MenuChild.paddingLeft.value\n      const { nodeProps } = menuProps\n      const attrs = nodeProps?.(props.tmNode.rawNode)\n      return (\n        <div class={`${mergedClsPrefix}-menu-item-group`} role=\"group\">\n          <div\n            {...attrs}\n            class={[`${mergedClsPrefix}-menu-item-group-title`, attrs?.class]}\n            style={[\n              attrs?.style || '',\n              paddingLeft !== undefined ? `padding-left: ${paddingLeft}px;` : ''\n            ]}\n          >\n            {render(props.title)}\n            {props.extra ? (\n              <>\n                {' '}\n                {render(props.extra)}\n              </>\n            ) : null}\n          </div>\n          <div>\n            {props.tmNodes.map(tmNode => itemRenderer(tmNode, menuProps))}\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import type { TreeNode } from 'treemate'\nimport type { VNode, VNodeChild } from 'vue'\nimport type {\n  MenuGroupOption,\n  MenuIgnoredOption,\n  MenuMixedOption,\n  MenuOption\n} from './interface'\nimport type { MenuSetupProps } from './Menu'\nimport { h } from 'vue'\n\nimport { keep } from '../../_utils'\nimport NMenuDivider from './MenuDivider'\nimport { menuItemPropKeys, NMenuOption } from './MenuOption'\nimport { menuItemGroupPropKeys, NMenuOptionGroup } from './MenuOptionGroup'\nimport { NSubmenu, submenuPropKeys } from './Submenu'\n\nexport function isIgnoredNode(\n  rawNode: MenuMixedOption\n): rawNode is MenuIgnoredOption {\n  return rawNode.type === 'divider' || rawNode.type === 'render'\n}\n\nexport function isDividerNode(\n  rawNode: MenuMixedOption\n): rawNode is MenuIgnoredOption {\n  return rawNode.type === 'divider'\n}\n\nexport function itemRenderer(\n  tmNode: TreeNode<MenuOption, MenuGroupOption, MenuIgnoredOption>,\n  menuProps: MenuSetupProps\n): VNode | null {\n  const { rawNode } = tmNode\n  const { show } = rawNode\n  if (show === false) {\n    return null\n  }\n  if (isIgnoredNode(rawNode)) {\n    if (isDividerNode(rawNode)) {\n      return <NMenuDivider key={tmNode.key} {...rawNode.props} />\n    }\n    return null\n  }\n\n  const { labelField } = menuProps\n  const { key, level, isGroup } = tmNode\n  const props = {\n    ...rawNode,\n    title: (rawNode.title || rawNode[labelField]) as\n    | string\n    | (() => VNodeChild)\n    | undefined,\n    extra: rawNode.titleExtra || rawNode.extra,\n    key,\n    internalKey: key, // since key can't be used as a prop\n    level,\n    root: level === 0,\n    isGroup\n  }\n\n  if (tmNode.children) {\n    if (tmNode.isGroup) {\n      return h(\n        NMenuOptionGroup,\n        keep(props, menuItemGroupPropKeys, {\n          tmNode,\n          tmNodes: tmNode.children,\n          key\n        })\n      )\n    }\n    return h(\n      NSubmenu,\n      keep(props, submenuPropKeys, {\n        key,\n        rawNodes: rawNode[menuProps.childrenField] as any,\n        tmNodes: tmNode.children,\n        tmNode\n      })\n    )\n  }\n  else {\n    return h(\n      NMenuOption,\n      keep(props, menuItemPropKeys, {\n        key,\n        tmNode\n      })\n    )\n  }\n}\n","import type { PropType, VNode, VNodeChild } from 'vue'\nimport type { MenuMixedOption, TmNode } from './interface'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, provide, ref } from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\nimport { keysOf } from '../../_utils'\n\nimport { NDropdown } from '../../dropdown'\nimport { menuItemGroupInjectionKey, submenuInjectionKey } from './context'\nimport NMenuOptionContent from './MenuOptionContent'\nimport { useMenuChild } from './use-menu-child'\nimport { useMenuChildProps } from './use-menu-child-props'\nimport { itemRenderer } from './utils'\n\nexport const submenuProps = {\n  ...useMenuChildProps,\n  rawNodes: {\n    type: Array as PropType<MenuMixedOption[]>,\n    default: () => []\n  },\n  tmNodes: {\n    type: Array as PropType<TmNode[]>,\n    default: () => []\n  },\n  tmNode: {\n    type: Object as PropType<TmNode>,\n    required: true\n  },\n  disabled: Boolean,\n  icon: Function as PropType<() => VNodeChild>,\n  onClick: Function as PropType<() => void>,\n  domId: String,\n  virtualChildActive: {\n    type: Boolean,\n    default: undefined\n  },\n  isEllipsisPlaceholder: Boolean\n} as const\n\nexport const submenuPropKeys = keysOf(submenuProps)\n\nexport const NSubmenu = defineComponent({\n  name: 'Submenu',\n  props: submenuProps,\n  setup(props) {\n    const MenuChild = useMenuChild(props)\n    const { NMenu, NSubmenu } = MenuChild\n    const { props: menuProps, mergedCollapsedRef, mergedThemeRef } = NMenu\n    const mergedDisabledRef = computed(() => {\n      const { disabled } = props\n      if (NSubmenu?.mergedDisabledRef.value)\n        return true\n      if (menuProps.disabled)\n        return true\n      return disabled\n    })\n    const dropdownShowRef = ref(false)\n    provide(submenuInjectionKey, {\n      paddingLeftRef: MenuChild.paddingLeft,\n      mergedDisabledRef\n    })\n    provide(menuItemGroupInjectionKey, null)\n    function doClick(): void {\n      const { onClick } = props\n      if (onClick)\n        onClick()\n    }\n    function handleClick(): void {\n      if (!mergedDisabledRef.value) {\n        if (!mergedCollapsedRef.value) {\n          NMenu.toggleExpand(props.internalKey)\n        }\n        doClick()\n      }\n    }\n    function handlePopoverShowChange(value: boolean): void {\n      dropdownShowRef.value = value\n    }\n    return {\n      menuProps,\n      mergedTheme: mergedThemeRef,\n      doSelect: NMenu.doSelect,\n      inverted: NMenu.invertedRef,\n      isHorizontal: NMenu.isHorizontalRef,\n      mergedClsPrefix: NMenu.mergedClsPrefixRef,\n      maxIconSize: MenuChild.maxIconSize,\n      activeIconSize: MenuChild.activeIconSize,\n      iconMarginRight: MenuChild.iconMarginRight,\n      dropdownPlacement: MenuChild.dropdownPlacement,\n      dropdownShow: dropdownShowRef,\n      paddingLeft: MenuChild.paddingLeft,\n      mergedDisabled: mergedDisabledRef,\n      mergedValue: NMenu.mergedValueRef,\n      childActive: useMemo(() => {\n        return (\n          props.virtualChildActive\n          ?? NMenu.activePathRef.value.includes(props.internalKey)\n        )\n      }),\n      collapsed: computed(() => {\n        if (menuProps.mode === 'horizontal')\n          return false\n        if (mergedCollapsedRef.value) {\n          return true\n        }\n        return !NMenu.mergedExpandedKeysRef.value.includes(props.internalKey)\n      }),\n      dropdownEnabled: computed(() => {\n        return (\n          !mergedDisabledRef.value\n          && (menuProps.mode === 'horizontal' || mergedCollapsedRef.value)\n        )\n      }),\n      handlePopoverShowChange,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      menuProps: { renderIcon, renderLabel }\n    } = this\n    const createSubmenuItem = (): VNode => {\n      const {\n        isHorizontal,\n        paddingLeft,\n        collapsed,\n        mergedDisabled,\n        maxIconSize,\n        activeIconSize,\n        title,\n        childActive,\n        icon,\n        handleClick,\n        menuProps: { nodeProps },\n        dropdownShow,\n        iconMarginRight,\n        tmNode,\n        mergedClsPrefix,\n        isEllipsisPlaceholder,\n        extra\n      } = this\n      const attrs = nodeProps?.(tmNode.rawNode)\n      return (\n        <div\n          {...attrs}\n          class={[`${mergedClsPrefix}-menu-item`, attrs?.class]}\n          role=\"menuitem\"\n        >\n          <NMenuOptionContent\n            tmNode={tmNode}\n            paddingLeft={paddingLeft}\n            collapsed={collapsed}\n            disabled={mergedDisabled}\n            iconMarginRight={iconMarginRight}\n            maxIconSize={maxIconSize}\n            activeIconSize={activeIconSize}\n            title={title}\n            extra={extra}\n            showArrow={!isHorizontal}\n            childActive={childActive}\n            clsPrefix={mergedClsPrefix}\n            icon={icon}\n            hover={dropdownShow}\n            onClick={handleClick}\n            isEllipsisPlaceholder={isEllipsisPlaceholder}\n          />\n        </div>\n      )\n    }\n    const createSubmenuChildren = (): VNode => {\n      return (\n        <NFadeInExpandTransition>\n          {{\n            default: () => {\n              const { tmNodes, collapsed } = this\n              return !collapsed ? (\n                <div class={`${mergedClsPrefix}-submenu-children`} role=\"menu\">\n                  {tmNodes.map(item => itemRenderer(item, this.menuProps))}\n                </div>\n              ) : null\n            }\n          }}\n        </NFadeInExpandTransition>\n      )\n    }\n    return this.root ? (\n      <NDropdown\n        size=\"large\"\n        trigger=\"hover\"\n        {...this.menuProps?.dropdownProps}\n        themeOverrides={this.mergedTheme.peerOverrides.Dropdown}\n        theme={this.mergedTheme.peers.Dropdown}\n        builtinThemeOverrides={{\n          fontSizeLarge: '14px',\n          optionIconSizeLarge: '18px'\n        }}\n        value={this.mergedValue}\n        disabled={!this.dropdownEnabled}\n        placement={this.dropdownPlacement}\n        keyField={this.menuProps.keyField}\n        labelField={this.menuProps.labelField}\n        childrenField={this.menuProps.childrenField}\n        onUpdateShow={this.handlePopoverShowChange}\n        options={this.rawNodes}\n        onSelect={this.doSelect}\n        inverted={this.inverted}\n        renderIcon={renderIcon}\n        renderLabel={renderLabel}\n      >\n        {{\n          default: () => (\n            <div\n              class={`${mergedClsPrefix}-submenu`}\n              role=\"menu\"\n              aria-expanded={!this.collapsed}\n              id={this.domId}\n            >\n              {createSubmenuItem()}\n              {this.isHorizontal ? null : createSubmenuChildren()}\n            </div>\n          )\n        }}\n      </NDropdown>\n    ) : (\n      <div\n        class={`${mergedClsPrefix}-submenu`}\n        role=\"menu\"\n        aria-expanded={!this.collapsed}\n        id={this.domId}\n      >\n        {createSubmenuItem()}\n        {createSubmenuChildren()}\n      </div>\n    )\n  }\n})\n","import type { Key } from 'treemate'\nimport type {\n  CSSProperties,\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { FollowerPlacement, VOverflowInst } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { MaybeArray } from '../../_utils'\nimport type { DropdownProps } from '../../dropdown'\nimport type { MenuTheme, MenuThemeOverrides } from '../styles'\nimport type {\n  MenuGroupOption,\n  MenuIgnoredOption,\n  MenuInst,\n  MenuMixedOption,\n  MenuNodeProps,\n  MenuOption,\n  OnUpdateKeys,\n  OnUpdateKeysImpl,\n  OnUpdateValue,\n  OnUpdateValueImpl\n} from './interface'\nimport { createId } from 'seemly'\nimport { createTreeMate } from 'treemate'\nimport { useCompitable, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  mergeProps,\n  provide,\n  ref,\n  toRef,\n  watchEffect\n} from 'vue'\nimport { VOverflow, VResizeObserver } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { call } from '../../_utils'\nimport { layoutSiderInjectionKey } from '../../layout/src/interface'\nimport { menuLight } from '../styles'\nimport { menuInjectionKey } from './context'\nimport style from './styles/index.cssr'\nimport { NSubmenu } from './Submenu'\nimport { useCheckDeprecated } from './useCheckDeprecated'\nimport { isIgnoredNode, itemRenderer } from './utils'\n\nexport const menuProps = {\n  ...(useTheme.props as ThemeProps<MenuTheme, MenuThemeOverrides>),\n  options: {\n    type: Array as PropType<MenuMixedOption[]>,\n    default: () => []\n  },\n  collapsed: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  collapsedWidth: {\n    type: Number,\n    default: 48\n  },\n  iconSize: {\n    type: Number,\n    default: 20\n  },\n  collapsedIconSize: {\n    type: Number,\n    default: 24\n  },\n  rootIndent: Number,\n  indent: {\n    type: Number,\n    default: 32\n  },\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  keyField: {\n    type: String,\n    default: 'key'\n  },\n  childrenField: {\n    type: String,\n    default: 'children'\n  },\n  disabledField: {\n    type: String,\n    default: 'disabled'\n  },\n  defaultExpandAll: Boolean,\n  defaultExpandedKeys: Array as PropType<Key[]>,\n  expandedKeys: Array as PropType<Key[]>,\n  value: [String, Number] as PropType<Key | null>,\n  defaultValue: {\n    type: [String, Number] as PropType<Key | null>,\n    default: null\n  },\n  mode: {\n    type: String as PropType<'vertical' | 'horizontal'>,\n    default: 'vertical'\n  },\n  watchProps: {\n    type: Array as PropType<Array<'defaultExpandedKeys' | 'defaultValue'>>,\n    default: undefined\n  },\n  disabled: Boolean,\n  show: {\n    type: Boolean,\n    default: true\n  },\n  inverted: Boolean,\n  'onUpdate:expandedKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateKeys>\n  >,\n  onUpdateExpandedKeys: [Function, Array] as PropType<MaybeArray<OnUpdateKeys>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  expandIcon: Function as PropType<(option: MenuOption) => VNodeChild>,\n  renderIcon: Function as PropType<(option: MenuOption) => VNodeChild>,\n  renderLabel: Function as PropType<\n    (option: MenuOption | MenuGroupOption) => VNodeChild\n  >,\n  renderExtra: Function as PropType<\n    (option: MenuOption | MenuGroupOption) => VNodeChild\n  >,\n  dropdownProps: Object as PropType<DropdownProps>,\n  accordion: Boolean,\n  nodeProps: Function as PropType<MenuNodeProps>,\n  dropdownPlacement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom'\n  },\n  responsive: Boolean,\n  // deprecated\n  items: Array as PropType<Array<MenuOption | MenuGroupOption>>,\n  onOpenNamesChange: [Function, Array] as PropType<MaybeArray<OnUpdateKeys>>,\n  onSelect: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onExpandedNamesChange: [Function, Array] as PropType<\n    MaybeArray<OnUpdateKeys>\n  >,\n  expandedNames: Array as PropType<Key[]>,\n  defaultExpandedNames: Array as PropType<Key[]>\n} as const\n\nexport type MenuSetupProps = ExtractPropTypes<typeof menuProps>\n\nexport type MenuProps = Partial<MenuSetupProps>\n\nexport default defineComponent({\n  name: 'Menu',\n  inheritAttrs: false,\n  props: menuProps,\n  setup(props) {\n    if (__DEV__) {\n      useCheckDeprecated(props)\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Menu',\n      '-menu',\n      style,\n      menuLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const layoutSider = inject(layoutSiderInjectionKey, null)\n\n    const mergedCollapsedRef = computed(() => {\n      const { collapsed } = props\n      if (collapsed !== undefined)\n        return collapsed\n      if (layoutSider) {\n        const { collapseModeRef, collapsedRef } = layoutSider\n        if (collapseModeRef.value === 'width') {\n          return collapsedRef.value ?? false\n        }\n      }\n      return false\n    })\n\n    const treeMateRef = computed(() => {\n      const { keyField, childrenField, disabledField } = props\n      return createTreeMate<MenuOption, MenuGroupOption, MenuIgnoredOption>(\n        props.items || props.options,\n        {\n          getIgnored(node) {\n            return isIgnoredNode(node)\n          },\n          getChildren(node) {\n            return node[childrenField]\n          },\n          getDisabled(node) {\n            return (node as any)[disabledField]\n          },\n          getKey(node) {\n            return (node[keyField] as Key) ?? node.name\n          }\n        }\n      )\n    })\n    const treeKeysLevelOneRef = computed(\n      () => new Set(treeMateRef.value.treeNodes.map(e => e.key))\n    )\n\n    const { watchProps } = props\n\n    const uncontrolledValueRef = ref<Key | null>(null)\n    if (watchProps?.includes('defaultValue')) {\n      watchEffect(() => {\n        uncontrolledValueRef.value = props.defaultValue\n      })\n    }\n    else {\n      uncontrolledValueRef.value = props.defaultValue\n    }\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const uncontrolledExpandedKeysRef = ref<Key[]>([])\n    const initUncontrolledExpandedKeys = (): void => {\n      uncontrolledExpandedKeysRef.value = props.defaultExpandAll\n        ? treeMateRef.value.getNonLeafKeys()\n        : props.defaultExpandedNames\n          || props.defaultExpandedKeys\n          || treeMateRef.value.getPath(mergedValueRef.value, {\n            includeSelf: false\n          }).keyPath\n    }\n    if (watchProps?.includes('defaultExpandedKeys')) {\n      watchEffect(initUncontrolledExpandedKeys)\n    }\n    else {\n      initUncontrolledExpandedKeys()\n    }\n    const controlledExpandedKeysRef = useCompitable(props, [\n      'expandedNames',\n      'expandedKeys'\n    ])\n    const mergedExpandedKeysRef = useMergedState(\n      controlledExpandedKeysRef,\n      uncontrolledExpandedKeysRef\n    )\n    const tmNodesRef = computed(() => treeMateRef.value.treeNodes)\n    const activePathRef = computed(() => {\n      return treeMateRef.value.getPath(mergedValueRef.value).keyPath\n    })\n    provide(menuInjectionKey, {\n      props,\n      mergedCollapsedRef,\n      mergedThemeRef: themeRef,\n      mergedValueRef,\n      mergedExpandedKeysRef,\n      activePathRef,\n      mergedClsPrefixRef,\n      isHorizontalRef: computed(() => props.mode === 'horizontal'),\n      invertedRef: toRef(props, 'inverted'),\n      doSelect,\n      toggleExpand\n    })\n    function doSelect(value: Key, item: MenuOption): void {\n      const {\n        'onUpdate:value': _onUpdateValue,\n        onUpdateValue,\n        onSelect\n      } = props\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value, item)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, item)\n      }\n      if (onSelect) {\n        call(onSelect as OnUpdateValueImpl, value, item)\n      }\n      uncontrolledValueRef.value = value\n    }\n    function doUpdateExpandedKeys(value: Key[]): void {\n      const {\n        'onUpdate:expandedKeys': _onUpdateExpandedKeys,\n        onUpdateExpandedKeys,\n        onExpandedNamesChange,\n        onOpenNamesChange\n      } = props\n      if (_onUpdateExpandedKeys) {\n        call(_onUpdateExpandedKeys as OnUpdateKeysImpl, value)\n      }\n      if (onUpdateExpandedKeys) {\n        call(onUpdateExpandedKeys as OnUpdateKeysImpl, value)\n      }\n      // deprecated\n      if (onExpandedNamesChange) {\n        call(onExpandedNamesChange as OnUpdateKeysImpl, value)\n      }\n      if (onOpenNamesChange) {\n        call(onOpenNamesChange as OnUpdateKeysImpl, value)\n      }\n      uncontrolledExpandedKeysRef.value = value\n    }\n    function toggleExpand(key: Key): void {\n      const currentExpandedKeys = Array.from(mergedExpandedKeysRef.value)\n      const index = currentExpandedKeys.findIndex(\n        expanededKey => expanededKey === key\n      )\n      if (~index) {\n        currentExpandedKeys.splice(index, 1)\n      }\n      else {\n        if (props.accordion) {\n          if (treeKeysLevelOneRef.value.has(key)) {\n            const closeKeyIndex = currentExpandedKeys.findIndex(e =>\n              treeKeysLevelOneRef.value.has(e)\n            )\n            if (closeKeyIndex > -1) {\n              currentExpandedKeys.splice(closeKeyIndex, 1)\n            }\n          }\n        }\n        currentExpandedKeys.push(key)\n      }\n      doUpdateExpandedKeys(currentExpandedKeys)\n    }\n    const showOption: MenuInst['showOption'] = (key?: Key): void => {\n      const selectedKeyPath = treeMateRef.value.getPath(\n        key ?? mergedValueRef.value,\n        {\n          includeSelf: false\n        }\n      ).keyPath\n      if (!selectedKeyPath.length)\n        return\n      const currentExpandedKeys = Array.from(mergedExpandedKeysRef.value)\n      const nextExpandedKeys = new Set([\n        ...currentExpandedKeys,\n        ...selectedKeyPath\n      ])\n      if (props.accordion) {\n        treeKeysLevelOneRef.value.forEach((firstLevelKey) => {\n          if (\n            nextExpandedKeys.has(firstLevelKey)\n            && !selectedKeyPath.includes(firstLevelKey)\n          ) {\n            nextExpandedKeys.delete(firstLevelKey)\n          }\n        })\n      }\n      doUpdateExpandedKeys(Array.from(nextExpandedKeys))\n    }\n    const cssVarsRef = computed(() => {\n      const { inverted } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const {\n        borderRadius,\n        borderColorHorizontal,\n        fontSize,\n        itemHeight,\n        dividerColor\n      } = self\n      const vars: any = {\n        '--n-divider-color': dividerColor,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-border-color-horizontal': borderColorHorizontal,\n        '--n-border-radius': borderRadius,\n        '--n-item-height': itemHeight\n      }\n      if (inverted) {\n        vars['--n-group-text-color'] = self.groupTextColorInverted\n        vars['--n-color'] = self.colorInverted\n        vars['--n-item-text-color'] = self.itemTextColorInverted\n        vars['--n-item-text-color-hover'] = self.itemTextColorHoverInverted\n        vars['--n-item-text-color-active'] = self.itemTextColorActiveInverted\n        vars['--n-item-text-color-child-active']\n          = self.itemTextColorChildActiveInverted\n        vars['--n-item-text-color-child-active-hover']\n          = self.itemTextColorChildActiveInverted\n        vars['--n-item-text-color-active-hover']\n          = self.itemTextColorActiveHoverInverted\n        vars['--n-item-icon-color'] = self.itemIconColorInverted\n        vars['--n-item-icon-color-hover'] = self.itemIconColorHoverInverted\n        vars['--n-item-icon-color-active'] = self.itemIconColorActiveInverted\n        vars['--n-item-icon-color-active-hover']\n          = self.itemIconColorActiveHoverInverted\n        vars['--n-item-icon-color-child-active']\n          = self.itemIconColorChildActiveInverted\n        vars['--n-item-icon-color-child-active-hover']\n          = self.itemIconColorChildActiveHoverInverted\n        vars['--n-item-icon-color-collapsed']\n          = self.itemIconColorCollapsedInverted\n        vars['--n-item-text-color-horizontal']\n          = self.itemTextColorHorizontalInverted\n        vars['--n-item-text-color-hover-horizontal']\n          = self.itemTextColorHoverHorizontalInverted\n        vars['--n-item-text-color-active-horizontal']\n          = self.itemTextColorActiveHorizontalInverted\n        vars['--n-item-text-color-child-active-horizontal']\n          = self.itemTextColorChildActiveHorizontalInverted\n        vars['--n-item-text-color-child-active-hover-horizontal']\n          = self.itemTextColorChildActiveHoverHorizontalInverted\n        vars['--n-item-text-color-active-hover-horizontal']\n          = self.itemTextColorActiveHoverHorizontalInverted\n        vars['--n-item-icon-color-horizontal']\n          = self.itemIconColorHorizontalInverted\n        vars['--n-item-icon-color-hover-horizontal']\n          = self.itemIconColorHoverHorizontalInverted\n        vars['--n-item-icon-color-active-horizontal']\n          = self.itemIconColorActiveHorizontalInverted\n        vars['--n-item-icon-color-active-hover-horizontal']\n          = self.itemIconColorActiveHoverHorizontalInverted\n        vars['--n-item-icon-color-child-active-horizontal']\n          = self.itemIconColorChildActiveHorizontalInverted\n        vars['--n-item-icon-color-child-active-hover-horizontal']\n          = self.itemIconColorChildActiveHoverHorizontalInverted\n        vars['--n-arrow-color'] = self.arrowColorInverted\n        vars['--n-arrow-color-hover'] = self.arrowColorHoverInverted\n        vars['--n-arrow-color-active'] = self.arrowColorActiveInverted\n        vars['--n-arrow-color-active-hover']\n          = self.arrowColorActiveHoverInverted\n        vars['--n-arrow-color-child-active']\n          = self.arrowColorChildActiveInverted\n        vars['--n-arrow-color-child-active-hover']\n          = self.arrowColorChildActiveHoverInverted\n        vars['--n-item-color-hover'] = self.itemColorHoverInverted\n        vars['--n-item-color-active'] = self.itemColorActiveInverted\n        vars['--n-item-color-active-hover'] = self.itemColorActiveHoverInverted\n        vars['--n-item-color-active-collapsed']\n          = self.itemColorActiveCollapsedInverted\n      }\n      else {\n        vars['--n-group-text-color'] = self.groupTextColor\n        vars['--n-color'] = self.color\n        vars['--n-item-text-color'] = self.itemTextColor\n        vars['--n-item-text-color-hover'] = self.itemTextColorHover\n        vars['--n-item-text-color-active'] = self.itemTextColorActive\n        vars['--n-item-text-color-child-active'] = self.itemTextColorChildActive\n        vars['--n-item-text-color-child-active-hover']\n          = self.itemTextColorChildActiveHover\n        vars['--n-item-text-color-active-hover'] = self.itemTextColorActiveHover\n        vars['--n-item-icon-color'] = self.itemIconColor\n        vars['--n-item-icon-color-hover'] = self.itemIconColorHover\n        vars['--n-item-icon-color-active'] = self.itemIconColorActive\n        vars['--n-item-icon-color-active-hover'] = self.itemIconColorActiveHover\n        vars['--n-item-icon-color-child-active'] = self.itemIconColorChildActive\n        vars['--n-item-icon-color-child-active-hover']\n          = self.itemIconColorChildActiveHover\n        vars['--n-item-icon-color-collapsed'] = self.itemIconColorCollapsed\n        vars['--n-item-text-color-horizontal'] = self.itemTextColorHorizontal\n        vars['--n-item-text-color-hover-horizontal']\n          = self.itemTextColorHoverHorizontal\n        vars['--n-item-text-color-active-horizontal']\n          = self.itemTextColorActiveHorizontal\n        vars['--n-item-text-color-child-active-horizontal']\n          = self.itemTextColorChildActiveHorizontal\n        vars['--n-item-text-color-child-active-hover-horizontal']\n          = self.itemTextColorChildActiveHoverHorizontal\n        vars['--n-item-text-color-active-hover-horizontal']\n          = self.itemTextColorActiveHoverHorizontal\n        vars['--n-item-icon-color-horizontal'] = self.itemIconColorHorizontal\n        vars['--n-item-icon-color-hover-horizontal']\n          = self.itemIconColorHoverHorizontal\n        vars['--n-item-icon-color-active-horizontal']\n          = self.itemIconColorActiveHorizontal\n        vars['--n-item-icon-color-active-hover-horizontal']\n          = self.itemIconColorActiveHoverHorizontal\n        vars['--n-item-icon-color-child-active-horizontal']\n          = self.itemIconColorChildActiveHorizontal\n        vars['--n-item-icon-color-child-active-hover-horizontal']\n          = self.itemIconColorChildActiveHoverHorizontal\n        vars['--n-arrow-color'] = self.arrowColor\n        vars['--n-arrow-color-hover'] = self.arrowColorHover\n        vars['--n-arrow-color-active'] = self.arrowColorActive\n        vars['--n-arrow-color-active-hover'] = self.arrowColorActiveHover\n        vars['--n-arrow-color-child-active'] = self.arrowColorChildActive\n        vars['--n-arrow-color-child-active-hover']\n          = self.arrowColorChildActiveHover\n        vars['--n-item-color-hover'] = self.itemColorHover\n        vars['--n-item-color-active'] = self.itemColorActive\n        vars['--n-item-color-active-hover'] = self.itemColorActiveHover\n        vars['--n-item-color-active-collapsed'] = self.itemColorActiveCollapsed\n      }\n      return vars\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'menu',\n          computed(() => (props.inverted ? 'a' : 'b')),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    const ellipsisNodeId = createId()\n    const overflowRef = ref<VOverflowInst | null>(null)\n    const counterRef = ref<HTMLElement | null>(null)\n    let isFirstResize = true\n    const onResize = (): void => {\n      if (isFirstResize) {\n        isFirstResize = false\n      }\n      else {\n        overflowRef.value?.sync({\n          showAllItemsBeforeCalculate: true\n        })\n      }\n    }\n    function getCounter(): HTMLElement | null {\n      return document.getElementById(ellipsisNodeId)\n    }\n    const ellipsisFromIndexRef = ref(-1)\n    function onUpdateCount(count: number): void {\n      ellipsisFromIndexRef.value = props.options.length - count\n    }\n    function onUpdateOverflow(overflow: boolean): void {\n      if (!overflow) {\n        ellipsisFromIndexRef.value = -1\n      }\n    }\n    const ellipsisOptionRef = computed<MenuOption>(() => {\n      const ellipsisFromIndex = ellipsisFromIndexRef.value\n      const option: MenuOption = {\n        children:\n          ellipsisFromIndex === -1 ? [] : props.options.slice(ellipsisFromIndex)\n      }\n      return option\n    })\n    const ellipsisTreeMateRef = computed(() => {\n      const { childrenField, disabledField, keyField } = props\n      return createTreeMate<MenuOption, MenuGroupOption, MenuIgnoredOption>(\n        [ellipsisOptionRef.value],\n        {\n          getIgnored(node) {\n            return isIgnoredNode(node)\n          },\n          getChildren(node) {\n            return node[childrenField]\n          },\n          getDisabled(node) {\n            return (node as any)[disabledField]\n          },\n          getKey(node) {\n            return (node[keyField] as Key) ?? node.name\n          }\n        }\n      )\n    })\n    const emptyTmNodeRef = computed(() => {\n      return createTreeMate<MenuOption, MenuGroupOption, MenuIgnoredOption>([\n        {}\n      ]).treeNodes[0]\n    })\n    function renderCounter(): VNodeChild {\n      if (ellipsisFromIndexRef.value === -1) {\n        // Only a placeholder\n        return (\n          <NSubmenu\n            root\n            level={0}\n            key=\"__ellpisisGroupPlaceholder__\"\n            internalKey=\"__ellpisisGroupPlaceholder__\"\n            title=\"···\"\n            tmNode={emptyTmNodeRef.value}\n            domId={ellipsisNodeId}\n            isEllipsisPlaceholder\n          />\n        )\n      }\n      const tmNode = ellipsisTreeMateRef.value.treeNodes[0]\n      const activePath = activePathRef.value\n      const childActive = !!tmNode.children?.some((tmNode) => {\n        return activePath.includes(tmNode.key)\n      })\n      return (\n        <NSubmenu\n          level={0}\n          root\n          key=\"__ellpisisGroup__\"\n          internalKey=\"__ellpisisGroup__\"\n          title=\"···\"\n          virtualChildActive={childActive}\n          tmNode={tmNode}\n          domId={ellipsisNodeId}\n          rawNodes={(tmNode.rawNode as MenuOption).children || []}\n          tmNodes={tmNode.children || []}\n          isEllipsisPlaceholder\n        />\n      )\n    }\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      controlledExpandedKeys: controlledExpandedKeysRef,\n      uncontrolledExpanededKeys: uncontrolledExpandedKeysRef,\n      mergedExpandedKeys: mergedExpandedKeysRef,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      activePath: activePathRef,\n      tmNodes: tmNodesRef,\n      mergedTheme: themeRef,\n      mergedCollapsed: mergedCollapsedRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      // reduce dts: string ref only, type unused in render\n      overflowRef: overflowRef as unknown,\n      counterRef,\n      updateCounter: () => {},\n      onResize,\n      onUpdateOverflow,\n      onUpdateCount,\n      renderCounter,\n      getCounter,\n      onRender: themeClassHandle?.onRender,\n      showOption,\n      deriveResponsiveState: onResize\n    } satisfies MenuInst & Record<string, unknown>\n  },\n  render() {\n    const { mergedClsPrefix, mode, themeClass, onRender } = this\n    onRender?.()\n    const renderMenuItemNodes = (): VNodeChild[] =>\n      this.tmNodes.map(tmNode => itemRenderer(tmNode, this.$props))\n    const horizontal = mode === 'horizontal'\n    const finalResponsive = horizontal && this.responsive\n    const renderMainNode = (): VNode =>\n      h(\n        'div',\n        mergeProps(this.$attrs, {\n          role: mode === 'horizontal' ? 'menubar' : 'menu',\n          class: [\n            `${mergedClsPrefix}-menu`,\n            themeClass,\n            `${mergedClsPrefix}-menu--${mode}`,\n            finalResponsive && `${mergedClsPrefix}-menu--responsive`,\n            this.mergedCollapsed && `${mergedClsPrefix}-menu--collapsed`\n          ],\n          style: this.cssVars\n        }),\n        finalResponsive ? (\n          <VOverflow\n            ref=\"overflowRef\"\n            onUpdateOverflow={this.onUpdateOverflow}\n            getCounter={this.getCounter}\n            onUpdateCount={this.onUpdateCount}\n            updateCounter={this.updateCounter}\n            style={{\n              width: '100%',\n              display: 'flex',\n              overflow: 'hidden'\n            }}\n          >\n            {{\n              default: renderMenuItemNodes,\n              counter: this.renderCounter\n            }}\n          </VOverflow>\n        ) : (\n          renderMenuItemNodes()\n        )\n      )\n    return finalResponsive ? (\n      <VResizeObserver onResize={this.onResize}>\n        {{ default: renderMainNode }}\n      </VResizeObserver>\n    ) : (\n      renderMainNode()\n    )\n  }\n})\n","const easeOut = (t: number): number => 1 - (1 - t) ** 5\n\n// Tween\nexport interface TweenProps {\n  from: number\n  to: number\n  duration: number\n  onUpdate: (currentValue: number) => void\n  onFinish: () => void\n}\n\nexport function tween(props: TweenProps): void {\n  const { from, to, duration, onUpdate, onFinish } = props\n  const startTime = performance.now()\n  const tick = (): void => {\n    const current = performance.now()\n    const elapsedTime = Math.min(current - startTime, duration)\n    const currentValue = from + (to - from) * easeOut(elapsedTime / duration)\n    if (elapsedTime === duration) {\n      onFinish()\n      return\n    }\n    onUpdate(currentValue)\n    requestAnimationFrame(tick)\n  }\n  tick()\n}\n","import type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { round } from 'lodash-es'\nimport { computed, defineComponent, onMounted, ref, watchEffect } from 'vue'\nimport { useLocale } from '../../_mixins'\nimport { tween } from './utils'\n\nexport const numberAnimationProps = {\n  to: {\n    type: Number,\n    default: 0\n  },\n  precision: {\n    type: Number,\n    default: 0\n  },\n  showSeparator: Boolean,\n  locale: String,\n  from: { type: Number, default: 0 },\n  active: {\n    type: Boolean,\n    default: true\n  },\n  duration: {\n    type: Number,\n    default: 2000\n  },\n  onFinish: Function as PropType<() => void>\n}\n\nexport type NumberAnimationProps = ExtractPublicPropTypes<\n  typeof numberAnimationProps\n>\n\nexport interface NumberAnimationInst {\n  play: () => void\n}\n\nexport default defineComponent({\n  name: 'NumberAnimation',\n  props: numberAnimationProps,\n  setup(props) {\n    const { localeRef } = useLocale('name')\n    const { duration } = props\n    const displayedValueRef = ref(props.from)\n    const mergedLocaleRef = computed(() => {\n      const { locale } = props\n      if (locale !== undefined)\n        return locale\n      return localeRef.value\n    })\n    let animating = false\n    const onUpdate = (currentValue: number): void => {\n      displayedValueRef.value = currentValue\n    }\n    const onFinish = (): void => {\n      displayedValueRef.value = props.to\n      animating = false\n      props.onFinish?.()\n    }\n    const animate = (\n      from: number = props.from,\n      to: number = props.to\n    ): void => {\n      animating = true\n      displayedValueRef.value = props.from\n      if (from !== to) {\n        tween({\n          from,\n          to,\n          duration,\n          onUpdate,\n          onFinish\n        })\n      }\n    }\n    const formattedValueRef = computed(() => {\n      const formatted: string = round(\n        displayedValueRef.value,\n        props.precision\n      ).toFixed(props.precision)\n      const splitValue = formatted.split('.')\n      const numberFormatter = new Intl.NumberFormat(mergedLocaleRef.value)\n      const decimalSeparator = numberFormatter\n        .formatToParts(0.5)\n        .find(part => part.type === 'decimal')\n        ?.value\n      const integer = props.showSeparator\n        ? numberFormatter.format(Number(splitValue[0]))\n        : splitValue[0]\n      const decimal = splitValue[1]\n      return {\n        integer,\n        decimal,\n        decimalSeparator\n      }\n    })\n    function play(): void {\n      if (animating)\n        return\n      animate()\n    }\n    onMounted(() => {\n      watchEffect(() => {\n        if (props.active)\n          animate()\n      })\n    })\n    const exposedMethods: NumberAnimationInst = { play }\n    return {\n      formattedValue: formattedValueRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const {\n      formattedValue: { integer, decimal, decimalSeparator }\n    } = this\n    return [integer, decimal ? decimalSeparator : null, decimal]\n  }\n})\n","import { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-title-font-size\n// --n-title-text-color\n// --n-font-size\n// --n-subtitle-text-color\n// --n-back-color\n// --n-back-color-hover\n// --n-back-color-pressed\n// --n-back-size\n// --n-title-font-weight\n// --n-bezier\nexport default c([\n  cB('page-header-header', `\n    margin-bottom: 20px;\n  `),\n  cB('page-header', `\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    line-height: 1.5;\n    font-size: var(--n-font-size);\n  `, [\n    cE('main', `\n      display: flex;\n      flex-wrap: nowrap;\n      align-items: center;\n    `),\n    cE('back', `\n      display: flex;\n      margin-right: 16px;\n      font-size: var(--n-back-size);\n      cursor: pointer;\n      color: var(--n-back-color);\n      transition: color .3s var(--n-bezier);\n    `, [\n      c('&:hover', 'color: var(--n-back-color-hover);'),\n      c('&:active', 'color: var(--n-back-color-pressed);')\n    ]),\n    cE('avatar', `\n      display: flex;\n      margin-right: 12px\n    `),\n    cE('title', `\n      margin-right: 16px;\n      transition: color .3s var(--n-bezier);\n      font-size: var(--n-title-font-size);\n      font-weight: var(--n-title-font-weight);\n      color: var(--n-title-text-color);\n    `),\n    cE('subtitle', `\n      font-size: 14px;\n      transition: color .3s var(--n-bezier);\n      color: var(--n-subtitle-text-color);\n    `)\n  ]),\n  cB('page-header-content', `\n    font-size: var(--n-font-size);\n  `, [\n    c('&:not(:first-child)', 'margin-top: 20px;')\n  ]),\n  cB('page-header-footer', `\n    font-size: var(--n-font-size);\n  `, [\n    c('&:not(:first-child)', 'margin-top: 20px;')\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { PageHeaderTheme, PageHeaderThemeOverrides } from '../styles/light'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { ArrowBackIcon } from '../../_internal/icons'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { pageHeaderLight } from '../styles/light'\nimport style from './styles/index.cssr'\n\nexport const pageHeaderProps = {\n  ...(useTheme.props as ThemeProps<PageHeaderTheme, PageHeaderThemeOverrides>),\n  title: String,\n  subtitle: String,\n  extra: String,\n  onBack: Function as PropType<() => void>\n}\n\nexport type PageHeaderProps = ExtractPublicPropTypes<typeof pageHeaderProps>\n\nexport interface PageHeaderSlots {\n  avatar?: () => VNode[]\n  header?: () => VNode[]\n  default?: () => VNode[]\n  extra?: () => VNode[]\n  footer?: () => VNode[]\n  subtitle?: () => VNode[]\n  title?: () => VNode[]\n  back?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'PageHeader',\n  props: pageHeaderProps,\n  slots: Object as SlotsType<PageHeaderSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, mergedRtlRef, inlineThemeDisabled }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'PageHeader',\n      '-page-header',\n      style,\n      pageHeaderLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('PageHeader', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          titleTextColor,\n          subtitleTextColor,\n          backColor,\n          fontSize,\n          titleFontSize,\n          backSize,\n          titleFontWeight,\n          backColorHover,\n          backColorPressed\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-title-text-color': titleTextColor,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-font-size': fontSize,\n        '--n-back-size': backSize,\n        '--n-subtitle-text-color': subtitleTextColor,\n        '--n-back-color': backColor,\n        '--n-back-color-hover': backColorHover,\n        '--n-back-color-pressed': backColorPressed,\n        '--n-bezier': cubicBezierEaseInOut\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('page-header', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { onBack, title, subtitle, extra, mergedClsPrefix, cssVars, $slots }\n      = this\n    this.onRender?.()\n    const {\n      title: titleSlot,\n      subtitle: subtitleSlot,\n      extra: extraSlot,\n      default: defaultSlot,\n      header: headerSlot,\n      avatar: avatarSlot,\n      footer: footerSlot,\n      back: backSlot\n    } = $slots\n    const showBack = onBack\n    const showTitle = title || titleSlot\n    const showSubtitle = subtitle || subtitleSlot\n    const showExtra = extra || extraSlot\n    return (\n      <div\n        style={cssVars as any}\n        class={[\n          `${mergedClsPrefix}-page-header-wrapper`,\n          this.themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-page-header-wrapper--rtl`\n        ]}\n      >\n        {headerSlot ? (\n          <div class={`${mergedClsPrefix}-page-header-header`} key=\"breadcrumb\">\n            {headerSlot()}\n          </div>\n        ) : null}\n        {(showBack || avatarSlot || showTitle || showSubtitle || showExtra) && (\n          <div class={`${mergedClsPrefix}-page-header`} key=\"header\">\n            <div class={`${mergedClsPrefix}-page-header__main`} key=\"back\">\n              {showBack ? (\n                <div\n                  class={`${mergedClsPrefix}-page-header__back`}\n                  onClick={onBack}\n                >\n                  {backSlot ? (\n                    backSlot()\n                  ) : (\n                    <NBaseIcon clsPrefix={mergedClsPrefix}>\n                      {{\n                        default: () => <ArrowBackIcon />\n                      }}\n                    </NBaseIcon>\n                  )}\n                </div>\n              ) : null}\n              {avatarSlot ? (\n                <div class={`${mergedClsPrefix}-page-header__avatar`}>\n                  {avatarSlot()}\n                </div>\n              ) : null}\n              {showTitle ? (\n                <div\n                  class={`${mergedClsPrefix}-page-header__title`}\n                  key=\"title\"\n                >\n                  {title || titleSlot!()}\n                </div>\n              ) : null}\n              {showSubtitle ? (\n                <div\n                  class={`${mergedClsPrefix}-page-header__subtitle`}\n                  key=\"subtitle\"\n                >\n                  {subtitle || subtitleSlot!()}\n                </div>\n              ) : null}\n            </div>\n            {showExtra ? (\n              <div class={`${mergedClsPrefix}-page-header__extra`}>\n                {extra || extraSlot!()}\n              </div>\n            ) : null}\n          </div>\n        )}\n        {defaultSlot ? (\n          <div class={`${mergedClsPrefix}-page-header-content`} key=\"content\">\n            {defaultSlot()}\n          </div>\n        ) : null}\n        {footerSlot ? (\n          <div class={`${mergedClsPrefix}-page-header-footer`} key=\"footer\">\n            {footerSlot()}\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { Ref } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { PopoverInst } from '../../popover'\nimport type { PopconfirmTheme } from '../styles'\nimport type { PopconfirmSetupProps } from './Popconfirm'\nimport { createInjectionKey } from '../../_utils'\n\nexport type PopconfirmInst = PopoverInst\n\nexport interface PopconfirmInjection {\n  mergedThemeRef: Ref<MergedTheme<PopconfirmTheme>>\n  mergedClsPrefixRef: Ref<string>\n  props: PopconfirmSetupProps\n}\n\nexport const popconfirmInjectionKey\n  = createInjectionKey<PopconfirmInjection>('n-popconfirm')\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport { computed, defineComponent, h, inject, toRef } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { WarningIcon } from '../../_internal/icons'\nimport { useConfig, useLocale, useThemeClass } from '../../_mixins'\nimport { keysOf, resolveSlot, resolveWrappedSlot } from '../../_utils'\nimport { NButton } from '../../button'\nimport { popconfirmInjectionKey } from './interface'\n\nexport const panelProps = {\n  positiveText: String as PropType<string | null>,\n  negativeText: String as PropType<string | null>,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  onPositiveClick: {\n    type: Function as PropType<(e: MouseEvent) => void>,\n    required: true\n  },\n  onNegativeClick: {\n    type: Function as PropType<(e: MouseEvent) => void>,\n    required: true\n  }\n} as const\n\nexport const panelPropKeys = keysOf(panelProps)\n\nexport default defineComponent({\n  name: 'NPopconfirmPanel',\n  props: panelProps,\n  setup(props) {\n    const { localeRef } = useLocale('Popconfirm')\n    const { inlineThemeDisabled } = useConfig()\n    const {\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      props: popconfirmProps\n    } = inject(popconfirmInjectionKey)!\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { fontSize, iconSize, iconColor }\n      } = mergedThemeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-icon-size': iconSize,\n        '--n-icon-color': iconColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'popconfirm-panel',\n          undefined,\n          cssVarsRef,\n          popconfirmProps\n        )\n      : undefined\n    return {\n      ...useLocale('Popconfirm'),\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      localizedPositiveText: computed(() => {\n        return props.positiveText || localeRef.value.positiveText\n      }),\n      localizedNegativeText: computed(() => {\n        return props.negativeText || localeRef.value.negativeText\n      }),\n      positiveButtonProps: toRef(popconfirmProps, 'positiveButtonProps'),\n      negativeButtonProps: toRef(popconfirmProps, 'negativeButtonProps'),\n      handlePositiveClick(e: MouseEvent) {\n        props.onPositiveClick(e)\n      },\n      handleNegativeClick(e: MouseEvent) {\n        props.onNegativeClick(e)\n      },\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, showIcon, $slots } = this\n    const actionContentNode = resolveSlot($slots.action, () =>\n      this.negativeText === null && this.positiveText === null\n        ? []\n        : [\n            this.negativeText !== null && (\n              <NButton\n                size=\"small\"\n                onClick={this.handleNegativeClick}\n                {...this.negativeButtonProps}\n              >\n                {{ default: () => this.localizedNegativeText }}\n              </NButton>\n            ),\n            this.positiveText !== null && (\n              <NButton\n                size=\"small\"\n                type=\"primary\"\n                onClick={this.handlePositiveClick}\n                {...this.positiveButtonProps}\n              >\n                {{ default: () => this.localizedPositiveText }}\n              </NButton>\n            )\n          ])\n    this.onRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-popconfirm__panel`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      >\n        {resolveWrappedSlot($slots.default, children =>\n          showIcon || children ? (\n            <div class={`${mergedClsPrefix}-popconfirm__body`}>\n              {showIcon ? (\n                <div class={`${mergedClsPrefix}-popconfirm__icon`}>\n                  {resolveSlot($slots.icon, () => [\n                    <NBaseIcon clsPrefix={mergedClsPrefix}>\n                      {{ default: () => <WarningIcon /> }}\n                    </NBaseIcon>\n                  ])}\n                </div>\n              ) : null}\n              {children}\n            </div>\n          ) : null)}\n        {actionContentNode ? (\n          <div class={[`${mergedClsPrefix}-popconfirm__action`]}>\n            {actionContentNode}\n          </div>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-font-size\n// --n-icon-size\n// --n-bezier\n// --n-icon-color\nexport default cB('popconfirm', [\n  cE('body', `\n    font-size: var(--n-font-size);\n    display: flex;\n    align-items: center;\n    flex-wrap: nowrap;\n    position: relative;\n  `, [\n    cE('icon', `\n      display: flex;\n      font-size: var(--n-icon-size);\n      color: var(--n-icon-color);\n      transition: color .3s var(--n-bezier);\n      margin: 0 8px 0 0;\n    `)\n  ]),\n  cE('action', `\n    display: flex;\n    justify-content: flex-end;\n  `, [\n    c('&:not(:first-child)', 'margin-top: 8px'),\n    cB('button', [\n      c('&:not(:last-child)', 'margin-right: 8px;')\n    ])\n  ])\n])\n","import type { ExtractPropTypes, PropType, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ButtonProps } from '../../button'\nimport type { PopoverTrigger } from '../../popover'\nimport type { InternalPopoverInst } from '../../popover/src/interface'\nimport type { PopconfirmTheme, PopconfirmThemeOverrides } from '../styles'\nimport type { PopconfirmInst } from './interface'\nimport { defineComponent, h, provide, ref } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { call, keep, omit } from '../../_utils'\nimport { NPopover } from '../../popover'\nimport { popoverBaseProps } from '../../popover/src/Popover'\nimport { popconfirmLight } from '../styles'\nimport { popconfirmInjectionKey } from './interface'\nimport PopconfirmPanel, { panelPropKeys } from './PopconfirmPanel'\nimport style from './styles/index.cssr'\n\nexport const popconfirmProps = {\n  ...(useTheme.props as ThemeProps<PopconfirmTheme, PopconfirmThemeOverrides>),\n  ...popoverBaseProps,\n  positiveText: String as PropType<string | null>,\n  negativeText: String as PropType<string | null>,\n  showIcon: {\n    type: Boolean,\n    default: true\n  },\n  trigger: {\n    type: String as PropType<PopoverTrigger>,\n    default: 'click'\n  },\n  positiveButtonProps: Object as PropType<ButtonProps>,\n  negativeButtonProps: Object as PropType<ButtonProps>,\n  onPositiveClick: Function as PropType<\n    (e: MouseEvent) => Promise<boolean> | boolean | any\n  >,\n  onNegativeClick: Function as PropType<\n    (e: MouseEvent) => Promise<boolean> | boolean | any\n  >\n}\n\nexport type PopconfirmProps = ExtractPublicPropTypes<typeof popconfirmProps>\n\nexport type PopconfirmSetupProps = ExtractPropTypes<typeof popconfirmProps>\n\nexport interface PopconfirmSlots {\n  action?: () => VNode[]\n  default?: () => VNode[]\n  icon?: () => VNode[]\n  trigger?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Popconfirm',\n  props: popconfirmProps,\n  slots: Object as SlotsType<PopconfirmSlots>,\n  __popover__: true,\n  setup(props) {\n    const { mergedClsPrefixRef } = useConfig()\n    const themeRef = useTheme(\n      'Popconfirm',\n      '-popconfirm',\n      style,\n      popconfirmLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const popoverInstRef = ref<InternalPopoverInst | null>(null)\n    function handlePositiveClick(e: MouseEvent): void {\n      if (!popoverInstRef.value?.getMergedShow())\n        return\n      const { onPositiveClick, 'onUpdate:show': onUpdateShow } = props\n      void Promise.resolve(onPositiveClick ? onPositiveClick(e) : true).then(\n        (value) => {\n          if (value === false)\n            return\n          popoverInstRef.value?.setShow(false)\n          if (onUpdateShow)\n            call(onUpdateShow, false)\n        }\n      )\n    }\n    function handleNegativeClick(e: MouseEvent): void {\n      if (!popoverInstRef.value?.getMergedShow())\n        return\n      const { onNegativeClick, 'onUpdate:show': onUpdateShow } = props\n      void Promise.resolve(onNegativeClick ? onNegativeClick(e) : true).then(\n        (value) => {\n          if (value === false)\n            return\n          popoverInstRef.value?.setShow(false)\n          if (onUpdateShow)\n            call(onUpdateShow, false)\n        }\n      )\n    }\n    provide(popconfirmInjectionKey, {\n      mergedThemeRef: themeRef,\n      mergedClsPrefixRef,\n      props\n    })\n    const returned = {\n      setShow(value: boolean) {\n        popoverInstRef.value?.setShow(value)\n      },\n      syncPosition() {\n        popoverInstRef.value?.syncPosition()\n      },\n      mergedTheme: themeRef,\n      // reduce dts: string ref only, type unused in render\n      popoverInstRef: popoverInstRef as unknown,\n      handlePositiveClick,\n      handleNegativeClick\n    }\n    return returned satisfies PopconfirmInst\n  },\n  render() {\n    const { $slots: slots, $props: props, mergedTheme } = this\n    return (\n      <NPopover\n        {...omit(props, panelPropKeys)}\n        theme={mergedTheme.peers.Popover}\n        themeOverrides={mergedTheme.peerOverrides.Popover}\n        internalExtraClass={['popconfirm']}\n        ref=\"popoverInstRef\"\n      >\n        {{\n          trigger: slots.trigger,\n          default: () => {\n            const panelProps = keep(props, panelPropKeys)\n            return (\n              <PopconfirmPanel\n                {...{\n                  ...panelProps,\n                  onPositiveClick: this.handlePositiveClick,\n                  onNegativeClick: this.handleNegativeClick\n                }}\n              >\n                {slots}\n              </PopconfirmPanel>\n            )\n          }\n        }}\n      </NPopover>\n    )\n  }\n})\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ProgressGradient, ProgressStatus } from './public-types'\nimport { hash } from 'css-render'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\n\nconst iconMap = {\n  success: <SuccessIcon />,\n  error: <ErrorIcon />,\n  warning: <WarningIcon />,\n  info: <InfoIcon />\n}\n\nexport default defineComponent({\n  name: 'ProgressCircle',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    status: {\n      type: String as PropType<ProgressStatus>,\n      required: true\n    },\n    strokeWidth: {\n      type: Number,\n      required: true\n    },\n    fillColor: [String, Object] as PropType<string | ProgressGradient>,\n    railColor: String,\n    railStyle: [String, Object] as PropType<string | CSSProperties>,\n    percentage: {\n      type: Number,\n      default: 0\n    },\n    offsetDegree: {\n      type: Number,\n      default: 0\n    },\n    showIndicator: {\n      type: Boolean,\n      required: true\n    },\n    indicatorTextColor: String,\n    unit: String,\n    viewBoxWidth: {\n      type: Number,\n      required: true\n    },\n    gapDegree: {\n      type: Number as PropType<number>,\n      required: true\n    },\n    gapOffsetDegree: {\n      type: Number,\n      default: 0\n    }\n  },\n  setup(props, { slots }) {\n    const gradientIdRef = computed(() => {\n      const base = 'gradient'\n      const { fillColor } = props\n      if (typeof fillColor === 'object') {\n        return `${base}-${hash(JSON.stringify(fillColor))}`\n      }\n      return base\n    })\n    function getPathStyles(\n      percent: number,\n      offsetDegree: number,\n      strokeColor?: string | ProgressGradient,\n      type?: 'rail' | 'fill'\n    ): { pathString: string, pathStyle: CSSProperties } {\n      const { gapDegree, viewBoxWidth, strokeWidth } = props\n      const radius = 50\n      const beginPositionX = 0\n      const beginPositionY = radius\n      const endPositionX = 0\n      const endPositionY = 2 * radius\n      const centerX = 50 + strokeWidth / 2\n      const pathString = `M ${centerX},${centerX} m ${beginPositionX},${beginPositionY}\n      a ${radius},${radius} 0 1 1 ${endPositionX},${-endPositionY}\n      a ${radius},${radius} 0 1 1 ${-endPositionX},${endPositionY}`\n      const len = Math.PI * 2 * radius\n      const pathStyle: CSSProperties = {\n        stroke:\n          type === 'rail'\n            ? (strokeColor as string)\n            : typeof props.fillColor === 'object'\n              ? `url(#${gradientIdRef.value})`\n              : (strokeColor as string),\n        strokeDasharray: `${(Math.min(percent, 100) / 100) * (len - gapDegree)}px ${\n          viewBoxWidth * 8\n        }px`,\n        strokeDashoffset: `-${gapDegree / 2}px`,\n        transformOrigin: offsetDegree ? 'center' : undefined,\n        transform: offsetDegree ? `rotate(${offsetDegree}deg)` : undefined\n      }\n      return {\n        pathString,\n        pathStyle\n      }\n    }\n\n    const createGradientNode = (): false | JSX.Element => {\n      const isGradient = typeof props.fillColor === 'object'\n      const from = isGradient ? props.fillColor.stops[0] : ''\n      const to = isGradient ? props.fillColor.stops[1] : ''\n      return (\n        isGradient && (\n          <defs>\n            <linearGradient\n              id={gradientIdRef.value}\n              x1=\"0%\"\n              y1=\"100%\"\n              x2=\"100%\"\n              y2=\"0%\"\n            >\n              <stop offset=\"0%\" stop-color={from} />\n              <stop offset=\"100%\" stop-color={to} />\n            </linearGradient>\n          </defs>\n        )\n      )\n    }\n\n    return () => {\n      const {\n        fillColor,\n        railColor,\n        strokeWidth,\n        offsetDegree,\n        status,\n        percentage,\n        showIndicator,\n        indicatorTextColor,\n        unit,\n        gapOffsetDegree,\n        clsPrefix\n      } = props\n      const { pathString: railPathString, pathStyle: railPathStyle }\n        = getPathStyles(100, 0, railColor, 'rail')\n      const { pathString: fillPathString, pathStyle: fillPathStyle }\n        = getPathStyles(percentage, offsetDegree, fillColor, 'fill')\n      const viewBoxSize = 100 + strokeWidth\n      return (\n        <div class={`${clsPrefix}-progress-content`} role=\"none\">\n          <div class={`${clsPrefix}-progress-graph`} aria-hidden>\n            <div\n              class={`${clsPrefix}-progress-graph-circle`}\n              style={{\n                transform: gapOffsetDegree\n                  ? `rotate(${gapOffsetDegree}deg)`\n                  : undefined\n              }}\n            >\n              <svg viewBox={`0 0 ${viewBoxSize} ${viewBoxSize}`}>\n                {createGradientNode()}\n                <g>\n                  <path\n                    class={`${clsPrefix}-progress-graph-circle-rail`}\n                    d={railPathString}\n                    stroke-width={strokeWidth}\n                    stroke-linecap=\"round\"\n                    fill=\"none\"\n                    style={railPathStyle}\n                  />\n                </g>\n                <g>\n                  <path\n                    class={[\n                      `${clsPrefix}-progress-graph-circle-fill`,\n                      percentage === 0\n                      && `${clsPrefix}-progress-graph-circle-fill--empty`\n                    ]}\n                    d={fillPathString}\n                    stroke-width={strokeWidth}\n                    stroke-linecap=\"round\"\n                    fill=\"none\"\n                    style={fillPathStyle}\n                  />\n                </g>\n              </svg>\n            </div>\n          </div>\n          {showIndicator ? (\n            <div>\n              {slots.default ? (\n                <div class={`${clsPrefix}-progress-custom-content`} role=\"none\">\n                  {slots.default()}\n                </div>\n              ) : status !== 'default' ? (\n                <div class={`${clsPrefix}-progress-icon`} aria-hidden>\n                  <NBaseIcon clsPrefix={clsPrefix}>\n                    {{\n                      default: () => iconMap[status]\n                    }}\n                  </NBaseIcon>\n                </div>\n              ) : (\n                <div\n                  class={`${clsPrefix}-progress-text`}\n                  style={{\n                    color: indicatorTextColor\n                  }}\n                  role=\"none\"\n                >\n                  <span class={`${clsPrefix}-progress-text__percentage`}>\n                    {percentage}\n                  </span>\n                  <span class={`${clsPrefix}-progress-text__unit`}>{unit}</span>\n                </div>\n              )}\n            </div>\n          ) : null}\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ProgressGradient, ProgressStatus } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  ErrorIcon as ErrorCircleIcon,\n  InfoIcon as InfoCircleIcon,\n  SuccessIcon as SuccessCircleIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { formatLength } from '../../_utils'\n\nconst iconMap = {\n  success: <SuccessCircleIcon />,\n  error: <ErrorCircleIcon />,\n  warning: <WarningIcon />,\n  info: <InfoCircleIcon />\n}\n\nexport default defineComponent({\n  name: 'ProgressLine',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    percentage: {\n      type: Number,\n      default: 0\n    },\n    railColor: String,\n    railStyle: [String, Object] as PropType<string | CSSProperties>,\n    fillColor: [String, Object] as PropType<string | ProgressGradient>,\n    status: {\n      type: String as PropType<ProgressStatus>,\n      required: true\n    },\n    indicatorPlacement: {\n      type: String as PropType<'inside' | 'outside'>,\n      required: true\n    },\n    indicatorTextColor: String,\n    unit: {\n      type: String,\n      default: '%'\n    },\n    processing: {\n      type: Boolean,\n      required: true\n    },\n    showIndicator: {\n      type: Boolean,\n      required: true\n    },\n    height: [String, Number],\n    railBorderRadius: [String, Number],\n    fillBorderRadius: [String, Number]\n  },\n  setup(props, { slots }) {\n    const styleHeightRef = computed(() => {\n      return formatLength(props.height)\n    })\n    const styleFillColorRef = computed(() => {\n      return typeof props.fillColor === 'object'\n        ? `linear-gradient(to right, ${props.fillColor?.stops[0]} , ${props.fillColor?.stops[1]})`\n        : props.fillColor\n    })\n    const styleRailBorderRadiusRef = computed(() => {\n      if (props.railBorderRadius !== undefined) {\n        return formatLength(props.railBorderRadius)\n      }\n      if (props.height !== undefined) {\n        return formatLength(props.height, { c: 0.5 })\n      }\n      return ''\n    })\n    const styleFillBorderRadiusRef = computed(() => {\n      if (props.fillBorderRadius !== undefined) {\n        return formatLength(props.fillBorderRadius)\n      }\n      if (props.railBorderRadius !== undefined) {\n        return formatLength(props.railBorderRadius)\n      }\n      if (props.height !== undefined) {\n        return formatLength(props.height, { c: 0.5 })\n      }\n      return ''\n    })\n    return () => {\n      const {\n        indicatorPlacement,\n        railColor,\n        railStyle,\n        percentage,\n        unit,\n        indicatorTextColor,\n        status,\n        showIndicator,\n        processing,\n        clsPrefix\n      } = props\n      return (\n        <div class={`${clsPrefix}-progress-content`} role=\"none\">\n          <div class={`${clsPrefix}-progress-graph`} aria-hidden>\n            <div\n              class={[\n                `${clsPrefix}-progress-graph-line`,\n                {\n                  [`${clsPrefix}-progress-graph-line--indicator-${indicatorPlacement}`]: true\n                }\n              ]}\n            >\n              <div\n                class={`${clsPrefix}-progress-graph-line-rail`}\n                style={\n                  [\n                    {\n                      backgroundColor: railColor,\n                      height: styleHeightRef.value,\n                      borderRadius: styleRailBorderRadiusRef.value\n                    },\n                    railStyle\n                  ] as any\n                }\n              >\n                <div\n                  class={[\n                    `${clsPrefix}-progress-graph-line-fill`,\n                    processing\n                    && `${clsPrefix}-progress-graph-line-fill--processing`\n                  ]}\n                  style={{\n                    maxWidth: `${props.percentage}%`,\n                    background: styleFillColorRef.value,\n                    height: styleHeightRef.value,\n                    lineHeight: styleHeightRef.value,\n                    borderRadius: styleFillBorderRadiusRef.value\n                  }}\n                >\n                  {indicatorPlacement === 'inside' ? (\n                    <div\n                      class={`${clsPrefix}-progress-graph-line-indicator`}\n                      style={{\n                        color: indicatorTextColor\n                      }}\n                    >\n                      {slots.default ? slots.default() : `${percentage}${unit}`}\n                    </div>\n                  ) : null}\n                </div>\n              </div>\n            </div>\n          </div>\n          {showIndicator && indicatorPlacement === 'outside' ? (\n            <div>\n              {slots.default ? (\n                <div\n                  class={`${clsPrefix}-progress-custom-content`}\n                  style={{\n                    color: indicatorTextColor\n                  }}\n                  role=\"none\"\n                >\n                  {slots.default()}\n                </div>\n              ) : status === 'default' ? (\n                <div\n                  role=\"none\"\n                  class={`${clsPrefix}-progress-icon ${clsPrefix}-progress-icon--as-text`}\n                  style={{\n                    color: indicatorTextColor\n                  }}\n                >\n                  {percentage}\n                  {unit}\n                </div>\n              ) : (\n                <div class={`${clsPrefix}-progress-icon`} aria-hidden>\n                  <NBaseIcon clsPrefix={clsPrefix}>\n                    {{ default: () => iconMap[status] }}\n                  </NBaseIcon>\n                </div>\n              )}\n            </div>\n          ) : null}\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, PropType } from 'vue'\nimport type { ProgressGradient } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\n\nfunction circlePath(r: number, sw: number, vw: number = 100): string {\n  return `m ${vw / 2} ${vw / 2 - r} a ${r} ${r} 0 1 1 0 ${\n    2 * r\n  } a ${r} ${r} 0 1 1 0 -${2 * r}`\n}\n\nexport default defineComponent({\n  name: 'ProgressMultipleCircle',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    viewBoxWidth: {\n      type: Number,\n      required: true\n    },\n    percentage: {\n      type: Array as PropType<number[]>,\n      default: [0]\n    },\n    strokeWidth: {\n      type: Number,\n      required: true\n    },\n    circleGap: {\n      type: Number,\n      required: true\n    },\n    showIndicator: {\n      type: Boolean,\n      required: true\n    },\n    fillColor: {\n      type: Array as PropType<string[] | ProgressGradient[]>,\n      default: () => []\n    },\n    railColor: {\n      type: Array as PropType<string[]>,\n      default: () => []\n    },\n    railStyle: {\n      type: Array as PropType<Array<string | CSSProperties>>,\n      default: () => []\n    }\n  },\n  setup(props, { slots }) {\n    const strokeDasharrayRef = computed(() => {\n      const strokeDasharrays = props.percentage.map(\n        (v, i) =>\n          `${\n            ((Math.PI * v) / 100)\n            * (props.viewBoxWidth / 2\n              - (props.strokeWidth / 2) * (1 + 2 * i)\n              - props.circleGap * i)\n            * 2\n          }, ${props.viewBoxWidth * 8}`\n      )\n      return strokeDasharrays\n    })\n\n    const createGradientNode = (\n      p: number,\n      index: number\n    ): false | JSX.Element => {\n      const item = props.fillColor[index]\n      const form = typeof item === 'object' ? item.stops[0] : ''\n      const to = typeof item === 'object' ? item.stops[1] : ''\n      return (\n        typeof props.fillColor[index] === 'object' && (\n          <linearGradient\n            id={`gradient-${index}`}\n            x1=\"100%\"\n            y1=\"0%\"\n            x2=\"0%\"\n            y2=\"100%\"\n          >\n            <stop offset=\"0%\" stop-color={form} />\n            <stop offset=\"100%\" stop-color={to} />\n          </linearGradient>\n        )\n      )\n    }\n\n    return () => {\n      const {\n        viewBoxWidth,\n        strokeWidth,\n        circleGap,\n        showIndicator,\n        fillColor,\n        railColor,\n        railStyle,\n        percentage,\n        clsPrefix\n      } = props\n      return (\n        <div class={`${clsPrefix}-progress-content`} role=\"none\">\n          <div class={`${clsPrefix}-progress-graph`} aria-hidden>\n            <div class={`${clsPrefix}-progress-graph-circle`}>\n              <svg viewBox={`0 0 ${viewBoxWidth} ${viewBoxWidth}`}>\n                <defs>\n                  {percentage.map((p, index) => {\n                    return createGradientNode(p, index)\n                  })}\n                </defs>\n                {percentage.map((p, index) => {\n                  return (\n                    <g key={index}>\n                      <path\n                        class={`${clsPrefix}-progress-graph-circle-rail`}\n                        d={circlePath(\n                          viewBoxWidth / 2\n                          - (strokeWidth / 2) * (1 + 2 * index)\n                          - circleGap * index,\n                          strokeWidth,\n                          viewBoxWidth\n                        )}\n                        stroke-width={strokeWidth}\n                        stroke-linecap=\"round\"\n                        fill=\"none\"\n                        style={\n                          [\n                            {\n                              strokeDashoffset: 0,\n                              stroke: railColor[index]\n                            },\n                            railStyle[index]\n                          ] as any\n                        }\n                      />\n                      <path\n                        class={[\n                          `${clsPrefix}-progress-graph-circle-fill`,\n                          p === 0\n                          && `${clsPrefix}-progress-graph-circle-fill--empty`\n                        ]}\n                        d={circlePath(\n                          viewBoxWidth / 2\n                          - (strokeWidth / 2) * (1 + 2 * index)\n                          - circleGap * index,\n                          strokeWidth,\n                          viewBoxWidth\n                        )}\n                        stroke-width={strokeWidth}\n                        stroke-linecap=\"round\"\n                        fill=\"none\"\n                        style={{\n                          strokeDasharray: strokeDasharrayRef.value[index],\n                          strokeDashoffset: 0,\n                          stroke:\n                            typeof fillColor[index] === 'object'\n                              ? `url(#gradient-${index})`\n                              : fillColor[index]\n                        }}\n                      />\n                    </g>\n                  )\n                })}\n              </svg>\n            </div>\n          </div>\n          {showIndicator && slots.default ? (\n            <div>\n              <div class={`${clsPrefix}-progress-text`}>{slots.default()}</div>\n            </div>\n          ) : null}\n        </div>\n      )\n    }\n  }\n})\n","import { c, cB, cM } from '../../../_utils/cssr'\n\n// vars\n// --n-bezier\n// --n-fill-color\n// --n-font-size\n// --n-font-size-circle\n// --n-font-weight-circle\n// --n-icon-color\n// --n-icon-size-circle\n// --n-icon-size-line\n// --n-line-bg-processing\n// --n-rail-color\n// --n-rail-height\n// --n-text-color-circle\n// --n-text-color-line-inner\n// --n-text-color-line-outer\nexport default c([\n  cB('progress', {\n    display: 'inline-block'\n  }, [\n    cB('progress-icon', `\n      color: var(--n-icon-color);\n      transition: color .3s var(--n-bezier);\n    `),\n    cM('line', `\n      width: 100%;\n      display: block;\n    `, [\n      cB('progress-content', `\n        display: flex;\n        align-items: center;\n      `, [\n        cB('progress-graph', {\n          flex: 1\n        })\n      ]),\n      cB('progress-custom-content', {\n        marginLeft: '14px'\n      }),\n      cB('progress-icon', `\n        width: 30px;\n        padding-left: 14px;\n        height: var(--n-icon-size-line);\n        line-height: var(--n-icon-size-line);\n        font-size: var(--n-icon-size-line);\n      `, [\n        cM('as-text', `\n          color: var(--n-text-color-line-outer);\n          text-align: center;\n          width: 40px;\n          font-size: var(--n-font-size);\n          padding-left: 4px;\n          transition: color .3s var(--n-bezier);\n        `)\n      ])\n    ]),\n    cM('circle, dashboard', {\n      width: '120px'\n    }, [\n      cB('progress-custom-content', `\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        transform: translateX(-50%) translateY(-50%);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `),\n      cB('progress-text', `\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        transform: translateX(-50%) translateY(-50%);\n        display: flex;\n        align-items: center;\n        color: inherit;\n        font-size: var(--n-font-size-circle);\n        color: var(--n-text-color-circle);\n        font-weight: var(--n-font-weight-circle);\n        transition: color .3s var(--n-bezier);\n        white-space: nowrap;\n      `),\n      cB('progress-icon', `\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        transform: translateX(-50%) translateY(-50%);\n        display: flex;\n        align-items: center;\n        color: var(--n-icon-color);\n        font-size: var(--n-icon-size-circle);\n      `)\n    ]),\n    cM('multiple-circle', `\n      width: 200px;\n      color: inherit;\n    `, [\n      cB('progress-text', `\n        font-weight: var(--n-font-weight-circle);\n        color: var(--n-text-color-circle);\n        position: absolute;\n        left: 50%;\n        top: 50%;\n        transform: translateX(-50%) translateY(-50%);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: color .3s var(--n-bezier);\n      `)\n    ]),\n    cB('progress-content', {\n      position: 'relative'\n    }),\n    cB('progress-graph', {\n      position: 'relative'\n    }, [\n      cB('progress-graph-circle', [\n        c('svg', {\n          verticalAlign: 'bottom'\n        }),\n        cB('progress-graph-circle-fill', `\n          stroke: var(--n-fill-color);\n          transition:\n            opacity .3s var(--n-bezier),\n            stroke .3s var(--n-bezier),\n            stroke-dasharray .3s var(--n-bezier);\n        `, [\n          cM('empty', {\n            opacity: 0\n          })\n        ]),\n        cB('progress-graph-circle-rail', `\n          transition: stroke .3s var(--n-bezier);\n          overflow: hidden;\n          stroke: var(--n-rail-color);\n        `)\n      ]),\n      cB('progress-graph-line', [\n        cM('indicator-inside', [\n          cB('progress-graph-line-rail', `\n            height: 16px;\n            line-height: 16px;\n            border-radius: 10px;\n          `, [\n            cB('progress-graph-line-fill', `\n              height: inherit;\n              border-radius: 10px;\n            `),\n            cB('progress-graph-line-indicator', `\n              background: #0000;\n              white-space: nowrap;\n              text-align: right;\n              margin-left: 14px;\n              margin-right: 14px;\n              height: inherit;\n              font-size: 12px;\n              color: var(--n-text-color-line-inner);\n              transition: color .3s var(--n-bezier);\n            `)\n          ])\n        ]),\n        cM('indicator-inside-label', `\n          height: 16px;\n          display: flex;\n          align-items: center;\n        `, [\n          cB('progress-graph-line-rail', `\n            flex: 1;\n            transition: background-color .3s var(--n-bezier);\n          `),\n          cB('progress-graph-line-indicator', `\n            background: var(--n-fill-color);\n            font-size: 12px;\n            transform: translateZ(0);\n            display: flex;\n            vertical-align: middle;\n            height: 16px;\n            line-height: 16px;\n            padding: 0 10px;\n            border-radius: 10px;\n            position: absolute;\n            white-space: nowrap;\n            color: var(--n-text-color-line-inner);\n            transition:\n              right .2s var(--n-bezier),\n              color .3s var(--n-bezier),\n              background-color .3s var(--n-bezier);\n          `)\n        ]),\n        cB('progress-graph-line-rail', `\n          position: relative;\n          overflow: hidden;\n          height: var(--n-rail-height);\n          border-radius: 5px;\n          background-color: var(--n-rail-color);\n          transition: background-color .3s var(--n-bezier);\n        `, [\n          cB('progress-graph-line-fill', `\n            background: var(--n-fill-color);\n            position: relative;\n            border-radius: 5px;\n            height: inherit;\n            width: 100%;\n            max-width: 0%;\n            transition:\n              background-color .3s var(--n-bezier),\n              max-width .2s var(--n-bezier);\n          `, [\n            cM('processing', [\n              c('&::after', `\n                content: \"\";\n                background-image: var(--n-line-bg-processing);\n                animation: progress-processing-animation 2s var(--n-bezier) infinite;\n              `)\n            ])\n          ])\n        ])\n      ])\n    ])\n  ]),\n  c('@keyframes progress-processing-animation', `\n    0% {\n      position: absolute;\n      left: 0;\n      top: 0;\n      bottom: 0;\n      right: 100%;\n      opacity: 1;\n    }\n    66% {\n      position: absolute;\n      left: 0;\n      top: 0;\n      bottom: 0;\n      right: 0;\n      opacity: 0;\n    }\n    100% {\n      position: absolute;\n      left: 0;\n      top: 0;\n      bottom: 0;\n      right: 0;\n      opacity: 0;\n    }\n  `)\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ProgressTheme, ProgressThemeOverrides } from '../styles'\nimport type { ProgressGradient, ProgressStatus } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey } from '../../_utils'\nimport { progressLight } from '../styles'\nimport Circle from './Circle'\nimport Line from './Line'\nimport MultipleCircle from './MultipleCircle'\nimport style from './styles/index.cssr'\n\nexport const progressProps = {\n  ...(useTheme.props as ThemeProps<ProgressTheme, ProgressThemeOverrides>),\n  processing: Boolean,\n  type: {\n    type: String as PropType<\n      'line' | 'circle' | 'multiple-circle' | 'dashboard'\n    >,\n    default: 'line'\n  },\n  gapDegree: Number,\n  gapOffsetDegree: Number,\n  status: {\n    type: String as PropType<ProgressStatus>,\n    default: 'default'\n  },\n  railColor: [String, Array] as PropType<string | string[]>,\n  railStyle: [String, Array] as PropType<\n    string | CSSProperties | Array<string | CSSProperties>\n  >,\n  color: [String, Array, Object] as PropType<\n    string | string[] | ProgressGradient | ProgressGradient[]\n  >,\n  viewBoxWidth: {\n    type: Number,\n    default: 100\n  },\n  strokeWidth: {\n    type: Number,\n    default: 7\n  },\n  percentage: [Number, Array] as PropType<number | number[]>,\n  unit: {\n    type: String,\n    default: '%'\n  },\n  showIndicator: {\n    type: Boolean,\n    default: true\n  },\n  indicatorPosition: {\n    type: String as PropType<'inside' | 'outside'>,\n    default: 'outside'\n  },\n  indicatorPlacement: {\n    type: String as PropType<'inside' | 'outside'>,\n    default: 'outside'\n  },\n  indicatorTextColor: String,\n  circleGap: {\n    type: Number,\n    default: 1\n  },\n  height: Number,\n  borderRadius: [String, Number] as PropType<string | number>,\n  fillBorderRadius: [String, Number] as PropType<string | number>,\n  offsetDegree: Number\n} as const\n\nexport type ProgressProps = ExtractPublicPropTypes<typeof progressProps>\n\nexport default defineComponent({\n  name: 'Progress',\n  props: progressProps,\n  setup(props) {\n    const mergedIndicatorPlacementRef = computed(() => {\n      return props.indicatorPlacement || props.indicatorPosition\n    })\n    const gapDeg = computed(() => {\n      if (props.gapDegree || props.gapDegree === 0) {\n        return props.gapDegree\n      }\n      if (props.type === 'dashboard') {\n        return 75\n      }\n      return undefined\n    })\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Progress',\n      '-progress',\n      style,\n      progressLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { status } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontSize,\n          fontSizeCircle,\n          railColor,\n          railHeight,\n          iconSizeCircle,\n          iconSizeLine,\n          textColorCircle,\n          textColorLineInner,\n          textColorLineOuter,\n          lineBgProcessing,\n          fontWeightCircle,\n          [createKey('iconColor', status)]: iconColor,\n          [createKey('fillColor', status)]: fillColor\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-fill-color': fillColor,\n        '--n-font-size': fontSize,\n        '--n-font-size-circle': fontSizeCircle,\n        '--n-font-weight-circle': fontWeightCircle,\n        '--n-icon-color': iconColor,\n        '--n-icon-size-circle': iconSizeCircle,\n        '--n-icon-size-line': iconSizeLine,\n        '--n-line-bg-processing': lineBgProcessing,\n        '--n-rail-color': railColor,\n        '--n-rail-height': railHeight,\n        '--n-text-color-circle': textColorCircle,\n        '--n-text-color-line-inner': textColorLineInner,\n        '--n-text-color-line-outer': textColorLineOuter\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'progress',\n          computed(() => props.status[0]),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedIndicatorPlacement: mergedIndicatorPlacementRef,\n      gapDeg,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    // it's ok to expand all prop here since no slots' deps\n    const {\n      type,\n      cssVars,\n      indicatorTextColor,\n      showIndicator,\n      status,\n      railColor,\n      railStyle,\n      color,\n      percentage,\n      viewBoxWidth,\n      strokeWidth,\n      mergedIndicatorPlacement,\n      unit,\n      borderRadius,\n      fillBorderRadius,\n      height,\n      processing,\n      circleGap,\n      mergedClsPrefix,\n      gapDeg,\n      gapOffsetDegree,\n      themeClass,\n      $slots,\n      onRender\n    } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          themeClass,\n          `${mergedClsPrefix}-progress`,\n          `${mergedClsPrefix}-progress--${type}`,\n          `${mergedClsPrefix}-progress--${status}`\n        ]}\n        style={cssVars as CSSProperties}\n        aria-valuemax={100}\n        aria-valuemin={0}\n        aria-valuenow={percentage as number}\n        role={\n          type === 'circle' || type === 'line' || type === 'dashboard'\n            ? 'progressbar'\n            : 'none'\n        }\n      >\n        {type === 'circle' || type === 'dashboard' ? (\n          <Circle\n            clsPrefix={mergedClsPrefix}\n            status={status}\n            showIndicator={showIndicator}\n            indicatorTextColor={indicatorTextColor}\n            railColor={railColor as any}\n            fillColor={color as any}\n            railStyle={railStyle as any}\n            offsetDegree={this.offsetDegree}\n            percentage={percentage as number}\n            viewBoxWidth={viewBoxWidth}\n            strokeWidth={strokeWidth}\n            gapDegree={\n              gapDeg === undefined ? (type === 'dashboard' ? 75 : 0) : gapDeg\n            }\n            gapOffsetDegree={gapOffsetDegree}\n            unit={unit}\n          >\n            {$slots}\n          </Circle>\n        ) : type === 'line' ? (\n          <Line\n            clsPrefix={mergedClsPrefix}\n            status={status}\n            showIndicator={showIndicator}\n            indicatorTextColor={indicatorTextColor}\n            railColor={railColor as any}\n            fillColor={color as any}\n            railStyle={railStyle as any}\n            percentage={percentage as number}\n            processing={processing}\n            indicatorPlacement={mergedIndicatorPlacement}\n            unit={unit}\n            fillBorderRadius={fillBorderRadius}\n            railBorderRadius={borderRadius}\n            height={height}\n          >\n            {$slots}\n          </Line>\n        ) : type === 'multiple-circle' ? (\n          <MultipleCircle\n            clsPrefix={mergedClsPrefix}\n            strokeWidth={strokeWidth}\n            railColor={railColor as any}\n            fillColor={color as any}\n            railStyle={railStyle as any}\n            viewBoxWidth={viewBoxWidth}\n            percentage={percentage as number[]}\n            showIndicator={showIndicator}\n            circleGap={circleGap}\n          >\n            {$slots}\n          </MultipleCircle>\n        ) : null}\n      </div>\n    )\n  }\n})\n","import type { QrCodeTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst qrcodeDark: QrCodeTheme = {\n  name: 'QrCode',\n  common: commonDark,\n  self: (vars) => {\n    return {\n      borderRadius: vars.borderRadius\n    }\n  }\n}\n\nexport default qrcodeDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  return {\n    borderRadius: vars.borderRadius\n  }\n}\n\nexport interface QrCodeThemeVars extends ReturnType<typeof self> {}\n\nconst themeLight: QrCodeTheme = {\n  name: 'QrCode',\n  common: commonLight,\n  self\n}\n\nexport interface QrCodeTheme extends Theme<'QrCode', QrCodeThemeVars> {}\n\nexport interface QrCodeThemeOverrides extends ExtractThemeOverrides<QrCodeTheme> {}\n\nexport default themeLight\n","/* eslint-disable ts/no-namespace */\n/*\n * QR Code generator library (TypeScript)\n *\n * Copyright (c) Project Nayuki. (MIT License)\n * https://www.nayuki.io/page/qr-code-generator-library\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of\n * this software and associated documentation files (the \"Software\"), to deal in\n * the Software without restriction, including without limitation the rights to\n * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n * the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n * - The above copyright notice and this permission notice shall be included in\n *   all copies or substantial portions of the Software.\n * - The Software is provided \"as is\", without warranty of any kind, express or\n *   implied, including but not limited to the warranties of merchantability,\n *   fitness for a particular purpose and noninfringement. In no event shall the\n *   authors or copyright holders be liable for any claim, damages or other\n *   liability, whether in an action of contract, tort or otherwise, arising from,\n *   out of or in connection with the Software or the use or other dealings in the\n *   Software.\n */\n\n'use strict'\n\nnamespace qrcodegen {\n  type bit = number\n  type byte = number\n  type int = number\n\n  /* ---- QR Code symbol class ---- */\n\n  /*\n   * A QR Code symbol, which is a type of two-dimension barcode.\n   * Invented by Denso Wave and described in the ISO/IEC 18004 standard.\n   * Instances of this class represent an immutable square grid of dark and light cells.\n   * The class provides static factory functions to create a QR Code from text or binary data.\n   * The class covers the QR Code Model 2 specification, supporting all versions (sizes)\n   * from 1 to 40, all 4 error correction levels, and 4 character encoding modes.\n   *\n   * Ways to create a QR Code object:\n   * - High level: Take the payload data and call QrCode.encodeText() or QrCode.encodeBinary().\n   * - Mid level: Custom-make the list of segments and call QrCode.encodeSegments().\n   * - Low level: Custom-make the array of data codeword bytes (including\n   *   segment headers and final padding, excluding error correction codewords),\n   *   supply the appropriate version number, and call the QrCode() constructor.\n   * (Note that all ways require supplying the desired error correction level.)\n   */\n  export class QrCode {\n    /* -- Static factory functions (high level) -- */\n\n    // Returns a QR Code representing the given Unicode text string at the given error correction level.\n    // As a conservative upper bound, this function is guaranteed to succeed for strings that have 738 or fewer\n    // Unicode code points (not UTF-16 code units) if the low error correction level is used. The smallest possible\n    // QR Code version is automatically chosen for the output. The ECC level of the result may be higher than the\n    // ecl argument if it can be done without increasing the version.\n    public static encodeText(text: string, ecl: QrCode.Ecc): QrCode {\n      const segs: QrSegment[] = qrcodegen.QrSegment.makeSegments(text)\n      return QrCode.encodeSegments(segs, ecl)\n    }\n\n    // Returns a QR Code representing the given binary data at the given error correction level.\n    // This function always encodes using the binary segment mode, not any text mode. The maximum number of\n    // bytes allowed is 2953. The smallest possible QR Code version is automatically chosen for the output.\n    // The ECC level of the result may be higher than the ecl argument if it can be done without increasing the version.\n    public static encodeBinary(\n      data: Readonly<byte[]>,\n      ecl: QrCode.Ecc\n    ): QrCode {\n      const seg: QrSegment = qrcodegen.QrSegment.makeBytes(data)\n      return QrCode.encodeSegments([seg], ecl)\n    }\n\n    /* -- Static factory functions (mid level) -- */\n\n    // Returns a QR Code representing the given segments with the given encoding parameters.\n    // The smallest possible QR Code version within the given range is automatically\n    // chosen for the output. Iff boostEcl is true, then the ECC level of the result\n    // may be higher than the ecl argument if it can be done without increasing the\n    // version. The mask number is either between 0 to 7 (inclusive) to force that\n    // mask, or -1 to automatically choose an appropriate mask (which may be slow).\n    // This function allows the user to create a custom sequence of segments that switches\n    // between modes (such as alphanumeric and byte) to encode text in less space.\n    // This is a mid-level API; the high-level API is encodeText() and encodeBinary().\n    public static encodeSegments(\n      segs: Readonly<QrSegment[]>,\n      ecl: QrCode.Ecc,\n      minVersion: int = 1,\n      maxVersion: int = 40,\n      mask: int = -1,\n      boostEcl: boolean = true\n    ): QrCode {\n      if (\n        !(\n          QrCode.MIN_VERSION <= minVersion\n          && minVersion <= maxVersion\n          && maxVersion <= QrCode.MAX_VERSION\n        )\n        || mask < -1\n        || mask > 7\n      ) {\n        throw new RangeError('Invalid value')\n      }\n\n      // Find the minimal version number to use\n      let version: int\n      let dataUsedBits: int\n      for (version = minVersion; ; version++) {\n        const dataCapacityBits: int\n          = QrCode.getNumDataCodewords(version, ecl) * 8 // Number of data bits available\n        const usedBits: number = QrSegment.getTotalBits(segs, version)\n        if (usedBits <= dataCapacityBits) {\n          dataUsedBits = usedBits\n          break // This version number is found to be suitable\n        }\n        if (version >= maxVersion) {\n          // All versions in the range could not fit the given data\n          throw new RangeError('Data too long')\n        }\n      }\n\n      // Increase the error correction level while the data still fits in the current version number\n      for (const newEcl of [\n        QrCode.Ecc.MEDIUM,\n        QrCode.Ecc.QUARTILE,\n        QrCode.Ecc.HIGH\n      ]) {\n        // From low to high\n        if (\n          boostEcl\n          && dataUsedBits <= QrCode.getNumDataCodewords(version, newEcl) * 8\n        ) {\n          ecl = newEcl\n        }\n      }\n\n      // Concatenate all segments to create the data bit string\n      const bb: bit[] = []\n      for (const seg of segs) {\n        appendBits(seg.mode.modeBits, 4, bb)\n        appendBits(seg.numChars, seg.mode.numCharCountBits(version), bb)\n        for (const b of seg.getData()) {\n          bb.push(b)\n        }\n      }\n\n      // Add terminator and pad up to a byte if applicable\n      const dataCapacityBits: int = QrCode.getNumDataCodewords(version, ecl) * 8\n      appendBits(0, Math.min(4, dataCapacityBits - bb.length), bb)\n      appendBits(0, (8 - (bb.length % 8)) % 8, bb)\n\n      // Pad with alternating bytes until data capacity is reached\n      for (\n        let padByte = 0xEC;\n        bb.length < dataCapacityBits;\n        padByte ^= 0xEC ^ 0x11\n      ) {\n        appendBits(padByte, 8, bb)\n      }\n\n      // Pack bits into bytes in big endian\n      const dataCodewords: byte[] = []\n      while (dataCodewords.length * 8 < bb.length) {\n        dataCodewords.push(0)\n      }\n      bb.forEach(\n        (b: bit, i: int) => (dataCodewords[i >>> 3] |= b << (7 - (i & 7)))\n      )\n\n      // Create the QR Code object\n      return new QrCode(version, ecl, dataCodewords, mask)\n    }\n\n    /* -- Fields -- */\n\n    // The width and height of this QR Code, measured in modules, between\n    // 21 and 177 (inclusive). This is equal to version * 4 + 17.\n    public readonly size: int\n\n    // The index of the mask pattern used in this QR Code, which is between 0 and 7 (inclusive).\n    // Even if a QR Code is created with automatic masking requested (mask = -1),\n    // the resulting object still has a mask value between 0 and 7.\n    public readonly mask: int\n\n    // The modules of this QR Code (false = light, true = dark).\n    // Immutable after constructor finishes. Accessed through getModule().\n    private readonly modules: boolean[][] = []\n\n    // Indicates function modules that are not subjected to masking. Discarded when constructor finishes.\n    private readonly isFunction: boolean[][] = []\n\n    /* -- Constructor (low level) and fields -- */\n\n    // Creates a new QR Code with the given version number,\n    // error correction level, data codeword bytes, and mask number.\n    // This is a low-level API that most users should not use directly.\n    // A mid-level API is the encodeSegments() function.\n    public constructor(\n      // The version number of this QR Code, which is between 1 and 40 (inclusive).\n      // This determines the size of this barcode.\n      public readonly version: int,\n\n      // The error correction level used in this QR Code.\n      public readonly errorCorrectionLevel: QrCode.Ecc,\n\n      dataCodewords: Readonly<byte[]>,\n\n      msk: int\n    ) {\n      // Check scalar arguments\n      if (version < QrCode.MIN_VERSION || version > QrCode.MAX_VERSION) {\n        throw new RangeError('Version value out of range')\n      }\n      if (msk < -1 || msk > 7) {\n        throw new RangeError('Mask value out of range')\n      }\n      this.size = version * 4 + 17\n\n      // Initialize both grids to be size*size arrays of Boolean false\n      const row: boolean[] = []\n      for (let i = 0; i < this.size; i++) {\n        row.push(false)\n      }\n      for (let i = 0; i < this.size; i++) {\n        this.modules.push(row.slice()) // Initially all light\n        this.isFunction.push(row.slice())\n      }\n\n      // Compute ECC, draw modules\n      this.drawFunctionPatterns()\n      const allCodewords: byte[] = this.addEccAndInterleave(dataCodewords)\n      this.drawCodewords(allCodewords)\n\n      // Do masking\n      if (msk === -1) {\n        // Automatically choose best mask\n        let minPenalty: int = 1000000000\n        for (let i = 0; i < 8; i++) {\n          this.applyMask(i)\n          this.drawFormatBits(i)\n          const penalty: int = this.getPenaltyScore()\n          if (penalty < minPenalty) {\n            msk = i\n            minPenalty = penalty\n          }\n          this.applyMask(i) // Undoes the mask due to XOR\n        }\n      }\n      this.mask = msk\n      this.applyMask(msk) // Apply the final choice of mask\n      this.drawFormatBits(msk) // Overwrite old format bits\n\n      this.isFunction = []\n    }\n\n    /* -- Accessor methods -- */\n\n    // Returns the color of the module (pixel) at the given coordinates, which is false\n    // for light or true for dark. The top left corner has the coordinates (x=0, y=0).\n    // If the given coordinates are out of bounds, then false (light) is returned.\n    public getModule(x: int, y: int): boolean {\n      return (\n        x >= 0 && x < this.size && y >= 0 && y < this.size && this.modules[y][x]\n      )\n    }\n\n    // Modified to expose modules for easy access\n    public getModules(): boolean[][] {\n      return this.modules\n    }\n\n    /* -- Private helper methods for constructor: Drawing function modules -- */\n\n    // Reads this object's version field, and draws and marks all function modules.\n    private drawFunctionPatterns(): void {\n      // Draw horizontal and vertical timing patterns\n      for (let i = 0; i < this.size; i++) {\n        this.setFunctionModule(6, i, i % 2 === 0)\n        this.setFunctionModule(i, 6, i % 2 === 0)\n      }\n\n      // Draw 3 finder patterns (all corners except bottom right; overwrites some timing modules)\n      this.drawFinderPattern(3, 3)\n      this.drawFinderPattern(this.size - 4, 3)\n      this.drawFinderPattern(3, this.size - 4)\n\n      // Draw numerous alignment patterns\n      const alignPatPos: int[] = this.getAlignmentPatternPositions()\n      const numAlign: int = alignPatPos.length\n      for (let i = 0; i < numAlign; i++) {\n        for (let j = 0; j < numAlign; j++) {\n          // Don't draw on the three finder corners\n          if (\n            !(\n              (i === 0 && j === 0)\n              || (i === 0 && j === numAlign - 1)\n              || (i === numAlign - 1 && j === 0)\n            )\n          ) {\n            this.drawAlignmentPattern(alignPatPos[i], alignPatPos[j])\n          }\n        }\n      }\n\n      // Draw configuration data\n      this.drawFormatBits(0) // Dummy mask value; overwritten later in the constructor\n      this.drawVersion()\n    }\n\n    // Draws two copies of the format bits (with its own error correction code)\n    // based on the given mask and this object's error correction level field.\n    private drawFormatBits(mask: int): void {\n      // Calculate error correction code and pack bits\n      const data: int = (this.errorCorrectionLevel.formatBits << 3) | mask // errCorrLvl is uint2, mask is uint3\n      let rem: int = data\n      for (let i = 0; i < 10; i++) {\n        rem = (rem << 1) ^ ((rem >>> 9) * 0x537)\n      }\n      const bits = ((data << 10) | rem) ^ 0x5412 // uint15\n\n      // Draw first copy\n      for (let i = 0; i <= 5; i++) {\n        this.setFunctionModule(8, i, getBit(bits, i))\n      }\n      this.setFunctionModule(8, 7, getBit(bits, 6))\n      this.setFunctionModule(8, 8, getBit(bits, 7))\n      this.setFunctionModule(7, 8, getBit(bits, 8))\n      for (let i = 9; i < 15; i++) {\n        this.setFunctionModule(14 - i, 8, getBit(bits, i))\n      }\n\n      // Draw second copy\n      for (let i = 0; i < 8; i++) {\n        this.setFunctionModule(this.size - 1 - i, 8, getBit(bits, i))\n      }\n      for (let i = 8; i < 15; i++) {\n        this.setFunctionModule(8, this.size - 15 + i, getBit(bits, i))\n      }\n      this.setFunctionModule(8, this.size - 8, true) // Always dark\n    }\n\n    // Draws two copies of the version bits (with its own error correction code),\n    // based on this object's version field, iff 7 <= version <= 40.\n    private drawVersion(): void {\n      if (this.version < 7) {\n        return\n      }\n\n      // Calculate error correction code and pack bits\n      let rem: int = this.version // version is uint6, in the range [7, 40]\n      for (let i = 0; i < 12; i++) {\n        rem = (rem << 1) ^ ((rem >>> 11) * 0x1F25)\n      }\n      const bits: int = (this.version << 12) | rem // uint18\n\n      // Draw two copies\n      for (let i = 0; i < 18; i++) {\n        const color: boolean = getBit(bits, i)\n        const a: int = this.size - 11 + (i % 3)\n        const b: int = Math.floor(i / 3)\n        this.setFunctionModule(a, b, color)\n        this.setFunctionModule(b, a, color)\n      }\n    }\n\n    // Draws a 9*9 finder pattern including the border separator,\n    // with the center module at (x, y). Modules can be out of bounds.\n    private drawFinderPattern(x: int, y: int): void {\n      for (let dy = -4; dy <= 4; dy++) {\n        for (let dx = -4; dx <= 4; dx++) {\n          const dist: int = Math.max(Math.abs(dx), Math.abs(dy)) // Chebyshev/infinity norm\n          const xx: int = x + dx\n          const yy: int = y + dy\n          if (xx >= 0 && xx < this.size && yy >= 0 && yy < this.size) {\n            this.setFunctionModule(xx, yy, dist !== 2 && dist !== 4)\n          }\n        }\n      }\n    }\n\n    // Draws a 5*5 alignment pattern, with the center module\n    // at (x, y). All modules must be in bounds.\n    private drawAlignmentPattern(x: int, y: int): void {\n      for (let dy = -2; dy <= 2; dy++) {\n        for (let dx = -2; dx <= 2; dx++) {\n          this.setFunctionModule(\n            x + dx,\n            y + dy,\n            Math.max(Math.abs(dx), Math.abs(dy)) !== 1\n          )\n        }\n      }\n    }\n\n    // Sets the color of a module and marks it as a function module.\n    // Only used by the constructor. Coordinates must be in bounds.\n    private setFunctionModule(x: int, y: int, isDark: boolean): void {\n      this.modules[y][x] = isDark\n      this.isFunction[y][x] = true\n    }\n\n    /* -- Private helper methods for constructor: Codewords and masking -- */\n\n    // Returns a new byte string representing the given data with the appropriate error correction\n    // codewords appended to it, based on this object's version and error correction level.\n    private addEccAndInterleave(data: Readonly<byte[]>): byte[] {\n      const ver: int = this.version\n      const ecl: QrCode.Ecc = this.errorCorrectionLevel\n      if (data.length !== QrCode.getNumDataCodewords(ver, ecl)) {\n        throw new RangeError('Invalid argument')\n      }\n\n      // Calculate parameter numbers\n      const numBlocks: int\n        = QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]\n      const blockEccLen: int = QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver]\n      const rawCodewords: int = Math.floor(QrCode.getNumRawDataModules(ver) / 8)\n      const numShortBlocks: int = numBlocks - (rawCodewords % numBlocks)\n      const shortBlockLen: int = Math.floor(rawCodewords / numBlocks)\n\n      // Split data into blocks and append ECC to each block\n      const blocks: byte[][] = []\n      const rsDiv: byte[] = QrCode.reedSolomonComputeDivisor(blockEccLen)\n      for (let i = 0, k = 0; i < numBlocks; i++) {\n        const dat: byte[] = data.slice(\n          k,\n          k + shortBlockLen - blockEccLen + (i < numShortBlocks ? 0 : 1)\n        )\n        k += dat.length\n        const ecc: byte[] = QrCode.reedSolomonComputeRemainder(dat, rsDiv)\n        if (i < numShortBlocks) {\n          dat.push(0)\n        }\n        blocks.push(dat.concat(ecc))\n      }\n\n      // Interleave (not concatenate) the bytes from every block into a single sequence\n      const result: byte[] = []\n      for (let i = 0; i < blocks[0].length; i++) {\n        blocks.forEach((block, j) => {\n          // Skip the padding byte in short blocks\n          if (i !== shortBlockLen - blockEccLen || j >= numShortBlocks) {\n            result.push(block[i])\n          }\n        })\n      }\n      return result\n    }\n\n    // Draws the given sequence of 8-bit codewords (data and error correction) onto the entire\n    // data area of this QR Code. Function modules need to be marked off before this is called.\n    private drawCodewords(data: Readonly<byte[]>): void {\n      if (\n        data.length\n        !== Math.floor(QrCode.getNumRawDataModules(this.version) / 8)\n      ) {\n        throw new RangeError('Invalid argument')\n      }\n      let i: int = 0 // Bit index into the data\n      // Do the funny zigzag scan\n      for (let right = this.size - 1; right >= 1; right -= 2) {\n        // Index of right column in each column pair\n        if (right === 6) {\n          right = 5\n        }\n        for (let vert = 0; vert < this.size; vert++) {\n          // Vertical counter\n          for (let j = 0; j < 2; j++) {\n            const x: int = right - j // Actual x coordinate\n            const upward: boolean = ((right + 1) & 2) === 0\n            const y: int = upward ? this.size - 1 - vert : vert // Actual y coordinate\n            if (!this.isFunction[y][x] && i < data.length * 8) {\n              this.modules[y][x] = getBit(data[i >>> 3], 7 - (i & 7))\n              i++\n            }\n            // If this QR Code has any remainder bits (0 to 7), they were assigned as\n            // 0/false/light by the constructor and are left unchanged by this method\n          }\n        }\n      }\n    }\n\n    // XORs the codeword modules in this QR Code with the given mask pattern.\n    // The function modules must be marked and the codeword bits must be drawn\n    // before masking. Due to the arithmetic of XOR, calling applyMask() with\n    // the same mask value a second time will undo the mask. A final well-formed\n    // QR Code needs exactly one (not zero, two, etc.) mask applied.\n    private applyMask(mask: int): void {\n      if (mask < 0 || mask > 7) {\n        throw new RangeError('Mask value out of range')\n      }\n      for (let y = 0; y < this.size; y++) {\n        for (let x = 0; x < this.size; x++) {\n          let invert: boolean\n          switch (mask) {\n            case 0:\n              invert = (x + y) % 2 === 0\n              break\n            case 1:\n              invert = y % 2 === 0\n              break\n            case 2:\n              invert = x % 3 === 0\n              break\n            case 3:\n              invert = (x + y) % 3 === 0\n              break\n            case 4:\n              invert = (Math.floor(x / 3) + Math.floor(y / 2)) % 2 === 0\n              break\n            case 5:\n              invert = ((x * y) % 2) + ((x * y) % 3) === 0\n              break\n            case 6:\n              invert = (((x * y) % 2) + ((x * y) % 3)) % 2 === 0\n              break\n            case 7:\n              invert = (((x + y) % 2) + ((x * y) % 3)) % 2 === 0\n              break\n            default:\n              throw new Error('Unreachable')\n          }\n          if (!this.isFunction[y][x] && invert) {\n            this.modules[y][x] = !this.modules[y][x]\n          }\n        }\n      }\n    }\n\n    // Calculates and returns the penalty score based on state of this QR Code's current modules.\n    // This is used by the automatic mask choice algorithm to find the mask pattern that yields the lowest score.\n    private getPenaltyScore(): int {\n      let result: int = 0\n\n      // Adjacent modules in row having same color, and finder-like patterns\n      for (let y = 0; y < this.size; y++) {\n        let runColor = false\n        let runX = 0\n        const runHistory = [0, 0, 0, 0, 0, 0, 0]\n        for (let x = 0; x < this.size; x++) {\n          if (this.modules[y][x] === runColor) {\n            runX++\n            if (runX === 5) {\n              result += QrCode.PENALTY_N1\n            }\n            else if (runX > 5) {\n              result++\n            }\n          }\n          else {\n            this.finderPenaltyAddHistory(runX, runHistory)\n            if (!runColor) {\n              result\n                += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3\n            }\n            runColor = this.modules[y][x]\n            runX = 1\n          }\n        }\n        result\n          += this.finderPenaltyTerminateAndCount(runColor, runX, runHistory)\n            * QrCode.PENALTY_N3\n      }\n      // Adjacent modules in column having same color, and finder-like patterns\n      for (let x = 0; x < this.size; x++) {\n        let runColor = false\n        let runY = 0\n        const runHistory = [0, 0, 0, 0, 0, 0, 0]\n        for (let y = 0; y < this.size; y++) {\n          if (this.modules[y][x] === runColor) {\n            runY++\n            if (runY === 5) {\n              result += QrCode.PENALTY_N1\n            }\n            else if (runY > 5) {\n              result++\n            }\n          }\n          else {\n            this.finderPenaltyAddHistory(runY, runHistory)\n            if (!runColor) {\n              result\n                += this.finderPenaltyCountPatterns(runHistory) * QrCode.PENALTY_N3\n            }\n            runColor = this.modules[y][x]\n            runY = 1\n          }\n        }\n        result\n          += this.finderPenaltyTerminateAndCount(runColor, runY, runHistory)\n            * QrCode.PENALTY_N3\n      }\n\n      // 2*2 blocks of modules having same color\n      for (let y = 0; y < this.size - 1; y++) {\n        for (let x = 0; x < this.size - 1; x++) {\n          const color: boolean = this.modules[y][x]\n          if (\n            color === this.modules[y][x + 1]\n            && color === this.modules[y + 1][x]\n            && color === this.modules[y + 1][x + 1]\n          ) {\n            result += QrCode.PENALTY_N2\n          }\n        }\n      }\n\n      // Balance of dark and light modules\n      let dark: int = 0\n      for (const row of this.modules) {\n        dark = row.reduce((sum, color) => sum + (color ? 1 : 0), dark)\n      }\n      const total: int = this.size * this.size // Note that size is odd, so dark/total != 1/2\n      // Compute the smallest integer k >= 0 such that (45-5k)% <= dark/total <= (55+5k)%\n      const k: int = Math.ceil(Math.abs(dark * 20 - total * 10) / total) - 1\n      result += k * QrCode.PENALTY_N4\n      return result\n    }\n\n    /* -- Private helper functions -- */\n\n    // Returns an ascending list of positions of alignment patterns for this version number.\n    // Each position is in the range [0,177), and are used on both the x and y axes.\n    // This could be implemented as lookup table of 40 variable-length lists of integers.\n    private getAlignmentPatternPositions(): int[] {\n      if (this.version === 1) {\n        return []\n      }\n      else {\n        const numAlign: int = Math.floor(this.version / 7) + 2\n        const step: int\n          = this.version === 32\n            ? 26\n            : Math.ceil((this.version * 4 + 4) / (numAlign * 2 - 2)) * 2\n        const result: int[] = [6]\n        for (let pos = this.size - 7; result.length < numAlign; pos -= step) {\n          result.splice(1, 0, pos)\n        }\n        return result\n      }\n    }\n\n    // Returns the number of data bits that can be stored in a QR Code of the given version number, after\n    // all function modules are excluded. This includes remainder bits, so it might not be a multiple of 8.\n    // The result is in the range [208, 29648]. This could be implemented as a 40-entry lookup table.\n    private static getNumRawDataModules(ver: int): int {\n      if (ver < QrCode.MIN_VERSION || ver > QrCode.MAX_VERSION) {\n        throw new RangeError('Version number out of range')\n      }\n      let result: int = (16 * ver + 128) * ver + 64\n      if (ver >= 2) {\n        const numAlign: int = Math.floor(ver / 7) + 2\n        result -= (25 * numAlign - 10) * numAlign - 55\n        if (ver >= 7) {\n          result -= 36\n        }\n      }\n      return result\n    }\n\n    // Returns the number of 8-bit data (i.e. not error correction) codewords contained in any\n    // QR Code of the given version number and error correction level, with remainder bits discarded.\n    // This stateless pure function could be implemented as a (40*4)-cell lookup table.\n    private static getNumDataCodewords(ver: int, ecl: QrCode.Ecc): int {\n      return (\n        Math.floor(QrCode.getNumRawDataModules(ver) / 8)\n        - QrCode.ECC_CODEWORDS_PER_BLOCK[ecl.ordinal][ver]\n        * QrCode.NUM_ERROR_CORRECTION_BLOCKS[ecl.ordinal][ver]\n      )\n    }\n\n    // Returns a Reed-Solomon ECC generator polynomial for the given degree. This could be\n    // implemented as a lookup table over all possible parameter values, instead of as an algorithm.\n    private static reedSolomonComputeDivisor(degree: int): byte[] {\n      if (degree < 1 || degree > 255) {\n        throw new RangeError('Degree out of range')\n      }\n      // Polynomial coefficients are stored from highest to lowest power, excluding the leading term which is always 1.\n      // For example the polynomial x^3 + 255x^2 + 8x + 93 is stored as the uint8 array [255, 8, 93].\n      const result: byte[] = []\n      for (let i = 0; i < degree - 1; i++) {\n        result.push(0)\n      }\n      result.push(1) // Start off with the monomial x^0\n\n      // Compute the product polynomial (x - r^0) * (x - r^1) * (x - r^2) * ... * (x - r^{degree-1}),\n      // and drop the highest monomial term which is always 1x^degree.\n      // Note that r = 0x02, which is a generator element of this field GF(2^8/0x11D).\n      let root = 1\n      for (let i = 0; i < degree; i++) {\n        // Multiply the current product by (x - r^i)\n        for (let j = 0; j < result.length; j++) {\n          result[j] = QrCode.reedSolomonMultiply(result[j], root)\n          if (j + 1 < result.length) {\n            result[j] ^= result[j + 1]\n          }\n        }\n        root = QrCode.reedSolomonMultiply(root, 0x02)\n      }\n      return result\n    }\n\n    // Returns the Reed-Solomon error correction codeword for the given data and divisor polynomials.\n    private static reedSolomonComputeRemainder(\n      data: Readonly<byte[]>,\n      divisor: Readonly<byte[]>\n    ): byte[] {\n      const result: byte[] = divisor.map(_ => 0)\n      for (const b of data) {\n        // Polynomial division\n        const factor: byte = b ^ (result.shift() as byte)\n        result.push(0)\n        divisor.forEach(\n          (coef, i) => (result[i] ^= QrCode.reedSolomonMultiply(coef, factor))\n        )\n      }\n      return result\n    }\n\n    // Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result\n    // are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.\n    private static reedSolomonMultiply(x: byte, y: byte): byte {\n      if (x >>> 8 !== 0 || y >>> 8 !== 0) {\n        throw new RangeError('Byte out of range')\n      }\n      // Russian peasant multiplication\n      let z: int = 0\n      for (let i = 7; i >= 0; i--) {\n        z = (z << 1) ^ ((z >>> 7) * 0x11D)\n        z ^= ((y >>> i) & 1) * x\n      }\n      return z\n    }\n\n    // Can only be called immediately after a light run is added, and\n    // returns either 0, 1, or 2. A helper function for getPenaltyScore().\n    private finderPenaltyCountPatterns(runHistory: Readonly<int[]>): int {\n      const n: int = runHistory[1]\n      const core: boolean\n        = n > 0\n          && runHistory[2] === n\n          && runHistory[3] === n * 3\n          && runHistory[4] === n\n          && runHistory[5] === n\n      return (\n        (core && runHistory[0] >= n * 4 && runHistory[6] >= n ? 1 : 0)\n        + (core && runHistory[6] >= n * 4 && runHistory[0] >= n ? 1 : 0)\n      )\n    }\n\n    // Must be called at the end of a line (row or column) of modules. A helper function for getPenaltyScore().\n    private finderPenaltyTerminateAndCount(\n      currentRunColor: boolean,\n      currentRunLength: int,\n      runHistory: int[]\n    ): int {\n      if (currentRunColor) {\n        // Terminate dark run\n        this.finderPenaltyAddHistory(currentRunLength, runHistory)\n        currentRunLength = 0\n      }\n      currentRunLength += this.size // Add light border to final run\n      this.finderPenaltyAddHistory(currentRunLength, runHistory)\n      return this.finderPenaltyCountPatterns(runHistory)\n    }\n\n    // Pushes the given value to the front and drops the last value. A helper function for getPenaltyScore().\n    private finderPenaltyAddHistory(\n      currentRunLength: int,\n      runHistory: int[]\n    ): void {\n      if (runHistory[0] === 0) {\n        currentRunLength += this.size\n      } // Add light border to initial run\n      runHistory.pop()\n      runHistory.unshift(currentRunLength)\n    }\n\n    /* -- Constants and tables -- */\n\n    // The minimum version number supported in the QR Code Model 2 standard.\n    public static readonly MIN_VERSION: int = 1\n    // The maximum version number supported in the QR Code Model 2 standard.\n    public static readonly MAX_VERSION: int = 40\n\n    // For use in getPenaltyScore(), when evaluating which mask is best.\n    private static readonly PENALTY_N1: int = 3\n    private static readonly PENALTY_N2: int = 3\n    private static readonly PENALTY_N3: int = 40\n    private static readonly PENALTY_N4: int = 10\n\n    private static readonly ECC_CODEWORDS_PER_BLOCK: int[][] = [\n      // Version: (note that index 0 is for padding, and is set to an illegal value)\n      // 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    Error correction level\n      [\n        -1,\n        7,\n        10,\n        15,\n        20,\n        26,\n        18,\n        20,\n        24,\n        30,\n        18,\n        20,\n        24,\n        26,\n        30,\n        22,\n        24,\n        28,\n        30,\n        28,\n        28,\n        28,\n        28,\n        30,\n        30,\n        26,\n        28,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30\n      ], // Low\n      [\n        -1,\n        10,\n        16,\n        26,\n        18,\n        24,\n        16,\n        18,\n        22,\n        22,\n        26,\n        30,\n        22,\n        22,\n        24,\n        24,\n        28,\n        28,\n        26,\n        26,\n        26,\n        26,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28,\n        28\n      ], // Medium\n      [\n        -1,\n        13,\n        22,\n        18,\n        26,\n        18,\n        24,\n        18,\n        22,\n        20,\n        24,\n        28,\n        26,\n        24,\n        20,\n        30,\n        24,\n        28,\n        28,\n        26,\n        30,\n        28,\n        30,\n        30,\n        30,\n        30,\n        28,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30\n      ], // Quartile\n      [\n        -1,\n        17,\n        28,\n        22,\n        16,\n        22,\n        28,\n        26,\n        26,\n        24,\n        28,\n        24,\n        28,\n        22,\n        24,\n        24,\n        30,\n        28,\n        28,\n        26,\n        28,\n        30,\n        24,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30,\n        30\n      ] // High\n    ]\n\n    private static readonly NUM_ERROR_CORRECTION_BLOCKS: int[][] = [\n      // Version: (note that index 0 is for padding, and is set to an illegal value)\n      // 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    Error correction level\n      [\n        -1,\n        1,\n        1,\n        1,\n        1,\n        1,\n        2,\n        2,\n        2,\n        2,\n        4,\n        4,\n        4,\n        4,\n        4,\n        6,\n        6,\n        6,\n        6,\n        7,\n        8,\n        8,\n        9,\n        9,\n        10,\n        12,\n        12,\n        12,\n        13,\n        14,\n        15,\n        16,\n        17,\n        18,\n        19,\n        19,\n        20,\n        21,\n        22,\n        24,\n        25\n      ], // Low\n      [\n        -1,\n        1,\n        1,\n        1,\n        2,\n        2,\n        4,\n        4,\n        4,\n        5,\n        5,\n        5,\n        8,\n        9,\n        9,\n        10,\n        10,\n        11,\n        13,\n        14,\n        16,\n        17,\n        17,\n        18,\n        20,\n        21,\n        23,\n        25,\n        26,\n        28,\n        29,\n        31,\n        33,\n        35,\n        37,\n        38,\n        40,\n        43,\n        45,\n        47,\n        49\n      ], // Medium\n      [\n        -1,\n        1,\n        1,\n        2,\n        2,\n        4,\n        4,\n        6,\n        6,\n        8,\n        8,\n        8,\n        10,\n        12,\n        16,\n        12,\n        17,\n        16,\n        18,\n        21,\n        20,\n        23,\n        23,\n        25,\n        27,\n        29,\n        34,\n        34,\n        35,\n        38,\n        40,\n        43,\n        45,\n        48,\n        51,\n        53,\n        56,\n        59,\n        62,\n        65,\n        68\n      ], // Quartile\n      [\n        -1,\n        1,\n        1,\n        2,\n        4,\n        4,\n        4,\n        5,\n        6,\n        8,\n        8,\n        11,\n        11,\n        16,\n        16,\n        18,\n        16,\n        19,\n        21,\n        25,\n        25,\n        25,\n        34,\n        30,\n        32,\n        35,\n        37,\n        40,\n        42,\n        45,\n        48,\n        51,\n        54,\n        57,\n        60,\n        63,\n        66,\n        70,\n        74,\n        77,\n        81\n      ] // High\n    ]\n  }\n\n  // Appends the given number of low-order bits of the given value\n  // to the given buffer. Requires 0 <= len <= 31 and 0 <= val < 2^len.\n  function appendBits(val: int, len: int, bb: bit[]): void {\n    if (len < 0 || len > 31 || val >>> len !== 0) {\n      throw new RangeError('Value out of range')\n    }\n    for (\n      let i = len - 1;\n      i >= 0;\n      i-- // Append bit by bit\n    ) {\n      bb.push((val >>> i) & 1)\n    }\n  }\n\n  // Returns true iff the i'th bit of x is set to 1.\n  function getBit(x: int, i: int): boolean {\n    return ((x >>> i) & 1) !== 0\n  }\n\n  /* ---- Data segment class ---- */\n\n  /*\n   * A segment of character/binary/control data in a QR Code symbol.\n   * Instances of this class are immutable.\n   * The mid-level way to create a segment is to take the payload data\n   * and call a static factory function such as QrSegment.makeNumeric().\n   * The low-level way to create a segment is to custom-make the bit buffer\n   * and call the QrSegment() constructor with appropriate values.\n   * This segment class imposes no length restrictions, but QR Codes have restrictions.\n   * Even in the most favorable conditions, a QR Code can only hold 7089 characters of data.\n   * Any segment longer than this is meaningless for the purpose of generating QR Codes.\n   */\n  export class QrSegment {\n    /* -- Static factory functions (mid level) -- */\n\n    // Returns a segment representing the given binary data encoded in\n    // byte mode. All input byte arrays are acceptable. Any text string\n    // can be converted to UTF-8 bytes and encoded as a byte mode segment.\n    public static makeBytes(data: Readonly<byte[]>): QrSegment {\n      const bb: bit[] = []\n      for (const b of data) {\n        appendBits(b, 8, bb)\n      }\n      return new QrSegment(QrSegment.Mode.BYTE, data.length, bb)\n    }\n\n    // Returns a segment representing the given string of decimal digits encoded in numeric mode.\n    public static makeNumeric(digits: string): QrSegment {\n      if (!QrSegment.isNumeric(digits)) {\n        throw new RangeError('String contains non-numeric characters')\n      }\n      const bb: bit[] = []\n      for (let i = 0; i < digits.length;) {\n        // Consume up to 3 digits per iteration\n        const n: int = Math.min(digits.length - i, 3)\n        appendBits(Number.parseInt(digits.substr(i, n), 10), n * 3 + 1, bb)\n        i += n\n      }\n      return new QrSegment(QrSegment.Mode.NUMERIC, digits.length, bb)\n    }\n\n    // Returns a segment representing the given text string encoded in alphanumeric mode.\n    // The characters allowed are: 0 to 9, A to Z (uppercase only), space,\n    // dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n    public static makeAlphanumeric(text: string): QrSegment {\n      if (!QrSegment.isAlphanumeric(text)) {\n        throw new RangeError(\n          'String contains unencodable characters in alphanumeric mode'\n        )\n      }\n      const bb: bit[] = []\n      let i: int\n      for (i = 0; i + 2 <= text.length; i += 2) {\n        // Process groups of 2\n        let temp: int\n          = QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)) * 45\n        temp += QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i + 1))\n        appendBits(temp, 11, bb)\n      }\n      if (i < text.length) {\n        // 1 character remaining\n        appendBits(\n          QrSegment.ALPHANUMERIC_CHARSET.indexOf(text.charAt(i)),\n          6,\n          bb\n        )\n      }\n      return new QrSegment(QrSegment.Mode.ALPHANUMERIC, text.length, bb)\n    }\n\n    // Returns a new mutable list of zero or more segments to represent the given Unicode text string.\n    // The result may use various segment modes and switch modes to optimize the length of the bit stream.\n    public static makeSegments(text: string): QrSegment[] {\n      // Select the most efficient segment encoding automatically\n      if (text === '') {\n        return []\n      }\n      else if (QrSegment.isNumeric(text)) {\n        return [QrSegment.makeNumeric(text)]\n      }\n      else if (QrSegment.isAlphanumeric(text)) {\n        return [QrSegment.makeAlphanumeric(text)]\n      }\n      else {\n        return [QrSegment.makeBytes(QrSegment.toUtf8ByteArray(text))]\n      }\n    }\n\n    // Returns a segment representing an Extended Channel Interpretation\n    // (ECI) designator with the given assignment value.\n    public static makeEci(assignVal: int): QrSegment {\n      const bb: bit[] = []\n      if (assignVal < 0) {\n        throw new RangeError('ECI assignment value out of range')\n      }\n      else if (assignVal < 1 << 7) {\n        appendBits(assignVal, 8, bb)\n      }\n      else if (assignVal < 1 << 14) {\n        appendBits(0b10, 2, bb)\n        appendBits(assignVal, 14, bb)\n      }\n      else if (assignVal < 1000000) {\n        appendBits(0b110, 3, bb)\n        appendBits(assignVal, 21, bb)\n      }\n      else {\n        throw new RangeError('ECI assignment value out of range')\n      }\n      return new QrSegment(QrSegment.Mode.ECI, 0, bb)\n    }\n\n    // Tests whether the given string can be encoded as a segment in numeric mode.\n    // A string is encodable iff each character is in the range 0 to 9.\n    public static isNumeric(text: string): boolean {\n      return QrSegment.NUMERIC_REGEX.test(text)\n    }\n\n    // Tests whether the given string can be encoded as a segment in alphanumeric mode.\n    // A string is encodable iff each character is in the following set: 0 to 9, A to Z\n    // (uppercase only), space, dollar, percent, asterisk, plus, hyphen, period, slash, colon.\n    public static isAlphanumeric(text: string): boolean {\n      return QrSegment.ALPHANUMERIC_REGEX.test(text)\n    }\n\n    /* -- Constructor (low level) and fields -- */\n\n    // Creates a new QR Code segment with the given attributes and data.\n    // The character count (numChars) must agree with the mode and the bit buffer length,\n    // but the constraint isn't checked. The given bit buffer is cloned and stored.\n    public constructor(\n      // The mode indicator of this segment.\n      public readonly mode: QrSegment.Mode,\n\n      // The length of this segment's unencoded data. Measured in characters for\n      // numeric/alphanumeric/kanji mode, bytes for byte mode, and 0 for ECI mode.\n      // Always zero or positive. Not the same as the data's bit length.\n      public readonly numChars: int,\n\n      // The data bits of this segment. Accessed through getData().\n      private readonly bitData: bit[]\n    ) {\n      if (numChars < 0) {\n        throw new RangeError('Invalid argument')\n      }\n      this.bitData = bitData.slice() // Make defensive copy\n    }\n\n    /* -- Methods -- */\n\n    // Returns a new copy of the data bits of this segment.\n    public getData(): bit[] {\n      return this.bitData.slice() // Make defensive copy\n    }\n\n    // (Package-private) Calculates and returns the number of bits needed to encode the given segments at\n    // the given version. The result is infinity if a segment has too many characters to fit its length field.\n    public static getTotalBits(\n      segs: Readonly<QrSegment[]>,\n      version: int\n    ): number {\n      let result: number = 0\n      for (const seg of segs) {\n        const ccbits: int = seg.mode.numCharCountBits(version)\n        if (seg.numChars >= 1 << ccbits) {\n          return Infinity\n        } // The segment's length doesn't fit the field's bit width\n        result += 4 + ccbits + seg.bitData.length\n      }\n      return result\n    }\n\n    // Returns a new array of bytes representing the given string encoded in UTF-8.\n    private static toUtf8ByteArray(str: string): byte[] {\n      str = encodeURI(str)\n      const result: byte[] = []\n      for (let i = 0; i < str.length; i++) {\n        if (str.charAt(i) !== '%') {\n          result.push(str.charCodeAt(i))\n        }\n        else {\n          result.push(Number.parseInt(str.substr(i + 1, 2), 16))\n          i += 2\n        }\n      }\n      return result\n    }\n\n    /* -- Constants -- */\n\n    // Describes precisely all strings that are encodable in numeric mode.\n    private static readonly NUMERIC_REGEX: RegExp = /^[0-9]*$/\n\n    // Describes precisely all strings that are encodable in alphanumeric mode.\n    private static readonly ALPHANUMERIC_REGEX: RegExp = /^[A-Z0-9 $%*+./:-]*$/\n\n    // The set of all legal characters in alphanumeric mode,\n    // where each character value maps to the index in the string.\n    private static readonly ALPHANUMERIC_CHARSET: string\n      = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:'\n  }\n}\n\n/* ---- Public helper enumeration ---- */\nnamespace qrcodegen.QrCode {\n  type int = number\n\n  /*\n   * The error correction level in a QR Code symbol. Immutable.\n   */\n  export class Ecc {\n    /* -- Constants -- */\n\n    public static readonly LOW = new Ecc(0, 1) // The QR Code can tolerate about  7% erroneous codewords\n    public static readonly MEDIUM = new Ecc(1, 0) // The QR Code can tolerate about 15% erroneous codewords\n    public static readonly QUARTILE = new Ecc(2, 3) // The QR Code can tolerate about 25% erroneous codewords\n    public static readonly HIGH = new Ecc(3, 2) // The QR Code can tolerate about 30% erroneous codewords\n\n    /* -- Constructor and fields -- */\n\n    private constructor(\n      // In the range 0 to 3 (unsigned 2-bit integer).\n      public readonly ordinal: int,\n      // (Package-private) In the range 0 to 3 (unsigned 2-bit integer).\n      public readonly formatBits: int\n    ) {}\n  }\n}\n\n/* ---- Public helper enumeration ---- */\nnamespace qrcodegen.QrSegment {\n  type int = number\n\n  /*\n   * Describes how a segment's data bits are interpreted. Immutable.\n   */\n  export class Mode {\n    /* -- Constants -- */\n\n    public static readonly NUMERIC = new Mode(0x1, [10, 12, 14])\n    public static readonly ALPHANUMERIC = new Mode(0x2, [9, 11, 13])\n    public static readonly BYTE = new Mode(0x4, [8, 16, 16])\n    public static readonly KANJI = new Mode(0x8, [8, 10, 12])\n    public static readonly ECI = new Mode(0x7, [0, 0, 0])\n\n    /* -- Constructor and fields -- */\n\n    private constructor(\n      // The mode indicator bits, which is a uint4 value (range 0 to 15).\n      public readonly modeBits: int,\n      // Number of character count bits for three different version ranges.\n      private readonly numBitsCharCount: [int, int, int]\n    ) {}\n\n    /* -- Method -- */\n\n    // (Package-private) Returns the bit width of the character count field for a segment in\n    // this mode in a QR Code at the given version number. The result is in the range [0, 16].\n    public numCharCountBits(ver: int): int {\n      return this.numBitsCharCount[Math.floor((ver + 7) / 17)]\n    }\n  }\n}\n\nexport default qrcodegen\n","import { c, cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-border-radius\nexport default c([\n  cB('qr-code', `\n    background: #fff;\n    border-radius: var(--n-border-radius);\n    display: inline-flex;\n  `)\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { QrCodeTheme, QrCodeThemeOverrides } from '../styles'\nimport { computed, defineComponent, h, onMounted, ref, watchEffect } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { qrcodeLight } from '../styles'\nimport qrcodegen from './qrcodegen'\nimport style from './styles/index.cssr'\n\ntype Modules = ReturnType<qrcodegen.QrCode['getModules']>\n\nconst ERROR_CORRECTION_LEVEL: Record<string, qrcodegen.QrCode.Ecc> = {\n  L: qrcodegen.QrCode.Ecc.LOW,\n  M: qrcodegen.QrCode.Ecc.MEDIUM,\n  Q: qrcodegen.QrCode.Ecc.QUARTILE,\n  H: qrcodegen.QrCode.Ecc.HIGH\n}\n\nexport const qrCodeProps = {\n  ...(useTheme.props as ThemeProps<QrCodeTheme, QrCodeThemeOverrides>),\n  value: String,\n  color: {\n    type: String,\n    default: '#000'\n  },\n  backgroundColor: {\n    type: String,\n    default: '#FFF'\n  },\n  iconSrc: String,\n  iconSize: {\n    type: Number,\n    default: 40\n  },\n  iconBackgroundColor: {\n    type: String,\n    default: '#FFF'\n  },\n  iconBorderRadius: {\n    type: Number,\n    default: 4\n  },\n  size: {\n    type: Number,\n    default: 100\n  },\n  padding: {\n    type: [Number, String] as PropType<string | number>,\n    default: 12\n  },\n  errorCorrectionLevel: {\n    type: String,\n    default: 'M'\n  },\n  type: {\n    type: String,\n    default: 'canvas'\n  }\n} as const\n\nexport type QrCodeProps = ExtractPublicPropTypes<typeof qrCodeProps>\n\n// For retina display\nconst UPSCALE_RATIO = 2\n\nexport default defineComponent({\n  name: 'QrCode',\n  props: qrCodeProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n\n    const themeRef = useTheme(\n      'QrCode',\n      '-qr-code',\n      style,\n      qrcodeLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const cssVarsRef = computed(() => {\n      return {\n        '--n-border-radius': themeRef.value.self.borderRadius\n      }\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('qr-code', undefined, cssVarsRef, props)\n      : undefined\n\n    const canvasRef = ref<HTMLCanvasElement>()\n\n    const qr = computed(() => {\n      const errorCorrectionLevel\n        = ERROR_CORRECTION_LEVEL[props.errorCorrectionLevel]\n      return qrcodegen.QrCode.encodeText(\n        props.value ?? '-',\n        errorCorrectionLevel\n      )\n    })\n\n    onMounted(() => {\n      const imageLoadedTrigger = ref(0)\n      let loadedIcon: HTMLImageElement | null = null\n      watchEffect(() => {\n        if (props.type === 'svg')\n          return\n        void imageLoadedTrigger.value\n        drawCanvas(\n          qr.value,\n          props.size,\n          props.color,\n          props.backgroundColor,\n          loadedIcon\n            ? {\n                icon: loadedIcon,\n                iconBorderRadius: props.iconBorderRadius,\n                iconSize: props.iconSize,\n                iconBackgroundColor: props.iconBackgroundColor\n              }\n            : null\n        )\n      })\n\n      watchEffect(() => {\n        if (props.type === 'svg')\n          return\n        const { iconSrc } = props\n        if (iconSrc) {\n          let aborted = false\n          const img = new Image()\n          img.src = iconSrc\n          img.onload = () => {\n            if (aborted)\n              return\n            loadedIcon = img\n            imageLoadedTrigger.value++\n          }\n          return () => {\n            aborted = true\n          }\n        }\n      })\n    })\n\n    function drawCanvas(\n      qr: qrcodegen.QrCode,\n      size: number,\n      foregroundColor: string,\n      backgroundColor: string,\n      iconConfig: {\n        icon: HTMLImageElement\n        iconBorderRadius: number\n        iconSize: number\n        iconBackgroundColor: string\n      } | null\n    ): void {\n      const canvas = canvasRef.value\n      if (!canvas)\n        return\n      const canvasWidth = size * UPSCALE_RATIO\n      const width = qr.size\n      const scale = canvasWidth / width\n      canvas.width = canvasWidth\n      canvas.height = canvasWidth\n      const ctx = canvas.getContext('2d')\n      if (!ctx)\n        return\n      ctx.clearRect(0, 0, canvas.width, canvas.height)\n      for (let y = 0; y < qr.size; y++) {\n        for (let x = 0; x < qr.size; x++) {\n          ctx.fillStyle = qr.getModule(x, y) ? foregroundColor : backgroundColor\n          const startX = Math.floor(x * scale)\n          const endX = Math.ceil((x + 1) * scale)\n          const startY = Math.floor(y * scale)\n          const endY = Math.ceil((y + 1) * scale)\n          ctx.fillRect(startX, startY, endX - startX, endY - startY)\n        }\n      }\n      if (iconConfig) {\n        const { icon, iconBackgroundColor, iconBorderRadius, iconSize }\n          = iconConfig\n        const finalIconSize = iconSize * UPSCALE_RATIO\n        const centerX = (canvas.width - finalIconSize) / 2\n        const centerY = (canvas.height - finalIconSize) / 2\n        ctx.fillStyle = iconBackgroundColor\n        ctx.beginPath()\n        ctx.roundRect(\n          centerX,\n          centerY,\n          finalIconSize,\n          finalIconSize,\n          iconBorderRadius * UPSCALE_RATIO\n        )\n        ctx.fill()\n        const aspectRatio = icon.width / icon.height\n        const scaledWidth\n          = aspectRatio >= 1 ? finalIconSize : finalIconSize * aspectRatio\n        const scaledHeight\n          = aspectRatio <= 1 ? finalIconSize : finalIconSize / aspectRatio\n        const left = centerX + (finalIconSize - scaledWidth) / 2\n        const top = centerY + (finalIconSize - scaledHeight) / 2\n        ctx.drawImage(icon, left, top, scaledWidth, scaledHeight)\n      }\n    }\n\n    function generatePath(modules: Modules, margin: number = 0): string {\n      const ops: string[] = []\n      modules.forEach((row, y) => {\n        let start: number | null = null\n        row.forEach((cell, x) => {\n          if (!cell && start !== null) {\n            // M0 0h7v1H0z injects the space with the move and drops the comma,\n            // saving a char per operation\n            ops.push(\n              `M${start + margin} ${y + margin}h${x - start}v1H${start + margin}z`\n            )\n            start = null\n            return\n          }\n\n          // end of row, clean up or skip\n          if (x === row.length - 1) {\n            if (!cell) {\n              // We would have closed the op above already so this can only mean\n              // 2+ light modules in a row.\n              return\n            }\n            if (start === null) {\n              // Just a single dark module.\n              ops.push(`M${x + margin},${y + margin} h1v1H${x + margin}z`)\n            }\n            else {\n              // Otherwise finish the current line.\n              ops.push(\n                `M${start + margin},${y + margin} h${x + 1 - start}v1H${\n                  start + margin\n                }z`\n              )\n            }\n            return\n          }\n\n          if (cell && start === null) {\n            start = x\n          }\n        })\n      })\n      return ops.join('')\n    }\n\n    function svgInfo(\n      qr: qrcodegen.QrCode,\n      size: number,\n      iconConfig: {\n        iconSrc: string\n        iconBorderRadius: number\n        iconSize: number\n        iconBackgroundColor: string\n      } | null\n    ): {\n      innerHtml: string\n      numCells: number\n    } {\n      const cells = qr.getModules()\n      const numCells = cells.length\n      const cellsToDraw = cells\n      let svgInnerHtml = ''\n      const path1Html = `<path fill=\"transparent\" d=\"M0,0 h${numCells}v${numCells}H0z\" shape-rendering=\"crispEdges\"></path>`\n      const path2Html = `<path fill=\"${props.color}\" d=\"${generatePath(cellsToDraw, 0)}\" shape-rendering=\"crispEdges\"></path>`\n      let iconHtml = ''\n      if (iconConfig) {\n        const { iconSrc, iconSize } = iconConfig\n\n        const DEFAULT_IMG_SCALE = 0.1\n        const defaultSize = Math.floor(size * DEFAULT_IMG_SCALE)\n        const scale = numCells / size\n        const h = (iconSize || defaultSize) * scale\n        const w = (iconSize || defaultSize) * scale\n        const x = cells.length / 2 - w / 2\n        const y = cells.length / 2 - h / 2\n        iconHtml += `<image href=\"${iconSrc}\" width=\"${w}\" height=\"${h}\" x=\"${x}\" y=\"${y}\" preserveAspectRatio=\"none\"></image>`\n      }\n      svgInnerHtml += path1Html\n      svgInnerHtml += path2Html\n      svgInnerHtml += iconHtml\n      return {\n        innerHtml: svgInnerHtml,\n        numCells\n      }\n    }\n\n    const svgInfoRef = computed(() =>\n      svgInfo(\n        qr.value,\n        props.size,\n        props.iconSrc\n          ? {\n              iconSrc: props.iconSrc,\n              iconBorderRadius: props.iconBorderRadius,\n              iconSize: props.iconSize,\n              iconBackgroundColor: props.iconBackgroundColor\n            }\n          : null\n      )\n    )\n\n    return {\n      canvasRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      svgInfo: svgInfoRef\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      backgroundColor,\n      padding,\n      cssVars,\n      themeClass,\n      size,\n      type\n    } = this\n\n    return (\n      <div\n        class={[`${mergedClsPrefix}-qr-code`, themeClass]}\n        style={{\n          padding: typeof padding === 'number' ? `${padding}px` : padding,\n          backgroundColor,\n          width: `${size}px`,\n          height: `${size}px`,\n          ...cssVars\n        }}\n      >\n        {type === 'canvas' ? (\n          <canvas\n            ref=\"canvasRef\"\n            style={{\n              width: `${size}px`,\n              height: `${size}px`\n            }}\n          />\n        ) : (\n          <svg\n            height={size}\n            width={size}\n            viewBox={`0 0 ${this.svgInfo.numCells} ${this.svgInfo.numCells}`}\n            role=\"img\"\n            innerHTML={this.svgInfo.innerHtml}\n          />\n        )}\n      </div>\n    )\n  }\n})\n","import { h } from 'vue'\n\nexport default () => (\n  <svg viewBox=\"0 0 512 512\">\n    <path d=\"M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z\" />\n  </svg>\n)\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-item-color\n// --n-item-color-active\nexport default cB('rate', {\n  display: 'inline-flex',\n  flexWrap: 'nowrap'\n}, [\n  c('&:hover', [\n    cE('item', `\n      transition:\n        transform .1s var(--n-bezier),\n        color .3s var(--n-bezier);\n    `)\n  ]),\n  cE('item', `\n    position: relative;\n    display: flex;\n    transition:\n      transform .1s var(--n-bezier),\n      color .3s var(--n-bezier);\n    transform: scale(1);\n    font-size: var(--n-item-size);\n    color: var(--n-item-color);\n  `, [\n    c('&:not(:first-child)', `\n      margin-left: 6px;\n    `),\n    cM('active', `\n      color: var(--n-item-color-active);\n    `)\n  ]),\n  cNotM('readonly', `\n    cursor: pointer;\n  `, [\n    cE('item', [\n      c('&:hover', `\n        transform: scale(1.05);\n      `),\n      c('&:active', `\n        transform: scale(0.96);\n      `)\n    ])\n  ]),\n  cE('half', `\n    display: flex;\n    transition: inherit;\n    position: absolute;\n    top: 0;\n    left: 0;\n    bottom: 0;\n    width: 50%;\n    overflow: hidden;\n    color: rgba(255, 255, 255, 0);\n  `, [\n    cM('active', `\n      color: var(--n-item-color-active);\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { RateTheme, RateThemeOverrides } from '../styles'\nimport type { RateOnUpdateValue, RateOnUpdateValueImpl } from './interface'\nimport type { RateSize } from './public-types'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, ref, renderList, toRef } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { call, color2Class, createKey } from '../../_utils'\nimport { rateLight } from '../styles'\nimport renderStarIcon from './StarIcon'\nimport style from './styles/index.cssr'\n\nexport const rateProps = {\n  ...(useTheme.props as ThemeProps<RateTheme, RateThemeOverrides>),\n  allowHalf: Boolean,\n  count: {\n    type: Number,\n    default: 5\n  },\n  value: Number,\n  defaultValue: {\n    type: Number as PropType<number | null>,\n    default: null\n  },\n  readonly: Boolean,\n  size: [String, Number] as PropType<RateSize>,\n  clearable: Boolean,\n  color: String,\n  onClear: Function as PropType<() => void>,\n  'onUpdate:value': [Function, Array] as PropType<\n    MaybeArray<RateOnUpdateValue>\n  >,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<RateOnUpdateValue>>,\n  'onUpdate:hoverValue': [Function, Array] as PropType<\n    MaybeArray<RateOnUpdateValue>\n  >,\n  onUpdateHoverValue: [Function, Array] as PropType<\n    MaybeArray<RateOnUpdateValue>\n  >\n} as const\n\nexport type RateProps = ExtractPublicPropTypes<typeof rateProps>\n\nexport default defineComponent({\n  name: 'Rate',\n  props: rateProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Rate',\n      '-rate',\n      style,\n      rateLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const controlledValueRef = toRef(props, 'value')\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const hoverIndexRef = ref<number | null>(null)\n    const formItem = useFormItem<RateSize>(props, {\n      mergedSize(NFormItem) {\n        if (props.size !== undefined)\n          return props.size\n        if (NFormItem) {\n          return NFormItem.mergedSize.value as RateSize\n        }\n        const configSize = mergedComponentPropsRef?.value?.Rate?.size\n        if (configSize !== undefined)\n          return configSize\n        return 'medium'\n      }\n    })\n    const mergedValue = useMergedState(controlledValueRef, uncontrolledValueRef)\n    function doUpdateValue(value: number | null): void {\n      const { 'onUpdate:value': _onUpdateValue, onUpdateValue } = props\n      const { nTriggerFormChange, nTriggerFormInput } = formItem\n      if (_onUpdateValue) {\n        call(_onUpdateValue as RateOnUpdateValueImpl, value)\n      }\n      if (onUpdateValue) {\n        call(onUpdateValue as RateOnUpdateValueImpl, value)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormChange()\n      nTriggerFormInput()\n    }\n    function getDerivedValue(index: number, e: MouseEvent): number {\n      if (props.allowHalf) {\n        if (\n          e.offsetX\n          >= Math.floor((e.currentTarget as HTMLDivElement).offsetWidth / 2)\n        ) {\n          return index + 1\n        }\n        else {\n          return index + 0.5\n        }\n      }\n      else {\n        return index + 1\n      }\n    }\n    let cleared = false\n    function updateHoverIndex(value: number | null): void {\n      if (hoverIndexRef.value === value)\n        return\n      hoverIndexRef.value = value\n      const { 'onUpdate:hoverValue': _onUpdateHoverValue, onUpdateHoverValue }\n        = props\n      if (_onUpdateHoverValue) {\n        call(_onUpdateHoverValue as RateOnUpdateValueImpl, value)\n      }\n      if (onUpdateHoverValue) {\n        call(onUpdateHoverValue as RateOnUpdateValueImpl, value)\n      }\n    }\n    function handleMouseMove(index: number, e: MouseEvent): void {\n      if (cleared)\n        return\n      updateHoverIndex(getDerivedValue(index, e))\n    }\n    function handleMouseLeave(): void {\n      updateHoverIndex(null)\n    }\n    function handleClick(index: number, e: MouseEvent): void {\n      const { clearable } = props\n      const derivedValue = getDerivedValue(index, e)\n      if (clearable && derivedValue === mergedValue.value) {\n        cleared = true\n        props.onClear?.()\n        updateHoverIndex(null)\n        doUpdateValue(null)\n      }\n      else {\n        doUpdateValue(derivedValue)\n      }\n    }\n    function handleMouseEnterSomeStar(): void {\n      cleared = false\n    }\n    const { mergedSizeRef: _mergedSizeRef } = formItem\n\n    const mergedSizeRef = computed(() => {\n      const size = _mergedSizeRef.value\n      const { self } = themeRef.value\n      if (typeof size === 'number') {\n        return `${size}px`\n      }\n      else {\n        return self[createKey('size', size)]\n      }\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const { itemColor, itemColorActive } = self\n      const { color } = props\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-item-color': itemColor,\n        '--n-item-color-active': color || itemColorActive,\n        '--n-item-size': mergedSizeRef.value\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'rate',\n          computed(() => {\n            const size = mergedSizeRef.value\n            const { color } = props\n            let hash = ''\n            if (size) {\n              hash += size[0]\n            }\n            if (color) {\n              hash += color2Class(color)\n            }\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedValue,\n      hoverIndex: hoverIndexRef,\n      handleMouseMove,\n      handleClick,\n      handleMouseLeave,\n      handleMouseEnterSomeStar,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      readonly,\n      hoverIndex,\n      mergedValue,\n      mergedClsPrefix,\n      onRender,\n      $slots: { default: defaultSlot }\n    } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-rate`,\n          {\n            [`${mergedClsPrefix}-rate--readonly`]: readonly\n          },\n          this.themeClass\n        ]}\n        style={this.cssVars as CSSProperties}\n        onMouseleave={this.handleMouseLeave}\n      >\n        {renderList(this.count, (_, index) => {\n          const icon = defaultSlot ? (\n            defaultSlot({ index })\n          ) : (\n            <NBaseIcon clsPrefix={mergedClsPrefix}>\n              {{ default: renderStarIcon }}\n            </NBaseIcon>\n          )\n          const entireStarActive\n            = hoverIndex !== null\n              ? index + 1 <= hoverIndex\n              : index + 1 <= (mergedValue || 0)\n          return (\n            <div\n              key={index}\n              class={[\n                `${mergedClsPrefix}-rate__item`,\n                entireStarActive && `${mergedClsPrefix}-rate__item--active`\n              ]}\n              onClick={\n                readonly\n                  ? undefined\n                  : (e) => {\n                      this.handleClick(index, e)\n                    }\n              }\n              onMouseenter={this.handleMouseEnterSomeStar}\n              onMousemove={\n                readonly\n                  ? undefined\n                  : (e) => {\n                      this.handleMouseMove(index, e)\n                    }\n              }\n            >\n              {icon}\n              {this.allowHalf ? (\n                <div\n                  class={[\n                    `${mergedClsPrefix}-rate__half`,\n                    {\n                      [`${mergedClsPrefix}-rate__half--active`]:\n                        !entireStarActive && hoverIndex !== null\n                          ? index + 0.5 <= hoverIndex\n                          : index + 0.5 <= (mergedValue || 0)\n                    }\n                  ]}\n                >\n                  {icon}\n                </div>\n              ) : null}\n            </div>\n          )\n        })}\n      </div>\n    )\n  }\n})\n","import { h } from 'vue'\n\nexport function render403() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\">\n      <path\n        fill=\"#EF9645\"\n        d=\"M15.5 2.965c1.381 0 2.5 1.119 2.5 2.5v.005L20.5.465c1.381 0 2.5 1.119 2.5 2.5V4.25l2.5-1.535c1.381 0 2.5 1.119 2.5 2.5V8.75L29 18H15.458L15.5 2.965z\"\n      />\n      <path\n        fill=\"#FFDC5D\"\n        d=\"M4.625 16.219c1.381-.611 3.354.208 4.75 2.188.917 1.3 1.187 3.151 2.391 3.344.46.073 1.234-.313 1.234-1.397V4.5s0-2 2-2 2 2 2 2v11.633c0-.029 1-.064 1-.082V2s0-2 2-2 2 2 2 2v14.053c0 .017 1 .041 1 .069V4.25s0-2 2-2 2 2 2 2v12.638c0 .118 1 .251 1 .398V8.75s0-2 2-2 2 2 2 2V24c0 6.627-5.373 12-12 12-4.775 0-8.06-2.598-9.896-5.292C8.547 28.423 8.096 26.051 8 25.334c0 0-.123-1.479-1.156-2.865-1.469-1.969-2.5-3.156-3.125-3.866-.317-.359-.625-1.707.906-2.384z\"\n      />\n    </svg>\n  )\n}\n","import { h } from 'vue'\n\nexport function render404() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\">\n      <circle fill=\"#FFCB4C\" cx=\"18\" cy=\"17.018\" r=\"17\" />\n      <path\n        fill=\"#65471B\"\n        d=\"M14.524 21.036c-.145-.116-.258-.274-.312-.464-.134-.46.13-.918.59-1.021 4.528-1.021 7.577 1.363 7.706 1.465.384.306.459.845.173 1.205-.286.358-.828.401-1.211.097-.11-.084-2.523-1.923-6.182-1.098-.274.061-.554-.016-.764-.184z\"\n      />\n      <ellipse fill=\"#65471B\" cx=\"13.119\" cy=\"11.174\" rx=\"2.125\" ry=\"2.656\" />\n      <ellipse fill=\"#65471B\" cx=\"24.375\" cy=\"12.236\" rx=\"2.125\" ry=\"2.656\" />\n      <path\n        fill=\"#F19020\"\n        d=\"M17.276 35.149s1.265-.411 1.429-1.352c.173-.972-.624-1.167-.624-1.167s1.041-.208 1.172-1.376c.123-1.101-.861-1.363-.861-1.363s.97-.4 1.016-1.539c.038-.959-.995-1.428-.995-1.428s5.038-1.221 5.556-1.341c.516-.12 1.32-.615 1.069-1.694-.249-1.08-1.204-1.118-1.697-1.003-.494.115-6.744 1.566-8.9 2.068l-1.439.334c-.54.127-.785-.11-.404-.512.508-.536.833-1.129.946-2.113.119-1.035-.232-2.313-.433-2.809-.374-.921-1.005-1.649-1.734-1.899-1.137-.39-1.945.321-1.542 1.561.604 1.854.208 3.375-.833 4.293-2.449 2.157-3.588 3.695-2.83 6.973.828 3.575 4.377 5.876 7.952 5.048l3.152-.681z\"\n      />\n      <path\n        fill=\"#65471B\"\n        d=\"M9.296 6.351c-.164-.088-.303-.224-.391-.399-.216-.428-.04-.927.393-1.112 4.266-1.831 7.699-.043 7.843.034.433.231.608.747.391 1.154-.216.405-.74.546-1.173.318-.123-.063-2.832-1.432-6.278.047-.257.109-.547.085-.785-.042zm12.135 3.75c-.156-.098-.286-.243-.362-.424-.187-.442.023-.927.468-1.084 4.381-1.536 7.685.48 7.823.567.415.26.555.787.312 1.178-.242.39-.776.495-1.191.238-.12-.072-2.727-1.621-6.267-.379-.266.091-.553.046-.783-.096z\"\n      />\n    </svg>\n  )\n}\n","import { h } from 'vue'\n\nexport function render418() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\">\n      <ellipse fill=\"#292F33\" cx=\"18\" cy=\"26\" rx=\"18\" ry=\"10\" />\n      <ellipse fill=\"#66757F\" cx=\"18\" cy=\"24\" rx=\"18\" ry=\"10\" />\n      <path\n        fill=\"#E1E8ED\"\n        d=\"M18 31C3.042 31 1 16 1 12h34c0 2-1.958 19-17 19z\"\n      />\n      <path\n        fill=\"#77B255\"\n        d=\"M35 12.056c0 5.216-7.611 9.444-17 9.444S1 17.271 1 12.056C1 6.84 8.611 3.611 18 3.611s17 3.229 17 8.445z\"\n      />\n      <ellipse fill=\"#A6D388\" cx=\"18\" cy=\"13\" rx=\"15\" ry=\"7\" />\n      <path\n        d=\"M21 17c-.256 0-.512-.098-.707-.293-2.337-2.337-2.376-4.885-.125-8.262.739-1.109.9-2.246.478-3.377-.461-1.236-1.438-1.996-1.731-2.077-.553 0-.958-.443-.958-.996 0-.552.491-.995 1.043-.995.997 0 2.395 1.153 3.183 2.625 1.034 1.933.91 4.039-.351 5.929-1.961 2.942-1.531 4.332-.125 5.738.391.391.391 1.023 0 1.414-.195.196-.451.294-.707.294zm-6-2c-.256 0-.512-.098-.707-.293-2.337-2.337-2.376-4.885-.125-8.262.727-1.091.893-2.083.494-2.947-.444-.961-1.431-1.469-1.684-1.499-.552 0-.989-.447-.989-1 0-.552.458-1 1.011-1 .997 0 2.585.974 3.36 2.423.481.899 1.052 2.761-.528 5.131-1.961 2.942-1.531 4.332-.125 5.738.391.391.391 1.023 0 1.414-.195.197-.451.295-.707.295z\"\n        fill=\"#5C913B\"\n      />\n    </svg>\n  )\n}\n","import { h } from 'vue'\n\nexport function render500() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 36 36\">\n      <path\n        fill=\"#FFCC4D\"\n        d=\"M36 18c0 9.941-8.059 18-18 18-9.94 0-18-8.059-18-18C0 8.06 8.06 0 18 0c9.941 0 18 8.06 18 18\"\n      />\n      <ellipse fill=\"#664500\" cx=\"18\" cy=\"27\" rx=\"5\" ry=\"6\" />\n      <path\n        fill=\"#664500\"\n        d=\"M5.999 11c-.208 0-.419-.065-.599-.2-.442-.331-.531-.958-.2-1.4C8.462 5.05 12.816 5 13 5c.552 0 1 .448 1 1 0 .551-.445.998-.996 1-.155.002-3.568.086-6.204 3.6-.196.262-.497.4-.801.4zm24.002 0c-.305 0-.604-.138-.801-.4-2.64-3.521-6.061-3.598-6.206-3.6-.55-.006-.994-.456-.991-1.005C22.006 5.444 22.45 5 23 5c.184 0 4.537.05 7.8 4.4.332.442.242 1.069-.2 1.4-.18.135-.39.2-.599.2zm-16.087 4.5l1.793-1.793c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0L12.5 14.086l-1.793-1.793c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l1.793 1.793-1.793 1.793c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l1.793-1.793 1.793 1.793c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414L13.914 15.5zm11 0l1.793-1.793c.391-.391.391-1.023 0-1.414s-1.023-.391-1.414 0L23.5 14.086l-1.793-1.793c-.391-.391-1.023-.391-1.414 0s-.391 1.023 0 1.414l1.793 1.793-1.793 1.793c-.391.391-.391 1.023 0 1.414.195.195.451.293.707.293s.512-.098.707-.293l1.793-1.793 1.793 1.793c.195.195.451.293.707.293s.512-.098.707-.293c.391-.391.391-1.023 0-1.414L24.914 15.5z\"\n      />\n    </svg>\n  )\n}\n","import { cB, cE } from '../../../_utils/cssr'\n\n// --n-bezier\n// --n-font-size\n// --n-icon-size\n// --n-line-height\n// --n-text-color\n// --n-title-font-size\n// --n-title-font-weight\n// --n-title-text-color\nexport default cB('result', `\n  color: var(--n-text-color);\n  line-height: var(--n-line-height);\n  font-size: var(--n-font-size);\n  transition:\n    color .3s var(--n-bezier);\n`, [\n  cB('result-icon', `\n    display: flex;\n    justify-content: center;\n    transition: color .3s var(--n-bezier);\n  `, [\n    cE('status-image', `\n      font-size: var(--n-icon-size);\n      width: 1em;\n      height: 1em;\n    `),\n    cB('base-icon', `\n      color: var(--n-icon-color);\n      font-size: var(--n-icon-size);\n    `)\n  ]),\n  cB('result-content', {\n    marginTop: '24px'\n  }),\n  cB('result-footer', `\n    margin-top: 24px;\n    text-align: center;\n  `),\n  cB('result-header', [\n    cE('title', `\n      margin-top: 16px;\n      font-weight: var(--n-title-font-weight);\n      transition: color .3s var(--n-bezier);\n      text-align: center;\n      color: var(--n-title-text-color);\n      font-size: var(--n-title-font-size);\n    `),\n    cE('description', `\n      margin-top: 4px;\n      text-align: center;\n      font-size: var(--n-font-size);\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ResultTheme, ResultThemeOverrides } from '../styles'\nimport type { ResultSize } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  ErrorIcon,\n  InfoIcon,\n  SuccessIcon,\n  WarningIcon\n} from '../../_internal/icons'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey } from '../../_utils'\nimport { resultLight } from '../styles'\nimport { render403 } from './403'\nimport { render404 } from './404'\nimport { render418 } from './418'\nimport { render500 } from './500'\nimport style from './styles/index.cssr'\n\nconst iconRenderMap = {\n  403: render403,\n  404: render404,\n  418: render418,\n  500: render500,\n  info: () => <InfoIcon />,\n  success: () => <SuccessIcon />,\n  warning: () => <WarningIcon />,\n  error: () => <ErrorIcon />\n}\n\nexport const resultProps = {\n  ...(useTheme.props as ThemeProps<ResultTheme, ResultThemeOverrides>),\n  size: String as PropType<ResultSize>,\n  status: {\n    type: String as PropType<\n      'info' | 'success' | 'warning' | 'error' | '404' | '403' | '500' | '418'\n    >,\n    default: 'info'\n  },\n  title: String,\n  description: String\n}\n\nexport type ResultProps = ExtractPublicPropTypes<typeof resultProps>\n\nexport interface ResultSlots {\n  default?: () => VNode[]\n  footer?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Result',\n  props: resultProps,\n  slots: Object as SlotsType<ResultSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size || mergedComponentPropsRef?.value?.Result?.size || 'medium'\n      )\n    })\n    const themeRef = useTheme(\n      'Result',\n      '-result',\n      style,\n      resultLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { status } = props\n      const size = mergedSizeRef.value\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          textColor,\n          lineHeight,\n          titleTextColor,\n          titleFontWeight,\n          [createKey('iconColor', status)]: iconColor,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('titleFontSize', size)]: titleFontSize,\n          [createKey('iconSize', size)]: iconSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-icon-size': iconSize,\n        '--n-line-height': lineHeight,\n        '--n-text-color': textColor,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-title-text-color': titleTextColor,\n        '--n-icon-color': iconColor || ''\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'result',\n          computed(() => {\n            const { status } = props\n            const size = mergedSizeRef.value\n            let hash = ''\n            if (size) {\n              hash += size[0]\n            }\n            if (status) {\n              hash += status[0]\n            }\n            return hash\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { status, $slots, mergedClsPrefix, onRender } = this\n    onRender?.()\n    return (\n      <div\n        class={[`${mergedClsPrefix}-result`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-result-icon`}>\n          {$slots.icon?.() || (\n            <NBaseIcon clsPrefix={mergedClsPrefix}>\n              {{ default: () => iconRenderMap[status]() }}\n            </NBaseIcon>\n          )}\n        </div>\n        <div class={`${mergedClsPrefix}-result-header`}>\n          {this.title ? (\n            <div class={`${mergedClsPrefix}-result-header__title`}>\n              {this.title}\n            </div>\n          ) : null}\n          {this.description ? (\n            <div class={`${mergedClsPrefix}-result-header__description`}>\n              {this.description}\n            </div>\n          ) : null}\n        </div>\n        {$slots.default && (\n          <div class={`${mergedClsPrefix}-result-content`}>\n            {$slots.default()}\n          </div>\n        )}\n        {$slots.footer && (\n          <div class={`${mergedClsPrefix}-result-footer`}>\n            {$slots.footer()}\n          </div>\n        )}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { ScrollbarInst as InternalScrollbarInst } from '../../_internal'\nimport type {\n  ScrollbarTheme,\n  ScrollbarThemeOverrides\n} from '../../_internal/scrollbar/styles'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent, h, ref } from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { useTheme } from '../../_mixins'\n\nexport interface ScrollTo {\n  (x: number, y: number): void\n  (options: { left?: number, top?: number, behavior?: ScrollBehavior }): void\n}\n\nexport type ScrollBy = ScrollTo\n\nexport interface ScrollbarInst {\n  scrollTo: ScrollTo\n  scrollBy: ScrollBy\n}\n\nexport const scrollbarProps = {\n  ...(useTheme.props as ThemeProps<ScrollbarTheme, ScrollbarThemeOverrides>),\n  trigger: String as PropType<'none' | 'hover'>,\n  xScrollable: Boolean,\n  onScroll: Function as PropType<(e: Event) => void>,\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<string | Record<string, any>>,\n  yPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'right'\n  },\n  xPlacement: {\n    type: String as PropType<'top' | 'bottom'>,\n    default: 'bottom'\n  }\n} as const\n\nexport type ScrollbarProps = ExtractPublicPropTypes<typeof scrollbarProps>\n\nconst Scrollbar = defineComponent({\n  name: 'Scrollbar',\n  props: scrollbarProps,\n  setup() {\n    const scrollbarInstRef = ref<InternalScrollbarInst | null>(null)\n    const exposedMethods: ScrollbarInst = {\n      scrollTo: (...args: any[]) => {\n        scrollbarInstRef.value?.scrollTo(args[0], args[1])\n      },\n      scrollBy: (...args: any[]) => {\n        scrollbarInstRef.value?.scrollBy(args[0], args[1])\n      }\n    }\n    return {\n      ...exposedMethods,\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown\n    }\n  },\n  render() {\n    return (\n      <NScrollbar ref=\"scrollbarInstRef\" {...this.$props}>\n        {this.$slots}\n      </NScrollbar>\n    )\n  }\n})\n\nexport default Scrollbar\n","import type { SkeletonTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nexport const skeletonDark: SkeletonTheme = {\n  name: 'Skeleton',\n  common: commonDark,\n  self(vars) {\n    const { heightSmall, heightMedium, heightLarge, borderRadius } = vars\n    return {\n      color: 'rgba(255, 255, 255, 0.12)',\n      colorEnd: 'rgba(255, 255, 255, 0.18)',\n      borderRadius,\n      heightSmall,\n      heightMedium,\n      heightLarge\n    }\n  }\n}\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nfunction self(vars: ThemeCommonVars) {\n  const { heightSmall, heightMedium, heightLarge, borderRadius } = vars\n  return {\n    color: '#eee',\n    colorEnd: '#ddd',\n    borderRadius,\n    heightSmall,\n    heightMedium,\n    heightLarge\n  }\n}\n\nexport interface SkeletonThemeVars extends ReturnType<typeof self> {}\n\nexport const skeletonLight: SkeletonTheme = {\n  name: 'Skeleton',\n  common: commonLight,\n  self\n}\n\nexport interface SkeletonTheme extends Theme<'Skeleton', SkeletonThemeVars> {}\n\nexport interface SkeletonThemeOverrides extends ExtractThemeOverrides<SkeletonTheme> {}\n","import { c, cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-color-start\n// --n-color-end\n// --n-bezier\nexport default c([\n  cB('skeleton', `\n    height: 1em;\n    width: 100%;\n    transition:\n      --n-color-start .3s var(--n-bezier),\n      --n-color-end .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    animation: 2s skeleton-loading infinite cubic-bezier(0.36, 0, 0.64, 1);\n    background-color: var(--n-color-start);\n  `),\n  c('@keyframes skeleton-loading', `\n    0% {\n      background: var(--n-color-start);\n    }\n    40% {\n      background: var(--n-color-end);\n    }\n    80% {\n      background: var(--n-color-start);\n    }\n    100% {\n      background: var(--n-color-start);\n    }\n  `)\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { SkeletonTheme, SkeletonThemeOverrides } from '../styles'\nimport type { SkeletonSize } from './public-types'\nimport { pxfy, repeat } from 'seemly'\nimport { computed, defineComponent, Fragment, h, mergeProps } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { createKey, useHoudini } from '../../_utils'\nimport { skeletonLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const skeletonProps = {\n  ...(useTheme.props as ThemeProps<SkeletonTheme, SkeletonThemeOverrides>),\n  text: Boolean,\n  round: Boolean,\n  circle: Boolean,\n  height: [String, Number] as PropType<string | number>,\n  width: [String, Number] as PropType<string | number>,\n  size: String as PropType<SkeletonSize>,\n  repeat: {\n    type: Number,\n    default: 1\n  },\n  animated: {\n    type: Boolean,\n    default: true\n  },\n  sharp: {\n    type: Boolean,\n    default: true\n  }\n} as const\n\nexport type SkeletonProps = ExtractPublicPropTypes<typeof skeletonProps>\n\nexport default defineComponent({\n  name: 'Skeleton',\n  inheritAttrs: false,\n  props: skeletonProps,\n  setup(props) {\n    useHoudini()\n    const { mergedClsPrefixRef, mergedComponentPropsRef } = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return props.size || mergedComponentPropsRef?.value?.Skeleton?.size\n    })\n    const themeRef = useTheme(\n      'Skeleton',\n      '-skeleton',\n      style,\n      skeletonLight,\n      props,\n      mergedClsPrefixRef\n    )\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      style: computed(() => {\n        const theme = themeRef.value\n        const {\n          common: { cubicBezierEaseInOut }\n        } = theme\n        const selfThemeVars = theme.self\n        const { color, colorEnd, borderRadius } = selfThemeVars\n        let sizeHeight: string | undefined\n        const { circle, sharp, round, width, height, text, animated } = props\n        const mergedSize = mergedSizeRef.value\n        if (mergedSize !== undefined) {\n          sizeHeight = selfThemeVars[createKey('height', mergedSize)]\n        }\n        const mergedWidth = circle ? (width ?? height ?? sizeHeight) : width\n        const mergedHeight = (circle ? (width ?? height) : height) ?? sizeHeight\n        return {\n          display: text ? 'inline-block' : '',\n          verticalAlign: text ? '-0.125em' : '',\n          borderRadius: circle\n            ? '50%'\n            : round\n              ? '4096px'\n              : sharp\n                ? ''\n                : borderRadius,\n          width:\n            typeof mergedWidth === 'number' ? pxfy(mergedWidth) : mergedWidth,\n          height:\n            typeof mergedHeight === 'number'\n              ? pxfy(mergedHeight)\n              : mergedHeight,\n          animation: !animated ? 'none' : '',\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-color-start': color,\n          '--n-color-end': colorEnd\n        }\n      }) as Ref<CSSProperties>\n    }\n  },\n  render() {\n    const { repeat: repeatProp, style, mergedClsPrefix, $attrs } = this\n    // BUG:\n    // Chrome devtools can't read the element\n    // Maybe it's a bug of chrome\n    const child = h(\n      'div',\n      mergeProps(\n        {\n          class: `${mergedClsPrefix}-skeleton`,\n          style\n        },\n        $attrs\n      )\n    )\n    if (repeatProp > 1) {\n      return <>{repeat(repeatProp, null).map(_ => [child, '\\n'])}</>\n    }\n    return child\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE, cM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-dot-border\n// --n-dot-border-active\n// --n-dot-border-radius\n// --n-dot-box-shadow\n// --n-dot-color\n// --n-dot-color-modal\n// --n-dot-color-popover\n// --n-dot-height\n// --n-dot-width\n// --n-fill-color\n// --n-fill-color-hover\n// --n-font-size\n// --n-handle-box-shadow\n// --n-handle-box-shadow-active\n// --n-handle-box-shadow-focus\n// --n-handle-box-shadow-hover\n// --n-handle-color\n// --n-handle-size\n// --n-indicator-border-radius\n// --n-indicator-box-shadow\n// --n-indicator-color\n// --n-indicator-text-color\n// --n-rail-color\n// --n-rail-color-hover\n// --n-rail-height\n// --n-rail-width-vertical\n// --n-mark-font-size\nexport default c([\n  cB('slider', `\n    display: block;\n    padding: calc((var(--n-handle-size) - var(--n-rail-height)) / 2) 0;\n    position: relative;\n    z-index: 0;\n    width: 100%;\n    cursor: pointer;\n    user-select: none;\n    -webkit-user-select: none;\n  `, [\n    cM('reverse', [\n      cB('slider-handles', [\n        cB('slider-handle-wrapper', `\n          transform: translate(50%, -50%);\n        `)\n      ]),\n      cB('slider-dots', [\n        cB('slider-dot', `\n          transform: translateX(50%, -50%);\n        `)\n      ]),\n      cM('vertical', [\n        cB('slider-handles', [\n          cB('slider-handle-wrapper', `\n            transform: translate(-50%, -50%);\n          `)\n        ]),\n        cB('slider-marks', [\n          cB('slider-mark', `\n            transform: translateY(calc(-50% + var(--n-dot-height) / 2));\n          `)\n        ]),\n        cB('slider-dots', [\n          cB('slider-dot', `\n            transform: translateX(-50%) translateY(0);\n          `)\n        ])\n      ])\n    ]),\n    cM('vertical', `\n      box-sizing: content-box;\n      padding: 0 calc((var(--n-handle-size) - var(--n-rail-height)) / 2);\n      width: var(--n-rail-width-vertical);\n      height: 100%;\n    `, [\n      cB('slider-handles', `\n        top: calc(var(--n-handle-size) / 2);\n        right: 0;\n        bottom: calc(var(--n-handle-size) / 2);\n        left: 0;\n      `, [\n        cB('slider-handle-wrapper', `\n          top: unset;\n          left: 50%;\n          transform: translate(-50%, 50%);\n        `)\n      ]),\n      cB('slider-rail', `\n        height: 100%;\n      `, [\n        cE('fill', `\n          top: unset;\n          right: 0;\n          bottom: unset;\n          left: 0;\n        `)\n      ]),\n      cM('with-mark', `\n        width: var(--n-rail-width-vertical);\n        margin: 0 32px 0 8px;\n      `),\n      cB('slider-marks', `\n        top: calc(var(--n-handle-size) / 2);\n        right: unset;\n        bottom: calc(var(--n-handle-size) / 2);\n        left: 22px;\n        font-size: var(--n-mark-font-size);\n      `, [\n        cB('slider-mark', `\n          transform: translateY(50%);\n          white-space: nowrap;\n        `)\n      ]),\n      cB('slider-dots', `\n        top: calc(var(--n-handle-size) / 2);\n        right: unset;\n        bottom: calc(var(--n-handle-size) / 2);\n        left: 50%;\n      `, [\n        cB('slider-dot', `\n          transform: translateX(-50%) translateY(50%);\n        `)\n      ])\n    ]),\n    cM('disabled', `\n      cursor: not-allowed;\n      opacity: var(--n-opacity-disabled);\n    `, [\n      cB('slider-handle', `\n        cursor: not-allowed;\n      `)\n    ]),\n    cM('with-mark', `\n      width: 100%;\n      margin: 8px 0 32px 0;\n    `),\n    c('&:hover', [\n      cB('slider-rail', {\n        backgroundColor: 'var(--n-rail-color-hover)'\n      }, [\n        cE('fill', {\n          backgroundColor: 'var(--n-fill-color-hover)'\n        })\n      ]),\n      cB('slider-handle', {\n        boxShadow: 'var(--n-handle-box-shadow-hover)'\n      })\n    ]),\n    cM('active', [\n      cB('slider-rail', {\n        backgroundColor: 'var(--n-rail-color-hover)'\n      }, [\n        cE('fill', {\n          backgroundColor: 'var(--n-fill-color-hover)'\n        })\n      ]),\n      cB('slider-handle', {\n        boxShadow: 'var(--n-handle-box-shadow-hover)'\n      })\n    ]),\n    cB('slider-marks', `\n      position: absolute;\n      top: 18px;\n      left: calc(var(--n-handle-size) / 2);\n      right: calc(var(--n-handle-size) / 2);\n    `, [\n      cB('slider-mark', `\n        position: absolute;\n        transform: translateX(-50%);\n        white-space: nowrap;\n      `)\n    ]),\n    cB('slider-rail', `\n      width: 100%;\n      position: relative;\n      height: var(--n-rail-height);\n      background-color: var(--n-rail-color);\n      transition: background-color .3s var(--n-bezier);\n      border-radius: calc(var(--n-rail-height) / 2);\n    `, [\n      cE('fill', `\n        position: absolute;\n        top: 0;\n        bottom: 0;\n        border-radius: calc(var(--n-rail-height) / 2);\n        transition: background-color .3s var(--n-bezier);\n        background-color: var(--n-fill-color);\n      `)\n    ]),\n    cB('slider-handles', `\n      position: absolute;\n      top: 0;\n      right: calc(var(--n-handle-size) / 2);\n      bottom: 0;\n      left: calc(var(--n-handle-size) / 2);\n    `, [\n      cB('slider-handle-wrapper', `\n        outline: none;\n        position: absolute;\n        top: 50%;\n        transform: translate(-50%, -50%);\n        cursor: pointer;\n        display: flex;\n      `, [\n        cB('slider-handle', `\n          height: var(--n-handle-size);\n          width: var(--n-handle-size);\n          border-radius: 50%;\n          overflow: hidden;\n          transition: box-shadow .2s var(--n-bezier), background-color .3s var(--n-bezier);\n          background-color: var(--n-handle-color);\n          box-shadow: var(--n-handle-box-shadow);\n        `, [\n          c('&:hover', `\n            box-shadow: var(--n-handle-box-shadow-hover);\n          `)\n        ]),\n        c('&:focus', [\n          cB('slider-handle', `\n            box-shadow: var(--n-handle-box-shadow-focus);\n          `, [\n            c('&:hover', `\n              box-shadow: var(--n-handle-box-shadow-active);\n            `)\n          ])\n        ])\n      ])\n    ]),\n    cB('slider-dots', `\n      position: absolute;\n      top: 50%;\n      left: calc(var(--n-handle-size) / 2);\n      right: calc(var(--n-handle-size) / 2);\n    `, [\n      cM('transition-disabled', [\n        cB('slider-dot', 'transition: none;')\n      ]),\n      cB('slider-dot', `\n        transition:\n          border-color .3s var(--n-bezier),\n          box-shadow .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n        position: absolute;\n        transform: translate(-50%, -50%);\n        height: var(--n-dot-height);\n        width:  var(--n-dot-width);\n        border-radius: var(--n-dot-border-radius);\n        overflow: hidden;\n        box-sizing: border-box;\n        border: var(--n-dot-border);\n        background-color: var(--n-dot-color);\n      `, [\n        cM('active', 'border: var(--n-dot-border-active);')\n      ])\n    ])\n  ]),\n  cB('slider-handle-indicator', `\n    font-size: var(--n-font-size);\n    padding: 6px 10px;\n    border-radius: var(--n-indicator-border-radius);\n    color: var(--n-indicator-text-color);\n    background-color: var(--n-indicator-color);\n    box-shadow: var(--n-indicator-box-shadow);\n  `, [\n    fadeInScaleUpTransition()\n  ]),\n  cB('slider-handle-indicator', `\n    font-size: var(--n-font-size);\n    padding: 6px 10px;\n    border-radius: var(--n-indicator-border-radius);\n    color: var(--n-indicator-text-color);\n    background-color: var(--n-indicator-color);\n    box-shadow: var(--n-indicator-box-shadow);\n  `, [\n    cM('top', `\n      margin-bottom: 12px;\n    `),\n    cM('right', `\n      margin-left: 12px;\n    `),\n    cM('bottom', `\n      margin-top: 12px;\n    `),\n    cM('left', `\n      margin-right: 12px;\n    `),\n    fadeInScaleUpTransition()\n  ]),\n  insideModal(\n    cB('slider', [\n      cB('slider-dot', 'background-color: var(--n-dot-color-modal);')\n    ])\n  ),\n  insidePopover(\n    cB('slider', [\n      cB('slider-dot', 'background-color: var(--n-dot-color-popover);')\n    ])\n  )\n])\n","import type { ComponentPublicInstance } from 'vue'\nimport { onBeforeUpdate } from 'vue'\n\nexport function isTouchEvent(e: MouseEvent | TouchEvent): e is TouchEvent {\n  return window.TouchEvent && e instanceof window.TouchEvent\n}\n\ntype RefType = HTMLElement | ComponentPublicInstance\ntype RefKey = number\ntype RefsValue<T extends RefType> = Map<RefKey, T>\nexport function useRefs<T extends RefType>(): [\n  RefsValue<T>,\n  (key: RefKey) => (el: any) => void\n] {\n  const refs = new Map()\n  const setRefs = (index: RefKey) => (el: any) => {\n    refs.set(index, el)\n  }\n\n  onBeforeUpdate(() => {\n    refs.clear()\n  })\n\n  return [refs, setRefs]\n}\n","import type {\n  ComponentPublicInstance,\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { SliderTheme, SliderThemeOverrides } from '../styles'\nimport type { OnUpdateValueImpl } from './interface'\nimport { off, on } from 'evtd'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  nextTick,\n  onBeforeUnmount,\n  ref,\n  toRef,\n  Transition,\n  watch\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport { call, resolveSlot, useAdjustedTo } from '../../_utils'\nimport { sliderLight } from '../styles'\nimport style from './styles/index.cssr'\nimport { isTouchEvent, useRefs } from './utils'\n\nexport interface ClosestMark {\n  value: number\n  distance: number\n  index: number\n}\n\n// ref: https://developer.mozilla.org/zh-CN/docs/Web/API/MouseEvent/button\nconst eventButtonLeft = 0\n\nexport const sliderProps = {\n  ...(useTheme.props as ThemeProps<SliderTheme, SliderThemeOverrides>),\n  to: useAdjustedTo.propTo,\n  defaultValue: {\n    type: [Number, Array] as PropType<number | number[]>,\n    default: 0\n  },\n  marks: Object as PropType<Record<string, string | (() => VNodeChild)>>,\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  formatTooltip: Function as PropType<(value: number) => string | number>,\n  keyboard: {\n    type: Boolean,\n    default: true\n  },\n  min: {\n    type: Number,\n    default: 0\n  },\n  max: {\n    type: Number,\n    default: 100\n  },\n  step: {\n    type: [Number, String] as PropType<number | 'mark'>,\n    default: 1\n  },\n  range: Boolean,\n  value: [Number, Array] as PropType<number | number[]>,\n  placement: String as PropType<FollowerPlacement>,\n  showTooltip: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  tooltip: {\n    type: Boolean,\n    default: true\n  },\n  vertical: Boolean,\n  reverse: Boolean,\n  'onUpdate:value': [Function, Array] as PropType<\n    MaybeArray<(value: number & number[]) => void>\n  >,\n  onUpdateValue: [Function, Array] as PropType<\n    MaybeArray<(value: number & number[]) => void>\n  >,\n  onDragstart: [Function] as PropType<() => void>,\n  onDragend: [Function] as PropType<() => void>\n} as const\n\nexport type SliderProps = ExtractPublicPropTypes<typeof sliderProps>\n\nexport interface SliderSlots {\n  thumb?: () => VNode[]\n  default?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Slider',\n  props: sliderProps,\n  slots: Object as SlotsType<SliderSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, namespaceRef, inlineThemeDisabled }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Slider',\n      '-slider',\n      style,\n      sliderLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    // dom ref\n    const handleRailRef = ref<HTMLElement | null>(null)\n    const [handleRefs, setHandleRefs] = useRefs<HTMLElement>()\n    const [followerRefs, setFollowerRefs] = useRefs<\n      FollowerInst & ComponentPublicInstance\n    >()\n    const followerEnabledIndexSetRef = ref<Set<number>>(new Set())\n\n    // data ref\n    const formItem = useFormItem(props)\n    const { mergedDisabledRef } = formItem\n    const precisionRef = computed(() => {\n      const { step } = props\n      if (Number(step) <= 0 || step === 'mark')\n        return 0\n      const stepString = step.toString()\n      let precision = 0\n      if (stepString.includes('.')) {\n        precision = stepString.length - stepString.indexOf('.') - 1\n      }\n      return precision\n    })\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const arrifiedValueRef = computed(() => {\n      const { value: mergedValue } = mergedValueRef\n      return ((props.range ? mergedValue : [mergedValue]) as number[]).map(\n        clampValue\n      )\n    })\n    const handleCountExceeds2Ref = computed(\n      () => arrifiedValueRef.value.length > 2\n    )\n    const mergedPlacementRef = computed(() => {\n      return props.placement === undefined\n        ? props.vertical\n          ? 'right'\n          : 'top'\n        : props.placement\n    })\n    const markValuesRef = computed(() => {\n      const { marks } = props\n      return marks ? Object.keys(marks).map(Number.parseFloat) : null\n    })\n\n    // status ref\n    const activeIndexRef = ref(-1)\n    const previousIndexRef = ref(-1)\n    const hoverIndexRef = ref(-1)\n    const draggingRef = ref(false)\n\n    // style ref\n    const dotTransitionDisabledRef = ref(false)\n    const styleDirectionRef = computed(() => {\n      const { vertical, reverse } = props\n      const left = reverse ? 'right' : 'left'\n      const bottom = reverse ? 'top' : 'bottom'\n      return vertical ? bottom : left\n    })\n    const fillStyleRef = computed(() => {\n      if (handleCountExceeds2Ref.value)\n        return\n      const values = arrifiedValueRef.value\n      const start = valueToPercentage(\n        props.range ? Math.min(...values) : props.min\n      )\n      const end = valueToPercentage(\n        props.range ? Math.max(...values) : values[0]\n      )\n      const { value: styleDirection } = styleDirectionRef\n      return props.vertical\n        ? {\n            [styleDirection]: `${start}%`,\n            height: `${end - start}%`\n          }\n        : {\n            [styleDirection]: `${start}%`,\n            width: `${end - start}%`\n          }\n    })\n    const markInfosRef = computed(() => {\n      const mergedMarks: Array<{\n        active: boolean\n        label: string | (() => VNodeChild)\n        key: number\n        style: CSSProperties\n      }> = []\n      const { marks } = props\n      if (marks) {\n        const orderValues = arrifiedValueRef.value.slice()\n        orderValues.sort((a, b) => a - b)\n        const { value: styleDirection } = styleDirectionRef\n        const { value: handleCountExceeds2 } = handleCountExceeds2Ref\n        const { range } = props\n        const isActive = handleCountExceeds2\n          ? () => false\n          : (num: number): boolean =>\n              range\n                ? num >= orderValues[0]\n                && num <= orderValues[orderValues.length - 1]\n                : num <= orderValues[0]\n        for (const key of Object.keys(marks)) {\n          const num = Number(key)\n          mergedMarks.push({\n            active: isActive(num),\n            key: num,\n            label: marks[key],\n            style: {\n              [styleDirection]: `${valueToPercentage(num)}%`\n            }\n          })\n        }\n      }\n      return mergedMarks\n    })\n\n    function getHandleStyle(value: number, index: number): Record<string, any> {\n      const percentage = valueToPercentage(value)\n      const { value: styleDirection } = styleDirectionRef\n      return {\n        [styleDirection]: `${percentage}%`,\n        zIndex: index === activeIndexRef.value ? 1 : 0\n      }\n    }\n    function isShowTooltip(index: number): boolean {\n      return (\n        props.showTooltip\n        || hoverIndexRef.value === index\n        || (activeIndexRef.value === index && draggingRef.value)\n      )\n    }\n    function shouldKeepTooltipTransition(index: number): boolean {\n      if (!draggingRef.value)\n        return true\n      return !(\n        activeIndexRef.value === index && previousIndexRef.value === index\n      )\n    }\n    function focusActiveHandle(index: number): void {\n      if (~index) {\n        activeIndexRef.value = index\n        handleRefs.get(index)?.focus()\n      }\n    }\n    function syncPosition(): void {\n      followerRefs.forEach((inst, index) => {\n        if (isShowTooltip(index))\n          inst.syncPosition()\n      })\n    }\n    function doUpdateValue(value: number | number[]): void {\n      const { 'onUpdate:value': _onUpdateValue, onUpdateValue } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function dispatchValueUpdate(value: number | number[]): void {\n      const { range } = props\n      if (range) {\n        if (Array.isArray(value)) {\n          const { value: oldValues } = arrifiedValueRef\n          if (value.join() !== oldValues.join()) {\n            doUpdateValue(value)\n          }\n        }\n      }\n      else if (!Array.isArray(value)) {\n        const oldValue = arrifiedValueRef.value[0]\n        if (oldValue !== value) {\n          doUpdateValue(value)\n        }\n      }\n    }\n    function doDispatchValue(value: number, index: number): void {\n      if (props.range) {\n        const values = arrifiedValueRef.value.slice()\n        values.splice(index, 1, value)\n        dispatchValueUpdate(values)\n      }\n      else {\n        dispatchValueUpdate(value)\n      }\n    }\n\n    // value conversion\n    function sanitizeValue(\n      value: number,\n      currentValue: number,\n      stepBuffer?: number\n    ): number {\n      const stepping = stepBuffer !== undefined\n      if (!stepBuffer) {\n        stepBuffer = value - currentValue > 0 ? 1 : -1\n      }\n      const markValues = markValuesRef.value || []\n      const { step } = props\n      if (step === 'mark') {\n        const closestMark = getClosestMark(\n          value,\n          markValues.concat(currentValue),\n          stepping ? stepBuffer : undefined\n        )\n        return closestMark ? closestMark.value : currentValue\n      }\n      if (step <= 0)\n        return currentValue\n      const { value: precision } = precisionRef\n      let closestMark\n      // if it is a stepping, priority will be given to the marks\n      // on the rail, otherwise take the nearest one\n      if (stepping) {\n        const currentStep = Number((currentValue / step).toFixed(precision))\n        const actualStep = Math.floor(currentStep)\n        const leftStep = currentStep > actualStep ? actualStep : actualStep - 1\n        const rightStep = currentStep < actualStep ? actualStep : actualStep + 1\n        closestMark = getClosestMark(\n          currentValue,\n          [\n            Number((leftStep * step).toFixed(precision)),\n            Number((rightStep * step).toFixed(precision)),\n            ...markValues\n          ],\n          stepBuffer\n        )\n      }\n      else {\n        const roundValue = getRoundValue(value)\n        closestMark = getClosestMark(value, [...markValues, roundValue])\n      }\n      return closestMark ? clampValue(closestMark.value) : currentValue\n    }\n    function clampValue(value: number): number {\n      return Math.min(props.max, Math.max(props.min, value))\n    }\n    function valueToPercentage(value: number): number {\n      const { max, min } = props\n      return ((value - min) / (max - min)) * 100\n    }\n    function percentageToValue(percentage: number): number {\n      const { max, min } = props\n      return min + (max - min) * percentage\n    }\n    function getRoundValue(value: number): number {\n      const { step, min } = props\n      if (Number(step) <= 0 || step === 'mark')\n        return value\n      const newValue = Math.round((value - min) / step) * step + min\n      return Number(newValue.toFixed(precisionRef.value))\n    }\n    function getClosestMark(\n      currentValue: number,\n      markValues = markValuesRef.value,\n      buffer?: number\n    ): ClosestMark | null {\n      if (!markValues?.length)\n        return null\n      let closestMark: ClosestMark | null = null\n      let index = -1\n      while (++index < markValues.length) {\n        const diff = markValues[index] - currentValue\n        const distance = Math.abs(diff)\n        if (\n          // find marks in the same direction\n          (buffer === undefined || diff * buffer > 0)\n          && (closestMark === null || distance < closestMark.distance)\n        ) {\n          closestMark = {\n            index,\n            distance,\n            value: markValues[index]\n          }\n        }\n      }\n      return closestMark\n    }\n    function getPointValue(event: MouseEvent | TouchEvent): number | undefined {\n      const railEl = handleRailRef.value\n      if (!railEl)\n        return\n      const touchEvent = isTouchEvent(event) ? event.touches[0] : event\n      const railRect = railEl.getBoundingClientRect()\n      let percentage: number\n      if (props.vertical) {\n        percentage = (railRect.bottom - touchEvent.clientY) / railRect.height\n      }\n      else {\n        percentage = (touchEvent.clientX - railRect.left) / railRect.width\n      }\n      if (props.reverse) {\n        percentage = 1 - percentage\n      }\n      return percentageToValue(percentage)\n    }\n\n    // dom event handle\n    function handleRailKeyDown(e: KeyboardEvent): void {\n      if (mergedDisabledRef.value || !props.keyboard)\n        return\n      const { vertical, reverse } = props\n      switch (e.key) {\n        case 'ArrowUp':\n          e.preventDefault()\n          handleStepValue(vertical && reverse ? -1 : 1)\n          break\n        case 'ArrowRight':\n          e.preventDefault()\n          handleStepValue(!vertical && reverse ? -1 : 1)\n          break\n        case 'ArrowDown':\n          e.preventDefault()\n          handleStepValue(vertical && reverse ? 1 : -1)\n          break\n        case 'ArrowLeft':\n          e.preventDefault()\n          handleStepValue(!vertical && reverse ? 1 : -1)\n          break\n      }\n    }\n    function handleStepValue(ratio: number): void {\n      const activeIndex = activeIndexRef.value\n      if (activeIndex === -1)\n        return\n      const { step } = props\n      const currentValue = arrifiedValueRef.value[activeIndex]\n      const nextValue\n        = Number(step) <= 0 || step === 'mark'\n          ? currentValue\n          : currentValue + step * ratio\n      doDispatchValue(\n        // Avoid the number of value does not change when `step` is null\n        sanitizeValue(nextValue, currentValue, ratio > 0 ? 1 : -1),\n        activeIndex\n      )\n    }\n    function handleRailMouseDown(event: MouseEvent | TouchEvent): void {\n      if (mergedDisabledRef.value)\n        return\n      if (!isTouchEvent(event) && event.button !== eventButtonLeft) {\n        return\n      }\n      const pointValue = getPointValue(event)\n      if (pointValue === undefined)\n        return\n      const values = arrifiedValueRef.value.slice()\n      const activeIndex = props.range\n        ? (getClosestMark(pointValue, values)?.index ?? -1)\n        : 0\n      if (activeIndex !== -1) {\n        // avoid triggering scrolling on touch\n        event.preventDefault()\n        focusActiveHandle(activeIndex)\n        startDragging()\n        doDispatchValue(\n          sanitizeValue(pointValue, arrifiedValueRef.value[activeIndex]),\n          activeIndex\n        )\n      }\n    }\n    function startDragging(): void {\n      if (!draggingRef.value) {\n        draggingRef.value = true\n        if (props.onDragstart)\n          call(props.onDragstart)\n        on('touchend', document, handleMouseUp)\n        on('mouseup', document, handleMouseUp)\n        on('touchmove', document, handleMouseMove)\n        on('mousemove', document, handleMouseMove)\n      }\n    }\n    function stopDragging(): void {\n      if (draggingRef.value) {\n        draggingRef.value = false\n        if (props.onDragend)\n          call(props.onDragend)\n        off('touchend', document, handleMouseUp)\n        off('mouseup', document, handleMouseUp)\n        off('touchmove', document, handleMouseMove)\n        off('mousemove', document, handleMouseMove)\n      }\n    }\n    function handleMouseMove(event: MouseEvent | TouchEvent): void {\n      const { value: activeIndex } = activeIndexRef\n      if (!draggingRef.value || activeIndex === -1) {\n        stopDragging()\n        return\n      }\n      const pointValue = getPointValue(event)\n      if (pointValue === undefined)\n        return\n      doDispatchValue(\n        sanitizeValue(pointValue, arrifiedValueRef.value[activeIndex]),\n        activeIndex\n      )\n    }\n    function handleMouseUp(): void {\n      stopDragging()\n    }\n    function handleHandleFocus(index: number): void {\n      activeIndexRef.value = index\n      // Wake focus style\n      if (!mergedDisabledRef.value) {\n        hoverIndexRef.value = index\n      }\n    }\n    function handleHandleBlur(index: number): void {\n      if (activeIndexRef.value === index) {\n        activeIndexRef.value = -1\n        stopDragging()\n      }\n      if (hoverIndexRef.value === index) {\n        hoverIndexRef.value = -1\n      }\n    }\n    function handleHandleMouseEnter(index: number): void {\n      hoverIndexRef.value = index\n    }\n    function handleHandleMouseLeave(index: number): void {\n      if (hoverIndexRef.value === index) {\n        hoverIndexRef.value = -1\n      }\n    }\n    watch(\n      activeIndexRef,\n      (_, previous) => void nextTick(() => (previousIndexRef.value = previous))\n    )\n    watch(mergedValueRef, () => {\n      if (props.marks) {\n        if (dotTransitionDisabledRef.value)\n          return\n        dotTransitionDisabledRef.value = true\n        void nextTick(() => {\n          dotTransitionDisabledRef.value = false\n        })\n      }\n      void nextTick(syncPosition)\n    })\n    onBeforeUnmount(() => {\n      stopDragging()\n    })\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          markFontSize,\n          railColor,\n          railColorHover,\n          fillColor,\n          fillColorHover,\n          handleColor,\n          opacityDisabled,\n          dotColor,\n          dotColorModal,\n          handleBoxShadow,\n          handleBoxShadowHover,\n          handleBoxShadowActive,\n          handleBoxShadowFocus,\n          dotBorder,\n          dotBoxShadow,\n          railHeight,\n          railWidthVertical,\n          handleSize,\n          dotHeight,\n          dotWidth,\n          dotBorderRadius,\n          fontSize,\n          dotBorderActive,\n          dotColorPopover\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-dot-border': dotBorder,\n        '--n-dot-border-active': dotBorderActive,\n        '--n-dot-border-radius': dotBorderRadius,\n        '--n-dot-box-shadow': dotBoxShadow,\n        '--n-dot-color': dotColor,\n        '--n-dot-color-modal': dotColorModal,\n        '--n-dot-color-popover': dotColorPopover,\n        '--n-dot-height': dotHeight,\n        '--n-dot-width': dotWidth,\n        '--n-fill-color': fillColor,\n        '--n-fill-color-hover': fillColorHover,\n        '--n-font-size': fontSize,\n        '--n-handle-box-shadow': handleBoxShadow,\n        '--n-handle-box-shadow-active': handleBoxShadowActive,\n        '--n-handle-box-shadow-focus': handleBoxShadowFocus,\n        '--n-handle-box-shadow-hover': handleBoxShadowHover,\n        '--n-handle-color': handleColor,\n        '--n-handle-size': handleSize,\n        '--n-opacity-disabled': opacityDisabled,\n        '--n-rail-color': railColor,\n        '--n-rail-color-hover': railColorHover,\n        '--n-rail-height': railHeight,\n        '--n-rail-width-vertical': railWidthVertical,\n        '--n-mark-font-size': markFontSize\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('slider', undefined, cssVarsRef, props)\n      : undefined\n    const indicatorCssVarsRef = computed(() => {\n      const {\n        self: {\n          fontSize,\n          indicatorColor,\n          indicatorBoxShadow,\n          indicatorTextColor,\n          indicatorBorderRadius\n        }\n      } = themeRef.value\n      return {\n        '--n-font-size': fontSize,\n        '--n-indicator-border-radius': indicatorBorderRadius,\n        '--n-indicator-box-shadow': indicatorBoxShadow,\n        '--n-indicator-color': indicatorColor,\n        '--n-indicator-text-color': indicatorTextColor\n      }\n    })\n    const indicatorThemeClassHandle = inlineThemeDisabled\n      ? useThemeClass('slider-indicator', undefined, indicatorCssVarsRef, props)\n      : undefined\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      namespace: namespaceRef,\n      uncontrolledValue: uncontrolledValueRef,\n      mergedValue: mergedValueRef,\n      mergedDisabled: mergedDisabledRef,\n      mergedPlacement: mergedPlacementRef,\n      isMounted: useIsMounted(),\n      adjustedTo: useAdjustedTo(props),\n      dotTransitionDisabled: dotTransitionDisabledRef,\n      markInfos: markInfosRef,\n      isShowTooltip,\n      shouldKeepTooltipTransition,\n      handleRailRef,\n      setHandleRefs,\n      setFollowerRefs,\n      fillStyle: fillStyleRef,\n      getHandleStyle,\n      activeIndex: activeIndexRef,\n      arrifiedValues: arrifiedValueRef,\n      followerEnabledIndexSet: followerEnabledIndexSetRef,\n      handleRailMouseDown,\n      handleHandleFocus,\n      handleHandleBlur,\n      handleHandleMouseEnter,\n      handleHandleMouseLeave,\n      handleRailKeyDown,\n      indicatorCssVars: inlineThemeDisabled\n        ? undefined\n        : (indicatorCssVarsRef as Ref<CSSProperties>),\n      indicatorThemeClass: indicatorThemeClassHandle?.themeClass,\n      indicatorOnRender: indicatorThemeClassHandle?.onRender,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, themeClass, formatTooltip } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-slider`,\n          themeClass,\n          {\n            [`${mergedClsPrefix}-slider--disabled`]: this.mergedDisabled,\n            [`${mergedClsPrefix}-slider--active`]: this.activeIndex !== -1,\n            [`${mergedClsPrefix}-slider--with-mark`]: this.marks,\n            [`${mergedClsPrefix}-slider--vertical`]: this.vertical,\n            [`${mergedClsPrefix}-slider--reverse`]: this.reverse\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n        onKeydown={this.handleRailKeyDown}\n        onMousedown={this.handleRailMouseDown}\n        onTouchstart={this.handleRailMouseDown}\n      >\n        <div class={`${mergedClsPrefix}-slider-rail`}>\n          <div\n            class={`${mergedClsPrefix}-slider-rail__fill`}\n            style={this.fillStyle}\n          />\n          {this.marks ? (\n            <div\n              class={[\n                `${mergedClsPrefix}-slider-dots`,\n                this.dotTransitionDisabled\n                && `${mergedClsPrefix}-slider-dots--transition-disabled`\n              ]}\n            >\n              {this.markInfos.map(mark => (\n                <div\n                  key={mark.key}\n                  class={[\n                    `${mergedClsPrefix}-slider-dot`,\n                    {\n                      [`${mergedClsPrefix}-slider-dot--active`]: mark.active\n                    }\n                  ]}\n                  style={mark.style}\n                />\n              ))}\n            </div>\n          ) : null}\n          <div ref=\"handleRailRef\" class={`${mergedClsPrefix}-slider-handles`}>\n            {this.arrifiedValues.map((value, index) => {\n              const showTooltip = this.isShowTooltip(index)\n              return (\n                <VBinder>\n                  {{\n                    default: () => [\n                      <VTarget>\n                        {{\n                          default: () => (\n                            <div\n                              ref={this.setHandleRefs(index)}\n                              class={`${mergedClsPrefix}-slider-handle-wrapper`}\n                              tabindex={this.mergedDisabled ? -1 : 0}\n                              role=\"slider\"\n                              aria-valuenow={value}\n                              aria-valuemin={this.min}\n                              aria-valuemax={this.max}\n                              aria-orientation={\n                                this.vertical ? 'vertical' : 'horizontal'\n                              }\n                              aria-disabled={this.disabled}\n                              style={this.getHandleStyle(value, index)}\n                              onFocus={() => {\n                                this.handleHandleFocus(index)\n                              }}\n                              onBlur={() => {\n                                this.handleHandleBlur(index)\n                              }}\n                              onMouseenter={() => {\n                                this.handleHandleMouseEnter(index)\n                              }}\n                              onMouseleave={() => {\n                                this.handleHandleMouseLeave(index)\n                              }}\n                            >\n                              {resolveSlot(this.$slots.thumb, () => [\n                                <div\n                                  class={`${mergedClsPrefix}-slider-handle`}\n                                />\n                              ])}\n                            </div>\n                          )\n                        }}\n                      </VTarget>,\n                      this.tooltip && (\n                        <VFollower\n                          ref={this.setFollowerRefs(index)}\n                          show={showTooltip}\n                          to={this.adjustedTo}\n                          enabled={\n                            (this.showTooltip && !this.range)\n                            || this.followerEnabledIndexSet.has(index)\n                          }\n                          teleportDisabled={\n                            this.adjustedTo === useAdjustedTo.tdkey\n                          }\n                          placement={this.mergedPlacement}\n                          containerClass={this.namespace}\n                        >\n                          {{\n                            default: () => (\n                              <Transition\n                                name=\"fade-in-scale-up-transition\"\n                                appear={this.isMounted}\n                                css={this.shouldKeepTooltipTransition(index)}\n                                onEnter={() => {\n                                  this.followerEnabledIndexSet.add(index)\n                                }}\n                                onAfterLeave={() => {\n                                  this.followerEnabledIndexSet.delete(index)\n                                }}\n                              >\n                                {{\n                                  default: () => {\n                                    if (showTooltip) {\n                                      this.indicatorOnRender?.()\n                                      return (\n                                        <div\n                                          class={[\n                                            `${mergedClsPrefix}-slider-handle-indicator`,\n                                            this.indicatorThemeClass,\n                                            `${mergedClsPrefix}-slider-handle-indicator--${this.mergedPlacement}`\n                                          ]}\n                                          style={\n                                            this\n                                              .indicatorCssVars as CSSProperties\n                                          }\n                                        >\n                                          {typeof formatTooltip === 'function'\n                                            ? formatTooltip(value)\n                                            : value}\n                                        </div>\n                                      )\n                                    }\n                                    return null\n                                  }\n                                }}\n                              </Transition>\n                            )\n                          }}\n                        </VFollower>\n                      )\n                    ]\n                  }}\n                </VBinder>\n              )\n            })}\n          </div>\n          {this.marks ? (\n            <div class={`${mergedClsPrefix}-slider-marks`}>\n              {this.markInfos.map(mark => (\n                <div\n                  key={mark.key}\n                  class={`${mergedClsPrefix}-slider-mark`}\n                  style={mark.style}\n                >\n                  {typeof mark.label === 'function' ? mark.label() : mark.label}\n                </div>\n              ))}\n            </div>\n          ) : null}\n        </div>\n      </div>\n    )\n  }\n})\n","import { fadeInTransition } from '../../../_styles/transitions/fade-in.cssr'\nimport { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-opacity-spinning\n// --n-size\n// --n-color\n// --n-text-color\n// --n-font-size\nexport default c([\n  c('@keyframes spin-rotate', `\n    from {\n      transform: rotate(0);\n    }\n    to {\n      transform: rotate(360deg);\n    }\n  `),\n  cB('spin-container', `\n    position: relative;\n  `, [\n    cB('spin-body', `\n      position: absolute;\n      top: 50%;\n      left: 50%;\n      transform: translateX(-50%) translateY(-50%);\n    `, [\n      fadeInTransition()\n    ])\n  ]),\n  cB('spin-body', `\n    display: inline-flex;\n    align-items: center;\n    justify-content: center;\n    flex-direction: column;\n  `),\n  cB('spin', `\n    display: inline-flex;\n    height: var(--n-size);\n    width: var(--n-size);\n    font-size: var(--n-size);\n    color: var(--n-color);\n  `, [\n    cM('rotate', `\n      animation: spin-rotate 2s linear infinite;\n    `)\n  ]),\n  cB('spin-description', `\n    display: inline-block;\n    font-size: var(--n-font-size);\n    color: var(--n-text-color);\n    transition: color .3s var(--n-bezier);\n    margin-top: 8px;\n  `),\n  cB('spin-content', `\n    opacity: 1;\n    transition: opacity .3s var(--n-bezier);\n    pointer-events: all;\n  `, [\n    cM('spinning', `\n      user-select: none;\n      -webkit-user-select: none;\n      pointer-events: none;\n      opacity: var(--n-opacity-spinning);\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { SpinTheme, SpinThemeOverrides } from '../styles'\nimport { pxfy } from 'seemly'\nimport { useCompitable } from 'vooks'\nimport { computed, defineComponent, h, ref, Transition, watchEffect } from 'vue'\nimport { NBaseLoading } from '../../_internal'\nimport { exposedLoadingProps } from '../../_internal/loading/src/Loading'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey, warnOnce } from '../../_utils'\nimport { spinLight } from '../styles'\nimport style from './styles/index.cssr'\n\nconst STROKE_WIDTH = {\n  small: 20,\n  medium: 18,\n  large: 16\n}\n\nexport const spinProps = {\n  ...(useTheme.props as ThemeProps<SpinTheme, SpinThemeOverrides>),\n  contentClass: String,\n  contentStyle: [Object, String] as PropType<CSSProperties | string>,\n  description: String,\n  size: {\n    type: [String, Number] as PropType<'small' | 'medium' | 'large' | number>,\n    default: 'medium'\n  },\n  show: {\n    type: Boolean,\n    default: true\n  },\n  rotate: {\n    type: Boolean,\n    default: true\n  },\n  spinning: {\n    type: Boolean,\n    validator: () => {\n      return true\n    },\n    default: undefined\n  },\n  delay: Number,\n  ...exposedLoadingProps,\n  strokeWidth: Number\n}\n\nexport type SpinProps = ExtractPublicPropTypes<typeof spinProps>\n\nexport interface SpinSlots {\n  default?: () => VNode[]\n  description?: () => VNode[]\n  icon?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Spin',\n  props: spinProps,\n  slots: Object as SlotsType<SpinSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.spinning !== undefined) {\n          warnOnce(\n            'spin',\n            '`spinning` is deprecated, please use `show` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Spin',\n      '-spin',\n      style,\n      spinLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { size: spinSize } = props\n      const {\n        common: { cubicBezierEaseInOut },\n        self\n      } = themeRef.value\n      const { opacitySpinning, color, textColor } = self\n      const size\n        = typeof spinSize === 'number'\n          ? pxfy(spinSize)\n          : self[createKey('size', spinSize)]\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-opacity-spinning': opacitySpinning,\n        '--n-size': size,\n        '--n-color': color,\n        '--n-text-color': textColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'spin',\n          computed(() => {\n            const { size } = props\n            return typeof size === 'number' ? String(size) : size[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    const compitableShow = useCompitable(props, ['spinning', 'show'])\n    const activeRef = ref(false)\n\n    watchEffect((onCleanup) => {\n      let timerId: number\n      if (compitableShow.value) {\n        const { delay } = props\n        if (delay) {\n          timerId = window.setTimeout(() => {\n            activeRef.value = true\n          }, delay)\n          onCleanup(() => {\n            clearTimeout(timerId)\n          })\n          return\n        }\n      }\n      activeRef.value = compitableShow.value\n    })\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      active: activeRef,\n      mergedStrokeWidth: computed(() => {\n        const { strokeWidth } = props\n        if (strokeWidth !== undefined)\n          return strokeWidth\n        const { size } = props\n        return STROKE_WIDTH[typeof size === 'number' ? 'medium' : size]\n      }),\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { $slots, mergedClsPrefix, description } = this\n    const rotate = $slots.icon && this.rotate\n    const descriptionNode = (description || $slots.description) && (\n      <div class={`${mergedClsPrefix}-spin-description`}>\n        {description || $slots.description?.()}\n      </div>\n    )\n    const icon = $slots.icon ? (\n      <div class={[`${mergedClsPrefix}-spin-body`, this.themeClass]}>\n        <div\n          class={[\n            `${mergedClsPrefix}-spin`,\n            rotate && `${mergedClsPrefix}-spin--rotate`\n          ]}\n          style={$slots.default ? '' : (this.cssVars as CSSProperties)}\n        >\n          {$slots.icon()}\n        </div>\n        {descriptionNode}\n      </div>\n    ) : (\n      <div class={[`${mergedClsPrefix}-spin-body`, this.themeClass]}>\n        <NBaseLoading\n          clsPrefix={mergedClsPrefix}\n          style={$slots.default ? '' : (this.cssVars as CSSProperties)}\n          stroke={this.stroke}\n          stroke-width={this.mergedStrokeWidth}\n          radius={this.radius}\n          scale={this.scale}\n          class={`${mergedClsPrefix}-spin`}\n        />\n        {descriptionNode}\n      </div>\n    )\n    this.onRender?.()\n    return $slots.default ? (\n      <div\n        class={[`${mergedClsPrefix}-spin-container`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div\n          class={[\n            `${mergedClsPrefix}-spin-content`,\n            this.active && `${mergedClsPrefix}-spin-content--spinning`,\n            this.contentClass\n          ]}\n          style={this.contentStyle}\n        >\n          {$slots.default?.()}\n        </div>\n        <Transition name=\"fade-in-transition\">\n          {{\n            default: () => (this.active ? icon : null)\n          }}\n        </Transition>\n      </div>\n    ) : (\n      icon\n    )\n  }\n})\n","import type { SplitTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst splitDark: SplitTheme = {\n  name: 'Split',\n  common: commonDark\n}\n\nexport default splitDark\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport type { ThemeCommonVars } from '../../_styles/common'\nimport { commonLight } from '../../_styles/common'\n\nexport function self(vars: ThemeCommonVars) {\n  const { primaryColorHover, borderColor } = vars\n  return {\n    resizableTriggerColorHover: primaryColorHover,\n    resizableTriggerColor: borderColor\n  }\n}\n\nexport interface SplitThemeVars extends ReturnType<typeof self> {}\n\nconst themeLight: SplitTheme = {\n  name: 'Split',\n  common: commonLight,\n  self\n}\n\nexport interface SplitTheme extends Theme<'Split', SplitThemeVars> {}\n\nexport interface SplitThemeOverrides extends ExtractThemeOverrides<SplitTheme> {}\n\nexport default themeLight\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-resize-trigger-color\n// --n-resize-trigger-color-hover\n// --n-bezier\nexport default cB('split', `\n  display: flex;\n  width: 100%;\n  height: 100%;\n`, [\n  cM('horizontal', `\n    flex-direction: row;\n  `),\n  cM('vertical', `\n    flex-direction: column;\n  `),\n  cB('split-pane-1', `\n    overflow: hidden;\n  `),\n  cB('split-pane-2', `\n    overflow: hidden;\n    flex: 1;\n  `),\n  cE('resize-trigger', `\n    background-color: var(--n-resize-trigger-color);\n    transition: background-color .3s var(--n-bezier);\n  `, [\n    cM('hover', `\n      background-color: var(--n-resize-trigger-color-hover);\n    `),\n    c('&:hover', `\n      background-color: var(--n-resize-trigger-color-hover);\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { SplitTheme, SplitThemeOverrides } from '../styles'\nimport type { SplitOnUpdateSize } from './types'\nimport { off, on } from 'evtd'\nimport { depx } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, ref, toRef, watchEffect } from 'vue'\nimport { useTheme, useThemeClass } from '../../_mixins'\nimport useConfig from '../../_mixins/use-config'\nimport { call, resolveSlot } from '../../_utils'\nimport { splitLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const splitProps = {\n  ...(useTheme.props as ThemeProps<SplitTheme, SplitThemeOverrides>),\n  direction: {\n    type: String as PropType<'horizontal' | 'vertical'>,\n    default: 'horizontal'\n  },\n  resizeTriggerSize: {\n    type: Number,\n    default: 3\n  },\n  disabled: Boolean,\n  defaultSize: {\n    type: [String, Number] as PropType<string | number>,\n    default: 0.5\n  },\n  'onUpdate:size': [Function, Array] as PropType<\n    SplitOnUpdateSize | SplitOnUpdateSize[]\n  >,\n  onUpdateSize: [Function, Array] as PropType<\n    SplitOnUpdateSize | SplitOnUpdateSize[]\n  >,\n  size: [String, Number] as PropType<string | number>,\n  min: {\n    type: [String, Number] as PropType<string | number>,\n    default: 0\n  },\n  max: {\n    type: [String, Number] as PropType<string | number>,\n    default: 1\n  },\n  pane1Class: String,\n  pane1Style: [Object, String] as PropType<CSSProperties | string>,\n  pane2Class: String,\n  pane2Style: [Object, String] as PropType<CSSProperties | string>,\n  onDragStart: Function as PropType<(e: Event) => void>,\n  onDragMove: Function as PropType<(e: Event) => void>,\n  onDragEnd: Function as PropType<(e: Event) => void>,\n  watchProps: Array as PropType<Array<'defaultSize'>>\n} as const\n\nexport type SplitProps = ExtractPublicPropTypes<typeof splitProps>\n\nexport interface SplitSlots {\n  default?: () => VNode[]\n  1?: () => VNode[]\n  2?: () => VNode[]\n  'resize-trigger'?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Split',\n  props: splitProps,\n  slots: Object as SlotsType<SplitSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Split',\n      '-split',\n      style,\n      splitLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { resizableTriggerColor, resizableTriggerColorHover }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-resize-trigger-color': resizableTriggerColor,\n        '--n-resize-trigger-color-hover': resizableTriggerColorHover\n      }\n    })\n    const resizeTriggerElRef = ref<HTMLElement | null>(null)\n    const isDraggingRef = ref(false)\n    const controlledSizeRef = toRef(props, 'size')\n    const uncontrolledSizeRef = ref(props.defaultSize)\n    if (props.watchProps?.includes('defaultSize')) {\n      watchEffect(() => (uncontrolledSizeRef.value = props.defaultSize))\n    }\n    // use to update controlled or uncontrolled values\n    const doUpdateSize = (size: number | string): void => {\n      const _onUpdateSize = props['onUpdate:size']\n      if (props.onUpdateSize)\n        call(props.onUpdateSize, size as string & number)\n      if (_onUpdateSize)\n        call(_onUpdateSize, size as string & number)\n      uncontrolledSizeRef.value = size\n    }\n    const mergedSizeRef = useMergedState(controlledSizeRef, uncontrolledSizeRef)\n\n    const firstPaneStyle = computed(() => {\n      const sizeValue = mergedSizeRef.value\n      if (typeof sizeValue === 'string') {\n        return {\n          flex: `0 0 ${sizeValue}`\n        }\n      }\n      else if (typeof sizeValue === 'number') {\n        const size = sizeValue * 100\n        return {\n          flex: `0 0 calc(${size}% - ${\n            (props.resizeTriggerSize * size) / 100\n          }px)`\n        }\n      }\n    })\n\n    const resizeTriggerStyle = computed(() => {\n      return props.direction === 'horizontal'\n        ? {\n            width: `${props.resizeTriggerSize}px`,\n            height: '100%'\n          }\n        : {\n            width: '100%',\n            height: `${props.resizeTriggerSize}px`\n          }\n    })\n\n    const resizeTriggerWrapperStyle = computed(() => {\n      const horizontal = props.direction === 'horizontal'\n      return {\n        width: horizontal ? `${props.resizeTriggerSize}px` : '',\n        height: horizontal ? '' : `${props.resizeTriggerSize}px`,\n        cursor: props.direction === 'horizontal' ? 'col-resize' : 'row-resize'\n      }\n    })\n\n    let offset = 0\n    const handleMouseDown = (e: MouseEvent): void => {\n      e.preventDefault()\n      isDraggingRef.value = true\n      if (props.onDragStart)\n        props.onDragStart(e)\n      const mouseMoveEvent = 'mousemove'\n      const mouseUpEvent = 'mouseup'\n      const onMouseMove = (e: MouseEvent): void => {\n        updateSize(e)\n        if (props.onDragMove)\n          props.onDragMove(e)\n      }\n      const onMouseUp = (): void => {\n        off(mouseMoveEvent, document, onMouseMove)\n        off(mouseUpEvent, document, onMouseUp)\n        isDraggingRef.value = false\n        if (props.onDragEnd)\n          props.onDragEnd(e)\n        document.body.style.cursor = ''\n      }\n      document.body.style.cursor = resizeTriggerWrapperStyle.value.cursor\n      on(mouseMoveEvent, document, onMouseMove)\n      on(mouseUpEvent, document, onMouseUp)\n\n      const resizeTriggerEl = resizeTriggerElRef.value\n      if (resizeTriggerEl) {\n        const elRect = resizeTriggerEl.getBoundingClientRect()\n        if (props.direction === 'horizontal') {\n          offset = e.clientX - elRect.left\n        }\n        else {\n          offset = elRect.top - e.clientY\n        }\n      }\n      updateSize(e)\n    }\n\n    function updateSize(event: MouseEvent): void {\n      const containerRect\n        = resizeTriggerElRef.value?.parentElement?.getBoundingClientRect()\n      if (!containerRect)\n        return\n\n      const { direction } = props\n\n      const containerUsableWidth = containerRect.width - props.resizeTriggerSize\n      const containerUsableHeight\n        = containerRect.height - props.resizeTriggerSize\n      const containerUsableSize\n        = direction === 'horizontal'\n          ? containerUsableWidth\n          : containerUsableHeight\n\n      const newPxSize\n        = direction === 'horizontal'\n          ? event.clientX - containerRect.left - offset\n          : event.clientY - containerRect.top + offset\n\n      const { min, max } = props\n\n      const pxMin\n        = typeof min === 'string' ? depx(min) : min * containerUsableSize\n      const pxMax\n        = typeof max === 'string' ? depx(max) : max * containerUsableSize\n\n      let nextPxSize = newPxSize\n      nextPxSize = Math.max(nextPxSize, pxMin)\n      nextPxSize = Math.min(nextPxSize, pxMax, containerUsableSize)\n      // in pixel mode\n      if (typeof mergedSizeRef.value === 'string') {\n        doUpdateSize(`${nextPxSize}px`)\n      }\n      else {\n        // in percentage mode\n        doUpdateSize(nextPxSize / containerUsableSize)\n      }\n    }\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('split', undefined, cssVarsRef, props)\n      : undefined\n\n    return {\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      resizeTriggerElRef,\n      isDragging: isDraggingRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      resizeTriggerWrapperStyle,\n      resizeTriggerStyle,\n      handleMouseDown,\n      firstPaneStyle\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${this.mergedClsPrefix}-split`,\n          `${this.mergedClsPrefix}-split--${this.direction}`,\n          this.themeClass\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div\n          class={[`${this.mergedClsPrefix}-split-pane-1`, this.pane1Class]}\n          style={[this.firstPaneStyle, this.pane1Style]}\n        >\n          {this.$slots[1]?.()}\n        </div>\n        {!this.disabled && (\n          <div\n            ref=\"resizeTriggerElRef\"\n            class={`${this.mergedClsPrefix}-split__resize-trigger-wrapper`}\n            style={this.resizeTriggerWrapperStyle}\n            onMousedown={this.handleMouseDown}\n          >\n            {resolveSlot(this.$slots['resize-trigger'], () => [\n              <div\n                style={this.resizeTriggerStyle}\n                class={[\n                  `${this.mergedClsPrefix}-split__resize-trigger`,\n                  this.isDragging\n                  && `${this.mergedClsPrefix}-split__resize-trigger--hover`\n                ]}\n              >\n              </div>\n            ])}\n          </div>\n        )}\n        <div\n          class={[`${this.mergedClsPrefix}-split-pane-2`, this.pane2Class]}\n          style={this.pane2Style}\n        >\n          {this.$slots[2]?.()}\n        </div>\n      </div>\n    )\n  }\n})\n","import { cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-label-font-size\n// --n-label-font-weight\n// --n-label-text-color\n// --n-value-font-weight\n// --n-value-font-size\n// --n-value-prefix-text-color\n// --n-value-suffix-text-color\n// --n-value-text-color\nexport default cB('statistic', [\n  cE('label', `\n    font-weight: var(--n-label-font-weight);\n    transition: .3s color var(--n-bezier);\n    font-size: var(--n-label-font-size);\n    color: var(--n-label-text-color);\n  `),\n  cB('statistic-value', `\n    margin-top: 4px;\n    font-weight: var(--n-value-font-weight);\n  `, [\n    cE('prefix', `\n      margin: 0 4px 0 0;\n      font-size: var(--n-value-font-size);\n      transition: .3s color var(--n-bezier);\n      color: var(--n-value-prefix-text-color);\n    `, [\n      cB('icon', {\n        verticalAlign: '-0.125em'\n      })\n    ]),\n    cE('content', `\n      font-size: var(--n-value-font-size);\n      transition: .3s color var(--n-bezier);\n      color: var(--n-value-text-color);\n    `),\n    cE('suffix', `\n      margin: 0 0 0 4px;\n      font-size: var(--n-value-font-size);\n      transition: .3s color var(--n-bezier);\n      color: var(--n-value-suffix-text-color);\n    `, [\n      cB('icon', {\n        verticalAlign: '-0.125em'\n      })\n    ])\n  ])\n])\n","import type { CSSProperties, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { StatisticTheme, StatisticThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport { resolveWrappedSlot } from '../../_utils'\nimport { statisticLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const statisticProps = {\n  ...(useTheme.props as ThemeProps<StatisticTheme, StatisticThemeOverrides>),\n  tabularNums: Boolean,\n  label: String,\n  value: [String, Number]\n}\n\nexport type StatisticProps = ExtractPublicPropTypes<typeof statisticProps>\n\nexport interface StatisticSlots {\n  default?: () => VNode[]\n  label?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Statistic',\n  props: statisticProps,\n  slots: Object as SlotsType<StatisticSlots>,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Statistic',\n      '-statistic',\n      style,\n      statisticLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Statistic', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const {\n        self: {\n          labelFontWeight,\n          valueFontSize,\n          valueFontWeight,\n          valuePrefixTextColor,\n          labelTextColor,\n          valueSuffixTextColor,\n          valueTextColor,\n          labelFontSize\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-label-font-size': labelFontSize,\n        '--n-label-font-weight': labelFontWeight,\n        '--n-label-text-color': labelTextColor,\n        '--n-value-font-weight': valueFontWeight,\n        '--n-value-font-size': valueFontSize,\n        '--n-value-prefix-text-color': valuePrefixTextColor,\n        '--n-value-suffix-text-color': valueSuffixTextColor,\n        '--n-value-text-color': valueTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('statistic', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      $slots: {\n        default: defaultSlot,\n        label: labelSlot,\n        prefix: prefixSlot,\n        suffix: suffixSlot\n      }\n    } = this\n    this.onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-statistic`,\n          this.themeClass,\n          this.rtlEnabled && `${mergedClsPrefix}-statistic--rtl`\n        ]}\n        style={this.cssVars as any}\n      >\n        {resolveWrappedSlot(labelSlot, children => (\n          <div class={`${mergedClsPrefix}-statistic__label`}>\n            {this.label || children}\n          </div>\n        ))}\n        <div\n          class={`${mergedClsPrefix}-statistic-value`}\n          style={{\n            fontVariantNumeric: this.tabularNums ? 'tabular-nums' : ''\n          }}\n        >\n          {resolveWrappedSlot(\n            prefixSlot,\n            children =>\n              children && (\n                <span class={`${mergedClsPrefix}-statistic-value__prefix`}>\n                  {children}\n                </span>\n              )\n          )}\n          {this.value !== undefined ? (\n            <span class={`${mergedClsPrefix}-statistic-value__content`}>\n              {this.value}\n            </span>\n          ) : (\n            resolveWrappedSlot(\n              defaultSlot,\n              children =>\n                children && (\n                  <span class={`${mergedClsPrefix}-statistic-value__content`}>\n                    {children}\n                  </span>\n                )\n            )\n          )}\n          {resolveWrappedSlot(\n            suffixSlot,\n            children =>\n              children && (\n                <span class={`${mergedClsPrefix}-statistic-value__suffix`}>\n                  {children}\n                </span>\n              )\n          )}\n        </div>\n      </div>\n    )\n  }\n})\n","import { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-description-text-color\n// --n-header-text-color\n// --n-indicator-border-color\n// --n-indicator-color\n// --n-indicator-icon-size\n// --n-indicator-index-font-size\n// --n-indicator-size\n// --n-indicator-text-color\n// --n-splitor-color\n// --n-step-header-font-size\n// --n-step-header-font-weight\nexport default cB('steps', `\n  width: 100%;\n  display: flex;\n`, [\n  cB('step', `\n    position: relative;\n    display: flex;\n    flex: 1;\n  `, [\n    cM('disabled', 'cursor: not-allowed'),\n    cM('clickable', `\n      cursor: pointer;\n    `),\n    c('&:last-child', [\n      cB('step-splitor', 'display: none;')\n    ])\n  ]),\n  cB('step-splitor', `\n    background-color: var(--n-splitor-color);\n    margin-top: calc(var(--n-step-header-font-size) / 2);\n    height: 1px;\n    flex: 1;\n    align-self: flex-start;\n    margin-left: 12px;\n    margin-right: 12px;\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n  `),\n  cB('step-content', 'flex: 1;', [\n    cB('step-content-header', `\n      color: var(--n-header-text-color);\n      margin-top: calc(var(--n-indicator-size) / 2 - var(--n-step-header-font-size) / 2);\n      line-height: var(--n-step-header-font-size);\n      font-size: var(--n-step-header-font-size);\n      position: relative;\n      display: flex;\n      font-weight: var(--n-step-header-font-weight);\n      margin-left: 9px;\n      transition:\n        color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `, [\n      cE('title', `\n        white-space: nowrap;\n        flex: 0;\n      `)\n    ]),\n    cE('description', `\n      color: var(--n-description-text-color);\n      margin-top: 12px;\n      margin-left: 9px;\n      transition:\n        color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `)\n  ]),\n  cB('step-indicator', `\n    background-color: var(--n-indicator-color);\n    box-shadow: 0 0 0 1px var(--n-indicator-border-color);\n    height: var(--n-indicator-size);\n    width: var(--n-indicator-size);\n    border-radius: 50%;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    transition:\n      background-color .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier);\n  `, [\n    cB('step-indicator-slot', `\n      position: relative;\n      width: var(--n-indicator-icon-size);\n      height: var(--n-indicator-icon-size);\n      font-size: var(--n-indicator-icon-size);\n      line-height: var(--n-indicator-icon-size);\n    `, [\n      cE('index', `\n        display: inline-block;\n        text-align: center;\n        position: absolute;\n        left: 0;\n        top: 0;\n        white-space: nowrap;\n        font-size: var(--n-indicator-index-font-size);\n        width: var(--n-indicator-icon-size);\n        height: var(--n-indicator-icon-size);\n        line-height: var(--n-indicator-icon-size);\n        color: var(--n-indicator-text-color);\n        transition: color .3s var(--n-bezier);\n      `, [\n        iconSwitchTransition()\n      ]),\n      cB('icon', `\n        color: var(--n-indicator-text-color);\n        transition: color .3s var(--n-bezier);\n      `, [\n        iconSwitchTransition()\n      ]),\n      cB('base-icon', `\n        color: var(--n-indicator-text-color);\n        transition: color .3s var(--n-bezier);\n      `, [\n        iconSwitchTransition()\n      ])\n    ])\n  ]),\n  cM('vertical', 'flex-direction: column;', [\n    cNotM('show-description', [\n      c('>', [\n        cB('step', 'padding-bottom: 8px;')\n      ])\n    ]),\n    c('>', [\n      cB('step', 'margin-bottom: 16px;', [\n        c('&:last-child', 'margin-bottom: 0;'),\n        c('>', [\n          cB('step-indicator', [\n            c('>', [\n              cB('step-splitor', `\n                position: absolute;\n                bottom: -8px;\n                width: 1px;\n                margin: 0 !important;\n                left: calc(var(--n-indicator-size) / 2);\n                height: calc(100% - var(--n-indicator-size));\n              `)\n            ])\n          ]),\n          cB('step-content', [\n            cE('description', 'margin-top: 8px;')\n          ])\n        ])\n      ])\n    ])\n  ]),\n  cM('content-bottom', [cNotM('vertical', [\n    c('>', [\n      cB('step', 'flex-direction: column', [\n        c('>', [\n          cB('step-line', 'display: flex;', [\n            c('>', [\n              cB('step-splitor', `\n                margin-top: 0;\n                align-self: center;\n              `)\n            ]),\n          ])\n        ]),\n        c('>', [\n          cB('step-content', 'margin-top: calc(var(--n-indicator-size) / 2 - var(--n-step-header-font-size) / 2);', [\n            cB('step-content-header', `\n                margin-left: 0;\n              `),\n            cB('step-content__description', `\n                margin-left: 0;\n            `)\n          ])\n        ])\n      ])\n    ])\n  ])])\n])\n","import type {\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { MergedTheme, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { StepsTheme, StepsThemeOverrides } from '../styles'\nimport { defineComponent, h, provide } from 'vue'\nimport { useConfig, useRtl, useTheme } from '../../_mixins'\nimport { createInjectionKey, flatten, getSlot } from '../../_utils'\nimport { stepsLight } from '../styles'\nimport style from './styles/index.cssr'\n\nfunction stepWithIndex(step: VNodeChild, i: number): VNode | null {\n  if (typeof step !== 'object' || step === null || Array.isArray(step)) {\n    return null\n  }\n  if (!step.props)\n    step.props = {}\n  step.props.internalIndex = i + 1\n  return step\n}\n\nfunction stepsWithIndex(steps: VNodeChild[]): Array<VNode | null> {\n  return steps.map((step, i) => stepWithIndex(step, i))\n}\n\nexport const stepsProps = {\n  ...(useTheme.props as ThemeProps<StepsTheme, StepsThemeOverrides>),\n  current: Number,\n  status: {\n    type: String as PropType<'process' | 'finish' | 'error' | 'wait'>,\n    default: 'process'\n  },\n  size: {\n    type: String as PropType<'small' | 'medium'>,\n    default: 'medium'\n  },\n  vertical: Boolean,\n  contentPlacement: {\n    type: String as PropType<'right' | 'bottom'>,\n    default: 'right'\n  },\n  'onUpdate:current': [Function, Array] as PropType<\n    MaybeArray<(current: number) => void>\n  >,\n  onUpdateCurrent: [Function, Array] as PropType<\n    MaybeArray<(current: number) => void>\n  >\n}\n\nexport interface StepsInjection {\n  props: ExtractPropTypes<typeof stepsProps>\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<StepsTheme>>\n  stepsSlots: StepsSlots\n}\n\nexport type StepsProps = ExtractPublicPropTypes<typeof stepsProps>\n\nexport interface StepsSlots {\n  default?: () => VNode[]\n  'finish-icon'?: () => VNode[]\n  'error-icon'?: () => VNode[]\n}\n\nexport const stepsInjectionKey = createInjectionKey<StepsInjection>('n-steps')\n\nexport default defineComponent({\n  name: 'Steps',\n  props: stepsProps,\n  slots: Object as SlotsType<StepsSlots>,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, mergedRtlRef } = useConfig(props)\n    const rtlEnabledRef = useRtl('Steps', mergedRtlRef, mergedClsPrefixRef)\n    const themeRef = useTheme(\n      'Steps',\n      '-steps',\n      style,\n      stepsLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(stepsInjectionKey, {\n      props,\n      mergedThemeRef: themeRef,\n      mergedClsPrefixRef,\n      stepsSlots: slots\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      rtlEnabled: rtlEnabledRef\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-steps`,\n          this.rtlEnabled && `${mergedClsPrefix}-steps--rtl`,\n          this.vertical && `${mergedClsPrefix}-steps--vertical`,\n          this.contentPlacement === 'bottom'\n          && `${mergedClsPrefix}-steps--content-bottom`\n        ]}\n      >\n        {stepsWithIndex(flatten(getSlot(this)))}\n      </div>\n    )\n  }\n})\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { computed, defineComponent, Fragment, h, inject, toRef } from 'vue'\nimport { NBaseIcon, NIconSwitchTransition } from '../../_internal'\nimport {\n  CloseIcon as ErrorIcon,\n  CheckmarkIcon as FinishedIcon\n} from '../../_internal/icons'\nimport { useConfig, useThemeClass } from '../../_mixins'\nimport {\n  call,\n  createKey,\n  resolveSlot,\n  resolveWrappedSlot,\n  throwError\n} from '../../_utils'\nimport { stepsInjectionKey } from './Steps'\n\nexport const stepProps = {\n  status: String as PropType<'process' | 'finish' | 'error' | 'wait'>,\n  title: String,\n  description: String,\n  disabled: Boolean,\n  // index will be filled by parent steps, not user\n  internalIndex: {\n    type: Number,\n    default: 0\n  }\n} as const\n\nexport type StepProps = ExtractPublicPropTypes<typeof stepProps>\n\nexport interface StepSlots {\n  default?: () => VNode[]\n  icon?: () => VNode[]\n  title?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Step',\n  props: stepProps,\n  slots: Object as SlotsType<StepSlots>,\n  setup(props) {\n    const NSteps = inject(stepsInjectionKey, null)\n\n    if (!NSteps)\n      throwError('step', '`n-step` must be placed inside `n-steps`.')\n\n    const { inlineThemeDisabled } = useConfig()\n\n    const {\n      props: stepsProps,\n      mergedThemeRef,\n      mergedClsPrefixRef,\n      stepsSlots\n    } = NSteps\n\n    const verticalRef = toRef(stepsProps, 'vertical')\n\n    const contentPlacementRef = toRef(stepsProps, 'contentPlacement')\n\n    const mergedStatusRef = computed<'process' | 'finish' | 'error' | 'wait'>(\n      () => {\n        const { status } = props\n        if (status) {\n          return status\n        }\n        else {\n          const { internalIndex } = props\n          const { current } = stepsProps\n          if (current === undefined)\n            return 'process'\n          if (internalIndex < current) {\n            return 'finish'\n          }\n          else if (internalIndex === current) {\n            return stepsProps.status || 'process'\n          }\n          else if (internalIndex > current) {\n            return 'wait'\n          }\n        }\n        return 'process'\n      }\n    )\n    const cssVarsRef = computed(() => {\n      const { value: status } = mergedStatusRef\n      const { size } = stepsProps\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          stepHeaderFontWeight,\n          [createKey('stepHeaderFontSize', size)]: stepHeaderFontSize,\n          [createKey('indicatorIndexFontSize', size)]: indicatorIndexFontSize,\n          [createKey('indicatorSize', size)]: indicatorSize,\n          [createKey('indicatorIconSize', size)]: indicatorIconSize,\n          [createKey('indicatorTextColor', status)]: indicatorTextColor,\n          [createKey('indicatorBorderColor', status)]: indicatorBorderColor,\n          [createKey('headerTextColor', status)]: headerTextColor,\n          [createKey('splitorColor', status)]: splitorColor,\n          [createKey('indicatorColor', status)]: indicatorColor,\n          [createKey('descriptionTextColor', status)]: descriptionTextColor\n        }\n      } = mergedThemeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-description-text-color': descriptionTextColor,\n        '--n-header-text-color': headerTextColor,\n        '--n-indicator-border-color': indicatorBorderColor,\n        '--n-indicator-color': indicatorColor,\n        '--n-indicator-icon-size': indicatorIconSize,\n        '--n-indicator-index-font-size': indicatorIndexFontSize,\n        '--n-indicator-size': indicatorSize,\n        '--n-indicator-text-color': indicatorTextColor,\n        '--n-splitor-color': splitorColor,\n        '--n-step-header-font-size': stepHeaderFontSize,\n        '--n-step-header-font-weight': stepHeaderFontWeight\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'step',\n          computed(() => {\n            const { value: status } = mergedStatusRef\n            const { size } = stepsProps\n            return `${status[0]}${size[0]}`\n          }),\n          cssVarsRef,\n          stepsProps\n        )\n      : undefined\n\n    const handleStepClick = computed((): undefined | (() => void) => {\n      if (props.disabled)\n        return undefined\n      const { onUpdateCurrent, 'onUpdate:current': _onUpdateCurrent }\n        = stepsProps\n      return onUpdateCurrent || _onUpdateCurrent\n        ? () => {\n            if (onUpdateCurrent) {\n              call(onUpdateCurrent, props.internalIndex)\n            }\n            if (_onUpdateCurrent) {\n              call(_onUpdateCurrent, props.internalIndex)\n            }\n          }\n        : undefined\n    })\n    return {\n      stepsSlots,\n      mergedClsPrefix: mergedClsPrefixRef,\n      vertical: verticalRef,\n      mergedStatus: mergedStatusRef,\n      handleStepClick,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      contentPlacement: contentPlacementRef\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      onRender,\n      handleStepClick,\n      disabled,\n      contentPlacement,\n      vertical\n    } = this\n    const descriptionNode = resolveWrappedSlot(\n      this.$slots.default,\n      (children) => {\n        const mergedDescription = children || this.description\n        if (mergedDescription) {\n          return (\n            <div class={`${mergedClsPrefix}-step-content__description`}>\n              {mergedDescription}\n            </div>\n          )\n        }\n        return null\n      }\n    )\n    const splitorNode = <div class={`${mergedClsPrefix}-step-splitor`} />\n\n    const indicatorNode = (\n      // We need a key here to prevent reconcile progress from affecting styling.\n      // A DOM can be reused so if it is used both for A component & B component,\n      // the styling transition bewteen two components may be incorrect.\n      <div class={`${mergedClsPrefix}-step-indicator`} key={contentPlacement}>\n        <div class={`${mergedClsPrefix}-step-indicator-slot`}>\n          <NIconSwitchTransition>\n            {{\n              default: () => {\n                return resolveWrappedSlot(this.$slots.icon, (icon) => {\n                  const { mergedStatus, stepsSlots } = this\n                  return !(\n                    mergedStatus === 'finish' || mergedStatus === 'error'\n                  ) ? (\n                        icon || (\n                          <div\n                            key={this.internalIndex}\n                            class={`${mergedClsPrefix}-step-indicator-slot__index`}\n                          >\n                            {this.internalIndex}\n                          </div>\n                        )\n                      ) : mergedStatus === 'finish' ? (\n                        <NBaseIcon clsPrefix={mergedClsPrefix} key=\"finish\">\n                          {{\n                            default: () =>\n                              resolveSlot(stepsSlots['finish-icon'], () => [\n                                <FinishedIcon />\n                              ])\n                          }}\n                        </NBaseIcon>\n                      ) : mergedStatus === 'error' ? (\n                        <NBaseIcon clsPrefix={mergedClsPrefix} key=\"error\">\n                          {{\n                            default: () =>\n                              resolveSlot(stepsSlots['error-icon'], () => [\n                                <ErrorIcon />\n                              ])\n                          }}\n                        </NBaseIcon>\n                      ) : null\n                })\n              }\n            }}\n          </NIconSwitchTransition>\n        </div>\n        {vertical ? splitorNode : null}\n      </div>\n    )\n    const contentNode = (\n      <div class={`${mergedClsPrefix}-step-content`}>\n        <div class={`${mergedClsPrefix}-step-content-header`}>\n          <div class={`${mergedClsPrefix}-step-content-header__title`}>\n            {resolveSlot(this.$slots.title, () => [this.title])}\n          </div>\n          {!vertical && contentPlacement === 'right' ? splitorNode : null}\n        </div>\n        {descriptionNode}\n      </div>\n    )\n\n    let stepNode: VNode\n    if (!vertical && contentPlacement === 'bottom') {\n      stepNode = (\n        <Fragment>\n          <div class={`${mergedClsPrefix}-step-line`}>\n            {indicatorNode}\n            {splitorNode}\n          </div>\n          {contentNode}\n        </Fragment>\n      )\n    }\n    else {\n      stepNode = (\n        <Fragment>\n          {indicatorNode}\n          {contentNode}\n        </Fragment>\n      )\n    }\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-step`,\n          disabled && `${mergedClsPrefix}-step--disabled`,\n          !disabled && handleStepClick && `${mergedClsPrefix}-step--clickable`,\n          this.themeClass,\n          descriptionNode && `${mergedClsPrefix}-step--show-description`,\n          `${mergedClsPrefix}-step--${this.mergedStatus}-status`\n        ]}\n        style={this.cssVars as CSSProperties}\n        onClick={handleStepClick}\n      >\n        {stepNode}\n      </div>\n    )\n  }\n})\n","import { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-button-border-radius\n// --n-button-box-shadow\n// --n-button-color\n// --n-button-width\n// --n-button-width-pressed\n// --n-height\n// --n-offset\n// --n-rail-border-radius\n// --n-rail-color\n// --n-rail-color-active\n// --n-rail-height\n// --n-rail-width\n// --n-width\n// --n-box-shadow-focus\n// --n-loading-color\n// --n-text-color\n// --n-icon-color\nexport default cB('switch', `\n  height: var(--n-height);\n  min-width: var(--n-width);\n  vertical-align: middle;\n  user-select: none;\n  -webkit-user-select: none;\n  display: inline-flex;\n  outline: none;\n  justify-content: center;\n  align-items: center;\n`, [\n  cE('children-placeholder', `\n    height: var(--n-rail-height);\n    display: flex;\n    flex-direction: column;\n    overflow: hidden;\n    pointer-events: none;\n    visibility: hidden;\n  `),\n  cE('rail-placeholder', `\n    display: flex;\n    flex-wrap: none;\n  `),\n  cE('button-placeholder', `\n    width: calc(1.75 * var(--n-rail-height));\n    height: var(--n-rail-height);\n  `),\n  cB('base-loading', `\n    position: absolute;\n    top: 50%;\n    left: 50%;\n    transform: translateX(-50%) translateY(-50%);\n    font-size: calc(var(--n-button-width) - 4px);\n    color: var(--n-loading-color);\n    transition: color .3s var(--n-bezier);\n  `, [\n    iconSwitchTransition({\n      left: '50%',\n      top: '50%',\n      originalTransform: 'translateX(-50%) translateY(-50%)'\n    })\n  ]),\n  cE('checked, unchecked', `\n    transition: color .3s var(--n-bezier);\n    color: var(--n-text-color);\n    box-sizing: border-box;\n    position: absolute;\n    white-space: nowrap;\n    top: 0;\n    bottom: 0;\n    display: flex;\n    align-items: center;\n    line-height: 1;\n  `),\n  cE('checked', `\n    right: 0;\n    padding-right: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n  `),\n  cE('unchecked', `\n    left: 0;\n    justify-content: flex-end;\n    padding-left: calc(1.25 * var(--n-rail-height) - var(--n-offset));\n  `),\n  c('&:focus', [\n    cE('rail', `\n      box-shadow: var(--n-box-shadow-focus);\n    `)\n  ]),\n  cM('round', [\n    cE('rail', 'border-radius: calc(var(--n-rail-height) / 2);', [\n      cE('button', 'border-radius: calc(var(--n-button-height) / 2);')\n    ])\n  ]),\n  cNotM('disabled', [\n    cNotM('icon', [\n      cM('rubber-band', [\n        cM('pressed', [\n          cE('rail', [\n            cE('button', 'max-width: var(--n-button-width-pressed);')\n          ])\n        ]),\n        cE('rail', [\n          c('&:active', [\n            cE('button', 'max-width: var(--n-button-width-pressed);')\n          ])\n        ]),\n        cM('active', [\n          cM('pressed', [\n            cE('rail', [\n              cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')\n            ])\n          ]),\n          cE('rail', [\n            c('&:active', [\n              cE('button', 'left: calc(100% - var(--n-offset) - var(--n-button-width-pressed));')\n            ])\n          ])\n        ])\n      ])\n    ])\n  ]),\n  cM('active', [\n    cE('rail', [\n      cE('button', 'left: calc(100% - var(--n-button-width) - var(--n-offset))')\n    ])\n  ]),\n  cE('rail', `\n    overflow: hidden;\n    height: var(--n-rail-height);\n    min-width: var(--n-rail-width);\n    border-radius: var(--n-rail-border-radius);\n    cursor: pointer;\n    position: relative;\n    transition:\n      opacity .3s var(--n-bezier),\n      background .3s var(--n-bezier),\n      box-shadow .3s var(--n-bezier);\n    background-color: var(--n-rail-color);\n  `, [\n    cE('button-icon', `\n      color: var(--n-icon-color);\n      transition: color .3s var(--n-bezier);\n      font-size: calc(var(--n-button-height) - 4px);\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n      display: flex;\n      justify-content: center;\n      align-items: center;\n      line-height: 1;\n    `, [\n      iconSwitchTransition()\n    ]),\n    cE('button', `\n      align-items: center;    \n      top: var(--n-offset);\n      left: var(--n-offset);\n      height: var(--n-button-height);\n      width: var(--n-button-width-pressed);\n      max-width: var(--n-button-width);\n      border-radius: var(--n-button-border-radius);\n      background-color: var(--n-button-color);\n      box-shadow: var(--n-button-box-shadow);\n      box-sizing: border-box;\n      cursor: inherit;\n      content: \"\";\n      position: absolute;\n      transition:\n        background-color .3s var(--n-bezier),\n        left .3s var(--n-bezier),\n        opacity .3s var(--n-bezier),\n        max-width .3s var(--n-bezier),\n        box-shadow .3s var(--n-bezier);\n    `)\n  ]),\n  cM('active', [\n    cE('rail', 'background-color: var(--n-rail-color-active);')\n  ]),\n  cM('loading', [\n    cE('rail', `\n      cursor: wait;\n    `)\n  ]),\n  cM('disabled', [\n    cE('rail', `\n      cursor: not-allowed;\n      opacity: .5;\n    `)\n  ])\n])\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { SwitchTheme, SwitchThemeOverrides } from '../styles'\nimport type { OnUpdateValue, OnUpdateValueImpl } from './interface'\nimport type { SwitchSize, SwitchSpinProps } from './public-types'\nimport { depx, pxfy } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport { computed, defineComponent, h, ref, toRef, watchEffect } from 'vue'\nimport { NBaseLoading, NIconSwitchTransition } from '../../_internal'\nimport { useConfig, useFormItem, useTheme, useThemeClass } from '../../_mixins'\nimport {\n  call,\n  createKey,\n  isSlotEmpty,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../_utils'\nimport { switchLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const switchProps = {\n  ...(useTheme.props as ThemeProps<SwitchTheme, SwitchThemeOverrides>),\n  size: String as PropType<SwitchSize>,\n  value: {\n    type: [String, Number, Boolean] as PropType<\n      string | number | boolean | undefined\n    >,\n    default: undefined\n  },\n  loading: Boolean,\n  defaultValue: {\n    type: [String, Number, Boolean] as PropType<string | number | boolean>,\n    default: false\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  round: {\n    type: Boolean,\n    default: true\n  },\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  checkedValue: {\n    type: [String, Number, Boolean] as PropType<string | number | boolean>,\n    default: true\n  },\n  uncheckedValue: {\n    type: [String, Number, Boolean] as PropType<string | number | boolean>,\n    default: false\n  },\n  railStyle: Function as PropType<\n    (params: { focused: boolean, checked: boolean }) => string | CSSProperties\n  >,\n  rubberBand: {\n    type: Boolean,\n    default: true\n  },\n  spinProps: Object as PropType<SwitchSpinProps>,\n  /** @deprecated */\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue> | undefined>\n} as const\n\nexport type SwitchProps = ExtractPublicPropTypes<typeof switchProps>\n\nexport interface SwitchSlots {\n  checked?: () => VNode[]\n  'checked-icon'?: () => VNode[]\n  icon?: () => VNode[]\n  unchecked?: () => VNode[]\n  'unchecked-icon'?: () => VNode[]\n}\n\nlet supportCssMax: boolean | undefined\n\nexport default defineComponent({\n  name: 'Switch',\n  props: switchProps,\n  slots: Object as SlotsType<SwitchSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange) {\n          warnOnce(\n            'switch',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n    if (supportCssMax === undefined) {\n      if (typeof CSS !== 'undefined') {\n        if (typeof CSS.supports !== 'undefined') {\n          supportCssMax = CSS.supports('width', 'max(1px)')\n        }\n        else {\n          supportCssMax = false\n        }\n      }\n      else {\n        // If you are using SSR, we assume that you are targeting browsers with\n        // recent versions\n        supportCssMax = true\n      }\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedComponentPropsRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Switch',\n      '-switch',\n      style,\n      switchLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const formItem = useFormItem(props, {\n      mergedSize(NFormItem) {\n        if (props.size !== undefined)\n          return props.size\n        if (NFormItem) {\n          return NFormItem.mergedSize.value\n        }\n        const configSize = mergedComponentPropsRef?.value?.Switch?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef } = formItem\n    const uncontrolledValueRef = ref(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const checkedRef = computed(() => {\n      return mergedValueRef.value === props.checkedValue\n    })\n    const pressedRef = ref(false)\n    const focusedRef = ref(false)\n    const mergedRailStyleRef = computed(() => {\n      const { railStyle } = props\n      if (!railStyle)\n        return undefined\n      return railStyle({ focused: focusedRef.value, checked: checkedRef.value })\n    })\n    function doUpdateValue(value: string | number | boolean): void {\n      const {\n        'onUpdate:value': _onUpdateValue,\n        onChange,\n        onUpdateValue\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, value)\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, value)\n      if (onChange)\n        call(onChange as OnUpdateValueImpl, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function doFocus(): void {\n      const { nTriggerFormFocus } = formItem\n      nTriggerFormFocus()\n    }\n    function doBlur(): void {\n      const { nTriggerFormBlur } = formItem\n      nTriggerFormBlur()\n    }\n    function handleClick(): void {\n      if (props.loading || mergedDisabledRef.value)\n        return\n      if (mergedValueRef.value !== props.checkedValue) {\n        doUpdateValue(props.checkedValue)\n      }\n      else {\n        doUpdateValue(props.uncheckedValue)\n      }\n    }\n    function handleFocus(): void {\n      focusedRef.value = true\n      doFocus()\n    }\n    function handleBlur(): void {\n      focusedRef.value = false\n      doBlur()\n      pressedRef.value = false\n    }\n    function handleKeyup(e: KeyboardEvent): void {\n      if (props.loading || mergedDisabledRef.value)\n        return\n      if (e.key === ' ') {\n        if (mergedValueRef.value !== props.checkedValue) {\n          doUpdateValue(props.checkedValue)\n        }\n        else {\n          doUpdateValue(props.uncheckedValue)\n        }\n        pressedRef.value = false\n      }\n    }\n    function handleKeydown(e: KeyboardEvent): void {\n      if (props.loading || mergedDisabledRef.value)\n        return\n      if (e.key === ' ') {\n        e.preventDefault()\n        pressedRef.value = true\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        self: {\n          opacityDisabled,\n          railColor,\n          railColorActive,\n          buttonBoxShadow,\n          buttonColor,\n          boxShadowFocus,\n          loadingColor,\n          textColor,\n          iconColor,\n          [createKey('buttonHeight', size)]: buttonHeight,\n          [createKey('buttonWidth', size)]: buttonWidth,\n          [createKey('buttonWidthPressed', size)]: buttonWidthPressed,\n          [createKey('railHeight', size)]: railHeight,\n          [createKey('railWidth', size)]: railWidth,\n          [createKey('railBorderRadius', size)]: railBorderRadius,\n          [createKey('buttonBorderRadius', size)]: buttonBorderRadius\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n\n      let offset: string\n      let height: string\n      let width: string\n      if (supportCssMax) {\n        offset = `calc((${railHeight} - ${buttonHeight}) / 2)`\n        height = `max(${railHeight}, ${buttonHeight})`\n        width = `max(${railWidth}, calc(${railWidth} + ${buttonHeight} - ${railHeight}))`\n      }\n      else {\n        offset = pxfy((depx(railHeight) - depx(buttonHeight)) / 2)\n        height = pxfy(Math.max(depx(railHeight), depx(buttonHeight)))\n        width\n          = depx(railHeight) > depx(buttonHeight)\n            ? railWidth\n            : pxfy(depx(railWidth) + depx(buttonHeight) - depx(railHeight))\n      }\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-button-border-radius': buttonBorderRadius,\n        '--n-button-box-shadow': buttonBoxShadow,\n        '--n-button-color': buttonColor,\n        '--n-button-width': buttonWidth,\n        '--n-button-width-pressed': buttonWidthPressed,\n        '--n-button-height': buttonHeight,\n        '--n-height': height,\n        '--n-offset': offset,\n        '--n-opacity-disabled': opacityDisabled,\n        '--n-rail-border-radius': railBorderRadius,\n        '--n-rail-color': railColor,\n        '--n-rail-color-active': railColorActive,\n        '--n-rail-height': railHeight,\n        '--n-rail-width': railWidth,\n        '--n-width': width,\n        '--n-box-shadow-focus': boxShadowFocus,\n        '--n-loading-color': loadingColor,\n        '--n-text-color': textColor,\n        '--n-icon-color': iconColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'switch',\n          computed(() => {\n            return mergedSizeRef.value[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      handleClick,\n      handleBlur,\n      handleFocus,\n      handleKeyup,\n      handleKeydown,\n      mergedRailStyle: mergedRailStyleRef,\n      pressed: pressedRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedValue: mergedValueRef,\n      checked: checkedRef,\n      mergedDisabled: mergedDisabledRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      mergedDisabled,\n      checked,\n      mergedRailStyle,\n      onRender,\n      $slots\n    } = this\n    onRender?.()\n    const {\n      checked: checkedSlot,\n      unchecked: uncheckedSlot,\n      icon: iconSlot,\n      'checked-icon': checkedIconSlot,\n      'unchecked-icon': uncheckedIconSlot\n    } = $slots\n    const hasIcon = !(\n      isSlotEmpty(iconSlot)\n      && isSlotEmpty(checkedIconSlot)\n      && isSlotEmpty(uncheckedIconSlot)\n    )\n    return (\n      <div\n        role=\"switch\"\n        aria-checked={checked}\n        class={[\n          `${mergedClsPrefix}-switch`,\n          this.themeClass,\n          hasIcon && `${mergedClsPrefix}-switch--icon`,\n          checked && `${mergedClsPrefix}-switch--active`,\n          mergedDisabled && `${mergedClsPrefix}-switch--disabled`,\n          this.round && `${mergedClsPrefix}-switch--round`,\n          this.loading && `${mergedClsPrefix}-switch--loading`,\n          this.pressed && `${mergedClsPrefix}-switch--pressed`,\n          this.rubberBand && `${mergedClsPrefix}-switch--rubber-band`\n        ]}\n        tabindex={!this.mergedDisabled ? 0 : undefined}\n        style={this.cssVars as CSSProperties}\n        onClick={this.handleClick}\n        onFocus={this.handleFocus}\n        onBlur={this.handleBlur}\n        onKeyup={this.handleKeyup}\n        onKeydown={this.handleKeydown}\n      >\n        <div\n          class={`${mergedClsPrefix}-switch__rail`}\n          aria-hidden=\"true\"\n          style={mergedRailStyle}\n        >\n          {resolveWrappedSlot(checkedSlot, checkedSlotChildren =>\n            resolveWrappedSlot(uncheckedSlot, (uncheckedSlotChildren) => {\n              if (checkedSlotChildren || uncheckedSlotChildren) {\n                return (\n                  <div\n                    aria-hidden\n                    class={`${mergedClsPrefix}-switch__children-placeholder`}\n                  >\n                    <div class={`${mergedClsPrefix}-switch__rail-placeholder`}>\n                      <div\n                        class={`${mergedClsPrefix}-switch__button-placeholder`}\n                      />\n                      {checkedSlotChildren}\n                    </div>\n                    <div class={`${mergedClsPrefix}-switch__rail-placeholder`}>\n                      <div\n                        class={`${mergedClsPrefix}-switch__button-placeholder`}\n                      />\n                      {uncheckedSlotChildren}\n                    </div>\n                  </div>\n                )\n              }\n              return null\n            }))}\n          <div class={`${mergedClsPrefix}-switch__button`}>\n            {resolveWrappedSlot(iconSlot, icon =>\n              resolveWrappedSlot(checkedIconSlot, checkedIcon =>\n                resolveWrappedSlot(uncheckedIconSlot, (uncheckedIcon) => {\n                  return (\n                    <NIconSwitchTransition>\n                      {{\n                        default: () =>\n                          this.loading ? (\n                            <NBaseLoading\n                              key=\"loading\"\n                              clsPrefix={mergedClsPrefix}\n                              strokeWidth={20}\n                              {...this.spinProps}\n                            />\n                          ) : this.checked && (checkedIcon || icon) ? (\n                            <div\n                              class={`${mergedClsPrefix}-switch__button-icon`}\n                              key={checkedIcon ? 'checked-icon' : 'icon'}\n                            >\n                              {checkedIcon || icon}\n                            </div>\n                          ) : !this.checked && (uncheckedIcon || icon) ? (\n                            <div\n                              class={`${mergedClsPrefix}-switch__button-icon`}\n                              key={uncheckedIcon ? 'unchecked-icon' : 'icon'}\n                            >\n                              {uncheckedIcon || icon}\n                            </div>\n                          ) : null\n                      }}\n                    </NIconSwitchTransition>\n                  )\n                })))}\n            {resolveWrappedSlot(\n              checkedSlot,\n              children =>\n                children && (\n                  <div\n                    key=\"checked\"\n                    class={`${mergedClsPrefix}-switch__checked`}\n                  >\n                    {children}\n                  </div>\n                )\n            )}\n            {resolveWrappedSlot(\n              uncheckedSlot,\n              children =>\n                children && (\n                  <div\n                    key=\"unchecked\"\n                    class={`${mergedClsPrefix}-switch__unchecked`}\n                  >\n                    {children}\n                  </div>\n                )\n            )}\n          </div>\n        </div>\n      </div>\n    )\n  }\n})\n","import { c, cB, cM, cNotM, insideModal, insidePopover } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-td-color\n// --n-td-color-modal\n// --n-td-color-popover\n// --n-td-text-color\n// --n-border-color\n// --n-border-color-modal\n// --n-border-color-popover\n// --n-border-radius\n// --n-font-size\n// --n-th-color\n// --n-th-color-modal\n// --n-th-color-popover\n// --n-th-font-weight\n// --n-th-text-color\n// --n-line-height\n// --n-td-padding\n// --n-th-padding\nexport default c([\n  cB('table', `\n    font-size: var(--n-font-size);\n    font-variant-numeric: tabular-nums;\n    line-height: var(--n-line-height);\n    width: 100%;\n    border-radius: var(--n-border-radius) var(--n-border-radius) 0 0;\n    text-align: left;\n    border-collapse: separate;\n    border-spacing: 0;\n    overflow: hidden;\n    background-color: var(--n-td-color);\n    border-color: var(--n-merged-border-color);\n    transition:\n      background-color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      color .3s var(--n-bezier);\n    --n-merged-border-color: var(--n-border-color);\n  `, [\n    c('th', `\n      white-space: nowrap;\n      transition:\n        background-color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      text-align: inherit;\n      padding: var(--n-th-padding);\n      vertical-align: inherit;\n      text-transform: none;\n      border: 0px solid var(--n-merged-border-color);\n      font-weight: var(--n-th-font-weight);\n      color: var(--n-th-text-color);\n      background-color: var(--n-th-color);\n      border-bottom: 1px solid var(--n-merged-border-color);\n      border-right: 1px solid var(--n-merged-border-color);\n    `, [\n      c('&:last-child', `\n        border-right: 0px solid var(--n-merged-border-color);\n      `)\n    ]),\n    c('td', `\n      transition:\n        background-color .3s var(--n-bezier),\n        border-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n      padding: var(--n-td-padding);\n      color: var(--n-td-text-color);\n      background-color: var(--n-td-color);\n      border: 0px solid var(--n-merged-border-color);\n      border-right: 1px solid var(--n-merged-border-color);\n      border-bottom: 1px solid var(--n-merged-border-color);\n    `, [\n      c('&:last-child', `\n        border-right: 0px solid var(--n-merged-border-color);\n      `)\n    ]),\n    cM('bordered', `\n      border: 1px solid var(--n-merged-border-color);\n      border-radius: var(--n-border-radius);\n    `, [\n      c('tr', [\n        c('&:last-child', [\n          c('td', `\n            border-bottom: 0 solid var(--n-merged-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('single-line', [\n      c('th', `\n        border-right: 0px solid var(--n-merged-border-color);\n      `),\n      c('td', `\n        border-right: 0px solid var(--n-merged-border-color);\n      `)\n    ]),\n    cM('single-column', [\n      c('tr', [\n        c('&:not(:last-child)', [\n          c('td', `\n            border-bottom: 0px solid var(--n-merged-border-color);\n          `)\n        ])\n      ])\n    ]),\n    cM('striped', [\n      c('tr:nth-of-type(even)', [c('td', 'background-color: var(--n-td-color-striped)')])\n    ]),\n    cNotM('bottom-bordered', [\n      c('tr', [\n        c('&:last-child', [\n          c('td', `\n            border-bottom: 0px solid var(--n-merged-border-color);\n          `)\n        ])\n      ])\n    ])\n  ]),\n  insideModal(\n    cB('table', `\n      background-color: var(--n-td-color-modal);\n      --n-merged-border-color: var(--n-border-color-modal);\n    `, [\n      c('th', `\n        background-color: var(--n-th-color-modal);\n      `),\n      c('td', `\n        background-color: var(--n-td-color-modal);\n      `)\n    ])\n  ),\n  insidePopover(\n    cB('table', `\n      background-color: var(--n-td-color-popover);\n      --n-merged-border-color: var(--n-border-color-popover);\n    `, [\n      c('th', `\n        background-color: var(--n-th-color-popover);\n      `),\n      c('td', `\n        background-color: var(--n-td-color-popover);\n      `)\n    ])\n  )\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TableTheme, TableThemeOverrides } from '../styles'\nimport type { TableSize } from './public-types'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport { createKey } from '../../_utils'\nimport { tableLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const tableProps = {\n  ...(useTheme.props as ThemeProps<TableTheme, TableThemeOverrides>),\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  bottomBordered: {\n    type: Boolean,\n    default: true\n  },\n  singleLine: {\n    type: Boolean,\n    default: true\n  },\n  striped: Boolean,\n  singleColumn: Boolean,\n  size: String as PropType<TableSize>\n}\n\nexport type TableProps = ExtractPublicPropTypes<typeof tableProps>\n\nexport default defineComponent({\n  name: 'Table',\n  props: tableProps,\n  setup(props) {\n    const {\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const mergedSizeRef = computed(() => {\n      return (\n        props.size || mergedComponentPropsRef?.value?.Table?.size || 'medium'\n      )\n    })\n    const themeRef = useTheme(\n      'Table',\n      '-table',\n      style,\n      tableLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Table', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const size = mergedSizeRef.value\n      const {\n        self: {\n          borderColor,\n          tdColor,\n          tdColorModal,\n          tdColorPopover,\n          thColor,\n          thColorModal,\n          thColorPopover,\n          thTextColor,\n          tdTextColor,\n          borderRadius,\n          thFontWeight,\n          lineHeight,\n          borderColorModal,\n          borderColorPopover,\n          tdColorStriped,\n          tdColorStripedModal,\n          tdColorStripedPopover,\n          [createKey('fontSize', size)]: fontSize,\n          [createKey('tdPadding', size)]: tdPadding,\n          [createKey('thPadding', size)]: thPadding\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-td-color': tdColor,\n        '--n-td-color-modal': tdColorModal,\n        '--n-td-color-popover': tdColorPopover,\n        '--n-td-text-color': tdTextColor,\n        '--n-border-color': borderColor,\n        '--n-border-color-modal': borderColorModal,\n        '--n-border-color-popover': borderColorPopover,\n        '--n-border-radius': borderRadius,\n        '--n-font-size': fontSize,\n        '--n-th-color': thColor,\n        '--n-th-color-modal': thColorModal,\n        '--n-th-color-popover': thColorPopover,\n        '--n-th-font-weight': thFontWeight,\n        '--n-th-text-color': thTextColor,\n        '--n-line-height': lineHeight,\n        '--n-td-padding': tdPadding,\n        '--n-th-padding': thPadding,\n        '--n-td-color-striped': tdColorStriped,\n        '--n-td-color-striped-modal': tdColorStripedModal,\n        '--n-td-color-striped-popover': tdColorStripedPopover\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'table',\n          computed(() => {\n            return mergedSizeRef.value[0]\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      rtlEnabled: rtlEnabledRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <table\n        class={[\n          `${mergedClsPrefix}-table`,\n          this.themeClass,\n          {\n            [`${mergedClsPrefix}-table--rtl`]: this.rtlEnabled,\n            [`${mergedClsPrefix}-table--bottom-bordered`]: this.bottomBordered,\n            [`${mergedClsPrefix}-table--bordered`]: this.bordered,\n            [`${mergedClsPrefix}-table--single-line`]: this.singleLine,\n            [`${mergedClsPrefix}-table--single-column`]: this.singleColumn,\n            [`${mergedClsPrefix}-table--striped`]: this.striped\n          }\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </table>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Tbody',\n  render() {\n    return <tbody>{this.$slots.default?.()}</tbody>\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Td',\n  render() {\n    return <td>{this.$slots.default?.()}</td>\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Th',\n  render() {\n    return <th>{this.$slots.default?.()}</th>\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Thead',\n  render() {\n    return <thead>{this.$slots.default?.()}</thead>\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Tr',\n  render() {\n    return <tr>{this.$slots.default?.()}</tr>\n  }\n})\n","import type { CSSProperties, Ref } from 'vue'\nimport { createInjectionKey } from '../../_utils'\n\nexport type TabsType = 'line' | 'card' | 'bar' | 'segment'\n\nexport type OnUpdateValue = (value: string & number) => void\nexport type OnUpdateValueImpl = (value: string | number) => void\n\nexport type OnClose = (name: string & number) => void\nexport type OnCloseImpl = (name: string | number) => void\n\nexport type OnBeforeLeave = (\n  name: string & number,\n  oldName: string & number & null\n) => boolean | Promise<boolean>\nexport type OnBeforeLeaveImpl = (\n  name: string | number,\n  oldName: string | number | null\n) => boolean | Promise<boolean>\n\nexport interface TabsInjection {\n  mergedClsPrefixRef: Ref<string>\n  valueRef: Ref<string | number | null>\n  typeRef: Ref<TabsType>\n  closableRef: Ref<boolean>\n  tabStyleRef: Ref<string | CSSProperties | undefined>\n  tabClassRef: Ref<string | undefined>\n  addTabClassRef: Ref<string | undefined>\n  addTabStyleRef: Ref<string | CSSProperties | undefined>\n  paneClassRef: Ref<string | undefined>\n  paneStyleRef: Ref<string | CSSProperties | undefined>\n  tabChangeIdRef: { id: number }\n  onBeforeLeaveRef: Ref<OnBeforeLeave | undefined>\n  triggerRef: Ref<'click' | 'hover'>\n  activateTab: (panelName: string | number) => void\n  handleClose: (panelName: string | number) => void\n  handleAdd: () => void\n}\n\nexport type Addable\n  = | boolean\n    | {\n      disabled?: boolean\n    }\n\nexport const tabsInjectionKey = createInjectionKey<TabsInjection>('n-tabs')\n\nexport interface TabsInst {\n  syncBarPosition: () => void\n  scrollToCurrentTab: () => void\n}\n","import type {\n  HTMLAttributes,\n  PropType,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { defineComponent, h, inject, watchEffect } from 'vue'\nimport { throwError, warnOnce } from '../../_utils'\nimport { tabsInjectionKey } from './interface'\n\nexport const tabPaneProps = {\n  tab: [String, Number, Object, Function] as PropType<\n    string | number | VNode | (() => VNodeChild)\n  >,\n  name: {\n    type: [String, Number] as PropType<string | number>,\n    required: true\n  },\n  disabled: Boolean,\n  displayDirective: {\n    type: String as PropType<'if' | 'show' | 'show:lazy'>,\n    default: 'if'\n  },\n  closable: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  tabProps: Object as PropType<HTMLAttributes>,\n  /** @deprecated */\n  label: [String, Number, Object, Function] as PropType<\n    string | number | VNode | (() => VNodeChild)\n  >\n} as const\n\nexport type TabPaneProps = ExtractPublicPropTypes<typeof tabPaneProps>\n\nexport interface TabPaneSlots {\n  default?: () => VNode[]\n  tab?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  __TAB_PANE__: true,\n  name: 'TabPane',\n  alias: ['TabPanel'],\n  props: tabPaneProps,\n  slots: Object as SlotsType<TabPaneSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.label !== undefined) {\n          warnOnce(\n            'tab-pane',\n            '`label` is deprecated, please use `tab` instead.'\n          )\n        }\n      })\n    }\n    const NTab = inject(tabsInjectionKey, null)\n    if (!NTab) {\n      throwError('tab-pane', '`n-tab-pane` must be placed inside `n-tabs`.')\n    }\n    return {\n      style: NTab.paneStyleRef,\n      class: NTab.paneClassRef,\n      mergedClsPrefix: NTab.mergedClsPrefixRef\n    }\n  },\n  render() {\n    return (\n      <div\n        class={[`${this.mergedClsPrefix}-tab-pane`, this.class]}\n        style={this.style}\n      >\n        {this.$slots.default?.()}\n      </div>\n    )\n  }\n})\n","import type { ExtractPublicPropTypes } from '../../_utils'\nimport type { OnBeforeLeaveImpl } from './interface'\nimport { computed, defineComponent, Fragment, h, inject, mergeProps } from 'vue'\nimport { NBaseClose, NBaseIcon } from '../../_internal'\nimport { AddIcon } from '../../_internal/icons'\nimport { omit, render } from '../../_utils'\nimport { tabsInjectionKey } from './interface'\nimport { tabPaneProps } from './TabPane'\n\nexport const tabProps = {\n  internalLeftPadded: Boolean,\n  internalAddable: Boolean,\n  internalCreatedByPane: Boolean,\n  ...omit(tabPaneProps, ['displayDirective'])\n} as const\n\nexport type TabProps = ExtractPublicPropTypes<typeof tabProps>\n\nexport default defineComponent({\n  __TAB__: true,\n  inheritAttrs: false,\n  name: 'Tab',\n  props: tabProps,\n  setup(props) {\n    const {\n      mergedClsPrefixRef,\n      valueRef,\n      typeRef,\n      closableRef,\n      tabStyleRef,\n      addTabStyleRef,\n      tabClassRef,\n      addTabClassRef,\n      tabChangeIdRef,\n      onBeforeLeaveRef,\n      triggerRef,\n      handleAdd,\n      activateTab,\n      handleClose\n    } = inject(tabsInjectionKey)!\n    return {\n      trigger: triggerRef,\n      mergedClosable: computed(() => {\n        if (props.internalAddable)\n          return false\n        const { closable } = props\n        if (closable === undefined)\n          return closableRef.value\n        return closable\n      }),\n      style: tabStyleRef,\n      addStyle: addTabStyleRef,\n      tabClass: tabClassRef,\n      addTabClass: addTabClassRef,\n      clsPrefix: mergedClsPrefixRef,\n      value: valueRef,\n      type: typeRef,\n      handleClose(e: MouseEvent) {\n        e.stopPropagation()\n        if (props.disabled)\n          return\n        handleClose(props.name)\n      },\n      activateTab() {\n        if (props.disabled)\n          return\n        if (props.internalAddable) {\n          handleAdd()\n          return\n        }\n        const { name: nameProp } = props\n        const id = ++tabChangeIdRef.id\n        if (nameProp !== valueRef.value) {\n          const { value: onBeforeLeave } = onBeforeLeaveRef\n          if (!onBeforeLeave) {\n            activateTab(nameProp)\n          }\n          else {\n            void Promise.resolve(\n              (onBeforeLeave as OnBeforeLeaveImpl)(props.name, valueRef.value)\n            ).then((allowLeave) => {\n              if (allowLeave && tabChangeIdRef.id === id) {\n                activateTab(nameProp)\n              }\n            })\n          }\n        }\n      }\n    }\n  },\n  render() {\n    const {\n      internalAddable,\n      clsPrefix,\n      name,\n      disabled,\n      label,\n      tab,\n      value,\n      mergedClosable,\n      trigger,\n      $slots: { default: defaultSlot }\n    } = this\n    const mergedTab = label ?? tab\n    return (\n      <div class={`${clsPrefix}-tabs-tab-wrapper`}>\n        {this.internalLeftPadded ? (\n          <div class={`${clsPrefix}-tabs-tab-pad`} />\n        ) : null}\n        <div\n          key={name}\n          data-name={name}\n          data-disabled={disabled ? true : undefined}\n          {...mergeProps(\n            {\n              class: [\n                `${clsPrefix}-tabs-tab`,\n                value === name && `${clsPrefix}-tabs-tab--active`,\n                disabled && `${clsPrefix}-tabs-tab--disabled`,\n                mergedClosable && `${clsPrefix}-tabs-tab--closable`,\n                internalAddable && `${clsPrefix}-tabs-tab--addable`,\n                internalAddable ? this.addTabClass : this.tabClass\n              ],\n              onClick: trigger === 'click' ? this.activateTab : undefined,\n              onMouseenter: trigger === 'hover' ? this.activateTab : undefined,\n              style: internalAddable ? this.addStyle : this.style\n            },\n            this.internalCreatedByPane\n              ? ((this.tabProps || {}) as any)\n              : this.$attrs\n          )}\n        >\n          <span class={`${clsPrefix}-tabs-tab__label`}>\n            {internalAddable ? (\n              <>\n                <div class={`${clsPrefix}-tabs-tab__height-placeholder`}>\n                  &nbsp;\n                </div>\n                <NBaseIcon clsPrefix={clsPrefix}>\n                  {{\n                    default: () => <AddIcon />\n                  }}\n                </NBaseIcon>\n              </>\n            ) : defaultSlot ? (\n              defaultSlot()\n            ) : typeof mergedTab === 'object' ? (\n              mergedTab // VNode\n            ) : (\n              render(mergedTab ?? name)\n            )}\n          </span>\n          {mergedClosable && this.type === 'card' ? (\n            <NBaseClose\n              clsPrefix={clsPrefix}\n              class={`${clsPrefix}-tabs-tab__close`}\n              onClick={this.handleClose}\n              disabled={disabled}\n            />\n          ) : null}\n        </div>\n      </div>\n    )\n  }\n})\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-close-size\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-size\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\n// --n-bar-color\n// --n-tab-font-size\n// --n-tab-text-color\n// --n-tab-text-color-active\n// --n-tab-text-color-disabled\n// --n-tab-text-color-hover\n// --n-pane-text-color\n// --n-tab-border-color\n// --n-tab-border-radius\n// --n-tab-color\n// --n-tab-font-weight\n// --n-tab-font-weight-active\n// --n-tab-gap\n// --n-tab-gap-vertical\n// --n-tab-padding\n// --n-pane-padding-left\n// --n-pane-padding-right\n// --n-pane-padding-top\n// --n-pane-padding-bottom\n// --n-color-segment\n// --n-font-weight-strong\n// --n-tab-color-segment\nexport default cB('tabs', `\n  box-sizing: border-box;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  transition:\n    background-color .3s var(--n-bezier),\n    border-color .3s var(--n-bezier);\n`, [\n  c('&.transition-disabled', [\n    cB('tabs-tab', `\n      transition: none !important;\n    `),\n    cB('tabs-nav-scroll-content', `\n      transition: none !important;\n    `),\n    cB('tabs-tab-pad', `\n      transition: none !important;\n    `)\n  ]),\n  cM('segment-type', [\n    cB('tabs-rail', [\n      c('&.transition-disabled', [\n        cB('tabs-capsule', `\n          transition: none;\n        `)\n      ])\n    ])\n  ]),\n  cM('top', [\n    cB('tab-pane', `\n      padding: var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left);\n    `)\n  ]),\n  cM('left', [\n    cB('tab-pane', `\n      padding: var(--n-pane-padding-right) var(--n-pane-padding-bottom) var(--n-pane-padding-left) var(--n-pane-padding-top);\n    `)\n  ]),\n  cM('left, right', `\n    flex-direction: row;\n  `, [\n    cB('tabs-bar', `\n      width: 2px;\n      right: 0;\n      transition:\n        top .2s var(--n-bezier),\n        max-height .2s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `),\n    cB('tabs-tab', `\n      padding: var(--n-tab-padding-vertical); \n    `)\n  ]),\n  cM('right', `\n    flex-direction: row-reverse;\n  `, [\n    cB('tab-pane', `\n      padding: var(--n-pane-padding-left) var(--n-pane-padding-top) var(--n-pane-padding-right) var(--n-pane-padding-bottom);\n    `),\n    cB('tabs-bar', `\n      left: 0;\n    `)\n  ]),\n  cM('bottom', `\n    flex-direction: column-reverse;\n    justify-content: flex-end;\n  `, [\n    cB('tab-pane', `\n      padding: var(--n-pane-padding-bottom) var(--n-pane-padding-right) var(--n-pane-padding-top) var(--n-pane-padding-left);\n    `),\n    cB('tabs-bar', `\n      top: 0;\n    `)\n  ]),\n  cB('tabs-rail', `\n    position: relative;\n    padding: 3px;\n    border-radius: var(--n-tab-border-radius);\n    width: 100%;\n    background-color: var(--n-color-segment);\n    transition: background-color .3s var(--n-bezier);\n    display: flex;\n    align-items: center;\n  `, [\n    cB('tabs-capsule', `\n      border-radius: var(--n-tab-border-radius);\n      position: absolute;\n      left: 0;\n      top: 0;\n      pointer-events: none;\n      background-color: var(--n-tab-color-segment);\n      box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .08);\n      transition: transform 0.3s var(--n-bezier);\n    `),\n    cB('tabs-tab-wrapper', `\n      flex-basis: 0;\n      flex-grow: 1;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n    `, [\n      cB('tabs-tab', `\n        overflow: hidden;\n        border-radius: var(--n-tab-border-radius);\n        width: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `, [\n        cM('active', `\n          font-weight: var(--n-font-weight-strong);\n          color: var(--n-tab-text-color-active);\n        `),\n        c('&:hover', `\n          color: var(--n-tab-text-color-hover);\n        `)\n      ])\n    ])\n  ]),\n  cM('flex', [\n    cB('tabs-nav', `\n      width: 100%;\n      position: relative;\n    `, [\n      cB('tabs-wrapper', `\n        width: 100%;\n      `, [\n        cB('tabs-tab', `\n          margin-right: 0;\n        `)\n      ])\n    ])\n  ]),\n  cB('tabs-nav', `\n    box-sizing: border-box;\n    line-height: 1.5;\n    display: flex;\n    transition: border-color .3s var(--n-bezier);\n  `, [\n    cE('prefix, suffix', `\n      display: flex;\n      align-items: center;\n    `),\n    cE('prefix', 'padding-right: 16px;'),\n    cE('suffix', 'padding-left: 16px;')\n  ]),\n  cM('top, bottom', [\n    c('>', [\n      cB('tabs-nav', [\n        cB('tabs-nav-scroll-wrapper', [\n          c('&::before', `\n            top: 0;\n            bottom: 0;\n            left: 0;\n            width: 20px;\n          `),\n          c('&::after', `\n            top: 0;\n            bottom: 0;\n            right: 0;\n            width: 20px;\n          `),\n          cM('shadow-start', [\n            c('&::before', `\n              box-shadow: inset 10px 0 8px -8px rgba(0, 0, 0, .12);\n            `)\n          ]),\n          cM('shadow-end', [\n            c('&::after', `\n              box-shadow: inset -10px 0 8px -8px rgba(0, 0, 0, .12);\n            `)\n          ])\n        ])\n      ])\n    ])\n  ]),\n  cM('left, right', [\n    cB('tabs-nav-scroll-content', `\n      flex-direction: column;\n    `),\n    c('>', [\n      cB('tabs-nav', [\n        cB('tabs-nav-scroll-wrapper', [\n          c('&::before', `\n            top: 0;\n            left: 0;\n            right: 0;\n            height: 20px;\n          `),\n          c('&::after', `\n            bottom: 0;\n            left: 0;\n            right: 0;\n            height: 20px;\n          `),\n          cM('shadow-start', [\n            c('&::before', `\n              box-shadow: inset 0 10px 8px -8px rgba(0, 0, 0, .12);\n            `)\n          ]),\n          cM('shadow-end', [\n            c('&::after', `\n              box-shadow: inset 0 -10px 8px -8px rgba(0, 0, 0, .12);\n            `)\n          ])\n        ])\n      ])\n    ])\n  ]),\n  cB('tabs-nav-scroll-wrapper', `\n    flex: 1;\n    position: relative;\n    overflow: hidden;\n  `, [\n    cB('tabs-nav-y-scroll', `\n      height: 100%;\n      width: 100%;\n      overflow-y: auto; \n      scrollbar-width: none;\n    `, [\n      c('&::-webkit-scrollbar, &::-webkit-scrollbar-track-piece, &::-webkit-scrollbar-thumb', `\n        width: 0;\n        height: 0;\n        display: none;\n      `)\n    ]),\n    c('&::before, &::after', `\n      transition: box-shadow .3s var(--n-bezier);\n      pointer-events: none;\n      content: \"\";\n      position: absolute;\n      z-index: 1;\n    `),\n    c('&.transition-disabled', [\n      c('&::before, &::after', `\n        transition: none;\n      `)\n    ])\n  ]),\n  cB('tabs-nav-scroll-content', `\n    display: flex;\n    position: relative;\n    min-width: 100%;\n    min-height: 100%;\n    width: fit-content;\n    box-sizing: border-box;\n  `),\n  cB('tabs-wrapper', `\n    display: inline-flex;\n    flex-wrap: nowrap;\n    position: relative;\n  `),\n  cB('tabs-tab-wrapper', `\n    display: flex;\n    flex-wrap: nowrap;\n    flex-shrink: 0;\n    flex-grow: 0;\n  `),\n  cB('tabs-tab', `\n    cursor: pointer;\n    white-space: nowrap;\n    flex-wrap: nowrap;\n    display: inline-flex;\n    align-items: center;\n    color: var(--n-tab-text-color);\n    font-size: var(--n-tab-font-size);\n    background-clip: padding-box;\n    padding: var(--n-tab-padding);\n    transition:\n      box-shadow .3s var(--n-bezier),\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n  `, [\n    cM('disabled', {\n      cursor: 'not-allowed'\n    }),\n    cE('close', `\n      margin-inline-start: 6px;\n      transition:\n        background-color .3s var(--n-bezier),\n        color .3s var(--n-bezier);\n    `),\n    cE('label', `\n      display: flex;\n      align-items: center;\n      z-index: 1;\n    `)\n  ]),\n  cB('tabs-bar', `\n    position: absolute;\n    bottom: 0;\n    height: 2px;\n    border-radius: 1px;\n    background-color: var(--n-bar-color);\n    transition:\n      left .2s var(--n-bezier),\n      max-width .2s var(--n-bezier),\n      opacity .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n  `, [\n    c('&.transition-disabled', `\n      transition: none;\n    `),\n    cM('disabled', `\n      background-color: var(--n-tab-text-color-disabled)\n    `)\n  ]),\n  cB('tabs-pane-wrapper', `\n    position: relative;\n    overflow: hidden;\n    transition: max-height .2s var(--n-bezier);\n  `),\n  cB('tab-pane', `\n    color: var(--n-pane-text-color);\n    width: 100%;\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      opacity .2s var(--n-bezier);\n    left: 0;\n    right: 0;\n    top: 0;\n  `, [\n    c('&.next-transition-leave-active, &.prev-transition-leave-active, &.next-transition-enter-active, &.prev-transition-enter-active', `\n      transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      transform .2s var(--n-bezier),\n      opacity .2s var(--n-bezier);\n    `),\n    c('&.next-transition-leave-active, &.prev-transition-leave-active', `\n      position: absolute;\n    `),\n    c('&.next-transition-enter-from, &.prev-transition-leave-to', `\n      transform: translateX(32px);\n      opacity: 0;\n    `),\n    c('&.next-transition-leave-to, &.prev-transition-enter-from', `\n      transform: translateX(-32px);\n      opacity: 0;\n    `),\n    c('&.next-transition-leave-from, &.next-transition-enter-to, &.prev-transition-leave-from, &.prev-transition-enter-to', `\n      transform: translateX(0);\n      opacity: 1;\n    `)\n  ]),\n  cB('tabs-tab-pad', `\n    box-sizing: border-box;\n    width: var(--n-tab-gap);\n    flex-grow: 0;\n    flex-shrink: 0;\n  `),\n  cM('line-type, bar-type', [\n    cB('tabs-tab', `\n      font-weight: var(--n-tab-font-weight);\n      box-sizing: border-box;\n      vertical-align: bottom;\n    `, [\n      c('&:hover', {\n        color: 'var(--n-tab-text-color-hover)'\n      }),\n      cM('active', `\n        color: var(--n-tab-text-color-active);\n        font-weight: var(--n-tab-font-weight-active);\n      `),\n      cM('disabled', {\n        color: 'var(--n-tab-text-color-disabled)'\n      })\n    ])\n  ]),\n  cB('tabs-nav', [\n    cE('prefix, suffix', `\n      border-color: var(--n-tab-border-color);\n    `),\n    cB('tabs-nav-scroll-content', `\n      border-color: var(--n-tab-border-color);\n    `),\n    cM('line-type', [\n      cM('top', [\n        cE('prefix, suffix', `\n          border-bottom: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-nav-scroll-content', `\n          border-bottom: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-bar', `\n          bottom: -1px;\n        `)\n      ]),\n      cM('left', [\n        cE('prefix, suffix', `\n          border-right: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-nav-scroll-content', `\n          border-right: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-bar', `\n          right: -1px;\n        `)\n      ]),\n      cM('right', [\n        cE('prefix, suffix', `\n          border-left: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-nav-scroll-content', `\n          border-left: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-bar', `\n          left: -1px;\n        `)\n      ]),\n      cM('bottom', [\n        cE('prefix, suffix', `\n          border-top: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-nav-scroll-content', `\n          border-top: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-bar', `\n          top: -1px;\n        `)\n      ]),\n      cE('prefix, suffix', `\n        transition: border-color .3s var(--n-bezier);\n      `),\n      cB('tabs-nav-scroll-content', `\n        transition: border-color .3s var(--n-bezier);\n      `),\n      cB('tabs-bar', `\n        border-radius: 0;\n      `)\n    ]),\n    cM('card-type', [\n      cE('prefix, suffix', `\n        transition: border-color .3s var(--n-bezier);\n      `),\n      cB('tabs-pad', `\n        flex-grow: 1;\n        transition: border-color .3s var(--n-bezier);\n      `),\n      cB('tabs-tab-pad', `\n        transition: border-color .3s var(--n-bezier);\n      `),\n      cB('tabs-tab', `\n        font-weight: var(--n-tab-font-weight);\n        border: 1px solid var(--n-tab-border-color);\n        background-color: var(--n-tab-color);\n        box-sizing: border-box;\n        position: relative;\n        vertical-align: bottom;\n        display: flex;\n        justify-content: space-between;\n        font-size: var(--n-tab-font-size);\n        color: var(--n-tab-text-color);\n      `, [\n        cM('addable', `\n          padding-left: 8px;\n          padding-right: 8px;\n          font-size: 16px;\n          justify-content: center;\n        `, [\n          cE('height-placeholder', `\n            width: 0;\n            font-size: var(--n-tab-font-size);\n          `),\n          cNotM('disabled', [\n            c('&:hover', `\n              color: var(--n-tab-text-color-hover);\n            `)\n          ])\n        ]),\n        cM('closable', 'padding-inline-end: 8px;'),\n        cM('active', `\n          background-color: #0000;\n          font-weight: var(--n-tab-font-weight-active);\n          color: var(--n-tab-text-color-active);\n        `),\n        cM('disabled', 'color: var(--n-tab-text-color-disabled);')\n      ]),\n    ]),\n    cM('left, right', `\n      flex-direction: column;  \n    `, [\n      cE('prefix, suffix', `\n        padding: var(--n-tab-padding-vertical);\n      `),\n      cB('tabs-wrapper', `\n        flex-direction: column;\n      `),\n      cB('tabs-tab-wrapper', `\n        flex-direction: column;\n      `, [\n        cB('tabs-tab-pad', `\n          height: var(--n-tab-gap-vertical);\n          width: 100%;\n        `)\n      ])\n    ]),\n    cM('top', [\n      cM('card-type', [\n        cB('tabs-scroll-padding', 'border-bottom: 1px solid var(--n-tab-border-color);'),\n        cE('prefix, suffix', `\n          border-bottom: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-tab', `\n          border-top-left-radius: var(--n-tab-border-radius);\n          border-top-right-radius: var(--n-tab-border-radius);\n        `, [\n          cM('active', `\n            border-bottom: 1px solid #0000;\n          `)\n        ]),\n        cB('tabs-tab-pad', `\n          border-bottom: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-pad', `\n          border-bottom: 1px solid var(--n-tab-border-color);\n        `)\n      ])\n    ]),\n    cM('left', [\n      cM('card-type', [\n        cB('tabs-scroll-padding', 'border-right: 1px solid var(--n-tab-border-color);'),\n        cE('prefix, suffix', `\n          border-right: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-tab', `\n          border-top-left-radius: var(--n-tab-border-radius);\n          border-bottom-left-radius: var(--n-tab-border-radius);\n        `, [\n          cM('active', `\n            border-right: 1px solid #0000;\n          `)\n        ]),\n        cB('tabs-tab-pad', `\n          border-right: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-pad', `\n          border-right: 1px solid var(--n-tab-border-color);\n        `)\n      ])\n    ]),\n    cM('right', [\n      cM('card-type', [\n        cB('tabs-scroll-padding', 'border-left: 1px solid var(--n-tab-border-color);'),\n        cE('prefix, suffix', `\n          border-left: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-tab', `\n          border-top-right-radius: var(--n-tab-border-radius);\n          border-bottom-right-radius: var(--n-tab-border-radius);\n        `, [\n          cM('active', `\n            border-left: 1px solid #0000;\n          `)\n        ]),\n        cB('tabs-tab-pad', `\n          border-left: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-pad', `\n          border-left: 1px solid var(--n-tab-border-color);\n        `)\n      ])\n    ]),\n    cM('bottom', [\n      cM('card-type', [\n        cB('tabs-scroll-padding', 'border-top: 1px solid var(--n-tab-border-color);'),\n        cE('prefix, suffix', `\n          border-top: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-tab', `\n          border-bottom-left-radius: var(--n-tab-border-radius);\n          border-bottom-right-radius: var(--n-tab-border-radius);\n        `, [\n          cM('active', `\n            border-top: 1px solid #0000;\n          `)\n        ]),\n        cB('tabs-tab-pad', `\n          border-top: 1px solid var(--n-tab-border-color);\n        `),\n        cB('tabs-pad', `\n          border-top: 1px solid var(--n-tab-border-color);\n        `)\n      ])\n    ])\n  ]),\n  cB('tabs-scroll-button', [\n    cM('start', `\n      padding-left: 10px;\n      padding-right: 6px;\n    `),\n    cM('end', `\n      padding-right: 10px;\n      padding-left: 6px;\n    `),\n    cM('up', `\n      padding-bottom: 10px;\n    `),\n    cM('down', `\n      padding-top: 10px;\n    `)\n  ])\n])\n","import type { PropType } from 'vue'\nimport type { ExtractThemeOverrides } from '../../_mixins/use-theme'\nimport type { ButtonTheme } from '../../button/styles'\nimport { defineComponent, h } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport {\n  ChevronLeftIcon as ArrowLeftIcon,\n  ChevronRightIcon as ArrowRightIcon\n} from '../../_internal/icons'\nimport { NButton } from '../../button'\n\ntype ButtonTypes = 'prev' | 'next'\n\nexport default defineComponent({\n  name: 'TabsButton',\n  props: {\n    type: {\n      type: String as PropType<ButtonTypes>,\n      default: 'next'\n    },\n    mergedClsPrefix: {\n      type: String,\n      required: true\n    },\n    vertical: Boolean,\n    disabled: Boolean,\n    rtl: Boolean,\n    theme: Object as PropType<ButtonTheme>,\n    themeOverrides: Object as PropType<ExtractThemeOverrides<ButtonTheme>>,\n    onClick: Function as PropType<(type: ButtonTypes) => void>\n  },\n  setup(props) {\n    const handleClick = () => {\n      if (!props.disabled) {\n        props.onClick?.(props.type)\n      }\n    }\n\n    return {\n      handleClick\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      disabled,\n      type,\n      vertical,\n      rtl,\n      theme,\n      themeOverrides,\n      handleClick\n    } = this\n\n    const isNext = type === 'next'\n    const showRightIcon = vertical ? isNext : rtl ? !isNext : isNext\n\n    return (\n      <NButton\n        text\n        disabled={disabled}\n        size=\"small\"\n        theme={theme}\n        themeOverrides={themeOverrides}\n        onClick={handleClick}\n        class={[\n          `${mergedClsPrefix}-tabs-scroll-button`,\n          !vertical\n          && type === 'prev'\n          && `${mergedClsPrefix}-tabs-scroll-button--start`,\n          !vertical\n          && type === 'next'\n          && `${mergedClsPrefix}-tabs-scroll-button--end`,\n          vertical\n          && type === 'prev'\n          && `${mergedClsPrefix}-tabs-scroll-button--up`,\n          vertical\n          && type === 'next'\n          && `${mergedClsPrefix}-tabs-scroll-button--down`\n        ]}\n      >\n        {{\n          icon: () => (\n            <NBaseIcon\n              clsPrefix={mergedClsPrefix}\n              style={vertical ? { transform: 'rotate(90deg)' } : undefined}\n            >\n              {{\n                default: () =>\n                  showRightIcon ? <ArrowRightIcon /> : <ArrowLeftIcon />\n              }}\n            </NBaseIcon>\n          )\n        }}\n      </NButton>\n    )\n  }\n})\n","import type {\n  ComponentPublicInstance,\n  CSSProperties,\n  ExtractPropTypes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { VXScrollInst } from 'vueuc'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { TabsTheme, TabsThemeOverrides } from '../styles'\nimport type {\n  Addable,\n  OnBeforeLeave,\n  OnClose,\n  OnCloseImpl,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  TabsInst,\n  TabsType\n} from './interface'\nimport type { TabsSize } from './public-types'\nimport type { tabPaneProps } from './TabPane'\nimport { throttle as _throttle } from 'lodash-es'\nimport { getPadding } from 'seemly'\nimport { onFontsReady, useCompitable, useMergedState } from 'vooks'\nimport {\n  cloneVNode,\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  nextTick,\n  onMounted,\n  provide,\n  ref,\n  toRef,\n  TransitionGroup,\n  vShow,\n  watch,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VResizeObserver, VXScroll } from 'vueuc'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { useRtl } from '../../_mixins/use-rtl'\nimport {\n  call,\n  createKey,\n  flatten,\n  resolveWrappedSlot,\n  warnOnce\n} from '../../_utils'\nimport { tabsLight } from '../styles'\nimport { tabsInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport Tab from './Tab'\nimport TabsButton from './TabsButton'\n\n// Fix vue-tsc error\nconst throttle: <T>(f: T, t: number) => T = _throttle\n\ntype TabPaneProps = ExtractPropTypes<typeof tabPaneProps> & {\n  'display-directive': 'if' | 'show' | 'show:lazy'\n}\n\nexport const tabsProps = {\n  ...(useTheme.props as ThemeProps<TabsTheme, TabsThemeOverrides>),\n  value: [String, Number] as PropType<string | number>,\n  defaultValue: [String, Number] as PropType<string | number>,\n  trigger: {\n    type: String as PropType<'click' | 'hover'>,\n    default: 'click'\n  },\n  type: {\n    type: String as PropType<TabsType>,\n    default: 'bar'\n  },\n  closable: Boolean,\n  justifyContent: String as PropType<\n    | 'space-between'\n    | 'space-around'\n    | 'space-evenly'\n    | 'center'\n    | 'start'\n    | 'end'\n  >,\n  size: String as PropType<TabsSize>,\n  placement: {\n    type: String as PropType<\n      'top' | 'right' | 'bottom' | 'left' | 'start' | 'end'\n    >,\n    default: 'top'\n  },\n  tabStyle: [String, Object] as PropType<string | CSSProperties>,\n  tabClass: String,\n  addTabStyle: [String, Object] as PropType<string | CSSProperties>,\n  addTabClass: String,\n  barWidth: Number,\n  paneClass: String,\n  paneStyle: [String, Object] as PropType<string | CSSProperties>,\n  paneWrapperClass: String,\n  paneWrapperStyle: [String, Object] as PropType<string | CSSProperties>,\n  addable: [Boolean, Object] as PropType<Addable>,\n  tabsPadding: {\n    type: Number,\n    default: 0\n  },\n  animated: Boolean,\n  onBeforeLeave: Function as PropType<OnBeforeLeave>,\n  onAdd: Function as PropType<() => void>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onClose: [Function, Array] as PropType<MaybeArray<OnClose>>,\n  // deprecated\n  labelSize: String as PropType<TabsSize>,\n  activeName: [String, Number] as PropType<string | number>,\n  onActiveNameChange: [Function, Array] as PropType<\n    MaybeArray<(value: string & number) => void>\n  >,\n  showScrollButton: Boolean,\n  centerActiveTab: Boolean\n} as const\n\nexport type TabsProps = ExtractPublicPropTypes<typeof tabsProps>\n\nexport interface TabsSlots {\n  default?: () => VNode[]\n  prefix?: () => VNode[]\n  suffix?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Tabs',\n  props: tabsProps,\n  slots: Object as SlotsType<TabsSlots>,\n  setup(props, { slots }) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.labelSize !== undefined) {\n          warnOnce(\n            'tabs',\n            '`label-size` is deprecated, please use `size` instead.'\n          )\n        }\n        if (props.activeName !== undefined) {\n          warnOnce(\n            'tabs',\n            '`active-name` is deprecated, please use `value` instead.'\n          )\n        }\n        if (props.onActiveNameChange !== undefined) {\n          warnOnce(\n            'tabs',\n            '`on-active-name-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n      })\n    }\n\n    const {\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef,\n      mergedRtlRef\n    } = useConfig(props)\n    const rtlEnabledRef = useRtl('Tabs', mergedRtlRef, mergedClsPrefixRef)\n    const mergedPlacementRef = computed(() => {\n      const { placement } = props\n      if (placement === 'start') {\n        return rtlEnabledRef?.value ? 'right' : 'left'\n      }\n      if (placement === 'end') {\n        return rtlEnabledRef?.value ? 'left' : 'right'\n      }\n      return placement\n    })\n    const themeRef = useTheme(\n      'Tabs',\n      '-tabs',\n      style,\n      tabsLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const tabsElRef = ref<HTMLElement | null>(null)\n    const selfElRef = ref<HTMLElement | null>(null)\n    const barElRef = ref<HTMLElement | null>(null)\n    const scrollWrapperElRef = ref<HTMLElement | null>(null)\n    const addTabInstRef = ref<ComponentPublicInstance | null>(null)\n    const xScrollInstRef = ref<(VXScrollInst & ComponentPublicInstance) | null>(\n      null\n    )\n    const yScrollElRef = ref<HTMLElement | null>(null)\n\n    const startReachedRef = ref(true)\n    const endReachedRef = ref(true)\n\n    const compitableSizeRef = useCompitable(props, ['labelSize', 'size'])\n    const mergedSizeRef = computed(() => {\n      if (compitableSizeRef.value)\n        return compitableSizeRef.value\n\n      const configSize = mergedComponentPropsRef?.value?.Tabs?.size\n      if (configSize)\n        return configSize\n\n      return 'medium'\n    })\n    const compitableValueRef = useCompitable(props, ['activeName', 'value'])\n    const uncontrolledValueRef = ref(\n      compitableValueRef.value\n      ?? props.defaultValue\n      ?? (slots.default\n        ? ((flatten((slots as any).default() as VNodeChild[])[0] as any)\n            ?.props\n            ?.name as string | number)\n        : null)\n    )\n    const mergedValueRef = useMergedState(\n      compitableValueRef,\n      uncontrolledValueRef\n    )\n\n    const tabChangeIdRef = { id: 0 }\n\n    const tabWrapperStyleRef = computed(() => {\n      if (!props.justifyContent || props.type === 'card')\n        return undefined\n      return {\n        display: 'flex',\n        justifyContent: props.justifyContent\n      }\n    })\n\n    watch(mergedValueRef, () => {\n      tabChangeIdRef.id = 0\n      updateCurrentBarStyle()\n      void nextTick(() => {\n        updateCurrentScrollPosition()\n      })\n    })\n\n    function getCurrentEl(): HTMLElement | null {\n      const { value } = mergedValueRef\n      if (value === null)\n        return null\n      const tabEl = tabsElRef.value?.querySelector(`[data-name=\"${value}\"]`)\n      return tabEl as HTMLElement | null\n    }\n    function updateBarStyle(tabEl: HTMLElement): void {\n      if (props.type === 'card')\n        return\n      const { value: barEl } = barElRef\n      if (!barEl)\n        return\n      const barIsHide = barEl.style.opacity === '0'\n      if (tabEl) {\n        const disabledClassName = `${mergedClsPrefixRef.value}-tabs-bar--disabled`\n        const { barWidth } = props\n        const placement = mergedPlacementRef.value\n        if (tabEl.dataset.disabled === 'true') {\n          barEl.classList.add(disabledClassName)\n        }\n        else {\n          barEl.classList.remove(disabledClassName)\n        }\n        if (['top', 'bottom'].includes(placement)) {\n          clearBarStyle(['top', 'maxHeight', 'height'])\n          if (typeof barWidth === 'number' && tabEl.offsetWidth >= barWidth) {\n            const offsetDiffLeft\n              = Math.floor((tabEl.offsetWidth - barWidth) / 2) + tabEl.offsetLeft\n            barEl.style.left = `${offsetDiffLeft}px`\n            barEl.style.maxWidth = `${barWidth}px`\n          }\n          else {\n            barEl.style.left = `${tabEl.offsetLeft}px`\n            barEl.style.maxWidth = `${tabEl.offsetWidth}px`\n          }\n          barEl.style.width = '8192px'\n          if (barIsHide) {\n            barEl.style.transition = 'none'\n          }\n          void barEl.offsetWidth\n          if (barIsHide) {\n            barEl.style.transition = ''\n            barEl.style.opacity = '1'\n          }\n        }\n        else {\n          clearBarStyle(['left', 'maxWidth', 'width'])\n          if (typeof barWidth === 'number' && tabEl.offsetHeight >= barWidth) {\n            const offsetDiffTop\n              = Math.floor((tabEl.offsetHeight - barWidth) / 2) + tabEl.offsetTop\n            barEl.style.top = `${offsetDiffTop}px`\n            barEl.style.maxHeight = `${barWidth}px`\n          }\n          else {\n            barEl.style.top = `${tabEl.offsetTop}px`\n            barEl.style.maxHeight = `${tabEl.offsetHeight}px`\n          }\n          barEl.style.height = '8192px'\n          if (barIsHide) {\n            barEl.style.transition = 'none'\n          }\n          void barEl.offsetHeight\n          if (barIsHide) {\n            barEl.style.transition = ''\n            barEl.style.opacity = '1'\n          }\n        }\n      }\n    }\n    function hideBarStyle(): void {\n      if (props.type === 'card')\n        return\n      const { value: barEl } = barElRef\n      if (!barEl)\n        return\n      barEl.style.opacity = '0'\n    }\n    function clearBarStyle(styleProps: string[]): void {\n      const { value: barEl } = barElRef\n      if (!barEl)\n        return\n      for (const prop of styleProps) {\n        barEl.style[prop as any] = ''\n      }\n    }\n    function updateCurrentBarStyle(): void {\n      if (props.type === 'card')\n        return\n      const tabEl = getCurrentEl()\n      if (tabEl) {\n        updateBarStyle(tabEl)\n      }\n      else {\n        hideBarStyle()\n      }\n    }\n\n    function scrollToElement(\n      scrollContainer: HTMLElement,\n      targetElement: HTMLElement,\n      isHorizontal: boolean,\n      centerActiveTab: boolean\n    ) {\n      // Geometry + scrollBy stays correct under RTL scrollLeft variants\n      const containerRect = scrollContainer.getBoundingClientRect()\n      const targetRect = targetElement.getBoundingClientRect()\n      const start = isHorizontal ? 'left' : 'top'\n      const end = isHorizontal ? 'right' : 'bottom'\n      let delta = 0\n      if (centerActiveTab) {\n        delta\n          = (targetRect[start] + targetRect[end]) / 2\n            - (containerRect[start] + containerRect[end]) / 2\n      }\n      else if (targetRect[start] < containerRect[start]) {\n        delta = targetRect[start] - containerRect[start]\n      }\n      else if (targetRect[end] > containerRect[end]) {\n        delta = targetRect[end] - containerRect[end]\n      }\n      if (delta !== 0) {\n        scrollContainer.scrollBy({\n          [start]: delta,\n          behavior: 'smooth'\n        })\n      }\n    }\n\n    function updateCurrentScrollPosition(): void {\n      const isHorizontal = ['top', 'bottom'].includes(mergedPlacementRef.value)\n      const tabEl = getCurrentEl()\n      if (!tabEl)\n        return\n      if (isHorizontal) {\n        const scrollWrapperEl: HTMLElement | undefined\n          = xScrollInstRef.value?.$el\n        if (!scrollWrapperEl)\n          return\n        scrollToElement(\n          scrollWrapperEl,\n          tabEl,\n          isHorizontal,\n          props.centerActiveTab\n        )\n      }\n      else {\n        const { value: yScrollInst } = yScrollElRef\n        if (!yScrollInst)\n          return\n        scrollToElement(yScrollInst, tabEl, isHorizontal, props.centerActiveTab)\n      }\n    }\n\n    const tabsPaneWrapperRef = ref<HTMLElement | null>(null)\n    let fromHeight = 0\n    let hangingTransition: (() => void) | null = null\n    function onAnimationBeforeLeave(el: HTMLElement): void {\n      const tabsPaneWrapperEl = tabsPaneWrapperRef.value\n      if (tabsPaneWrapperEl) {\n        fromHeight = el.getBoundingClientRect().height\n        const fromHeightPx = `${fromHeight}px`\n        const applyFromStyle = (): void => {\n          tabsPaneWrapperEl.style.height = fromHeightPx\n          tabsPaneWrapperEl.style.maxHeight = fromHeightPx\n        }\n        if (!hangingTransition) {\n          hangingTransition = applyFromStyle\n        }\n        else {\n          applyFromStyle()\n          hangingTransition()\n          hangingTransition = null\n        }\n      }\n    }\n    function onAnimationEnter(el: HTMLElement): void {\n      const tabsPaneWrapperEl = tabsPaneWrapperRef.value\n      if (tabsPaneWrapperEl) {\n        const targetHeight = el.getBoundingClientRect().height\n        const applyTargetStyle = (): void => {\n          void document.body.offsetHeight\n          tabsPaneWrapperEl.style.maxHeight = `${targetHeight}px`\n          tabsPaneWrapperEl.style.height = `${Math.max(\n            fromHeight,\n            targetHeight\n          )}px`\n        }\n        if (!hangingTransition) {\n          hangingTransition = applyTargetStyle\n        }\n        else {\n          hangingTransition()\n          hangingTransition = null\n          applyTargetStyle()\n        }\n      }\n    }\n    function onAnimationAfterEnter(): void {\n      const tabsPaneWrapperEl = tabsPaneWrapperRef.value\n      if (tabsPaneWrapperEl) {\n        tabsPaneWrapperEl.style.maxHeight = ''\n        tabsPaneWrapperEl.style.height = ''\n        const { paneWrapperStyle } = props\n        if (typeof paneWrapperStyle === 'string') {\n          tabsPaneWrapperEl.style.cssText = paneWrapperStyle\n        }\n        else if (paneWrapperStyle) {\n          const { maxHeight, height } = paneWrapperStyle\n          if (maxHeight !== undefined) {\n            tabsPaneWrapperEl.style.maxHeight = maxHeight as string\n          }\n          if (height !== undefined) {\n            tabsPaneWrapperEl.style.height = height as string\n          }\n        }\n      }\n    }\n\n    const renderNameListRef: { value: Array<string | number> } = { value: [] }\n    const animationDirectionRef = ref<'next' | 'prev'>('next')\n    function activateTab(panelName: string | number): void {\n      const currentValue = mergedValueRef.value\n      let dir: 'next' | 'prev' = 'next'\n      for (const name of renderNameListRef.value) {\n        if (name === currentValue) {\n          break\n        }\n        if (name === panelName) {\n          dir = 'prev'\n          break\n        }\n      }\n      animationDirectionRef.value = dir\n      doUpdateValue(panelName)\n    }\n    function doUpdateValue(panelName: string | number): void {\n      const {\n        onActiveNameChange,\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue\n      } = props\n      if (onActiveNameChange) {\n        call(onActiveNameChange as OnUpdateValueImpl, panelName)\n      }\n      if (onUpdateValue)\n        call(onUpdateValue as OnUpdateValueImpl, panelName)\n      if (_onUpdateValue)\n        call(_onUpdateValue as OnUpdateValueImpl, panelName)\n      uncontrolledValueRef.value = panelName\n    }\n    function handleClose(panelName: string | number): void {\n      const { onClose } = props\n      if (onClose)\n        call(onClose as OnCloseImpl, panelName)\n    }\n\n    function handleButtonClick(type: string): void {\n      if (['top', 'bottom'].includes(mergedPlacementRef.value)) {\n        const { value: xScrollInst } = xScrollInstRef\n        if (!xScrollInst)\n          return\n        const el = xScrollInst.$el as HTMLElement | undefined\n        if (!el)\n          return\n        const offsetWidth = el.offsetWidth\n        const rtl = !!rtlEnabledRef?.value\n        const delta = type === 'next' ? offsetWidth : -offsetWidth\n        el.scrollBy({\n          left: rtl ? -delta : delta,\n          behavior: 'smooth'\n        })\n      }\n      else {\n        const { value: yScrollInst } = yScrollElRef\n        if (!yScrollInst)\n          return\n        const offsetHeight = yScrollInst.offsetHeight\n        const top\n          = type === 'next'\n            ? yScrollInst.scrollTop + offsetHeight\n            : yScrollInst.scrollTop - offsetHeight\n        yScrollInst.scrollTo({\n          top,\n          left: 0,\n          behavior: 'smooth'\n        })\n      }\n    }\n\n    let firstTimeUpdatePosition = true\n    function updateBarPositionInstantly(): void {\n      const { value: barEl } = barElRef\n      if (!barEl)\n        return\n      if (firstTimeUpdatePosition)\n        firstTimeUpdatePosition = false\n      const disableTransitionClassName = 'transition-disabled'\n      barEl.classList.add(disableTransitionClassName)\n      updateCurrentBarStyle()\n      // here we don't need to force layout after update bar style\n      // since deriveScrollShadow will force layout\n      barEl.classList.remove(disableTransitionClassName)\n    }\n\n    const segmentCapsuleElRef = ref<HTMLElement | null>(null)\n\n    function updateSegmentPosition({\n      transitionDisabled\n    }: {\n      transitionDisabled: boolean\n    }): void {\n      const tabsEl = tabsElRef.value\n      if (!tabsEl)\n        return\n      if (transitionDisabled)\n        tabsEl.classList.add('transition-disabled')\n      const activeTabEl = getCurrentEl()\n      if (activeTabEl && segmentCapsuleElRef.value) {\n        // move segment capsule to match the position of the active tab\n        segmentCapsuleElRef.value.style.width = `${activeTabEl.offsetWidth}px`\n        segmentCapsuleElRef.value.style.height = `${activeTabEl.offsetHeight}px`\n        segmentCapsuleElRef.value.style.transform = `translate(${activeTabEl.offsetLeft}px, ${activeTabEl.offsetTop}px)`\n        if (transitionDisabled) {\n          void segmentCapsuleElRef.value.offsetWidth\n        }\n      }\n      if (transitionDisabled) {\n        tabsEl.classList.remove('transition-disabled')\n      }\n    }\n\n    watch([mergedValueRef], () => {\n      if (props.type === 'segment') {\n        void nextTick(() => {\n          updateSegmentPosition({\n            transitionDisabled: false\n          })\n        })\n      }\n    })\n\n    onMounted(() => {\n      if (props.type === 'segment') {\n        updateSegmentPosition({\n          transitionDisabled: true\n        })\n      }\n    })\n\n    let memorizedWidth = 0\n    function _handleNavResize(entry: ResizeObserverEntry): void {\n      if (entry.contentRect.width === 0 && entry.contentRect.height === 0) {\n        return\n      }\n      if (memorizedWidth === entry.contentRect.width) {\n        return\n      }\n      memorizedWidth = entry.contentRect.width\n      const { type } = props\n      if (type === 'line' || type === 'bar') {\n        if (\n          firstTimeUpdatePosition\n          || props.justifyContent?.startsWith('space')\n        ) {\n          updateBarPositionInstantly()\n        }\n      }\n      if (type !== 'segment') {\n        deriveScrollShadow(getScrollEl())\n      }\n    }\n    const handleNavResize: (entry: ResizeObserverEntry) => void = throttle(\n      _handleNavResize,\n      64\n    )\n    function updateIndicatorPositionInstantly(): void {\n      const { type } = props\n      if (type === 'line' || type === 'bar') {\n        updateBarPositionInstantly()\n      }\n      else if (type === 'segment') {\n        updateSegmentPosition({\n          transitionDisabled: true\n        })\n      }\n    }\n\n    watch([() => props.justifyContent, () => props.size], () => {\n      void nextTick(() => {\n        if (props.type === 'line' || props.type === 'bar') {\n          updateBarPositionInstantly()\n        }\n      })\n    })\n\n    watch([mergedPlacementRef, () => rtlEnabledRef?.value], () => {\n      void nextTick(() => {\n        updateIndicatorPositionInstantly()\n        deriveScrollShadow(getScrollEl(), { instantly: true })\n      })\n    })\n\n    watch(\n      () => props.type,\n      () => {\n        void nextTick(() => {\n          const selfEl = selfElRef.value\n          if (!selfEl)\n            return\n          selfEl.classList.add('transition-disabled')\n          updateIndicatorPositionInstantly()\n          void selfEl.offsetWidth\n          selfEl.classList.remove('transition-disabled')\n        })\n      }\n    )\n\n    const addTabFixedRef = ref(false)\n    function _handleTabsResize(entry: ResizeObserverEntry): void {\n      const {\n        target,\n        contentRect: { width, height }\n      } = entry\n      const containerWidth = target.parentElement!.parentElement!.offsetWidth\n      const containerHeight = target.parentElement!.parentElement!.offsetHeight\n      const placement = mergedPlacementRef.value\n      if (!addTabFixedRef.value) {\n        if (placement === 'top' || placement === 'bottom') {\n          if (containerWidth < width) {\n            addTabFixedRef.value = true\n          }\n        }\n        else {\n          if (containerHeight < height) {\n            addTabFixedRef.value = true\n          }\n        }\n      }\n      else {\n        const { value: addTabInst } = addTabInstRef\n        if (!addTabInst)\n          return\n        if (placement === 'top' || placement === 'bottom') {\n          if (\n            containerWidth - width\n            > (addTabInst.$el as HTMLElement).offsetWidth\n          ) {\n            addTabFixedRef.value = false\n          }\n        }\n        else {\n          if (\n            containerHeight - height\n            > (addTabInst.$el as HTMLElement).offsetHeight\n          ) {\n            addTabFixedRef.value = false\n          }\n        }\n      }\n      deriveScrollShadow(\n        (xScrollInstRef.value?.$el as undefined | HTMLElement) || null\n      )\n    }\n    const handleTabsResize: (entry: ResizeObserverEntry) => void = throttle(\n      _handleTabsResize,\n      64\n    )\n\n    function handleAdd(): void {\n      const { onAdd } = props\n      if (onAdd)\n        onAdd()\n    }\n\n    const isOverflowRef = ref(false)\n    function getScrollEl(): HTMLElement | null {\n      const placement = mergedPlacementRef.value\n      return (\n        (placement === 'top' || placement === 'bottom'\n          ? (xScrollInstRef.value?.$el as HTMLElement | undefined)\n          : yScrollElRef.value) || null\n      )\n    }\n    function deriveScrollShadow(\n      el: HTMLElement | null,\n      options: { instantly: boolean } = { instantly: false }\n    ): void {\n      if (!el)\n        return\n      const wrapperEl = options.instantly ? scrollWrapperElRef.value : null\n      if (wrapperEl) {\n        wrapperEl.classList.add('transition-disabled')\n      }\n      // prevent scroll position from being 0\n      const SCROLL_POSITION_EPSILON = 1\n      const placement = mergedPlacementRef.value\n      if (placement === 'top' || placement === 'bottom') {\n        const { scrollLeft, scrollWidth, offsetWidth } = el\n        // RTL may use negative scrollLeft\n        const scrolled = Math.abs(scrollLeft)\n        startReachedRef.value = scrolled <= SCROLL_POSITION_EPSILON\n        endReachedRef.value\n          = scrolled + offsetWidth >= scrollWidth - SCROLL_POSITION_EPSILON\n        isOverflowRef.value\n          = offsetWidth < scrollWidth - SCROLL_POSITION_EPSILON\n      }\n      else {\n        const { scrollTop, scrollHeight, offsetHeight } = el\n        startReachedRef.value = scrollTop <= SCROLL_POSITION_EPSILON\n        endReachedRef.value\n          = scrollTop + offsetHeight >= scrollHeight - SCROLL_POSITION_EPSILON\n        isOverflowRef.value\n          = offsetHeight < scrollHeight - SCROLL_POSITION_EPSILON\n      }\n      if (wrapperEl) {\n        void wrapperEl.offsetWidth\n        wrapperEl.classList.remove('transition-disabled')\n      }\n    }\n\n    const handleScroll: (e: Event) => void = throttle((e: Event) => {\n      deriveScrollShadow(e.target as HTMLElement)\n    }, 64)\n    provide(tabsInjectionKey, {\n      triggerRef: toRef(props, 'trigger'),\n      tabStyleRef: toRef(props, 'tabStyle'),\n      tabClassRef: toRef(props, 'tabClass'),\n      addTabStyleRef: toRef(props, 'addTabStyle'),\n      addTabClassRef: toRef(props, 'addTabClass'),\n      paneClassRef: toRef(props, 'paneClass'),\n      paneStyleRef: toRef(props, 'paneStyle'),\n      mergedClsPrefixRef,\n      typeRef: toRef(props, 'type'),\n      closableRef: toRef(props, 'closable'),\n      valueRef: mergedValueRef,\n      tabChangeIdRef,\n      onBeforeLeaveRef: toRef(props, 'onBeforeLeave'),\n      activateTab,\n      handleClose,\n      handleAdd\n    })\n    onFontsReady(() => {\n      updateCurrentBarStyle()\n      updateCurrentScrollPosition()\n    })\n\n    // avoid useless rerender\n    watchEffect(() => {\n      const { value: el } = scrollWrapperElRef\n      if (!el)\n        return\n      const { value: clsPrefix } = mergedClsPrefixRef\n      const shadowStartClass = `${clsPrefix}-tabs-nav-scroll-wrapper--shadow-start`\n      const shadowEndClass = `${clsPrefix}-tabs-nav-scroll-wrapper--shadow-end`\n      if (startReachedRef.value) {\n        el.classList.remove(shadowStartClass)\n      }\n      else {\n        el.classList.add(shadowStartClass)\n      }\n      if (endReachedRef.value) {\n        el.classList.remove(shadowEndClass)\n      }\n      else {\n        el.classList.add(shadowEndClass)\n      }\n    })\n\n    const exposedMethods: TabsInst = {\n      syncBarPosition: () => {\n        updateCurrentBarStyle()\n      },\n      scrollToCurrentTab: () => {\n        updateCurrentScrollPosition()\n      }\n    }\n\n    const handleSegmentResize = (): void => {\n      updateSegmentPosition({\n        transitionDisabled: true\n      })\n    }\n\n    const cssVarsRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const { type } = props\n      const typeSuffix = (\n        {\n          card: 'Card',\n          bar: 'Bar',\n          line: 'Line',\n          segment: 'Segment'\n        } as const\n      )[type]\n      const sizeType = `${size}${typeSuffix}` as const\n      const {\n        self: {\n          barColor,\n          closeIconColor,\n          closeIconColorHover,\n          closeIconColorPressed,\n          tabColor,\n          tabBorderColor,\n          paneTextColor,\n          tabFontWeight,\n          tabBorderRadius,\n          tabFontWeightActive,\n          colorSegment,\n          fontWeightStrong,\n          tabColorSegment,\n          closeSize,\n          closeIconSize,\n          closeColorHover,\n          closeColorPressed,\n          closeBorderRadius,\n          [createKey('panePadding', size)]: panePadding,\n          [createKey('tabPadding', sizeType)]: tabPadding,\n          [createKey('tabPaddingVertical', sizeType)]: tabPaddingVertical,\n          [createKey('tabGap', sizeType)]: tabGap,\n          [createKey('tabGap', `${sizeType}Vertical`)]: tabGapVertical,\n          [createKey('tabTextColor', type)]: tabTextColor,\n          [createKey('tabTextColorActive', type)]: tabTextColorActive,\n          [createKey('tabTextColorHover', type)]: tabTextColorHover,\n          [createKey('tabTextColorDisabled', type)]: tabTextColorDisabled,\n          [createKey('tabFontSize', size)]: tabFontSize\n        },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color-segment': colorSegment,\n        '--n-bar-color': barColor,\n        '--n-tab-font-size': tabFontSize,\n        '--n-tab-text-color': tabTextColor,\n        '--n-tab-text-color-active': tabTextColorActive,\n        '--n-tab-text-color-disabled': tabTextColorDisabled,\n        '--n-tab-text-color-hover': tabTextColorHover,\n        '--n-pane-text-color': paneTextColor,\n        '--n-tab-border-color': tabBorderColor,\n        '--n-tab-border-radius': tabBorderRadius,\n        '--n-close-size': closeSize,\n        '--n-close-icon-size': closeIconSize,\n        '--n-close-color-hover': closeColorHover,\n        '--n-close-color-pressed': closeColorPressed,\n        '--n-close-border-radius': closeBorderRadius,\n        '--n-close-icon-color': closeIconColor,\n        '--n-close-icon-color-hover': closeIconColorHover,\n        '--n-close-icon-color-pressed': closeIconColorPressed,\n        '--n-tab-color': tabColor,\n        '--n-tab-font-weight': tabFontWeight,\n        '--n-tab-font-weight-active': tabFontWeightActive,\n        '--n-tab-padding': tabPadding,\n        '--n-tab-padding-vertical': tabPaddingVertical,\n        '--n-tab-gap': tabGap,\n        '--n-tab-gap-vertical': tabGapVertical,\n        '--n-pane-padding-left': getPadding(panePadding, 'left'),\n        '--n-pane-padding-right': getPadding(panePadding, 'right'),\n        '--n-pane-padding-top': getPadding(panePadding, 'top'),\n        '--n-pane-padding-bottom': getPadding(panePadding, 'bottom'),\n        '--n-font-weight-strong': fontWeightStrong,\n        '--n-tab-color-segment': tabColorSegment\n      }\n    })\n\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'tabs',\n          computed(() => {\n            return `${mergedSizeRef.value[0]}${props.type[0]}`\n          }),\n          cssVarsRef,\n          props\n        )\n      : undefined\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedValue: mergedValueRef,\n      renderedNames: new Set<NonNullable<TabPaneProps['name']>>(),\n      segmentCapsuleElRef,\n      tabsPaneWrapperRef,\n      tabsElRef,\n      selfElRef,\n      barElRef,\n      // 1. avoid unexpected type expansion when build es output\n      //    $watch will introduce an onCleanUp with local node_modules path\n      // 2. reduce dts: avoid expanding component instance types\n      addTabInstRef: addTabInstRef as unknown,\n      xScrollInstRef: xScrollInstRef as unknown,\n      scrollWrapperElRef,\n      addTabFixed: addTabFixedRef,\n      tabWrapperStyle: tabWrapperStyleRef,\n      handleNavResize,\n      mergedSize: mergedSizeRef,\n      handleScroll,\n      handleTabsResize,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      animationDirection: animationDirectionRef,\n      renderNameListRef,\n      yScrollElRef,\n      handleSegmentResize,\n      onAnimationBeforeLeave,\n      onAnimationEnter,\n      onAnimationAfterEnter,\n      onRender: themeClassHandle?.onRender,\n      startReachedRef,\n      endReachedRef,\n      isOverflow: isOverflowRef,\n      handleButtonClick,\n      mergedTheme: themeRef,\n      rtlEnabled: rtlEnabledRef,\n      mergedPlacement: mergedPlacementRef,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      type,\n      mergedPlacement: placement,\n      addTabFixed,\n      addable,\n      mergedSize,\n      renderNameListRef,\n      onRender,\n      paneWrapperClass,\n      paneWrapperStyle,\n      startReachedRef,\n      endReachedRef,\n      isOverflow,\n      showScrollButton,\n      handleButtonClick,\n      mergedTheme,\n      rtlEnabled,\n      $slots: { default: defaultSlot, prefix: prefixSlot, suffix: suffixSlot }\n    } = this\n\n    onRender?.()\n\n    const tabPaneChildren = defaultSlot\n      ? flatten(defaultSlot()).filter((v) => {\n          return (v.type as any).__TAB_PANE__ === true\n        })\n      : []\n    const tabChildren = defaultSlot\n      ? flatten(defaultSlot()).filter((v) => {\n          return (v.type as any).__TAB__ === true\n        })\n      : []\n    const showPane = !tabChildren.length\n    const isCard = type === 'card'\n    const isSegment = type === 'segment'\n    const mergedJustifyContent = !isCard && !isSegment && this.justifyContent\n    renderNameListRef.value = []\n    const scrollContent = (): JSX.Element => {\n      const tabs = (\n        <div\n          style={this.tabWrapperStyle}\n          class={`${mergedClsPrefix}-tabs-wrapper`}\n        >\n          {mergedJustifyContent ? null : (\n            <div\n              class={`${mergedClsPrefix}-tabs-scroll-padding`}\n              style={\n                placement === 'top' || placement === 'bottom'\n                  ? { width: `${this.tabsPadding}px` }\n                  : { height: `${this.tabsPadding}px` }\n              }\n            />\n          )}\n          {showPane\n            ? tabPaneChildren.map((tabPaneVNode: any, index: number) => {\n                renderNameListRef.value.push(\n                  tabPaneVNode.props.name as string | number\n                )\n                return justifyTabDynamicProps(\n                  <Tab\n                    {...tabPaneVNode.props}\n                    internalCreatedByPane={true}\n                    internalLeftPadded={\n                      index !== 0\n                      && (!mergedJustifyContent\n                        || mergedJustifyContent === 'center'\n                        || mergedJustifyContent === 'start'\n                        || mergedJustifyContent === 'end')\n                    }\n                  >\n                    {tabPaneVNode.children\n                      ? {\n                          default: tabPaneVNode.children.tab\n                        }\n                      : undefined}\n                  </Tab>\n                )\n              })\n            : tabChildren.map((tabVNode: any, index: number) => {\n                renderNameListRef.value.push(\n                  tabVNode.props.name as string | number\n                )\n                if (index !== 0 && !mergedJustifyContent) {\n                  return justifyTabDynamicProps(\n                    createLeftPaddedTabVNode(tabVNode as VNode)\n                  )\n                }\n                else {\n                  return justifyTabDynamicProps(tabVNode as VNode)\n                }\n              })}\n          {!addTabFixed && addable && isCard\n            ? createAddTag(\n                addable,\n                (showPane ? tabPaneChildren.length : tabChildren.length) !== 0\n              )\n            : null}\n          {mergedJustifyContent ? null : (\n            <div\n              class={`${mergedClsPrefix}-tabs-scroll-padding`}\n              style={{ width: `${this.tabsPadding}px` }}\n            />\n          )}\n          {isCard ? null : (\n            <div ref=\"barElRef\" class={`${mergedClsPrefix}-tabs-bar`} />\n          )}\n        </div>\n      )\n      return (\n        <div\n          ref=\"tabsElRef\"\n          class={`${mergedClsPrefix}-tabs-nav-scroll-content`}\n        >\n          {isCard && addable ? (\n            <VResizeObserver onResize={this.handleTabsResize}>\n              {{\n                default: () => tabs\n              }}\n            </VResizeObserver>\n          ) : (\n            tabs\n          )}\n          {isCard ? <div class={`${mergedClsPrefix}-tabs-pad`} /> : null}\n        </div>\n      )\n    }\n    const resolvedPlacement = isSegment ? 'top' : placement\n    return (\n      <div\n        ref=\"selfElRef\"\n        class={[\n          `${mergedClsPrefix}-tabs`,\n          this.themeClass,\n          `${mergedClsPrefix}-tabs--${type}-type`,\n          `${mergedClsPrefix}-tabs--${mergedSize}-size`,\n          mergedJustifyContent && `${mergedClsPrefix}-tabs--flex`,\n          `${mergedClsPrefix}-tabs--${resolvedPlacement}`,\n          rtlEnabled && `${mergedClsPrefix}-tabs--rtl`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div\n          class={[\n            // the class should be applied here since it's possible\n            // to make tabs nested in tabs, style may influence each\n            // other. adding a class will make it easy to write the\n            // style.\n            `${mergedClsPrefix}-tabs-nav--${type}-type`,\n            `${mergedClsPrefix}-tabs-nav--${resolvedPlacement}`,\n            `${mergedClsPrefix}-tabs-nav`\n          ]}\n        >\n          {resolveWrappedSlot(\n            prefixSlot,\n            children =>\n              children && (\n                <div class={`${mergedClsPrefix}-tabs-nav__prefix`}>\n                  {children}\n                </div>\n              )\n          )}\n\n          {isSegment ? (\n            <VResizeObserver onResize={this.handleSegmentResize}>\n              {{\n                default: () => (\n                  <div class={`${mergedClsPrefix}-tabs-rail`} ref=\"tabsElRef\">\n                    <div\n                      class={`${mergedClsPrefix}-tabs-capsule`}\n                      ref=\"segmentCapsuleElRef\"\n                    >\n                      <div class={`${mergedClsPrefix}-tabs-wrapper`}>\n                        <div class={`${mergedClsPrefix}-tabs-tab`} />\n                      </div>\n                    </div>\n                    {showPane\n                      ? tabPaneChildren.map(\n                          (tabPaneVNode: any, index: number) => {\n                            renderNameListRef.value.push(\n                              tabPaneVNode.props.name as string | number\n                            )\n                            return (\n                              <Tab\n                                {...tabPaneVNode.props}\n                                internalCreatedByPane={true}\n                                internalLeftPadded={index !== 0}\n                              >\n                                {tabPaneVNode.children\n                                  ? {\n                                      default: tabPaneVNode.children.tab\n                                    }\n                                  : undefined}\n                              </Tab>\n                            )\n                          }\n                        )\n                      : tabChildren.map((tabVNode: any, index: number) => {\n                          renderNameListRef.value.push(\n                            tabVNode.props.name as string | number\n                          )\n                          if (index === 0) {\n                            return tabVNode\n                          }\n                          else {\n                            return createLeftPaddedTabVNode(tabVNode as VNode)\n                          }\n                        })}\n                  </div>\n                )\n              }}\n            </VResizeObserver>\n          ) : (\n            <>\n              {showScrollButton && isOverflow && (\n                <TabsButton\n                  mergedClsPrefix={mergedClsPrefix}\n                  type=\"prev\"\n                  vertical={\n                    resolvedPlacement === 'left'\n                    || resolvedPlacement === 'right'\n                  }\n                  disabled={startReachedRef}\n                  rtl={!!rtlEnabled}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                  onClick={handleButtonClick}\n                />\n              )}\n\n              <VResizeObserver onResize={this.handleNavResize}>\n                {{\n                  default: () => (\n                    <div\n                      class={`${mergedClsPrefix}-tabs-nav-scroll-wrapper`}\n                      ref=\"scrollWrapperElRef\"\n                    >\n                      {['top', 'bottom'].includes(resolvedPlacement) ? (\n                        <VXScroll\n                          ref=\"xScrollInstRef\"\n                          onScroll={this.handleScroll}\n                        >\n                          {{\n                            default: scrollContent\n                          }}\n                        </VXScroll>\n                      ) : (\n                        <div\n                          class={`${mergedClsPrefix}-tabs-nav-y-scroll`}\n                          onScroll={this.handleScroll}\n                          ref=\"yScrollElRef\"\n                        >\n                          {scrollContent()}\n                        </div>\n                      )}\n                    </div>\n                  )\n                }}\n              </VResizeObserver>\n              {showScrollButton && isOverflow && (\n                <TabsButton\n                  mergedClsPrefix={mergedClsPrefix}\n                  type=\"next\"\n                  vertical={\n                    resolvedPlacement === 'left'\n                    || resolvedPlacement === 'right'\n                  }\n                  disabled={endReachedRef}\n                  rtl={!!rtlEnabled}\n                  theme={mergedTheme.peers.Button}\n                  themeOverrides={mergedTheme.peerOverrides.Button}\n                  onClick={handleButtonClick}\n                />\n              )}\n            </>\n          )}\n          {addTabFixed && addable && isCard\n            ? createAddTag(addable, true)\n            : null}\n          {resolveWrappedSlot(\n            suffixSlot,\n            children =>\n              children && (\n                <div class={`${mergedClsPrefix}-tabs-nav__suffix`}>\n                  {children}\n                </div>\n              )\n          )}\n        </div>\n        {showPane\n          && (this.animated\n            && (resolvedPlacement === 'top' || resolvedPlacement === 'bottom') ? (\n                <div\n                  ref=\"tabsPaneWrapperRef\"\n                  style={paneWrapperStyle}\n                  class={[`${mergedClsPrefix}-tabs-pane-wrapper`, paneWrapperClass]}\n                >\n                  {filterMapTabPanes(\n                    tabPaneChildren,\n                    this.mergedValue,\n                    this.renderedNames,\n                    this.onAnimationBeforeLeave,\n                    this.onAnimationEnter,\n                    this.onAnimationAfterEnter,\n                    this.animationDirection\n                  )}\n                </div>\n              ) : (\n                filterMapTabPanes(\n                  tabPaneChildren,\n                  this.mergedValue,\n                  this.renderedNames\n                )\n              ))}\n      </div>\n    )\n  }\n})\n\nfunction filterMapTabPanes(\n  tabPaneVNodes: VNode[],\n  value: string | number | null,\n  renderedNames: Set<string | number>,\n  onBeforeLeave?: (el: HTMLElement) => void,\n  onEnter?: (el: HTMLElement) => void,\n  onAfterEnter?: () => void,\n  animationDirection?: 'next' | 'prev'\n): VNode | VNode[] {\n  const children: VNode[] = []\n  tabPaneVNodes.forEach((vNode) => {\n    const {\n      name,\n      displayDirective,\n      'display-directive': _displayDirective\n    } = vNode.props as TabPaneProps\n    const matchDisplayDirective = (\n      directive: TabPaneProps['displayDirective']\n    ): boolean =>\n      displayDirective === directive || _displayDirective === directive\n    const show = value === name\n    if (vNode.key !== undefined) {\n      vNode.key = name\n    }\n    if (\n      show\n      || matchDisplayDirective('show')\n      || (matchDisplayDirective('show:lazy') && renderedNames.has(name))\n    ) {\n      if (!renderedNames.has(name)) {\n        renderedNames.add(name)\n      }\n      const useVShow = !matchDisplayDirective('if')\n      children.push(useVShow ? withDirectives(vNode, [[vShow, show]]) : vNode)\n    }\n  })\n  if (!animationDirection) {\n    return children\n  }\n  return (\n    <TransitionGroup\n      name={`${animationDirection}-transition`}\n      onBeforeLeave={onBeforeLeave as (el: Element) => void}\n      onEnter={onEnter as (el: Element) => void}\n      onAfterEnter={onAfterEnter}\n    >\n      {{ default: () => children }}\n    </TransitionGroup>\n  )\n}\n\nfunction createAddTag(addable: Addable, internalLeftPadded: boolean): VNode {\n  return (\n    <Tab\n      ref=\"addTabInstRef\"\n      key=\"__addable\"\n      name=\"__addable\"\n      internalCreatedByPane\n      internalAddable\n      internalLeftPadded={internalLeftPadded}\n      disabled={typeof addable === 'object' && addable.disabled}\n    />\n  )\n}\n\nfunction createLeftPaddedTabVNode(tabVNode: VNode): VNode {\n  const modifiedVNode = cloneVNode(tabVNode)\n  if (modifiedVNode.props) {\n    modifiedVNode.props.internalLeftPadded = true\n  }\n  else {\n    modifiedVNode.props = {\n      internalLeftPadded: true\n    }\n  }\n  return modifiedVNode\n}\n\nfunction justifyTabDynamicProps(\n  tabVNode: {\n    dynamicProps?: string[]\n  } & VNode\n): VNode {\n  if (Array.isArray(tabVNode.dynamicProps)) {\n    if (!tabVNode.dynamicProps.includes('internalLeftPadded')) {\n      tabVNode.dynamicProps.push('internalLeftPadded')\n    }\n  }\n  else {\n    tabVNode.dynamicProps = ['internalLeftPadded']\n  }\n  return tabVNode\n}\n","import { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-text-color\n// --n-title-font-weight\n// --n-title-text-color\nexport default cB('thing', `\n  display: flex;\n  transition: color .3s var(--n-bezier);\n  font-size: var(--n-font-size);\n  color: var(--n-text-color);\n`, [\n  cB('thing-avatar', `\n    margin-right: 12px;\n    margin-top: 2px;\n  `),\n  cB('thing-avatar-header-wrapper', `\n    display: flex;\n    flex-wrap: nowrap;\n  `, [\n    cB('thing-header-wrapper', `\n      flex: 1;\n    `)\n  ]),\n  cB('thing-main', `\n    flex-grow: 1;\n  `, [\n    cB('thing-header', `\n      display: flex;\n      margin-bottom: 4px;\n      justify-content: space-between;\n      align-items: center;\n    `, [\n      cE('title', `\n        font-size: 16px;\n        font-weight: var(--n-title-font-weight);\n        transition: color .3s var(--n-bezier);\n        color: var(--n-title-text-color);\n      `)\n    ]),\n    cE('description', [\n      c('&:not(:last-child)', `\n        margin-bottom: 4px;\n      `)\n    ]),\n    cE('content', [\n      c('&:not(:first-child)', `\n        margin-top: 12px;\n      `)\n    ]),\n    cE('footer', [\n      c('&:not(:first-child)', `\n        margin-top: 12px;\n      `)\n    ]),\n    cE('action', [\n      c('&:not(:first-child)', `\n        margin-top: 12px;\n      `)\n    ])\n  ])\n])\n","import type { CSSProperties, PropType, SlotsType, VNode } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ThingTheme, ThingThemeOverrides } from '../styles'\nimport { computed, defineComponent, Fragment, h } from 'vue'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport { thingLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const thingProps = {\n  ...(useTheme.props as ThemeProps<ThingTheme, ThingThemeOverrides>),\n  title: String,\n  titleExtra: String,\n  description: String,\n  descriptionClass: String,\n  descriptionStyle: [String, Object] as PropType<string | CSSProperties>,\n  content: String,\n  contentClass: String,\n  contentStyle: [String, Object] as PropType<string | CSSProperties>,\n  contentIndented: Boolean\n}\n\nexport type ThingProps = ExtractPublicPropTypes<typeof thingProps>\n\nexport interface ThingSlots {\n  action?: () => VNode[]\n  avatar?: () => VNode[]\n  default?: () => VNode[]\n  description?: () => VNode[]\n  footer?: () => VNode[]\n  'header-extra'?: () => VNode[]\n  header?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Thing',\n  props: thingProps,\n  slots: Object as SlotsType<ThingSlots>,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Thing',\n      '-thing',\n      style,\n      thingLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const rtlEnabledRef = useRtl('Thing', mergedRtlRef, mergedClsPrefixRef)\n    const cssVarsRef = computed(() => {\n      const {\n        self: { titleTextColor, textColor, titleFontWeight, fontSize },\n        common: { cubicBezierEaseInOut }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-text-color': textColor,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-title-text-color': titleTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('thing', undefined, cssVarsRef, props)\n      : undefined\n\n    return () => {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const rtlEnabled = rtlEnabledRef ? rtlEnabledRef.value : false\n      themeClassHandle?.onRender?.()\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-thing`,\n            themeClassHandle?.themeClass,\n            rtlEnabled && `${mergedClsPrefix}-thing--rtl`\n          ]}\n          style={\n            inlineThemeDisabled\n              ? undefined\n              : (cssVarsRef.value as CSSProperties)\n          }\n        >\n          {slots.avatar && props.contentIndented ? (\n            <div class={`${mergedClsPrefix}-thing-avatar`}>\n              {slots.avatar()}\n            </div>\n          ) : null}\n          <div class={`${mergedClsPrefix}-thing-main`}>\n            {!props.contentIndented\n              && (slots.header\n                || props.title\n                || slots['header-extra']\n                || props.titleExtra\n                || slots.avatar) ? (\n                  <div class={`${mergedClsPrefix}-thing-avatar-header-wrapper`}>\n                    {slots.avatar ? (\n                      <div class={`${mergedClsPrefix}-thing-avatar`}>\n                        {slots.avatar()}\n                      </div>\n                    ) : null}\n                    {slots.header\n                      || props.title\n                      || slots['header-extra']\n                      || props.titleExtra ? (\n                          <div class={`${mergedClsPrefix}-thing-header-wrapper`}>\n                            <div class={`${mergedClsPrefix}-thing-header`}>\n                              {slots.header || props.title ? (\n                                <div class={`${mergedClsPrefix}-thing-header__title`}>\n                                  {slots.header ? slots.header() : props.title}\n                                </div>\n                              ) : null}\n                              {slots['header-extra'] || props.titleExtra ? (\n                                <div class={`${mergedClsPrefix}-thing-header__extra`}>\n                                  {slots['header-extra']\n                                    ? slots['header-extra']()\n                                    : props.titleExtra}\n                                </div>\n                              ) : null}\n                            </div>\n                            {slots.description || props.description ? (\n                              <div\n                                class={[\n                                  `${mergedClsPrefix}-thing-main__description`,\n                                  props.descriptionClass\n                                ]}\n                                style={props.descriptionStyle}\n                              >\n                                {slots.description\n                                  ? slots.description()\n                                  : props.description}\n                              </div>\n                            ) : null}\n                          </div>\n                        ) : null}\n                  </div>\n                ) : (\n                  <>\n                    {slots.header\n                      || props.title\n                      || slots['header-extra']\n                      || props.titleExtra ? (\n                          <div class={`${mergedClsPrefix}-thing-header`}>\n                            {slots.header || props.title ? (\n                              <div class={`${mergedClsPrefix}-thing-header__title`}>\n                                {slots.header ? slots.header() : props.title}\n                              </div>\n                            ) : null}\n                            {slots['header-extra'] || props.titleExtra ? (\n                              <div class={`${mergedClsPrefix}-thing-header__extra`}>\n                                {slots['header-extra']\n                                  ? slots['header-extra']()\n                                  : props.titleExtra}\n                              </div>\n                            ) : null}\n                          </div>\n                        ) : null}\n                    {slots.description || props.description ? (\n                      <div\n                        class={[\n                          `${mergedClsPrefix}-thing-main__description`,\n                          props.descriptionClass\n                        ]}\n                        style={props.descriptionStyle}\n                      >\n                        {slots.description\n                          ? slots.description()\n                          : props.description}\n                      </div>\n                    ) : null}\n                  </>\n                )}\n            {slots.default || props.content ? (\n              <div\n                class={[\n                  `${mergedClsPrefix}-thing-main__content`,\n                  props.contentClass\n                ]}\n                style={props.contentStyle}\n              >\n                {slots.default ? slots.default() : props.content}\n              </div>\n            ) : null}\n            {slots.footer ? (\n              <div class={`${mergedClsPrefix}-thing-main__footer`}>\n                {slots.footer()}\n              </div>\n            ) : null}\n            {slots.action ? (\n              <div class={`${mergedClsPrefix}-thing-main__action`}>\n                {slots.action()}\n              </div>\n            ) : null}\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import type { Locale } from 'date-fns'\nimport type { PropType } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { format, formatDistanceStrict, fromUnixTime } from 'date-fns'\nimport { formatInTimeZone } from 'date-fns-tz'\nimport { computed, createTextVNode, defineComponent, h } from 'vue'\nimport { useLocale } from '../../_mixins'\n\nexport const timeProps = {\n  time: {\n    type: [Number, Date] as PropType<number | Date>,\n    default: undefined // For unix or non unix mode, it should be different default value\n  },\n  type: {\n    type: String as PropType<'relative' | 'date' | 'datetime'>,\n    default: 'datetime'\n  },\n  to: {\n    type: [Number, Date] as PropType<number | Date>,\n    default: undefined // the same as `time` prop\n  },\n  unix: Boolean,\n  format: String,\n  text: Boolean,\n  timeZone: String\n} as const\n\nexport type TimeProps = ExtractPublicPropTypes<typeof timeProps>\n\nexport default defineComponent({\n  name: 'Time',\n  props: timeProps,\n  setup(props) {\n    const now = Date.now()\n    const { localeRef, dateLocaleRef } = useLocale('Time')\n    const mergedFormatRef = computed(() => {\n      const { timeZone } = props\n      if (timeZone) {\n        return (\n          time: number | Date,\n          _format: string,\n          options: { locale: Locale }\n        ) => {\n          return formatInTimeZone(time, timeZone, _format, options)\n        }\n      }\n      return format\n    })\n    const dateFnsOptionsRef = computed(() => {\n      return {\n        locale: dateLocaleRef.value.locale\n      }\n    })\n    const mergedTimeRef = computed(() => {\n      const { time } = props\n      if (props.unix) {\n        if (time === undefined)\n          return now\n        return fromUnixTime(typeof time === 'number' ? time : time.valueOf())\n      }\n      return time ?? now\n    })\n    const mergedToRef = computed(() => {\n      const { to } = props\n      if (props.unix) {\n        if (to === undefined)\n          return now\n        return fromUnixTime(typeof to === 'number' ? to : to.valueOf())\n      }\n      return to ?? now\n    })\n    const renderedTimeRef = computed(() => {\n      if (props.format) {\n        return mergedFormatRef.value(\n          mergedTimeRef.value,\n          props.format,\n          dateFnsOptionsRef.value\n        )\n      }\n      else if (props.type === 'date') {\n        return mergedFormatRef.value(\n          mergedTimeRef.value,\n          localeRef.value.dateFormat,\n          dateFnsOptionsRef.value\n        )\n      }\n      else if (props.type === 'datetime') {\n        return mergedFormatRef.value(\n          mergedTimeRef.value,\n          localeRef.value.dateTimeFormat,\n          dateFnsOptionsRef.value\n        )\n      }\n      else {\n        return formatDistanceStrict(mergedTimeRef.value, mergedToRef.value, {\n          addSuffix: true,\n          locale: dateLocaleRef.value.locale\n        })\n      }\n    })\n    return {\n      renderedTime: renderedTimeRef\n    }\n  },\n  render() {\n    return this.text\n      ? createTextVNode(this.renderedTime)\n      : h('time', [this.renderedTime])\n  }\n})\n","import { c, cB, cE, cM } from '../../../_utils/cssr'\n\nconst lineHeight = 1.25\n\n// vars:\n// --n-bezier\n// --n-circle-border\n// --n-content-font-size\n// --n-content-text-color\n// --n-line-color\n// --n-meta-text-color\n// --n-title-font-size\n// --n-title-font-weight\n// --n-title-margin\n// --n-title-text-color\n// --n-icon-size\nexport default cB('timeline', `\n  position: relative;\n  width: 100%;\n  display: flex;\n  flex-direction: column;\n  line-height: ${lineHeight};\n`, [\n  cM('horizontal', `\n    flex-direction: row;\n  `, [\n    c('>', [\n      cB('timeline-item', `\n        flex-shrink: 0;\n        padding-right: 40px;\n      `, [\n        cM('dashed-line-type', [\n          c('>', [\n            cB('timeline-item-timeline', [\n              cE('line', `\n                background-image: linear-gradient(90deg, var(--n-color-start), var(--n-color-start) 50%, transparent 50%, transparent 100%);\n                background-size: 10px 1px;\n              `)\n            ])\n          ])\n        ]),\n        c('>', [\n          cB('timeline-item-content', `\n          margin-top: calc(var(--n-icon-size) + 12px);\n          `, [\n            c('>', [\n              cE('meta', `\n                margin-top: 6px;\n                margin-bottom: unset;\n              `)\n            ])\n          ]),\n          cB('timeline-item-timeline', `\n            width: 100%;\n            height: calc(var(--n-icon-size) + 12px);\n          `, [\n            cE('line', `\n              left: var(--n-icon-size);\n              top: calc(var(--n-icon-size) / 2 - 1px);\n              right: 0px;\n              width: unset;\n              height: 2px;\n            `)\n          ])\n        ])\n      ])\n    ])\n  ]),\n  cM('right-placement', [\n    cB('timeline-item', [\n      cB('timeline-item-content', `\n        text-align: right;\n        margin-right: calc(var(--n-icon-size) + 12px);\n      `),\n      cB('timeline-item-timeline', `\n        width: var(--n-icon-size);\n        right: 0;\n      `)\n    ])\n  ]),\n  cM('left-placement', [\n    cB('timeline-item', [\n      cB('timeline-item-content', `\n        margin-left: calc(var(--n-icon-size) + 12px);\n      `),\n      cB('timeline-item-timeline', `\n        left: 0;\n      `)\n    ])\n  ]),\n  cB('timeline-item', `\n    position: relative;\n  `, [\n    c('&:last-child', [\n      cB('timeline-item-timeline', [\n        cE('line', `\n          display: none;\n        `)\n      ]),\n      cB('timeline-item-content', [\n        cE('meta', `\n          margin-bottom: 0;\n        `)\n      ])\n    ]),\n    cB('timeline-item-content', [\n      cE('title', `\n        margin: var(--n-title-margin);\n        font-size: var(--n-title-font-size);\n        transition: color .3s var(--n-bezier);\n        font-weight: var(--n-title-font-weight);\n        color: var(--n-title-text-color);\n      `),\n      cE('content', `\n        transition: color .3s var(--n-bezier);\n        font-size: var(--n-content-font-size);\n        color: var(--n-content-text-color);\n      `),\n      cE('meta', `\n        transition: color .3s var(--n-bezier);\n        font-size: 12px;\n        margin-top: 6px;\n        margin-bottom: 20px;\n        color: var(--n-meta-text-color);\n      `)\n    ]),\n    cM('dashed-line-type', [\n      cB('timeline-item-timeline', [\n        cE('line', `\n          --n-color-start: var(--n-line-color);\n          transition: --n-color-start .3s var(--n-bezier);\n          background-color: transparent;\n          background-image: linear-gradient(180deg, var(--n-color-start), var(--n-color-start) 50%, transparent 50%, transparent 100%);\n          background-size: 1px 10px;\n        `)\n      ])\n    ]),\n    cB('timeline-item-timeline', `\n      width: calc(var(--n-icon-size) + 12px);\n      position: absolute;\n      top: calc(var(--n-title-font-size) * ${lineHeight} / 2 - var(--n-icon-size) / 2);\n      height: 100%;\n    `, [\n      cE('circle', `\n        border: var(--n-circle-border);\n        transition:\n          background-color .3s var(--n-bezier),\n          border-color .3s var(--n-bezier);\n        width: var(--n-icon-size);\n        height: var(--n-icon-size);\n        border-radius: var(--n-icon-size);\n        box-sizing: border-box;\n      `),\n      cE('icon', `\n        color: var(--n-icon-color);\n        font-size: var(--n-icon-size);\n        height: var(--n-icon-size);\n        width: var(--n-icon-size);\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `),\n      cE('line', `\n        transition: background-color .3s var(--n-bezier);\n        position: absolute;\n        top: var(--n-icon-size);\n        left: calc(var(--n-icon-size) / 2 - 1px);\n        bottom: 0px;\n        width: 2px;\n        background-color: var(--n-line-color);\n      `)\n    ])\n  ])\n])\n","import type { ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MergedTheme, ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TimelineTheme, TimelineThemeOverrides } from '../styles'\nimport { defineComponent, h, provide } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { createInjectionKey } from '../../_utils'\nimport { timelineLight } from '../styles'\nimport style from './styles/index.cssr'\n\nexport const timelineProps = {\n  ...(useTheme.props as ThemeProps<TimelineTheme, TimelineThemeOverrides>),\n  horizontal: Boolean,\n  itemPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'left'\n  },\n  size: {\n    type: String as PropType<'medium' | 'large'>,\n    default: 'medium'\n  },\n  iconSize: Number\n} as const\n\nexport interface TimelineInjection {\n  props: ExtractPropTypes<typeof timelineProps>\n  mergedThemeRef: Ref<MergedTheme<TimelineTheme>>\n  mergedClsPrefixRef: Ref<string>\n}\nexport const timelineInjectionKey\n  = createInjectionKey<TimelineInjection>('n-timeline')\n\nexport type TimelineProps = ExtractPublicPropTypes<typeof timelineProps>\n\nexport default defineComponent({\n  name: 'Timeline',\n  props: timelineProps,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Timeline',\n      '-timeline',\n      style,\n      timelineLight,\n      props,\n      mergedClsPrefixRef\n    )\n    provide(timelineInjectionKey, {\n      props,\n      mergedThemeRef: themeRef,\n      mergedClsPrefixRef\n    })\n    return () => {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-timeline`,\n            props.horizontal && `${mergedClsPrefix}-timeline--horizontal`,\n            `${mergedClsPrefix}-timeline--${props.size}-size`,\n            !props.horizontal\n            && `${mergedClsPrefix}-timeline--${props.itemPlacement}-placement`\n          ]}\n        >\n          {slots.default?.()}\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, PropType, Ref, SlotsType, VNode } from 'vue'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { useConfig, useThemeClass } from '../../_mixins'\nimport {\n  createKey,\n  formatLength,\n  resolveSlot,\n  resolveWrappedSlot,\n  throwError,\n  useHoudini\n} from '../../_utils'\nimport { timelineInjectionKey } from './Timeline'\n\nexport const timelineItemProps = {\n  time: [String, Number] as PropType<string | number>,\n  title: String,\n  content: String,\n  color: String,\n  lineType: {\n    type: String as PropType<'default' | 'dashed'>,\n    default: 'default'\n  },\n  type: {\n    type: String as PropType<\n      'default' | 'success' | 'error' | 'warning' | 'info'\n    >,\n    default: 'default'\n  }\n}\n\nexport type TimelineItemProps = ExtractPublicPropTypes<typeof timelineItemProps>\n\nexport interface TimelineItemSlots {\n  default?: () => VNode[]\n  icon?: () => VNode[]\n  footer?: () => VNode[]\n  header?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'TimelineItem',\n  props: timelineItemProps,\n  slots: Object as SlotsType<TimelineItemSlots>,\n  setup(props) {\n    const NTimeline = inject(timelineInjectionKey)\n    if (!NTimeline) {\n      throwError(\n        'timeline-item',\n        '`n-timeline-item` must be placed inside `n-timeline`.'\n      )\n    }\n    useHoudini()\n    const { inlineThemeDisabled } = useConfig()\n    const cssVarsRef = computed(() => {\n      const {\n        props: { size, iconSize: iconSizeProp },\n        mergedThemeRef\n      } = NTimeline\n      const { type } = props\n      const {\n        self: {\n          titleTextColor,\n          contentTextColor,\n          metaTextColor,\n          lineColor,\n          titleFontWeight,\n          contentFontSize,\n          [createKey('iconSize', size)]: iconSize,\n          [createKey('titleMargin', size)]: titleMargin,\n          [createKey('titleFontSize', size)]: titleFontSize,\n          [createKey('circleBorder', type)]: circleBorder,\n          [createKey('iconColor', type)]: iconColor\n        },\n        common: { cubicBezierEaseInOut }\n      } = mergedThemeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-circle-border': circleBorder,\n        '--n-icon-color': iconColor,\n        '--n-content-font-size': contentFontSize,\n        '--n-content-text-color': contentTextColor,\n        '--n-line-color': lineColor,\n        '--n-meta-text-color': metaTextColor,\n        '--n-title-font-size': titleFontSize,\n        '--n-title-font-weight': titleFontWeight,\n        '--n-title-margin': titleMargin,\n        '--n-title-text-color': titleTextColor,\n        '--n-icon-size': formatLength(iconSizeProp) || iconSize\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'timeline-item',\n          computed(() => {\n            const {\n              props: { size, iconSize: iconSizeProp }\n            } = NTimeline\n            const { type } = props\n            return `${size[0]}${iconSizeProp || 'a'}${type[0]}`\n          }),\n          cssVarsRef,\n          NTimeline.props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: NTimeline.mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix, color, onRender, $slots } = this\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-timeline-item`,\n          this.themeClass,\n          `${mergedClsPrefix}-timeline-item--${this.type}-type`,\n          `${mergedClsPrefix}-timeline-item--${this.lineType}-line-type`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div class={`${mergedClsPrefix}-timeline-item-timeline`}>\n          <div class={`${mergedClsPrefix}-timeline-item-timeline__line`} />\n          {resolveWrappedSlot($slots.icon, (children) => {\n            return children ? (\n              <div\n                class={`${mergedClsPrefix}-timeline-item-timeline__icon`}\n                style={{ color }}\n              >\n                {children}\n              </div>\n            ) : (\n              <div\n                class={`${mergedClsPrefix}-timeline-item-timeline__circle`}\n                style={{ borderColor: color }}\n              />\n            )\n          })}\n        </div>\n        <div class={`${mergedClsPrefix}-timeline-item-content`}>\n          {resolveWrappedSlot($slots.header, (children) => {\n            const mergedChildren = children || this.title\n            if (mergedChildren) {\n              return (\n                <div class={`${mergedClsPrefix}-timeline-item-content__title`}>\n                  {children || this.title}\n                </div>\n              )\n            }\n            return null\n          })}\n          <div class={`${mergedClsPrefix}-timeline-item-content__content`}>\n            {resolveSlot($slots.default, () => [this.content])}\n          </div>\n          <div class={`${mergedClsPrefix}-timeline-item-content__meta`}>\n            {resolveSlot($slots.footer, () => [this.time])}\n          </div>\n        </div>\n      </div>\n    )\n  }\n})\n","import type { Ref, VNodeChild } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { TransferTheme } from '../styles'\nimport { createInjectionKey } from '../../_utils'\n\nexport type OptionValue = string | number\nexport interface Option {\n  label: string\n  value: OptionValue\n  disabled?: boolean\n}\n\nexport type Filter = (\n  pattern: string,\n  option: Option,\n  from: 'source' | 'target'\n) => boolean\n\nexport interface RenderLabelProps {\n  option: Option\n}\n\nexport type TransferRenderTargetLabel = (props: RenderLabelProps) => VNodeChild\nexport type TransferRenderSourceLabel = (props: RenderLabelProps) => VNodeChild\n\nexport interface RenderListProps {\n  onCheck: (checkedValueList: OptionValue[]) => void\n  checkedOptions: Option[]\n  pattern: string\n}\n\nexport type TransferRenderSourceList = (props: RenderListProps) => VNodeChild\n\nexport interface TransferInjection {\n  targetValueSetRef: Ref<Set<OptionValue>>\n  mergedClsPrefixRef: Ref<string>\n  disabledRef: Ref<boolean>\n  mergedThemeRef: Ref<MergedTheme<TransferTheme>>\n  targetOptionsRef: Ref<Option[]>\n  canNotSelectAnythingRef: Ref<boolean>\n  canBeClearedRef: Ref<boolean>\n  allCheckedRef: Ref<boolean>\n  srcOptionsLengthRef: Ref<number>\n  handleItemCheck: (checked: boolean, value: OptionValue) => void\n  renderSourceLabelRef: Ref<TransferRenderSourceLabel | undefined>\n  renderTargetLabelRef: Ref<TransferRenderTargetLabel | undefined>\n  showSelectedRef: Ref<boolean>\n}\n\nexport const transferInjectionKey\n  = createInjectionKey<TransferInjection>('n-transfer')\n\nexport type OnUpdateValue = (value: OptionValue[]) => void\n","import { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\n// --n-close-size\n// --n-close-icon-size\n// --n-close-color-hover\n// --n-close-color-pressed\n// --n-close-icon-color\n// --n-close-icon-color-hover\n// --n-close-icon-color-pressed\nexport default cB('transfer', `\n  width: 100%;\n  font-size: var(--n-font-size);\n  height: 300px;\n  display: flex;\n  flex-wrap: nowrap;\n  word-break: break-word;\n`, [\n  cM('disabled', [\n    cB('transfer-list', [\n      cB('transfer-list-header', [\n        cE('title', `\n          color: var(--n-header-text-color-disabled);\n        `),\n        cE('extra', `\n          color: var(--n-header-extra-text-color-disabled);\n        `)\n      ])\n    ])\n  ]),\n  cB('transfer-list', `\n    flex: 1;\n    min-width: 0;\n    height: inherit;\n    display: flex;\n    flex-direction: column;\n    background-clip: padding-box;\n    position: relative;\n    transition: background-color .3s var(--n-bezier);\n    background-color: var(--n-list-color);\n  `, [\n    cM('source', `\n      border-top-left-radius: var(--n-border-radius);\n      border-bottom-left-radius: var(--n-border-radius);\n    `, [\n      cE('border', 'border-right: 1px solid var(--n-divider-color);')\n    ]),\n    cM('target', `\n      border-top-right-radius: var(--n-border-radius);\n      border-bottom-right-radius: var(--n-border-radius);\n    `, [\n      cE('border', 'border-left: none;')\n    ]),\n    cE('border', `\n      padding: 0 12px;\n      border: 1px solid var(--n-border-color);\n      transition: border-color .3s var(--n-bezier);\n      pointer-events: none;\n      border-radius: inherit;\n      position: absolute;\n      left: 0;\n      right: 0;\n      top: 0;\n      bottom: 0;\n    `),\n    cB('transfer-list-header', `\n      min-height: var(--n-header-height);\n      box-sizing: border-box;\n      display: flex;\n      padding: 12px 12px 10px 12px;\n      align-items: center;\n      background-clip: padding-box;\n      border-radius: inherit;\n      border-bottom-left-radius: 0;\n      border-bottom-right-radius: 0;\n      line-height: 1.5;\n      transition:\n        border-color .3s var(--n-bezier),\n        background-color .3s var(--n-bezier);\n    `, [\n      c('> *:not(:first-child)', `\n        margin-left: 8px;\n      `),\n      cE('title', `\n        flex: 1;\n        min-width: 0;\n        line-height: 1.5;\n        font-size: var(--n-header-font-size);\n        font-weight: var(--n-header-font-weight);\n        transition: color .3s var(--n-bezier);\n        color: var(--n-header-text-color);\n      `),\n      cE('button', `\n        position: relative;\n      `),\n      cE('extra', `\n        transition: color .3s var(--n-bezier);\n        font-size: var(--n-extra-font-size);\n        margin-right: 0;\n        white-space: nowrap;\n        color: var(--n-header-extra-text-color);\n      `)\n    ]),\n    cB('transfer-list-body', `\n      flex-basis: 0;\n      flex-grow: 1;\n      box-sizing: border-box;\n      position: relative;\n      display: flex;\n      flex-direction: column;\n      border-radius: inherit;\n      border-top-left-radius: 0;\n      border-top-right-radius: 0;\n    `, [\n      cB('transfer-filter', `\n        padding: 4px 12px 8px 12px;\n        box-sizing: border-box;\n        transition:\n          border-color .3s var(--n-bezier),\n          background-color .3s var(--n-bezier);\n      `),\n      cB('transfer-list-flex-container', `\n        flex: 1;\n        position: relative;\n      `, [\n        cB('scrollbar', `\n          position: absolute;\n          left: 0;\n          right: 0;\n          top: 0;\n          bottom: 0;\n          height: unset;\n        `),\n        cB('empty', `\n          position: absolute;\n          left: 50%;\n          top: 50%;\n          transform: translateY(-50%) translateX(-50%);\n        `),\n        cB('transfer-list-content', `\n          padding: 0;\n          margin: 0;\n          position: relative;\n        `, [\n          cB('transfer-list-item', `\n            padding: 0 12px;\n            min-height: var(--n-item-height);\n            display: flex;\n            align-items: center;\n            color: var(--n-item-text-color);\n            position: relative;\n            transition: color .3s var(--n-bezier);\n          `, [\n            cE('background', `\n              position: absolute;\n              left: 4px;\n              right: 4px;\n              top: 0;\n              bottom: 0;\n              border-radius: var(--n-border-radius);\n              transition: background-color .3s var(--n-bezier);\n            `),\n            cE('checkbox', `\n              position: relative;\n              margin-right: 8px;\n            `),\n            cE('close', `\n              opacity: 0;\n              pointer-events: none;\n              position: relative;\n              transition:\n                opacity .3s var(--n-bezier),\n                background-color .3s var(--n-bezier),\n                color .3s var(--n-bezier);\n            `),\n            cE('label', `\n              position: relative;\n              min-width: 0;\n              flex-grow: 1;\n            `),\n            cM('source', 'cursor: pointer;'),\n            cM('disabled', `\n              cursor: not-allowed;\n              color: var(--n-item-text-color-disabled);\n            `),\n            cNotM('disabled', [\n              c('&:hover', [\n                cE('background', 'background-color: var(--n-item-color-pending);'),\n                cE('close', `\n                  opacity: 1;\n                  pointer-events: all;\n                `)\n              ])\n            ])\n          ])\n        ])\n      ])\n    ])\n  ])\n])\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { SearchIcon } from '../../_internal/icons'\nimport { NInput } from '../../input'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'TransferFilter',\n  props: {\n    value: String,\n    placeholder: String,\n    disabled: Boolean,\n    onUpdateValue: {\n      type: Function as PropType<(value: string | null) => void>,\n      required: true\n    }\n  },\n  setup() {\n    const { mergedThemeRef, mergedClsPrefixRef } = inject(transferInjectionKey)!\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef\n    }\n  },\n  render() {\n    const { mergedTheme, mergedClsPrefix } = this\n    return (\n      <div class={`${mergedClsPrefix}-transfer-filter`}>\n        <NInput\n          value={this.value}\n          onUpdateValue={this.onUpdateValue}\n          disabled={this.disabled}\n          placeholder={this.placeholder}\n          theme={mergedTheme.peers.Input}\n          themeOverrides={mergedTheme.peerOverrides.Input}\n          clearable\n          size=\"small\"\n        >\n          {{\n            'clear-icon-placeholder': () => (\n              <NBaseIcon clsPrefix={mergedClsPrefix}>\n                {{ default: () => <SearchIcon /> }}\n              </NBaseIcon>\n            )\n          }}\n        </NInput>\n      </div>\n    )\n  }\n})\n","import type { PropType, VNodeChild } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { useLocale } from '../../_mixins'\nimport { NButton } from '../../button'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'TransferHeader',\n  props: {\n    size: {\n      type: String as PropType<'small' | 'medium' | 'large'>,\n      required: true\n    },\n    selectAllText: String,\n    clearText: String,\n    source: Boolean,\n    onCheckedAll: Function as PropType<() => void>,\n    onClearAll: Function as PropType<() => void>,\n    title: [String, Function] as PropType<string | (() => VNodeChild)>\n  },\n  setup(props) {\n    const {\n      targetOptionsRef,\n      canNotSelectAnythingRef,\n      canBeClearedRef,\n      allCheckedRef,\n      mergedThemeRef,\n      disabledRef,\n      mergedClsPrefixRef,\n      srcOptionsLengthRef\n    } = inject(transferInjectionKey)!\n    const { localeRef } = useLocale('Transfer')\n    return () => {\n      const { source, onClearAll, onCheckedAll, selectAllText, clearText }\n        = props\n      const { value: mergedTheme } = mergedThemeRef\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const { value: locale } = localeRef\n      const buttonSize = props.size === 'large' ? 'small' : 'tiny'\n      const { title } = props\n      return (\n        <div class={`${mergedClsPrefix}-transfer-list-header`}>\n          {title && (\n            <div class={`${mergedClsPrefix}-transfer-list-header__title`}>\n              {typeof title === 'function' ? title() : title}\n            </div>\n          )}\n          {source && (\n            <NButton\n              class={`${mergedClsPrefix}-transfer-list-header__button`}\n              theme={mergedTheme.peers.Button}\n              themeOverrides={mergedTheme.peerOverrides.Button}\n              size={buttonSize}\n              tertiary\n              onClick={allCheckedRef.value ? onClearAll : onCheckedAll}\n              disabled={canNotSelectAnythingRef.value || disabledRef.value}\n            >\n              {{\n                default: () =>\n                  allCheckedRef.value\n                    ? clearText || locale.unselectAll\n                    : selectAllText || locale.selectAll\n              }}\n            </NButton>\n          )}\n          {!source && canBeClearedRef.value && (\n            <NButton\n              class={`${mergedClsPrefix}-transfer-list-header__button`}\n              theme={mergedTheme.peers.Button}\n              themeOverrides={mergedTheme.peerOverrides.Button}\n              size={buttonSize}\n              tertiary\n              onClick={onClearAll}\n              disabled={disabledRef.value}\n            >\n              {{\n                default: () => locale.clearAll\n              }}\n            </NButton>\n          )}\n          <div class={`${mergedClsPrefix}-transfer-list-header__extra`}>\n            {source\n              ? locale.total(srcOptionsLengthRef.value)\n              : locale.selected(targetOptionsRef.value.length)}\n          </div>\n        </div>\n      )\n    }\n  }\n})\n","import type { PropType } from 'vue'\nimport type { Option } from './interface'\nimport { useMemo } from 'vooks'\nimport { defineComponent, h, inject } from 'vue'\nimport { NBaseClose } from '../../_internal'\nimport { getTitleAttribute } from '../../_utils'\nimport { NCheckbox } from '../../checkbox'\nimport { transferInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NTransferListItem',\n  props: {\n    source: Boolean,\n    label: {\n      type: String,\n      required: true\n    },\n    value: {\n      type: [String, Number],\n      required: true\n    },\n    disabled: Boolean,\n    option: {\n      type: Object as PropType<Option>,\n      required: true\n    }\n  },\n  setup(props) {\n    const {\n      targetValueSetRef,\n      mergedClsPrefixRef,\n      mergedThemeRef,\n      handleItemCheck,\n      renderSourceLabelRef,\n      renderTargetLabelRef,\n      showSelectedRef\n    } = inject(transferInjectionKey)!\n    const checkedRef = useMemo(() => targetValueSetRef.value.has(props.value))\n    function handleClick(): void {\n      if (!props.disabled) {\n        handleItemCheck(!checkedRef.value, props.value)\n      }\n    }\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: mergedThemeRef,\n      checked: checkedRef,\n      showSelected: showSelectedRef,\n      renderSourceLabel: renderSourceLabelRef,\n      renderTargetLabel: renderTargetLabelRef,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      disabled,\n      mergedTheme,\n      mergedClsPrefix,\n      label,\n      checked,\n      source,\n      renderSourceLabel,\n      renderTargetLabel\n    } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-transfer-list-item`,\n          disabled && `${mergedClsPrefix}-transfer-list-item--disabled`,\n          source\n            ? `${mergedClsPrefix}-transfer-list-item--source`\n            : `${mergedClsPrefix}-transfer-list-item--target`\n        ]}\n        onClick={source ? this.handleClick : undefined}\n      >\n        <div class={`${mergedClsPrefix}-transfer-list-item__background`} />\n        {source && this.showSelected && (\n          <div class={`${mergedClsPrefix}-transfer-list-item__checkbox`}>\n            <NCheckbox\n              theme={mergedTheme.peers.Checkbox}\n              themeOverrides={mergedTheme.peerOverrides.Checkbox}\n              disabled={disabled}\n              checked={checked}\n            />\n          </div>\n        )}\n        <div\n          class={`${mergedClsPrefix}-transfer-list-item__label`}\n          title={getTitleAttribute(label)}\n        >\n          {source\n            ? renderSourceLabel\n              ? renderSourceLabel({\n                  option: this.option\n                })\n              : label\n            : renderTargetLabel\n              ? renderTargetLabel({\n                  option: this.option\n                })\n              : label}\n        </div>\n        {!source && !disabled && (\n          <NBaseClose\n            focusable={false}\n            class={`${mergedClsPrefix}-transfer-list-item__close`}\n            clsPrefix={mergedClsPrefix}\n            onClick={this.handleClick}\n          />\n        )}\n      </div>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { VirtualListInst } from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { Option } from './interface'\nimport { computed, defineComponent, h, inject, ref } from 'vue'\nimport { VirtualList } from 'vueuc'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig } from '../../_mixins'\nimport { NEmpty } from '../../empty'\nimport { transferInjectionKey } from './interface'\nimport NTransferListItem from './TransferListItem'\n\nexport default defineComponent({\n  name: 'TransferList',\n  props: {\n    virtualScroll: {\n      type: Boolean,\n      required: true\n    },\n    itemSize: {\n      type: Number,\n      required: true\n    },\n    options: {\n      type: Array as PropType<Option[]>,\n      required: true\n    },\n    disabled: {\n      type: Boolean,\n      required: true\n    },\n    source: Boolean\n  },\n  setup() {\n    const { mergedThemeRef, mergedClsPrefixRef } = inject(transferInjectionKey)!\n    const { mergedComponentPropsRef } = useConfig()\n    const scrollerInstRef = ref<ScrollbarInst | null>(null)\n    const vlInstRef = ref<VirtualListInst | null>(null)\n    const mergedRenderEmptyRef = computed(() => {\n      return mergedComponentPropsRef?.value?.Transfer?.renderEmpty\n    })\n    function syncVLScroller(): void {\n      scrollerInstRef.value?.sync()\n    }\n    function scrollContainer(): HTMLElement | null {\n      const { value } = vlInstRef\n      if (!value)\n        return null\n      const { listElRef } = value\n      return listElRef\n    }\n    function scrollContent(): HTMLElement | null {\n      const { value } = vlInstRef\n      if (!value)\n        return null\n      const { itemsElRef } = value\n      return itemsElRef\n    }\n    return {\n      mergedTheme: mergedThemeRef,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      // reduce dts: string ref only, type unused in render\n      scrollerInstRef: scrollerInstRef as unknown,\n      vlInstRef: vlInstRef as unknown,\n      syncVLScroller,\n      scrollContainer,\n      scrollContent\n    }\n  },\n  render() {\n    const { mergedTheme, options } = this\n    if (options.length === 0) {\n      return (\n        this.mergedRenderEmpty?.() || (\n          <NEmpty\n            theme={mergedTheme.peers.Empty}\n            themeOverrides={mergedTheme.peerOverrides.Empty}\n          />\n        )\n      )\n    }\n    const { mergedClsPrefix, virtualScroll, source, disabled, syncVLScroller }\n      = this\n    return (\n      <NScrollbar\n        ref=\"scrollerInstRef\"\n        theme={mergedTheme.peers.Scrollbar}\n        themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n        container={virtualScroll ? this.scrollContainer : undefined}\n        content={virtualScroll ? this.scrollContent : undefined}\n      >\n        {{\n          default: () =>\n            virtualScroll ? (\n              <VirtualList\n                ref=\"vlInstRef\"\n                style={{ height: '100%' }}\n                class={`${mergedClsPrefix}-transfer-list-content`}\n                items={this.options}\n                itemSize={this.itemSize}\n                showScrollbar={false}\n                onResize={syncVLScroller}\n                onScroll={syncVLScroller}\n                keyField=\"value\"\n              >\n                {{\n                  default: ({ item }: { item: Option }) => {\n                    const { source, disabled } = this\n                    return (\n                      <NTransferListItem\n                        source={source}\n                        key={item.value}\n                        value={item.value}\n                        disabled={item.disabled || disabled}\n                        label={item.label}\n                        option={item}\n                      />\n                    )\n                  }\n                }}\n              </VirtualList>\n            ) : (\n              <div class={`${mergedClsPrefix}-transfer-list-content`}>\n                {options.map(option => (\n                  <NTransferListItem\n                    source={source}\n                    key={option.value}\n                    value={option.value}\n                    disabled={option.disabled || disabled}\n                    label={option.label}\n                    option={option}\n                  />\n                ))}\n              </div>\n            )\n        }}\n      </NScrollbar>\n    )\n  }\n})\n","import type { Filter, Option, OptionValue } from './interface'\nimport { useMergedState } from 'vooks'\nimport { computed, ref, toRef } from 'vue'\n\ninterface UseTransferDataProps {\n  defaultValue: OptionValue[] | null\n  value?: OptionValue[] | null\n  options: Option[]\n  filterable: boolean | undefined\n  sourceFilterable: boolean\n  targetFilterable: boolean\n  showSelected: boolean\n  filter: Filter\n}\n\nexport function useTransferData(props: UseTransferDataProps) {\n  const uncontrolledValueRef = ref(props.defaultValue)\n  const mergedValueRef = useMergedState(\n    toRef(props, 'value'),\n    uncontrolledValueRef\n  )\n\n  const optionsMapRef = computed(() => {\n    const map = new Map()\n    ;(props.options || []).forEach(opt => map.set(opt.value, opt))\n    return map as Map<OptionValue, Option>\n  })\n\n  const targetValueSetRef = computed(() => new Set(mergedValueRef.value || []))\n\n  const targetOptionsRef = computed(() => {\n    const optionMap = optionsMapRef.value\n    const targetOptions: Option[] = []\n    ;(mergedValueRef.value || []).forEach((v) => {\n      const option = optionMap.get(v)\n      if (option) {\n        targetOptions.push(option)\n      }\n    })\n    return targetOptions\n  })\n\n  const srcPatternRef = ref('')\n  const tgtPatternRef = ref('')\n\n  const mergedSrcFilterableRef = computed(() => {\n    return props.sourceFilterable || !!props.filterable\n  })\n\n  const filteredSrcOptionsRef = computed(() => {\n    const { showSelected, options, filter } = props\n    if (!mergedSrcFilterableRef.value) {\n      if (showSelected) {\n        return options\n      }\n      else {\n        return options.filter(\n          option => !targetValueSetRef.value.has(option.value)\n        )\n      }\n    }\n    return options.filter((option) => {\n      return (\n        filter(srcPatternRef.value, option, 'source')\n        && (showSelected || !targetValueSetRef.value.has(option.value))\n      )\n    })\n  })\n\n  const filteredTgtOptionsRef = computed(() => {\n    if (!props.targetFilterable)\n      return targetOptionsRef.value\n    const { filter } = props\n    return targetOptionsRef.value.filter(opt =>\n      filter(tgtPatternRef.value, opt, 'target')\n    )\n  })\n\n  const mergedValueSetRef = computed<Set<string | number>>(() => {\n    const { value } = mergedValueRef\n    if (value === null)\n      return new Set()\n    return new Set(value)\n  })\n\n  const valueSetForCheckAllRef = computed(() => {\n    const values = new Set<string | number>(mergedValueSetRef.value)\n    filteredSrcOptionsRef.value.forEach((option) => {\n      if (!option.disabled && !values.has(option.value)) {\n        values.add(option.value)\n      }\n    })\n    return values\n  })\n\n  const valueSetForUncheckAllRef = computed(() => {\n    const values = new Set<string | number>(mergedValueSetRef.value)\n    filteredSrcOptionsRef.value.forEach((option) => {\n      if (!option.disabled && values.has(option.value)) {\n        values.delete(option.value)\n      }\n    })\n    return values\n  })\n\n  const valueSetForClearRef = computed(() => {\n    const values = new Set<string | number>(mergedValueSetRef.value)\n    filteredTgtOptionsRef.value.forEach((option) => {\n      if (!option.disabled) {\n        values.delete(option.value)\n      }\n    })\n    return values\n  })\n\n  const canNotSelectAnythingRef = computed(() => {\n    return filteredSrcOptionsRef.value.every(option => option.disabled)\n  })\n\n  const allCheckedRef = computed(() => {\n    if (!filteredSrcOptionsRef.value.length) {\n      return false\n    }\n    const mergedValueSet = mergedValueSetRef.value\n    return filteredSrcOptionsRef.value.every(\n      option => option.disabled || mergedValueSet.has(option.value)\n    )\n  })\n\n  const canBeClearedRef = computed(() => {\n    return filteredTgtOptionsRef.value.some(option => !option.disabled)\n  })\n\n  function handleSrcFilterUpdateValue(value: string | null): void {\n    srcPatternRef.value = value ?? ''\n  }\n\n  function handleTgtFilterUpdateValue(value: string | null): void {\n    tgtPatternRef.value = value ?? ''\n  }\n\n  return {\n    uncontrolledValueRef,\n    mergedValueRef,\n    targetValueSetRef,\n    valueSetForCheckAllRef,\n    valueSetForUncheckAllRef,\n    valueSetForClearRef,\n    filteredTgtOptionsRef,\n    filteredSrcOptionsRef,\n    targetOptionsRef,\n    canNotSelectAnythingRef,\n    canBeClearedRef,\n    allCheckedRef,\n    srcPatternRef,\n    tgtPatternRef,\n    mergedSrcFilterableRef,\n    handleSrcFilterUpdateValue,\n    handleTgtFilterUpdateValue\n  }\n}\n","import type { CSSProperties, PropType, Ref, VNodeChild } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { TransferTheme, TransferThemeOverrides } from '../styles'\nimport type {\n  Filter,\n  OnUpdateValue,\n  Option,\n  OptionValue,\n  TransferRenderSourceLabel,\n  TransferRenderSourceList,\n  TransferRenderTargetLabel\n} from './interface'\nimport type { TransferSize } from './public-types'\nimport { depx } from 'seemly'\nimport { useIsMounted } from 'vooks'\nimport { computed, defineComponent, h, provide, toRef, watchEffect } from 'vue'\nimport { NScrollbar } from '../../_internal'\nimport { useConfig, useFormItem, useTheme } from '../../_mixins'\nimport { call, warnOnce } from '../../_utils'\nimport { createKey } from '../../_utils/cssr'\nimport { transferLight } from '../styles'\nimport { transferInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport NTransferFilter from './TransferFilter'\nimport NTransferHeader from './TransferHeader'\nimport NTransferList from './TransferList'\nimport { useTransferData } from './use-transfer-data'\n\nexport const transferProps = {\n  ...(useTheme.props as ThemeProps<TransferTheme, TransferThemeOverrides>),\n  value: Array as PropType<OptionValue[] | null>,\n  defaultValue: {\n    type: Array as PropType<OptionValue[] | null>,\n    default: null\n  },\n  options: {\n    type: Array as PropType<Option[]>,\n    default: () => []\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  virtualScroll: Boolean,\n  sourceTitle: [String, Function] as PropType<string | (() => VNodeChild)>,\n  selectAllText: String,\n  clearText: String,\n  targetTitle: [String, Function] as PropType<string | (() => VNodeChild)>,\n  filterable: {\n    type: Boolean,\n    default: undefined\n  },\n  sourceFilterable: Boolean,\n  targetFilterable: Boolean,\n  showSelected: {\n    type: Boolean,\n    default: true\n  },\n  sourceFilterPlaceholder: String,\n  targetFilterPlaceholder: String,\n  filter: {\n    type: Function as PropType<Filter>,\n    default: (pattern: string, option: Option) => {\n      if (!pattern)\n        return true\n      return ~`${option.label}`\n        .toLowerCase()\n        .indexOf(`${pattern}`.toLowerCase())\n    }\n  },\n  size: String as PropType<TransferSize>,\n  renderSourceLabel: Function as PropType<TransferRenderSourceLabel>,\n  renderTargetLabel: Function as PropType<TransferRenderTargetLabel>,\n  renderSourceList: Function as PropType<TransferRenderSourceList>,\n  renderTargetList: Function as PropType<TransferRenderSourceList>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  onChange: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>\n} as const\n\nexport type TransferProps = ExtractPublicPropTypes<typeof transferProps>\n\nexport default defineComponent({\n  name: 'Transfer',\n  props: transferProps,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.onChange !== undefined) {\n          warnOnce(\n            'transfer',\n            '`on-change` is deprecated, please use `on-update:value` instead.'\n          )\n        }\n        if (props.filterable !== undefined) {\n          warnOnce(\n            'transfer',\n            '`filterable` is deprecated, please use `source-filterable` or `target-filterable` instead.'\n          )\n        }\n      })\n    }\n    const { mergedClsPrefixRef, mergedComponentPropsRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Transfer',\n      '-transfer',\n      style,\n      transferLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const formItem = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as TransferSize\n        const configSize = mergedComponentPropsRef?.value?.Transfer?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const { mergedSizeRef, mergedDisabledRef } = formItem\n    const itemSizeRef = computed(() => {\n      const { value: size } = mergedSizeRef\n      const {\n        self: { [createKey('itemHeight', size)]: itemSize }\n      } = themeRef.value\n      return depx(itemSize)\n    })\n    const {\n      uncontrolledValueRef,\n      mergedValueRef,\n      targetValueSetRef,\n      valueSetForCheckAllRef,\n      valueSetForUncheckAllRef,\n      valueSetForClearRef,\n      filteredTgtOptionsRef,\n      filteredSrcOptionsRef,\n      targetOptionsRef,\n      canNotSelectAnythingRef,\n      canBeClearedRef,\n      allCheckedRef,\n      srcPatternRef,\n      tgtPatternRef,\n      mergedSrcFilterableRef,\n      handleSrcFilterUpdateValue,\n      handleTgtFilterUpdateValue\n    } = useTransferData(props)\n    function doUpdateValue(value: OptionValue[]): void {\n      const {\n        onUpdateValue,\n        'onUpdate:value': _onUpdateValue,\n        onChange\n      } = props\n      const { nTriggerFormInput, nTriggerFormChange } = formItem\n      if (onUpdateValue)\n        call(onUpdateValue, value)\n      if (_onUpdateValue)\n        call(_onUpdateValue, value)\n      if (onChange)\n        call(onChange, value)\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n\n    function handleSourceCheckAll(): void {\n      doUpdateValue([...valueSetForCheckAllRef.value])\n    }\n\n    function handleSourceUncheckAll(): void {\n      doUpdateValue([...valueSetForUncheckAllRef.value])\n    }\n\n    function handleTargetClearAll(): void {\n      doUpdateValue([...valueSetForClearRef.value])\n    }\n\n    function handleItemCheck(checked: boolean, optionValue: OptionValue): void {\n      if (checked) {\n        doUpdateValue((mergedValueRef.value || []).concat(optionValue))\n      }\n      else {\n        doUpdateValue(\n          (mergedValueRef.value || []).filter(v => v !== optionValue)\n        )\n      }\n    }\n\n    function handleChecked(optionValueList: OptionValue[]): void {\n      doUpdateValue(optionValueList)\n    }\n\n    provide(transferInjectionKey, {\n      targetValueSetRef,\n      mergedClsPrefixRef,\n      disabledRef: mergedDisabledRef,\n      mergedThemeRef: themeRef,\n      targetOptionsRef,\n      canNotSelectAnythingRef,\n      canBeClearedRef,\n      allCheckedRef,\n      srcOptionsLengthRef: computed(() => props.options.length),\n      handleItemCheck,\n      renderSourceLabelRef: toRef(props, 'renderSourceLabel'),\n      renderTargetLabelRef: toRef(props, 'renderTargetLabel'),\n      showSelectedRef: toRef(props, 'showSelected')\n    })\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedDisabled: mergedDisabledRef,\n      itemSize: itemSizeRef,\n      isMounted: useIsMounted(),\n      mergedTheme: themeRef,\n      filteredSrcOpts: filteredSrcOptionsRef,\n      filteredTgtOpts: filteredTgtOptionsRef,\n      srcPattern: srcPatternRef,\n      tgtPattern: tgtPatternRef,\n      mergedSize: mergedSizeRef,\n      mergedSrcFilterable: mergedSrcFilterableRef,\n      handleSrcFilterUpdateValue,\n      handleTgtFilterUpdateValue,\n      handleSourceCheckAll,\n      handleSourceUncheckAll,\n      handleTargetClearAll,\n      handleItemCheck,\n      handleChecked,\n      cssVars: computed(() => {\n        const { value: size } = mergedSizeRef\n        const {\n          common: { cubicBezierEaseInOut },\n          self: {\n            borderRadius,\n            borderColor,\n            listColor,\n            titleTextColor,\n            titleTextColorDisabled,\n            extraTextColor,\n            itemTextColor,\n            itemColorPending,\n            itemTextColorDisabled,\n            titleFontWeight,\n            closeColorHover,\n            closeColorPressed,\n            closeIconColor,\n            closeIconColorHover,\n            closeIconColorPressed,\n            closeIconSize,\n            closeSize,\n            dividerColor,\n            extraTextColorDisabled,\n            [createKey('extraFontSize', size)]: extraFontSize,\n            [createKey('fontSize', size)]: fontSize,\n            [createKey('titleFontSize', size)]: titleFontSize,\n            [createKey('itemHeight', size)]: itemHeight,\n            [createKey('headerHeight', size)]: headerHeight\n          }\n        } = themeRef.value\n        return {\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-border-color': borderColor,\n          '--n-border-radius': borderRadius,\n          '--n-extra-font-size': extraFontSize,\n          '--n-font-size': fontSize,\n          '--n-header-font-size': titleFontSize,\n          '--n-header-extra-text-color': extraTextColor,\n          '--n-header-extra-text-color-disabled': extraTextColorDisabled,\n          '--n-header-font-weight': titleFontWeight,\n          '--n-header-text-color': titleTextColor,\n          '--n-header-text-color-disabled': titleTextColorDisabled,\n          '--n-item-color-pending': itemColorPending,\n          '--n-item-height': itemHeight,\n          '--n-item-text-color': itemTextColor,\n          '--n-item-text-color-disabled': itemTextColorDisabled,\n          '--n-list-color': listColor,\n          '--n-header-height': headerHeight,\n          '--n-close-size': closeSize,\n          '--n-close-icon-size': closeIconSize,\n          '--n-close-color-hover': closeColorHover,\n          '--n-close-color-pressed': closeColorPressed,\n          '--n-close-icon-color': closeIconColor,\n          '--n-close-icon-color-hover': closeIconColorHover,\n          '--n-close-icon-color-pressed': closeIconColorPressed,\n          '--n-divider-color': dividerColor\n        }\n      }) as Ref<CSSProperties>\n    }\n  },\n  render() {\n    const {\n      mergedClsPrefix,\n      renderSourceList,\n      renderTargetList,\n      mergedTheme,\n      mergedSrcFilterable,\n      targetFilterable\n    } = this\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-transfer`,\n          this.mergedDisabled && `${mergedClsPrefix}-transfer--disabled`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        <div\n          class={`${mergedClsPrefix}-transfer-list ${mergedClsPrefix}-transfer-list--source`}\n        >\n          <NTransferHeader\n            source\n            selectAllText={this.selectAllText}\n            clearText={this.clearText}\n            title={this.sourceTitle}\n            onCheckedAll={this.handleSourceCheckAll}\n            onClearAll={this.handleSourceUncheckAll}\n            size={this.mergedSize}\n          />\n          <div class={`${mergedClsPrefix}-transfer-list-body`}>\n            {mergedSrcFilterable ? (\n              <NTransferFilter\n                onUpdateValue={this.handleSrcFilterUpdateValue}\n                value={this.srcPattern}\n                disabled={this.mergedDisabled}\n                placeholder={this.sourceFilterPlaceholder}\n              />\n            ) : null}\n            <div class={`${mergedClsPrefix}-transfer-list-flex-container`}>\n              {renderSourceList ? (\n                <NScrollbar\n                  theme={mergedTheme.peers.Scrollbar}\n                  themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n                >\n                  {{\n                    default: () =>\n                      renderSourceList({\n                        onCheck: this.handleChecked,\n                        checkedOptions: this.filteredTgtOpts,\n                        pattern: this.srcPattern\n                      })\n                  }}\n                </NScrollbar>\n              ) : (\n                <NTransferList\n                  source\n                  options={this.filteredSrcOpts}\n                  disabled={this.mergedDisabled}\n                  virtualScroll={this.virtualScroll}\n                  itemSize={this.itemSize}\n                />\n              )}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-transfer-list__border`} />\n        </div>\n        <div\n          class={`${mergedClsPrefix}-transfer-list ${mergedClsPrefix}-transfer-list--target`}\n        >\n          <NTransferHeader\n            onClearAll={this.handleTargetClearAll}\n            size={this.mergedSize}\n            title={this.targetTitle}\n          />\n          <div class={`${mergedClsPrefix}-transfer-list-body`}>\n            {targetFilterable ? (\n              <NTransferFilter\n                onUpdateValue={this.handleTgtFilterUpdateValue}\n                value={this.tgtPattern}\n                disabled={this.mergedDisabled}\n                placeholder={this.sourceFilterPlaceholder}\n              />\n            ) : null}\n            <div class={`${mergedClsPrefix}-transfer-list-flex-container`}>\n              {renderTargetList ? (\n                <NScrollbar\n                  theme={mergedTheme.peers.Scrollbar}\n                  themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n                >\n                  {{\n                    default: () =>\n                      renderTargetList({\n                        onCheck: this.handleChecked,\n                        checkedOptions: this.filteredTgtOpts,\n                        pattern: this.tgtPattern\n                      })\n                  }}\n                </NScrollbar>\n              ) : (\n                <NTransferList\n                  options={this.filteredTgtOpts}\n                  disabled={this.mergedDisabled}\n                  virtualScroll={this.virtualScroll}\n                  itemSize={this.itemSize}\n                />\n              )}\n            </div>\n          </div>\n          <div class={`${mergedClsPrefix}-transfer-list__border`} />\n        </div>\n      </div>\n    )\n  }\n})\n","import type { TreeMate, TreeNode } from 'treemate'\nimport type { HTMLAttributes, Ref, VNodeChild } from 'vue'\nimport type { TreeOption, TreeOptionBase } from '../../tree/src/interface'\nimport { createInjectionKey } from '../../_utils'\n\nexport type TreeSelectOption = Omit<\n  TreeOptionBase,\n  'checkboxDisabled' | 'isLeaf' | 'children'\n> & {\n  children?: TreeSelectOption[]\n  [k: string]: unknown\n}\n\nexport type TreeSelectTmNode = TreeNode<TreeSelectOption>\n\nexport type OnUpdateValue = (\n  value: string\n    & number\n    & (string | number)\n    & string[]\n    & number[]\n    & Array<string | number>\n    & null,\n  option: TreeSelectOption\n    & null\n    & TreeSelectOption[]\n    & Array<TreeSelectOption | null>,\n  meta:\n    | {\n      node: TreeSelectOption\n      action: 'select' | 'unselect'\n    }\n    | {\n      node: TreeSelectOption | null\n      action: 'delete'\n    }\n    | {\n      node: null\n      action: 'clear'\n    }\n) => void\n\nexport type OnUpdateValueImpl = (\n  value:\n    | string\n    | number\n    | (string | number)\n    | string[]\n    | number[]\n    | Array<string | number>\n    | null,\n  option: TreeSelectOption | null | Array<TreeSelectOption | null>,\n  meta:\n    | {\n      node: TreeSelectOption\n      action: 'select' | 'unselect'\n    }\n    | {\n      node: TreeSelectOption | null\n      action: 'delete'\n    }\n    | {\n      node: null\n      action: 'clear'\n    }\n) => void\n\nexport type OnUpdateIndeterminateKeysImpl = (\n  value:\n    | string\n    | number\n    | (string | number)\n    | string[]\n    | number[]\n    | Array<string | number>\n    | null,\n  option: TreeSelectOption | null | Array<TreeSelectOption | null>\n) => void\n\nexport type Value = string | number | Array<string | number> | null\n\nexport interface TreeSelectInjection {\n  pendingNodeKeyRef: Ref<string | number | null>\n  dataTreeMate: Ref<TreeMate<TreeOption>>\n}\n\nexport const treeSelectInjectionKey\n  = createInjectionKey<TreeSelectInjection>('n-tree-select')\n\nexport type TreeSelectRenderTag = (props: {\n  option: TreeSelectOption\n  handleClose: () => void\n}) => VNodeChild\n\nexport interface TreeSelectRenderProps {\n  option: TreeSelectOption\n  checked: boolean\n  selected: boolean\n}\n\nexport type TreeSelectRenderTreePart = ({\n  option,\n  checked,\n  selected\n}: TreeSelectRenderProps) => VNodeChild\n\nexport type TreeSelectRenderLabel = TreeSelectRenderTreePart\n\nexport type TreeSelectRenderPrefix = TreeSelectRenderTreePart\n\nexport type TreeSelectRenderSuffix = TreeSelectRenderTreePart\n\nexport type TreeSelectNodeProps = (info: {\n  option: TreeSelectOption\n}) => HTMLAttributes & Record<string, unknown>\n\nexport interface TreeSelectInst {\n  getCheckedData: () => {\n    keys: Array<string | number>\n    options: Array<TreeSelectOption | null>\n  }\n  getIndeterminateData: () => {\n    keys: Array<string | number>\n    options: Array<TreeSelectOption | null>\n  }\n  focus: () => void\n  focusInput: () => void\n  blur: () => void\n  blurInput: () => void\n}\n","import type { CSSProperties, VNode } from 'vue'\nimport type { DropPosition, TreeOption } from './interface'\nimport { h } from 'vue'\n\nexport function renderDropMark({\n  position,\n  offsetLevel,\n  indent,\n  el\n}: {\n  position: 'before' | 'inside' | 'after'\n  offsetLevel: number\n  indent: number\n  el: HTMLElement\n}): VNode {\n  const style: CSSProperties = {\n    position: 'absolute',\n    boxSizing: 'border-box',\n    right: 0\n  }\n  if (position === 'inside') {\n    style.left = 0\n    style.top = 0\n    style.bottom = 0\n    style.borderRadius = 'inherit'\n    style.boxShadow = 'inset 0 0 0 2px var(--n-drop-mark-color)'\n  }\n  else {\n    const cssPosition = position === 'before' ? 'top' : 'bottom'\n    style[cssPosition] = 0\n    // The left prop should be modified when tree's style is changed\n    // Maybe it is possible to use content left\n    style.left = `${el.offsetLeft + 6 - offsetLevel * indent}px`\n    style.height = '2px'\n    style.backgroundColor = 'var(--n-drop-mark-color)'\n    style.transformOrigin = cssPosition\n    style.borderRadius = '1px'\n    style.transform\n      = position === 'before' ? 'translateY(-4px)' : 'translateY(4px)'\n  }\n  return <div style={style} />\n}\n\nexport function defaultAllowDrop({\n  dropPosition,\n  node\n}: {\n  dropPosition: DropPosition\n  node: TreeOption\n}): boolean {\n  if (node.isLeaf === false)\n    return true\n  if (node.children) {\n    return true\n  }\n  return dropPosition !== 'inside'\n}\n","import type { CheckStrategy, TreeNode } from 'treemate'\nimport type { HTMLAttributes, Ref, VNodeChild } from 'vue'\nimport type { VirtualListScrollTo } from 'vueuc'\nimport type { MergedTheme } from '../../_mixins'\nimport type { TreeTheme } from '../styles'\nimport type { TreeSpinProps } from './public-types'\nimport { createInjectionKey } from '../../_utils'\n\nexport type Key = string | number\n\nexport type OnLoad = (node: TreeOption) => Promise<unknown>\n\nexport interface TreeOptionBase {\n  key?: Key\n  label?: string\n  checkboxDisabled?: boolean\n  disabled?: boolean\n  isLeaf?: boolean\n  children?: TreeOption[]\n  prefix?: () => VNodeChild\n  suffix?: () => VNodeChild\n}\n\nexport type TreeOption = TreeOptionBase & Record<string, unknown>\n\nexport type TreeOptions = TreeOption[]\n\nexport interface TreeRenderProps {\n  option: TreeOption\n  checked: boolean\n  selected: boolean\n}\n\ntype RenderTreePart = ({\n  option,\n  checked,\n  selected\n}: TreeRenderProps) => VNodeChild\n\nexport type RenderLabel = RenderTreePart\n\nexport type RenderPrefix = RenderTreePart\n\nexport type RenderSuffix = RenderTreePart\n\nexport type TreeOverrideNodeClickBehaviorReturn\n  = | 'toggleSelect'\n    | 'toggleExpand'\n    | 'toggleCheck'\n    | 'default'\n    | 'none'\n\nexport type TreeOverrideNodeClickBehavior = (info: {\n  option: TreeOption\n}) => TreeOverrideNodeClickBehaviorReturn\n\nexport type TreeNodeProps = (info: {\n  option: TreeOption\n}) => HTMLAttributes & Record<string, unknown>\n\nexport interface TreeDragInfo {\n  event: DragEvent\n  node: TreeOption\n}\n\nexport interface TreeDropInfo {\n  event: DragEvent\n  node: TreeOption\n  dragNode: TreeOption\n  dropPosition: 'before' | 'inside' | 'after'\n}\n\nexport interface InternalDragInfo {\n  event: DragEvent\n  node: TmNode\n}\n\nexport type DropPosition = 'before' | 'inside' | 'after'\n\nexport type AllowDrop = (info: {\n  dropPosition: DropPosition\n  node: TreeOption\n  phase: 'drag' | 'drop'\n}) => boolean\n\nexport interface InternalDropInfo {\n  event: DragEvent\n  node: TmNode\n  dropPosition: DropPosition\n}\n\nexport type RenderSwitcherIcon = (props: {\n  expanded: boolean\n  selected: boolean\n  option: TreeOption\n}) => VNodeChild\n\nexport type CheckOnClick = (option: TreeOption) => boolean\n\nexport interface TreeInjection {\n  loadingKeysRef: Ref<Set<Key>>\n  highlightKeySetRef: Ref<Set<Key> | null>\n  displayedCheckedKeysRef: Ref<Key[]>\n  displayedIndeterminateKeysRef: Ref<Key[]>\n  mergedSelectedKeysRef: Ref<Key[]>\n  mergedExpandedKeysRef: Ref<Key[]>\n  fNodesRef: Ref<Array<TreeNode<TreeOption>>>\n  draggableRef: Ref<boolean>\n  mergedThemeRef: Ref<MergedTheme<TreeTheme>>\n  onLoadRef: Ref<OnLoad | undefined>\n  blockLineRef: Ref<boolean>\n  indentRef: Ref<number>\n  draggingNodeRef: Ref<TmNode | null>\n  droppingMouseNodeRef: Ref<TmNode | null>\n  droppingNodeParentRef: Ref<TmNode | null>\n  droppingPositionRef: Ref<null | DropPosition>\n  droppingOffsetLevelRef: Ref<number>\n  disabledRef: Ref<boolean>\n  checkableRef: Ref<boolean>\n  cascadeRef: Ref<boolean>\n  mergedCheckStrategyRef: Ref<CheckStrategy>\n  selectableRef: Ref<boolean>\n  expandOnClickRef: Ref<boolean>\n  pendingNodeKeyRef: Ref<null | Key>\n  internalScrollableRef: Ref<boolean>\n  internalCheckboxFocusableRef: Ref<boolean>\n  renderLabelRef: Ref<RenderLabel | undefined>\n  renderPrefixRef: Ref<RenderPrefix | undefined>\n  renderSuffixRef: Ref<RenderSuffix | undefined>\n  renderSwitcherIconRef: Ref<RenderSwitcherIcon | undefined>\n  labelFieldRef: Ref<string>\n  nodePropsRef: Ref<TreeNodeProps | undefined>\n  multipleRef: Ref<boolean>\n  checkboxPlacementRef: 'left' | 'right'\n  internalTreeSelect: boolean\n  checkOnClickRef: Ref<boolean | CheckOnClick>\n  disabledFieldRef: Ref<string>\n  showLineRef: Ref<boolean>\n  overrideDefaultNodeClickBehaviorRef: Ref<\n    TreeOverrideNodeClickBehavior | undefined\n  >\n  spinPropsRef: Ref<TreeSpinProps | undefined>\n  handleSwitcherClick: (node: TreeNode<TreeOption>) => void\n  handleSelect: (node: TreeNode<TreeOption>) => void\n  handleCheck: (node: TreeNode<TreeOption>, checked: boolean) => void\n  handleDragStart: (info: InternalDragInfo) => void\n  handleDragEnter: (info: InternalDragInfo) => void\n  handleDragLeave: (info: InternalDragInfo) => void\n  handleDragEnd: (info: InternalDragInfo) => void\n  handleDragOver: (info: InternalDragInfo) => void\n  handleDrop: (info: InternalDropInfo) => void\n}\n\nexport const treeInjectionKey = createInjectionKey<TreeInjection>('n-tree')\n\nexport type TmNode = TreeNode<TreeOption>\n\nexport interface MotionData {\n  __motion: true\n  height: number | undefined\n  mode: 'expand' | 'collapse'\n  nodes: TmNode[]\n}\n\nexport interface InternalTreeInst {\n  handleKeydown: (e: KeyboardEvent) => {\n    enterBehavior: TreeOverrideNodeClickBehaviorReturn | null\n  }\n}\n\nexport interface TreeInst {\n  scrollTo: VirtualListScrollTo\n  getCheckedData: () => { keys: Key[], options: Array<TreeOption | null> }\n  getIndeterminateData: () => { keys: Key[], options: Array<TreeOption | null> }\n}\n\nexport type GetChildren = (option: any) => unknown\n","import type { TreeNode } from 'treemate'\nimport type { Ref } from 'vue'\nimport type {\n  Key,\n  TmNode,\n  TreeOption,\n  TreeOverrideNodeClickBehavior,\n  TreeOverrideNodeClickBehaviorReturn\n} from './interface'\nimport { inject, ref } from 'vue'\nimport { treeSelectInjectionKey } from '../../tree-select/src/interface'\n\nexport function useKeyboard({\n  props,\n  fNodesRef,\n  mergedExpandedKeysRef,\n  mergedSelectedKeysRef,\n  mergedCheckedKeysRef,\n  handleCheck,\n  handleSelect,\n  handleSwitcherClick\n}: {\n  props: {\n    keyboard: boolean\n    overrideDefaultNodeClickBehavior: TreeOverrideNodeClickBehavior | undefined\n  }\n  fNodesRef: Ref<Array<TreeNode<TreeOption>>>\n  mergedExpandedKeysRef: Ref<Key[]>\n  mergedSelectedKeysRef: Ref<Key[]>\n  mergedCheckedKeysRef: Ref<Key[]>\n  handleSelect: (node: TmNode) => void\n  handleSwitcherClick: (node: TmNode) => void\n  handleCheck: (node: TmNode, checked: boolean) => void\n}): {\n  pendingNodeKeyRef: Ref<null | Key>\n  handleKeydown: (e: KeyboardEvent) => {\n    enterBehavior: TreeOverrideNodeClickBehaviorReturn | null\n  }\n} {\n  const { value: mergedSelectedKeys } = mergedSelectedKeysRef\n\n  // If it's used in tree-select, make it take over pending state\n  const treeSelectInjection = inject(treeSelectInjectionKey, null)\n  const pendingNodeKeyRef = treeSelectInjection\n    ? treeSelectInjection.pendingNodeKeyRef\n    : ref<null | Key>(\n        mergedSelectedKeys.length\n          ? mergedSelectedKeys[mergedSelectedKeys.length - 1]\n          : null\n      )\n  function handleKeydown(e: KeyboardEvent): {\n    enterBehavior: TreeOverrideNodeClickBehaviorReturn | null\n  } {\n    if (!props.keyboard)\n      return { enterBehavior: null }\n    const { value: pendingNodeKey } = pendingNodeKeyRef\n    let enterBehavior: TreeOverrideNodeClickBehaviorReturn | null = null\n    if (pendingNodeKey === null) {\n      if (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n        e.preventDefault()\n      }\n      if (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'].includes(e.key)) {\n        if (pendingNodeKey === null) {\n          const { value: fNodes } = fNodesRef\n          let fIndex = 0\n          while (fIndex < fNodes.length) {\n            if (!fNodes[fIndex].disabled) {\n              pendingNodeKeyRef.value = fNodes[fIndex].key\n              break\n            }\n            fIndex += 1\n          }\n        }\n      }\n    }\n    else {\n      const { value: fNodes } = fNodesRef\n      let fIndex = fNodes.findIndex(tmNode => tmNode.key === pendingNodeKey)\n      if (!~fIndex)\n        return { enterBehavior: null }\n      if (e.key === 'Enter') {\n        const tmNode = fNodes[fIndex]\n        enterBehavior\n          = props.overrideDefaultNodeClickBehavior?.({\n            option: tmNode.rawNode\n          }) || null\n        switch (enterBehavior) {\n          case 'toggleCheck':\n            handleCheck(\n              tmNode,\n              !mergedCheckedKeysRef.value.includes(tmNode.key)\n            )\n            break\n          case 'toggleSelect':\n            handleSelect(tmNode)\n            break\n          case 'toggleExpand':\n            handleSwitcherClick(tmNode)\n            break\n          case 'none':\n            break\n          case 'default':\n          default:\n            enterBehavior = 'default'\n            handleSelect(tmNode)\n        }\n      }\n      else if (e.key === 'ArrowDown') {\n        e.preventDefault()\n        fIndex += 1\n        while (fIndex < fNodes.length) {\n          if (!fNodes[fIndex].disabled) {\n            pendingNodeKeyRef.value = fNodes[fIndex].key\n            break\n          }\n          fIndex += 1\n        }\n      }\n      else if (e.key === 'ArrowUp') {\n        e.preventDefault()\n        fIndex -= 1\n        while (fIndex >= 0) {\n          if (!fNodes[fIndex].disabled) {\n            pendingNodeKeyRef.value = fNodes[fIndex].key\n            break\n          }\n          fIndex -= 1\n        }\n      }\n      else if (e.key === 'ArrowLeft') {\n        const pendingNode = fNodes[fIndex]\n        if (\n          pendingNode.isLeaf\n          || !mergedExpandedKeysRef.value.includes(pendingNodeKey)\n        ) {\n          const parentTmNode = pendingNode.getParent()\n          if (parentTmNode) {\n            pendingNodeKeyRef.value = parentTmNode.key\n          }\n        }\n        else {\n          handleSwitcherClick(pendingNode)\n        }\n      }\n      else if (e.key === 'ArrowRight') {\n        const pendingNode = fNodes[fIndex]\n        if (pendingNode.isLeaf)\n          return { enterBehavior: null }\n        if (!mergedExpandedKeysRef.value.includes(pendingNodeKey)) {\n          handleSwitcherClick(pendingNode)\n        }\n        else {\n          // Tha same as ArrowDown\n          fIndex += 1\n          while (fIndex < fNodes.length) {\n            if (!fNodes[fIndex].disabled) {\n              pendingNodeKeyRef.value = fNodes[fIndex].key\n              break\n            }\n            fIndex += 1\n          }\n        }\n      }\n    }\n    return {\n      enterBehavior\n    }\n  }\n  return {\n    pendingNodeKeyRef,\n    handleKeydown\n  }\n}\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NCheckbox } from '../../checkbox'\nimport { treeInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NTreeNodeCheckbox',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    indent: {\n      type: Number,\n      required: true\n    },\n    right: Boolean,\n    focusable: Boolean,\n    disabled: Boolean,\n    checked: Boolean,\n    indeterminate: Boolean,\n    onCheck: Function as PropType<(value: boolean) => void>\n  },\n  setup(props) {\n    const NTree = inject(treeInjectionKey)!\n    function doCheck(value: boolean): void {\n      const { onCheck } = props\n      if (onCheck) {\n        onCheck(value)\n      }\n    }\n    function handleUpdateValue(value: boolean): void {\n      doCheck(value)\n    }\n    return {\n      handleUpdateValue,\n      mergedTheme: NTree.mergedThemeRef\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      mergedTheme,\n      checked,\n      indeterminate,\n      disabled,\n      focusable,\n      indent,\n      handleUpdateValue\n    } = this\n    return (\n      <span\n        class={[\n          `${clsPrefix}-tree-node-checkbox`,\n          this.right && `${clsPrefix}-tree-node-checkbox--right`\n        ]}\n        style={{\n          width: `${indent}px`\n        }}\n        data-checkbox\n      >\n        <NCheckbox\n          focusable={focusable}\n          disabled={disabled}\n          theme={mergedTheme.peers.Checkbox}\n          themeOverrides={mergedTheme.peerOverrides.Checkbox}\n          checked={checked}\n          indeterminate={indeterminate}\n          onUpdateChecked={handleUpdateValue}\n        />\n      </span>\n    )\n  }\n})\n","import type { HTMLAttributes, PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { defineComponent, h, inject, ref } from 'vue'\nimport { render } from '../../_utils'\nimport { treeInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'TreeNodeContent',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    disabled: Boolean,\n    checked: Boolean,\n    selected: Boolean,\n    onClick: Function as PropType<(e: PointerEvent) => void>,\n    onDragstart: Function as PropType<(e: DragEvent) => void>,\n    tmNode: {\n      type: Object as PropType<TmNode>,\n      required: true\n    },\n    nodeProps: Object as PropType<HTMLAttributes>\n  },\n  setup(props) {\n    const { renderLabelRef, renderPrefixRef, renderSuffixRef, labelFieldRef }\n      = inject(treeInjectionKey)!\n    const selfRef = ref<HTMLElement | null>(null)\n    function doClick(e: PointerEvent): void {\n      const { onClick } = props\n      if (onClick)\n        onClick(e)\n    }\n    function handleClick(e: PointerEvent): void {\n      doClick(e)\n    }\n    return {\n      selfRef,\n      renderLabel: renderLabelRef,\n      renderPrefix: renderPrefixRef,\n      renderSuffix: renderSuffixRef,\n      labelField: labelFieldRef,\n      handleClick\n    }\n  },\n  render() {\n    const {\n      clsPrefix,\n      labelField,\n      nodeProps,\n      checked = false,\n      selected = false,\n      renderLabel,\n      renderPrefix,\n      renderSuffix,\n      handleClick,\n      onDragstart,\n      tmNode: {\n        rawNode,\n        rawNode: { prefix, suffix, [labelField]: label }\n      }\n    } = this\n    return (\n      <span\n        {...nodeProps}\n        ref=\"selfRef\"\n        class={[`${clsPrefix}-tree-node-content`, nodeProps?.class]}\n        onClick={handleClick}\n        draggable={onDragstart === undefined ? undefined : true}\n        onDragstart={onDragstart}\n      >\n        {renderPrefix || prefix ? (\n          <div class={`${clsPrefix}-tree-node-content__prefix`}>\n            {renderPrefix\n              ? renderPrefix({\n                  option: rawNode,\n                  selected,\n                  checked\n                })\n              : render(prefix)}\n          </div>\n        ) : null}\n        <div class={`${clsPrefix}-tree-node-content__text`}>\n          {renderLabel\n            ? renderLabel({\n                option: rawNode,\n                selected,\n                checked\n              })\n            : render(label)}\n        </div>\n        {renderSuffix || suffix ? (\n          <div class={`${clsPrefix}-tree-node-content__suffix`}>\n            {renderSuffix\n              ? renderSuffix({\n                  option: rawNode,\n                  selected,\n                  checked\n                })\n              : render(suffix)}\n          </div>\n        ) : null}\n      </span>\n    )\n  }\n})\n","import type { PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { defineComponent, h, inject } from 'vue'\nimport { NBaseIcon, NBaseLoading, NIconSwitchTransition } from '../../_internal'\nimport { SwitcherIcon } from '../../_internal/icons'\nimport { treeInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'NTreeSwitcher',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    indent: { type: Number, required: true },\n    expanded: Boolean,\n    selected: Boolean,\n    hide: Boolean,\n    loading: Boolean,\n    onClick: Function as PropType<(e: MouseEvent) => void>,\n    tmNode: {\n      type: Object as PropType<TmNode>,\n      required: true\n    }\n  },\n  setup(props) {\n    const { renderSwitcherIconRef, spinPropsRef } = inject(\n      treeInjectionKey,\n      null\n    )!\n    return () => {\n      const { clsPrefix, expanded, hide, indent, onClick } = props\n      return (\n        <span\n          data-switcher\n          class={[\n            `${clsPrefix}-tree-node-switcher`,\n            expanded && `${clsPrefix}-tree-node-switcher--expanded`,\n            hide && `${clsPrefix}-tree-node-switcher--hide`\n          ]}\n          style={{ width: `${indent}px` }}\n          onClick={onClick}\n        >\n          <div class={`${clsPrefix}-tree-node-switcher__icon`}>\n            <NIconSwitchTransition>\n              {{\n                default: () => {\n                  if (props.loading) {\n                    return (\n                      <NBaseLoading\n                        clsPrefix={clsPrefix}\n                        key=\"loading\"\n                        radius={85}\n                        strokeWidth={20}\n                        {...spinPropsRef?.value}\n                      />\n                    )\n                  }\n                  const { value: renderSwitcherIcon } = renderSwitcherIconRef\n                  return renderSwitcherIcon ? (\n                    renderSwitcherIcon({\n                      expanded: props.expanded,\n                      selected: props.selected,\n                      option: props.tmNode.rawNode\n                    })\n                  ) : (\n                    <NBaseIcon clsPrefix={clsPrefix} key=\"switcher\">\n                      {{ default: () => <SwitcherIcon /> }}\n                    </NBaseIcon>\n                  )\n                }\n              }}\n            </NIconSwitchTransition>\n          </div>\n        </span>\n      )\n    }\n  }\n})\n","import type { CheckStrategy } from 'treemate'\nimport type { ComputedRef } from 'vue'\nimport type { Key, TmNode, TreeOption } from './interface'\nimport { happensIn } from 'seemly'\nimport { computed } from 'vue'\nimport { isBrowser } from '../../_utils'\n\nexport function useMergedCheckStrategy(props: {\n  leafOnly: boolean\n  checkStrategy: CheckStrategy\n}): ComputedRef<CheckStrategy> {\n  return computed(() => (props.leafOnly ? 'child' : props.checkStrategy))\n}\n\nexport function isNodeDisabled(node: TmNode, disabledField: string): boolean {\n  return !!node.rawNode[disabledField]\n}\n\nfunction traverse(\n  nodes: TreeOption[] | undefined,\n  childrenField: string,\n  callback: (node: TreeOption) => void,\n  callbackAfter: (node: TreeOption) => void\n): void {\n  nodes?.forEach((node) => {\n    callback(node)\n    traverse(\n      node[childrenField] as TreeOption[] | undefined,\n      childrenField,\n      callback,\n      callbackAfter\n    )\n    callbackAfter(node)\n  })\n}\n\nexport function keysWithFilter(\n  nodes: TreeOption[],\n  pattern: string,\n  keyField: string,\n  childrenField: string,\n  filter: (pattern: string, node: TreeOption) => boolean\n): {\n  expandedKeys: Key[]\n  highlightKeySet: Set<Key>\n} {\n  const keys = new Set<Key>()\n  const highlightKeySet = new Set<Key>()\n  const path: TreeOption[] = []\n  traverse(\n    nodes,\n    childrenField,\n    (node) => {\n      path.push(node)\n      if (filter(pattern, node)) {\n        highlightKeySet.add(node[keyField] as Key)\n        for (let i = path.length - 2; i >= 0; --i) {\n          if (!keys.has(path[i][keyField] as Key)) {\n            keys.add(path[i][keyField] as Key)\n          }\n          else {\n            return\n          }\n        }\n      }\n    },\n    () => {\n      path.pop()\n    }\n  )\n  return {\n    expandedKeys: Array.from(keys),\n    highlightKeySet\n  }\n}\n\nconst emptyImage: HTMLImageElement | null = null\nif (isBrowser && Image) {\n  const emptyImage = new Image()\n  emptyImage.src\n    = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=='\n}\n\nexport { emptyImage }\n\nexport function filterTree(\n  tree: TreeOption[],\n  filter: (pattern: string, v: TreeOption) => boolean,\n  pattern: string,\n  keyField: string,\n  childrenField: string\n): {\n  filteredTree: TreeOption[]\n  expandedKeys: Key[]\n  highlightKeySet: Set<Key>\n} {\n  const visitedTailKeys = new Set<Key>()\n  const visitedNonTailKeys = new Set<Key>()\n  const highlightKeySet = new Set<Key>()\n  const expandedKeys: Key[] = []\n  const filteredTree: TreeOption[] = []\n  const path: TreeOption[] = []\n  function visit(t: TreeOption[]): void {\n    t.forEach((n) => {\n      path.push(n)\n      if (filter(pattern, n)) {\n        visitedTailKeys.add(n[keyField] as Key)\n        highlightKeySet.add(n[keyField] as Key)\n        for (let i = path.length - 2; i >= 0; --i) {\n          const key = path[i][keyField] as Key\n          if (!visitedNonTailKeys.has(key)) {\n            visitedNonTailKeys.add(key)\n            if (visitedTailKeys.has(key)) {\n              visitedTailKeys.delete(key)\n            }\n          }\n          else {\n            break\n          }\n        }\n      }\n      const children = n[childrenField] as TreeOption[] | undefined\n      if (children) {\n        visit(children)\n      }\n      path.pop()\n    })\n  }\n  visit(tree)\n  function build(t: TreeOption[], sibs: TreeOption[]): void {\n    t.forEach((n) => {\n      const key = n[keyField] as Key\n      const isVisitedTail = visitedTailKeys.has(key)\n      const isVisitedNonTail = visitedNonTailKeys.has(key)\n      if (!isVisitedTail && !isVisitedNonTail)\n        return\n      const children = n[childrenField] as TreeOption[] | undefined\n      if (children) {\n        if (isVisitedTail) {\n          // If it is visited path tail, use origin node\n          sibs.push(n)\n        }\n        else {\n          // It it is not visited path tail, use cloned node\n          expandedKeys.push(key)\n          const clonedNode = { ...n, [childrenField]: [] }\n          sibs.push(clonedNode)\n          build(children, clonedNode[childrenField] as TreeOption[])\n        }\n      }\n      else {\n        sibs.push(n)\n      }\n    })\n  }\n  build(tree, filteredTree)\n  return {\n    filteredTree,\n    highlightKeySet,\n    expandedKeys\n  }\n}\n\nexport function treeGetClickTarget(\n  e: MouseEvent\n): 'checkbox' | 'switcher' | 'node' {\n  if (happensIn(e, 'checkbox')) {\n    return 'checkbox'\n  }\n  else if (happensIn(e, 'switcher')) {\n    return 'switcher'\n  }\n  else {\n    return 'node'\n  }\n}\n","import type { ComponentPublicInstance, PropType, VNode } from 'vue'\nimport type { TmNode } from './interface'\nimport { happensIn, repeat } from 'seemly'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, onMounted, ref } from 'vue'\nimport { createDataKey } from '../../_utils'\nimport { renderDropMark } from './dnd'\nimport { treeInjectionKey } from './interface'\nimport NTreeNodeCheckbox from './TreeNodeCheckbox'\nimport NTreeNodeContent from './TreeNodeContent'\nimport NTreeNodeSwitcher from './TreeNodeSwitcher'\nimport { isNodeDisabled } from './utils'\n\nconst TreeNode = defineComponent({\n  name: 'TreeNode',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    tmNode: {\n      type: Object as PropType<TmNode>,\n      required: true\n    }\n  },\n  setup(props) {\n    const NTree = inject(treeInjectionKey)!\n    const {\n      droppingNodeParentRef,\n      droppingMouseNodeRef,\n      draggingNodeRef,\n      droppingPositionRef,\n      droppingOffsetLevelRef,\n      nodePropsRef,\n      indentRef,\n      blockLineRef,\n      checkboxPlacementRef,\n      checkOnClickRef,\n      disabledFieldRef,\n      showLineRef,\n      renderSwitcherIconRef,\n      overrideDefaultNodeClickBehaviorRef\n    } = NTree\n\n    const checkboxDisabledRef = useMemo(\n      () => !!props.tmNode.rawNode.checkboxDisabled\n    )\n\n    const nodeIsDisabledRef = useMemo(() => {\n      return isNodeDisabled(props.tmNode, disabledFieldRef.value)\n    })\n\n    const disabledRef = useMemo(\n      () => NTree.disabledRef.value || nodeIsDisabledRef.value\n    )\n\n    const resolvedNodePropsRef = computed(() => {\n      const { value: nodeProps } = nodePropsRef\n      if (!nodeProps)\n        return undefined\n      return nodeProps({\n        option: props.tmNode.rawNode\n      })\n    })\n\n    // used for drag and drop\n    const contentInstRef = ref<null | ComponentPublicInstance>(null)\n    // must be non-reactive\n    const contentElRef: { value: HTMLElement | null } = { value: null }\n\n    onMounted(() => {\n      contentElRef.value = contentInstRef.value!.$el as HTMLElement\n    })\n\n    function handleSwitcherClick(): void {\n      const callback = (): void => {\n        const { tmNode } = props\n        if (!tmNode.isLeaf && !tmNode.shallowLoaded) {\n          if (!NTree.loadingKeysRef.value.has(tmNode.key)) {\n            NTree.loadingKeysRef.value.add(tmNode.key)\n          }\n          else {\n            return\n          }\n          const {\n            onLoadRef: { value: onLoad }\n          } = NTree\n          if (onLoad) {\n            void onLoad(tmNode.rawNode)\n              .then((value) => {\n                if (value !== false) {\n                  NTree.handleSwitcherClick(tmNode)\n                }\n              })\n              .finally(() => {\n                NTree.loadingKeysRef.value.delete(tmNode.key)\n              })\n          }\n        }\n        else {\n          NTree.handleSwitcherClick(tmNode)\n        }\n      }\n      if (renderSwitcherIconRef.value) {\n        // if renderSwitcherIcon is set, icon dom may be altered before event\n        // bubbles to parent dom, so that target check fails. Call it in next\n        // event loop so that event bubble phase is finishes.\n        setTimeout(callback, 0)\n      }\n      else {\n        callback()\n      }\n    }\n\n    const selectableRef = useMemo(\n      () =>\n        !nodeIsDisabledRef.value\n        && NTree.selectableRef.value\n        && (NTree.internalTreeSelect\n          ? NTree.mergedCheckStrategyRef.value !== 'child'\n          || (NTree.multipleRef.value && NTree.cascadeRef.value)\n          || props.tmNode.isLeaf\n          : true)\n    )\n    const checkableRef = useMemo(\n      () =>\n        NTree.checkableRef.value\n        && (NTree.cascadeRef.value\n          || NTree.mergedCheckStrategyRef.value !== 'child'\n          || props.tmNode.isLeaf)\n    )\n\n    const checkedRef = useMemo(() =>\n      NTree.displayedCheckedKeysRef.value.includes(props.tmNode.key)\n    )\n\n    const mergedCheckOnClickRef = useMemo(() => {\n      const { value: checkable } = checkableRef\n      if (!checkable)\n        return false\n      const { value: checkOnClick } = checkOnClickRef\n      const { tmNode } = props\n      if (typeof checkOnClick === 'boolean') {\n        return !tmNode.disabled && checkOnClick\n      }\n      return checkOnClick(props.tmNode.rawNode)\n    })\n\n    function _handleClick(e: MouseEvent): void {\n      const { value: expandOnClick } = NTree.expandOnClickRef\n      const { value: selectable } = selectableRef\n      const { value: mergedCheckOnClick } = mergedCheckOnClickRef\n      if (!selectable && !expandOnClick && !mergedCheckOnClick)\n        return\n      if (happensIn(e, 'checkbox') || happensIn(e, 'switcher'))\n        return\n      const { tmNode } = props\n      if (selectable) {\n        NTree.handleSelect(tmNode)\n      }\n      if (expandOnClick && !tmNode.isLeaf) {\n        handleSwitcherClick()\n      }\n      if (mergedCheckOnClick) {\n        handleCheck(!checkedRef.value)\n      }\n    }\n\n    function handleNodeClick(e: PointerEvent): void {\n      if (happensIn(e, 'checkbox') || happensIn(e, 'switcher'))\n        return\n      if (!disabledRef.value) {\n        const overrideDefaultNodeClickBehavior\n          = overrideDefaultNodeClickBehaviorRef.value\n        let shouldOverride = false\n        if (overrideDefaultNodeClickBehavior) {\n          switch (\n            overrideDefaultNodeClickBehavior({ option: props.tmNode.rawNode })\n          ) {\n            case 'toggleCheck':\n              shouldOverride = true\n              handleCheck(!checkedRef.value)\n              break\n            case 'toggleSelect':\n              shouldOverride = true\n              NTree.handleSelect(props.tmNode)\n              break\n            case 'toggleExpand':\n              shouldOverride = true\n              handleSwitcherClick()\n              shouldOverride = true\n              break\n            case 'none':\n              shouldOverride = true\n              shouldOverride = true\n              return\n            case 'default':\n            default:\n              break\n          }\n        }\n        if (!shouldOverride) {\n          _handleClick(e)\n        }\n      }\n      resolvedNodePropsRef.value?.onClick?.(e)\n    }\n\n    function handleContentClick(e: PointerEvent): void {\n      if (blockLineRef.value)\n        return\n      handleNodeClick(e)\n    }\n\n    function handleLineClick(e: PointerEvent): void {\n      if (!blockLineRef.value)\n        return\n      handleNodeClick(e)\n    }\n\n    function handleCheck(checked: boolean): void {\n      NTree.handleCheck(props.tmNode, checked)\n    }\n    // Dnd\n    function handleDragStart(e: DragEvent): void {\n      NTree.handleDragStart({\n        event: e,\n        node: props.tmNode\n      })\n    }\n    function handleDragEnter(e: DragEvent): void {\n      if (e.currentTarget !== e.target) {\n        return\n      }\n      NTree.handleDragEnter({\n        event: e,\n        node: props.tmNode\n      })\n    }\n    function handleDragOver(e: DragEvent): void {\n      e.preventDefault() // if not prevent, drop event won't be fired...\n      NTree.handleDragOver({\n        event: e,\n        node: props.tmNode\n      })\n    }\n    function handleDragEnd(e: DragEvent): void {\n      NTree.handleDragEnd({\n        event: e,\n        node: props.tmNode\n      })\n    }\n    function handleDragLeave(e: DragEvent): void {\n      if (e.currentTarget !== e.target) {\n        return\n      }\n      NTree.handleDragLeave({\n        event: e,\n        node: props.tmNode\n      })\n    }\n    function handleDrop(e: DragEvent): void {\n      e.preventDefault()\n      if (droppingPositionRef.value !== null) {\n        NTree.handleDrop({\n          event: e,\n          node: props.tmNode,\n          dropPosition: droppingPositionRef.value\n        })\n      }\n    }\n    const indentNodes = computed(() => {\n      const { clsPrefix } = props\n      const { value: indent } = indentRef\n      if (showLineRef.value) {\n        const indentNodes: VNode[] = []\n        let cursor = props.tmNode.parent\n        while (cursor) {\n          if (cursor.isLastChild) {\n            indentNodes.push(\n              <div class={`${clsPrefix}-tree-node-indent`}>\n                <div style={{ width: `${indent}px` }} />\n              </div>\n            )\n          }\n          else {\n            indentNodes.push(\n              <div\n                class={[\n                  `${clsPrefix}-tree-node-indent`,\n                  `${clsPrefix}-tree-node-indent--show-line`\n                ]}\n              >\n                <div style={{ width: `${indent}px` }} />\n              </div>\n            )\n          }\n          cursor = cursor.parent\n        }\n        return indentNodes.reverse()\n      }\n      else {\n        return repeat(\n          props.tmNode.level,\n          <div class={`${props.clsPrefix}-tree-node-indent`}>\n            <div style={{ width: `${indent}px` }} />\n          </div>\n        )\n      }\n    })\n    return {\n      showDropMark: useMemo(() => {\n        const { value: draggingNode } = draggingNodeRef\n        if (!draggingNode)\n          return\n        const { value: droppingPosition } = droppingPositionRef\n        if (!droppingPosition)\n          return\n        const { value: droppingMouseNode } = droppingMouseNodeRef\n        if (!droppingMouseNode) {\n          return\n        }\n        const { tmNode } = props\n        if (tmNode.key === droppingMouseNode.key)\n          return true\n        return false\n      }),\n      showDropMarkAsParent: useMemo(() => {\n        const { value: droppingNodeParent } = droppingNodeParentRef\n        if (!droppingNodeParent)\n          return false\n        const { tmNode } = props\n        const { value: droppingPosition } = droppingPositionRef\n        if (droppingPosition === 'before' || droppingPosition === 'after') {\n          return droppingNodeParent.key === tmNode.key\n        }\n        return false\n      }),\n      pending: useMemo(\n        () => NTree.pendingNodeKeyRef.value === props.tmNode.key\n      ),\n      loading: useMemo(() => NTree.loadingKeysRef.value.has(props.tmNode.key)),\n      highlight: useMemo(() => {\n        return NTree.highlightKeySetRef.value?.has(props.tmNode.key)\n      }),\n      checked: checkedRef,\n      indeterminate: useMemo(() =>\n        NTree.displayedIndeterminateKeysRef.value.includes(props.tmNode.key)\n      ),\n      selected: useMemo(() =>\n        NTree.mergedSelectedKeysRef.value.includes(props.tmNode.key)\n      ),\n      expanded: useMemo(() =>\n        NTree.mergedExpandedKeysRef.value.includes(props.tmNode.key)\n      ),\n      disabled: disabledRef,\n      checkable: checkableRef,\n      mergedCheckOnClick: mergedCheckOnClickRef,\n      checkboxDisabled: checkboxDisabledRef,\n      selectable: selectableRef,\n      expandOnClick: NTree.expandOnClickRef,\n      internalScrollable: NTree.internalScrollableRef,\n      draggable: NTree.draggableRef,\n      blockLine: blockLineRef,\n      nodeProps: resolvedNodePropsRef,\n      checkboxFocusable: NTree.internalCheckboxFocusableRef,\n      droppingPosition: droppingPositionRef,\n      droppingOffsetLevel: droppingOffsetLevelRef,\n      indent: indentRef,\n      checkboxPlacement: checkboxPlacementRef,\n      showLine: showLineRef,\n      // reduce dts: avoid expanding component instance types\n      contentInstRef: contentInstRef as unknown,\n      contentElRef,\n      indentNodes,\n      handleCheck,\n      handleDrop,\n      handleDragStart,\n      handleDragEnter,\n      handleDragOver,\n      handleDragEnd,\n      handleDragLeave,\n      handleLineClick,\n      handleContentClick,\n      handleSwitcherClick\n    }\n  },\n  render() {\n    const {\n      tmNode,\n      clsPrefix,\n      checkable,\n      expandOnClick,\n      selectable,\n      selected,\n      checked,\n      highlight,\n      draggable,\n      blockLine,\n      indent,\n      indentNodes,\n      disabled,\n      pending,\n      internalScrollable,\n      nodeProps,\n      checkboxPlacement\n    } = this\n    // drag start not inside\n    // it need to be append to node itself, not wrapper\n    const dragEventHandlers\n      = draggable && !disabled\n        ? {\n            onDragenter: this.handleDragEnter,\n            onDragleave: this.handleDragLeave,\n            onDragend: this.handleDragEnd,\n            onDrop: this.handleDrop,\n            onDragover: this.handleDragOver\n          }\n        : undefined\n    // In non virtual mode, there's no evidence that which element should be\n    // scrolled to, so we need data-key to query the target element.\n    const dataKey = internalScrollable ? createDataKey(tmNode.key) : undefined\n    const checkboxOnRight = checkboxPlacement === 'right'\n    const checkboxNode = checkable ? (\n      <NTreeNodeCheckbox\n        indent={indent}\n        right={checkboxOnRight}\n        focusable={this.checkboxFocusable}\n        disabled={disabled || this.checkboxDisabled}\n        clsPrefix={clsPrefix}\n        checked={this.checked}\n        indeterminate={this.indeterminate}\n        onCheck={this.handleCheck}\n      />\n    ) : null\n    return (\n      <div class={`${clsPrefix}-tree-node-wrapper`} {...dragEventHandlers}>\n        <div\n          {...(blockLine ? nodeProps : undefined)}\n          class={[\n            `${clsPrefix}-tree-node`,\n            {\n              [`${clsPrefix}-tree-node--selected`]: selected,\n              [`${clsPrefix}-tree-node--checkable`]: checkable,\n              [`${clsPrefix}-tree-node--highlight`]: highlight,\n              [`${clsPrefix}-tree-node--pending`]: pending,\n              [`${clsPrefix}-tree-node--disabled`]: disabled,\n              [`${clsPrefix}-tree-node--selectable`]: selectable,\n              [`${clsPrefix}-tree-node--clickable`]:\n                selectable || expandOnClick || this.mergedCheckOnClick\n            },\n            nodeProps?.class\n          ]}\n          data-key={dataKey}\n          draggable={draggable && blockLine}\n          onClick={this.handleLineClick}\n          onDragstart={\n            draggable && blockLine && !disabled\n              ? this.handleDragStart\n              : undefined\n          }\n        >\n          {indentNodes}\n          {tmNode.isLeaf && this.showLine ? (\n            <div\n              class={[\n                `${clsPrefix}-tree-node-indent`,\n                `${clsPrefix}-tree-node-indent--show-line`,\n                tmNode.isLeaf && `${clsPrefix}-tree-node-indent--is-leaf`,\n                tmNode.isLastChild\n                && `${clsPrefix}-tree-node-indent--last-child`\n              ]}\n            >\n              <div style={{ width: `${indent}px` }} />\n            </div>\n          ) : (\n            <NTreeNodeSwitcher\n              clsPrefix={clsPrefix}\n              expanded={this.expanded}\n              selected={selected}\n              loading={this.loading}\n              hide={tmNode.isLeaf}\n              tmNode={this.tmNode}\n              indent={indent}\n              onClick={this.handleSwitcherClick}\n            />\n          )}\n          {!checkboxOnRight ? checkboxNode : null}\n          <NTreeNodeContent\n            ref=\"contentInstRef\"\n            clsPrefix={clsPrefix}\n            checked={checked}\n            selected={selected}\n            onClick={this.handleContentClick}\n            nodeProps={blockLine ? undefined : nodeProps}\n            onDragstart={\n              draggable && !blockLine && !disabled\n                ? this.handleDragStart\n                : undefined\n            }\n            tmNode={tmNode}\n          />\n          {draggable\n            ? this.showDropMark\n              ? renderDropMark({\n                  el: this.contentElRef.value!,\n                  position: this.droppingPosition!,\n                  offsetLevel: this.droppingOffsetLevel,\n                  indent\n                })\n              : this.showDropMarkAsParent\n                ? renderDropMark({\n                    el: this.contentElRef.value!,\n                    position: 'inside',\n                    offsetLevel: this.droppingOffsetLevel,\n                    indent\n                  })\n                : null\n            : null}\n          {checkboxOnRight ? checkboxNode : null}\n        </div>\n      </div>\n    )\n  }\n})\n\nexport default TreeNode\n","import type { PropType } from 'vue'\nimport type { TmNode } from './interface'\nimport { pxfy } from 'seemly'\nimport { defineComponent, h } from 'vue'\nimport FadeInExpandTransition from '../../_internal/fade-in-expand-transition'\nimport TreeNode from './TreeNode'\n\nexport default defineComponent({\n  name: 'TreeMotionWrapper',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    height: Number,\n    nodes: {\n      type: Array as PropType<TmNode[]>,\n      required: true\n    },\n    mode: {\n      type: String as PropType<'expand' | 'collapse'>,\n      required: true\n    },\n    onAfterEnter: {\n      type: Function as PropType<() => void>,\n      required: true\n    }\n  },\n  render() {\n    const { clsPrefix } = this\n    return (\n      <FadeInExpandTransition\n        onAfterEnter={this.onAfterEnter}\n        appear\n        reverse={this.mode === 'collapse'}\n      >\n        {{\n          default: () => (\n            <div\n              class={[\n                `${clsPrefix}-tree-motion-wrapper`,\n                `${clsPrefix}-tree-motion-wrapper--${this.mode}`\n              ]}\n              style={{\n                height: pxfy(this.height)\n              }}\n            >\n              {this.nodes.map(node => (\n                <TreeNode clsPrefix={clsPrefix} tmNode={node} />\n              ))}\n            </div>\n          )\n        }}\n      </FadeInExpandTransition>\n    )\n  }\n})\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM, cNotM } from '../../../_utils/cssr'\n\nconst iconSwitchTransitionNode = iconSwitchTransition()\n\n// vars:\n// --n-arrow-color\n// --n-bezier\n// --n-font-size\n// --n-node-border-radius\n// --n-node-color-active\n// --n-node-color-hover\n// --n-node-color-pressed\n// --n-node-text-color\n// --n-node-text-color-disabled\n// --n-node-wrapper-padding\n// --n-line-offset-top\n// --n-line-offset-bottom\n// --n-node-content-height\n// --n-line-height\n// --n-line-color\nexport default cB('tree', `\n  font-size: var(--n-font-size);\n  outline: none;\n`, [\n  c('ul, li', `\n    margin: 0;\n    padding: 0;\n    list-style: none;\n  `),\n  c('>', [\n    cB('tree-node', [\n      c('&:first-child', 'margin-top: 0;')\n    ])\n  ]),\n  cB('tree-motion-wrapper', [\n    cM('expand', [\n      fadeInHeightExpandTransition({\n        duration: '0.2s'\n      })\n    ]),\n    cM('collapse', [\n      fadeInHeightExpandTransition({\n        duration: '0.2s',\n        reverse: true\n      })\n    ])\n  ]),\n  cB('tree-node-wrapper', `\n    box-sizing: border-box;\n    padding: var(--n-node-wrapper-padding);\n  `),\n  cB('tree-node', `\n    position: relative;\n    display: flex;\n    border-radius: var(--n-node-border-radius);\n    transition: background-color .3s var(--n-bezier);\n  `, [\n    cM('highlight', [\n      cB('tree-node-content', [\n        cE('text', 'border-bottom-color: var(--n-node-text-color-disabled);')\n      ])\n    ]),\n    cM('disabled', [\n      cB('tree-node-content', `\n        color: var(--n-node-text-color-disabled);\n        cursor: not-allowed;\n      `)\n    ]),\n    cNotM('disabled', [\n      cM('clickable', [\n        cB('tree-node-content', `\n          cursor: pointer;\n        `)\n      ])\n    ])\n  ]),\n  cM('block-node', [\n    cB('tree-node-content', `\n      flex: 1;\n      min-width: 0;\n    `)\n  ]),\n  cNotM('block-line', [\n    cB('tree-node', [\n      cNotM('disabled', [\n        cB('tree-node-content', [\n          c('&:hover', 'background: var(--n-node-color-hover);')\n        ]),\n        cM('selectable', [\n          cB('tree-node-content', [\n            c('&:active', 'background: var(--n-node-color-pressed);')\n          ])\n        ]),\n        cM('pending', [\n          cB('tree-node-content', `\n            background: var(--n-node-color-hover);\n          `)\n        ]),\n        cM('selected', [\n          cB('tree-node-content', 'background: var(--n-node-color-active);')\n        ])\n      ]),\n      cM('selected', [\n        cB('tree-node-content', 'background: var(--n-node-color-active);')\n      ])\n    ])\n  ]),\n  cM('block-line', [\n    cB('tree-node', [\n      cNotM('disabled', [\n        c('&:hover', 'background: var(--n-node-color-hover);'),\n        cM('pending', `\n          background: var(--n-node-color-hover);\n        `),\n        cM('selectable', [\n          cNotM('selected', [\n            c('&:active', 'background: var(--n-node-color-pressed);')\n          ])\n        ]),\n        cM('selected', 'background: var(--n-node-color-active);')\n      ]),\n      cM('selected', 'background: var(--n-node-color-active);'),\n      cM('disabled', `\n        cursor: not-allowed;\n      `)\n    ])\n  ]),\n  cM('ellipsis', [\n    cB('tree-node', [\n      cB('tree-node-content', `\n        overflow: hidden;\n      `, [\n        cE('text', `\n          text-overflow: ellipsis;\n          white-space: nowrap;\n          overflow: hidden;\n        `)\n      ])\n    ])\n  ]),\n  cB('tree-node-indent', `\n    flex-grow: 0;\n    flex-shrink: 0;\n  `, [\n    cM('show-line', 'position: relative', [\n      c('&::before', `\n        position: absolute;\n        left: 50%;\n        border-left: 1px solid var(--n-line-color);\n        transition: border-color .3s var(--n-bezier);\n        transform: translate(-50%);\n        content: \"\";\n        top: var(--n-line-offset-top);\n        bottom: var(--n-line-offset-bottom);\n      `),\n      cM('last-child', [\n        c('&::before', `\n          bottom: 50%;\n        `)\n      ]),\n      cM('is-leaf', [\n        c('&::after', `\n          position: absolute;\n          content: \"\";\n          left: calc(50% + 0.5px);\n          right: 0;\n          bottom: 50%;\n          transition: border-color .3s var(--n-bezier);\n          border-bottom: 1px solid var(--n-line-color);\n        `)\n      ])\n    ]),\n    cNotM('show-line', 'height: 0;')\n  ]),\n  cB('tree-node-switcher', `\n    cursor: pointer;\n    display: inline-flex;\n    flex-shrink: 0;\n    height: var(--n-node-content-height);\n    align-items: center;\n    justify-content: center;\n    transition: transform .15s var(--n-bezier);\n    vertical-align: bottom;\n  `, [\n    cE('icon', `\n      position: relative;\n      height: 14px;\n      width: 14px;\n      display: flex;\n      color: var(--n-arrow-color);\n      transition: color .3s var(--n-bezier);\n      font-size: 14px;\n    `, [\n      cB('icon', [\n        iconSwitchTransitionNode\n      ]),\n      cB('base-loading', `\n        color: var(--n-loading-color);\n        position: absolute;\n        left: 0;\n        top: 0;\n        right: 0;\n        bottom: 0;\n      `, [\n        iconSwitchTransitionNode\n      ]),\n      cB('base-icon', [\n        iconSwitchTransitionNode\n      ])\n    ]),\n    cM('hide', 'visibility: hidden;'),\n    cM('expanded', 'transform: rotate(90deg);')\n  ]),\n  cB('tree-node-checkbox', `\n    display: inline-flex;\n    height: var(--n-node-content-height);\n    vertical-align: bottom;\n    align-items: center;\n    justify-content: center;\n  `),\n  cB('tree-node-content', `\n    user-select: none;\n    position: relative;\n    display: inline-flex;\n    align-items: center;\n    min-height: var(--n-node-content-height);\n    box-sizing: border-box;\n    line-height: var(--n-line-height);\n    vertical-align: bottom;\n    padding: 0 6px 0 4px;\n    cursor: default;\n    border-radius: var(--n-node-border-radius);\n    color: var(--n-node-text-color);\n    transition:\n      color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier);\n  `, [\n    c('&:last-child', 'margin-bottom: 0;'),\n    cE('prefix', `\n      display: inline-flex;\n      margin-right: 8px;\n    `),\n    cE('text', `\n      border-bottom: 1px solid #0000;\n      transition: border-color .3s var(--n-bezier);\n      flex-grow: 1;\n      max-width: 100%;\n    `),\n    cE('suffix', `\n      display: inline-flex;\n    `)\n  ]),\n  cE('empty', 'margin: auto;')\n])\n","import type { CheckStrategy, TreeMateOptions } from 'treemate'\nimport type {\n  CSSProperties,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { VirtualListInst, VirtualListScrollToOptions } from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ScrollbarProps } from '../../scrollbar/src/Scrollbar'\nimport type { TreeTheme, TreeThemeOverrides } from '../styles'\nimport type {\n  AllowDrop,\n  CheckOnClick,\n  DropPosition,\n  GetChildren,\n  InternalDragInfo,\n  InternalDropInfo,\n  InternalTreeInst,\n  Key,\n  MotionData,\n  OnLoad,\n  RenderLabel,\n  RenderPrefix,\n  RenderSuffix,\n  RenderSwitcherIcon,\n  TmNode,\n  TreeDragInfo,\n  TreeDropInfo,\n  TreeInst,\n  TreeNodeProps,\n  TreeOption,\n  TreeOptions,\n  TreeOverrideNodeClickBehavior\n} from './interface'\nimport type { TreeSpinProps } from './public-types'\nimport { depx, getPadding, pxfy } from 'seemly'\nimport { createIndexGetter, createTreeMate, flatten } from 'treemate'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  inject,\n  nextTick,\n  provide,\n  ref,\n  toRef,\n  watch,\n  watchEffect\n} from 'vue'\nimport { VVirtualList } from 'vueuc'\nimport { NxScrollbar } from '../../_internal'\nimport { useConfig, useRtl, useTheme, useThemeClass } from '../../_mixins'\nimport { call, createDataKey, resolveSlot, warn, warnOnce } from '../../_utils'\nimport { NEmpty } from '../../empty'\nimport { treeSelectInjectionKey } from '../../tree-select/src/interface'\nimport { treeLight } from '../styles'\nimport { defaultAllowDrop } from './dnd'\nimport { treeInjectionKey } from './interface'\nimport { useKeyboard } from './keyboard'\nimport MotionWrapper from './MotionWrapper'\nimport style from './styles/index.cssr'\nimport NTreeNode from './TreeNode'\nimport {\n  emptyImage,\n  filterTree,\n  isNodeDisabled,\n  keysWithFilter,\n  useMergedCheckStrategy\n} from './utils'\n\nexport function createTreeMateOptions<T>(\n  keyField: string,\n  childrenField: string,\n  disabledField: string,\n  getChildren: GetChildren | undefined\n): TreeMateOptions<T, T, T> {\n  const settledGetChildren: GetChildren\n    = getChildren\n      || ((node: T) => {\n        return (node as any)[childrenField]\n      })\n  return {\n    getIsGroup() {\n      return false\n    },\n    getKey(node: T) {\n      return (node as any)[keyField]\n    },\n    getChildren: settledGetChildren,\n    getDisabled(node: T) {\n      return !!((node as any)[disabledField] || (node as any).checkboxDisabled)\n    }\n  }\n}\n\nexport type OnUpdateCheckedKeys = (\n  value: Array<string & number>,\n  option: Array<TreeOption | null>,\n  meta: {\n    node: TreeOption | null\n    action: 'check' | 'uncheck'\n  }\n) => void\nexport type OnUpdateCheckedKeysImpl = (\n  value: Key[],\n  option: Array<TreeOption | null>,\n  meta: {\n    node: TreeOption | null\n    action: 'check' | 'uncheck'\n  }\n) => void\nexport type OnUpdateIndeterminateKeys = (\n  value: Array<string & number>,\n  option: Array<TreeOption | null>\n) => void\nexport type OnUpdateIndeterminateKeysImpl = (\n  value: Key[],\n  option: Array<TreeOption | null>\n) => void\nexport type OnUpdateSelectedKeys = (\n  value: Array<string & number>,\n  option: Array<TreeOption | null>,\n  meta: {\n    node: TreeOption | null\n    action: 'select' | 'unselect'\n  }\n) => void\nexport type OnUpdateSelectedKeysImpl = (\n  value: Key[],\n  option: Array<TreeOption | null>,\n  meta: {\n    node: TreeOption | null\n    action: 'select' | 'unselect'\n  }\n) => void\nexport type onUpdateExpandedKeys = (\n  value: Array<string & number>,\n  option: Array<TreeOption | null>,\n  meta:\n    | {\n      node: TreeOption\n      action: 'expand' | 'collapse'\n    }\n    | {\n      node: null\n      action: 'filter'\n    }\n) => void\nexport type OnUpdateExpandedKeysImpl = (\n  value: Key[],\n  option: Array<TreeOption | null>,\n  meta:\n    | {\n      node: TreeOption\n      action: 'expand' | 'collapse'\n    }\n    | {\n      node: null\n      action: 'filter'\n    }\n) => void\n\nexport const treeSharedProps = {\n  allowCheckingNotLoaded: Boolean,\n  filter: Function as PropType<(pattern: string, node: TreeOption) => boolean>,\n  defaultExpandAll: Boolean,\n  expandedKeys: Array as PropType<Key[]>,\n  keyField: {\n    type: String,\n    default: 'key'\n  },\n  labelField: {\n    type: String,\n    default: 'label'\n  },\n  childrenField: {\n    type: String,\n    default: 'children'\n  },\n  disabledField: {\n    type: String,\n    default: 'disabled'\n  },\n  defaultExpandedKeys: {\n    type: Array as PropType<Key[]>,\n    default: () => []\n  },\n  indent: {\n    type: Number,\n    default: 24\n  },\n  indeterminateKeys: Array as PropType<Key[]>,\n  renderSwitcherIcon: Function as PropType<RenderSwitcherIcon>,\n  onUpdateIndeterminateKeys: [Function, Array] as PropType<\n    MaybeArray<OnUpdateIndeterminateKeys>\n  >,\n  'onUpdate:indeterminateKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateIndeterminateKeys>\n  >,\n  onUpdateExpandedKeys: [Function, Array] as PropType<\n    MaybeArray<onUpdateExpandedKeys>\n  >,\n  'onUpdate:expandedKeys': [Function, Array] as PropType<\n    MaybeArray<onUpdateExpandedKeys>\n  >,\n  overrideDefaultNodeClickBehavior:\n    Function as PropType<TreeOverrideNodeClickBehavior>\n} as const\n\nexport const treeProps = {\n  ...(useTheme.props as ThemeProps<TreeTheme, TreeThemeOverrides>),\n  accordion: Boolean,\n  showIrrelevantNodes: { type: Boolean, default: true },\n  data: {\n    type: Array as PropType<TreeOptions>,\n    default: () => []\n  },\n  expandOnDragenter: {\n    type: Boolean,\n    default: true\n  },\n  expandOnClick: Boolean,\n  checkOnClick: {\n    type: [Boolean, Function] as PropType<boolean | CheckOnClick>,\n    default: false\n  },\n  cancelable: {\n    type: Boolean,\n    default: true\n  },\n  checkable: Boolean,\n  draggable: Boolean,\n  blockNode: Boolean,\n  blockLine: Boolean,\n  showLine: Boolean,\n  disabled: Boolean,\n  checkedKeys: Array as PropType<Key[]>,\n  defaultCheckedKeys: {\n    type: Array as PropType<Key[]>,\n    default: () => []\n  },\n  selectedKeys: Array as PropType<Key[]>,\n  defaultSelectedKeys: {\n    type: Array as PropType<Key[]>,\n    default: () => []\n  },\n  multiple: Boolean,\n  pattern: {\n    type: String,\n    default: ''\n  },\n  onLoad: Function as PropType<OnLoad>,\n  cascade: Boolean,\n  selectable: {\n    type: Boolean,\n    default: true\n  },\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  allowDrop: {\n    type: Function as PropType<AllowDrop>,\n    default: defaultAllowDrop\n  },\n  animated: {\n    type: Boolean,\n    default: true\n  },\n  ellipsis: Boolean,\n  checkboxPlacement: {\n    type: String as PropType<'left' | 'right'>,\n    default: 'left'\n  },\n  virtualScroll: Boolean,\n  watchProps: Array as PropType<\n    Array<'defaultCheckedKeys' | 'defaultSelectedKeys' | 'defaultExpandedKeys'>\n  >,\n  renderLabel: Function as PropType<RenderLabel>,\n  renderPrefix: Function as PropType<RenderPrefix>,\n  renderSuffix: Function as PropType<RenderSuffix>,\n  nodeProps: Function as PropType<TreeNodeProps>,\n  keyboard: {\n    type: Boolean,\n    default: true\n  },\n  getChildren: Function as PropType<GetChildren>,\n  onDragenter: [Function, Array] as PropType<\n    MaybeArray<(e: TreeDragInfo) => void>\n  >,\n  onDragleave: [Function, Array] as PropType<\n    MaybeArray<(e: TreeDragInfo) => void>\n  >,\n  onDragend: [Function, Array] as PropType<\n    MaybeArray<(e: TreeDragInfo) => void>\n  >,\n  onDragstart: [Function, Array] as PropType<\n    MaybeArray<(e: TreeDragInfo) => void>\n  >,\n  onDragover: [Function, Array] as PropType<\n    MaybeArray<(e: TreeDragInfo) => void>\n  >,\n  onDrop: [Function, Array] as PropType<MaybeArray<(e: TreeDropInfo) => void>>,\n  onUpdateCheckedKeys: [Function, Array] as PropType<\n    MaybeArray<OnUpdateCheckedKeys>\n  >,\n  'onUpdate:checkedKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateCheckedKeys>\n  >,\n  onUpdateSelectedKeys: [Function, Array] as PropType<\n    MaybeArray<OnUpdateSelectedKeys>\n  >,\n  'onUpdate:selectedKeys': [Function, Array] as PropType<\n    MaybeArray<OnUpdateSelectedKeys>\n  >,\n  ...treeSharedProps,\n  // internal props for tree-select\n  internalTreeSelect: Boolean,\n  internalScrollable: Boolean,\n  internalScrollablePadding: String,\n  // use it to display\n  internalRenderEmpty: Function as PropType<() => VNodeChild>,\n  internalHighlightKeySet: Object as PropType<Set<Key> | null>,\n  internalUnifySelectCheck: Boolean,\n  internalCheckboxFocusable: {\n    type: Boolean,\n    default: true\n  },\n  internalFocusable: {\n    // Make tree-select take over keyboard operations\n    type: Boolean,\n    default: true\n  },\n  checkStrategy: {\n    type: String as PropType<CheckStrategy>,\n    default: 'all'\n  },\n  spinProps: Object as PropType<TreeSpinProps>,\n  /**\n   * @deprecated\n   */\n  leafOnly: Boolean\n} as const\n\nexport type TreeProps = ExtractPublicPropTypes<typeof treeProps>\n\nexport interface TreeSlots {\n  default?: () => VNode[]\n  empty?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'Tree',\n  props: treeProps,\n  slots: Object as SlotsType<TreeSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.leafOnly) {\n          warnOnce(\n            'tree',\n            '`leaf-only` is deprecated, please use `check-strategy=\"child\"` instead'\n          )\n        }\n      })\n    }\n    const {\n      mergedClsPrefixRef,\n      inlineThemeDisabled,\n      mergedRtlRef,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const rtlEnabledRef = useRtl('Tree', mergedRtlRef, mergedClsPrefixRef)\n    const themeRef = useTheme(\n      'Tree',\n      '-tree',\n      style,\n      treeLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const mergedRenderEmptyRef = computed(() => {\n      return mergedComponentPropsRef?.value?.Tree?.renderEmpty\n    })\n    const selfElRef = ref<HTMLDivElement | null>(null)\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n    const virtualListInstRef = ref<VirtualListInst | null>(null)\n    function getScrollContainer(): HTMLElement | null | undefined {\n      return virtualListInstRef.value?.listElRef\n    }\n    function getScrollContent(): HTMLElement | null | undefined {\n      return virtualListInstRef.value?.itemsElRef\n    }\n\n    const mergedFilterRef = computed(() => {\n      const { filter } = props\n      if (filter)\n        return filter\n      const { labelField } = props\n      return (pattern: string, node: TreeOption): boolean => {\n        if (!pattern.length)\n          return true\n        const label = node[labelField]\n        if (typeof label === 'string') {\n          return label.toLowerCase().includes(pattern.toLowerCase())\n        }\n        return false\n      }\n    })\n\n    const filteredTreeInfoRef = computed<{\n      filteredTree: TreeOption[]\n      highlightKeySet: Set<Key> | null\n      expandedKeys: Key[] | undefined\n    }>(() => {\n      const { pattern } = props\n      if (!pattern) {\n        return {\n          filteredTree: props.data,\n          highlightKeySet: null,\n          expandedKeys: undefined\n        }\n      }\n      if (!pattern.length || !mergedFilterRef.value) {\n        return {\n          filteredTree: props.data,\n          highlightKeySet: null,\n          expandedKeys: undefined\n        }\n      }\n      return filterTree(\n        props.data,\n        mergedFilterRef.value,\n        pattern,\n        props.keyField,\n        props.childrenField\n      )\n    })\n\n    // We don't expect data source to change so we just determine it once\n    const displayTreeMateRef = computed(() =>\n      createTreeMate<TreeOption>(\n        props.showIrrelevantNodes\n          ? props.data\n          : filteredTreeInfoRef.value.filteredTree,\n        createTreeMateOptions(\n          props.keyField,\n          props.childrenField,\n          props.disabledField,\n          props.getChildren\n        )\n      )\n    )\n    const treeSelectInjection = inject(treeSelectInjectionKey, null)\n    const dataTreeMateRef = props.internalTreeSelect\n      ? treeSelectInjection!.dataTreeMate\n      : computed(() =>\n          props.showIrrelevantNodes\n            ? displayTreeMateRef.value\n            : createTreeMate(\n                props.data,\n                createTreeMateOptions(\n                  props.keyField,\n                  props.childrenField,\n                  props.disabledField,\n                  props.getChildren\n                )\n              )\n        )\n    const { watchProps } = props\n    const uncontrolledCheckedKeysRef = ref<Key[]>([])\n    if (watchProps?.includes('defaultCheckedKeys')) {\n      watchEffect(() => {\n        uncontrolledCheckedKeysRef.value = props.defaultCheckedKeys\n      })\n    }\n    else {\n      uncontrolledCheckedKeysRef.value = props.defaultCheckedKeys\n    }\n    const controlledCheckedKeysRef = toRef(props, 'checkedKeys')\n    const mergedCheckedKeysRef = useMergedState(\n      controlledCheckedKeysRef,\n      uncontrolledCheckedKeysRef\n    )\n    const checkedStatusRef = computed(() => {\n      const value = dataTreeMateRef.value.getCheckedKeys(\n        mergedCheckedKeysRef.value,\n        {\n          cascade: props.cascade,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        }\n      )\n      return value\n    })\n    const mergedCheckStrategyRef = useMergedCheckStrategy(props)\n    const displayedCheckedKeysRef = computed(() => {\n      return checkedStatusRef.value.checkedKeys\n    })\n    const displayedIndeterminateKeysRef = computed(() => {\n      const { indeterminateKeys } = props\n      if (indeterminateKeys !== undefined)\n        return indeterminateKeys\n      return checkedStatusRef.value.indeterminateKeys\n    })\n    const uncontrolledSelectedKeysRef = ref<Key[]>([])\n    if (watchProps?.includes('defaultSelectedKeys')) {\n      watchEffect(() => {\n        uncontrolledSelectedKeysRef.value = props.defaultSelectedKeys\n      })\n    }\n    else {\n      uncontrolledSelectedKeysRef.value = props.defaultSelectedKeys\n    }\n    const controlledSelectedKeysRef = toRef(props, 'selectedKeys')\n    const mergedSelectedKeysRef = useMergedState(\n      controlledSelectedKeysRef,\n      uncontrolledSelectedKeysRef\n    )\n    const uncontrolledExpandedKeysRef = ref<Key[]>([])\n\n    const initUncontrolledExpandedKeys = (keys: undefined | Key[]): void => {\n      uncontrolledExpandedKeysRef.value = props.defaultExpandAll\n        ? dataTreeMateRef.value.getNonLeafKeys()\n        : keys === undefined\n          ? props.defaultExpandedKeys\n          : keys\n    }\n    if (watchProps?.includes('defaultExpandedKeys')) {\n      // if watching defaultExpandedKeys, we use access props.defaultExpandedKeys inside initiator\n      watchEffect(() => {\n        initUncontrolledExpandedKeys(undefined)\n      })\n    }\n    else {\n      // We by default watchEffect since if defaultExpandAll is true, we should remain tree expand if data changes\n      watchEffect(() => {\n        initUncontrolledExpandedKeys(props.defaultExpandedKeys)\n      })\n    }\n\n    const controlledExpandedKeysRef = toRef(props, 'expandedKeys')\n    const mergedExpandedKeysRef = useMergedState(\n      controlledExpandedKeysRef,\n      uncontrolledExpandedKeysRef\n    )\n\n    const fNodesRef = computed(() =>\n      displayTreeMateRef.value.getFlattenedNodes(mergedExpandedKeysRef.value)\n    )\n\n    const { pendingNodeKeyRef, handleKeydown } = useKeyboard({\n      props,\n      mergedCheckedKeysRef,\n      mergedSelectedKeysRef,\n      fNodesRef,\n      mergedExpandedKeysRef,\n      handleCheck,\n      handleSelect,\n      handleSwitcherClick\n    })\n\n    let expandTimerId: number | null = null\n    let nodeKeyToBeExpanded: Key | null = null\n    const uncontrolledHighlightKeySetRef = ref(new Set<Key>())\n    const controlledHighlightKeySetRef = computed(() => {\n      return (\n        props.internalHighlightKeySet\n        || filteredTreeInfoRef.value.highlightKeySet\n      )\n    })\n    const mergedHighlightKeySetRef = useMergedState(\n      controlledHighlightKeySetRef,\n      uncontrolledHighlightKeySetRef\n    )\n    const loadingKeysRef = ref(new Set<Key>())\n    const expandedNonLoadingKeysRef = computed(() => {\n      return mergedExpandedKeysRef.value.filter(\n        key => !loadingKeysRef.value.has(key)\n      )\n    })\n\n    let dragStartX: number = 0\n    const draggingNodeRef = ref<TmNode | null>(null)\n    const droppingNodeRef = ref<TmNode | null>(null)\n    const droppingMouseNodeRef = ref<TmNode | null>(null)\n    const droppingPositionRef = ref<'before' | 'inside' | 'after' | null>(null)\n    const droppingOffsetLevelRef = ref<number>(0)\n    const droppingNodeParentRef = computed(() => {\n      const { value: droppingNode } = droppingNodeRef\n      if (!droppingNode)\n        return null\n      // May avoid overlap between line mark of first child & rect mark of parent\n      // if (droppingNode.isFirstChild && droppingPositionRef.value === 'before') {\n      //   return null\n      // }\n      return droppingNode.parent\n    })\n\n    // shallow watch data\n    let isDataReset = false\n    watch(\n      toRef(props, 'data'),\n      () => {\n        isDataReset = true\n        void nextTick(() => {\n          isDataReset = false\n        })\n        loadingKeysRef.value.clear()\n        pendingNodeKeyRef.value = null\n        resetDndState()\n      },\n      {\n        deep: false\n      }\n    )\n    let expandAnimationDisabled = false\n    const disableExpandAnimationForOneTick = (): void => {\n      expandAnimationDisabled = true\n      void nextTick(() => {\n        expandAnimationDisabled = false\n      })\n    }\n    let memoizedExpandedKeys: Key[] | undefined\n    watch(toRef(props, 'pattern'), (value, oldValue) => {\n      if (props.showIrrelevantNodes) {\n        memoizedExpandedKeys = undefined\n        if (value) {\n          const { expandedKeys: expandedKeysAfterChange, highlightKeySet }\n            = keysWithFilter(\n              props.data,\n              props.pattern,\n              props.keyField,\n              props.childrenField,\n              mergedFilterRef.value\n            )\n          uncontrolledHighlightKeySetRef.value = highlightKeySet\n          disableExpandAnimationForOneTick()\n          doUpdateExpandedKeys(\n            expandedKeysAfterChange,\n            getOptionsByKeys(expandedKeysAfterChange),\n            { node: null, action: 'filter' }\n          )\n        }\n        else {\n          uncontrolledHighlightKeySetRef.value = new Set()\n        }\n      }\n      else {\n        if (!value.length) {\n          if (memoizedExpandedKeys !== undefined) {\n            disableExpandAnimationForOneTick()\n            doUpdateExpandedKeys(\n              memoizedExpandedKeys,\n              getOptionsByKeys(memoizedExpandedKeys),\n              { node: null, action: 'filter' }\n            )\n          }\n        }\n        else {\n          if (!oldValue.length) {\n            memoizedExpandedKeys = mergedExpandedKeysRef.value\n          }\n          const { expandedKeys } = filteredTreeInfoRef.value\n          if (expandedKeys !== undefined) {\n            disableExpandAnimationForOneTick()\n            doUpdateExpandedKeys(expandedKeys, getOptionsByKeys(expandedKeys), {\n              node: null,\n              action: 'filter'\n            })\n          }\n        }\n      }\n    })\n    async function triggerLoading(node: TmNode): Promise<void> {\n      const { onLoad } = props\n      if (!onLoad) {\n        if (__DEV__) {\n          warn(\n            'tree',\n            'There is unloaded node in data but props.onLoad is not specified.'\n          )\n        }\n        await Promise.resolve()\n        return\n      }\n      const { value: loadingKeys } = loadingKeysRef\n      if (!loadingKeys.has(node.key)) {\n        loadingKeys.add(node.key)\n        try {\n          const loadResult = await onLoad(node.rawNode)\n          if (loadResult === false) {\n            resetDragExpandState()\n          }\n        }\n        catch (loadError) {\n          console.error(loadError)\n          resetDragExpandState()\n        }\n        loadingKeys.delete(node.key)\n      }\n    }\n    watchEffect(() => {\n      const { value: displayTreeMate } = displayTreeMateRef\n      if (!displayTreeMate)\n        return\n      const { getNode } = displayTreeMate\n      mergedExpandedKeysRef.value?.forEach((key) => {\n        const node = getNode(key)\n        if (node && !node.shallowLoaded) {\n          void triggerLoading(node)\n        }\n      })\n    })\n    // animation in progress\n    const aipRef = ref(false)\n    // animation flattened nodes\n    const afNodesRef = ref<Array<TmNode | MotionData>>([])\n    // Note: Since the virtual list depends on min height, if there's a node\n    // whose height starts from 0, the virtual list will have a wrong height\n    // during animation. This will seldom cause wired scrollbar status. It is\n    // fixable and need some changes in vueuc, I've no time so I just leave it\n    // here. Maybe the bug won't be fixed during the life time of the project.\n    watch(expandedNonLoadingKeysRef, (value, prevValue) => {\n      if (!props.animated || expandAnimationDisabled) {\n        void nextTick(syncScrollbar)\n        return\n      }\n      if (isDataReset) {\n        return\n      }\n      const nodeHeight = depx(themeRef.value.self.nodeHeight)\n      const prevVSet = new Set(prevValue)\n      let addedKey: Key | null = null\n      let removedKey: Key | null = null\n      for (const expandedKey of value) {\n        if (!prevVSet.has(expandedKey)) {\n          if (addedKey !== null)\n            return // multi expand, not triggered by click\n          addedKey = expandedKey\n        }\n      }\n      const currentVSet = new Set(value)\n      for (const expandedKey of prevValue) {\n        if (!currentVSet.has(expandedKey)) {\n          if (removedKey !== null)\n            return // multi collapse, not triggered by click\n          removedKey = expandedKey\n        }\n      }\n      if (addedKey === null && removedKey === null) {\n        // 1. multi action, not triggered by click\n        // 2. no action, don't know what happened\n        return\n      }\n      const { virtualScroll } = props\n      const viewportHeight = (\n        virtualScroll ? virtualListInstRef.value!.listElRef : selfElRef.value!\n      ).offsetHeight\n      const viewportItemCount = Math.ceil(viewportHeight / nodeHeight) + 1\n      // play add animation\n      let baseExpandedKeys: Key[] | undefined\n      if (addedKey !== null) {\n        baseExpandedKeys = prevValue\n      }\n      if (removedKey !== null) {\n        if (baseExpandedKeys === undefined) {\n          baseExpandedKeys = value\n        }\n        else {\n          baseExpandedKeys = baseExpandedKeys.filter(\n            key => key !== removedKey\n          )\n        }\n      }\n      aipRef.value = true\n      afNodesRef.value\n        = displayTreeMateRef.value.getFlattenedNodes(baseExpandedKeys)\n      if (addedKey !== null) {\n        const expandedNodeIndex = afNodesRef.value.findIndex(\n          node => (node as any).key === addedKey\n        )\n        if (~expandedNodeIndex) {\n          const children = (afNodesRef.value[expandedNodeIndex] as TmNode)\n            .children\n          // sometimes user will pass leaf keys in\n          if (children) {\n            const expandedChildren = flatten(children, value)\n            afNodesRef.value.splice(expandedNodeIndex + 1, 0, {\n              __motion: true,\n              mode: 'expand',\n              height: virtualScroll\n                ? expandedChildren.length * nodeHeight\n                : undefined,\n              nodes: virtualScroll\n                ? expandedChildren.slice(0, viewportItemCount)\n                : expandedChildren\n            })\n          }\n        }\n      }\n      if (removedKey !== null) {\n        const collapsedNodeIndex = afNodesRef.value.findIndex(\n          node => (node as any).key === removedKey\n        )\n        if (~collapsedNodeIndex) {\n          const collapsedNodeChildren = (\n            afNodesRef.value[collapsedNodeIndex] as TmNode\n          ).children\n          // Sometime the whole tree is change, remove a key doesn't mean it is collapsed,\n          // but maybe children removed\n          if (!collapsedNodeChildren)\n            return\n          // play remove animation\n          aipRef.value = true\n          const collapsedChildren = flatten(collapsedNodeChildren, value)\n          afNodesRef.value.splice(collapsedNodeIndex + 1, 0, {\n            __motion: true,\n            mode: 'collapse',\n            height: virtualScroll\n              ? collapsedChildren.length * nodeHeight\n              : undefined,\n            nodes: virtualScroll\n              ? collapsedChildren.slice(0, viewportItemCount)\n              : collapsedChildren\n          })\n        }\n      }\n    })\n\n    const getFIndexRef = computed(() => {\n      return createIndexGetter(fNodesRef.value)\n    })\n\n    const mergedFNodesRef = computed(() => {\n      if (aipRef.value)\n        return afNodesRef.value\n      else return fNodesRef.value\n    })\n\n    function syncScrollbar(): void {\n      const { value: scrollbarInst } = scrollbarInstRef\n      if (scrollbarInst)\n        scrollbarInst.sync()\n    }\n\n    function handleAfterEnter(): void {\n      aipRef.value = false\n      if (props.virtualScroll) {\n        // If virtual scroll, we won't listen to resize during animation, so\n        // resize callback of virtual list won't be called and as a result\n        // scrollbar won't sync. We need to sync scrollbar manually.\n        void nextTick(syncScrollbar)\n      }\n    }\n\n    function getOptionsByKeys(keys: Key[]): Array<TreeOption | null> {\n      const { getNode } = dataTreeMateRef.value\n      return keys.map(key => getNode(key)?.rawNode || null)\n    }\n\n    function doUpdateExpandedKeys(\n      value: Key[],\n      option: Array<TreeOption | null>,\n      meta:\n        | {\n          node: TreeOption\n          action: 'expand' | 'collapse'\n        }\n        | {\n          node: null\n          action: 'filter'\n        }\n    ): void {\n      const {\n        'onUpdate:expandedKeys': _onUpdateExpandedKeys,\n        onUpdateExpandedKeys\n      } = props\n      uncontrolledExpandedKeysRef.value = value\n      if (_onUpdateExpandedKeys) {\n        call(\n          _onUpdateExpandedKeys as OnUpdateExpandedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n      if (onUpdateExpandedKeys) {\n        call(\n          onUpdateExpandedKeys as OnUpdateExpandedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n    }\n    function doUpdateCheckedKeys(\n      value: Key[],\n      option: Array<TreeOption | null>,\n      meta: {\n        node: TreeOption | null\n        action: 'check' | 'uncheck'\n      }\n    ): void {\n      const {\n        'onUpdate:checkedKeys': _onUpdateCheckedKeys,\n        onUpdateCheckedKeys\n      } = props\n      uncontrolledCheckedKeysRef.value = value\n      if (onUpdateCheckedKeys) {\n        call(\n          onUpdateCheckedKeys as OnUpdateCheckedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n      if (_onUpdateCheckedKeys) {\n        call(\n          _onUpdateCheckedKeys as OnUpdateCheckedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n    }\n    function doUpdateIndeterminateKeys(\n      value: Key[],\n      option: Array<TreeOption | null>\n    ): void {\n      const {\n        'onUpdate:indeterminateKeys': _onUpdateIndeterminateKeys,\n        onUpdateIndeterminateKeys\n      } = props\n      if (_onUpdateIndeterminateKeys) {\n        call(\n          _onUpdateIndeterminateKeys as OnUpdateIndeterminateKeysImpl,\n          value,\n          option\n        )\n      }\n      if (onUpdateIndeterminateKeys) {\n        call(\n          onUpdateIndeterminateKeys as OnUpdateIndeterminateKeysImpl,\n          value,\n          option\n        )\n      }\n    }\n    function doUpdateSelectedKeys(\n      value: Key[],\n      option: Array<TreeOption | null>,\n      meta: {\n        node: TreeOption\n        action: 'select' | 'unselect'\n      }\n    ): void {\n      const {\n        'onUpdate:selectedKeys': _onUpdateSelectedKeys,\n        onUpdateSelectedKeys\n      } = props\n      uncontrolledSelectedKeysRef.value = value\n      if (onUpdateSelectedKeys) {\n        call(\n          onUpdateSelectedKeys as OnUpdateSelectedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n      if (_onUpdateSelectedKeys) {\n        call(\n          _onUpdateSelectedKeys as OnUpdateSelectedKeysImpl,\n          value,\n          option,\n          meta\n        )\n      }\n    }\n    // Drag & Drop\n    function doDragEnter(info: TreeDragInfo): void {\n      const { onDragenter } = props\n      if (onDragenter)\n        call(onDragenter, info)\n    }\n    function doDragLeave(info: TreeDragInfo): void {\n      const { onDragleave } = props\n      if (onDragleave)\n        call(onDragleave, info)\n    }\n    function doDragEnd(info: TreeDragInfo): void {\n      const { onDragend } = props\n      if (onDragend)\n        call(onDragend, info)\n    }\n    function doDragStart(info: TreeDragInfo): void {\n      const { onDragstart } = props\n      if (onDragstart)\n        call(onDragstart, info)\n    }\n    function doDragOver(info: TreeDragInfo): void {\n      const { onDragover } = props\n      if (onDragover)\n        call(onDragover, info)\n    }\n    function doDrop(info: TreeDropInfo): void {\n      const { onDrop } = props\n      if (onDrop)\n        call(onDrop, info)\n    }\n    function resetDndState(): void {\n      resetDragState()\n      resetDropState()\n    }\n    function resetDragState(): void {\n      draggingNodeRef.value = null\n    }\n    function resetDropState(): void {\n      droppingOffsetLevelRef.value = 0\n      droppingNodeRef.value = null\n      droppingMouseNodeRef.value = null\n      droppingPositionRef.value = null\n      resetDragExpandState()\n    }\n    function resetDragExpandState(): void {\n      if (expandTimerId) {\n        window.clearTimeout(expandTimerId)\n        expandTimerId = null\n      }\n      nodeKeyToBeExpanded = null\n    }\n    function handleCheck(node: TmNode, checked: boolean): void {\n      // We don't guard for leaf only since we have done it in view layer\n      if (props.disabled || isNodeDisabled(node, props.disabledField)) {\n        return\n      }\n      if (props.internalUnifySelectCheck && !props.multiple) {\n        handleSelect(node)\n        return\n      }\n      const checkedAction = checked ? 'check' : 'uncheck'\n      const { checkedKeys, indeterminateKeys } = dataTreeMateRef.value[\n        checkedAction\n      ](node.key, displayedCheckedKeysRef.value, {\n        cascade: props.cascade,\n        checkStrategy: mergedCheckStrategyRef.value,\n        allowNotLoaded: props.allowCheckingNotLoaded\n      })\n      doUpdateCheckedKeys(checkedKeys, getOptionsByKeys(checkedKeys), {\n        node: node.rawNode,\n        action: checkedAction\n      })\n      doUpdateIndeterminateKeys(\n        indeterminateKeys,\n        getOptionsByKeys(indeterminateKeys)\n      )\n    }\n    function toggleExpand(node: TmNode): void {\n      if (props.disabled)\n        return\n      const { key } = node\n      const { value: mergedExpandedKeys } = mergedExpandedKeysRef\n      const index = mergedExpandedKeys.findIndex(\n        expandNodeId => expandNodeId === key\n      )\n      if (~index) {\n        const expandedKeysAfterChange = Array.from(mergedExpandedKeys)\n        expandedKeysAfterChange.splice(index, 1)\n        doUpdateExpandedKeys(\n          expandedKeysAfterChange,\n          getOptionsByKeys(expandedKeysAfterChange),\n          {\n            node: node.rawNode,\n            action: 'collapse'\n          }\n        )\n      }\n      else {\n        const nodeToBeExpanded = displayTreeMateRef.value.getNode(key)\n        if (!nodeToBeExpanded || nodeToBeExpanded.isLeaf) {\n          return\n        }\n        let nextKeys: Key[]\n        if (props.accordion) {\n          const siblingKeySet = new Set<Key>(\n            node.siblings.map(({ key }) => key)\n          )\n          nextKeys = mergedExpandedKeys.filter((expandedKey) => {\n            return !siblingKeySet.has(expandedKey)\n          })\n          nextKeys.push(key)\n        }\n        else {\n          nextKeys = mergedExpandedKeys.concat(key)\n        }\n        doUpdateExpandedKeys(nextKeys, getOptionsByKeys(nextKeys), {\n          node: node.rawNode,\n          action: 'expand'\n        })\n      }\n    }\n    function handleSwitcherClick(node: TmNode): void {\n      if (props.disabled || aipRef.value)\n        return\n      toggleExpand(node)\n    }\n    function handleSelect(node: TmNode): void {\n      if (props.disabled || !props.selectable) {\n        return\n      }\n      pendingNodeKeyRef.value = node.key\n      if (props.internalUnifySelectCheck) {\n        const {\n          value: { checkedKeys, indeterminateKeys }\n        } = checkedStatusRef\n        if (props.multiple) {\n          handleCheck(\n            node,\n            !(\n              checkedKeys.includes(node.key)\n              || indeterminateKeys.includes(node.key)\n            )\n          )\n        }\n        else {\n          doUpdateCheckedKeys([node.key], getOptionsByKeys([node.key]), {\n            node: node.rawNode,\n            action: 'check'\n          })\n        }\n      }\n      if (props.multiple) {\n        const selectedKeys = Array.from(mergedSelectedKeysRef.value)\n        const index = selectedKeys.findIndex(key => key === node.key)\n        if (~index) {\n          if (props.cancelable) {\n            selectedKeys.splice(index, 1)\n          }\n        }\n        else if (!~index) {\n          selectedKeys.push(node.key)\n        }\n        doUpdateSelectedKeys(selectedKeys, getOptionsByKeys(selectedKeys), {\n          node: node.rawNode,\n          action: ~index ? 'unselect' : 'select'\n        })\n      }\n      else {\n        const selectedKeys = mergedSelectedKeysRef.value\n        if (selectedKeys.includes(node.key)) {\n          if (props.cancelable) {\n            doUpdateSelectedKeys([], [], {\n              node: node.rawNode,\n              action: 'unselect'\n            })\n          }\n        }\n        else {\n          doUpdateSelectedKeys([node.key], getOptionsByKeys([node.key]), {\n            node: node.rawNode,\n            action: 'select'\n          })\n        }\n      }\n    }\n\n    function expandDragEnterNode(node: TmNode): void {\n      if (expandTimerId) {\n        window.clearTimeout(expandTimerId)\n        expandTimerId = null\n      }\n      // Don't expand leaf node.\n      if (node.isLeaf)\n        return\n      nodeKeyToBeExpanded = node.key\n      const expand = (): void => {\n        if (nodeKeyToBeExpanded !== node.key)\n          return\n        const { value: droppingMouseNode } = droppingMouseNodeRef\n        if (\n          droppingMouseNode\n          && droppingMouseNode.key === node.key\n          && !mergedExpandedKeysRef.value.includes(node.key)\n        ) {\n          const nextKeys = mergedExpandedKeysRef.value.concat(node.key)\n          doUpdateExpandedKeys(nextKeys, getOptionsByKeys(nextKeys), {\n            node: node.rawNode,\n            action: 'expand'\n          })\n        }\n        expandTimerId = null\n        nodeKeyToBeExpanded = null\n      }\n      if (!node.shallowLoaded) {\n        expandTimerId = window.setTimeout(() => {\n          void triggerLoading(node).then(() => {\n            expand()\n          })\n        }, 1000)\n      }\n      else {\n        expandTimerId = window.setTimeout(() => {\n          expand()\n        }, 1000)\n      }\n    }\n\n    // Dnd\n    function handleDragEnter({ event, node }: InternalDragInfo): void {\n      // node should be a tmNode\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      handleDragOver({ event, node }, false)\n      doDragEnter({ event, node: node.rawNode })\n    }\n    function handleDragLeave({ event, node }: InternalDragInfo): void {\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      doDragLeave({ event, node: node.rawNode })\n    }\n    function handleDragLeaveTree(e: DragEvent): void {\n      if (e.target !== e.currentTarget)\n        return\n      resetDropState()\n    }\n    // Dragend is ok, we don't need to add global listener to reset drag status\n    function handleDragEnd({ event, node }: InternalDragInfo): void {\n      resetDndState()\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      doDragEnd({ event, node: node.rawNode })\n    }\n    function handleDragStart({ event, node }: InternalDragInfo): void {\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      // Most of time, the image will block user's view\n      if (emptyImage) {\n        event.dataTransfer?.setDragImage(emptyImage, 0, 0)\n      }\n      dragStartX = event.clientX\n      draggingNodeRef.value = node\n      doDragStart({ event, node: node.rawNode })\n    }\n    function handleDragOver(\n      { event, node }: InternalDragInfo,\n      emit: boolean = true\n    ): void {\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      const { value: draggingNode } = draggingNodeRef\n      if (!draggingNode)\n        return\n      const { allowDrop, indent } = props\n      if (emit)\n        doDragOver({ event, node: node.rawNode })\n      // Update dropping node\n      const el = event.currentTarget as HTMLElement\n      const { height: elOffsetHeight, top: elClientTop }\n        = el.getBoundingClientRect()\n      const eventOffsetY = event.clientY - elClientTop\n      let mousePosition: DropPosition\n\n      const allowDropInside = allowDrop({\n        node: node.rawNode,\n        dropPosition: 'inside',\n        phase: 'drag'\n      })\n\n      if (allowDropInside) {\n        if (eventOffsetY <= 8) {\n          mousePosition = 'before'\n        }\n        else if (eventOffsetY >= elOffsetHeight - 8) {\n          mousePosition = 'after'\n        }\n        else {\n          mousePosition = 'inside'\n        }\n      }\n      else {\n        if (eventOffsetY <= elOffsetHeight / 2) {\n          mousePosition = 'before'\n        }\n        else {\n          mousePosition = 'after'\n        }\n      }\n\n      const { value: getFindex } = getFIndexRef\n\n      /** determine the drop position and drop node */\n      /** the dropping node needn't to be the mouse hovering node! */\n      /**\n       * if there is something i've learned from implementing a complex\n       * drag & drop. that is never write unit test before you really figure\n       * out what behavior is exactly you want.\n       */\n      let finalDropNode: TmNode\n      let finalDropPosition: DropPosition\n      const hoverNodeFIndex = getFindex(node.key)\n      if (hoverNodeFIndex === null) {\n        resetDropState()\n        return\n      }\n\n      let mouseAtExpandedNonLeafNode = false\n      if (mousePosition === 'inside') {\n        finalDropNode = node\n        finalDropPosition = 'inside'\n      }\n      else {\n        if (mousePosition === 'before') {\n          if (node.isFirstChild) {\n            finalDropNode = node\n            finalDropPosition = 'before'\n          }\n          else {\n            finalDropNode = fNodesRef.value[hoverNodeFIndex - 1]\n            finalDropPosition = 'after'\n          }\n        }\n        else {\n          finalDropNode = node\n          finalDropPosition = 'after'\n        }\n      }\n\n      // If the node is non-leaf and it is expanded, we don't allow it to\n      // drop after it and change it to drop before its next view sibling\n      if (\n        !finalDropNode.isLeaf\n        && mergedExpandedKeysRef.value.includes(finalDropNode.key)\n      ) {\n        mouseAtExpandedNonLeafNode = true\n        if (finalDropPosition === 'after') {\n          finalDropNode = fNodesRef.value[hoverNodeFIndex + 1]\n          if (!finalDropNode) {\n            // maybe there is no next view sibling when non-leaf node has no\n            // children and it is the last node in the tree\n            finalDropNode = node\n            finalDropPosition = 'inside'\n          }\n          else {\n            finalDropPosition = 'before'\n          }\n        }\n      }\n\n      const droppingMouseNode = finalDropNode\n\n      droppingMouseNodeRef.value = droppingMouseNode\n\n      // This is a speacial case, user is dragging a last child itself, so we\n      // only view it as they are trying to drop after it.\n      // There are some relevant codes in bailout 1's child branch.\n      // Also, the expand bailout should have a high priority. If it's non-leaf\n      // node and expanded, keep its origin drop position\n      if (\n        !mouseAtExpandedNonLeafNode\n        && draggingNode.isLastChild\n        && draggingNode.key === finalDropNode.key\n      ) {\n        finalDropPosition = 'after'\n      }\n\n      if (finalDropPosition === 'after') {\n        let offset = dragStartX - event.clientX // drag left => > 0\n        let offsetLevel = 0\n        while (\n          offset >= indent / 2 // divide by 2 to make it easier to trigger\n          && finalDropNode.parent !== null\n          && finalDropNode.isLastChild\n          && offsetLevel < 1\n        ) {\n          offset -= indent\n          offsetLevel += 1\n          finalDropNode = finalDropNode.parent\n        }\n        droppingOffsetLevelRef.value = offsetLevel\n      }\n      else {\n        droppingOffsetLevelRef.value = 0\n      }\n\n      // Bailout 1\n      // Drag self into self\n      // Drag it into direct parent\n      if (\n        draggingNode.contains(finalDropNode)\n        || (finalDropPosition === 'inside'\n          && draggingNode.parent?.key === finalDropNode.key)\n      ) {\n        if (\n          draggingNode.key === droppingMouseNode.key\n          && draggingNode.key === finalDropNode.key\n        ) {\n          // This is special case that we want ui to show a mark to guide user\n          // to start dragging. Nor they will think nothing happens.\n          // However this is an invalid drop, we need to guard it inside\n          // handleDrop\n        }\n        else {\n          resetDropState()\n          return\n        }\n      }\n\n      // Bailout 3\n      if (\n        !allowDrop({\n          node: finalDropNode.rawNode,\n          dropPosition: finalDropPosition,\n          phase: 'drag'\n        })\n      ) {\n        resetDropState()\n        return\n      }\n\n      if (draggingNode.key === finalDropNode.key) {\n        // don't expand when drag on itself\n        resetDragExpandState()\n      }\n      else {\n        if (nodeKeyToBeExpanded !== finalDropNode.key) {\n          if (finalDropPosition === 'inside') {\n            if (props.expandOnDragenter) {\n              expandDragEnterNode(finalDropNode)\n              // Bailout 4\n              // not try to loading\n              if (\n                !finalDropNode.shallowLoaded\n                && nodeKeyToBeExpanded !== finalDropNode.key\n              ) {\n                resetDndState()\n                return\n              }\n            }\n            else {\n              // Bailout 5\n              // never expands on drag\n              if (!finalDropNode.shallowLoaded) {\n                resetDndState()\n                return\n              }\n            }\n          }\n          else {\n            resetDragExpandState()\n          }\n        }\n        else {\n          if (finalDropPosition !== 'inside') {\n            resetDragExpandState()\n          }\n        }\n      }\n      droppingPositionRef.value = finalDropPosition\n      droppingNodeRef.value = finalDropNode\n    }\n    function handleDrop({ event, node, dropPosition }: InternalDropInfo): void {\n      if (\n        !props.draggable\n        || props.disabled\n        || isNodeDisabled(node, props.disabledField)\n      ) {\n        return\n      }\n      const { value: draggingNode } = draggingNodeRef\n      const { value: droppingNode } = droppingNodeRef\n      const { value: droppingPosition } = droppingPositionRef\n      if (!draggingNode || !droppingNode || !droppingPosition) {\n        return\n      }\n      // Bailout 1\n      if (\n        !props.allowDrop({\n          node: droppingNode.rawNode,\n          dropPosition: droppingPosition,\n          phase: 'drag'\n        })\n      ) {\n        return\n      }\n      // Bailout 2\n      // This is a special case to guard since we want ui to show the status\n      // but not to emit a event\n      if (draggingNode.key === droppingNode.key) {\n        return\n      }\n      // Bailout 3\n      // insert before its next node\n      // insert after its prev node\n      if (droppingPosition === 'before') {\n        const nextNode = draggingNode.getNext({ includeDisabled: true })\n        if (nextNode) {\n          if (nextNode.key === droppingNode.key) {\n            resetDropState()\n            return\n          }\n        }\n      }\n      if (droppingPosition === 'after') {\n        const prevNode = draggingNode.getPrev({ includeDisabled: true })\n        if (prevNode) {\n          if (prevNode.key === droppingNode.key) {\n            resetDropState()\n            return\n          }\n        }\n      }\n\n      doDrop({\n        event,\n        node: droppingNode.rawNode,\n        dragNode: draggingNode.rawNode,\n        dropPosition\n      })\n      resetDndState()\n    }\n    function handleScroll(): void {\n      syncScrollbar()\n    }\n    function handleResize(): void {\n      syncScrollbar()\n    }\n    function handleFocusout(e: FocusEvent): void {\n      if (props.virtualScroll || props.internalScrollable) {\n        const { value: scrollbarInst } = scrollbarInstRef\n        if (scrollbarInst?.containerRef?.contains(e.relatedTarget as Element)) {\n          return\n        }\n        pendingNodeKeyRef.value = null\n      }\n      else {\n        const { value: selfEl } = selfElRef\n        if (selfEl?.contains(e.relatedTarget as Element))\n          return\n        pendingNodeKeyRef.value = null\n      }\n    }\n    watch(pendingNodeKeyRef, (value) => {\n      if (value === null)\n        return\n      if (props.virtualScroll) {\n        virtualListInstRef.value?.scrollTo({ key: value })\n      }\n      else if (props.internalScrollable) {\n        const { value: scrollbarInst } = scrollbarInstRef\n        if (scrollbarInst === null)\n          return\n        const targetEl = scrollbarInst.contentRef?.querySelector(\n          `[data-key=\"${createDataKey(value)}\"]`\n        )\n        if (!targetEl)\n          return\n        scrollbarInst.scrollTo({\n          el: targetEl as any\n        })\n      }\n    })\n    provide(treeInjectionKey, {\n      loadingKeysRef,\n      highlightKeySetRef: mergedHighlightKeySetRef,\n      displayedCheckedKeysRef,\n      displayedIndeterminateKeysRef,\n      mergedSelectedKeysRef,\n      mergedExpandedKeysRef,\n      mergedThemeRef: themeRef,\n      mergedCheckStrategyRef,\n      nodePropsRef: toRef(props, 'nodeProps'),\n      disabledRef: toRef(props, 'disabled'),\n      checkableRef: toRef(props, 'checkable'),\n      selectableRef: toRef(props, 'selectable'),\n      expandOnClickRef: toRef(props, 'expandOnClick'),\n      onLoadRef: toRef(props, 'onLoad'),\n      draggableRef: toRef(props, 'draggable'),\n      blockLineRef: toRef(props, 'blockLine'),\n      indentRef: toRef(props, 'indent'),\n      cascadeRef: toRef(props, 'cascade'),\n      checkOnClickRef: toRef(props, 'checkOnClick'),\n      checkboxPlacementRef: props.checkboxPlacement,\n      droppingMouseNodeRef,\n      droppingNodeParentRef,\n      draggingNodeRef,\n      droppingPositionRef,\n      droppingOffsetLevelRef,\n      fNodesRef,\n      pendingNodeKeyRef,\n      showLineRef: toRef(props, 'showLine'),\n      disabledFieldRef: toRef(props, 'disabledField'),\n      internalScrollableRef: toRef(props, 'internalScrollable'),\n      internalCheckboxFocusableRef: toRef(props, 'internalCheckboxFocusable'),\n      internalTreeSelect: props.internalTreeSelect,\n      renderLabelRef: toRef(props, 'renderLabel'),\n      renderPrefixRef: toRef(props, 'renderPrefix'),\n      renderSuffixRef: toRef(props, 'renderSuffix'),\n      renderSwitcherIconRef: toRef(props, 'renderSwitcherIcon'),\n      labelFieldRef: toRef(props, 'labelField'),\n      multipleRef: toRef(props, 'multiple'),\n      overrideDefaultNodeClickBehaviorRef: toRef(\n        props,\n        'overrideDefaultNodeClickBehavior'\n      ),\n      spinPropsRef: toRef(props, 'spinProps'),\n      handleSwitcherClick,\n      handleDragEnd,\n      handleDragEnter,\n      handleDragLeave,\n      handleDragStart,\n      handleDrop,\n      handleDragOver,\n      handleSelect,\n      handleCheck\n    })\n    function scrollTo(\n      options: VirtualListScrollToOptions | number,\n      y?: number\n    ): void {\n      if (typeof options === 'number') {\n        virtualListInstRef.value?.scrollTo(options, y || 0)\n      }\n      else {\n        virtualListInstRef.value?.scrollTo(options)\n      }\n    }\n    const exposedMethods: InternalTreeInst & TreeInst = {\n      handleKeydown,\n      scrollTo,\n      getCheckedData: () => {\n        if (!props.checkable)\n          return { keys: [], options: [] }\n        const { checkedKeys } = checkedStatusRef.value\n        return {\n          keys: checkedKeys,\n          options: getOptionsByKeys(checkedKeys)\n        }\n      },\n      getIndeterminateData: () => {\n        if (!props.checkable)\n          return { keys: [], options: [] }\n        const { indeterminateKeys } = checkedStatusRef.value\n        return {\n          keys: indeterminateKeys,\n          options: getOptionsByKeys(indeterminateKeys)\n        }\n      }\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          fontSize,\n          nodeBorderRadius,\n          nodeColorHover,\n          nodeColorPressed,\n          nodeColorActive,\n          arrowColor,\n          loadingColor,\n          nodeTextColor,\n          nodeTextColorDisabled,\n          dropMarkColor,\n          nodeWrapperPadding,\n          nodeHeight,\n          lineHeight,\n          lineColor\n        }\n      } = themeRef.value\n      const lineOffsetTop = getPadding(nodeWrapperPadding, 'top')\n      const lineOffsetBottom = getPadding(nodeWrapperPadding, 'bottom')\n      const nodeContentHeight = pxfy(\n        depx(nodeHeight) - depx(lineOffsetTop) - depx(lineOffsetBottom)\n      )\n      return {\n        '--n-arrow-color': arrowColor,\n        '--n-loading-color': loadingColor,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': fontSize,\n        '--n-node-border-radius': nodeBorderRadius,\n        '--n-node-color-active': nodeColorActive,\n        '--n-node-color-hover': nodeColorHover,\n        '--n-node-color-pressed': nodeColorPressed,\n        '--n-node-text-color': nodeTextColor,\n        '--n-node-text-color-disabled': nodeTextColorDisabled,\n        '--n-drop-mark-color': dropMarkColor,\n        '--n-node-wrapper-padding': nodeWrapperPadding,\n        '--n-line-offset-top': `-${lineOffsetTop}`,\n        '--n-line-offset-bottom': `-${lineOffsetBottom}`,\n        '--n-node-content-height': nodeContentHeight,\n        '--n-line-height': lineHeight,\n        '--n-line-color': lineColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('tree', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      ...exposedMethods,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedTheme: themeRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      rtlEnabled: rtlEnabledRef,\n      fNodes: mergedFNodesRef,\n      aip: aipRef,\n      selfElRef,\n      // reduce dts: string ref only, type unused in render\n      virtualListInstRef: virtualListInstRef as unknown,\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      handleFocusout,\n      handleDragLeaveTree,\n      handleScroll,\n      getScrollContainer,\n      getScrollContent,\n      handleAfterEnter,\n      handleResize,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { fNodes, internalRenderEmpty } = this\n    if (!fNodes.length && internalRenderEmpty) {\n      return internalRenderEmpty()\n    }\n    const {\n      mergedClsPrefix,\n      blockNode,\n      blockLine,\n      draggable,\n      disabled,\n      ellipsis,\n      internalFocusable,\n      checkable,\n      handleKeydown,\n      rtlEnabled,\n      handleFocusout,\n      scrollbarProps\n    } = this\n    const mergedFocusable = internalFocusable && !disabled\n    const tabindex = mergedFocusable ? '0' : undefined\n    const treeClass: Array<string | boolean | undefined> = [\n      `${mergedClsPrefix}-tree`,\n      rtlEnabled && `${mergedClsPrefix}-tree--rtl`,\n      checkable && `${mergedClsPrefix}-tree--checkable`,\n      (blockLine || blockNode) && `${mergedClsPrefix}-tree--block-node`,\n      blockLine && `${mergedClsPrefix}-tree--block-line`,\n      ellipsis && `${mergedClsPrefix}-tree--ellipsis`\n    ]\n    const createNode = (tmNode: TmNode | MotionData): VNode => {\n      return '__motion' in tmNode ? (\n        <MotionWrapper\n          height={tmNode.height}\n          nodes={tmNode.nodes}\n          clsPrefix={mergedClsPrefix}\n          mode={tmNode.mode}\n          onAfterEnter={this.handleAfterEnter}\n        />\n      ) : (\n        <NTreeNode\n          key={tmNode.key}\n          tmNode={tmNode}\n          clsPrefix={mergedClsPrefix}\n        />\n      )\n    }\n    if (this.virtualScroll) {\n      const { mergedTheme, internalScrollablePadding } = this\n      const padding = getPadding(internalScrollablePadding || '0')\n      return (\n        <NxScrollbar\n          {...scrollbarProps}\n          ref=\"scrollbarInstRef\"\n          onDragleave={draggable ? this.handleDragLeaveTree : undefined}\n          container={this.getScrollContainer}\n          content={this.getScrollContent}\n          class={treeClass}\n          theme={mergedTheme.peers.Scrollbar}\n          themeOverrides={mergedTheme.peerOverrides.Scrollbar}\n          tabindex={tabindex}\n          onKeydown={mergedFocusable ? handleKeydown : undefined}\n          onFocusout={mergedFocusable ? handleFocusout : undefined}\n        >\n          {{\n            default: () => {\n              this.onRender?.()\n              return !fNodes.length ? (\n                resolveSlot(this.$slots.empty, () => {\n                  return [\n                    this.mergedRenderEmpty?.() || (\n                      <NEmpty\n                        class={`${mergedClsPrefix}-tree__empty`}\n                        theme={this.mergedTheme.peers.Empty}\n                        themeOverrides={this.mergedTheme.peerOverrides.Empty}\n                      />\n                    )\n                  ]\n                })\n              ) : (\n                <VVirtualList\n                  ref=\"virtualListInstRef\"\n                  items={this.fNodes}\n                  itemSize={depx(mergedTheme.self.nodeHeight)}\n                  ignoreItemResize={this.aip}\n                  paddingTop={padding.top}\n                  paddingBottom={padding.bottom}\n                  class={this.themeClass}\n                  style={[\n                    this.cssVars as CSSProperties,\n                    {\n                      paddingLeft: padding.left,\n                      paddingRight: padding.right\n                    }\n                  ]}\n                  onScroll={this.handleScroll}\n                  onResize={this.handleResize}\n                  showScrollbar={false}\n                  itemResizable\n                >\n                  {{\n                    default: ({ item }: { item: TmNode | MotionData }) =>\n                      createNode(item)\n                  }}\n                </VVirtualList>\n              )\n            }\n          }}\n        </NxScrollbar>\n      )\n    }\n    const { internalScrollable } = this\n    treeClass.push(this.themeClass)\n    this.onRender?.()\n    if (internalScrollable) {\n      return (\n        <NxScrollbar\n          {...scrollbarProps}\n          class={treeClass}\n          tabindex={tabindex}\n          onKeydown={mergedFocusable ? handleKeydown : undefined}\n          onFocusout={mergedFocusable ? handleFocusout : undefined}\n          style={this.cssVars as CSSProperties}\n          contentStyle={{ padding: this.internalScrollablePadding }}\n        >\n          {{\n            default: () => (\n              <div\n                onDragleave={draggable ? this.handleDragLeaveTree : undefined}\n                ref=\"selfElRef\"\n              >\n                {this.fNodes.map(createNode)}\n              </div>\n            )\n          }}\n        </NxScrollbar>\n      )\n    }\n    else {\n      return (\n        <div\n          class={treeClass}\n          tabindex={tabindex}\n          ref=\"selfElRef\"\n          style={this.cssVars as CSSProperties}\n          onKeydown={mergedFocusable ? handleKeydown : undefined}\n          onFocusout={mergedFocusable ? handleFocusout : undefined}\n          onDragleave={draggable ? this.handleDragLeaveTree : undefined}\n        >\n          {!fNodes.length\n            ? resolveSlot(this.$slots.empty, () => {\n                return [\n                  this.mergedRenderEmpty?.() || (\n                    <NEmpty\n                      class={`${mergedClsPrefix}-tree__empty`}\n                      theme={this.mergedTheme.peers.Empty}\n                      themeOverrides={this.mergedTheme.peerOverrides.Empty}\n                    />\n                  )\n                ]\n              })\n            : fNodes.map(createNode)}\n        </div>\n      )\n    }\n  }\n})\n","import { fadeInScaleUpTransition } from '../../../_styles/transitions/fade-in-scale-up.cssr'\nimport { c, cB, cE } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-menu-height\n// --n-menu-border-radius\n// --n-menu-box-shadow\n// --n-menu-color\n// --n-header-padding\n// --n-header-text-color\n// --n-header-divider-color\n// --n-action-padding\n// --n-action-text-color\n// --n-action-divider-color\nexport default c([\n  cB('tree-select', `\n    z-index: auto;\n    outline: none;\n    width: 100%;\n    position: relative;\n  `),\n  cB('tree-select-menu', `\n    position: relative;\n    overflow: hidden;\n    margin: 4px 0;\n    transition: box-shadow .3s var(--n-bezier), background-color .3s var(--n-bezier);\n    border-radius: var(--n-menu-border-radius);\n    box-shadow: var(--n-menu-box-shadow);\n    background-color: var(--n-menu-color);\n    outline: none;\n  `, [\n    cB('tree', 'max-height: var(--n-menu-height);'),\n    cE('empty', `\n      display: flex;\n      padding: 12px 32px;\n      flex: 1;\n      justify-content: center;\n    `),\n    cE('header', `\n      padding: var(--n-header-padding);\n      transition: \n        color .3s var(--n-bezier);\n        border-color .3s var(--n-bezier);\n      border-bottom: 1px solid var(--n-header-divider-color);\n      color: var(--n-header-text-color);\n    `),\n    cE('action', `\n      padding: var(--n-action-padding);\n      transition: \n        color .3s var(--n-bezier);\n        border-color .3s var(--n-bezier);\n      border-top: 1px solid var(--n-action-divider-color);\n      color: var(--n-action-text-color);\n    `),\n    fadeInScaleUpTransition()\n  ])\n])\n","import type { SelectBaseOption } from '../../select/src/interface'\nimport type { TreeSelectTmNode } from './interface'\n\nexport function treeOption2SelectOption(\n  tmNode: TreeSelectTmNode,\n  labelField: string\n): SelectBaseOption {\n  const { rawNode } = tmNode\n  return {\n    ...rawNode,\n    label: rawNode[labelField] as string,\n    value: tmNode.key\n  }\n}\n\nexport function treeOption2SelectOptionWithPath(\n  tmNode: TreeSelectTmNode,\n  path: TreeSelectTmNode[],\n  separator: string,\n  labelField: string\n): SelectBaseOption {\n  const { rawNode } = tmNode\n  return {\n    ...rawNode,\n    value: tmNode.key,\n    label: path.map(v => v.rawNode[labelField]).join(separator)\n  }\n}\n","import type { CheckStrategy } from 'treemate'\nimport type {\n  CSSProperties,\n  HTMLAttributes,\n  PropType,\n  Ref,\n  SlotsType,\n  VNode,\n  VNodeChild\n} from 'vue'\nimport type { FollowerInst, FollowerPlacement } from 'vueuc'\nimport type { InternalSelectionInst } from '../../_internal'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { FormValidationStatus } from '../../form/src/public-types'\nimport type { PopoverProps } from '../../popover'\nimport type { SelectBaseOption, SelectOption } from '../../select/src/interface'\nimport type {\n  GetChildren,\n  InternalTreeInst,\n  Key,\n  TreeOption,\n  TreeOverrideNodeClickBehaviorReturn\n} from '../../tree/src/interface'\nimport type { OnUpdateExpandedKeysImpl } from '../../tree/src/Tree'\nimport type { TreeSelectTheme, TreeSelectThemeOverrides } from '../styles'\nimport type {\n  OnUpdateIndeterminateKeysImpl,\n  OnUpdateValue,\n  OnUpdateValueImpl,\n  TreeSelectInst,\n  TreeSelectNodeProps,\n  TreeSelectOption,\n  TreeSelectRenderLabel,\n  TreeSelectRenderPrefix,\n  TreeSelectRenderSuffix,\n  TreeSelectRenderTag,\n  Value\n} from './interface'\nimport type { TreeSelectSize } from './public-types'\nimport { getPreciseEventTarget, happensIn } from 'seemly'\nimport { createTreeMate } from 'treemate'\nimport { clickoutside } from 'vdirs'\nimport { useIsMounted, useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  h,\n  provide,\n  ref,\n  toRef,\n  Transition,\n  watchEffect,\n  withDirectives\n} from 'vue'\nimport { VBinder, VFollower, VTarget } from 'vueuc'\nimport { NBaseFocusDetector, NInternalSelection } from '../../_internal'\nimport {\n  useConfig,\n  useFormItem,\n  useLocale,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport {\n  call,\n  markEventEffectPerformed,\n  resolveSlot,\n  resolveWrappedSlot,\n  useAdjustedTo,\n  useOnResize,\n  warnOnce\n} from '../../_utils'\nimport { NEmpty } from '../../empty'\nimport { NTree } from '../../tree'\nimport { createTreeMateOptions, treeSharedProps } from '../../tree/src/Tree'\nimport { useMergedCheckStrategy } from '../../tree/src/utils'\nimport { treeSelectLight } from '../styles'\nimport { treeSelectInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport {\n  treeOption2SelectOption,\n  treeOption2SelectOptionWithPath\n} from './utils'\n\ntype OnLoad = (node: TreeSelectOption) => Promise<void>\n\nexport const treeSelectProps = {\n  ...(useTheme.props as ThemeProps<TreeSelectTheme, TreeSelectThemeOverrides>),\n  bordered: {\n    type: Boolean,\n    default: true\n  },\n  cascade: Boolean,\n  checkable: Boolean,\n  clearable: Boolean,\n  clearFilterAfterSelect: {\n    type: Boolean,\n    default: true\n  },\n  consistentMenuWidth: {\n    type: Boolean,\n    default: true\n  },\n  defaultShow: Boolean,\n  defaultValue: {\n    type: [String, Number, Array] as PropType<\n      string | number | Array<string | number> | null\n    >,\n    default: null\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  filterable: Boolean,\n  checkStrategy: {\n    type: String as PropType<CheckStrategy>,\n    default: 'all'\n  },\n  loading: Boolean,\n  maxTagCount: [String, Number] as PropType<number | 'responsive'>,\n  multiple: Boolean,\n  showLine: Boolean,\n  showPath: Boolean,\n  separator: {\n    type: String,\n    default: ' / '\n  },\n  options: {\n    type: Array as PropType<TreeSelectOption[]>,\n    default: () => []\n  },\n  placeholder: String,\n  placement: {\n    type: String as PropType<FollowerPlacement>,\n    default: 'bottom-start'\n  },\n  show: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  size: String as PropType<TreeSelectSize>,\n  value: [String, Number, Array] as PropType<\n    string | number | Array<string | number> | null\n  >,\n  to: useAdjustedTo.propTo,\n  menuProps: Object as PropType<HTMLAttributes>,\n  virtualScroll: {\n    type: Boolean,\n    default: true\n  },\n  status: String as PropType<FormValidationStatus>,\n  renderTag: Function as PropType<TreeSelectRenderTag>,\n  ellipsisTagPopoverProps: Object as PropType<PopoverProps>,\n  ...treeSharedProps,\n  renderLabel: Function as PropType<TreeSelectRenderLabel>,\n  renderPrefix: Function as PropType<TreeSelectRenderPrefix>,\n  renderSuffix: Function as PropType<TreeSelectRenderSuffix>,\n  nodeProps: Function as PropType<TreeSelectNodeProps>,\n  watchProps: Array as PropType<\n    Array<'defaultCheckedKeys' | 'defaultSelectedKeys' | 'defaultExpandedKeys'>\n  >,\n  getChildren: Function as PropType<GetChildren>,\n  onBlur: Function as PropType<(e: FocusEvent) => void>,\n  onFocus: Function as PropType<(e: FocusEvent) => void>,\n  onLoad: Function as PropType<OnLoad>,\n  onUpdateShow: [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  onUpdateValue: [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  'onUpdate:value': [Function, Array] as PropType<MaybeArray<OnUpdateValue>>,\n  'onUpdate:show': [Function, Array] as PropType<\n    MaybeArray<(show: boolean) => void>\n  >,\n  /**\n   * @deprecated\n   */\n  leafOnly: Boolean\n} as const\n\nexport type TreeSelectProps = ExtractPublicPropTypes<typeof treeSelectProps>\n\nexport interface TreeSelectSlots {\n  header?: () => VNode[]\n  action?: () => VNode[]\n  arrow?: () => VNode[]\n  empty?: () => VNode[]\n}\n\nexport default defineComponent({\n  name: 'TreeSelect',\n  props: treeSelectProps,\n  slots: Object as SlotsType<TreeSelectSlots>,\n  setup(props) {\n    if (__DEV__) {\n      watchEffect(() => {\n        if (props.leafOnly) {\n          warnOnce(\n            'tree-select',\n            '`leaf-only` is deprecated, please use `check-strategy=\"child\"` instead.'\n          )\n        }\n      })\n    }\n    const followerInstRef = ref<FollowerInst | null>(null)\n    const triggerInstRef = ref<InternalSelectionInst | null>(null)\n    const treeInstRef = ref<InternalTreeInst | null>(null)\n    const menuElRef = ref<HTMLDivElement | null>(null)\n    const {\n      mergedClsPrefixRef,\n      namespaceRef,\n      inlineThemeDisabled,\n      mergedComponentPropsRef\n    } = useConfig(props)\n    const { localeRef } = useLocale('Select')\n    const {\n      mergedSizeRef,\n      mergedDisabledRef,\n      mergedStatusRef,\n      nTriggerFormBlur,\n      nTriggerFormChange,\n      nTriggerFormFocus,\n      nTriggerFormInput\n    } = useFormItem(props, {\n      mergedSize: (NFormItem) => {\n        const { size } = props\n        if (size)\n          return size\n        const { mergedSize: formItemSize } = NFormItem || {}\n        if (formItemSize?.value)\n          return formItemSize.value as TreeSelectSize\n        const configSize = mergedComponentPropsRef?.value?.TreeSelect?.size\n        if (configSize)\n          return configSize\n        return 'medium'\n      }\n    })\n    const uncontrolledValueRef = ref<Value>(props.defaultValue)\n    const controlledValueRef = toRef(props, 'value')\n    const mergedValueRef = useMergedState(\n      controlledValueRef,\n      uncontrolledValueRef\n    )\n    const uncontrolledShowRef = ref(props.defaultShow)\n    const controlledShowRef = toRef(props, 'show')\n    const mergedShowRef = useMergedState(controlledShowRef, uncontrolledShowRef)\n    const patternRef = ref('')\n    const mergedFilterRef = computed(() => {\n      const { filter } = props\n      if (filter)\n        return filter\n      const { labelField } = props\n      return (pattern: string, node: TreeSelectOption): boolean => {\n        if (!pattern.length)\n          return true\n        return (node[labelField] as string)\n          .toLowerCase()\n          .includes(pattern.toLowerCase())\n      }\n    })\n    // used to resolve selected options\n    const dataTreeMateRef = computed(() =>\n      createTreeMate<TreeSelectOption>(\n        props.options,\n        createTreeMateOptions(\n          props.keyField,\n          props.childrenField,\n          props.disabledField,\n          undefined\n        )\n      )\n    )\n    const { value: initMergedValue } = mergedValueRef\n    const pendingNodeKeyRef = ref(\n      props.checkable\n        ? null\n        : Array.isArray(initMergedValue) && initMergedValue.length\n          ? initMergedValue[initMergedValue.length - 1]\n          : null\n    )\n    const mergedCascadeRef = computed(() => {\n      return props.multiple && props.cascade && props.checkable\n    })\n    // The same logic as tree, now it's not that complex so I don't extract a\n    // function to reuse it.\n    const uncontrolledExpandedKeysRef = ref(\n      props.defaultExpandAll\n        ? undefined // leave it, n-tree will handle it\n        : props.defaultExpandedKeys || props.expandedKeys\n    )\n    const controlledExpandedKeysRef = toRef(props, 'expandedKeys')\n    const mergedExpandedKeysRef = useMergedState(\n      controlledExpandedKeysRef,\n      uncontrolledExpandedKeysRef\n    )\n    const focusedRef = ref(false)\n    const mergedPlaceholderRef = computed(() => {\n      const { placeholder } = props\n      if (placeholder !== undefined)\n        return placeholder\n      return localeRef.value.placeholder\n    })\n    const treeCheckedKeysRef = computed<Key[]>(() => {\n      const { value: mergedValue } = mergedValueRef\n      if (props.multiple) {\n        if (Array.isArray(mergedValue))\n          return mergedValue\n        else return []\n      }\n      else {\n        if (mergedValue === null || Array.isArray(mergedValue))\n          return []\n        else return [mergedValue]\n      }\n    })\n    const treeSelectedKeysRef = computed<Key[]>(() => {\n      if (props.checkable)\n        return []\n      return treeCheckedKeysRef.value\n    })\n    const selectedOptionRef = computed(() => {\n      const { multiple, showPath, separator, labelField } = props\n      if (multiple)\n        return null\n      const { value: mergedValue } = mergedValueRef\n      if (!Array.isArray(mergedValue) && mergedValue !== null) {\n        const { value: treeMate } = dataTreeMateRef\n        const tmNode = treeMate.getNode(mergedValue)\n        if (tmNode !== null) {\n          return showPath\n            ? treeOption2SelectOptionWithPath(\n                tmNode,\n                treeMate.getPath(mergedValue).treeNodePath,\n                separator,\n                labelField\n              )\n            : treeOption2SelectOption(tmNode, labelField)\n        }\n      }\n      return null\n    })\n    const selectedOptionsRef = computed(() => {\n      const { multiple, showPath, separator } = props\n      if (!multiple)\n        return null\n      const { value: mergedValue } = mergedValueRef\n      if (Array.isArray(mergedValue)) {\n        const res: SelectBaseOption[] = []\n        const { value: treeMate } = dataTreeMateRef\n        const { checkedKeys } = treeMate.getCheckedKeys(mergedValue, {\n          checkStrategy: props.checkStrategy,\n          cascade: mergedCascadeRef.value,\n          allowNotLoaded: props.allowCheckingNotLoaded\n        })\n        const { labelField } = props\n        checkedKeys.forEach((value) => {\n          const tmNode = treeMate.getNode(value)\n          if (tmNode !== null) {\n            res.push(\n              showPath\n                ? treeOption2SelectOptionWithPath(\n                    tmNode,\n                    treeMate.getPath(value).treeNodePath,\n                    separator,\n                    labelField\n                  )\n                : treeOption2SelectOption(tmNode, labelField)\n            )\n          }\n        })\n        return res\n      }\n      return []\n    })\n    function focusSelection(): void {\n      triggerInstRef.value?.focus()\n    }\n    function focusSelectionInput(): void {\n      triggerInstRef.value?.focusInput()\n    }\n    function doUpdateShow(value: boolean): void {\n      const { onUpdateShow, 'onUpdate:show': _onUpdateShow } = props\n      if (onUpdateShow)\n        call(onUpdateShow, value)\n      if (_onUpdateShow)\n        call(_onUpdateShow, value)\n      uncontrolledShowRef.value = value\n    }\n    function doUpdateValue(\n      value: string | number | Array<string | number> | null,\n      option: TreeSelectOption | null | Array<TreeSelectOption | null>,\n      meta:\n        | {\n          node: TreeSelectOption\n          action: 'select' | 'unselect'\n        }\n        | {\n          node: TreeSelectOption | null\n          action: 'delete'\n        }\n        | {\n          node: null\n          action: 'clear'\n        }\n    ): void {\n      const { onUpdateValue, 'onUpdate:value': _onUpdateValue } = props\n      if (onUpdateValue) {\n        call(onUpdateValue as OnUpdateValueImpl, value, option, meta)\n      }\n      if (_onUpdateValue) {\n        call(_onUpdateValue as OnUpdateValueImpl, value, option, meta)\n      }\n      uncontrolledValueRef.value = value\n      nTriggerFormInput()\n      nTriggerFormChange()\n    }\n    function doUpdateIndeterminateKeys(\n      value: string | number | Array<string | number> | null,\n      option: TreeSelectOption | null | Array<TreeSelectOption | null>\n    ): void {\n      const {\n        onUpdateIndeterminateKeys,\n        'onUpdate:indeterminateKeys': _onUpdateIndeterminateKeys\n      } = props\n      if (onUpdateIndeterminateKeys) {\n        call(\n          onUpdateIndeterminateKeys as OnUpdateIndeterminateKeysImpl,\n          value,\n          option\n        )\n      }\n      if (_onUpdateIndeterminateKeys) {\n        call(\n          _onUpdateIndeterminateKeys as OnUpdateIndeterminateKeysImpl,\n          value,\n          option\n        )\n      }\n    }\n    function doUpdateExpandedKeys(\n      keys: Key[],\n      option: Array<TreeSelectOption | null>,\n      meta:\n        | {\n          node: TreeSelectOption\n          action: 'expand' | 'collapse'\n        }\n        | {\n          node: null\n          action: 'filter'\n        }\n    ): void {\n      const {\n        onUpdateExpandedKeys,\n        'onUpdate:expandedKeys': _onUpdateExpandedKeys\n      } = props\n      if (onUpdateExpandedKeys) {\n        call(\n          onUpdateExpandedKeys as OnUpdateExpandedKeysImpl,\n          keys,\n          option,\n          meta\n        )\n      }\n      if (_onUpdateExpandedKeys) {\n        call(\n          _onUpdateExpandedKeys as OnUpdateExpandedKeysImpl,\n          keys,\n          option,\n          meta\n        )\n      }\n      uncontrolledExpandedKeysRef.value = keys\n    }\n    function doFocus(e: FocusEvent): void {\n      const { onFocus } = props\n      if (onFocus)\n        onFocus(e)\n      nTriggerFormFocus()\n    }\n    function doBlur(e: FocusEvent): void {\n      closeMenu()\n      const { onBlur } = props\n      if (onBlur)\n        onBlur(e)\n      nTriggerFormBlur()\n    }\n    function closeMenu(): void {\n      doUpdateShow(false)\n    }\n    function openMenu(): void {\n      if (!mergedDisabledRef.value) {\n        patternRef.value = ''\n        doUpdateShow(true)\n        if (props.filterable) {\n          focusSelectionInput()\n        }\n      }\n    }\n    function handleMenuLeave(): void {\n      patternRef.value = ''\n    }\n    function handleMenuClickoutside(e: MouseEvent): void {\n      if (mergedShowRef.value) {\n        if (\n          !triggerInstRef.value?.$el.contains(\n            getPreciseEventTarget(e) as Node | null\n          )\n        ) {\n          // outside select, don't need to return focus\n          closeMenu()\n        }\n      }\n    }\n    function handleTriggerClick(): void {\n      if (mergedDisabledRef.value)\n        return\n      if (!mergedShowRef.value) {\n        openMenu()\n      }\n      else {\n        if (!props.filterable) {\n          // already focused, don't need to return focus\n          closeMenu()\n        }\n      }\n    }\n    function getOptionsByKeys(keys: Key[]): Array<TreeSelectOption | null> {\n      const {\n        value: { getNode }\n      } = dataTreeMateRef\n      return keys.map(key => getNode(key)?.rawNode || null)\n    }\n    function handleUpdateCheckedKeys(\n      keys: Key[],\n      _: unknown,\n      meta: { node: TreeOption | null, action: 'check' | 'uncheck' }\n    ): void {\n      const options = getOptionsByKeys(keys)\n      const action = meta.action === 'check' ? 'select' : 'unselect'\n      const node = meta.node as TreeSelectOption\n      if (props.multiple) {\n        doUpdateValue(keys, options, { node, action })\n        if (props.filterable) {\n          focusSelectionInput()\n          if (props.clearFilterAfterSelect)\n            patternRef.value = ''\n        }\n      }\n      else {\n        if (keys.length) {\n          doUpdateValue(keys[0], options[0] || null, {\n            node,\n            action\n          })\n        }\n        else {\n          doUpdateValue(null, null, { node, action })\n        }\n        closeMenu()\n        // Currently it is not necessary. However if there is an action slot,\n        // it will be useful. So just leave it here.\n        focusSelection()\n      }\n    }\n    function handleUpdateIndeterminateKeys(keys: Key[]): void {\n      if (props.checkable) {\n        doUpdateIndeterminateKeys(keys, getOptionsByKeys(keys))\n      }\n    }\n    function handleTriggerFocus(e: FocusEvent): void {\n      if (menuElRef.value?.contains(e.relatedTarget as Element))\n        return\n      focusedRef.value = true\n      doFocus(e)\n    }\n    function handleTriggerBlur(e: FocusEvent): void {\n      if (menuElRef.value?.contains(e.relatedTarget as Element))\n        return\n      focusedRef.value = false\n      doBlur(e)\n    }\n    function handleMenuFocusin(e: FocusEvent): void {\n      if (\n        menuElRef.value?.contains(e.relatedTarget as Element)\n        || triggerInstRef.value?.$el?.contains(e.relatedTarget as Element)\n      ) {\n        return\n      }\n      focusedRef.value = true\n      doFocus(e)\n    }\n    function handleMenuFocusout(e: FocusEvent): void {\n      if (\n        menuElRef.value?.contains(e.relatedTarget as Element)\n        || triggerInstRef.value?.$el?.contains(e.relatedTarget as Element)\n      ) {\n        return\n      }\n      focusedRef.value = false\n      doBlur(e)\n    }\n    function handleClear(e: MouseEvent): void {\n      e.stopPropagation()\n      const { multiple } = props\n      if (!multiple && props.filterable) {\n        closeMenu()\n      }\n      if (multiple) {\n        doUpdateValue([], [], { node: null, action: 'clear' })\n      }\n      else {\n        doUpdateValue(null, null, { node: null, action: 'clear' })\n      }\n    }\n    function handleDeleteOption(option: SelectBaseOption): void {\n      // only work for multiple mode\n      const { value: mergedValue } = mergedValueRef\n      if (Array.isArray(mergedValue)) {\n        const { value: treeMate } = dataTreeMateRef\n        // all visible checked keys\n        const { checkedKeys: checkedKeysValue } = treeMate.getCheckedKeys(\n          mergedValue,\n          {\n            cascade: mergedCascadeRef.value,\n            allowNotLoaded: props.allowCheckingNotLoaded\n          }\n        )\n        const index = checkedKeysValue.findIndex(key => key === option.value)\n        if (~index) {\n          const checkedKeyToBeRemoved = checkedKeysValue[index]\n          const checkOptionToBeRemoved = getOptionsByKeys([\n            checkedKeyToBeRemoved\n          ])[0]\n          if (props.checkable) {\n            const { checkedKeys } = treeMate.uncheck(\n              option.value,\n              checkedKeysValue,\n              {\n                checkStrategy: props.checkStrategy,\n                cascade: mergedCascadeRef.value,\n                allowNotLoaded: props.allowCheckingNotLoaded\n              }\n            )\n            doUpdateValue(checkedKeys, getOptionsByKeys(checkedKeys), {\n              node: checkOptionToBeRemoved,\n              action: 'delete'\n            })\n          }\n          else {\n            const nextValue = Array.from(checkedKeysValue)\n            nextValue.splice(index, 1)\n            doUpdateValue(nextValue, getOptionsByKeys(nextValue), {\n              node: checkOptionToBeRemoved,\n              action: 'delete'\n            })\n          }\n        }\n      }\n    }\n    function handlePatternInput(e: InputEvent): void {\n      const { value } = e.target as unknown as HTMLInputElement\n      patternRef.value = value\n    }\n    function treeHandleKeydown(e: KeyboardEvent): {\n      enterBehavior: TreeOverrideNodeClickBehaviorReturn | null\n    } {\n      const { value: treeInst } = treeInstRef\n      if (treeInst) {\n        return treeInst.handleKeydown(e)\n      }\n      return {\n        enterBehavior: null\n      }\n    }\n    function handleKeydown(e: KeyboardEvent): void {\n      if (e.key === 'Enter') {\n        if (mergedShowRef.value) {\n          const { enterBehavior } = treeHandleKeydown(e)\n          if (!props.multiple) {\n            switch (enterBehavior) {\n              case 'default':\n              case 'toggleSelect':\n                closeMenu()\n                focusSelection()\n                break\n              default:\n                break\n            }\n          }\n        }\n        else {\n          openMenu()\n        }\n        e.preventDefault()\n      }\n      else if (e.key === 'Escape') {\n        if (mergedShowRef.value) {\n          markEventEffectPerformed(e)\n          closeMenu()\n          focusSelection()\n        }\n      }\n      else {\n        if (mergedShowRef.value) {\n          treeHandleKeydown(e)\n        }\n        else if (e.key === 'ArrowDown') {\n          openMenu()\n        }\n      }\n    }\n    function handleTabOut(): void {\n      closeMenu()\n      focusSelection()\n    }\n    function handleMenuMousedown(e: MouseEvent): void {\n      // If there's an action slot later, we need to check if mousedown happens\n      // in action panel\n      if (!happensIn(e, 'action') && !happensIn(e, 'header'))\n        e.preventDefault()\n    }\n    const selectionRenderTagRef = computed(() => {\n      const { renderTag } = props\n      if (!renderTag)\n        return undefined\n      return function selectionRenderTag({\n        option,\n        handleClose\n      }: {\n        option: SelectOption\n        handleClose: () => void\n      }): VNodeChild {\n        const { value } = option\n        if (value !== undefined) {\n          const treeOption = dataTreeMateRef.value.getNode(value)\n          if (treeOption) {\n            return renderTag({ option: treeOption.rawNode, handleClose })\n          }\n        }\n        return value\n      }\n    })\n\n    provide(treeSelectInjectionKey, {\n      pendingNodeKeyRef,\n      dataTreeMate: dataTreeMateRef\n    })\n\n    function handleTriggerOrMenuResize(): void {\n      if (!mergedShowRef.value)\n        return\n      followerInstRef.value?.syncPosition()\n    }\n\n    useOnResize(menuElRef, handleTriggerOrMenuResize)\n\n    const mergedCheckStrategyRef = useMergedCheckStrategy(props)\n    const exposedCheckedStatusRef = computed(() => {\n      if (props.checkable) {\n        const mergedValue = mergedValueRef.value\n        if (props.multiple && Array.isArray(mergedValue)) {\n          return dataTreeMateRef.value.getCheckedKeys(mergedValue, {\n            cascade: props.cascade,\n            checkStrategy: mergedCheckStrategyRef.value,\n            allowNotLoaded: props.allowCheckingNotLoaded\n          })\n        }\n        else {\n          return {\n            checkedKeys:\n              Array.isArray(mergedValue) || mergedValue === null\n                ? []\n                : [mergedValue],\n            indeterminateKeys: []\n          }\n        }\n      }\n      return {\n        checkedKeys: [],\n        indeterminateKeys: []\n      }\n    })\n\n    const exposedMethods: TreeSelectInst = {\n      getCheckedData: () => {\n        const { checkedKeys } = exposedCheckedStatusRef.value\n        return { keys: checkedKeys, options: getOptionsByKeys(checkedKeys) }\n      },\n      getIndeterminateData: () => {\n        const { indeterminateKeys } = exposedCheckedStatusRef.value\n        return {\n          keys: indeterminateKeys,\n          options: getOptionsByKeys(indeterminateKeys)\n        }\n      },\n      focus: () => triggerInstRef.value?.focus(),\n      focusInput: () => triggerInstRef.value?.focusInput(),\n      blur: () => triggerInstRef.value?.blur(),\n      blurInput: () => triggerInstRef.value?.blurInput()\n    }\n\n    const themeRef = useTheme(\n      'TreeSelect',\n      '-tree-select',\n      style,\n      treeSelectLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const mergedRenderEmptyRef = computed(() => {\n      return mergedComponentPropsRef?.value?.TreeSelect?.renderEmpty\n    })\n\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          menuBoxShadow,\n          menuBorderRadius,\n          menuColor,\n          menuHeight,\n          actionPadding,\n          actionDividerColor,\n          actionTextColor,\n          headerDividerColor,\n          headerPadding,\n          headerTextColor\n        }\n      } = themeRef.value\n      return {\n        '--n-menu-box-shadow': menuBoxShadow,\n        '--n-menu-border-radius': menuBorderRadius,\n        '--n-menu-color': menuColor,\n        '--n-menu-height': menuHeight,\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-action-padding': actionPadding,\n        '--n-action-text-color': actionTextColor,\n        '--n-action-divider-color': actionDividerColor,\n        '--n-header-padding': headerPadding,\n        '--n-header-text-color': headerTextColor,\n        '--n-header-divider-color': headerDividerColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('tree-select', undefined, cssVarsRef, props)\n      : undefined\n\n    const menuPaddingRef = computed(() => {\n      const {\n        self: { menuPadding }\n      } = themeRef.value\n      return menuPadding\n    })\n    return {\n      ...exposedMethods,\n      menuElRef,\n      mergedStatus: mergedStatusRef,\n      // reduce dts: string ref only, type unused in render\n      triggerInstRef: triggerInstRef as unknown,\n      followerInstRef: followerInstRef as unknown,\n      treeInstRef: treeInstRef as unknown,\n      mergedClsPrefix: mergedClsPrefixRef,\n      mergedValue: mergedValueRef,\n      mergedShow: mergedShowRef,\n      namespace: namespaceRef,\n      adjustedTo: useAdjustedTo(props),\n      isMounted: useIsMounted(),\n      focused: focusedRef,\n      menuPadding: menuPaddingRef,\n      mergedPlaceholder: mergedPlaceholderRef,\n      mergedExpandedKeys: mergedExpandedKeysRef,\n      treeSelectedKeys: treeSelectedKeysRef,\n      treeCheckedKeys: treeCheckedKeysRef,\n      mergedSize: mergedSizeRef,\n      mergedDisabled: mergedDisabledRef,\n      selectedOption: selectedOptionRef,\n      selectedOptions: selectedOptionsRef,\n      pattern: patternRef,\n      pendingNodeKey: pendingNodeKeyRef,\n      mergedCascade: mergedCascadeRef,\n      mergedFilter: mergedFilterRef,\n      selectionRenderTag: selectionRenderTagRef,\n      handleTriggerOrMenuResize,\n      doUpdateExpandedKeys,\n      handleMenuLeave,\n      handleTriggerClick,\n      handleMenuClickoutside,\n      handleUpdateCheckedKeys,\n      handleUpdateIndeterminateKeys,\n      handleTriggerFocus,\n      handleTriggerBlur,\n      handleMenuFocusin,\n      handleMenuFocusout,\n      handleClear,\n      handleDeleteOption,\n      handlePatternInput,\n      handleKeydown,\n      handleTabOut,\n      handleMenuMousedown,\n      mergedTheme: themeRef,\n      mergedRenderEmpty: mergedRenderEmptyRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedTheme, mergedClsPrefix, $slots } = this\n    return (\n      <div class={`${mergedClsPrefix}-tree-select`}>\n        <VBinder>\n          {{\n            default: () => [\n              <VTarget>\n                {{\n                  default: () => (\n                    <NInternalSelection\n                      ref=\"triggerInstRef\"\n                      onResize={this.handleTriggerOrMenuResize}\n                      status={this.mergedStatus}\n                      focused={this.focused}\n                      clsPrefix={mergedClsPrefix}\n                      theme={mergedTheme.peers.InternalSelection}\n                      themeOverrides={\n                        mergedTheme.peerOverrides.InternalSelection\n                      }\n                      ellipsisTagPopoverProps={this.ellipsisTagPopoverProps}\n                      renderTag={this.selectionRenderTag}\n                      selectedOption={this.selectedOption}\n                      selectedOptions={this.selectedOptions}\n                      size={this.mergedSize}\n                      bordered={this.bordered}\n                      placeholder={this.mergedPlaceholder}\n                      disabled={this.mergedDisabled}\n                      active={this.mergedShow}\n                      loading={this.loading}\n                      multiple={this.multiple}\n                      maxTagCount={this.maxTagCount}\n                      showArrow={true}\n                      filterable={this.filterable}\n                      clearable={this.clearable}\n                      pattern={this.pattern}\n                      onPatternInput={this.handlePatternInput}\n                      onClear={this.handleClear}\n                      onClick={this.handleTriggerClick}\n                      onFocus={this.handleTriggerFocus}\n                      onBlur={this.handleTriggerBlur}\n                      onDeleteOption={this.handleDeleteOption}\n                      onKeydown={this.handleKeydown}\n                    >\n                      {{\n                        arrow: () => [this.$slots.arrow?.()]\n                      }}\n                    </NInternalSelection>\n                  )\n                }}\n              </VTarget>,\n              <VFollower\n                ref=\"followerInstRef\"\n                show={this.mergedShow}\n                placement={this.placement}\n                to={this.adjustedTo}\n                teleportDisabled={this.adjustedTo === useAdjustedTo.tdkey}\n                containerClass={this.namespace}\n                width={this.consistentMenuWidth ? 'target' : undefined}\n                minWidth=\"target\"\n              >\n                {{\n                  default: () => (\n                    <Transition\n                      name=\"fade-in-scale-up-transition\"\n                      appear={this.isMounted}\n                      onLeave={this.handleMenuLeave}\n                    >\n                      {{\n                        default: () => {\n                          if (!this.mergedShow)\n                            return null\n                          const {\n                            mergedClsPrefix,\n                            checkable,\n                            multiple,\n                            menuProps,\n                            options\n                          } = this\n                          this.onRender?.()\n                          return withDirectives(\n                            <div\n                              {...menuProps}\n                              class={[\n                                `${mergedClsPrefix}-tree-select-menu`,\n                                menuProps?.class,\n                                this.themeClass\n                              ]}\n                              ref=\"menuElRef\"\n                              style={[\n                                menuProps?.style || '',\n                                this.cssVars as CSSProperties\n                              ]}\n                              tabindex={0}\n                              onMousedown={this.handleMenuMousedown}\n                              onKeydown={this.handleKeydown}\n                              onFocusin={this.handleMenuFocusin}\n                              onFocusout={this.handleMenuFocusout}\n                            >\n                              {resolveWrappedSlot($slots.header, (children) => {\n                                return children ? (\n                                  <div\n                                    class={`${mergedClsPrefix}-tree-select-menu__header`}\n                                    data-header\n                                  >\n                                    {children}\n                                  </div>\n                                ) : null\n                              })}\n                              <NTree\n                                ref=\"treeInstRef\"\n                                blockLine\n                                allowCheckingNotLoaded={\n                                  this.allowCheckingNotLoaded\n                                }\n                                showIrrelevantNodes={false}\n                                animated={false}\n                                pattern={this.pattern}\n                                getChildren={this.getChildren}\n                                filter={this.mergedFilter}\n                                data={options}\n                                cancelable={multiple}\n                                labelField={this.labelField}\n                                keyField={this.keyField}\n                                disabledField={this.disabledField}\n                                childrenField={this.childrenField}\n                                theme={mergedTheme.peers.Tree}\n                                themeOverrides={mergedTheme.peerOverrides.Tree}\n                                defaultExpandAll={this.defaultExpandAll}\n                                defaultExpandedKeys={this.defaultExpandedKeys}\n                                indent={this.indent}\n                                expandedKeys={this.mergedExpandedKeys}\n                                checkedKeys={this.treeCheckedKeys}\n                                selectedKeys={this.treeSelectedKeys}\n                                checkable={checkable}\n                                checkStrategy={this.checkStrategy}\n                                cascade={this.mergedCascade}\n                                leafOnly={this.leafOnly}\n                                multiple={this.multiple}\n                                showLine={this.showLine}\n                                renderLabel={this.renderLabel}\n                                renderPrefix={this.renderPrefix}\n                                renderSuffix={this.renderSuffix}\n                                renderSwitcherIcon={this.renderSwitcherIcon}\n                                nodeProps={this.nodeProps}\n                                watchProps={this.watchProps}\n                                virtualScroll={\n                                  this.consistentMenuWidth && this.virtualScroll\n                                }\n                                overrideDefaultNodeClickBehavior={\n                                  this.overrideDefaultNodeClickBehavior\n                                }\n                                internalTreeSelect\n                                internalUnifySelectCheck\n                                internalScrollable\n                                internalScrollablePadding={this.menuPadding}\n                                internalFocusable={false}\n                                internalCheckboxFocusable={false}\n                                internalRenderEmpty={() => (\n                                  <div\n                                    class={`${mergedClsPrefix}-tree-select-menu__empty`}\n                                  >\n                                    {resolveSlot($slots.empty, () => {\n                                      return [\n                                        this.mergedRenderEmpty?.() || (\n                                          <NEmpty\n                                            theme={mergedTheme.peers.Empty}\n                                            themeOverrides={\n                                              mergedTheme.peerOverrides.Empty\n                                            }\n                                          />\n                                        )\n                                      ]\n                                    })}\n                                  </div>\n                                )}\n                                onLoad={this.onLoad}\n                                onUpdateCheckedKeys={\n                                  this.handleUpdateCheckedKeys\n                                }\n                                onUpdateIndeterminateKeys={\n                                  this.handleUpdateIndeterminateKeys\n                                }\n                                onUpdateExpandedKeys={this.doUpdateExpandedKeys}\n                              />\n                              {resolveWrappedSlot($slots.action, (children) => {\n                                return children ? (\n                                  <div\n                                    class={`${mergedClsPrefix}-tree-select-menu__action`}\n                                    data-action\n                                  >\n                                    {children}\n                                  </div>\n                                ) : null\n                              })}\n                              <NBaseFocusDetector onFocus={this.handleTabOut} />\n                            </div>,\n                            [\n                              [\n                                clickoutside,\n                                this.handleMenuClickoutside,\n                                undefined,\n                                { capture: true }\n                              ]\n                            ]\n                          )\n                        }\n                      }}\n                    </Transition>\n                  )\n                }}\n              </VFollower>\n            ]\n          }}\n        </VBinder>\n      </div>\n    )\n  }\n})\n","import { cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-text-color\n// --n-bezier\nexport default cB('a', `\n  cursor: pointer;\n  transition:\n    color .3s var(--n-bezier),\n    text-decoration-color .3s var(--n-bezier);\n  text-decoration-color: var(--n-text-color);\n  color: var(--n-text-color);\n`)\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/a.cssr'\n\nexport const aProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>)\n} as const\n\nexport type AProps = ExtractPublicPropTypes<typeof aProps>\n\nexport default defineComponent({\n  name: 'A',\n  props: aProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-a',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { aTextColor }\n      } = themeRef.value\n      return {\n        '--n-text-color': aTextColor,\n        '--n-bezier': cubicBezierEaseInOut\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('a', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <a\n        class={[`${this.mergedClsPrefix}-a`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </a>\n    )\n  }\n})\n","import { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-line-height\n// --n-prefix-color\n// --n-text-color\nexport default cB('blockquote', `\n  font-size: var(--n-font-size);\n  line-height: var(--n-line-height);\n  margin: 0;\n  margin-top: 12px;\n  margin-bottom: 12px;\n  box-sizing: border-box;\n  padding-left: 12px;\n  border-left: 4px solid var(--n-prefix-color);\n  color: var(--n-text-color);\n  transition:\n    color .3s var(--n-bezier),\n    border-color .3s var(--n-bezier);\n`, [\n  c('&:first-child', {\n    marginTop: 0\n  }),\n  c('&:last-child', {\n    marginBottom: 0\n  }),\n  cM('align-text', {\n    marginLeft: '-16px'\n  })\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/blockquote.cssr'\n\nexport const blockquoteProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  alignText: Boolean\n} as const\n\nexport type BlockquoteProps = ExtractPublicPropTypes<typeof blockquoteProps>\n\nexport default defineComponent({\n  name: 'Blockquote',\n  props: blockquoteProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-blockquote',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          blockquoteTextColor,\n          blockquotePrefixColor,\n          blockquoteLineHeight,\n          blockquoteFontSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': blockquoteFontSize,\n        '--n-line-height': blockquoteLineHeight,\n        '--n-prefix-color': blockquotePrefixColor,\n        '--n-text-color': blockquoteTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('blockquote', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <blockquote\n        class={[\n          `${mergedClsPrefix}-blockquote`,\n          this.themeClass,\n          this.alignText && `${mergedClsPrefix}-blockquote--align-text`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </blockquote>\n    )\n  }\n})\n","import { c, cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-margin\n// --n-bar-color\n// --n-bar-width\n// --n-font-weight\n// --n-text-color\n// --n-prefix-width\nexport default cB('h', `\n  font-size: var(--n-font-size);\n  font-weight: var(--n-font-weight);\n  margin: var(--n-margin);\n  transition: color .3s var(--n-bezier);\n  color: var(--n-text-color);\n`, [\n  c('&:first-child', {\n    marginTop: 0\n  }),\n  cM('prefix-bar', {\n    position: 'relative',\n    paddingLeft: 'var(--n-prefix-width)'\n  }, [\n    cM('align-text', {\n      paddingLeft: 0\n    }, [\n      c('&::before', {\n        left: 'calc(-1 * var(--n-prefix-width))'\n      })\n    ]),\n    c('&::before', `\n      content: \"\";\n      width: var(--n-bar-width);\n      border-radius: calc(var(--n-bar-width) / 2);\n      transition: background-color .3s var(--n-bezier);\n      left: 0;\n      top: 0;\n      bottom: 0;\n      position: absolute;\n    `),\n    c('&::before', {\n      backgroundColor: 'var(--n-bar-color)'\n    })\n  ])\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey } from '../../_utils'\nimport { typographyLight } from '../styles'\nimport style from './styles/header.cssr'\n\nexport const headerProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  type: {\n    type: String as PropType<\n      'info' | 'success' | 'warning' | 'error' | 'default'\n    >,\n    default: 'default'\n  },\n  prefix: String,\n  alignText: Boolean\n} as const\n\nexport type HeaderProps = ExtractPublicPropTypes<typeof headerProps>\n\nexport default (level: '1' | '2' | '3' | '4' | '5' | '6') =>\n  defineComponent({\n    name: `H${level}`,\n    props: headerProps,\n    setup(props) {\n      const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n      const themeRef = useTheme(\n        'Typography',\n        '-h',\n        style,\n        typographyLight,\n        props,\n        mergedClsPrefixRef\n      )\n      const cssVarsRef = computed(() => {\n        const { type } = props\n        const {\n          common: { cubicBezierEaseInOut },\n          self: {\n            headerFontWeight,\n            headerTextColor,\n            [createKey('headerPrefixWidth', level)]: prefixWidth,\n            [createKey('headerFontSize', level)]: fontSize,\n            [createKey('headerMargin', level)]: margin,\n            [createKey('headerBarWidth', level)]: barWidth,\n            [createKey('headerBarColor', type)]: barColor\n          }\n        } = themeRef.value\n        return {\n          '--n-bezier': cubicBezierEaseInOut,\n          '--n-font-size': fontSize,\n          '--n-margin': margin,\n          '--n-bar-color': barColor,\n          '--n-bar-width': barWidth,\n          '--n-font-weight': headerFontWeight,\n          '--n-text-color': headerTextColor,\n          '--n-prefix-width': prefixWidth\n        }\n      })\n      const themeClassHandle = inlineThemeDisabled\n        ? useThemeClass(\n            `h${level}`,\n            computed(() => props.type[0]),\n            cssVarsRef,\n            props\n          )\n        : undefined\n      return {\n        mergedClsPrefix: mergedClsPrefixRef,\n        cssVars: inlineThemeDisabled\n          ? undefined\n          : (cssVarsRef as Ref<CSSProperties>),\n        themeClass: themeClassHandle?.themeClass,\n        onRender: themeClassHandle?.onRender\n      }\n    },\n    render() {\n      const { prefix, alignText, mergedClsPrefix, cssVars, $slots } = this\n      this.onRender?.()\n      return h(\n        `h${level}`,\n        {\n          class: [\n            `${mergedClsPrefix}-h`,\n            `${mergedClsPrefix}-h${level}`,\n            this.themeClass,\n            {\n              [`${mergedClsPrefix}-h--prefix-bar`]: prefix,\n              [`${mergedClsPrefix}-h--align-text`]: alignText\n            }\n          ],\n          style: cssVars\n        },\n        $slots\n      )\n    }\n  })\n","import createHeader from './create-header'\n\nexport const NH1 = createHeader('1')\nexport const NH2 = createHeader('2')\nexport const NH3 = createHeader('3')\nexport const NH4 = createHeader('4')\nexport const NH5 = createHeader('5')\nexport const NH6 = createHeader('6')\n","import { cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-color\nexport default cB('hr', `\n  margin: 12px 0;\n  transition: border-color .3s var(--n-bezier);\n  border-left: none;\n  border-right: none;\n  border-bottom: none;\n  border-top: 1px solid var(--n-color);\n`)\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/hr.cssr'\n\nexport default defineComponent({\n  name: 'Hr',\n  props: {\n    ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>)\n  },\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-hr',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: { hrColor }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-color': hrColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('hr', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <hr\n        class={[`${this.mergedClsPrefix}-hr`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      />\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport default defineComponent({\n  name: 'Li',\n  render() {\n    return <li>{this.$slots.default?.()}</li>\n  }\n})\n","import { c, cB, cM } from '../../../_utils/cssr'\n\nconst liStyle = c('li', {\n  transition: 'color .3s var(--n-bezier)',\n  lineHeight: 'var(--n-line-height)',\n  margin: 'var(--n-li-margin)',\n  marginBottom: 0,\n  color: 'var(--n-text-color)'\n})\n\nconst childStyle = [\n  c('&:first-child', `\n    margin-top: 0;\n  `),\n  c('&:last-child', `\n    margin-bottom: 0;\n  `)\n]\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-line-height\n// --n-text-color\n// --n-li-margin\n// --n-ol-padding\n// --n-ul-padding\nexport default c([\n  cB('ol', {\n    fontSize: 'var(--n-font-size)',\n    padding: 'var(--n-ol-padding)'\n  }, [\n    cM('align-text', {\n      paddingLeft: 0\n    }),\n    liStyle,\n    childStyle\n  ]),\n  cB('ul', {\n    fontSize: 'var(--n-font-size)',\n    padding: 'var(--n-ul-padding)'\n  }, [\n    cM('align-text', {\n      paddingLeft: 0\n    }),\n    liStyle,\n    childStyle\n  ])\n])\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/list.cssr'\n\nexport const olProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  alignText: Boolean\n}\n\nexport type OlProps = ExtractPublicPropTypes<typeof olProps>\n\nexport default defineComponent({\n  name: 'Ol',\n  props: olProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-xl',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          olPadding,\n          ulPadding,\n          liMargin,\n          liTextColor,\n          liLineHeight,\n          liFontSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': liFontSize,\n        '--n-line-height': liLineHeight,\n        '--n-text-color': liTextColor,\n        '--n-li-margin': liMargin,\n        '--n-ol-padding': olPadding,\n        '--n-ul-padding': ulPadding\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('ol', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <ol\n        class={[\n          `${mergedClsPrefix}-ol`,\n          this.themeClass,\n          this.alignText && `${mergedClsPrefix}-ol--align-text`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </ol>\n    )\n  }\n})\n","import { c, cB } from '../../../_utils/cssr'\n\n// vars:\n// --n-bezier\n// --n-font-size\n// --n-line-height\n// --n-margin\n// --n-text-color\nexport default cB('p', `\n  box-sizing: border-box;\n  transition: color .3s var(--n-bezier);\n  margin: var(--n-margin);\n  font-size:  var(--n-font-size);\n  line-height: var(--n-line-height);\n  color: var(--n-text-color);\n`, [\n  c('&:first-child', 'margin-top: 0;'),\n  c('&:last-child', 'margin-bottom: 0;')\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/p.cssr'\n\nexport const pProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  depth: [String, Number] as PropType<1 | 2 | 3 | '1' | '2' | '3'>\n}\n\nexport type PProps = ExtractPublicPropTypes<typeof pProps>\n\nexport default defineComponent({\n  name: 'P',\n  props: pProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-p',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { depth } = props\n      const typeSafeDepth = depth || '1'\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          pFontSize,\n          pLineHeight,\n          pMargin,\n          pTextColor,\n          [`pTextColor${typeSafeDepth}Depth` as const]: depthTextColor\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': pFontSize,\n        '--n-line-height': pLineHeight,\n        '--n-margin': pMargin,\n        '--n-text-color': depth === undefined ? pTextColor : depthTextColor\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'p',\n          computed(() => `${props.depth || ''}`),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    this.onRender?.()\n    return (\n      <p\n        class={[`${this.mergedClsPrefix}-p`, this.themeClass]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </p>\n    )\n  }\n})\n","import { cB, cM } from '../../../_utils/cssr'\n\n// vars:\n// --n-text-color\n// --n-font-weight-strong\n// --n-font-famliy-mono\n// --n-code-border-radius\n// --n-code-text-color\n// --n-code-color\n// --n-code-border\nexport default cB('text', `\n  transition: color .3s var(--n-bezier);\n  color: var(--n-text-color);\n`, [\n  cM('strong', `\n    font-weight: var(--n-font-weight-strong);\n  `),\n  cM('italic', {\n    fontStyle: 'italic'\n  }),\n  cM('underline', {\n    textDecoration: 'underline'\n  }),\n  cM('code', `\n    line-height: 1.4;\n    display: inline-block;\n    font-family: var(--n-font-famliy-mono);\n    transition: \n      color .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    box-sizing: border-box;\n    padding: .05em .35em 0 .35em;\n    border-radius: var(--n-code-border-radius);\n    font-size: .9em;\n    color: var(--n-code-text-color);\n    background-color: var(--n-code-color);\n    border: var(--n-code-border);\n  `)\n])\n","import type { CSSProperties, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { useCompitable } from 'vooks'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { createKey, warn } from '../../_utils'\nimport { typographyLight } from '../styles'\nimport style from './styles/text.cssr'\n\nexport const textProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  code: Boolean,\n  type: {\n    type: String,\n    default: 'default'\n  },\n  delete: Boolean,\n  strong: Boolean,\n  italic: Boolean,\n  underline: Boolean,\n  depth: [String, Number] as PropType<1 | 2 | 3 | '1' | '2' | '3'>,\n  tag: String,\n  // deprecated\n  as: {\n    type: String,\n    validator: () => {\n      if (__DEV__) {\n        warn('text', '`as` is deprecated, please use `tag` instead.')\n      }\n      return true\n    },\n    default: undefined\n  }\n} as const\n\nexport type TextProps = ExtractPublicPropTypes<typeof textProps>\n\nexport default defineComponent({\n  name: 'Text',\n  props: textProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-text',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const { depth, type } = props\n      const textColorKey\n        = type === 'default'\n          ? depth === undefined\n            ? 'textColor'\n            : `textColor${depth}Depth`\n          : createKey('textColor', type)\n      const {\n        common: { fontWeightStrong, fontFamilyMono, cubicBezierEaseInOut },\n        self: {\n          codeTextColor,\n          codeBorderRadius,\n          codeColor,\n          codeBorder,\n          [textColorKey as 'textColor']: textColor\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-text-color': textColor,\n        '--n-font-weight-strong': fontWeightStrong,\n        '--n-font-famliy-mono': fontFamilyMono,\n        '--n-code-border-radius': codeBorderRadius,\n        '--n-code-text-color': codeTextColor,\n        '--n-code-color': codeColor,\n        '--n-code-border': codeBorder\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass(\n          'text',\n          computed(() => `${props.type[0]}${props.depth || ''}`),\n          cssVarsRef,\n          props\n        )\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      compitableTag: useCompitable(props, ['as', 'tag']),\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    const textClass = [\n      `${mergedClsPrefix}-text`,\n      this.themeClass,\n      {\n        [`${mergedClsPrefix}-text--code`]: this.code,\n        [`${mergedClsPrefix}-text--delete`]: this.delete,\n        [`${mergedClsPrefix}-text--strong`]: this.strong,\n        [`${mergedClsPrefix}-text--italic`]: this.italic,\n        [`${mergedClsPrefix}-text--underline`]: this.underline\n      }\n    ]\n    const children = this.$slots.default?.()\n    return this.code ? (\n      <code class={textClass} style={this.cssVars as CSSProperties}>\n        {this.delete ? <del>{children}</del> : children}\n      </code>\n    ) : this.delete ? (\n      <del class={textClass} style={this.cssVars as CSSProperties}>\n        {children}\n      </del>\n    ) : (\n      h(\n        this.compitableTag || 'span',\n        { class: textClass, style: this.cssVars },\n        children\n      )\n    )\n  }\n})\n","import type { CSSProperties, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { TypographyTheme, TypographyThemeOverrides } from '../styles'\nimport { computed, defineComponent, h } from 'vue'\nimport { useConfig, useTheme, useThemeClass } from '../../_mixins'\nimport { typographyLight } from '../styles'\nimport style from './styles/list.cssr'\n\nexport const ulProps = {\n  ...(useTheme.props as ThemeProps<TypographyTheme, TypographyThemeOverrides>),\n  alignText: Boolean\n} as const\n\nexport type UlProps = ExtractPublicPropTypes<typeof ulProps>\n\nexport default defineComponent({\n  name: 'Ul',\n  props: ulProps,\n  setup(props) {\n    const { mergedClsPrefixRef, inlineThemeDisabled } = useConfig(props)\n    const themeRef = useTheme(\n      'Typography',\n      '-xl',\n      style,\n      typographyLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          olPadding,\n          ulPadding,\n          liMargin,\n          liTextColor,\n          liLineHeight,\n          liFontSize\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-font-size': liFontSize,\n        '--n-line-height': liLineHeight,\n        '--n-text-color': liTextColor,\n        '--n-li-margin': liMargin,\n        '--n-ol-padding': olPadding,\n        '--n-ul-padding': ulPadding\n      }\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('ul', undefined, cssVarsRef, props)\n      : undefined\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender\n    }\n  },\n  render() {\n    const { mergedClsPrefix } = this\n    this.onRender?.()\n    return (\n      <ul\n        class={[\n          `${mergedClsPrefix}-ul`,\n          this.themeClass,\n          this.alignText && `${mergedClsPrefix}-ul--align-text`\n        ]}\n        style={this.cssVars as CSSProperties}\n      >\n        {this.$slots.default?.()}\n      </ul>\n    )\n  }\n})\n","import type { CSSProperties, Ref, VNodeChild } from 'vue'\nimport type { MergedTheme } from '../../_mixins'\nimport type { ImageGroupProps } from '../../image'\nimport type { UploadTheme } from '../styles'\nimport type {\n  UploadCustomRequestOptions,\n  UploadFileInfo,\n  UploadOnDownload,\n  UploadOnFinish,\n  UploadOnRemove,\n  UploadSettledFileInfo\n} from './public-types'\nimport { createInjectionKey } from '../../_utils'\n\nexport type ShouldUseThumbnailUrl = (file: UploadSettledFileInfo) => boolean\n\nexport type FuncOrRecordOrUndef<T = string>\n  = | Record<string, T>\n    | (({ file }: { file: UploadSettledFileInfo }) => Record<string, T>)\n    | undefined\n\nexport interface UploadInternalInst {\n  doChange: DoChange\n  xhrMap: Map<string, XMLHttpRequest>\n  isErrorState: ((xhr: XMLHttpRequest) => boolean) | undefined\n  onError: OnError | undefined\n  onFinish: UploadOnFinish | undefined\n}\n\nexport type DoChange = (\n  fileAfterChange: UploadSettledFileInfo,\n  event?: ProgressEvent | Event,\n  options?: {\n    append?: boolean\n    remove?: boolean\n  }\n) => void\n\nexport type OnUpdateFileList = (fileList: UploadSettledFileInfo[]) => void\n\nexport type RenderIcon = (file: UploadSettledFileInfo) => VNodeChild\n\nexport interface UploadInjection {\n  mergedClsPrefixRef: Ref<string>\n  mergedThemeRef: Ref<MergedTheme<UploadTheme>>\n  showCancelButtonRef: Ref<boolean>\n  showRemoveButtonRef: Ref<boolean>\n  showDownloadButtonRef: Ref<boolean>\n  showRetryButtonRef: Ref<boolean>\n  showTriggerRef: Ref<boolean>\n  mergedFileListRef: Ref<UploadSettledFileInfo[]>\n  onRemoveRef: Ref<UploadOnRemove | undefined>\n  onDownloadRef: Ref<UploadOnDownload | undefined>\n  customDownloadRef: Ref<UploadOnDownload | undefined>\n  xhrMap: Map<string, XMLHttpRequest>\n  showPreviewButtonRef: Ref<boolean>\n  alwaysShowActionsRef: Ref<boolean>\n  onPreviewRef: Ref<OnPreview | undefined>\n  listTypeRef: Ref<ListType>\n  dragOverRef: Ref<boolean>\n  draggerInsideRef: { value: boolean }\n  fileListClassRef: Ref<string | undefined>\n  fileListStyleRef: Ref<string | CSSProperties | undefined>\n  mergedDisabledRef: Ref<boolean>\n  maxReachedRef: Ref<boolean>\n  abstractRef: Ref<boolean>\n  imageGroupPropsRef: Ref<ImageGroupProps | undefined>\n  cssVarsRef: undefined | Ref<CSSProperties>\n  themeClassRef: undefined | Ref<string>\n  mergedDirectoryDndRef: Ref<boolean>\n  acceptRef: Ref<string | undefined>\n  triggerClassRef: Ref<string | undefined>\n  triggerStyleRef: Ref<CSSProperties | string | undefined>\n  doChange: DoChange\n  onRender: undefined | (() => void)\n  submit: (options?: { fileId?: string, retry?: boolean }) => void\n  onRetryRef: Ref<undefined | OnRetry>\n  shouldUseThumbnailUrlRef: Ref<ShouldUseThumbnailUrl>\n  getFileThumbnailUrlResolver: (\n    file: UploadSettledFileInfo\n  ) => Promise<string> | string\n  renderIconRef: Ref<RenderIcon | undefined>\n  handleFileAddition: (files: FileAndEntry[] | null, e?: Event) => void\n  openOpenFileDialog: () => void\n}\n\nexport const uploadInjectionKey\n  = createInjectionKey<UploadInjection>('n-upload')\n\nexport interface XhrHandlers {\n  handleXHRLoad: (e: ProgressEvent) => void\n  handleXHRAbort: (e: ProgressEvent) => void\n  handleXHRProgress: (e: ProgressEvent) => void\n  handleXHRError: (e: ProgressEvent) => void\n}\n\nexport type OnBeforeUpload = (data: {\n  file: UploadSettledFileInfo\n  fileList: UploadSettledFileInfo[]\n}) => Promise<boolean | void> | boolean | void\n\nexport type ListType = 'text' | 'image' | 'image-card'\n\nexport type OnPreview = (\n  file: UploadSettledFileInfo,\n  detail: {\n    event: MouseEvent\n  }\n) => void\n\nexport type CreateThumbnailUrl = (\n  file: File | null,\n  fileInfo: UploadSettledFileInfo\n) => Promise<string> | string | undefined\n\nexport type CustomRequest = (options: UploadCustomRequestOptions) => void\n\nexport type OnError = ({\n  file,\n  event\n}: {\n  file: UploadSettledFileInfo\n  event?: ProgressEvent\n}) => UploadFileInfo | undefined | void\n\nexport type OnRetry = ({\n  file\n}: {\n  file: UploadSettledFileInfo\n}) => Promise<boolean | void> | boolean | void\n\nexport interface FileAndEntry {\n  file: File\n  entry: FileSystemFileEntry | null\n  source: 'dnd' | 'input'\n}\n\nexport interface UploadTriggerDefaultSlotOptions {\n  handleClick: () => void\n  handleDragOver: (e: DragEvent) => void\n  handleDragEnter: (e: DragEvent) => void\n  handleDragLeave: (e: DragEvent) => void\n  handleDrop: (e: DragEvent) => void\n}\n","import { fadeInHeightExpandTransition } from '../../../_styles/transitions/fade-in-height-expand.cssr'\nimport { iconSwitchTransition } from '../../../_styles/transitions/icon-switch.cssr'\nimport { c, cB, cE, cM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('upload', 'width: 100%;', [\n    cM('dragger-inside', [\n      cB('upload-trigger', `\n        display: block;\n      `)\n    ]),\n    cM('drag-over', [\n      cB('upload-dragger', `\n        border: var(--n-dragger-border-hover);\n      `)\n    ])\n  ]),\n  cB('upload-dragger', `\n    cursor: pointer;\n    box-sizing: border-box;\n    width: 100%;\n    text-align: center;\n    border-radius: var(--n-border-radius);\n    padding: 24px;\n    opacity: 1;\n    transition:\n      opacity .3s var(--n-bezier),\n      border-color .3s var(--n-bezier),\n      background-color .3s var(--n-bezier);\n    background-color: var(--n-dragger-color);\n    border: var(--n-dragger-border);\n  `, [\n    c('&:hover', `\n      border: var(--n-dragger-border-hover);\n    `),\n    cM('disabled', `\n      cursor: not-allowed;\n    `)\n  ]),\n  cB('upload-trigger', `\n    display: inline-block;\n    box-sizing: border-box;\n    opacity: 1;\n    transition: opacity .3s var(--n-bezier);\n  `, [\n    c('+', [\n      cB('upload-file-list', 'margin-top: 8px;')\n    ]),\n    cM('disabled', `\n      opacity: var(--n-item-disabled-opacity);\n      cursor: not-allowed;\n    `),\n    cM('image-card', `\n      width: 96px;\n      height: 96px;\n    `, [\n      cB('base-icon', `\n        font-size: 24px;\n      `),\n      cB('upload-dragger', `\n        padding: 0;\n        height: 100%;\n        width: 100%;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n      `)\n    ])\n  ]),\n  cB('upload-file-list', `\n    line-height: var(--n-line-height);\n    opacity: 1;\n    transition: opacity .3s var(--n-bezier);\n  `, [\n    c('a, img', 'outline: none;'),\n    cM('disabled', `\n      opacity: var(--n-item-disabled-opacity);\n      cursor: not-allowed;\n    `, [\n      cB('upload-file', 'cursor: not-allowed;')\n    ]),\n    cM('grid', `\n      display: grid;\n      grid-template-columns: repeat(auto-fill, 96px);\n      grid-gap: 8px;\n      margin-top: 0;\n    `),\n    cB('upload-file', `\n      display: block;\n      box-sizing: border-box;\n      cursor: default;\n      padding: 0px 12px 0 6px;\n      transition: background-color .3s  var(--n-bezier);\n      border-radius: var(--n-border-radius);\n    `, [\n      fadeInHeightExpandTransition(),\n      cB('progress', [\n        fadeInHeightExpandTransition({\n          foldPadding: true\n        })\n      ]),\n      c('&:hover', `\n        background-color: var(--n-item-color-hover);\n      `, [\n        cB('upload-file-info', [\n          cE('action', `\n            opacity: 1;\n          `)\n        ])\n      ]),\n      cM('image-type', `\n        border-radius: var(--n-border-radius);\n        text-decoration: underline;\n        text-decoration-color: #0000;\n      `, [\n        cB('upload-file-info', `\n          padding-top: 0px;\n          padding-bottom: 0px;\n          width: 100%;\n          height: 100%;\n          display: flex;\n          justify-content: space-between;\n          align-items: center;\n          padding: 6px 0;\n        `, [\n          cB('progress', `\n            padding: 2px 0;\n            margin-bottom: 0;\n          `),\n          cE('name', `\n            padding: 0 8px;\n          `),\n          cE('thumbnail', `\n            width: 32px;\n            height: 32px;\n            font-size: 28px;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n          `, [\n            c('img', `\n              width: 100%;\n            `)\n          ])\n        ])\n      ]),\n      cM('text-type', [\n        cB('progress', `\n          box-sizing: border-box;\n          padding-bottom: 6px;\n          margin-bottom: 6px;\n        `)\n      ]),\n      cM('image-card-type', `\n        position: relative;\n        width: 96px;\n        height: 96px;\n        border: var(--n-item-border-image-card);\n        border-radius: var(--n-border-radius);\n        padding: 0;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        transition: border-color .3s var(--n-bezier), background-color .3s var(--n-bezier);\n        border-radius: var(--n-border-radius);\n        overflow: hidden;\n      `, [\n        cB('progress', `\n          position: absolute;\n          left: 8px;\n          bottom: 8px;\n          right: 8px;\n          width: unset;\n        `),\n        cB('upload-file-info', `\n          padding: 0;\n          width: 100%;\n          height: 100%;\n        `, [\n          cE('thumbnail', `\n            width: 100%;\n            height: 100%;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            justify-content: center;\n            font-size: 36px;\n          `, [\n            c('img', `\n              width: 100%;\n            `)\n          ])\n        ]),\n        c('&::before', `\n          position: absolute;\n          z-index: 1;\n          left: 0;\n          right: 0;\n          top: 0;\n          bottom: 0;\n          border-radius: inherit;\n          opacity: 0;\n          transition: opacity .2s var(--n-bezier);\n          content: \"\";\n        `),\n        c('&:hover', [\n          c('&::before', 'opacity: 1;'),\n          cB('upload-file-info', [\n            cE('thumbnail', 'opacity: .12;')\n          ])\n        ]),\n        cM('always-show-actions', [\n          c('&::before', 'opacity: 1;'),\n          cB('upload-file-info', [\n            cE('thumbnail', 'opacity: .12;')\n          ])\n        ])\n      ]),\n      cM('error-status', [\n        c('&:hover', `\n          background-color: var(--n-item-color-hover-error);\n        `),\n        cB('upload-file-info', [\n          cE('name', 'color: var(--n-item-text-color-error);'),\n          cE('thumbnail', 'color: var(--n-item-text-color-error);')\n        ]),\n        cM('image-card-type', `\n          border: var(--n-item-border-image-card-error);\n        `)\n      ]),\n      cM('with-url', `\n        cursor: pointer;\n      `, [\n        cB('upload-file-info', [\n          cE('name', `\n            color: var(--n-item-text-color-success);\n            text-decoration-color: var(--n-item-text-color-success);\n          `, [\n            c('a', `\n              text-decoration: underline;\n            `)\n          ])\n        ])\n      ]),\n      cB('upload-file-info', `\n        position: relative;\n        padding-top: 6px;\n        padding-bottom: 6px;\n        display: flex;\n        flex-wrap: nowrap;\n      `, [\n        cE('thumbnail', `\n          font-size: 18px;\n          opacity: 1;\n          transition: opacity .2s var(--n-bezier);\n          color: var(--n-item-icon-color);\n        `, [\n          cB('base-icon', `\n            margin-right: 2px;\n            vertical-align: middle;\n            transition: color .3s var(--n-bezier);\n          `)\n        ]),\n        cE('action', `\n          padding-top: inherit;\n          padding-bottom: inherit;\n          position: absolute;\n          right: 0;\n          top: 0;\n          bottom: 0;\n          width: 80px;\n          display: flex;\n          align-items: center;\n          transition: opacity .2s var(--n-bezier);\n          justify-content: flex-end;\n          opacity: 0;\n        `, [\n          cB('button', [\n            c('&:not(:last-child)', {\n              marginRight: '4px'\n            }),\n            cB('base-icon', [\n              c('svg', [\n                iconSwitchTransition()\n              ])\n            ])\n          ]),\n          cM('image-type', `\n            position: relative;\n            max-width: 80px;\n            width: auto;\n          `),\n          cM('image-card-type', `\n            z-index: 2;\n            position: absolute;\n            width: 100%;\n            height: 100%;\n            left: 0;\n            right: 0;\n            bottom: 0;\n            top: 0;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n          `),\n          cM('always-show', `\n            opacity: 1;\n          `)\n        ]),\n        cE('name', `\n          color: var(--n-item-text-color);\n          flex: 1;\n          display: flex;\n          justify-content: center;\n          text-overflow: ellipsis;\n          overflow: hidden;\n          flex-direction: column;\n          text-decoration-color: #0000;\n          font-size: var(--n-font-size);\n          transition:\n            color .3s var(--n-bezier),\n            text-decoration-color .3s var(--n-bezier); \n        `, [\n          c('a', `\n            color: inherit;\n            text-decoration: underline;\n          `)\n        ])\n      ])\n    ])\n  ]),\n  cB('upload-file-input', `\n    display: none;\n    width: 0;\n    height: 0;\n    opacity: 0;\n  `)\n])\n","import { defineComponent, h, inject } from 'vue'\nimport { throwError } from '../../_utils'\nimport { uploadInjectionKey } from './interface'\n\nexport const uploadDraggerKey = '__UPLOAD_DRAGGER__'\n\nexport default defineComponent({\n  name: 'UploadDragger',\n  [uploadDraggerKey]: true,\n  setup(_, { slots }) {\n    const NUpload = inject(uploadInjectionKey, null)\n    if (!NUpload) {\n      throwError(\n        'upload-dragger',\n        '`n-upload-dragger` must be placed inside `n-upload`.'\n      )\n    }\n    return () => {\n      const {\n        mergedClsPrefixRef: { value: mergedClsPrefix },\n        mergedDisabledRef: { value: mergedDisabled },\n        maxReachedRef: { value: maxReached }\n      } = NUpload\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-upload-dragger`,\n            (mergedDisabled || maxReached)\n            && `${mergedClsPrefix}-upload-dragger--disabled`\n          ]}\n        >\n          {slots.default?.()}\n        </div>\n      )\n    }\n  }\n})\n","import { h } from 'vue'\n\n/**\n * Since image is too large compared with normal icons, we keep it inside upload\n * now.\n */\n\nexport function renderImageIcon() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 28 28\">\n      <g fill=\"none\">\n        <path\n          d=\"M21.75 3A3.25 3.25 0 0 1 25 6.25v15.5A3.25 3.25 0 0 1 21.75 25H6.25A3.25 3.25 0 0 1 3 21.75V6.25A3.25 3.25 0 0 1 6.25 3h15.5zm.583 20.4l-7.807-7.68a.75.75 0 0 0-.968-.07l-.084.07l-7.808 7.68c.183.065.38.1.584.1h15.5c.204 0 .4-.035.583-.1l-7.807-7.68l7.807 7.68zM21.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v15.5c0 .208.036.408.103.593l7.82-7.692a2.25 2.25 0 0 1 3.026-.117l.129.117l7.82 7.692c.066-.185.102-.385.102-.593V6.25a1.75 1.75 0 0 0-1.75-1.75zm-3.25 3a2.5 2.5 0 1 1 0 5a2.5 2.5 0 0 1 0-5zm0 1.5a1 1 0 1 0 0 2a1 1 0 0 0 0-2z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </g>\n    </svg>\n  )\n}\n\nexport function renderDocumentIcon() {\n  return (\n    <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 28 28\">\n      <g fill=\"none\">\n        <path\n          d=\"M6.4 2A2.4 2.4 0 0 0 4 4.4v19.2A2.4 2.4 0 0 0 6.4 26h15.2a2.4 2.4 0 0 0 2.4-2.4V11.578c0-.729-.29-1.428-.805-1.944l-6.931-6.931A2.4 2.4 0 0 0 14.567 2H6.4zm-.9 2.4a.9.9 0 0 1 .9-.9H14V10a2 2 0 0 0 2 2h6.5v11.6a.9.9 0 0 1-.9.9H6.4a.9.9 0 0 1-.9-.9V4.4zm16.44 6.1H16a.5.5 0 0 1-.5-.5V4.06l6.44 6.44z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </g>\n    </svg>\n  )\n}\n","import type { PropType } from 'vue'\nimport { defineComponent, h, inject } from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\nimport { NProgress } from '../../progress'\nimport { uploadInjectionKey } from './interface'\n\nexport default defineComponent({\n  name: 'UploadProgress',\n  props: {\n    show: Boolean,\n    percentage: {\n      type: Number,\n      required: true\n    },\n    status: {\n      type: String as PropType<'info' | 'error' | 'success'>,\n      required: true\n    }\n  },\n  setup() {\n    const NUpload = inject(uploadInjectionKey)!\n    return {\n      mergedTheme: NUpload.mergedThemeRef\n    }\n  },\n  render() {\n    return (\n      <NFadeInExpandTransition>\n        {{\n          default: () =>\n            this.show ? (\n              <NProgress\n                type=\"line\"\n                showIndicator={false}\n                percentage={this.percentage}\n                status={this.status}\n                height={2}\n                theme={this.mergedTheme.peers.Progress}\n                themeOverrides={this.mergedTheme.peerOverrides.Progress}\n              />\n            ) : null\n        }}\n      </NFadeInExpandTransition>\n    )\n  }\n})\n","import type { FileAndEntry, ShouldUseThumbnailUrl } from './interface'\nimport type { UploadFileInfo, UploadSettledFileInfo } from './public-types'\nimport { isBrowser } from '../../_utils'\nimport { error } from '../../_utils/naive/warn'\n\nexport function isImageFileType(type: string): boolean {\n  return type.includes('image/')\n}\n\nfunction getExtname(url: string = ''): string {\n  const temp = url.split('/')\n  const filename = temp[temp.length - 1]\n  const filenameWithoutSuffix = filename.split(/#|\\?/)[0]\n  return (/\\.[^./\\\\]*$/.exec(filenameWithoutSuffix) || [''])[0]\n}\n\nconst imageExtensionRegex = /(webp|svg|png|gif|jpg|jpeg|jfif|bmp|dpg|ico)$/i\n\n// Do not need File object\nexport const isImageFile: ShouldUseThumbnailUrl = (file) => {\n  if (file.type) {\n    return isImageFileType(file.type)\n  }\n  const fileNameExtension = getExtname(file.name || '')\n  if (imageExtensionRegex.test(fileNameExtension)) {\n    return true\n  }\n  const url: string = file.thumbnailUrl || file.url || ''\n  const urlExtension = getExtname(url)\n  if (/^data:image\\//.test(url) || imageExtensionRegex.test(urlExtension)) {\n    return true\n  }\n  return false\n}\n\nexport async function createImageDataUrl(file: File): Promise<string> {\n  return await new Promise((resolve) => {\n    if (!file.type || !isImageFileType(file.type)) {\n      resolve('')\n      return\n    }\n    resolve(window.URL.createObjectURL(file))\n  })\n}\n\nexport const environmentSupportFile\n  = isBrowser && window.FileReader && window.File\n\nexport function isFileSystemDirectoryEntry(\n  item: FileSystemEntry | FileSystemFileEntry | FileSystemDirectoryEntry\n): item is FileSystemDirectoryEntry {\n  return item.isDirectory\n}\n\nexport function isFileSystemFileEntry(\n  item: FileSystemEntry | FileSystemFileEntry | FileSystemDirectoryEntry\n): item is FileSystemFileEntry {\n  return item.isFile\n}\n\nexport async function getFilesFromEntries(\n  entries: readonly FileSystemEntry[] | Array<FileSystemEntry | null>,\n  directory: boolean\n): Promise<FileAndEntry[]> {\n  const fileAndEntries: FileAndEntry[] = []\n\n  async function _getFilesFromEntries(\n    entries: readonly FileSystemEntry[] | Array<FileSystemEntry | null>\n  ): Promise<void> {\n    for (const entry of entries) {\n      if (!entry)\n        continue\n      if (directory && isFileSystemDirectoryEntry(entry)) {\n        const directoryReader = entry.createReader()\n        let allEntries: FileSystemEntry[] = []\n        let readEntries: readonly FileSystemEntry[]\n        try {\n          do {\n            readEntries = await new Promise<readonly FileSystemEntry[]>(\n              (resolve, reject) => {\n                directoryReader.readEntries(resolve, reject)\n              }\n            )\n            allEntries = allEntries.concat(readEntries)\n          } while (readEntries.length > 0)\n        }\n        catch (e) {\n          error('upload', 'error happens when handling directory upload', e)\n        }\n        await _getFilesFromEntries(allEntries)\n      }\n      else if (isFileSystemFileEntry(entry)) {\n        try {\n          const file = await new Promise<File>((resolve, reject) => {\n            entry.file(resolve, reject)\n          })\n          fileAndEntries.push({ file, entry, source: 'dnd' })\n        }\n        catch (e) {\n          error('upload', 'error happens when handling file upload', e)\n        }\n      }\n    }\n  }\n\n  await _getFilesFromEntries(entries)\n\n  return fileAndEntries\n}\n\nexport function createSettledFileInfo(\n  fileInfo: UploadFileInfo\n): UploadSettledFileInfo {\n  const {\n    id,\n    name,\n    percentage,\n    status,\n    url,\n    file,\n    thumbnailUrl,\n    type,\n    fullPath,\n    batchId\n  } = fileInfo\n  return {\n    id,\n    name,\n    percentage: percentage ?? null,\n    status,\n    url: url ?? null,\n    file: file ?? null,\n    thumbnailUrl: thumbnailUrl ?? null,\n    type: type ?? null,\n    fullPath: fullPath ?? null,\n    batchId: batchId ?? null\n  }\n}\n\n/**\n * This is a rather simple version. I may fix it later to make it more accurate.\n * I've looked at https://github.com/broofa/mime, however it doesn't has a esm\n * version, so I can't simply use it.\n */\nexport function matchType(\n  name: string,\n  mimeType: string,\n  accept: string\n): boolean {\n  name = name.toLowerCase()\n  mimeType = mimeType.toLocaleLowerCase()\n  accept = accept.toLocaleLowerCase()\n  const acceptAtoms = accept\n    .split(',')\n    .map(acceptAtom => acceptAtom.trim())\n    .filter(Boolean)\n  return acceptAtoms.some((acceptAtom) => {\n    if (acceptAtom.startsWith('.')) {\n      // suffix\n      if (name.endsWith(acceptAtom))\n        return true\n    }\n    else if (acceptAtom.includes('/')) {\n      // mime type\n      const [type, subtype] = mimeType.split('/')\n      const [acceptType, acceptSubtype] = acceptAtom.split('/')\n      if (acceptType === '*' || (type && acceptType && acceptType === type)) {\n        if (\n          acceptSubtype === '*'\n          || (subtype && acceptSubtype && acceptSubtype === subtype)\n        ) {\n          return true\n        }\n      }\n    }\n    else {\n      // invalid type\n      return true\n    }\n    return false\n  })\n}\n","import type { PropType, VNode } from 'vue'\nimport type { ExtractThemeOverrides } from '../../_mixins/use-theme'\nimport type { ButtonTheme } from '../../button/styles'\nimport type { ImageInst } from '../../image'\nimport type { ListType } from './interface'\nimport type { UploadSettledFileInfo } from './public-types'\nimport { useMemo } from 'vooks'\nimport { computed, defineComponent, h, inject, ref, watchEffect } from 'vue'\nimport { NBaseIcon, NIconSwitchTransition } from '../../_internal'\nimport {\n  AttachIcon,\n  CancelIcon,\n  DownloadIcon,\n  EyeIcon,\n  RetryIcon,\n  TrashIcon\n} from '../../_internal/icons'\nimport { download, warn } from '../../_utils'\nimport { NButton } from '../../button'\nimport { NImage } from '../../image'\nimport { renderDocumentIcon, renderImageIcon } from './icons'\nimport { uploadInjectionKey } from './interface'\nimport NUploadProgress from './UploadProgress'\nimport { isImageFile } from './utils'\n\nconst buttonThemeOverrides: ExtractThemeOverrides<ButtonTheme> = {\n  paddingMedium: '0 3px',\n  heightMedium: '24px',\n  iconSizeMedium: '18px'\n}\n\nexport default defineComponent({\n  name: 'UploadFile',\n  props: {\n    clsPrefix: {\n      type: String,\n      required: true\n    },\n    file: {\n      type: Object as PropType<UploadSettledFileInfo>,\n      required: true\n    },\n    listType: {\n      type: String as PropType<ListType>,\n      required: true\n    },\n    index: {\n      type: Number,\n      required: true\n    }\n  },\n  setup(props) {\n    const NUpload = inject(uploadInjectionKey)!\n\n    const imageRef = ref<ImageInst | null>(null)\n    const thumbnailUrlRef = ref<string>('')\n\n    const progressStatusRef = computed(() => {\n      const { file } = props\n      if (file.status === 'finished')\n        return 'success'\n      if (file.status === 'error')\n        return 'error'\n      return 'info'\n    })\n    const buttonTypeRef = computed(() => {\n      const { file } = props\n      if (file.status === 'error')\n        return 'error'\n      return undefined\n    })\n    const showProgressRef = computed(() => {\n      const { file } = props\n      return file.status === 'uploading'\n    })\n    const showCancelButtonRef = computed(() => {\n      if (!NUpload.showCancelButtonRef.value)\n        return false\n      const { file } = props\n      return ['uploading', 'pending', 'error'].includes(file.status)\n    })\n    const showRemoveButtonRef = computed(() => {\n      if (!NUpload.showRemoveButtonRef.value)\n        return false\n      const { file } = props\n      return ['finished'].includes(file.status)\n    })\n    const showDownloadButtonRef = computed(() => {\n      if (!NUpload.showDownloadButtonRef.value)\n        return false\n      const { file } = props\n      return ['finished'].includes(file.status)\n    })\n    const showRetryButtonRef = computed(() => {\n      if (!NUpload.showRetryButtonRef.value)\n        return false\n      const { file } = props\n      return ['error'].includes(file.status)\n    })\n    const mergedThumbnailUrlRef = useMemo(() => {\n      return thumbnailUrlRef.value || props.file.thumbnailUrl || props.file.url\n    })\n    const showPreviewButtonRef = computed(() => {\n      if (!NUpload.showPreviewButtonRef.value)\n        return false\n      const {\n        file: { status },\n        listType\n      } = props\n      return (\n        ['finished'].includes(status)\n        && mergedThumbnailUrlRef.value\n        && listType === 'image-card'\n      )\n    })\n    async function handleRetryClick(): Promise<void> {\n      const onRetry = NUpload.onRetryRef.value\n      if (onRetry) {\n        const onRetryReturn = await onRetry({ file: props.file })\n        if (onRetryReturn === false) {\n          return\n        }\n      }\n      NUpload.submit({ fileId: props.file.id })\n    }\n    function handleRemoveOrCancelClick(e: MouseEvent): void {\n      e.preventDefault()\n      const { file } = props\n      if (['finished', 'pending', 'error'].includes(file.status)) {\n        handleRemove(file)\n      }\n      else if (['uploading'].includes(file.status)) {\n        handleAbort(file)\n      }\n      else {\n        warn('upload', 'The button clicked type is unknown.')\n      }\n    }\n    function handleDownloadClick(e: MouseEvent): void {\n      e.preventDefault()\n      handleDownload(props.file)\n    }\n    function handleRemove(file: UploadSettledFileInfo): void {\n      const {\n        xhrMap,\n        doChange,\n        onRemoveRef: { value: onRemove },\n        mergedFileListRef: { value: mergedFileList }\n      } = NUpload\n      void Promise.resolve(\n        onRemove\n          ? onRemove({\n              file: Object.assign({}, file),\n              fileList: mergedFileList,\n              index: props.index\n            })\n          : true\n      ).then((result) => {\n        if (result === false)\n          return\n        const fileAfterChange = Object.assign({}, file, {\n          status: 'removed'\n        })\n        xhrMap.delete(file.id)\n        doChange(fileAfterChange, undefined, {\n          remove: true\n        })\n      })\n    }\n    function handleDownload(file: UploadSettledFileInfo): void {\n      const {\n        onDownloadRef: { value: onDownload },\n        customDownloadRef: { value: customDownload }\n      } = NUpload\n      void Promise.resolve(\n        onDownload ? onDownload(Object.assign({}, file)) : true\n      ).then((res) => {\n        if (res !== false) {\n          if (customDownload) {\n            customDownload(Object.assign({}, file))\n          }\n          else {\n            download(file.url, file.name)\n          }\n        }\n      })\n    }\n    function handleAbort(file: UploadSettledFileInfo): void {\n      const { xhrMap } = NUpload\n      const xhr = xhrMap.get(file.id)\n      xhr?.abort()\n      handleRemove(Object.assign({}, file))\n    }\n    function handlePreviewClick(e: MouseEvent): void {\n      const {\n        onPreviewRef: { value: onPreview }\n      } = NUpload\n\n      if (onPreview) {\n        onPreview(props.file, {\n          event: e\n        })\n      }\n      else if (props.listType === 'image-card') {\n        const { value } = imageRef\n        if (!value)\n          return\n        value.showPreview()\n      }\n    }\n\n    const deriveFileThumbnailUrl = async (): Promise<void> => {\n      const { listType } = props\n      if (listType !== 'image' && listType !== 'image-card') {\n        return\n      }\n      if (NUpload.shouldUseThumbnailUrlRef.value(props.file)) {\n        thumbnailUrlRef.value = await NUpload.getFileThumbnailUrlResolver(\n          props.file\n        )\n      }\n    }\n\n    watchEffect(() => {\n      void deriveFileThumbnailUrl()\n    })\n\n    return {\n      mergedTheme: NUpload.mergedThemeRef,\n      progressStatus: progressStatusRef,\n      buttonType: buttonTypeRef,\n      showProgress: showProgressRef,\n      disabled: NUpload.mergedDisabledRef,\n      showCancelButton: showCancelButtonRef,\n      showRemoveButton: showRemoveButtonRef,\n      showDownloadButton: showDownloadButtonRef,\n      showRetryButton: showRetryButtonRef,\n      showPreviewButton: showPreviewButtonRef,\n      alwaysShowActions: NUpload.alwaysShowActionsRef,\n      mergedThumbnailUrl: mergedThumbnailUrlRef,\n      shouldUseThumbnailUrl: NUpload.shouldUseThumbnailUrlRef,\n      renderIcon: NUpload.renderIconRef,\n      // reduce dts: string ref only, type unused in render\n      imageRef: imageRef as unknown,\n      handleRemoveOrCancelClick,\n      handleDownloadClick,\n      handleRetryClick,\n      handlePreviewClick\n    }\n  },\n  render() {\n    const { clsPrefix, mergedTheme, listType, file, renderIcon } = this\n\n    // if there is text list type, show file icon\n    let icon: VNode\n\n    const isImageType = listType === 'image'\n    const isImageCardType = listType === 'image-card'\n\n    if (isImageType || isImageCardType) {\n      icon\n        = !this.shouldUseThumbnailUrl(file) || !this.mergedThumbnailUrl ? (\n          <span class={`${clsPrefix}-upload-file-info__thumbnail`}>\n            {renderIcon ? (\n              renderIcon(file)\n            ) : isImageFile(file) ? (\n              <NBaseIcon clsPrefix={clsPrefix}>\n                {{ default: renderImageIcon }}\n              </NBaseIcon>\n            ) : (\n              <NBaseIcon clsPrefix={clsPrefix}>\n                {{ default: renderDocumentIcon }}\n              </NBaseIcon>\n            )}\n          </span>\n        ) : (\n          <a\n            rel=\"noopener noreferer\"\n            target=\"_blank\"\n            href={file.url || undefined}\n            class={`${clsPrefix}-upload-file-info__thumbnail`}\n            onClick={this.handlePreviewClick}\n          >\n            {listType === 'image-card' ? (\n              <NImage\n                src={this.mergedThumbnailUrl || undefined}\n                previewSrc={file.url || undefined}\n                alt={file.name}\n                ref=\"imageRef\"\n              />\n            ) : (\n              <img src={this.mergedThumbnailUrl || undefined} alt={file.name} />\n            )}\n          </a>\n        )\n    }\n    else {\n      icon = (\n        <span class={`${clsPrefix}-upload-file-info__thumbnail`}>\n          {renderIcon ? (\n            renderIcon(file)\n          ) : (\n            <NBaseIcon clsPrefix={clsPrefix}>\n              {{ default: () => <AttachIcon /> }}\n            </NBaseIcon>\n          )}\n        </span>\n      )\n    }\n\n    const progress = (\n      <NUploadProgress\n        show={this.showProgress}\n        percentage={file.percentage || 0}\n        status={this.progressStatus}\n      />\n    )\n\n    const showName = listType === 'text' || listType === 'image'\n\n    return (\n      <div\n        class={[\n          `${clsPrefix}-upload-file`,\n          `${clsPrefix}-upload-file--${this.progressStatus}-status`,\n          file.url\n          && file.status !== 'error'\n          && listType !== 'image-card'\n          && `${clsPrefix}-upload-file--with-url`,\n          `${clsPrefix}-upload-file--${listType}-type`,\n          this.alwaysShowActions\n          && `${clsPrefix}-upload-file--always-show-actions`\n        ]}\n      >\n        <div class={`${clsPrefix}-upload-file-info`}>\n          {icon}\n          <div class={`${clsPrefix}-upload-file-info__name`}>\n            {showName\n              && (file.url && file.status !== 'error' ? (\n                <a\n                  rel=\"noopener noreferer\"\n                  target=\"_blank\"\n                  href={file.url || undefined}\n                  onClick={this.handlePreviewClick}\n                >\n                  {file.name}\n                </a>\n              ) : (\n                <span onClick={this.handlePreviewClick}>{file.name}</span>\n              ))}\n            {isImageType && progress}\n          </div>\n          <div\n            class={[\n              `${clsPrefix}-upload-file-info__action`,\n              `${clsPrefix}-upload-file-info__action--${listType}-type`,\n              this.alwaysShowActions\n              && `${clsPrefix}-upload-file-info__action--always-show`\n            ]}\n          >\n            {this.showPreviewButton ? (\n              <NButton\n                key=\"preview\"\n                quaternary\n                type={this.buttonType}\n                onClick={this.handlePreviewClick}\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                builtinThemeOverrides={buttonThemeOverrides}\n              >\n                {{\n                  icon: () => (\n                    <NBaseIcon clsPrefix={clsPrefix}>\n                      {{ default: () => <EyeIcon /> }}\n                    </NBaseIcon>\n                  )\n                }}\n              </NButton>\n            ) : null}\n            {(this.showRemoveButton || this.showCancelButton)\n              && !this.disabled && (\n              <NButton\n                key=\"cancelOrTrash\"\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                quaternary\n                builtinThemeOverrides={buttonThemeOverrides}\n                type={this.buttonType}\n                onClick={this.handleRemoveOrCancelClick}\n              >\n                {{\n                  icon: () => (\n                    <NIconSwitchTransition>\n                      {{\n                        default: () =>\n                          this.showRemoveButton ? (\n                            <NBaseIcon clsPrefix={clsPrefix} key=\"trash\">\n                              {{ default: () => <TrashIcon /> }}\n                            </NBaseIcon>\n                          ) : (\n                            <NBaseIcon clsPrefix={clsPrefix} key=\"cancel\">\n                              {{ default: () => <CancelIcon /> }}\n                            </NBaseIcon>\n                          )\n                      }}\n                    </NIconSwitchTransition>\n                  )\n                }}\n              </NButton>\n            )}\n            {this.showRetryButton && !this.disabled && (\n              <NButton\n                key=\"retry\"\n                quaternary\n                type={this.buttonType}\n                onClick={this.handleRetryClick}\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                builtinThemeOverrides={buttonThemeOverrides}\n              >\n                {{\n                  icon: () => (\n                    <NBaseIcon clsPrefix={clsPrefix}>\n                      {{ default: () => <RetryIcon /> }}\n                    </NBaseIcon>\n                  )\n                }}\n              </NButton>\n            )}\n            {this.showDownloadButton ? (\n              <NButton\n                key=\"download\"\n                quaternary\n                type={this.buttonType}\n                onClick={this.handleDownloadClick}\n                theme={mergedTheme.peers.Button}\n                themeOverrides={mergedTheme.peerOverrides.Button}\n                builtinThemeOverrides={buttonThemeOverrides}\n              >\n                {{\n                  icon: () => (\n                    <NBaseIcon clsPrefix={clsPrefix}>\n                      {{ default: () => <DownloadIcon /> }}\n                    </NBaseIcon>\n                  )\n                }}\n              </NButton>\n            ) : null}\n          </div>\n        </div>\n        {!isImageType && progress}\n      </div>\n    )\n  }\n})\n","import type { SlotsType, VNode } from 'vue'\nimport type { UploadTriggerDefaultSlotOptions } from './interface'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NBaseIcon } from '../../_internal'\nimport { AddIcon } from '../../_internal/icons'\nimport { resolveSlotWithTypedProps, throwError } from '../../_utils'\nimport { uploadInjectionKey } from './interface'\nimport NUploadDragger from './UploadDragger'\nimport { getFilesFromEntries } from './utils'\n\nexport interface UploadTriggerSlots {\n  default?: (options: UploadTriggerDefaultSlotOptions) => VNode[]\n}\n\nexport default defineComponent({\n  name: 'UploadTrigger',\n  props: {\n    abstract: Boolean\n  },\n  slots: Object as SlotsType<UploadTriggerSlots>,\n  setup(props, { slots }) {\n    const NUpload = inject(uploadInjectionKey, null)\n    if (!NUpload) {\n      throwError(\n        'upload-trigger',\n        '`n-upload-trigger` must be placed inside `n-upload`.'\n      )\n    }\n    const {\n      mergedClsPrefixRef,\n      mergedDisabledRef,\n      maxReachedRef,\n      listTypeRef,\n      dragOverRef,\n      openOpenFileDialog,\n      draggerInsideRef,\n      handleFileAddition,\n      mergedDirectoryDndRef,\n      triggerClassRef,\n      triggerStyleRef\n    } = NUpload\n\n    const isImageCardTypeRef = computed(\n      () => listTypeRef.value === 'image-card'\n    )\n\n    function handleTriggerClick(): void {\n      if (mergedDisabledRef.value || maxReachedRef.value)\n        return\n      openOpenFileDialog()\n    }\n    function handleTriggerDragOver(e: DragEvent): void {\n      e.preventDefault()\n      dragOverRef.value = true\n    }\n    function handleTriggerDragEnter(e: DragEvent): void {\n      e.preventDefault()\n      dragOverRef.value = true\n    }\n    function handleTriggerDragLeave(e: DragEvent): void {\n      e.preventDefault()\n      dragOverRef.value = false\n    }\n    function handleTriggerDrop(e: DragEvent): void {\n      e.preventDefault()\n      if (\n        !draggerInsideRef.value\n        || mergedDisabledRef.value\n        || maxReachedRef.value\n      ) {\n        dragOverRef.value = false\n        return\n      }\n      const dataTransferItems = e.dataTransfer?.items\n      if (dataTransferItems?.length) {\n        void getFilesFromEntries(\n          Array.from(dataTransferItems).map(item => item.webkitGetAsEntry()),\n          mergedDirectoryDndRef.value\n        )\n          .then((files) => {\n            handleFileAddition(files)\n          })\n          .finally(() => {\n            dragOverRef.value = false\n          })\n      }\n      else {\n        dragOverRef.value = false\n      }\n    }\n\n    return () => {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const options = {\n        handleClick: handleTriggerClick,\n        handleDrop: handleTriggerDrop,\n        handleDragOver: handleTriggerDragOver,\n        handleDragEnter: handleTriggerDragEnter,\n        handleDragLeave: handleTriggerDragLeave\n      }\n      return props.abstract ? (\n        slots.default?.(options)\n      ) : (\n        <div\n          class={[\n            `${mergedClsPrefix}-upload-trigger`,\n            (mergedDisabledRef.value || maxReachedRef.value)\n            && `${mergedClsPrefix}-upload-trigger--disabled`,\n            isImageCardTypeRef.value\n            && `${mergedClsPrefix}-upload-trigger--image-card`,\n            triggerClassRef.value\n          ]}\n          style={triggerStyleRef.value}\n          onClick={handleTriggerClick}\n          onDrop={handleTriggerDrop}\n          onDragover={handleTriggerDragOver}\n          onDragenter={handleTriggerDragEnter}\n          onDragleave={handleTriggerDragLeave}\n        >\n          {isImageCardTypeRef.value ? (\n            <NUploadDragger>\n              {{\n                default: () =>\n                  resolveSlotWithTypedProps(slots.default, options, () => [\n                    <NBaseIcon clsPrefix={mergedClsPrefix}>\n                      {{ default: () => <AddIcon /> }}\n                    </NBaseIcon>\n                  ])\n              }}\n            </NUploadDragger>\n          ) : (\n            slots.default?.(options)\n          )}\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, VNode } from 'vue'\nimport { computed, defineComponent, h, inject } from 'vue'\nimport { NFadeInExpandTransition } from '../../_internal'\nimport { throwError } from '../../_utils'\nimport { NImageGroup } from '../../image'\nimport { uploadInjectionKey } from './interface'\nimport NUploadFile from './UploadFile'\nimport NUploadTrigger from './UploadTrigger'\n\nexport default defineComponent({\n  name: 'UploadFileList',\n  setup(_, { slots }) {\n    const NUpload = inject(uploadInjectionKey, null)\n    if (!NUpload) {\n      throwError(\n        'upload-file-list',\n        '`n-upload-file-list` must be placed inside `n-upload`.'\n      )\n    }\n\n    const {\n      abstractRef,\n      mergedClsPrefixRef,\n      listTypeRef,\n      mergedFileListRef,\n      fileListClassRef,\n      fileListStyleRef,\n      cssVarsRef,\n      themeClassRef,\n      maxReachedRef,\n      showTriggerRef,\n      imageGroupPropsRef\n    } = NUpload\n\n    const isImageCardTypeRef = computed(\n      () => listTypeRef.value === 'image-card'\n    )\n\n    const renderFileList = (): VNode[] =>\n      mergedFileListRef.value.map((file, index) => (\n        <NUploadFile\n          clsPrefix={mergedClsPrefixRef.value}\n          key={file.id}\n          file={file}\n          index={index}\n          listType={listTypeRef.value}\n        />\n      ))\n\n    const renderUploadFileList = (): VNode =>\n      isImageCardTypeRef.value ? (\n        <NImageGroup {...imageGroupPropsRef.value}>\n          {{ default: renderFileList }}\n        </NImageGroup>\n      ) : (\n        <NFadeInExpandTransition group>\n          {{\n            default: renderFileList\n          }}\n        </NFadeInExpandTransition>\n      )\n\n    return () => {\n      const { value: mergedClsPrefix } = mergedClsPrefixRef\n      const { value: abstract } = abstractRef\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-upload-file-list`,\n            isImageCardTypeRef.value\n            && `${mergedClsPrefix}-upload-file-list--grid`,\n            abstract ? themeClassRef?.value : undefined,\n            fileListClassRef.value\n          ]}\n          style={[\n            abstract && cssVarsRef ? cssVarsRef.value : '',\n            fileListStyleRef.value as CSSProperties\n          ]}\n        >\n          {renderUploadFileList()}\n          {showTriggerRef.value\n            && !maxReachedRef.value\n            && isImageCardTypeRef.value && (\n            <NUploadTrigger>{slots}</NUploadTrigger>\n          )}\n        </div>\n      )\n    }\n  }\n})\n","import type { CSSProperties, InputHTMLAttributes, PropType, Ref } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes, MaybeArray } from '../../_utils'\nimport type { ImageGroupProps } from '../../image'\nimport type { UploadTheme, UploadThemeOverrides } from '../styles'\nimport type {\n  CreateThumbnailUrl,\n  CustomRequest,\n  DoChange,\n  FileAndEntry,\n  FuncOrRecordOrUndef,\n  ListType,\n  OnBeforeUpload,\n  OnError,\n  OnPreview,\n  OnRetry,\n  OnUpdateFileList,\n  RenderIcon,\n  ShouldUseThumbnailUrl,\n  UploadInternalInst,\n  XhrHandlers\n} from './interface'\nimport type {\n  UploadFileInfo,\n  UploadInst,\n  UploadOnChange,\n  UploadOnDownload,\n  UploadOnFinish,\n  UploadOnRemove,\n  UploadSettledFileInfo\n} from './public-types'\nimport { createId } from 'seemly'\nimport { useMergedState } from 'vooks'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  nextTick,\n  provide,\n  ref,\n  Teleport,\n  toRef\n} from 'vue'\nimport {\n  useConfig,\n  useFormItem,\n  useRtl,\n  useTheme,\n  useThemeClass\n} from '../../_mixins'\nimport { call, throwError, warn } from '../../_utils'\nimport { uploadLight } from '../styles'\nimport { uploadInjectionKey } from './interface'\nimport style from './styles/index.cssr'\nimport { uploadDraggerKey } from './UploadDragger'\nimport NUploadFileList from './UploadFileList'\nimport NUploadTrigger from './UploadTrigger'\nimport {\n  createImageDataUrl,\n  createSettledFileInfo,\n  environmentSupportFile,\n  isImageFile,\n  matchType\n} from './utils'\n\n/**\n * fils status ['pending', 'uploading', 'finished', 'removed', 'error']\n */\nfunction createXhrHandlers(\n  inst: UploadInternalInst,\n  file: UploadSettledFileInfo,\n  xhr: XMLHttpRequest\n): XhrHandlers {\n  const { doChange, xhrMap } = inst\n  let percentage = 0\n  function handleXHRError(e: ProgressEvent<EventTarget>): void {\n    let fileAfterChange: UploadSettledFileInfo = Object.assign({}, file, {\n      status: 'error',\n      percentage\n    })\n    xhrMap.delete(file.id)\n    fileAfterChange = createSettledFileInfo(\n      inst.onError?.({ file: fileAfterChange, event: e }) || fileAfterChange\n    )\n    doChange(fileAfterChange, e)\n  }\n  function handleXHRLoad(e: ProgressEvent<EventTarget>): void {\n    if (inst.isErrorState) {\n      if (inst.isErrorState(xhr)) {\n        handleXHRError(e)\n        return\n      }\n    }\n    else {\n      if (xhr.status < 200 || xhr.status >= 300) {\n        handleXHRError(e)\n        return\n      }\n    }\n\n    let fileAfterChange: UploadSettledFileInfo = Object.assign<\n      Record<string, unknown>,\n      UploadSettledFileInfo,\n      Partial<UploadFileInfo>\n    >({}, file, {\n      status: 'finished',\n      percentage\n    })\n    xhrMap.delete(file.id)\n    fileAfterChange = createSettledFileInfo(\n      inst.onFinish?.({ file: fileAfterChange, event: e }) || fileAfterChange\n    )\n    doChange(fileAfterChange, e)\n  }\n  return {\n    handleXHRLoad,\n    handleXHRError,\n    handleXHRAbort(e) {\n      const fileAfterChange: UploadSettledFileInfo = Object.assign({}, file, {\n        status: 'removed',\n        file: null,\n        percentage\n      })\n\n      xhrMap.delete(file.id)\n      doChange(fileAfterChange, e)\n    },\n    handleXHRProgress(e) {\n      const fileAfterChange: UploadSettledFileInfo = Object.assign({}, file, {\n        status: 'uploading'\n      })\n\n      if (e.lengthComputable) {\n        const progress = Math.ceil((e.loaded / e.total) * 100)\n        fileAfterChange.percentage = progress\n        percentage = progress\n      }\n      doChange(fileAfterChange, e)\n    }\n  }\n}\n\nfunction customSubmitImpl(options: {\n  inst: Omit<UploadInternalInst, 'isErrorState'>\n  data?: FuncOrRecordOrUndef<string | Blob>\n  headers?: FuncOrRecordOrUndef\n  action?: string\n  withCredentials?: boolean\n  file: UploadSettledFileInfo\n  customRequest: CustomRequest\n}): void {\n  const { inst, file, data, headers, withCredentials, action, customRequest }\n    = options\n  const { doChange } = options.inst\n  let percentage = 0\n  customRequest({\n    file,\n    data,\n    headers,\n    withCredentials,\n    action,\n    onProgress(event) {\n      const fileAfterChange: UploadSettledFileInfo = Object.assign<\n        Record<string, unknown>,\n        UploadSettledFileInfo,\n        Partial<UploadFileInfo>\n      >({}, file, {\n        status: 'uploading'\n      })\n      const progress = event.percent\n      fileAfterChange.percentage = progress\n      percentage = progress\n      doChange(fileAfterChange)\n    },\n    onFinish() {\n      let fileAfterChange: UploadSettledFileInfo = Object.assign<\n        Record<string, unknown>,\n        UploadSettledFileInfo,\n        Partial<UploadFileInfo>\n      >({}, file, {\n        status: 'finished',\n        percentage\n      })\n      fileAfterChange = createSettledFileInfo(\n        inst.onFinish?.({ file: fileAfterChange }) || fileAfterChange\n      )\n      doChange(fileAfterChange)\n    },\n    onError() {\n      let fileAfterChange: UploadSettledFileInfo = Object.assign<\n        Record<string, unknown>,\n        UploadSettledFileInfo,\n        Partial<UploadFileInfo>\n      >({}, file, {\n        status: 'error',\n        percentage\n      })\n      fileAfterChange = createSettledFileInfo(\n        inst.onError?.({ file: fileAfterChange }) || fileAfterChange\n      )\n      doChange(fileAfterChange)\n    }\n  })\n}\n\nfunction registerHandler(\n  inst: UploadInternalInst,\n  file: UploadSettledFileInfo,\n  request: XMLHttpRequest\n): void {\n  const handlers = createXhrHandlers(inst, file, request)\n  request.onabort = handlers.handleXHRAbort\n  request.onerror = handlers.handleXHRError\n  request.onload = handlers.handleXHRLoad\n  if (request.upload) {\n    request.upload.onprogress = handlers.handleXHRProgress\n  }\n}\n\nfunction unwrapFunctionValue<T>(\n  data: FuncOrRecordOrUndef<T>,\n  file: UploadSettledFileInfo\n): Record<string, T> {\n  if (typeof data === 'function') {\n    return data({ file })\n  }\n  if (data)\n    return data\n  return {}\n}\n\nfunction setHeaders(\n  request: XMLHttpRequest,\n  headers: FuncOrRecordOrUndef,\n  file: UploadSettledFileInfo\n): void {\n  const headersObject = unwrapFunctionValue(headers, file)\n  if (!headersObject)\n    return\n  Object.keys(headersObject).forEach((key) => {\n    request.setRequestHeader(key, headersObject[key])\n  })\n}\n\nfunction appendData(\n  formData: FormData,\n  data: FuncOrRecordOrUndef<string | Blob>,\n  file: UploadSettledFileInfo\n): void {\n  const dataObject = unwrapFunctionValue(data, file)\n  if (!dataObject)\n    return\n  Object.keys(dataObject).forEach((key) => {\n    formData.append(key, dataObject[key])\n  })\n}\n\nfunction submitImpl(\n  inst: UploadInternalInst,\n  fieldName: string,\n  file: UploadSettledFileInfo,\n  {\n    method,\n    action,\n    withCredentials,\n    responseType,\n    headers,\n    data\n  }: {\n    method: string\n    action?: string\n    withCredentials: boolean\n    responseType: XMLHttpRequestResponseType\n    headers: FuncOrRecordOrUndef\n    data: FuncOrRecordOrUndef<string | Blob>\n  }\n): void {\n  const request = new XMLHttpRequest()\n  request.responseType = responseType\n  inst.xhrMap.set(file.id, request)\n  request.withCredentials = withCredentials\n  const formData = new FormData()\n  appendData(formData, data, file)\n  if (file.file !== null) {\n    formData.append(fieldName, file.file)\n  }\n  registerHandler(inst, file, request)\n  if (action !== undefined) {\n    request.open(method.toUpperCase(), action)\n    setHeaders(request, headers, file)\n    request.send(formData)\n    const fileAfterChange = Object.assign({}, file, {\n      status: 'uploading'\n    })\n    inst.doChange(fileAfterChange)\n  }\n}\n\nexport const uploadProps = {\n  ...(useTheme.props as ThemeProps<UploadTheme, UploadThemeOverrides>),\n  name: {\n    type: String,\n    default: 'file'\n  },\n  accept: String,\n  action: String,\n  customRequest: Function as PropType<CustomRequest>,\n  directory: Boolean,\n  directoryDnd: { type: Boolean, default: undefined },\n  method: {\n    type: String,\n    default: 'POST'\n  },\n  multiple: Boolean,\n  showFileList: {\n    type: Boolean,\n    default: true\n  },\n  data: [Object, Function] as PropType<FuncOrRecordOrUndef<string | Blob>>,\n  headers: [Object, Function] as PropType<FuncOrRecordOrUndef>,\n  withCredentials: Boolean,\n  responseType: {\n    type: String as PropType<XMLHttpRequestResponseType>,\n    default: ''\n  },\n  disabled: {\n    type: Boolean as PropType<boolean | undefined>,\n    default: undefined\n  },\n  onChange: Function as PropType<UploadOnChange>,\n  onRemove: Function as PropType<UploadOnRemove>,\n  onFinish: Function as PropType<UploadOnFinish>,\n  onError: Function as PropType<OnError>,\n  onRetry: Function as PropType<OnRetry>,\n  onBeforeUpload: Function as PropType<OnBeforeUpload>,\n  isErrorState: Function as PropType<(xhr: XMLHttpRequest) => boolean>,\n  /** currently not used */\n  onDownload: Function as PropType<UploadOnDownload>,\n  customDownload: Function as PropType<UploadOnDownload>,\n  defaultUpload: {\n    type: Boolean,\n    default: true\n  },\n  fileList: Array as PropType<UploadFileInfo[]>,\n  'onUpdate:fileList': [Function, Array] as PropType<\n    MaybeArray<OnUpdateFileList>\n  >,\n  onUpdateFileList: [Function, Array] as PropType<MaybeArray<OnUpdateFileList>>,\n  fileListClass: String,\n  fileListStyle: [String, Object] as PropType<string | CSSProperties>,\n  defaultFileList: {\n    type: Array as PropType<UploadFileInfo[]>,\n    default: () => []\n  },\n  showCancelButton: {\n    type: Boolean,\n    default: true\n  },\n  showRemoveButton: {\n    type: Boolean,\n    default: true\n  },\n  showDownloadButton: Boolean,\n  showRetryButton: {\n    type: Boolean,\n    default: true\n  },\n  showPreviewButton: {\n    type: Boolean,\n    default: true\n  },\n  alwaysShowActions: Boolean,\n  listType: {\n    type: String as PropType<ListType>,\n    default: 'text'\n  },\n  onPreview: Function as PropType<OnPreview>,\n  shouldUseThumbnailUrl: {\n    type: Function as PropType<ShouldUseThumbnailUrl>,\n    default: (file: UploadSettledFileInfo) => {\n      if (!environmentSupportFile)\n        return false\n      return isImageFile(file)\n    }\n  },\n  createThumbnailUrl: Function as PropType<CreateThumbnailUrl>,\n  abstract: Boolean,\n  max: Number,\n  showTrigger: {\n    type: Boolean,\n    default: true\n  },\n  imageGroupProps: Object as PropType<ImageGroupProps>,\n  inputProps: Object as PropType<InputHTMLAttributes>,\n  triggerClass: String,\n  triggerStyle: [String, Object] as PropType<CSSProperties | string>,\n  renderIcon: Function as PropType<RenderIcon>\n} as const\n\nexport type UploadProps = ExtractPublicPropTypes<typeof uploadProps>\n\nexport default defineComponent({\n  name: 'Upload',\n  props: uploadProps,\n  setup(props) {\n    if (props.abstract && props.listType === 'image-card') {\n      throwError(\n        'upload',\n        'when the list-type is image-card, abstract is not supported.'\n      )\n    }\n    const { mergedClsPrefixRef, inlineThemeDisabled, mergedRtlRef }\n      = useConfig(props)\n    const themeRef = useTheme(\n      'Upload',\n      '-upload',\n      style,\n      uploadLight,\n      props,\n      mergedClsPrefixRef\n    )\n\n    const rtlEnabledRef = useRtl('Upload', mergedRtlRef, mergedClsPrefixRef)\n\n    const formItem = useFormItem(props)\n    const uncontrolledFileListRef = ref(props.defaultFileList)\n    const controlledFileListRef = toRef(props, 'fileList')\n    const inputElRef = ref<HTMLInputElement | null>(null)\n    const draggerInsideRef = {\n      value: false\n    }\n    const dragOverRef = ref(false)\n    const xhrMap = new Map<string, XMLHttpRequest>()\n    const _mergedFileListRef = useMergedState(\n      controlledFileListRef,\n      uncontrolledFileListRef\n    )\n    const mergedFileListRef = computed(() =>\n      _mergedFileListRef.value.map(createSettledFileInfo)\n    )\n    const maxReachedRef = computed(() => {\n      const { max } = props\n      if (max !== undefined) {\n        return mergedFileListRef.value.length >= max\n      }\n      return false\n    })\n    function openOpenFileDialog(): void {\n      inputElRef.value?.click()\n    }\n    function handleFileInputChange(e: Event): void {\n      const target = e.target as HTMLInputElement\n      handleFileAddition(\n        target.files\n          ? Array.from(target.files).map(file => ({\n              file,\n              entry: null,\n              source: 'input'\n            }))\n          : null,\n        e\n      )\n      // May have bug! set to null?\n      target.value = ''\n    }\n    function doUpdateFileList(files: UploadSettledFileInfo[]): void {\n      const { 'onUpdate:fileList': _onUpdateFileList, onUpdateFileList } = props\n      if (_onUpdateFileList)\n        call(_onUpdateFileList, files)\n      if (onUpdateFileList)\n        call(onUpdateFileList, files)\n      uncontrolledFileListRef.value = files\n    }\n    const mergedMultipleRef = computed(() => props.multiple || props.directory)\n    const doChange: DoChange = (\n      fileAfterChange,\n      event,\n      options = {\n        append: false,\n        remove: false\n      }\n    ) => {\n      const { append, remove } = options\n      const fileListAfterChange = Array.from(mergedFileListRef.value)\n      const fileIndex = fileListAfterChange.findIndex(\n        file => file.id === fileAfterChange.id\n      )\n      if (append || remove || ~fileIndex) {\n        if (append) {\n          fileListAfterChange.push(fileAfterChange)\n        }\n        else if (remove) {\n          fileListAfterChange.splice(fileIndex, 1)\n        }\n        else {\n          fileListAfterChange.splice(fileIndex, 1, fileAfterChange)\n        }\n        const { onChange } = props\n        if (onChange) {\n          onChange({\n            file: fileAfterChange,\n            fileList: fileListAfterChange,\n            event\n          })\n        }\n        doUpdateFileList(fileListAfterChange)\n      }\n      else if (__DEV__) {\n        warn('upload', 'File has no corresponding id in current file list.')\n      }\n    }\n    let customRequestDoChangeChain = Promise.resolve()\n    const scheduleDoChange: DoChange = (file, event, options) => {\n      customRequestDoChangeChain = customRequestDoChangeChain.then(async () => {\n        await nextTick()\n        doChange(file, event, options)\n      })\n    }\n    function handleFileAddition(\n      fileAndEntries: FileAndEntry[] | null,\n      e?: Event\n    ): void {\n      if (!fileAndEntries || fileAndEntries.length === 0)\n        return\n      const { onBeforeUpload } = props\n      fileAndEntries = mergedMultipleRef.value\n        ? fileAndEntries\n        : [fileAndEntries[0]]\n      const { max, accept } = props\n      fileAndEntries = fileAndEntries.filter(({ file, source }) => {\n        if (source === 'dnd' && accept?.trim()) {\n          return matchType(file.name, file.type, accept)\n        }\n        else {\n          return true\n        }\n      })\n      if (max) {\n        fileAndEntries = fileAndEntries.slice(\n          0,\n          max - mergedFileListRef.value.length\n        )\n      }\n\n      const batchId = createId()\n\n      void Promise.all(\n        fileAndEntries.map(async ({ file, entry }) => {\n          const fileInfo: UploadSettledFileInfo = {\n            id: createId(),\n            batchId,\n            name: file.name,\n            status: 'pending',\n            percentage: 0,\n            file,\n            url: null,\n            type: file.type,\n            thumbnailUrl: null,\n            fullPath:\n              entry?.fullPath ?? `/${file.webkitRelativePath || file.name}`\n          }\n          if (\n            !onBeforeUpload\n            || (await onBeforeUpload({\n              file: fileInfo,\n              fileList: mergedFileListRef.value\n            })) !== false\n          ) {\n            return fileInfo\n          }\n          return null\n        })\n      )\n        .then(async (fileInfos) => {\n          let nextTickChain = Promise.resolve()\n\n          fileInfos.forEach((fileInfo) => {\n            nextTickChain = nextTickChain.then(nextTick as any).then(() => {\n              if (fileInfo) {\n                doChange(fileInfo, e, {\n                  append: true\n                })\n              }\n            })\n          })\n          await nextTickChain\n        })\n        .then(() => {\n          if (props.defaultUpload) {\n            submit()\n          }\n        })\n    }\n    function submit({\n      fileId,\n      retry = false\n    }: { fileId?: string, retry?: boolean } = {}): void {\n      const {\n        method,\n        action,\n        withCredentials,\n        headers,\n        data,\n        name: fieldName\n      } = props\n      const filesToUpload\n        = fileId !== undefined\n          ? mergedFileListRef.value.filter(file => file.id === fileId)\n          : mergedFileListRef.value\n      const shouldReupload = retry || fileId !== undefined\n      filesToUpload.forEach((file) => {\n        const { status } = file\n        if (status === 'pending' || (status === 'error' && shouldReupload)) {\n          if (props.customRequest) {\n            customSubmitImpl({\n              inst: {\n                doChange: scheduleDoChange,\n                xhrMap,\n                onFinish: props.onFinish,\n                onError: props.onError\n              },\n              file,\n              action,\n              withCredentials,\n              headers,\n              data,\n              customRequest: props.customRequest\n            })\n          }\n          else {\n            submitImpl(\n              {\n                doChange,\n                xhrMap,\n                onFinish: props.onFinish,\n                onError: props.onError,\n                isErrorState: props.isErrorState\n              },\n              fieldName,\n              file,\n              {\n                method,\n                action,\n                withCredentials,\n                responseType: props.responseType,\n                headers,\n                data\n              }\n            )\n          }\n        }\n      })\n    }\n    function getFileThumbnailUrlResolver(\n      file: UploadSettledFileInfo\n    ): Promise<string> | string {\n      if (file.thumbnailUrl)\n        return file.thumbnailUrl\n      const { createThumbnailUrl } = props\n      if (createThumbnailUrl) {\n        return createThumbnailUrl(file.file, file) ?? (file.url || '')\n      }\n      if (file.url) {\n        return file.url\n      }\n      else if (file.file) {\n        return createImageDataUrl(file.file)\n      }\n      return ''\n    }\n    const cssVarsRef = computed(() => {\n      const {\n        common: { cubicBezierEaseInOut },\n        self: {\n          draggerColor,\n          draggerBorder,\n          draggerBorderHover,\n          itemColorHover,\n          itemColorHoverError,\n          itemTextColorError,\n          itemTextColorSuccess,\n          itemTextColor,\n          itemIconColor,\n          itemDisabledOpacity,\n          lineHeight,\n          borderRadius,\n          fontSize,\n          itemBorderImageCardError,\n          itemBorderImageCard\n        }\n      } = themeRef.value\n      return {\n        '--n-bezier': cubicBezierEaseInOut,\n        '--n-border-radius': borderRadius,\n        '--n-dragger-border': draggerBorder,\n        '--n-dragger-border-hover': draggerBorderHover,\n        '--n-dragger-color': draggerColor,\n        '--n-font-size': fontSize,\n        '--n-item-color-hover': itemColorHover,\n        '--n-item-color-hover-error': itemColorHoverError,\n        '--n-item-disabled-opacity': itemDisabledOpacity,\n        '--n-item-icon-color': itemIconColor,\n        '--n-item-text-color': itemTextColor,\n        '--n-item-text-color-error': itemTextColorError,\n        '--n-item-text-color-success': itemTextColorSuccess,\n        '--n-line-height': lineHeight,\n        '--n-item-border-image-card-error': itemBorderImageCardError,\n        '--n-item-border-image-card': itemBorderImageCard\n      } as any\n    })\n    const themeClassHandle = inlineThemeDisabled\n      ? useThemeClass('upload', undefined, cssVarsRef, props)\n      : undefined\n    provide(uploadInjectionKey, {\n      mergedClsPrefixRef,\n      mergedThemeRef: themeRef,\n      showCancelButtonRef: toRef(props, 'showCancelButton'),\n      showDownloadButtonRef: toRef(props, 'showDownloadButton'),\n      showRemoveButtonRef: toRef(props, 'showRemoveButton'),\n      showRetryButtonRef: toRef(props, 'showRetryButton'),\n      onRemoveRef: toRef(props, 'onRemove'),\n      onDownloadRef: toRef(props, 'onDownload'),\n      customDownloadRef: toRef(props, 'customDownload'),\n      mergedFileListRef,\n      triggerClassRef: toRef(props, 'triggerClass'),\n      triggerStyleRef: toRef(props, 'triggerStyle'),\n      shouldUseThumbnailUrlRef: toRef(props, 'shouldUseThumbnailUrl'),\n      renderIconRef: toRef(props, 'renderIcon'),\n      xhrMap,\n      submit,\n      doChange,\n      showPreviewButtonRef: toRef(props, 'showPreviewButton'),\n      alwaysShowActionsRef: toRef(props, 'alwaysShowActions'),\n      onPreviewRef: toRef(props, 'onPreview'),\n      getFileThumbnailUrlResolver,\n      listTypeRef: toRef(props, 'listType'),\n      dragOverRef,\n      openOpenFileDialog,\n      draggerInsideRef,\n      handleFileAddition,\n      mergedDisabledRef: formItem.mergedDisabledRef,\n      maxReachedRef,\n      fileListClassRef: toRef(props, 'fileListClass'),\n      fileListStyleRef: toRef(props, 'fileListStyle'),\n      abstractRef: toRef(props, 'abstract'),\n      acceptRef: toRef(props, 'accept'),\n      cssVarsRef: inlineThemeDisabled ? undefined : cssVarsRef,\n      themeClassRef: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      showTriggerRef: toRef(props, 'showTrigger'),\n      imageGroupPropsRef: toRef(props, 'imageGroupProps'),\n      mergedDirectoryDndRef: computed(() => {\n        return props.directoryDnd ?? props.directory\n      }),\n      onRetryRef: toRef(props, 'onRetry')\n    })\n\n    const exposedMethods: UploadInst = {\n      clear: () => {\n        uncontrolledFileListRef.value = []\n      },\n      submit,\n      openOpenFileDialog\n    }\n\n    return {\n      mergedClsPrefix: mergedClsPrefixRef,\n      draggerInsideRef,\n      rtlEnabled: rtlEnabledRef,\n      inputElRef,\n      mergedTheme: themeRef,\n      dragOver: dragOverRef,\n      mergedMultiple: mergedMultipleRef,\n      cssVars: inlineThemeDisabled\n        ? undefined\n        : (cssVarsRef as Ref<CSSProperties>),\n      themeClass: themeClassHandle?.themeClass,\n      onRender: themeClassHandle?.onRender,\n      handleFileInputChange,\n      ...exposedMethods\n    }\n  },\n  render() {\n    const { draggerInsideRef, mergedClsPrefix, $slots, directory, onRender }\n      = this\n    if ($slots.default && !this.abstract) {\n      const firstChild = $slots.default()[0]\n      if ((firstChild as any)?.type?.[uploadDraggerKey]) {\n        draggerInsideRef.value = true\n      }\n    }\n\n    const inputNode = (\n      <input\n        {...this.inputProps}\n        ref=\"inputElRef\"\n        type=\"file\"\n        class={`${mergedClsPrefix}-upload-file-input`}\n        accept={this.accept}\n        multiple={this.mergedMultiple}\n        onChange={this.handleFileInputChange}\n        // @ts-expect-error // seems vue-tsc will add the prop, so we can't use expect-error\n        webkitdirectory={directory || undefined}\n        directory={directory || undefined}\n      />\n    )\n\n    if (this.abstract) {\n      return (\n        <>\n          {$slots.default?.()}\n          <Teleport to=\"body\">{inputNode}</Teleport>\n        </>\n      )\n    }\n\n    onRender?.()\n    return (\n      <div\n        class={[\n          `${mergedClsPrefix}-upload`,\n          this.rtlEnabled && `${mergedClsPrefix}-upload--rtl`,\n          draggerInsideRef.value && `${mergedClsPrefix}-upload--dragger-inside`,\n          this.dragOver && `${mergedClsPrefix}-upload--drag-over`,\n          this.themeClass\n        ]}\n        style={this.cssVars}\n      >\n        {inputNode}\n        {this.showTrigger && this.listType !== 'image-card' && (\n          <NUploadTrigger>{$slots}</NUploadTrigger>\n        )}\n        {this.showFileList && <NUploadFileList>{$slots}</NUploadFileList>}\n      </div>\n    )\n  }\n})\n","import type { CSSProperties, PropType } from 'vue'\nimport type {\n  VirtualListInst,\n  VirtualListItemData,\n  VirtualListScrollToOptions\n} from 'vueuc'\nimport type { ScrollbarInst } from '../../_internal'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { ScrollbarProps } from '../../scrollbar/src/Scrollbar'\nimport { defineComponent, h, ref } from 'vue'\nimport { VVirtualList } from 'vueuc'\nimport { NxScrollbar } from '../../_internal'\n\nexport { type VirtualListInst } from 'vueuc'\n\nexport const virtualListProps = {\n  scrollbarProps: Object as PropType<ScrollbarProps>,\n  items: {\n    type: Array as PropType<VirtualListItemData[]>,\n    default: () => []\n  },\n  itemSize: {\n    type: Number,\n    required: true\n  },\n  itemResizable: Boolean,\n  itemsStyle: [String, Object] as PropType<string | CSSProperties>,\n  visibleItemsTag: {\n    type: [String, Object] as PropType<string | object>,\n    default: 'div'\n  },\n  visibleItemsProps: Object,\n  ignoreItemResize: Boolean,\n  onScroll: Function as PropType<(event: Event) => void>,\n  onWheel: Function as PropType<(event: WheelEvent) => void>,\n  onResize: Function as PropType<(entry: ResizeObserverEntry) => void>,\n  defaultScrollKey: [Number, String] as PropType<number | string>,\n  defaultScrollIndex: Number,\n  keyField: {\n    type: String,\n    default: 'key'\n  },\n  paddingTop: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0\n  },\n  paddingBottom: {\n    type: [Number, String] as PropType<number | string>,\n    default: 0\n  }\n} as const\n\nexport type VirtualListProps = ExtractPublicPropTypes<typeof virtualListProps>\n\nexport default defineComponent({\n  name: 'VirtualList',\n  props: virtualListProps,\n  setup(props) {\n    const scrollbarInstRef = ref<ScrollbarInst | null>(null)\n    const virtualListInstRef = ref<VirtualListInst | null>(null)\n\n    function syncScrollbar(): void {\n      const { value: scrollbarInst } = scrollbarInstRef\n      if (scrollbarInst)\n        scrollbarInst.sync()\n    }\n\n    function handleScroll(e: Event): void {\n      syncScrollbar()\n      props.onScroll?.(e)\n    }\n\n    function handleResize(e: ResizeObserverEntry): void {\n      syncScrollbar()\n      props.onResize?.(e)\n    }\n\n    function handleWheel(e: WheelEvent): void {\n      props.onWheel?.(e)\n    }\n\n    function scrollTo(\n      options: VirtualListScrollToOptions | number,\n      y?: number\n    ): void {\n      if (typeof options === 'number') {\n        virtualListInstRef.value?.scrollTo(options, y ?? 0)\n      }\n      else {\n        virtualListInstRef.value?.scrollTo(options)\n      }\n    }\n\n    function getScrollContainer(): HTMLElement | null | undefined {\n      return virtualListInstRef.value?.listElRef\n    }\n\n    function getScrollContent(): HTMLElement | null | undefined {\n      return virtualListInstRef.value?.itemsElRef\n    }\n\n    return {\n      scrollTo,\n      // reduce dts: string ref only, type unused in render\n      scrollbarInstRef: scrollbarInstRef as unknown,\n      virtualListInstRef: virtualListInstRef as unknown,\n      getScrollContainer,\n      getScrollContent,\n      handleScroll,\n      handleResize,\n      handleWheel\n    }\n  },\n  render() {\n    return (\n      <NxScrollbar\n        {...this.scrollbarProps}\n        ref=\"scrollbarInstRef\"\n        container={this.getScrollContainer}\n        content={this.getScrollContent}\n      >\n        {{\n          default: () => {\n            return (\n              <VVirtualList\n                ref=\"virtualListInstRef\"\n                showScrollbar={false}\n                items={this.items}\n                itemSize={this.itemSize}\n                itemResizable={this.itemResizable}\n                itemsStyle={this.itemsStyle}\n                visibleItemsTag={this.visibleItemsTag}\n                visibleItemsProps={this.visibleItemsProps}\n                ignoreItemResize={this.ignoreItemResize}\n                keyField={this.keyField}\n                defaultScrollKey={this.defaultScrollKey}\n                defaultScrollIndex={this.defaultScrollIndex}\n                paddingTop={this.paddingTop}\n                paddingBottom={this.paddingBottom}\n                onScroll={this.handleScroll}\n                onResize={this.handleResize}\n                onWheel={this.handleWheel}\n              >\n                {{\n                  default: ({\n                    item,\n                    index\n                  }: {\n                    item: VirtualListItemData\n                    index: number\n                  }) => this.$slots.default?.({ item, index })\n                }}\n              </VVirtualList>\n            )\n          }\n        }}\n      </NxScrollbar>\n    )\n  }\n})\n","import { c, cB, cM, cNotM } from '../../../_utils/cssr'\n\nexport default c([\n  cB('watermark-container', `\n    position: relative;\n  `, [\n    cNotM('selectable', `\n      user-select: none;\n      -webkit-user-select: none;\n    `),\n    cM('global-rotate', `\n      overflow: hidden;\n    `),\n    cM('fullscreen', `\n      top: 0;\n      left: 0;\n      width: 100%;\n      height: 100%;\n      pointer-events: none;\n      position: fixed;\n    `)\n  ]),\n  cB('watermark', `\n    position: absolute;\n    top: 0;\n    left: 0;\n    width: 100%;\n    height: 100%;\n    pointer-events: none;\n    background-repeat: repeat;\n  `, [\n    cM('fullscreen', `\n      position: fixed;\n    `),\n    cM('global-rotate', `\n      position: absolute;\n      height: max(284vh, 284vw);\n      width: max(284vh, 284vw);\n    `)\n  ])\n])\n","import type { PropType } from 'vue'\nimport type { ThemeProps } from '../../_mixins'\nimport type { ExtractPublicPropTypes } from '../../_utils'\nimport type { WatermarkTheme, WatermarkThemeOverrides } from '../styles'\nimport { onFontsReady } from 'vooks'\nimport { defineComponent, h, ref, watchEffect } from 'vue'\nimport { useConfig, useTheme } from '../../_mixins'\nimport { isBrowser, warnOnce } from '../../_utils'\nimport { watermarkLight } from '../styles'\nimport style from './styles/index.cssr'\n\nfunction getRatio(context: any): number {\n  if (!context) {\n    return 1\n  }\n  const backingStore\n    = context.backingStorePixelRatio\n      || context.webkitBackingStorePixelRatio\n      || context.mozBackingStorePixelRatio\n      || context.msBackingStorePixelRatio\n      || context.oBackingStorePixelRatio\n      || context.backingStorePixelRatio\n      || 1\n  return (window.devicePixelRatio || 1) / backingStore\n}\n\nexport const watermarkProps = {\n  ...(useTheme.props as ThemeProps<WatermarkTheme, WatermarkThemeOverrides>),\n  debug: Boolean,\n  cross: Boolean,\n  fullscreen: Boolean,\n  width: {\n    type: Number,\n    default: 32\n  },\n  height: {\n    type: Number,\n    default: 32\n  },\n  zIndex: {\n    type: Number,\n    default: 10\n  },\n  xGap: {\n    type: Number,\n    default: 0\n  },\n  yGap: {\n    type: Number,\n    default: 0\n  },\n  yOffset: {\n    type: Number,\n    default: 0\n  },\n  xOffset: {\n    type: Number,\n    default: 0\n  },\n  rotate: {\n    type: Number,\n    default: 0\n  },\n  textAlign: {\n    type: String as PropType<'left' | 'center' | 'right'>,\n    default: 'left'\n  },\n  image: String,\n  imageOpacity: { type: Number, default: 1 },\n  imageHeight: Number,\n  imageWidth: Number,\n  content: String,\n  selectable: {\n    type: Boolean,\n    default: true\n  },\n  fontSize: {\n    type: Number,\n    default: 14\n  },\n  fontFamily: String,\n  fontStyle: {\n    type: String as PropType<\n      'normal' | 'italic' | 'oblique' | `oblique ${number}deg`\n    >,\n    default: 'normal'\n  },\n  fontVariant: {\n    type: String,\n    default: ''\n  },\n  fontWeight: {\n    type: Number,\n    default: 400\n  },\n  fontColor: {\n    type: String,\n    default: 'rgba(128, 128, 128, .3)'\n  },\n  fontStretch: {\n    type: String,\n    default: ''\n  },\n  lineHeight: {\n    type: Number,\n    default: 14\n  },\n  globalRotate: {\n    type: Number,\n    default: 0\n  }\n} as const\n\nexport type WatermarkProps = ExtractPublicPropTypes<typeof watermarkProps>\n\nexport default defineComponent({\n  name: 'Watermark',\n  props: watermarkProps,\n  setup(props, { slots }) {\n    const { mergedClsPrefixRef } = useConfig(props)\n    const themeRef = useTheme(\n      'Watermark',\n      '-watermark',\n      style,\n      watermarkLight,\n      props,\n      mergedClsPrefixRef\n    )\n    const base64UrlRef = ref('')\n    const canvas = isBrowser ? document.createElement('canvas') : null\n    const ctx = canvas ? canvas.getContext('2d') : null\n    const fontsReadyRef = ref(false)\n    onFontsReady(() => (fontsReadyRef.value = true))\n    watchEffect(() => {\n      if (!canvas)\n        return\n      void fontsReadyRef.value\n      const ratio = getRatio(ctx)\n      const {\n        xGap,\n        yGap,\n        width,\n        height,\n        yOffset,\n        xOffset,\n        rotate,\n        image,\n        content,\n        fontColor,\n        fontStyle,\n        fontVariant,\n        fontStretch,\n        fontWeight,\n        fontFamily,\n        fontSize,\n        lineHeight,\n        debug\n      } = props\n      const canvasWidth = (xGap + width) * ratio\n      const canvasHeight = (yGap + height) * ratio\n      const canvasOffsetLeft = xOffset * ratio\n      const canvasOffsetTop = yOffset * ratio\n      canvas.width = canvasWidth\n      canvas.height = canvasHeight\n      if (ctx) {\n        ctx.translate(0, 0)\n        const markWidth = width * ratio\n        const markHeight = height * ratio\n        if (debug) {\n          ctx.strokeStyle = 'grey'\n          ctx.strokeRect(0, 0, markWidth, markHeight)\n        }\n        ctx.rotate(rotate * (Math.PI / 180))\n        if (image) {\n          const img = new Image()\n          img.crossOrigin = 'anonymous'\n          img.referrerPolicy = 'no-referrer'\n          img.src = image\n          img.onload = () => {\n            ctx.globalAlpha = props.imageOpacity\n            const { imageWidth, imageHeight } = props\n            ctx.drawImage(\n              img,\n              canvasOffsetLeft,\n              canvasOffsetTop,\n              (props.imageWidth\n                || (imageHeight\n                  ? (img.width * imageHeight) / img.height\n                  : img.width)) * ratio,\n              (props.imageHeight\n                || (imageWidth\n                  ? (img.height * imageWidth) / img.width\n                  : img.height)) * ratio\n            )\n            base64UrlRef.value = canvas.toDataURL()\n          }\n        }\n        else if (content) {\n          if (debug) {\n            ctx.strokeStyle = 'green'\n            ctx.strokeRect(0, 0, markWidth, markHeight)\n          }\n          ctx.font = `${fontStyle} ${fontVariant} ${fontWeight} ${fontStretch} ${\n            fontSize * ratio\n          }px/${lineHeight * ratio}px ${\n            fontFamily || themeRef.value.self.fontFamily\n          }`\n          ctx.fillStyle = fontColor\n\n          let maxWidth = 0\n          const { textAlign } = props\n          content\n            .split('\\n')\n            .map((line) => {\n              const width = ctx.measureText(line).width\n              maxWidth = Math.max(maxWidth, width)\n              return {\n                width,\n                line\n              }\n            })\n            .forEach(({ line, width }, index) => {\n              const alignOffset\n                = textAlign === 'left'\n                  ? 0\n                  : textAlign === 'center'\n                    ? (maxWidth - width) / 2\n                    : maxWidth - width\n\n              ctx.fillText(\n                line,\n                canvasOffsetLeft + alignOffset,\n                canvasOffsetTop + lineHeight * ratio * (index + 1)\n              )\n            })\n          base64UrlRef.value = canvas.toDataURL()\n        }\n        else if (!content) {\n          // For example, you are using the input box to customize the watermark\n          // content, but after clearing the input box, the content is empty,\n          // and the canvas content is empty. Clear canvas when content is empty\n          ctx.clearRect(0, 0, canvas.width, canvas.height)\n          base64UrlRef.value = canvas.toDataURL()\n        }\n      }\n      else {\n        warnOnce('watermark', 'Canvas is not supported in the browser.')\n      }\n    })\n    return () => {\n      const { globalRotate, fullscreen, zIndex } = props\n      const mergedClsPrefix = mergedClsPrefixRef.value\n      const isFullScreenGlobalRotate = globalRotate !== 0 && fullscreen\n      const rotatedImageOffset = 'max(142vh, 142vw)'\n      const watermarkNode = (\n        <div\n          class={[\n            `${mergedClsPrefix}-watermark`,\n            globalRotate !== 0 && `${mergedClsPrefix}-watermark--global-rotate`,\n            fullscreen && `${mergedClsPrefix}-watermark--fullscreen`\n          ]}\n          style={{\n            transform: globalRotate\n              ? `translateX(-50%) translateY(-50%) rotate(${globalRotate}deg)`\n              : undefined,\n            zIndex: isFullScreenGlobalRotate ? undefined : zIndex,\n            backgroundSize: `${props.xGap + props.width}px`,\n            backgroundPosition:\n              globalRotate === 0\n                ? props.cross\n                  ? `${props.width / 2}px ${props.height / 2}px, 0 0`\n                  : ''\n                : props.cross\n                  ? `calc(${rotatedImageOffset} + ${\n                    props.width / 2\n                  }px) calc(${rotatedImageOffset} + ${\n                    props.height / 2\n                  }px), ${rotatedImageOffset} ${rotatedImageOffset}`\n                  : rotatedImageOffset,\n            backgroundImage: props.cross\n              ? `url(${base64UrlRef.value}), url(${base64UrlRef.value})`\n              : `url(${base64UrlRef.value})`\n          }}\n        />\n      )\n      if (props.fullscreen && !globalRotate)\n        return watermarkNode\n      return (\n        <div\n          class={[\n            `${mergedClsPrefix}-watermark-container`,\n            globalRotate !== 0\n            && `${mergedClsPrefix}-watermark-container--global-rotate`,\n            fullscreen && `${mergedClsPrefix}-watermark-container--fullscreen`,\n            props.selectable\n            && `${mergedClsPrefix}-watermark-container--selectable`\n          ]}\n          style={{\n            zIndex: isFullScreenGlobalRotate ? zIndex : undefined\n          }}\n        >\n          {slots.default?.()}\n          {watermarkNode}\n        </div>\n      )\n    }\n  }\n})\n","export * from './affix'\nexport * from './alert'\nexport * from './anchor'\nexport * from './auto-complete'\nexport * from './avatar'\nexport * from './avatar-group'\nexport * from './back-top'\nexport * from './badge'\nexport * from './breadcrumb'\nexport * from './button'\nexport * from './button-group'\nexport * from './calendar'\nexport * from './card'\nexport * from './carousel'\nexport * from './cascader'\nexport * from './checkbox'\nexport * from './code'\nexport * from './collapse'\nexport * from './collapse-transition'\nexport * from './color-picker'\nexport * from './config-provider'\nexport * from './countdown'\nexport * from './data-table'\nexport * from './date-picker'\nexport * from './descriptions'\nexport * from './dialog'\nexport * from './discrete'\nexport * from './divider'\nexport * from './drawer'\nexport * from './dropdown'\nexport * from './dynamic-input'\nexport * from './dynamic-tags'\nexport * from './element'\nexport * from './ellipsis'\nexport * from './empty'\nexport * from './equation'\nexport * from './flex'\nexport * from './float-button'\nexport * from './float-button-group'\nexport * from './form'\nexport * from './global-style'\nexport * from './gradient-text'\nexport * from './grid'\nexport * from './heatmap'\nexport * from './highlight'\nexport * from './icon'\nexport * from './icon-wrapper'\nexport * from './image'\nexport * from './infinite-scroll'\nexport * from './input'\nexport * from './input-number'\nexport * from './input-otp'\nexport * from './layout'\nexport * from './legacy-grid'\nexport * from './legacy-transfer'\nexport * from './list'\nexport * from './loading-bar'\nexport * from './log'\nexport * from './marquee'\nexport * from './mention'\nexport * from './menu'\nexport * from './message'\nexport * from './modal'\nexport * from './notification'\nexport * from './number-animation'\nexport * from './page-header'\nexport * from './pagination'\nexport * from './popconfirm'\nexport * from './popover'\nexport * from './popselect'\nexport * from './progress'\nexport * from './qr-code'\nexport * from './radio'\nexport * from './rate'\nexport * from './result'\nexport * from './scrollbar'\nexport * from './select'\nexport * from './skeleton'\nexport * from './slider'\nexport * from './space'\nexport * from './spin'\nexport * from './split'\nexport * from './statistic'\nexport * from './steps'\nexport * from './switch'\nexport * from './table'\nexport * from './tabs'\nexport * from './tag'\nexport * from './thing'\nexport * from './time'\nexport * from './time-picker'\nexport * from './timeline'\nexport * from './tooltip'\nexport * from './transfer'\nexport * from './tree'\nexport * from './tree-select'\nexport * from './typography'\nexport * from './upload'\nexport * from './virtual-list'\nexport * from './watermark'\n","import type { ComputedRef } from 'vue'\nimport type { ThemeCommonVars } from '../_styles/common'\nimport type { CustomThemeCommonVars } from '../config-provider'\nimport { computed, inject } from 'vue'\nimport { commonLight } from '../_styles/common'\nimport { configProviderInjectionKey } from '../config-provider/src/context'\n\nexport function useThemeVars(): ComputedRef<\n  ThemeCommonVars & CustomThemeCommonVars\n> {\n  const configProviderInjection = inject(configProviderInjectionKey, null)\n  return computed(() => {\n    if (configProviderInjection === null)\n      return commonLight\n    const {\n      mergedThemeRef: { value: mergedTheme },\n      mergedThemeOverridesRef: { value: mergedThemeOverrides }\n    } = configProviderInjection\n    const currentThemeVars = mergedTheme?.common || commonLight\n    if (mergedThemeOverrides?.common) {\n      return Object.assign({}, currentThemeVars, mergedThemeOverrides.common)\n    }\n    else {\n      return currentThemeVars\n    }\n  })\n}\n","export default '2.45.3'\n","import type { App, Component, DefineComponent } from 'vue'\nimport version from './version'\n\ntype ComponentType = any\n\nexport interface NUiInstance {\n  version: string\n  componentPrefix: string\n  install: (app: App) => void\n}\n\ninterface NUiCreateOptions {\n  components?: ComponentType[]\n  componentPrefix?: string\n}\n\nfunction create({\n  componentPrefix = 'N',\n  components = []\n}: NUiCreateOptions = {}): NUiInstance {\n  const installTargets: App[] = []\n  function registerComponent(\n    app: App,\n    name: string,\n    component: ComponentType\n  ): void {\n    const registered = app.component(componentPrefix + name)\n    if (!registered) {\n      app.component(\n        componentPrefix + name,\n        component as Component<any> | DefineComponent<any>\n      )\n    }\n  }\n  function install(app: App): void {\n    if (installTargets.includes(app))\n      return\n    installTargets.push(app)\n    components.forEach((component) => {\n      const { name, alias } = component\n      registerComponent(app, name as string, component)\n      if (alias) {\n        alias.forEach((aliasName: string) => {\n          registerComponent(app, aliasName, component)\n        })\n      }\n    })\n  }\n  return {\n    version,\n    componentPrefix,\n    install\n  }\n}\n\nexport default create\n","import * as components from './components'\nimport create from './create'\n\nconst naive = create({\n  components: Object.keys(components).map(\n    key => components[key as keyof typeof components]\n  )\n})\n\nexport default naive\nexport const install = naive.install\n","import type { ExtractThemeOverrides, Theme } from '../../_mixins'\nimport { commonLight } from '../../_styles/common'\n\nexport const self = () => ({})\n\nexport interface EquationThemeVars extends ReturnType<typeof self> {}\n\nconst equationLight: EquationTheme = {\n  name: 'Equation',\n  common: commonLight,\n  self\n}\n\nexport interface EquationTheme extends Theme<'Equation', EquationThemeVars> {}\n\nexport interface EquationThemeOverrides extends ExtractThemeOverrides<EquationTheme> {}\n\nexport default equationLight\n","import type { EquationTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst equationDark: EquationTheme = {\n  name: 'Equation',\n  common: commonDark,\n  self\n}\n\nexport default equationDark\n","import type { FloatButtonGroupTheme } from './light'\nimport { commonDark } from '../../_styles/common'\n\nconst floatButtonGroupDark: FloatButtonGroupTheme = {\n  name: 'FloatButtonGroup',\n  common: commonDark,\n  self(vars) {\n    const { popoverColor, dividerColor, borderRadius } = vars\n    return {\n      color: popoverColor,\n      buttonBorderColor: dividerColor,\n      borderRadiusSquare: borderRadius,\n      boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)'\n    }\n  }\n}\n\nexport default floatButtonGroupDark\n","import type { HeatmapTheme } from './light'\nimport { commonDark } from '../../_styles/common'\nimport { self } from './light'\n\nconst HeatmapDark: HeatmapTheme = {\n  name: 'Heatmap',\n  common: commonDark,\n  self(vars) {\n    const lightSelf = self(vars)\n    return {\n      ...lightSelf,\n      activeColors: ['#0d4429', '#006d32', '#26a641', '#39d353'],\n      mininumColor: 'rgba(255, 255, 255, 0.1)',\n      loadingColorStart: 'rgba(255, 255, 255, 0.12)',\n      loadingColorEnd: 'rgba(255, 255, 255, 0.18)'\n    }\n  }\n}\n\nexport default HeatmapDark\n","import type { BuiltInGlobalTheme } from './interface'\nimport { scrollbarLight } from '../_internal/scrollbar/styles'\n// The file is for internal usage, do not export it, since all the components\n// have default light theme.\nimport { commonLight } from '../_styles/common'\nimport { alertLight } from '../alert/styles'\nimport { anchorLight } from '../anchor/styles'\nimport { autoCompleteLight } from '../auto-complete/styles'\nimport { avatarGroupLight } from '../avatar-group/styles'\nimport { avatarLight } from '../avatar/styles'\nimport { backTopLight } from '../back-top/styles'\nimport { badgeLight } from '../badge/styles'\nimport { breadcrumbLight } from '../breadcrumb/styles'\nimport { buttonGroupLight } from '../button-group/styles'\nimport { buttonLight } from '../button/styles'\nimport { calendarLight } from '../calendar/styles'\nimport { cardLight } from '../card/styles'\nimport { carouselLight } from '../carousel/styles'\nimport { cascaderLight } from '../cascader/styles'\nimport { checkboxLight } from '../checkbox/styles'\nimport { codeLight } from '../code/styles'\nimport { collapseTransitionLight } from '../collapse-transition/styles'\nimport { collapseLight } from '../collapse/styles'\nimport { colorPickerLight } from '../color-picker/styles'\nimport { dataTableLight } from '../data-table/styles'\nimport { datePickerLight } from '../date-picker/styles'\nimport { descriptionsLight } from '../descriptions/styles'\nimport { dialogLight } from '../dialog/styles'\nimport { dividerLight } from '../divider/styles'\nimport { drawerLight } from '../drawer/styles'\nimport { dropdownLight } from '../dropdown/styles'\nimport { dynamicInputLight } from '../dynamic-input/styles'\nimport { dynamicTagsLight } from '../dynamic-tags/styles'\nimport { elementLight } from '../element/styles'\nimport { ellipsisLight } from '../ellipsis/styles'\nimport { emptyLight } from '../empty/styles'\nimport { equationLight } from '../equation/styles'\nimport { flexLight } from '../flex/styles'\nimport { floatButtonGroupLight } from '../float-button-group/styles'\nimport { floatButtonLight } from '../float-button/styles'\nimport { formLight } from '../form/styles'\nimport { gradientTextLight } from '../gradient-text/styles'\nimport { heatmapLight } from '../heatmap/styles'\nimport { iconWrapperLight } from '../icon-wrapper/styles'\nimport { iconLight } from '../icon/styles'\nimport { imageLight } from '../image/styles'\nimport { inputNumberLight } from '../input-number/styles'\nimport { inputOtpLight } from '../input-otp/styles'\nimport { inputLight } from '../input/styles'\nimport { layoutLight } from '../layout/styles'\nimport { rowLight } from '../legacy-grid/styles'\nimport { legacyTransferLight } from '../legacy-transfer/styles'\nimport { listLight } from '../list/styles'\nimport { loadingBarLight } from '../loading-bar/styles'\nimport { logLight } from '../log/styles'\nimport { marqueeLight } from '../marquee/styles'\nimport { mentionLight } from '../mention/styles'\nimport { menuLight } from '../menu/styles'\nimport { messageLight } from '../message/styles'\nimport { modalLight } from '../modal/styles'\nimport { notificationLight } from '../notification/styles'\nimport { pageHeaderLight } from '../page-header/styles'\nimport { paginationLight } from '../pagination/styles'\nimport { popconfirmLight } from '../popconfirm/styles'\nimport { popoverLight } from '../popover/styles'\nimport { popselectLight } from '../popselect/styles'\nimport { progressLight } from '../progress/styles'\nimport { qrcodeLight } from '../qr-code/styles'\nimport { radioLight } from '../radio/styles'\nimport { rateLight } from '../rate/styles'\nimport { resultLight } from '../result/styles'\nimport { selectLight } from '../select/styles'\nimport { skeletonLight } from '../skeleton/styles'\nimport { sliderLight } from '../slider/styles'\nimport { spaceLight } from '../space/styles'\nimport { spinLight } from '../spin/styles'\nimport { splitLight } from '../split/styles'\nimport { statisticLight } from '../statistic/styles'\nimport { stepsLight } from '../steps/styles'\nimport { switchLight } from '../switch/styles'\nimport { tableLight } from '../table/styles'\nimport { tabsLight } from '../tabs/styles'\nimport { tagLight } from '../tag/styles'\nimport { thingLight } from '../thing/styles'\nimport { timePickerLight } from '../time-picker/styles'\nimport { timelineLight } from '../timeline/styles'\nimport { tooltipLight } from '../tooltip/styles'\nimport { transferLight } from '../transfer/styles'\nimport { treeSelectLight } from '../tree-select/styles'\nimport { treeLight } from '../tree/styles'\nimport { typographyLight } from '../typography/styles'\nimport { uploadLight } from '../upload/styles'\nimport { watermarkLight } from '../watermark/styles'\n\nexport const lightTheme: BuiltInGlobalTheme = {\n  name: 'light',\n  common: commonLight,\n  Alert: alertLight,\n  Anchor: anchorLight,\n  AutoComplete: autoCompleteLight,\n  Avatar: avatarLight,\n  AvatarGroup: avatarGroupLight,\n  BackTop: backTopLight,\n  Badge: badgeLight,\n  Breadcrumb: breadcrumbLight,\n  Button: buttonLight,\n  ButtonGroup: buttonGroupLight,\n  Calendar: calendarLight,\n  Card: cardLight,\n  Carousel: carouselLight,\n  Cascader: cascaderLight,\n  Checkbox: checkboxLight,\n  Code: codeLight,\n  Collapse: collapseLight,\n  CollapseTransition: collapseTransitionLight,\n  ColorPicker: colorPickerLight,\n  DataTable: dataTableLight,\n  DatePicker: datePickerLight,\n  Descriptions: descriptionsLight,\n  Dialog: dialogLight,\n  Divider: dividerLight,\n  Drawer: drawerLight,\n  Dropdown: dropdownLight,\n  DynamicInput: dynamicInputLight,\n  DynamicTags: dynamicTagsLight,\n  Element: elementLight,\n  Empty: emptyLight,\n  Equation: equationLight,\n  Ellipsis: ellipsisLight,\n  Flex: flexLight,\n  Form: formLight,\n  GradientText: gradientTextLight,\n  Heatmap: heatmapLight,\n  Icon: iconLight,\n  IconWrapper: iconWrapperLight,\n  Image: imageLight,\n  Input: inputLight,\n  InputNumber: inputNumberLight,\n  InputOtp: inputOtpLight,\n  Layout: layoutLight,\n  LegacyTransfer: legacyTransferLight,\n  List: listLight,\n  LoadingBar: loadingBarLight,\n  Log: logLight,\n  Menu: menuLight,\n  Mention: mentionLight,\n  Message: messageLight,\n  Modal: modalLight,\n  Notification: notificationLight,\n  PageHeader: pageHeaderLight,\n  Pagination: paginationLight,\n  Popconfirm: popconfirmLight,\n  Popover: popoverLight,\n  Popselect: popselectLight,\n  Progress: progressLight,\n  QrCode: qrcodeLight,\n  Radio: radioLight,\n  Rate: rateLight,\n  Row: rowLight,\n  Result: resultLight,\n  Scrollbar: scrollbarLight,\n  Skeleton: skeletonLight,\n  Select: selectLight,\n  Slider: sliderLight,\n  Space: spaceLight,\n  Spin: spinLight,\n  Statistic: statisticLight,\n  Steps: stepsLight,\n  Switch: switchLight,\n  Table: tableLight,\n  Tabs: tabsLight,\n  Tag: tagLight,\n  Thing: thingLight,\n  TimePicker: timePickerLight,\n  Timeline: timelineLight,\n  Tooltip: tooltipLight,\n  Transfer: transferLight,\n  Tree: treeLight,\n  TreeSelect: treeSelectLight,\n  Typography: typographyLight,\n  Upload: uploadLight,\n  Watermark: watermarkLight,\n  Split: splitLight,\n  FloatButton: floatButtonLight,\n  FloatButtonGroup: floatButtonGroupLight,\n  Marquee: marqueeLight\n}\n","import { defineComponent, h } from 'vue'\n\nexport const MaximizeIcon = defineComponent({\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n        <g fill=\"none\">\n          <path\n            d=\"M8.5 2a.5.5 0 0 0 0 1h3.793L3 12.293V8.5a.5.5 0 0 0-1 0v4.9a.6.6 0 0 0 .6.6h4.9a.5.5 0 0 0 0-1H3.707L13 3.707V7.5a.5.5 0 0 0 1 0V2.6a.6.6 0 0 0-.6-.6H8.5z\"\n            fill=\"currentColor\"\n          >\n          </path>\n        </g>\n      </svg>\n    )\n  }\n})\n","import { defineComponent, h } from 'vue'\n\nexport const MinimizeIcon = defineComponent({\n  render() {\n    return (\n      <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\">\n        <path\n          d=\"M4 18v2h6.586L2 28.582L3.414 30L12 21.414V28h2V18H4z\"\n          fill=\"currentColor\"\n        >\n        </path>\n        <path\n          d=\"M30 3.416L28.592 2L20 10.586V4h-2v10h10v-2h-6.586L30 3.416z\"\n          fill=\"currentColor\"\n        >\n        </path>\n      </svg>\n    )\n  }\n})\n","import type { GlobalTheme, GlobalThemeOverrides } from '../../config-provider'\nimport { cloneDeep, merge } from 'lodash-es'\nimport {\n  computed,\n  defineComponent,\n  Fragment,\n  h,\n  inject,\n  ref,\n  toRaw,\n  watch\n} from 'vue'\nimport { useLocale } from '../../_mixins'\nimport { download, lockHtmlScrollRightCompensationRef } from '../../_utils'\nimport { NButton } from '../../button'\nimport { NCollapse, NCollapseItem } from '../../collapse'\nimport { NColorPicker } from '../../color-picker'\nimport { NConfigProvider } from '../../config-provider'\nimport { configProviderInjectionKey } from '../../config-provider/src/context'\nimport { NDivider } from '../../divider'\nimport { NElement } from '../../element'\nimport { NEmpty } from '../../empty'\nimport { NGi, NGrid } from '../../grid'\nimport { NIcon } from '../../icon'\nimport { NInput } from '../../input'\nimport { NPopover } from '../../popover'\nimport { NSpace } from '../../space'\nimport { lightTheme } from '../../themes/light'\nimport { MaximizeIcon } from './MaximizeIcon'\nimport { MinimizeIcon } from './MinimizeIcon'\n\nfunction renderColorWandIcon() {\n  return (\n    <svg\n      viewBox=\"0 0 16 16\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      style={{ width: '1em', height: '1em', color: 'currentColor' }}\n    >\n      <path\n        d=\"M13.5 1C13.7761 1 14 1.22386 14 1.5V2H14.5C14.7761 2 15 2.22386 15 2.5C15 2.77614 14.7761 3 14.5 3H14V3.5C14 3.77614 13.7761 4 13.5 4C13.2239 4 13 3.77614 13 3.5V3H12.5C12.2239 3 12 2.77614 12 2.5C12 2.22386 12.2239 2 12.5 2H13V1.5C13 1.22386 13.2239 1 13.5 1Z\"\n        fill=\"currentColor\"\n      >\n      </path>\n      <path\n        d=\"M3.5 3C3.77615 3 4 3.22386 4 3.5V4H4.5C4.77615 4 5 4.22386 5 4.5C5 4.77614 4.77615 5 4.5 5H4V5.5C4 5.77614 3.77615 6 3.5 6C3.22386 6 3 5.77614 3 5.5V5H2.5C2.22386 5 2 4.77614 2 4.5C2 4.22386 2.22386 4 2.5 4H3V3.5C3 3.22386 3.22386 3 3.5 3Z\"\n        fill=\"currentColor\"\n      >\n      </path>\n      <path\n        d=\"M12.5 12C12.7761 12 13 11.7761 13 11.5C13 11.2239 12.7761 11 12.5 11H12V10.5C12 10.2239 11.7761 10 11.5 10C11.2239 10 11 10.2239 11 10.5V11H10.5C10.2239 11 10 11.2239 10 11.5C10 11.7761 10.2239 12 10.5 12H11V12.5C11 12.7761 11.2239 13 11.5 13C11.7761 13 12 12.7761 12 12.5V12H12.5Z\"\n        fill=\"currentColor\"\n      >\n      </path>\n      <path\n        d=\"M8.72956 4.56346C9.4771 3.81592 10.6891 3.81592 11.4367 4.56347C12.1842 5.31102 12.1842 6.52303 11.4367 7.27058L4.26679 14.4404C3.51924 15.1879 2.30723 15.1879 1.55968 14.4404C0.812134 13.6928 0.812138 12.4808 1.55969 11.7333L8.72956 4.56346ZM8.25002 6.4572L2.26679 12.4404C1.90977 12.7974 1.90977 13.3763 2.26679 13.7333C2.62381 14.0903 3.20266 14.0903 3.55968 13.7333L9.54292 7.75009L8.25002 6.4572ZM10.25 7.04299L10.7295 6.56347C11.0866 6.20645 11.0866 5.6276 10.7296 5.27057C10.3725 4.91355 9.79368 4.91355 9.43666 5.27057L8.95713 5.7501L10.25 7.04299Z\"\n        fill=\"currentColor\"\n      >\n      </path>\n    </svg>\n  )\n}\n\n// button colorOpacitySecondary var is not color\nfunction showColorPicker(key: string): boolean {\n  if (key.includes('pacity'))\n    return false\n  if (key.includes('color') || key.includes('Color'))\n    return true\n  return false\n}\n\nexport default defineComponent({\n  name: 'ThemeEditor',\n  inheritAttrs: false,\n  setup() {\n    const isMaximized = ref<boolean>(false)\n    const fileInputRef = ref<HTMLInputElement | null>(null)\n    const NConfigProvider = inject(configProviderInjectionKey, null)\n    const overridesRef = ref<any>(\n      JSON.parse((localStorage['naive-ui-theme-overrides'] as string) || '{}')\n    )\n    const theme = computed(() => {\n      const mergedTheme: GlobalTheme\n        = NConfigProvider?.mergedThemeRef.value || lightTheme\n      const mergedThemeOverrides\n        = NConfigProvider?.mergedThemeOverridesRef.value\n      const common = merge(\n        {},\n        mergedTheme.common || lightTheme.common,\n        mergedThemeOverrides?.common,\n        overridesRef.value.common || {}\n      ) as NonNullable<GlobalTheme['common']>\n      const overrides: GlobalThemeOverrides = {\n        common\n      }\n      for (const key of Object.keys(lightTheme) as Array<\n        Exclude<keyof typeof lightTheme, 'name'>\n      >) {\n        if (key === 'common') {\n          continue\n        }\n        ;(overrides as any)[key] = (mergedTheme[key]?.self?.(common)\n          || lightTheme[key].self?.(common)) as any\n        // There (last line) we must use as any, nor ts 2590 will be raised since the union\n        // is too complex\n        if (mergedThemeOverrides && (overrides as any)[key]) {\n          merge((overrides as any)[key], mergedThemeOverrides[key])\n        }\n      }\n      return overrides\n    })\n    const themeCommonDefaultRef = computed(() => {\n      return NConfigProvider?.mergedThemeRef.value?.common || lightTheme.common\n    })\n    const showPanelRef = ref(false)\n    const tempOverridesRef = ref<any>(\n      JSON.parse((localStorage['naive-ui-theme-overrides'] as string) || '{}')\n    )\n    const varNamePatternRef = ref('')\n    const compNamePatternRef = ref('')\n    const tempVarNamePatternRef = ref('')\n    const tempCompNamePatternRef = ref('')\n    function applyTempOverrides(): void {\n      overridesRef.value = cloneDeep(toRaw(tempOverridesRef.value))\n    }\n    function setTempOverrides(\n      compName: string,\n      varName: string,\n      value: string\n    ): void {\n      const { value: tempOverrides } = tempOverridesRef\n      if (!(compName in tempOverrides))\n        tempOverrides[compName] = {}\n      const compOverrides = tempOverrides[compName]\n      if (value) {\n        compOverrides[varName] = value\n      }\n      else {\n        delete compOverrides[varName]\n      }\n    }\n    function handleClearAllClick(): void {\n      tempOverridesRef.value = {}\n      overridesRef.value = {}\n    }\n    function handleImportClick(): void {\n      const { value: fileInput } = fileInputRef\n      if (!fileInput)\n        return\n      fileInput.click()\n    }\n    function toggleMaximized(): void {\n      isMaximized.value = !isMaximized.value\n    }\n    function handleInputFileChange(): void {\n      const { value: fileInput } = fileInputRef\n      if (!fileInput)\n        return\n      const fileList = fileInput.files\n      const file = fileList?.[0]\n      if (!file)\n        return\n      file\n        .text()\n        .then((value) => {\n          overridesRef.value = JSON.parse(value)\n          tempOverridesRef.value = JSON.parse(value)\n        })\n        .catch((e) => {\n          // eslint-disable-next-line no-alert\n          alert('Imported File is Invalid')\n          console.error(e)\n        })\n        .finally(() => {\n          fileInput.value = ''\n        })\n    }\n    function handleExportClick(): void {\n      const url = URL.createObjectURL(\n        new Blob([JSON.stringify(overridesRef.value, undefined, 2)])\n      )\n      download(url, 'naive-ui-theme-overrides.json')\n      URL.revokeObjectURL(url)\n    }\n    watch(overridesRef, (value) => {\n      localStorage['naive-ui-theme-overrides'] = JSON.stringify(value)\n    })\n    return {\n      locale: useLocale('ThemeEditor').localeRef,\n      themeCommonDefault: themeCommonDefaultRef,\n      theme,\n      showPanel: showPanelRef,\n      tempOverrides: tempOverridesRef,\n      overrides: overridesRef,\n      compNamePattern: compNamePatternRef,\n      tempCompNamePattern: tempCompNamePatternRef,\n      varNamePattern: varNamePatternRef,\n      tempVarNamePattern: tempVarNamePatternRef,\n      fileInputRef,\n      applyTempOverrides,\n      setTempOverrides,\n      handleClearAllClick,\n      handleExportClick,\n      handleImportClick,\n      handleInputFileChange,\n      toggleMaximized,\n      isMaximized\n    }\n  },\n  render() {\n    return (\n      <NConfigProvider themeOverrides={this.overrides}>\n        {{\n          default: () => [\n            <NPopover\n              scrollable\n              arrowPointToCenter\n              trigger=\"manual\"\n              show={this.showPanel}\n              displayDirective=\"show\"\n              placement=\"top-end\"\n              style={{\n                width: this.isMaximized ? 'calc(100vw - 80px)' : '288px',\n                height: 'calc(100vh - 200px)',\n                padding: 0\n              }}\n            >\n              {{\n                trigger: () => (\n                  <NElement\n                    style={[\n                      {\n                        position: 'fixed',\n                        zIndex: 10,\n                        bottom: '40px',\n                        right: `calc(40px + ${lockHtmlScrollRightCompensationRef.value})`,\n                        width: '44px',\n                        height: '44px',\n                        fontSize: '26px',\n                        display: 'flex',\n                        alignItems: 'center',\n                        justifyContent: 'center',\n                        borderRadius: '50%',\n                        backgroundColor: 'var(--popover-color)',\n                        color: 'var(--text-color-2)',\n                        transition:\n                          'color .3s var(--cubic-bezier-ease-in-out), background-color .3s var(--cubic-bezier-ease-in-out), box-shadow .3s var(--cubic-bezier-ease-in-out)',\n                        boxShadow: '0 2px 8px 0px rgba(0, 0, 0, .12)',\n                        cursor: 'pointer'\n                      },\n                      this.$attrs.style\n                    ]}\n                    // @ts-expect-error We use ts-ignore for vue-tsc, since it\n                    // seems to patch native event for vue components\n                    onClick={() => {\n                      this.showPanel = !this.showPanel\n                    }}\n                  >\n                    {{ default: renderColorWandIcon }}\n                  </NElement>\n                ),\n                default: () => (\n                  <>\n                    <input\n                      type=\"file\"\n                      ref=\"fileInputRef\"\n                      style={{\n                        display: 'block',\n                        width: 0,\n                        height: 0,\n                        visibility: 'hidden'\n                      }}\n                      onChange={this.handleInputFileChange}\n                    />\n                    <NSpace vertical>\n                      {{\n                        default: () => [\n                          <NSpace\n                            align=\"center\"\n                            justify=\"space-between\"\n                            style={{\n                              marginBottom: '8px',\n                              fontSize: '18px',\n                              fontWeight: 500\n                            }}\n                          >\n                            {{\n                              default: () => (\n                                <>\n                                  <span>{this.locale.title}</span>\n                                  <NButton\n                                    onClick={this.toggleMaximized}\n                                    secondary\n                                    circle\n                                    size=\"tiny\"\n                                  >\n                                    {{\n                                      icon: () => (\n                                        <NIcon\n                                          component={\n                                            this.isMaximized\n                                              ? MinimizeIcon\n                                              : MaximizeIcon\n                                          }\n                                        />\n                                      )\n                                    }}\n                                  </NButton>\n                                </>\n                              )\n                            }}\n                          </NSpace>,\n                          this.locale.filterCompName,\n                          <NInput\n                            onChange={() => {\n                              this.compNamePattern = this.tempCompNamePattern\n                            }}\n                            onInput={(value: string) => {\n                              this.tempCompNamePattern = value\n                            }}\n                            value={this.tempCompNamePattern}\n                            placeholder={this.locale.filterCompName}\n                          />,\n                          this.locale.filterVarName,\n                          <NInput\n                            onChange={(value: string) => {\n                              this.varNamePattern = value\n                            }}\n                            onInput={(value: string) => {\n                              this.tempVarNamePattern = value\n                            }}\n                            value={this.tempVarNamePattern}\n                            placeholder={this.locale.filterVarName}\n                          />,\n                          <NButton\n                            size=\"small\"\n                            onClick={() => {\n                              this.compNamePattern = ''\n                              this.varNamePattern = ''\n                              this.tempCompNamePattern = ''\n                              this.tempVarNamePattern = ''\n                            }}\n                            block\n                          >\n                            {{ default: () => this.locale.clearSearch }}\n                          </NButton>,\n                          <NButton\n                            size=\"small\"\n                            onClick={this.handleClearAllClick}\n                            block\n                          >\n                            {{\n                              default: () => this.locale.clearAllVars\n                            }}\n                          </NButton>,\n                          <NSpace itemStyle={{ flex: 1 }}>\n                            {{\n                              default: () => (\n                                <>\n                                  <NButton\n                                    block\n                                    size=\"small\"\n                                    onClick={this.handleImportClick}\n                                  >\n                                    {{\n                                      default: () => this.locale.import\n                                    }}\n                                  </NButton>\n                                  <NButton\n                                    block\n                                    size=\"small\"\n                                    onClick={this.handleExportClick}\n                                  >\n                                    {{\n                                      default: () => this.locale.export\n                                    }}\n                                  </NButton>\n                                </>\n                              )\n                            }}\n                          </NSpace>\n                        ]\n                      }}\n                    </NSpace>\n                    <NDivider />\n                    <NCollapse>\n                      {{\n                        default: () => {\n                          const { theme, compNamePattern, varNamePattern }\n                            = this\n                          const themeKeys = Object.keys(theme)\n                          const compNamePatternLower\n                            = compNamePattern.toLowerCase()\n                          const varNamePatternLower\n                            = varNamePattern.toLowerCase()\n                          let filteredItemsCount = 0\n                          const collapsedItems = themeKeys\n                            .filter((themeKey) => {\n                              return themeKey\n                                .toLowerCase()\n                                .includes(compNamePatternLower)\n                            })\n                            .map((themeKey) => {\n                              const componentTheme:\n                                | Record<string, string>\n                                | undefined\n                                  = themeKey === 'common'\n                                    ? this.themeCommonDefault\n                                    : (theme as any)[themeKey]\n                              if (componentTheme === undefined) {\n                                return null\n                              }\n                              const varKeys = Object.keys(\n                                componentTheme\n                              ).filter((key) => {\n                                return (\n                                  key !== 'name'\n                                  && key\n                                    .toLowerCase()\n                                    .includes(varNamePatternLower)\n                                )\n                              })\n                              if (!varKeys.length) {\n                                return null\n                              }\n                              filteredItemsCount += 1\n                              return (\n                                <NCollapseItem title={themeKey} name={themeKey}>\n                                  {{\n                                    default: () => (\n                                      <NGrid\n                                        xGap={32}\n                                        yGap={16}\n                                        responsive=\"screen\"\n                                        cols={\n                                          this.isMaximized\n                                            ? '1 xs:1 s:2 m:3 l:4'\n                                            : 1\n                                        }\n                                      >\n                                        {{\n                                          default: () =>\n                                            varKeys.map(varKey => (\n                                              <NGi>\n                                                {{\n                                                  default: () => (\n                                                    <>\n                                                      <div\n                                                        key={`${varKey}Label`}\n                                                        style={{\n                                                          wordBreak:\n                                                            'break-word'\n                                                        }}\n                                                      >\n                                                        {varKey}\n                                                      </div>\n                                                      {showColorPicker(\n                                                        varKey\n                                                      ) ? (\n                                                            <NColorPicker\n                                                              key={varKey}\n                                                              modes={['rgb', 'hex']}\n                                                              value={\n                                                                this\n                                                                  .tempOverrides?.[\n                                                                    themeKey\n                                                                  ]?.[varKey]\n                                                                  || componentTheme[\n                                                                    varKey\n                                                                  ]\n                                                              }\n                                                              onComplete={\n                                                                this\n                                                                  .applyTempOverrides\n                                                              }\n                                                              onUpdateValue={(\n                                                                value: string\n                                                              ) => {\n                                                                this.setTempOverrides(\n                                                                  themeKey,\n                                                                  varKey,\n                                                                  value\n                                                                )\n                                                              }}\n                                                            >\n                                                              {{\n                                                                action: () => (\n                                                                  <NButton\n                                                                    size=\"small\"\n                                                                    disabled={\n                                                                      componentTheme[\n                                                                        varKey\n                                                                      ]\n                                                                      === this\n                                                                        .tempOverrides?.[\n                                                                          themeKey\n                                                                        ]?.[varKey]\n                                                                    }\n                                                                    onClick={() => {\n                                                                      this.setTempOverrides(\n                                                                        themeKey,\n                                                                        varKey,\n                                                                        componentTheme[\n                                                                          varKey\n                                                                        ]\n                                                                      )\n                                                                      this.applyTempOverrides()\n                                                                    }}\n                                                                  >\n                                                                    {{\n                                                                      default: () =>\n                                                                        this.locale\n                                                                          .restore\n                                                                    }}\n                                                                  </NButton>\n                                                                )\n                                                              }}\n                                                            </NColorPicker>\n                                                          ) : (\n                                                            <NInput\n                                                              key={varKey}\n                                                              onChange={\n                                                                this\n                                                                  .applyTempOverrides\n                                                              }\n                                                              onUpdateValue={(\n                                                                value: string\n                                                              ) => {\n                                                                this.setTempOverrides(\n                                                                  themeKey,\n                                                                  varKey,\n                                                                  value\n                                                                )\n                                                              }}\n                                                              value={\n                                                                this\n                                                                  .tempOverrides?.[\n                                                                    themeKey\n                                                                  ]?.[varKey] || ''\n                                                              }\n                                                              placeholder={\n                                                                componentTheme[\n                                                                  varKey\n                                                                ]\n                                                              }\n                                                            />\n                                                          )}\n                                                    </>\n                                                  )\n                                                }}\n                                              </NGi>\n                                            ))\n                                        }}\n                                      </NGrid>\n                                    )\n                                  }}\n                                </NCollapseItem>\n                              )\n                            })\n                          if (!filteredItemsCount)\n                            return <NEmpty />\n                          return collapsedItems\n                        }\n                      }}\n                    </NCollapse>\n                  </>\n                )\n              }}\n            </NPopover>,\n            this.$slots.default?.()\n          ]\n        }}\n      </NConfigProvider>\n    )\n  }\n})\n","import type { BuiltInGlobalTheme } from './interface'\nimport { scrollbarDark } from '../_internal/scrollbar/styles'\nimport { commonDark } from '../_styles/common'\nimport { alertDark } from '../alert/styles'\nimport { anchorDark } from '../anchor/styles'\nimport { autoCompleteDark } from '../auto-complete/styles'\nimport { avatarGroupDark } from '../avatar-group/styles'\nimport { avatarDark } from '../avatar/styles'\nimport { backTopDark } from '../back-top/styles'\nimport { badgeDark } from '../badge/styles'\nimport { breadcrumbDark } from '../breadcrumb/styles'\nimport { buttonGroupDark } from '../button-group/styles'\nimport { buttonDark } from '../button/styles'\nimport { calendarDark } from '../calendar/styles'\nimport { cardDark } from '../card/styles'\nimport { carouselDark } from '../carousel/styles'\nimport { cascaderDark } from '../cascader/styles'\nimport { checkboxDark } from '../checkbox/styles'\nimport { codeDark } from '../code/styles'\nimport { collapseTransitionDark } from '../collapse-transition/styles'\nimport { collapseDark } from '../collapse/styles'\nimport { colorPickerDark } from '../color-picker/styles'\nimport { dataTableDark } from '../data-table/styles'\nimport { datePickerDark } from '../date-picker/styles'\nimport { descriptionsDark } from '../descriptions/styles'\nimport { dialogDark } from '../dialog/styles'\nimport { dividerDark } from '../divider/styles'\nimport { drawerDark } from '../drawer/styles'\nimport { dropdownDark } from '../dropdown/styles'\nimport { dynamicInputDark } from '../dynamic-input/styles'\nimport { dynamicTagsDark } from '../dynamic-tags/styles'\nimport { elementDark } from '../element/styles'\nimport { ellipsisDark } from '../ellipsis/styles'\nimport { emptyDark } from '../empty/styles'\nimport { equationDark } from '../equation/styles'\nimport { floatButtonGroupDark } from '../float-button-group/styles'\nimport { floatButtonDark } from '../float-button/styles'\nimport { formDark } from '../form/styles'\nimport { gradientTextDark } from '../gradient-text/styles'\nimport { heatmapDark } from '../heatmap/styles'\nimport { iconWrapperDark } from '../icon-wrapper/styles'\nimport { iconDark } from '../icon/styles'\nimport { imageDark } from '../image/styles'\nimport { inputNumberDark } from '../input-number/styles'\nimport { inputDark } from '../input/styles'\nimport { layoutDark } from '../layout/styles'\nimport { rowDark } from '../legacy-grid/styles'\nimport { legacyTransferDark } from '../legacy-transfer/styles'\nimport { listDark } from '../list/styles'\nimport { loadingBarDark } from '../loading-bar/styles'\nimport { logDark } from '../log/styles'\nimport { marqueeDark } from '../marquee/styles'\nimport { mentionDark } from '../mention/styles'\nimport { menuDark } from '../menu/styles'\nimport { messageDark } from '../message/styles'\nimport { modalDark } from '../modal/styles'\nimport { notificationDark } from '../notification/styles'\nimport { pageHeaderDark } from '../page-header/styles'\nimport { paginationDark } from '../pagination/styles'\nimport { popconfirmDark } from '../popconfirm/styles'\nimport { popoverDark } from '../popover/styles'\nimport { popselectDark } from '../popselect/styles'\nimport { progressDark } from '../progress/styles'\nimport { qrcodeDark } from '../qr-code/styles'\nimport { radioDark } from '../radio/styles'\nimport { rateDark } from '../rate/styles'\nimport { resultDark } from '../result/styles'\nimport { selectDark } from '../select/styles'\nimport { skeletonDark } from '../skeleton/styles'\nimport { sliderDark } from '../slider/styles'\nimport { spaceDark } from '../space/styles'\nimport { spinDark } from '../spin/styles'\nimport { splitDark } from '../split/styles'\nimport { statisticDark } from '../statistic/styles'\nimport { stepsDark } from '../steps/styles'\nimport { flexDark, inputOtpDark } from '../styles'\nimport { switchDark } from '../switch/styles'\nimport { tableDark } from '../table/styles'\nimport { tabsDark } from '../tabs/styles'\nimport { tagDark } from '../tag/styles'\nimport { thingDark } from '../thing/styles'\nimport { timePickerDark } from '../time-picker/styles'\nimport { timelineDark } from '../timeline/styles'\nimport { tooltipDark } from '../tooltip/styles'\nimport { transferDark } from '../transfer/styles'\nimport { treeSelectDark } from '../tree-select/styles'\nimport { treeDark } from '../tree/styles'\nimport { typographyDark } from '../typography/styles'\nimport { uploadDark } from '../upload/styles'\nimport { watermarkDark } from '../watermark/styles'\n\nexport const darkTheme: BuiltInGlobalTheme = {\n  name: 'dark',\n  common: commonDark,\n  Alert: alertDark,\n  Anchor: anchorDark,\n  AutoComplete: autoCompleteDark,\n  Avatar: avatarDark,\n  AvatarGroup: avatarGroupDark,\n  BackTop: backTopDark,\n  Badge: badgeDark,\n  Breadcrumb: breadcrumbDark,\n  Button: buttonDark,\n  ButtonGroup: buttonGroupDark,\n  Calendar: calendarDark,\n  Card: cardDark,\n  Carousel: carouselDark,\n  Cascader: cascaderDark,\n  Checkbox: checkboxDark,\n  Code: codeDark,\n  Collapse: collapseDark,\n  CollapseTransition: collapseTransitionDark,\n  ColorPicker: colorPickerDark,\n  DataTable: dataTableDark,\n  DatePicker: datePickerDark,\n  Descriptions: descriptionsDark,\n  Dialog: dialogDark,\n  Divider: dividerDark,\n  Drawer: drawerDark,\n  Dropdown: dropdownDark,\n  DynamicInput: dynamicInputDark,\n  DynamicTags: dynamicTagsDark,\n  Element: elementDark,\n  Empty: emptyDark,\n  Ellipsis: ellipsisDark,\n  Equation: equationDark,\n  Flex: flexDark,\n  Form: formDark,\n  GradientText: gradientTextDark,\n  Heatmap: heatmapDark,\n  Icon: iconDark,\n  IconWrapper: iconWrapperDark,\n  Image: imageDark,\n  Input: inputDark,\n  InputNumber: inputNumberDark,\n  InputOtp: inputOtpDark,\n  LegacyTransfer: legacyTransferDark,\n  Layout: layoutDark,\n  List: listDark,\n  LoadingBar: loadingBarDark,\n  Log: logDark,\n  Menu: menuDark,\n  Mention: mentionDark,\n  Message: messageDark,\n  Modal: modalDark,\n  Notification: notificationDark,\n  PageHeader: pageHeaderDark,\n  Pagination: paginationDark,\n  Popconfirm: popconfirmDark,\n  Popover: popoverDark,\n  Popselect: popselectDark,\n  Progress: progressDark,\n  QrCode: qrcodeDark,\n  Radio: radioDark,\n  Rate: rateDark,\n  Result: resultDark,\n  Row: rowDark,\n  Scrollbar: scrollbarDark,\n  Select: selectDark,\n  Skeleton: skeletonDark,\n  Slider: sliderDark,\n  Space: spaceDark,\n  Spin: spinDark,\n  Statistic: statisticDark,\n  Steps: stepsDark,\n  Switch: switchDark,\n  Table: tableDark,\n  Tabs: tabsDark,\n  Tag: tagDark,\n  Thing: thingDark,\n  TimePicker: timePickerDark,\n  Timeline: timelineDark,\n  Tooltip: tooltipDark,\n  Transfer: transferDark,\n  Tree: treeDark,\n  TreeSelect: treeSelectDark,\n  Typography: typographyDark,\n  Upload: uploadDark,\n  Watermark: watermarkDark,\n  Split: splitDark,\n  FloatButton: floatButtonDark,\n  FloatButtonGroup: floatButtonGroupDark,\n  Marquee: marqueeDark\n}\n","import type { GlobalTheme } from '../config-provider'\n\ntype ComponentKey = Exclude<keyof GlobalTheme, 'name'>\ntype ComponentThemes = Array<Exclude<GlobalTheme[ComponentKey], undefined>>\n\nexport function createTheme(\n  name: string,\n  componentThemes: ComponentThemes\n): GlobalTheme\nexport function createTheme(componentThemes: ComponentThemes): GlobalTheme\nexport function createTheme(\n  name: string | ComponentThemes,\n  componentThemes?: ComponentThemes\n): GlobalTheme {\n  const nameIsString = typeof name === 'string'\n  const theme: GlobalTheme = {\n    name: nameIsString ? name : 'customized-theme'\n  }\n  if (nameIsString) {\n    if (componentThemes) {\n      for (const cTheme of componentThemes) {\n        theme[cTheme.name] = cTheme as any\n      }\n    }\n  }\n  else {\n    for (const cTheme of name) {\n      theme[cTheme.name] = cTheme as any\n    }\n  }\n  return theme\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,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,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,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,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,365,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,543,544,545,546,547,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573,574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725,726,727,728,729,730,731,732,733,734,735,736,737,738,739,740,741,742,743,744,745,746,747,748,749,750,751,752,753,754,755,756,757,758,759,760,761,762,763,764,765,766,767,768,769,770,771,772,773,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,870,871,872,873,874,875,876,877,878,879,880,881,882,883,884,885,886,887,888,889,890,891,892,893,972,973,974,975,976,977,978,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1127,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1174,1175,1176,1177,1178,1179,1180,1181,1182,1183,1184,1185,1186,1187,1188,1189,1190,1191,1192,1193,1194,1195,1196,1197,1198,1199,1200,1201,1202,1203,1204,1205,1206,1207,1208,1209,1210,1389,1390,1391,1392,1393,1394,1395,1396,1397,1398,1399],"mappings":"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AQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAAwB;CAC5B,MAAM;CACN,QAAQ;AACV,GCHM,KAA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BAAmB,aAAa;EAChC,qBAAqB,aAAa;EAClC,qBAAqB,aAAa;EAClC,WAAW;EACX,eAAe;EACf,gBAAgB;EAChB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAChB,kBAAkB;EAClB,eAAe;EACf,WAAW;CACb;AACF;AAIA,IAAM,KAA+B;CACnC,MAAM;CACN,QAAQ;CACR,MAAA;AACF,GC7CA,KAAe;CACb,oBAAoB;CACpB,qBAAqB;CACrB,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,oBAAoB;CACpB,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB,oBAAoB;CACpB,mBAAmB;AACrB,GCHM,KAA8B;CAClC,MAAM;CACN,QAAQ;CACR,OAAO;EACL,UAAU;EACV,WAAW;EACX,OAAO;EACP,OAAO;EACP,QAAQ;CACV;CACA,KAAK,GAAM;EACT,IAAM,EACJ,eACA,kBACA,mBACA,kBACA,gBACA,iBACA,iBACA,eACA,qBACA,eACA,sBACA,eACA,eACA,eACA,oBACA,sBACA,mBACA,wBACA,0BACA,oBACE;EACJ,OAAO;GACL,GAAG;GACH,iBAAiB;GACjB,kBAAkB;GAClB,iBAAiB;GACjB;GACA;GACA;GACA;GACA;GACA,aAAa;GACb,WAAW;GACX,aAAa;GACb,gBAAgB;GAChB,wBAAwB;GACxB,gBAAgB;GAChB,wBAAwB;GACxB,eAAe;GACf,uBAAuB;GACvB,kBAAkB;GAClB,iBAAiB;GACjB;GACA;GACA;GACA;GACA;EACF;CACF;AACF;;;ACrDA,SAAS,GAAK,GAAuB;CACnC,IAAM,EACJ,eACA,kBACA,mBACA,kBACA,gBACA,iBACA,iBACA,cACA,qBACA,eACA,sBACA,eACA,eACA,gBACA,eACA,oBACA,sBACA,mBACA,wBACA,6BACE;CACJ,OAAO;EACL,GAAG;EACH,iBAAiB;EACjB,kBAAkB;EAClB,iBAAiB;EACjB;EACA;EACA;EACA;EACA,cAAc;EACd;EACA,WAAW;EACX,aAAa,GAAU,GAAW,CAAgB;EAClD,gBAAgB;EAChB,wBAAwB;EACxB,gBAAgB;EAChB,wBAAwB;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,KAAK;GAEzB,OAAO;EACT;EAIA,2BAAmC,GAAkC;GACnE,IAAM,IAAS,EAAW,IACpB,IACF,IAAI,KACD,EAAW,OAAO,KAClB,EAAW,OAAO,IAAI,KACtB,EAAW,OAAO,KAClB,EAAW,OAAO;GACzB,QACG,KAAQ,EAAW,MAAM,IAAI,KAAK,EAAW,MAAM,IAAI,IAAI,MACzD,KAAQ,EAAW,MAAM,IAAI,KAAK,EAAW,MAAM,IAAI,IAAI;EAElE;EAGA,+BACE,GACA,GACA,GACK;GAQL,OAPI,MAEF,KAAK,wBAAwB,GAAkB,CAAU,GACzD,IAAmB,IAErB,KAAoB,KAAK,MACzB,KAAK,wBAAwB,GAAkB,CAAU,GAClD,KAAK,2BAA2B,CAAU;EACnD;EAGA,wBACE,GACA,GACM;GAKN,AAJI,EAAW,OAAO,MACpB,KAAoB,KAAK,OAE3B,EAAW,IAAI,GACf,EAAW,QAAQ,CAAgB;EACrC;;GAK0C,KAAA,cAAA;;;GAEA,KAAA,cAAA;;;GAGA,KAAA,aAAA;;;GACA,KAAA,aAAA;;;GACA,KAAA,aAAA;;;GACA,KAAA,aAAA;;;GAEiB,KAAA,0BAAA;IAGzD;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;GACF;;;GAG6D,KAAA,8BAAA;IAG7D;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;IAEF;KACE;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;KACA;IAAA;GACF;;CAEJ;;CAIA,SAAS,E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"}