{"version":3,"mappings":"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","names":["_sfc_main","_createBlock","_component_RouterView","isBrowser","isRouteComponent","component","isESModule","obj","assign","applyToParams","fn","params","newParams","key","value","isArray","noop","mergeOptions","defaults","partialOptions","options","HASH_RE","AMPERSAND_RE","SLASH_RE","EQUAL_RE","IM_RE","PLUS_RE","ENC_BRACKET_OPEN_RE","ENC_BRACKET_CLOSE_RE","ENC_CARET_RE","ENC_BACKTICK_RE","ENC_CURLY_OPEN_RE","ENC_PIPE_RE","ENC_CURLY_CLOSE_RE","ENC_SPACE_RE","commonEncode","text","encodeHash","encodeQueryValue","encodeQueryKey","encodePath","encodeParam","decode","TRAILING_SLASH_RE","removeTrailingSlash","path","parseURL","parseQuery$1","location","currentLocation","query","searchString","hash","hashPos","searchPos","resolveRelativePath","stringifyURL","stringifyQuery$1","stripBase","pathname","base","isSameRouteLocation","a","b","aLastIndex","bLastIndex","isSameRouteRecord","isSameRouteLocationParams","isSameRouteLocationParamsValue","isEquivalentArray","i","to","from","fromSegments","toSegments","lastToSegment","position","toPosition","segment","START_LOCATION_NORMALIZED","NavigationType","NavigationType$1","NavigationDirection","NavigationDirection$1","normalizeBase","baseEl","BEFORE_HASH_RE","createHref","getElementPosition","el","offset","docRect","elRect","computeScrollPosition","scrollToPosition","scrollToOptions","positionEl","isIdSelector","getScrollKey","delta","scrollPositions","saveScrollPosition","scrollPosition","getSavedScrollPosition","scroll","isRouteLocation","route","isRouteName","name","ErrorTypes","ErrorTypes$1","NavigationFailureSymbol","createRouterError","type","isNavigationFailure","error","parseQuery","search","searchParams","searchParam","eqPos","currentValue","stringifyQuery","v","value$1","normalizeQuery","normalizedQuery","matchedRouteKey","viewDepthKey","routerKey","routeLocationKey","routerViewLocationKey","useCallbacks","handlers","add","handler","reset","guardToPromiseFn","guard","record","runWithContext","enterCallbackArray","resolve","reject","next","valid","guardReturn","guardCall","err","extractComponentsGuards","matched","guardType","guards","rawComponent","componentPromise","resolved","resolvedComponent","extractChangingRecords","leavingRecords","updatingRecords","enteringRecords","len","recordFrom","recordTo","createBaseLocation","createCurrentLocation","location$1","slicePos","pathFromHash","useHistoryListeners","historyState","replace","listeners","teardowns","pauseState","popStateHandler","state","fromState","listener","pauseListeners","listen","callback","teardown","index","beforeUnloadListener","history$1","destroy","buildState","back","current","forward","replaced","computeScroll","useHistoryStateNavigation","changeLocation","replace$1","hashIndex","url","data","push","currentState","createWebHistory","historyNavigation","historyListeners","go","triggerListeners","routerHistory","TokenType","TokenType$1","TokenizerState","TokenizerState$1","ROOT_TOKEN","VALID_PARAM_RE","tokenizePath","crash","message","buffer","previousState","tokens","finalizeSegment","char","customRe","consumeBuffer","addCharToBuffer","BASE_PARAM_PATTERN","BASE_PATH_PARSER_OPTIONS","PathScore","PathScore$1","REGEX_CHARS_RE","tokensToParser","segments","extraOptions","score","pattern","keys","segmentScores","tokenIndex","token","subSegmentScore","repeatable","optional","regexp","re$1","subPattern","re","parse","match","stringify","avoidDuplicatedSlash","param","compareScoreArray","diff","comparePathParserScore","aScore","bScore","comp","isLastScoreNegative","last","PATH_PARSER_OPTIONS_DEFAULTS","createRouteRecordMatcher","parent","parser","matcher","createRouterMatcher","routes","globalOptions","matchers","matcherMap","getRecordMatcher","addRoute","originalRecord","isRootAdd","mainNormalizedRecord","normalizeRouteRecord","normalizedRecords","aliases","alias","originalMatcher","normalizedRecord","parentPath","connectingSlash","isAliasRecord","removeRoute","isMatchable","insertMatcher","children","matcherRef","getRoutes","findInsertionIndex","pickParams","k","m","parentMatcher","mergeMetaFields","clearRoutes","normalized","normalizeRecordProps","propsObject","props","meta","lower","upper","mid","insertionAncestor","getInsertionAncestor","ancestor","useLink","router","inject","currentRoute","computed","unref","activeRecordIndex","length","routeMatched","currentMatched","parentRecordPath","getOriginalPath","isActive","includesParams","isExactActive","navigate","e","guardEvent","p","preferSingleVNode","vnodes","RouterLinkImpl","defineComponent","slots","link","reactive","elClass","getLinkClass","h","RouterLink","target","outer","inner","innerValue","outerValue","propClass","globalClass","defaultClass","RouterViewImpl","attrs","injectedRoute","routeToDisplay","injectedDepth","depth","initialDepth","matchedRoute","matchedRouteRef","provide","viewRef","ref","watch","instance","oldInstance","oldName","currentName","ViewComponent","normalizeSlot","routePropsOption","routeProps","vnode","slot","slotContent","RouterView","createRouter","beforeGuards","beforeResolveGuards","afterGuards","shallowRef","pendingLocation","normalizeParams","paramValue","encodeParams","decodeParams","parentOrRoute","recordMatcher","routeMatcher","hasRoute","rawLocation","locationNormalized","matchedRoute$1","href$1","matcherLocation","targetParams","fullPath","href","locationAsObject","checkCanceledNavigation","pushWithRedirect","handleRedirectRecord","lastMatched","redirect","newTargetLocation","redirectedFrom","targetLocation","force","shouldRedirect","toLocation","failure","handleScroll","markAsReady","triggerError","failure$1","finalizeNavigation","triggerAfterEach","checkCanceledNavigationAndReject","app","installedApps","canceledNavigationCheck","runGuardQueue","beforeEnter","isPush","isFirstNavigation","removeHistoryListener","setupListeners","_from","info","readyHandlers","errorListeners","ready","list","isReady","resolve$1","scrollBehavior","nextTick","started","reactiveRoute","shallowReactive","unmountApp","promise","_hoisted_1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","NcActionSeparator","_export_sfc","__props","renderSlot","normalizeClass","NcAppContentList","_hoisted_2","_hoisted_3","_hoisted_4","useSlots","registerSection","unregisterSection","useAppSettingsDialog","legacy","APP_SETTINGS_LEGACY_DESIGN_KEY","htmlId","logger","newId","newName","newOrder","oldId","onMounted","onBeforeUnmount","createElementVNode","toDisplayString","NcAppSettingsSection","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","NcCounterBubble","style","useCssModule","NC_FORM_BOX_CONTEXT_KEY","ncFormBox","ncFormBox_row","ncFormBox__item","ncFormBox_col","style0","cssModules","NcFormBox","formBoxItemClass","useNcFormBox","descriptionId","createElementId","hasDescription","isLegacy","createBlock","resolveDynamicComponent","mergeProps","$event","withCtx","createTextVNode","createCommentVNode","formBoxItem","formBoxItem_legacy","formBoxItem_inverted","formBoxItem__element","formBoxItem__description","formBoxItem__content","formBoxItem__icon","NcFormBoxItem","mergeModels","__emit","modelValue","useModel","emit","inputId","createSlots","withDirectives","vModelCheckbox","createVNode","NcIconToggleSwitch","formBoxSwitch__input","NcFormBoxSwitch","NcActions","_sfc_main$1","newValue","event","routerLinkHref","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_component_NcCounterBubble","resolveComponent","_component_NcActions","normalizeProps","guardReactiveProps","args","withKeys","vShow","NcListItem","margin","defaultSize","NcAvatar","NcIconSvgWrapper","userStatus","margin2","EMAIL_NOTATION","_component_NcAvatar","_component_NcHighlight","_component_NcIconSvgWrapper","normalizeStyle","NcListItemIcon","clickableArea","gridBaseLine","avatarSize","filterBy","option","label","search2","subname","NcSelect","selectedOption","NcSelectUsers","NcUserBubbleDiv","isOpen","isAvatarUrl","isCustomAvatar","avatarStyle","hasUrl","warn","contentComponent","contentStyle","NcPopover","NcUserBubble","cumsum","values","valueof","sum","max","min","dispatch","n","_","t","Dispatch","parseTypenames","typenames","types","typename","T","get","set","copy","that","c","xhtml","namespaces","namespace","prefix","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","subgroups","j","group","subgroup","node","subnode","Selection","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","childMatcher","find","childFind","childFirst","selection_selectChild","filter","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","datum","child","constant$3","bindIndex","enter","exit","groupLength","dataLength","bindKey","nodeByKeyValue","keyValues","keyValue","selection_data","bind","constant","arraylike","enterGroup","updateGroup","exitGroup","i0","i1","previous","selection_exit","selection_join","onenter","onupdate","onexit","selection_merge","context","selection","groups0","groups1","m0","m1","merges","group0","group1","merge","selection_order","selection_sort","compare","ascending","compareNode","sortgroups","sortgroup","selection_call","selection_nodes","selection_node","selection_size","size","selection_empty","selection_each","attrRemove","attrRemoveNS","attrConstant","attrConstantNS","attrFunction","attrFunctionNS","selection_attr","defaultView","styleRemove","styleConstant","priority","styleFunction","selection_style","styleValue","propertyRemove","propertyConstant","propertyFunction","selection_property","classArray","string","classList","ClassList","classedAdd","names","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","onRemove","on","o","onAdd","selection_on","dispatchEvent","window","dispatchConstant","dispatchFunction","selection_dispatch","selection_iterator","root","selection_selection","sourceEvent","pointer","svg","point","rect","nonpassivecapture","noevent$1","dragDisable","view","noevent","yesdrag","noclick","define","constructor","factory","prototype","extend","definition","Color","darker","brighter","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","color","channels","color_formatHex","color_formatHex8","color_formatHsl","color_formatRgb","hslConvert","format","l","rgbn","Rgb","rgba","hsla","r","g","rgbConvert","rgb","opacity","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","s","Hsl","hsl","m2","hsl2rgb","clamph","clampt","constant$2","linear","d","exponential","y","gamma","nogamma","interpolateRgb","rgbGamma","start","end","colorRgb","interpolateNumber","reA","reB","zero","one","interpolateString","bi","am","bm","bs","q","number","degrees","identity","decompose","f","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","pxComma","pxParen","degParen","pop","translate","xa","ya","xb","yb","rotate","scale","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","S","d1","b0","b1","r0","r1","coshr0","u","_1","_2","_4","frame","timeout","interval","pokeDelay","taskHead","taskTail","clockLast","clockNow","clockSkew","clock","setFrame","now","clearNow","Timer","timer","delay","time","sleep","timerFlush","wake","nap","poke","t0","t1","t2","elapsed","emptyOn","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","id","timing","schedules","init","self","tween","stop","tick","interrupt","active","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolate","value1","string00","string1","interpolate0","string0","string10","transition_attr","attrInterpolate","attrInterpolateNS","attrTweenNS","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","Transition","transition_merge","onFunction","on0","on1","sit","transition_on","removeFunction","transition_remove","transition_select","transition_selectAll","inherit","transition_selection","styleNull","styleMaybeRemove","listener0","transition_style","styleInterpolate","styleTween","transition_styleTween","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","transition_end","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","pi","tau","epsilon","tauEpsilon","Path","x1","y1","x2","y2","x0","y0","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","t01","t21","a0","a1","ccw","cw","da","w","count","node_count$1","node_each$1","node_eachBefore$1","nodes","node_eachAfter$1","node_find","node_sum$1","node_sort$1","node_path$1","leastCommonAncestor","aNodes","bNodes","node_ancestors$1","node_descendants$1","node_leaves$1","leaves","node_links$1","links","node_iterator","hierarchy","mapChildren","objectChildren","Node","childs","computeHeight","node_copy","copyData","height","node_count","node_each","node_eachAfter","node_eachBefore","node_sum","node_sort","node_path","node_ancestors","node_descendants","node_leaves","node_links","required","preroot","ambiguous","imputed","defaultId","defaultParentId","stratify","parentId","currentId","currentParentId","nodeId","nodeKey","nodeByKey","I","normalize","P","parentof","slash","defaultSeparation","nextLeft","nextRight","moveSubtree","wm","wp","shift","change","executeShifts","nextAncestor","vim","TreeNode","treeRoot","tree","separation","nodeSize","firstWalk","secondWalk","sizeNode","left","right","bottom","tx","kx","ky","siblings","midpoint","apportion","vip","vop","vom","sip","sop","sim","som","constant$1","slice","Bump","bumpX","linkSource","linkTarget","curve","source","pointX","pointY","output","argv","linkHorizontal","ZoomEvent","transform","Transform","nopropagation","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","constrain","wheelDelta","touchable","scaleExtent","duration","touchstarting","touchfirst","touchending","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","collection","gesture","k0","k1","centroid","clean","Gesture","wheelidled","currentTarget","mousemoved","mouseupped","dragEnable","touches","l0","l1","dp","dl","valued","defaultChildren","version","packageInfo","flextree","opts","accessor","opt","layout","wtree","wrap","getWrapper","getFlexNode","spacing","FlexNode","oNode","ancs","acc","kid","e0","e1","layoutChildren","resolveX","FlexClass","treeData","_wrap","kidsData","kd","hl","arg","kids","_dump","i2","kdumps","lastLows","lowY","separate","lows","updateLows","shiftChange","positionRoot","prevSum","parentX","lastShiftSum","lastChangeSum","shiftSum","changeSum","lSib","curSubtree","rContour","rSumMods","lContour","lSumMods","isFirst","dist","distributeExtra","rightBottom","leftBottom","nextRContour","nextLContour","setLThr","setRThr","subtree","distance","curSubtreeI","leftSibI","firstChild","lExt","rExt","kf","prelim","d3","zoomIdentity","OrgChart$1","d3Node","n1","n2","arr","step","currentIndex","ex","ey","mx","my","xrvs","yrvs","rdef","offsets","visibleConnections","conn","labelWidth","rootMargin","centerY","centerX","width","siblingsMargin","childrenMargin","compactViewIndex","chartHeight","chartWidth","container","elementTag","_children","nodeStore","zoomLevel","containerRect","calc","behaviors","nodeA","nodeB","chart","descendants","nodeFound","aggegator","grouped","item","compactChildren","evenMaxColumnDimension","oddMaxColumnDimension","columnSize","rowsMapNew","reducedGroup","rowSize","fch","offsetX","cumSum","connections","allNodesMap","visibleNodesMap","connection","defsString","existingString","linkSelection","linkUpdate","xo","yo","connectionsSel","connUpdate","xs","ys","xt","yt","nodesSelection","nodeEnter","xj","yj","nodeUpdate","nodeButtonGroups","nodeExitTransition","maxDepthNode","centeredNode","centeredNodes","spread","flag","ch","expandNodesFirst","descendantsBefore","hiddenNodesMap","localNode","_hierarchyHeight","centerG","zoomBehavior","lastTransform","scaleVal","animate","onCompleted","minX","maxX","minY","maxY","newPagingIndex","expandedFlag","elem","xhr","reader","full","onLoad","save","backgroundColor","svgImg","total","exportImage","dataUrl","imageName","allNodes","isSvg","onAlreadySerialized","saveAs","filename","serializeString","xmlns","xlinkns","svgns","fragment","walker","attr","quality","image","canvas","dt","fontSize","fontWeight","defaultFont","ctx","Avatar","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_router_link","_component_Avatar","_toDisplayString","head","getLocale","inputProps","OrgChart","containerHTMLElement","createApp","ChartTemplate","uid","LegacyGlobalMixin","$el","d3.select","dRect","_component_NcSelect","AppContent","contactsByUid","contacts","addressbook","Buffer","headManagers","tempContacts","contact","prev","transformNode","manager","charts","managerNode","getChart","_component_AppContent","_component_OrgChart","_mergeProps","ENFORCE_PASSWORD_PROTECTION","USE_UNIQUE_PASSWORD","UNIQUE_PASSWORD","CheckboxRadioSwitch","NcButton","_component_CheckboxRadioSwitch","_Fragment","_component_NcButton","_renderSlot","CopyToClipboardMixin","showSuccess","showError","CircleActionsMixin","Circle","confirm","member","initiator","joinCircle","Member","showConfirmation","_sfc_main$17","ContentHeading","CirclePasswordSettings","IconDelete","IconLogout","NcCheckboxRadioSwitch","PUBLIC_CIRCLE_CONFIG","config","checked","CircleConfigs","prevConfig","circleData","editCircle","CircleEdit","_renderList","configs","title","_component_ContentHeading","_withCtx","_createTextVNode","_component_NcCheckboxRadioSwitch","_component_CirclePasswordSettings","_component_IconLogout","_component_IconDelete","NcNoteCard","NcTextField","CloseOutlineIcon","CheckOutlineIcon","shown","actualValue","_component_NcPopover","_component_NcTextField","_component_CloseOutlineIcon","_component_CheckOutlineIcon","_component_NcNoteCard","z","$","O","N","B","M","E","R","A","C","H","UserBubble","ShareType","_component_UserBubble","_normalizeClass","_withModifiers","EmptyContent","EntityBubble","IconAccountPlusOutline","IconSearch","IconLoading","Modal","VList","EntitySearchResult","invalidTypes","entity","dataSet","dataList","subscribe","debounce","_component_Modal","_component_IconAccountPlusOutline","_component_EmptyContent","_component_IconLoading","_TransitionGroup","_component_EntityBubble","_component_IconSearch","_component_VList","_component_EntitySearchResult","RouterMixin","IconAccountGroupOutline","NcActionButton","NcActionText","IconDeleteOutline","IconExitToApp","IconShieldCheckOutline","IconCheckOutline","IconCloseOutline","MemberLevels","levels","MemberStatus","CIRCLES_MEMBER_LEVELS","level","DialogBuilder","changeMemberLevel","_component_IconAccountGroupOutline","_component_IconCheckOutline","_component_IconCloseOutline","_component_NcActionText","_component_IconShieldCheckOutline","_component_NcActionButton","_component_NcActionSeparator","_component_IconExitToApp","_component_IconDeleteOutline","shareType","SHARES_TYPES_MEMBER_MAP","maxAutocompleteResults","getSuggestions","circle","request","axios","generateOcsUrl","exact","rawExactSuggestions","rawSuggestions","result","exactSuggestions","share","formatResults","suggestions","allSuggestions","nameCounts","finalResults","getRecommendations","_sfc_main$X","EntityPicker","IconContact","MemberGridItem","NcEmptyContent","IsMobileMixin","CIRCLES_MEMBER_GROUPING","userType","teams","users","circleId","results","term","entry","showWarning","guest","_component_NcEmptyContent","_component_MemberGridItem","_component_IconContact","_component_EntityPicker","_createCommentVNode","AccountPlusIcon","ListItem","CogIcon","CopyIcon","IconAccountGroup","FileDocumentOutline","LoginIcon","LogoutIcon","MemberList","CircleSettings","TeamResourceButton","NcLoadingIcon","PencilIcon","NcTextArea","FolderIcon","MessageIcon","CalendarIcon","ViewDashboardIcon","BookOpenPageVariantIcon","CheckIcon","avatarList","useElementSize","avatarWidth","maxMembers","resource","providerId","res","enabledApps","resourceId","resourceType","folderPath","getCurrentUser","talkUrl","collectiveName","collectiveUrl","DavClient","__vite_default__","generateRemoteUrl","__vitePreload","client","calendarHome","davCalendar","calendarName","shareUrl","participantUrl","circleUri","response","errors","errorFields","generateUrl","_hoisted_11","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_17","_hoisted_18","_hoisted_21","_hoisted_22","_hoisted_23","_component_NcLoadingIcon","_component_NcTextArea","_component_PencilIcon","_component_CopyIcon","_component_CogIcon","_component_CircleSettings","_component_LoginIcon","_component_LogoutIcon","_hoisted_12","_component_CheckIcon","_component_TeamResourceButton","_resolveDynamicComponent","_hoisted_16","_component_ListItem","_component_FileDocumentOutline","_component_AccountPlusIcon","_component_MemberList","_component_IconAccountGroup","user","UserGroup","ROUTE_USER_GROUP","UserGroupMember","_component_UserGroupMember","getUserGroups","userId","getUserGroupMembers","groupId","useUserGroupStore","defineStore","userGroups","newUserGroup","members","CircleDetails","AccountGroup","UserGroupDetails","mapStores","newCircle","userGroupId","_component_AccountGroup","_component_UserGroupDetails","_component_CircleDetails","zeroFillFinders","matrix","zeroPixel","clearMatrixCenter","widthPct","heightPct","mW","cW","mH","cH","clearStartX","clearStartY","enc","dec","encode","inData","parse_url","str","encode_numeric","encode_alphanum","encode_url","encode_8bit","pushBits","bit","bits","ALPHANUM","path_res","calculateEC","msg","ec_len","poly","generatorPolynomial","log_k","log","exp","GF256_BASE","EXP_TABLE","LOG_TABLE","POLYNOMIALS","num","fillFinders","pixel","fillAlignAndTiming","fillStub","fillReserved","FORMATS","VERSIONS","gf15","gf18","formats_mask","EC_LEVELS","ec_level","mask","F","V","fillData","MASK_FUNCTIONS","row","col","dir","mask_fn","put","byte","calculatePenalty","penalty","J","numDark","getMatrix","bestMask","cell","getTemplate","mappedVersions","deepCopy","fillTemplate","template","blocks","messageUpdated","pad","QR","versions","num_template","block","colorName","isArrayish","require$$0","concat","swizzle","simpleSwizzleModule","colorNames","require$$1","hasOwnProperty","reverseNames","cs","colorStringModule","val","model","abbr","per","keyword","hexAlpha","clamp","alpha","hwb","hexDouble","hwba","getOptions","inOptions","BITMAP_OPTIONS","VECTOR_OPTIONS","colorToHex","colorString","svgMove","top","svgReturn","svgDeltaArc","borderRadius","sweep","svgVerticalDeltaLite","svgHorizontalDeltaLine","getFindersSVGPath","matrixSize","finderEnd","sides","rectangles","side","xSign","ySign","sidePoint","xCorner","yCorner","xDelta","yDelta","rectangle","getDotsSVGPath","column","leftX","topY","commonOptions","VERSION","_hasBuffer","_TD","_TE","b64ch","b64chs","b64tab","tab","b64re","_fromCC","_U8Afrom","it","_mkUriSafe","src","_tidyB64","btoaPolyfill","bin","u32","c0","c1","c2","asc","_btoa","_fromUint8Array","u8a","strs","fromUint8Array","urlsafe","cb_utob","cc","re_utob","utob","_encode","encodeURI","re_btou","cb_btou","cccc","cp","btou","atobPolyfill","u24","r2","_atob","_toUint8Array","toUint8Array","_unURI","_decode","isValid","_noEnum","extendString","_add","body","extendUint8Array","extendBuiltins","gBase64","getSVG","createSVG","te","logo","logoWidth","logoHeight","bgColor","imageWidth","imageHeight","actualBlockSize","matrixSizePx","marginPx","imageSizePx","imageWidthStr","imageHeightStr","xmlTag","svgOpeningTag","svgBody","getSVGBody","svgEndTag","logoImage","getLogoImage","dotsPath","outerFindersPath","imageBase64","Base64","logoWidthPx","logoHeightPx","IconAdd","PropertyTitleIcon","Actions","ActionButton","ChevronLeft","DotsHorizontalIcon","OrgChartsMixin","Contact","rfcProps","prop","others","defaultjCal","property","ICAL","defaultData","defaultValue","_component_Actions","_component_IconAdd","_component_ActionButton","_component_PropertyTitleIcon","_component_DotsHorizontalIcon","_component_ChevronLeft","FRAGMENT","TELEPORT","SUSPENSE","KEEP_ALIVE","BASE_TRANSITION","OPEN_BLOCK","CREATE_BLOCK","CREATE_ELEMENT_BLOCK","CREATE_VNODE","CREATE_ELEMENT_VNODE","CREATE_COMMENT","CREATE_TEXT","CREATE_STATIC","RESOLVE_COMPONENT","RESOLVE_DYNAMIC_COMPONENT","RESOLVE_DIRECTIVE","RESOLVE_FILTER","WITH_DIRECTIVES","RENDER_LIST","RENDER_SLOT","CREATE_SLOTS","TO_DISPLAY_STRING","MERGE_PROPS","NORMALIZE_CLASS","NORMALIZE_STYLE","NORMALIZE_PROPS","GUARD_REACTIVE_PROPS","TO_HANDLERS","CAMELIZE","CAPITALIZE","TO_HANDLER_KEY","SET_BLOCK_TRACKING","PUSH_SCOPE_ID","POP_SCOPE_ID","WITH_CTX","UNREF","IS_REF","WITH_MEMO","IS_MEMO_SAME","helperNameMap","registerRuntimeHelpers","helpers","Namespaces","NodeTypes","ElementTypes","ConstantTypes","locStub","createRoot","createVNodeCall","tag","patchFlag","dynamicProps","directives","isBlock","disableTracking","isComponent","loc","getVNodeBlockHelper","getVNodeHelper","createArrayExpression","elements","createObjectExpression","properties","createObjectProperty","isString","createSimpleExpression","content","isStatic","constType","createInterpolation","createCompoundExpression","createCallExpression","callee","createFunctionExpression","returns","newline","isSlot","createConditionalExpression","test","consequent","alternate","createCacheExpression","needPauseTracking","inVOnce","createBlockStatement","createTemplateLiteral","createIfStatement","createAssignmentExpression","createSequenceExpression","expressions","createReturnStatement","ssr","convertToBlock","helper","removeHelper","inSSR","defaultDelimitersOpen","defaultDelimitersClose","isTagStartChar","isWhitespace","isEndOfTagSection","toCharCodes","ret","Sequences","Tokenizer","stack","cbs","line","isEnd","endOfText","actualIndex","sequence","quote","input","endIndex","consumed","CompilerDeprecationTypes","deprecationData","getCompatValue","compatConfig","isCompatEnabled","mode","checkCompatEnabled","warnDeprecation","defaultOnError","defaultOnWarn","createCompilerError","code","messages","additionalMessage","ErrorCodes","errorMessages","walkIdentifiers","onIdentifier","includeAll","parentStack","knownIds","isReferencedIdentifier","isInDestructureAssignment","isInNewExpression","walkFunctionParams","onIdent","extractIdentifiers","walkBlockDeclarations","stmt","decl","isForStatement","walkForStatement","walkSwitchStatement","isVar","variable","stmt2","object","element","isFunctionType","isStaticProperty","isStaticPropertyKey","TS_NODE_TYPES","unwrapTSNode","isStaticExp","isCoreComponent","nonIdentifierRE","isSimpleIdentifier","validFirstIdentCharRE","validIdentCharRE","whitespaceRE","getExpSource","isMemberExpressionBrowser","stateStack","currentOpenBracketCount","currentOpenParensCount","currentStringType","isMemberExpressionNode","NOOP","isMemberExpression","fnExpRE","isFnExpressionBrowser","isFnExpressionNode","isFnExpression","advancePositionWithClone","pos","numberOfCharacters","advancePositionWithMutation","linesCount","lastNewLinePos","assert","condition","findDir","allowEmpty","findProp","dynamicOnly","isStaticArgOf","hasDynamicKeyVBind","isText$1","isVPre","isVSlot","isTemplateNode","isSlotOutlet","propsHelperSet","getUnnormalizedProps","callPath","injectProp","propsWithInjection","parentCall","first","hasProp","propKeyName","toValidAssetId","searchValue","replaceValue","hasScopeRef","ids","isObject","getMemoedVNodeCall","forAliasRE","isAllWhitespace","isWhitespaceText","isCommentOrWhitespace","defaultParserOptions","NO","currentOptions","currentRoot","currentInput","currentOpenTag","currentProp","currentAttrValue","currentAttrStartIndex","currentAttrEndIndex","inPre","inVPre","currentVPreBoundary","tokenizer","emitError","onText","getSlice","innerStart","innerEnd","addNode","createExp","getLoc","endOpenTag","found","onCloseTag","backTrack","raw","dirToAttr","setLocEnd","mod","condense","expParseMode","parseForExpression","syncIndex","forIteratorRE","stripParensRE","inMatch","LHS","RHS","createAliasExpression","asParam","valueContent","trimmedOffset","iteratorMatch","keyContent","keyOffset","indexContent","ns","lastNode","isImplied","lookAhead","isFragmentTemplate","condenseWhitespace","inlineTemplateProp","specialTemplateDir","isUpperCase","windowsNewlineRE","shouldCondense","removedWhitespace","hasNewlineChar","prevCharIsWhitespace","cloneLoc","parseMode","baseParse","delimiters","cacheStatic","walk","getSingleElementRoot","doNotHoistNode","inFor","toCache","constantType","getConstantType","codegenNode","getGeneratedPropsConstantType","getNodeProps","cachedAsArray","getCacheExpression","getSlotNode","slotName","node2","constantCache","cached","returnType2","generatedPropsType","childType","expType","returnType","isSymbol","allowHoistedHelperSet","getConstantTypeOfHelperCall","keyType","valueType","createTransformContext","prefixIdentifiers","hoistStatic","hmr","cacheHandlers","nodeTransforms","directiveTransforms","transformHoist","isBuiltInComponent","isCustomElement","expressionPlugins","scopeId","slotted","ssrCssVars","bindingMetadata","EMPTY_OBJ","inline","isTS","onError","onWarn","nameMatch","capitalize","camelize","currentCount","removalIndex","identifier","isVNode","cacheExp","traverseNode","createRootCodegen","singleElementRootChild","traverseChildren","nodeRemoved","exitFns","onExit","createStructuralDirectiveTransform","matches","PURE_ANNOTATION","aliasHelper","createCodegenContext","ast","sourceMap","optimizeImports","runtimeGlobalName","runtimeModuleName","ssrRuntimeModuleName","newlineIndex","withoutNewLine","generate","indent","deindent","hasHelpers","useWithBlock","genFunctionPreamble","functionName","signature","genAssets","genNode","VueBinding","staticHelpers","genHoists","assets","resolver","maybeSelfReference","hoists","genNodeListAsArray","multilines","genNodeList","comma","genText","genExpression","genInterpolation","genCompoundExpression","genComment","genVNodeCall","genCallExpression","genObjectExpression","genArrayExpression","genFunctionExpression","genConditionalExpression","genCacheExpression","pure","genExpressionAsPropertyKey","patchFlagString","callHelper","genNullableArgs","needNewline","needsParens","isNested","needArraySpread","transformExpression","processExpression","memo","asParams","asRawStatements","localVars","stringifyExpression","transformIf","processIf","ifNode","branch","isRoot","sibling","createCodegenNodeForBranch","parentCondition","getParentCondition","processCodegen","createIfBranch","isTemplateIf","keyIndex","createChildrenCodegenNode","keyProperty","vnodeCall","transformFor","processFor","forNode","renderExp","isTemplate","keyProp","keyExp","isStableFragment","fragmentFlag","childBlock","needFragmentWrapper","slotOutlet","loop","createForLoopParams","parseResult","finalizeForParseResult","addIdentifiers","removeIdentifiers","scopes","memoArgs","createParamsList","defaultFallback","trackSlotScopes","vSlot","trackVForSlotScopes","vFor","buildClientSlotFn","_vForExp","buildSlots","buildSlotFn","slotsProperties","dynamicSlots","hasDynamicSlots","onComponentSlot","hasTemplateSlots","hasNamedDefaultSlot","implicitDefaultChildren","seenSlotNames","conditionalBranchIndex","slotElement","slotDir","slotChildren","slotLoc","slotProps","dirLoc","staticSlotName","slotFunction","vIf","vElse","buildDynamicSlot","conditional","buildDefaultSlotProperty","children2","slotFlag","hasForwardedSlots","directiveImportMap","transformElement","vnodeTag","resolveComponentType","isDynamicComponent","vnodeProps","vnodeChildren","vnodeDynamicProps","dynamicPropNames","vnodeDirectives","shouldUseBlock","propsBuildResult","buildProps","buildDirectiveArgs","hasDynamicTextChild","stringifyDynamicPropNames","isExplicitDynamic","isComponentTag","isProp","builtIn","elementLoc","mergeArgs","runtimeDirectives","hasChildren","hasRef","hasClassBinding","hasStyleBinding","hasHydrationEventBinding","hasDynamicKeys","hasVnodeHook","pushMergeArg","dedupeProperties","pushRefVForMarker","analyzePatchFlag","isEventHandler","isOn","isReservedProp","nameLoc","modifiers","isVBind","isVOn","directiveTransform","props2","needRuntime","isBuiltInDirective","propsExpression","classKeyIndex","styleKeyIndex","hasDynamicKey","classProp","styleProp","knownProps","deduped","existing","mergeAsArray","incoming","dirArgs","runtime","trueExpression","modifier","propsNamesString","transformSlotOutlet","processSlotOutlet","slotArgs","expectedLen","nonNameProps","transformOn","augmentor","eventName","rawName","eventString","toHandlerKey","shouldCache","isMemberExp","isInlineStatement","hasMultipleStatements","transformBind","_node","injectPrefix","transformText","currentContainer","hasText","callArgs","seen$1","transformOnce","cur","transformModel","createTransformProps","rawExp","expString","bindingType","propName","assignmentExp","eventArg","modifiersKey","validDivisionCharRE","transformFilter","rewriteFilter","parseFilter","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","expression","filters","pushFilter","wrapFilter","seen","transformMemo","transformVBindShorthand","getBaseTransformPreset","baseCompile","isModuleMode","resolvedOptions","BindingTypes","noopDirectiveTransform","V_MODEL_RADIO","V_MODEL_CHECKBOX","V_MODEL_TEXT","V_MODEL_SELECT","V_MODEL_DYNAMIC","V_ON_WITH_MODIFIERS","V_ON_WITH_KEYS","V_SHOW","TRANSITION","TRANSITION_GROUP","decoder","decodeHtmlBrowser","asAttr","parserOptions","isVoidTag","isHTMLTag","isSVGTag","isMathMLTag","rootNamespace","transformStyle","parseInlineCSS","cssText","parseStringStyle","createDOMCompilerError","DOMErrorCodes","DOMErrorMessages","transformVHtml","transformVText","baseResult","transformModel$1","directiveToUse","isInvalidType","isEventOptionModifier","isNonKeyModifier","makeMap","maybeKeyModifier","isKeyboardEvent","resolveModifiers","keyModifiers","nonKeyModifiers","eventOptionModifiers","transformClick","transformOn$1","handlerExp","modifierPostfix","transformShow","ignoreSideEffectTags","DOMNodeTransforms","DOMDirectiveTransforms","compile","exports","compilerDom","runtimeDom","shared","require$$2","_interopNamespaceDefault","runtimeDom__namespace","compileCache","compileToFunction","render","vueModule","global","module","this","ownKeys","_objectSpread2","_defineProperty","_toPrimitive","_toPropertyKey","_typeof","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","_arrayLikeToArray","iter","minLen","arr2","IS_BROWSER","WINDOW","IS_TOUCH_DEVICE","HAS_POINTER_EVENT","NAMESPACE","ACTION_ALL","ACTION_CROP","ACTION_MOVE","ACTION_ZOOM","ACTION_EAST","ACTION_WEST","ACTION_SOUTH","ACTION_NORTH","ACTION_NORTH_EAST","ACTION_NORTH_WEST","ACTION_SOUTH_EAST","ACTION_SOUTH_WEST","CLASS_CROP","CLASS_DISABLED","CLASS_HIDDEN","CLASS_HIDE","CLASS_INVISIBLE","CLASS_MODAL","CLASS_MOVE","DATA_ACTION","DATA_PREVIEW","DRAG_MODE_CROP","DRAG_MODE_MOVE","DRAG_MODE_NONE","EVENT_CROP","EVENT_CROP_END","EVENT_CROP_MOVE","EVENT_CROP_START","EVENT_DBLCLICK","EVENT_TOUCH_START","EVENT_TOUCH_MOVE","EVENT_TOUCH_END","EVENT_POINTER_DOWN","EVENT_POINTER_MOVE","EVENT_POINTER_UP","EVENT_READY","EVENT_RESIZE","EVENT_WHEEL","EVENT_ZOOM","MIME_TYPE_JPEG","REGEXP_ACTIONS","REGEXP_DATA_URL","REGEXP_DATA_URL_JPEG","REGEXP_TAG_NAME","MIN_CONTAINER_WIDTH","MIN_CONTAINER_HEIGHT","DEFAULTS","TEMPLATE","isNaN","isNumber","isPositiveNumber","isUndefined","isPlainObject","_constructor","isFunction","toArray","forEach","_len","_key","REGEXP_DECIMALS","normalizeDecimalNumber","times","REGEXP_SUFFIX","setStyle","styles","hasClass","addClass","className","removeClass","toggleClass","added","REGEXP_CAMEL_CASE","toParamCase","getData","setData","removeData","REGEXP_SPACES","onceSupported","supported","once","removeListener","addListener","_handler","_element$listeners","_len2","_key2","getOffset","box","REGEXP_ORIGINS","isCrossOriginURL","parts","addTimestamp","timestamp","getTransforms","_ref","translateX","translateY","getMaxZoomRatio","pointers","pointers2","maxRatio","pointerId","pointer2","z1","z2","ratio","getPointer","_ref2","endOnly","pageX","pageY","getPointersCenter","_ref3","startX","startY","getAdjustedSizes","_ref4","aspectRatio","isValidWidth","isValidHeight","adjustedWidth","getRotatedSizes","_ref5","degree","arc","sinArc","cosArc","newWidth","newHeight","getSourceCanvas","_ref6","_ref7","_ref8","imageAspectRatio","imageNaturalWidth","imageNaturalHeight","_ref6$rotate","_ref6$scaleX","_ref6$scaleY","naturalWidth","naturalHeight","_ref8$fillColor","fillColor","_ref8$imageSmoothingE","imageSmoothingEnabled","_ref8$imageSmoothingQ","imageSmoothingQuality","_ref8$maxWidth","maxWidth","_ref8$maxHeight","maxHeight","_ref8$minWidth","minWidth","_ref8$minHeight","minHeight","maxSizes","minSizes","destMaxSizes","destMinSizes","destWidth","destHeight","fromCharCode","getStringFromCharCode","dataView","REGEXP_DATA_URL_HEAD","dataURLToArrayBuffer","dataURL","base64","binary","arrayBuffer","uint8","arrayBufferToDataURL","mimeType","chunks","chunkSize","resetAndGetOrientation","orientation","littleEndian","app1Start","ifdStart","exifIDCode","tiffOffset","endianness","firstIFDOffset","_length","_offset","parseOrientation","cropper","containerData","imageData","viewMode","rotated","canvasWidth","canvasHeight","canvasData","sizeLimited","positionLimited","cropBoxData","cropped","minCanvasWidth","minCanvasHeight","_getAdjustedSizes","newCanvasLeft","newCanvasTop","changed","transformed","_getRotatedSizes","autoCropArea","limited","minCropBoxWidth","minCropBoxHeight","maxCropBoxWidth","maxCropBoxHeight","preview","crossOrigin","alt","previews","img","cropBoxWidth","cropBoxHeight","originalWidth","originalHeight","events","ratioX","ratioY","_this","buttons","button","action","touch","minLeft","minTop","renderable","range","check","methods","hasSameSize","offsetY","_this$canvasData","_originalEvent","pivot","center","_scaleX","_scaleY","rounded","widthChanged","heightChanged","_this$getData","initialX","initialY","initialWidth","initialHeight","_options$imageSmoothi","sourceWidth","sourceHeight","srcX","srcY","srcWidth","srcHeight","dstX","dstY","dstWidth","dstHeight","dragBox","face","croppable","movable","AnotherCropper","Cropper","tagName","_parseOrientation","crossOriginUrl","_this2","isIOSWebKit","done","sizingImage","cropBox","parentNode","VueCropper","_vue","_cropperjs","_cropperjs2","_interopRequireDefault","_objectWithoutProperties","previewPropType","crossorigin","_$options$props","onlyColorChanged","supportedNetworks","loadState","ActionLink","IconCloudDownload","IconDownload","IconUpload","IconFolder","IconImage","NcModal","emails","availableSocial","availableMessenger","available","imageSvg","sanitizeSVG","ccc","file","word","uint","bytes","nextcloudMajorVersion","photo","photoUrl","blob","base64data","getFilePickerBuilder","network","showInfo","_component_NcModal","_component_VueCropper","_component_IconImage","_component_IconUpload","_component_IconFolder","_component_IconCloudDownload","_component_ActionLink","_component_IconDownload","defaultAlphabetIndexMap","isNumberCode","naturalCompare","lengthA","lengthB","indexA","indexB","alphabetIndexMap","firstDifferenceInLeadingZeros","buildAlphabetIndexMap","charCodeA","charCodeB","numStartA","numStartB","numEndA","numEndB","difference","alphabetIndexMapCache","alphabet","existingMap","indexMap","maxCharCode","maxCode","naturalCompare_1","PropertyTitle","_component_PropertyTitle","_withDirectives","moment","toRaw","isTalkEnabled","profileEnabled","browserStorage","getBuilder","AddNewProp","AppContentDetails","ContactAvatar","ContactDetailsProperty","DetailsHeader","IconMail","IconMessage","IconCall","IconAccount","IconQr","CakeIcon","IconCopy","NcInputField","PropertyGroups","PropertyRev","PropertySelect","NcRelatedResourcesPanel","FolderMultipleImage","mitt","EyeCircleIcon","nameA","nameB","organization","escape","tel","address","newContact","oldContact","jCal","svgBytes","svgString","addressbookId","localContact","validate","propModel","propType","lastUsed","newAddressBook","lastUsedAddressBook","_component_AppContentDetails","_component_DetailsHeader","_component_ContactAvatar","_component_NcInputField","_component_IconAccount","_component_IconMail","emailAddress","_component_IconCall","phoneNumber","_component_IconCopy","_component_IconQr","_component_CakeIcon","_component_ContactDetailsProperty","_component_PropertySelect","_component_PropertyGroups","_component_NcRelatedResourcesPanel","_component_FolderMultipleImage","_component_AddNewProp","_component_PropertyRev","IconCancelRaw","IconDeleteRaw","evt","newState","appendContactToGroup","groupName","ContactsListItem","IconPlus","IconAccountPlus","IconBookArrow","ab","allGroups","selectedGroup","movePromises","_component_ContactsListItem","_component_IconPlus","_component_IconAccountPlus","_component_IconBookArrow","IconCheckCircleOutline","IconCloseCircleOutline","IconSetMerge","IconDomain","IconBadgeAccount","contactA","contactB","sortedA","sortedB","groupedA","groupedB","allKeys","map","valA","valB","conflictInformation","currentVersions","resolutions","sortedProperties","conflictsCount","aType","bType","contactToSave","finalProperties","resolvedVersion","resolvedVersions","actualName","clonedJCal","clonedProperty","_component_IconCloseCircleOutline","_component_IconCheckCircleOutline","singleProperty","propertyIndex","_component_IconSetMerge","AppContentList","IconSelect","IconAccountMultiple","IconBookAccount","NcDialog","Merging","Batch","contactsList","old","oldIndex","scroller","scrollerBoundingRect","itemBoundingRect","itemHeight","isRange","lastToggledIndex","selected","newSelection","mergedContact","_component_AppContentList","_component_NcDialog","_component_Merging","_component_Batch","_Transition","_component_IconSelect","_component_IconAccountMultiple","_component_IconBookAccount","ContactDetails","ContactsList","_component_ContactsList","_component_ContactDetails","CIRCLE_DESC","getCapabilities","ActionText","AppNavigationItem","ExitToApp","IconCog","LocationEnter","AccountStar","AccountGroupOutline","_component_AppNavigationItem","_component_AccountStar","_component_AccountGroupOutline","_component_ActionText","_component_IconCog","_component_ExitToApp","_component_LocationEnter","IconGroup","IconUser","_component_IconGroup","_component_IconUser","isGroupSharingEnabled","urldecode","AddressBookSharee","displayName","isGroup","allowedCalendarUserTypes","_component_NcSelectUsers","sharee","_component_AddressBookSharee","ActionCheckbox","ActionInput","IconRename","IconContactPlus","IconShare","ShareAddressBook","usePrincipalsStore","_component_IconContactPlus","_component_IconShare","_component_ActionCheckbox","_component_ActionInput","_component_IconRename","_component_ShareAddressBook","CancelToken","picker","IconError","_component_IconError","_component_NcFormBox","AppSettingsDialog","AppSettingsSection","SettingsAddressbook","SettingsNewAddressbook","SettingsImportContacts","SettingsSortContacts","setting","_component_AppSettingsDialog","_component_AppSettingsSection","_component_SettingsSortContacts","_component_NcFormBoxSwitch","_component_SettingsImportContacts","_component_SettingsAddressbook","_component_SettingsNewAddressbook","download","strFileName","strMimeType","defaultMime","payload","anchor","toString","myBlob","fileName","ajax","dataUrlToBlob","saver","tempUiArr","strUrl","binData","uiArr","winMode","hookCallback","hooks","setHookCallback","hasOwnProp","isObjectEmpty","isDate","arrLen","createUTC","locale","strict","createLocalOrUTC","defaultParsingFlags","getParsingFlags","some","fun","flags","parsedParts","isNowValid","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","Moment","isMoment","deprecate","firstTime","argLen","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","defaultCalendar","calendar","mom","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedInput","normalizedProp","priorities","getPrioritizedUnits","unitsObj","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchTimestamp","matchWord","match1to2NoLeadingZero","match1to2HasZero","regexes","addRegexToken","regex","strictRegex","isStrict","localeData","getParseRegexForToken","unescapeFormat","regexEscape","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","addTimeToArrayFromToken","isLeapYear","year","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","getSetYear","makeGetSet","getIsLeapYear","unit","keepTime","set$1","isUTC","month","date","stringGet","stringSet","prioritized","prioritizedLen","indexOf","daysInMonth","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","localeMonths","localeMonthsShort","handleStrictParse","monthName","ii","llc","localeMonthsParse","setMonth","getSetMonth","getDaysInMonth","monthsShortRegex","computeMonthsParse","monthsRegex","cmpLenRev","shortPieces","longPieces","mixedPieces","shortP","longP","createDate","ms","createUTCDate","firstWeekOffset","dow","doy","fwd","fwdlw","dayOfYearFromWeeks","week","weekday","localWeekday","weekOffset","dayOfYear","resYear","resDayOfYear","weekOfYear","resWeek","weeksInYear","weekOffsetNext","localeWeek","defaultLocaleWeek","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","parseWeekday","parseIsoWeekday","shiftWeekdays","ws","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","localeWeekdays","weekdays","localeWeekdaysShort","localeWeekdaysMin","handleStrictParse$1","weekdayName","localeWeekdaysParse","getSetDayOfWeek","day","getSetLocaleDayOfWeek","getSetISODayOfWeek","weekdaysRegex","computeWeekdaysParse","weekdaysShortRegex","weekdaysMinRegex","minPieces","minp","shortp","longp","hFormat","kFormat","meridiem","lowercase","matchMeridiem","kInput","pos1","pos2","localeIsPM","defaultLocaleMeridiemParse","getSetHour","localeMeridiem","hours","minutes","isLower","baseConfig","locales","localeFamilies","globalLocale","commonPrefix","arr1","minl","normalizeLocale","chooseLocale","split","loadLocale","isLocaleNameSane","oldLocale","aliasedRequire","getSetGlobalLocale","defineLocale","updateLocale","tmpLocale","listLocales","checkOverflow","overflow","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","rfc2822","obsOffsets","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","preprocessRFC2822","checkWeekday","weekdayStr","parsedInput","weekdayProvided","weekdayActual","calculateOffset","obsOffset","militaryOffset","numOffset","hm","configFromRFC2822","parsedArray","configFromString","currentDateArray","nowValue","configFromArray","currentDate","expectedWeekday","yearToUse","dayOfYearFromWeekInfo","weekYear","temp","weekdayOverflow","curWeek","createLocal","skipped","stringLength","totalParsedInputLength","era","meridiemFixWrap","hour","isPm","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","configFromObject","dayOrDate","createFromConfig","prepareConfig","configFromInput","prototypeMin","other","prototypeMax","pickBy","moments","ordering","isDurationValid","unitHasDecimal","orderLen","isValid$1","createInvalid$1","createDuration","Duration","years","quarters","months","weeks","days","seconds","milliseconds","isDuration","absRound","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","separator","offsetFromString","chunkOffset","chunk","cloneWithOffset","getDateOffset","getSetOffset","keepLocalTime","keepMinutes","localAdjust","addSubtract","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","aspNetRegex","isoRegex","diffRes","parseIso","momentsDifference","inp","positiveMomentsDifference","createAdder","direction","period","dur","tmp","isAdding","updateOffset","subtract","isMomentInput","isNumberOrStringArray","isMomentInputObject","objectTest","propertyTest","propertyLen","arrayTest","dataTypeTest","isCalendarSpec","getCalendarFormat","myMoment","calendar$1","formats","sod","isAfter","localInput","isBefore","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","asFloat","zoneDelta","monthDiff","wholeMonthDiff","anchor2","adjust","toISOString","keepOffset","utc","inspect","zone","datetime","suffix","inputString","fromNow","toNow","newLocaleData","lang","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","startOf","startOfDate","endOf","valueOf","unix","toDate","toObject","toJSON","isValid$2","parsingFlags","invalidAt","creationData","matchEraAbbr","matchEraName","matchEraNarrow","matchEraYearOrdinal","localeEras","eras","localeErasParse","eraName","narrow","localeErasConvertYear","getEraName","getEraNarrow","getEraAbbr","getEraYear","erasNameRegex","computeErasParse","erasAbbrRegex","erasNarrowRegex","abbrPieces","namePieces","narrowPieces","erasName","erasAbbr","erasNarrow","addWeekYearFormatToken","getter","getSetWeekYear","getSetWeekYearHelper","getSetISOWeekYear","getISOWeeksInYear","getISOWeeksInISOWeekYear","getWeeksInYear","weekInfo","getWeeksInWeekYear","weeksTarget","setWeekAll","dayOfYearData","getSetQuarter","getSetDayOfMonth","getSetDayOfYear","getSetMinute","getSetSecond","getSetMillisecond","parseMs","getZoneAbbr","getZoneName","proto","createUnix","createInZone","preParsePostFormat","proto$1","get$1","field","setter","listMonthsImpl","out","listWeekdaysImpl","localeSorted","listMonths","listMonthsShort","listWeekdays","listWeekdaysShort","listWeekdaysMin","mathAbs","abs","addSubtract$1","add$1","subtract$1","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","makeAs","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","clone$1","get$2","makeGetter","round","thresholds","substituteTimeAgo","relativeTime$1","posNegDuration","getSetRelativeTimeRounding","roundingFunction","getSetRelativeTimeThreshold","threshold","limit","humanize","argWithSuffix","argThresholds","withSuffix","th","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","removeContactFromGroup","currentGroups","renameContactFromGroup","oldGroupName","newGroupName","foundGroups","IconEmail","IconContactFilled","contactFromDropData","contactFromStore","groupedContacts","vcardPromise","email","_component_IconContactFilled","_component_IconEmail","isContactsInteractionEnabled","AppNavigation","AppNavigationCaption","CircleNavigationItem","Cog","ContactsSettings","GroupNavigationItem","IconUserFilled","IconRecentlyContacted","NewCircleIntro","CONTACTS_SETTINGS","ELLIPSIS_COUNT","GROUP_ALL_CONTACTS","CHART_ALL_CONTACTS","GROUP_NO_GROUP_CONTACTS","GROUP_RECENTLY_CONTACTED","isCirclesEnabled","menu","recentlyIndex","circleName","isPersonal","_component_AppNavigation","_component_IconUserFilled","_component_IconRecentlyContacted","_component_AppNavigationCaption","_component_GroupNavigationItem","_component_NewCircleIntro","_component_CircleNavigationItem","_component_Cog","_component_ContactsSettings","ProcessingScreen","_component_ProcessingScreen","AddToGroupView","pLimit","requests","_component_AddToGroupView","CircleContent","ChartContent","ContactsContent","ContactsPicker","Content","ImportView","RootNavigation","appName","ROUTE_CIRCLE","addressbooks","userGroupStore","appVersion","orderKey","inList","_component_Content","_component_RootNavigation","_component_UserGroupContent","_component_CircleContent","_component_ChartContent","_component_ContactsContent","_component_ImportView","_component_ContactsPicker","Contacts","ROUTE_CHART","App","vm","pinia","createPinia","store"],"ignoreList":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,158,159,160,161,162,163,164,165,166,167,168,169,175,177,178,182,183,184,185,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,217,218,219,220,221,222,223,224,225,228,233,234,235,236,237,238,239,243,244,245,246,250,251,252,255,256,258,265,269,270,271],"sources":["../src/ContactsRoot.vue","../node_modules/vue-router/dist/devtools-EWN81iOl.mjs","../node_modules/vue-router/dist/vue-router.mjs","../node_modules/@nextcloud/vue/node_modules/vue-router/dist/devtools-CQC1vVRY.mjs","../node_modules/@nextcloud/vue/node_modules/vue-router/dist/vue-router.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcActionSeparator-Doekl1NX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppContentList-DYFsuDKh.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAppSettingsSection-B2pFK0UK.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcCounterBubble-CxxHHh8i.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBox-BYjllt0m.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem-BAAPOa6z.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch-m9uRjJzl.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-DSdLnQJX.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-C_yQkDIv.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-BlMjKkJ3.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-vOAXLHB5.mjs","../node_modules/d3-array/src/cumsum.js","../node_modules/d3-array/src/max.js","../node_modules/d3-array/src/min.js","../node_modules/d3-array/src/sum.js","../node_modules/d3-dispatch/src/dispatch.js","../node_modules/d3-selection/src/namespaces.js","../node_modules/d3-selection/src/namespace.js","../node_modules/d3-selection/src/creator.js","../node_modules/d3-selection/src/selector.js","../node_modules/d3-selection/src/selection/select.js","../node_modules/d3-selection/src/array.js","../node_modules/d3-selection/src/selectorAll.js","../node_modules/d3-selection/src/selection/selectAll.js","../node_modules/d3-selection/src/matcher.js","../node_modules/d3-selection/src/selection/selectChild.js","../node_modules/d3-selection/src/selection/selectChildren.js","../node_modules/d3-selection/src/selection/filter.js","../node_modules/d3-selection/src/selection/sparse.js","../node_modules/d3-selection/src/selection/enter.js","../node_modules/d3-selection/src/constant.js","../node_modules/d3-selection/src/selection/data.js","../node_modules/d3-selection/src/selection/exit.js","../node_modules/d3-selection/src/selection/join.js","../node_modules/d3-selection/src/selection/merge.js","../node_modules/d3-selection/src/selection/order.js","../node_modules/d3-selection/src/selection/sort.js","../node_modules/d3-selection/src/selection/call.js","../node_modules/d3-selection/src/selection/nodes.js","../node_modules/d3-selection/src/selection/node.js","../node_modules/d3-selection/src/selection/size.js","../node_modules/d3-selection/src/selection/empty.js","../node_modules/d3-selection/src/selection/each.js","../node_modules/d3-selection/src/selection/attr.js","../node_modules/d3-selection/src/window.js","../node_modules/d3-selection/src/selection/style.js","../node_modules/d3-selection/src/selection/property.js","../node_modules/d3-selection/src/selection/classed.js","../node_modules/d3-selection/src/selection/text.js","../node_modules/d3-selection/src/selection/html.js","../node_modules/d3-selection/src/selection/raise.js","../node_modules/d3-selection/src/selection/lower.js","../node_modules/d3-selection/src/selection/append.js","../node_modules/d3-selection/src/selection/insert.js","../node_modules/d3-selection/src/selection/remove.js","../node_modules/d3-selection/src/selection/clone.js","../node_modules/d3-selection/src/selection/datum.js","../node_modules/d3-selection/src/selection/on.js","../node_modules/d3-selection/src/selection/dispatch.js","../node_modules/d3-selection/src/selection/iterator.js","../node_modules/d3-selection/src/selection/index.js","../node_modules/d3-selection/src/select.js","../node_modules/d3-selection/src/sourceEvent.js","../node_modules/d3-selection/src/pointer.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-color/src/define.js","../node_modules/d3-color/src/color.js","../node_modules/d3-interpolate/src/constant.js","../node_modules/d3-interpolate/src/color.js","../node_modules/d3-interpolate/src/rgb.js","../node_modules/d3-interpolate/src/number.js","../node_modules/d3-interpolate/src/string.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timer.js","../node_modules/d3-timer/src/timeout.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-path/src/path.js","../node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-hierarchy/src/hierarchy/find.js","../node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-hierarchy/src/hierarchy/iterator.js","../node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-hierarchy/src/accessors.js","../node_modules/d3-hierarchy/src/stratify.js","../node_modules/d3-hierarchy/src/tree.js","../node_modules/d3-shape/src/constant.js","../node_modules/d3-shape/src/array.js","../node_modules/d3-shape/src/point.js","../node_modules/d3-shape/src/curve/bump.js","../node_modules/d3-shape/src/link.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/count.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/each.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/sum.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/sort.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/path.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/ancestors.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/descendants.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/leaves.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/links.js","../node_modules/d3-flextree/node_modules/d3-hierarchy/src/hierarchy/index.js","../node_modules/d3-flextree/src/flextree.js","../node_modules/d3-org-chart/src/d3-org-chart.js","../src/components/ChartTemplate.vue","../src/components/OrgChart.vue","../src/components/AppContent/ChartContent.vue","../node_modules/vue-material-design-icons/AccountGroupOutline.vue","../node_modules/vue-material-design-icons/AccountPlusOutline.vue","../node_modules/vue-material-design-icons/BookOpenPageVariant.vue","../node_modules/vue-material-design-icons/CalendarOutline.vue","../node_modules/vue-material-design-icons/Check.vue","../node_modules/vue-material-design-icons/CogOutline.vue","../node_modules/vue-material-design-icons/FileDocumentOutline.vue","../node_modules/vue-material-design-icons/FolderOutline.vue","../node_modules/vue-material-design-icons/Login.vue","../node_modules/vue-material-design-icons/Logout.vue","../node_modules/vue-material-design-icons/MessageOutline.vue","../node_modules/vue-material-design-icons/ViewDashboard.vue","../src/components/CircleDetails/CirclePasswordSettings.vue","../src/components/CircleDetails/ContentHeading.vue","../src/mixins/CopyToClipboardMixin.js","../src/mixins/CircleActionsMixin.js","../src/components/CircleDetails/CircleSettings.vue","../node_modules/vue-material-design-icons/Close.vue","../src/components/CircleDetails/TeamResourceButton.vue","../node_modules/virtua/lib/vue/index.js","../node_modules/vue-material-design-icons/Magnify.vue","../src/components/EntityPicker/EntityBubble.vue","../src/components/EntityPicker/EntitySearchResult.vue","../src/components/EntityPicker/EntityPicker.vue","../node_modules/vue-material-design-icons/CheckOutline.vue","../node_modules/vue-material-design-icons/CloseOutline.vue","../node_modules/vue-material-design-icons/ExitToApp.vue","../node_modules/vue-material-design-icons/ShieldCheckOutline.vue","../src/mixins/RouterMixin.js","../src/components/MemberList/MemberGridItem.vue","../src/services/collaborationAutocompletion.js","../src/components/MemberList/MemberList.vue","../src/components/CircleDetails.vue","../src/components/UserGroupDetails/UserGroupMember.vue","../src/models/userGroup.ts","../src/components/UserGroupDetails.vue","../src/services/userGroup.ts","../src/store/userGroup.ts","../src/components/AppContent/CircleContent.vue","../node_modules/qreator/lib/bitMatrix.js","../node_modules/qreator/lib/encode.js","../node_modules/qreator/lib/errorcode.js","../node_modules/qreator/lib/matrix.js","../node_modules/qreator/lib/qr-base.js","../node_modules/color-name/index.js","../node_modules/simple-swizzle/node_modules/is-arrayish/index.js","../node_modules/simple-swizzle/index.js","../node_modules/color-string/index.js","../node_modules/qreator/lib/utils.js","../node_modules/js-base64/base64.mjs","../node_modules/qreator/lib/svg.js","../node_modules/vue-material-design-icons/Cake.vue","../node_modules/vue-material-design-icons/EyeCircleOutline.vue","../node_modules/vue-material-design-icons/FolderMultipleImage.vue","../node_modules/vue-material-design-icons/Qrcode.vue","../node_modules/vue-material-design-icons/TrayArrowDown.vue","../node_modules/vue-material-design-icons/ChevronLeft.vue","../node_modules/vue-material-design-icons/DotsHorizontal.vue","../src/components/ContactDetails/ContactDetailsAddNewProp.vue","../node_modules/@vue/compiler-core/dist/compiler-core.esm-bundler.js","../node_modules/@vue/compiler-dom/dist/compiler-dom.esm-bundler.js","../node_modules/vue/dist/vue.cjs.prod.js","../node_modules/vue/index.js","../node_modules/cropperjs/dist/cropper.js","../node_modules/vue-cropperjs/dist/VueCropper.js","../node_modules/vue-material-design-icons/CloudDownloadOutline.vue","../node_modules/vue-material-design-icons/ImageOutline.vue","../node_modules/vue-material-design-icons/UploadOutline.vue","../src/components/ContactDetails/ContactDetailsAvatar.vue","../src/components/DetailsHeader.vue","../node_modules/string-natural-compare/natural-compare.js","../src/components/Properties/PropertyGroups.vue","../src/components/Properties/PropertyRev.vue","../src/services/isTalkEnabled.js","../src/components/ContactDetails.vue","../node_modules/@mdi/svg/svg/cancel.svg?raw","../node_modules/@mdi/svg/svg/delete-outline.svg","../node_modules/vue-material-design-icons/BookAccountOutline.vue","../node_modules/vue-material-design-icons/CloseThick.vue","../node_modules/vue-material-design-icons/SetMerge.vue","../node_modules/vue-material-design-icons/AccountMultiplePlusOutline.vue","../node_modules/vue-material-design-icons/BookArrowRightOutline.vue","../src/components/ContactsList/ContactsListItem.vue","../src/services/appendContactToGroup.js","../src/components/ContactsList/Batch.vue","../node_modules/vue-material-design-icons/BadgeAccountOutline.vue","../node_modules/vue-material-design-icons/CheckCircleOutline.vue","../node_modules/vue-material-design-icons/CloseCircleOutline.vue","../node_modules/vue-material-design-icons/Domain.vue","../src/components/ContactsList/Merging.vue","../src/components/ContactsList.vue","../src/components/AppContent/ContactsContent.vue","../node_modules/vue-material-design-icons/Account.vue","../node_modules/vue-material-design-icons/AccountMultiple.vue","../node_modules/vue-material-design-icons/AlertCircleOutline.vue","../src/components/EntityPicker/NewCircleIntro.vue","../src/components/Icons/IconRecentlyContacted.vue","../node_modules/vue-material-design-icons/AccountStarOutline.vue","../node_modules/vue-material-design-icons/LocationEnter.vue","../src/components/AppNavigation/CircleNavigationItem.vue","../node_modules/vue-material-design-icons/ShareVariantOutline.vue","../src/components/AppNavigation/Settings/SettingsAddressbookSharee.vue","../src/services/isGroupSharingEnabled.js","../src/utils/url.js","../src/components/AppNavigation/Settings/SettingsAddressbookShare.vue","../src/components/AppNavigation/Settings/SettingsAddressbook.vue","../src/components/AppNavigation/Settings/SettingsImportContacts.vue","../node_modules/vue-material-design-icons/Loading.vue","../src/components/AppNavigation/Settings/SettingsNewAddressbook.vue","../src/components/AppNavigation/Settings/SettingsSortContacts.vue","../src/components/AppNavigation/ContactsSettings.vue","../node_modules/downloadjs/download.js","../node_modules/moment/dist/moment.js","../node_modules/vue-material-design-icons/FolderEditOutline.vue","../src/services/removeContactFromGroup.js","../src/services/renameContactFromGroup.js","../src/components/AppNavigation/GroupNavigationItem.vue","../src/services/isContactsInteractionEnabled.js","../src/components/AppNavigation/RootNavigation.vue","../src/components/ProcessingScreen.vue","../src/views/Processing/AddToGroupView.vue","../src/components/EntityPicker/ContactsPicker.vue","../src/views/Processing/ImportView.vue","../src/views/Contacts.vue","../src/router/index.js","../src/main.js"],"sourcesContent":["\n\n\n\n\n","/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/utils/env.ts\nconst isBrowser = typeof document !== \"undefined\";\n\n//#endregion\n//#region src/utils/index.ts\n/**\n* Identity function that returns the value as is.\n*\n* @param v - the value to return\n*\n* @internal\n*/\nconst identityFn = (v) => v;\n/**\n* Allows differentiating lazy components from functional components and vue-class-component\n* @internal\n*\n* @param component\n*/\nfunction isRouteComponent(component) {\n\treturn typeof component === \"object\" || \"displayName\" in component || \"props\" in component || \"__vccOpts\" in component;\n}\nfunction isESModule(obj) {\n\treturn obj.__esModule || obj[Symbol.toStringTag] === \"Module\" || obj.default && isRouteComponent(obj.default);\n}\nconst assign = Object.assign;\nfunction applyToParams(fn, params) {\n\tconst newParams = {};\n\tfor (const key in params) {\n\t\tconst value = params[key];\n\t\tnewParams[key] = isArray(value) ? value.map(fn) : fn(value);\n\t}\n\treturn newParams;\n}\nconst noop = () => {};\n/**\n* Typesafe alternative to Array.isArray\n* https://github.com/microsoft/TypeScript/pull/48228\n*\n* @internal\n*/\nconst isArray = Array.isArray;\nfunction mergeOptions(defaults, partialOptions) {\n\tconst options = {};\n\tfor (const key in defaults) options[key] = key in partialOptions ? partialOptions[key] : defaults[key];\n\treturn options;\n}\n\n//#endregion\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery$1, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery$1(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery$1, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery$1(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery$1, location) {\n\tconst query = location.query ? stringifyQuery$1(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery$1, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery$1(a.query) === stringifyQuery$1(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a?.valueOf() === b?.valueOf();\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType$1) {\n\tNavigationType$1[\"pop\"] = \"pop\";\n\tNavigationType$1[\"push\"] = \"push\";\n\treturn NavigationType$1;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection$1) {\n\tNavigationDirection$1[\"back\"] = \"back\";\n\tNavigationDirection$1[\"forward\"] = \"forward\";\n\tNavigationDirection$1[\"unknown\"] = \"\";\n\treturn NavigationDirection$1;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/errors.ts\n/**\n* Flags so we can combine them when checking for multiple errors. This is the internal version of\n* {@link NavigationFailureType}.\n*\n* @internal\n*/\nlet ErrorTypes = /* @__PURE__ */ function(ErrorTypes$1) {\n\tErrorTypes$1[ErrorTypes$1[\"MATCHER_NOT_FOUND\"] = 1] = \"MATCHER_NOT_FOUND\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_GUARD_REDIRECT\"] = 2] = \"NAVIGATION_GUARD_REDIRECT\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_ABORTED\"] = 4] = \"NAVIGATION_ABORTED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_CANCELLED\"] = 8] = \"NAVIGATION_CANCELLED\";\n\tErrorTypes$1[ErrorTypes$1[\"NAVIGATION_DUPLICATED\"] = 16] = \"NAVIGATION_DUPLICATED\";\n\treturn ErrorTypes$1;\n}({});\nconst NavigationFailureSymbol = Symbol(process.env.NODE_ENV !== \"production\" ? \"navigation failure\" : \"\");\n/**\n* Enumeration with all possible types for navigation failures. Can be passed to\n* {@link isNavigationFailure} to check for specific failures.\n*/\nlet NavigationFailureType = /* @__PURE__ */ function(NavigationFailureType$1) {\n\t/**\n\t* An aborted navigation is a navigation that failed because a navigation\n\t* guard returned `false` or called `next(false)`\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"aborted\"] = 4] = \"aborted\";\n\t/**\n\t* A cancelled navigation is a navigation that failed because a more recent\n\t* navigation finished started (not necessarily finished).\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"cancelled\"] = 8] = \"cancelled\";\n\t/**\n\t* A duplicated navigation is a navigation that failed because it was\n\t* initiated while already being at the exact same location.\n\t*/\n\tNavigationFailureType$1[NavigationFailureType$1[\"duplicated\"] = 16] = \"duplicated\";\n\treturn NavigationFailureType$1;\n}({});\nconst ErrorTypeMessages = {\n\t[ErrorTypes.MATCHER_NOT_FOUND]({ location, currentLocation }) {\n\t\treturn `No match for\\n ${JSON.stringify(location)}${currentLocation ? \"\\nwhile being at\\n\" + JSON.stringify(currentLocation) : \"\"}`;\n\t},\n\t[ErrorTypes.NAVIGATION_GUARD_REDIRECT]({ from, to }) {\n\t\treturn `Redirected from \"${from.fullPath}\" to \"${stringifyRoute(to)}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_ABORTED]({ from, to }) {\n\t\treturn `Navigation aborted from \"${from.fullPath}\" to \"${to.fullPath}\" via a navigation guard.`;\n\t},\n\t[ErrorTypes.NAVIGATION_CANCELLED]({ from, to }) {\n\t\treturn `Navigation cancelled from \"${from.fullPath}\" to \"${to.fullPath}\" with a new navigation.`;\n\t},\n\t[ErrorTypes.NAVIGATION_DUPLICATED]({ from, to }) {\n\t\treturn `Avoided redundant navigation to current location: \"${from.fullPath}\".`;\n\t}\n};\n/**\n* Creates a typed NavigationFailure object.\n* @internal\n* @param type - NavigationFailureType\n* @param params - { from, to }\n*/\nfunction createRouterError(type, params) {\n\tif (process.env.NODE_ENV !== \"production\" || false) return assign(new Error(ErrorTypeMessages[type](params)), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n\telse return assign(/* @__PURE__ */ new Error(), {\n\t\ttype,\n\t\t[NavigationFailureSymbol]: true\n\t}, params);\n}\nfunction isNavigationFailure(error, type) {\n\treturn error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));\n}\nconst propertiesToLog = [\n\t\"params\",\n\t\"query\",\n\t\"hash\"\n];\nfunction stringifyRoute(to) {\n\tif (typeof to === \"string\") return to;\n\tif (to.path != null) return to.path;\n\tconst location = {};\n\tfor (const key of propertiesToLog) if (key in to) location[key] = to[key];\n\treturn JSON.stringify(location, null, 2);\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value$1) => {\n\t\t\tif (value$1 !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value$1 != null) search += \"=\" + value$1;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/injectionSymbols.ts\n/**\n* RouteRecord being rendered by the closest ancestor Router View. Used for\n* `onBeforeRouteUpdate` and `onBeforeRouteLeave`. rvlm stands for Router View\n* Location Matched\n*\n* @internal\n*/\nconst matchedRouteKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location matched\" : \"\");\n/**\n* Allows overriding the router view depth to control which component in\n* `matched` is rendered. rvd stands for Router View Depth\n*\n* @internal\n*/\nconst viewDepthKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view depth\" : \"\");\n/**\n* Allows overriding the router instance returned by `useRouter` in tests. r\n* stands for router\n*\n* @internal\n*/\nconst routerKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router\" : \"\");\n/**\n* Allows overriding the current route returned by `useRoute` in tests. rl\n* stands for route location\n*\n* @internal\n*/\nconst routeLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"route location\" : \"\");\n/**\n* Allows overriding the current route used by router-view. Internally this is\n* used when the `route` prop is passed.\n*\n* @internal\n*/\nconst routerViewLocationKey = Symbol(process.env.NODE_ENV !== \"production\" ? \"router view location\" : \"\");\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(record, name, guard) {\n\tconst removeFromList = () => {\n\t\trecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\trecord[name].add(guard);\n\t});\n\trecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteLeave()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tconst activeRecord = inject(matchedRouteKey, {}).value;\n\tif (!activeRecord) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(\"No active route record was found when calling `onBeforeRouteUpdate()`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?\");\n\t\treturn;\n\t}\n\tregisterGuard(activeRecord, \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tif (typeof api.now !== \"function\") warn$1(\"[Vue Router]: You seem to be using an outdated version of Vue Devtools. Are you still using the Beta release instead of the stable one? You can find the links at https://devtools.vuejs.org/guide/installation.html.\");\n\t\tapi.on.inspectComponent((payload, ctx) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route$1) => route$1.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { isBrowser as $, START as A, stringifyURL as B, computeScrollPosition as C, scrollToPosition as D, saveScrollPosition as E, isSameRouteLocation as F, encodePath as G, decode as H, isSameRouteLocationParams as I, assign as J, warn$1 as K, isSameRouteRecord as L, normalizeBase as M, NEW_stringifyURL as N, NavigationDirection as O, START_LOCATION_NORMALIZED as P, noop as Q, parseURL as R, isRouteName as S, getScrollKey as T, encodeHash as U, stripBase as V, encodeParam as W, isArray as X, identityFn as Y, mergeOptions as Z, ErrorTypes as _, loadRouteLocation as a, isNavigationFailure as b, useCallbacks as c, routerKey as d, routerViewLocationKey as f, stringifyQuery as g, parseQuery as h, guardToPromiseFn as i, createHref as j, NavigationType as k, matchedRouteKey as l, normalizeQuery as m, extractChangingRecords as n, onBeforeRouteLeave as o, viewDepthKey as p, applyToParams as q, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, routeLocationKey as u, NavigationFailureType as v, getSavedScrollPosition as w, isRouteLocation as x, createRouterError as y, resolveRelativePath as z };","/*!\n * vue-router v4.6.4\n * (c) 2025 Eduardo San Martin Morote\n * @license MIT\n */\nimport { $ as isBrowser, A as START, B as stringifyURL, C as computeScrollPosition, D as scrollToPosition, E as saveScrollPosition, F as isSameRouteLocation, H as decode, I as isSameRouteLocationParams, J as assign, K as warn$1, L as isSameRouteRecord, M as normalizeBase, O as NavigationDirection, P as START_LOCATION_NORMALIZED, Q as noop, R as parseURL, S as isRouteName, T as getScrollKey, U as encodeHash, V as stripBase, W as encodeParam, X as isArray, Z as mergeOptions, _ as ErrorTypes, a as loadRouteLocation, b as isNavigationFailure, c as useCallbacks, d as routerKey, f as routerViewLocationKey, g as stringifyQuery, h as parseQuery, i as guardToPromiseFn, j as createHref, k as NavigationType, l as matchedRouteKey, m as normalizeQuery, n as extractChangingRecords, o as onBeforeRouteLeave, p as viewDepthKey, q as applyToParams, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as routeLocationKey, v as NavigationFailureType, w as getSavedScrollPosition, x as isRouteLocation, y as createRouterError } from \"./devtools-EWN81iOl.mjs\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location$1) {\n\tconst { pathname, search, hash } = location$1;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history: history$1 } = window;\n\t\t\tif (!history$1.state) return;\n\t\t\thistory$1.replaceState(assign({}, history$1.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history: history$1, location: location$1 } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location$1) };\n\tconst historyState = { value: history$1.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history$1.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace$1) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location$1.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory$1[replace$1 ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation$1[replace$1 ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history$1.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history$1.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history$1.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location$1, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location$1, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType$1) {\n\tTokenType$1[TokenType$1[\"Static\"] = 0] = \"Static\";\n\tTokenType$1[TokenType$1[\"Param\"] = 1] = \"Param\";\n\tTokenType$1[TokenType$1[\"Group\"] = 2] = \"Group\";\n\treturn TokenType$1;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState$1) {\n\tTokenizerState$1[TokenizerState$1[\"Static\"] = 0] = \"Static\";\n\tTokenizerState$1[TokenizerState$1[\"Param\"] = 1] = \"Param\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState$1[TokenizerState$1[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState$1[TokenizerState$1[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState$1;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore$1) {\n\tPathScore$1[PathScore$1[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore$1[PathScore$1[\"Root\"] = 90] = \"Root\";\n\tPathScore$1[PathScore$1[\"Segment\"] = 40] = \"Segment\";\n\tPathScore$1[PathScore$1[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore$1[PathScore$1[\"Static\"] = 40] = \"Static\";\n\tPathScore$1[PathScore$1[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore$1[PathScore$1[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore$1[PathScore$1[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore$1[PathScore$1[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore$1[PathScore$1[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore$1[PathScore$1[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore$1[PathScore$1[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore$1;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re$1 = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re$1 !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\t`${re$1}`;\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re$1}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re$1})(?:/(?:${re$1}))*)` : `(${re$1})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re$1 === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location$1, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location$1 && location$1.name) {\n\t\t\tmatcher = matcherMap.get(location$1.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location: location$1 });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location$1.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location$1.params && pickParams(location$1.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location$1.path != null) {\n\t\t\tpath = location$1.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation: location$1,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location$1.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name and an empty path. Using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to remove the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\\n \\n \\n`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute$1 = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href$1 = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href$1.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href$1}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute$1.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute$1, {\n\t\t\t\tparams: decodeParams(matchedRoute$1.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref: href$1\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace$1 = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace: replace$1\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure$1) => {\n\t\t\tif (failure$1) {\n\t\t\t\tif (isNavigationFailure(failure$1, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure$1.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace: replace$1 }, locationAsObject(failure$1.to), {\n\t\t\t\t\t\tstate: typeof failure$1.to === \"object\" ? assign({}, data, failure$1.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure$1 = finalizeNavigation(toLocation, from, true, replace$1, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure$1);\n\t\t\treturn failure$1;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace$1, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace$1 || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve$1, reject) => {\n\t\t\treadyHandlers.add([resolve$1, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve$1, reject]) => err ? reject(err) : resolve$1());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\n//#region src/useApi.ts\n/**\n* Returns the router instance. Equivalent to using `$router` inside\n* templates.\n*/\nfunction useRouter() {\n\treturn inject(routerKey);\n}\n/**\n* Returns the current route location. Equivalent to using `$route` inside\n* templates.\n*/\nfunction useRoute(_name) {\n\treturn inject(routeLocationKey);\n}\n\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };","/*!\n * vue-router v5.0.2\n * (c) 2026 Eduardo San Martin Morote\n * @license MIT\n */\nimport { _ as isRouteComponent, b as isBrowser, c as ErrorTypes, g as isESModule, h as isArray, p as assign, r as matchedRouteKey, u as createRouterError } from \"./useApi-o-nPpLEi.mjs\";\nimport { getCurrentInstance, inject, onActivated, onDeactivated, onUnmounted, watch } from \"vue\";\nimport { setupDevtoolsPlugin } from \"@vue/devtools-api\";\n\n//#region src/warning.ts\nfunction warn$1(msg) {\n\tconst args = Array.from(arguments).slice(1);\n\tconsole.warn.apply(console, [\"[Vue Router warn]: \" + msg].concat(args));\n}\n\n//#endregion\n//#region src/encoding.ts\n/**\n* Encoding Rules (␣ = Space)\n* - Path: ␣ \" < > # ? { }\n* - Query: ␣ \" < > # & =\n* - Hash: ␣ \" < > `\n*\n* On top of that, the RFC3986 (https://tools.ietf.org/html/rfc3986#section-2.2)\n* defines some extra characters to be encoded. Most browsers do not encode them\n* in encodeURI https://github.com/whatwg/url/issues/369, so it may be safer to\n* also encode `!'()*`. Leaving un-encoded only ASCII alphanumeric(`a-zA-Z0-9`)\n* plus `-._~`. This extra safety should be applied to query by patching the\n* string returned by encodeURIComponent encodeURI also encodes `[\\]^`. `\\`\n* should be encoded to avoid ambiguity. Browsers (IE, FF, C) transform a `\\`\n* into a `/` if directly typed in. The _backtick_ (`````) should also be\n* encoded everywhere because some browsers like FF encode it when directly\n* written while others don't. Safari and IE don't encode ``\"<>{}``` in hash.\n*/\nconst HASH_RE = /#/g;\nconst AMPERSAND_RE = /&/g;\nconst SLASH_RE = /\\//g;\nconst EQUAL_RE = /=/g;\nconst IM_RE = /\\?/g;\nconst PLUS_RE = /\\+/g;\n/**\n* NOTE: It's not clear to me if we should encode the + symbol in queries, it\n* seems to be less flexible than not doing so and I can't find out the legacy\n* systems requiring this for regular requests like text/html. In the standard,\n* the encoding of the plus character is only mentioned for\n* application/x-www-form-urlencoded\n* (https://url.spec.whatwg.org/#urlencoded-parsing) and most browsers seems lo\n* leave the plus character as is in queries. To be more flexible, we allow the\n* plus character on the query, but it can also be manually encoded by the user.\n*\n* Resources:\n* - https://url.spec.whatwg.org/#urlencoded-parsing\n* - https://stackoverflow.com/questions/1634271/url-encoding-the-space-character-or-20\n*/\nconst ENC_BRACKET_OPEN_RE = /%5B/g;\nconst ENC_BRACKET_CLOSE_RE = /%5D/g;\nconst ENC_CARET_RE = /%5E/g;\nconst ENC_BACKTICK_RE = /%60/g;\nconst ENC_CURLY_OPEN_RE = /%7B/g;\nconst ENC_PIPE_RE = /%7C/g;\nconst ENC_CURLY_CLOSE_RE = /%7D/g;\nconst ENC_SPACE_RE = /%20/g;\n/**\n* Encode characters that need to be encoded on the path, search and hash\n* sections of the URL.\n*\n* @internal\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction commonEncode(text) {\n\treturn text == null ? \"\" : encodeURI(\"\" + text).replace(ENC_PIPE_RE, \"|\").replace(ENC_BRACKET_OPEN_RE, \"[\").replace(ENC_BRACKET_CLOSE_RE, \"]\");\n}\n/**\n* Encode characters that need to be encoded on the hash section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeHash(text) {\n\treturn commonEncode(text).replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Encode characters that need to be encoded query values on the query\n* section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeQueryValue(text) {\n\treturn commonEncode(text).replace(PLUS_RE, \"%2B\").replace(ENC_SPACE_RE, \"+\").replace(HASH_RE, \"%23\").replace(AMPERSAND_RE, \"%26\").replace(ENC_BACKTICK_RE, \"`\").replace(ENC_CURLY_OPEN_RE, \"{\").replace(ENC_CURLY_CLOSE_RE, \"}\").replace(ENC_CARET_RE, \"^\");\n}\n/**\n* Like `encodeQueryValue` but also encodes the `=` character.\n*\n* @param text - string to encode\n*/\nfunction encodeQueryKey(text) {\n\treturn encodeQueryValue(text).replace(EQUAL_RE, \"%3D\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodePath(text) {\n\treturn commonEncode(text).replace(HASH_RE, \"%23\").replace(IM_RE, \"%3F\");\n}\n/**\n* Encode characters that need to be encoded on the path section of the URL as a\n* param. This function encodes everything {@link encodePath} does plus the\n* slash (`/`) character. If `text` is `null` or `undefined`, returns an empty\n* string instead.\n*\n* @param text - string to encode\n* @returns encoded string\n*/\nfunction encodeParam(text) {\n\treturn encodePath(text).replace(SLASH_RE, \"%2F\");\n}\nfunction decode(text) {\n\tif (text == null) return null;\n\ttry {\n\t\treturn decodeURIComponent(\"\" + text);\n\t} catch (err) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Error decoding \"${text}\". Using original value`);\n\t}\n\treturn \"\" + text;\n}\n\n//#endregion\n//#region src/location.ts\nconst TRAILING_SLASH_RE = /\\/$/;\nconst removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, \"\");\n/**\n* Transforms a URI into a normalized history location\n*\n* @param parseQuery\n* @param location - URI to normalize\n* @param currentLocation - current absolute location. Allows resolving relative\n* paths. Must start with `/`. Defaults to `/`\n* @returns a normalized history location\n*/\nfunction parseURL(parseQuery, location, currentLocation = \"/\") {\n\tlet path, query = {}, searchString = \"\", hash = \"\";\n\tconst hashPos = location.indexOf(\"#\");\n\tlet searchPos = location.indexOf(\"?\");\n\tsearchPos = hashPos >= 0 && searchPos > hashPos ? -1 : searchPos;\n\tif (searchPos >= 0) {\n\t\tpath = location.slice(0, searchPos);\n\t\tsearchString = location.slice(searchPos, hashPos > 0 ? hashPos : location.length);\n\t\tquery = parseQuery(searchString.slice(1));\n\t}\n\tif (hashPos >= 0) {\n\t\tpath = path || location.slice(0, hashPos);\n\t\thash = location.slice(hashPos, location.length);\n\t}\n\tpath = resolveRelativePath(path != null ? path : location, currentLocation);\n\treturn {\n\t\tfullPath: path + searchString + hash,\n\t\tpath,\n\t\tquery,\n\t\thash: decode(hash)\n\t};\n}\nfunction NEW_stringifyURL(stringifyQuery, path, query, hash = \"\") {\n\tconst searchText = stringifyQuery(query);\n\treturn path + (searchText && \"?\") + searchText + encodeHash(hash);\n}\n/**\n* Stringifies a URL object\n*\n* @param stringifyQuery\n* @param location\n*/\nfunction stringifyURL(stringifyQuery, location) {\n\tconst query = location.query ? stringifyQuery(location.query) : \"\";\n\treturn location.path + (query && \"?\") + query + (location.hash || \"\");\n}\n/**\n* Strips off the base from the beginning of a location.pathname in a non-case-sensitive way.\n*\n* @param pathname - location.pathname\n* @param base - base to strip off\n*/\nfunction stripBase(pathname, base) {\n\tif (!base || !pathname.toLowerCase().startsWith(base.toLowerCase())) return pathname;\n\treturn pathname.slice(base.length) || \"/\";\n}\n/**\n* Checks if two RouteLocation are equal. This means that both locations are\n* pointing towards the same {@link RouteRecord} and that all `params`, `query`\n* parameters and `hash` are the same\n*\n* @param stringifyQuery - A function that takes a query object of type LocationQueryRaw and returns a string representation of it.\n* @param a - first {@link RouteLocation}\n* @param b - second {@link RouteLocation}\n*/\nfunction isSameRouteLocation(stringifyQuery, a, b) {\n\tconst aLastIndex = a.matched.length - 1;\n\tconst bLastIndex = b.matched.length - 1;\n\treturn aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery(a.query) === stringifyQuery(b.query) && a.hash === b.hash;\n}\n/**\n* Check if two `RouteRecords` are equal. Takes into account aliases: they are\n* considered equal to the `RouteRecord` they are aliasing.\n*\n* @param a - first {@link RouteRecord}\n* @param b - second {@link RouteRecord}\n*/\nfunction isSameRouteRecord(a, b) {\n\treturn (a.aliasOf || a) === (b.aliasOf || b);\n}\nfunction isSameRouteLocationParams(a, b) {\n\tif (Object.keys(a).length !== Object.keys(b).length) return false;\n\tfor (var key in a) if (!isSameRouteLocationParamsValue(a[key], b[key])) return false;\n\treturn true;\n}\nfunction isSameRouteLocationParamsValue(a, b) {\n\treturn isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : (a && a.valueOf()) === (b && b.valueOf());\n}\n/**\n* Check if two arrays are the same or if an array with one single entry is the\n* same as another primitive value. Used to check query and parameters\n*\n* @param a - array of values\n* @param b - array of values or a single value\n*/\nfunction isEquivalentArray(a, b) {\n\treturn isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;\n}\n/**\n* Resolves a relative path that starts with `.`.\n*\n* @param to - path location we are resolving\n* @param from - currentLocation.path, should start with `/`\n*/\nfunction resolveRelativePath(to, from) {\n\tif (to.startsWith(\"/\")) return to;\n\tif (process.env.NODE_ENV !== \"production\" && !from.startsWith(\"/\")) {\n\t\twarn$1(`Cannot resolve a relative location without an absolute path. Trying to resolve \"${to}\" from \"${from}\". It should look like \"/${from}\".`);\n\t\treturn to;\n\t}\n\tif (!to) return from;\n\tconst fromSegments = from.split(\"/\");\n\tconst toSegments = to.split(\"/\");\n\tconst lastToSegment = toSegments[toSegments.length - 1];\n\tif (lastToSegment === \"..\" || lastToSegment === \".\") toSegments.push(\"\");\n\tlet position = fromSegments.length - 1;\n\tlet toPosition;\n\tlet segment;\n\tfor (toPosition = 0; toPosition < toSegments.length; toPosition++) {\n\t\tsegment = toSegments[toPosition];\n\t\tif (segment === \".\") continue;\n\t\tif (segment === \"..\") {\n\t\t\tif (position > 1) position--;\n\t\t} else break;\n\t}\n\treturn fromSegments.slice(0, position).join(\"/\") + \"/\" + toSegments.slice(toPosition).join(\"/\");\n}\n/**\n* Initial route location where the router is. Can be used in navigation guards\n* to differentiate the initial navigation.\n*\n* @example\n* ```js\n* import { START_LOCATION } from 'vue-router'\n*\n* router.beforeEach((to, from) => {\n* if (from === START_LOCATION) {\n* // initial navigation\n* }\n* })\n* ```\n*/\nconst START_LOCATION_NORMALIZED = {\n\tpath: \"/\",\n\tname: void 0,\n\tparams: {},\n\tquery: {},\n\thash: \"\",\n\tfullPath: \"/\",\n\tmatched: [],\n\tmeta: {},\n\tredirectedFrom: void 0\n};\n\n//#endregion\n//#region src/history/common.ts\nlet NavigationType = /* @__PURE__ */ function(NavigationType) {\n\tNavigationType[\"pop\"] = \"pop\";\n\tNavigationType[\"push\"] = \"push\";\n\treturn NavigationType;\n}({});\nlet NavigationDirection = /* @__PURE__ */ function(NavigationDirection) {\n\tNavigationDirection[\"back\"] = \"back\";\n\tNavigationDirection[\"forward\"] = \"forward\";\n\tNavigationDirection[\"unknown\"] = \"\";\n\treturn NavigationDirection;\n}({});\n/**\n* Starting location for Histories\n*/\nconst START = \"\";\n/**\n* Normalizes a base by removing any trailing slash and reading the base tag if\n* present.\n*\n* @param base - base to normalize\n*/\nfunction normalizeBase(base) {\n\tif (!base) if (isBrowser) {\n\t\tconst baseEl = document.querySelector(\"base\");\n\t\tbase = baseEl && baseEl.getAttribute(\"href\") || \"/\";\n\t\tbase = base.replace(/^\\w+:\\/\\/[^\\/]+/, \"\");\n\t} else base = \"/\";\n\tif (base[0] !== \"/\" && base[0] !== \"#\") base = \"/\" + base;\n\treturn removeTrailingSlash(base);\n}\nconst BEFORE_HASH_RE = /^[^#]+#/;\nfunction createHref(base, location) {\n\treturn base.replace(BEFORE_HASH_RE, \"#\") + location;\n}\n\n//#endregion\n//#region src/scrollBehavior.ts\nfunction getElementPosition(el, offset) {\n\tconst docRect = document.documentElement.getBoundingClientRect();\n\tconst elRect = el.getBoundingClientRect();\n\treturn {\n\t\tbehavior: offset.behavior,\n\t\tleft: elRect.left - docRect.left - (offset.left || 0),\n\t\ttop: elRect.top - docRect.top - (offset.top || 0)\n\t};\n}\nconst computeScrollPosition = () => ({\n\tleft: window.scrollX,\n\ttop: window.scrollY\n});\nfunction scrollToPosition(position) {\n\tlet scrollToOptions;\n\tif (\"el\" in position) {\n\t\tconst positionEl = position.el;\n\t\tconst isIdSelector = typeof positionEl === \"string\" && positionEl.startsWith(\"#\");\n\t\t/**\n\t\t* `id`s can accept pretty much any characters, including CSS combinators\n\t\t* like `>` or `~`. It's still possible to retrieve elements using\n\t\t* `document.getElementById('~')` but it needs to be escaped when using\n\t\t* `document.querySelector('#\\\\~')` for it to be valid. The only\n\t\t* requirements for `id`s are them to be unique on the page and to not be\n\t\t* empty (`id=\"\"`). Because of that, when passing an id selector, it should\n\t\t* be properly escaped for it to work with `querySelector`. We could check\n\t\t* for the id selector to be simple (no CSS combinators `+ >~`) but that\n\t\t* would make things inconsistent since they are valid characters for an\n\t\t* `id` but would need to be escaped when using `querySelector`, breaking\n\t\t* their usage and ending up in no selector returned. Selectors need to be\n\t\t* escaped:\n\t\t*\n\t\t* - `#1-thing` becomes `#\\31 -thing`\n\t\t* - `#with~symbols` becomes `#with\\\\~symbols`\n\t\t*\n\t\t* - More information about the topic can be found at\n\t\t* https://mathiasbynens.be/notes/html5-id-class.\n\t\t* - Practical example: https://mathiasbynens.be/demo/html5-id\n\t\t*/\n\t\tif (process.env.NODE_ENV !== \"production\" && typeof position.el === \"string\") {\n\t\t\tif (!isIdSelector || !document.getElementById(position.el.slice(1))) try {\n\t\t\t\tconst foundEl = document.querySelector(position.el);\n\t\t\t\tif (isIdSelector && foundEl) {\n\t\t\t\t\twarn$1(`The selector \"${position.el}\" should be passed as \"el: document.querySelector('${position.el}')\" because it starts with \"#\".`);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\twarn$1(`The selector \"${position.el}\" is invalid. If you are using an id selector, make sure to escape it. You can find more information about escaping characters in selectors at https://mathiasbynens.be/notes/css-escapes or use CSS.escape (https://developer.mozilla.org/en-US/docs/Web/API/CSS/escape).`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tconst el = typeof positionEl === \"string\" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;\n\t\tif (!el) {\n\t\t\tprocess.env.NODE_ENV !== \"production\" && warn$1(`Couldn't find element using selector \"${position.el}\" returned by scrollBehavior.`);\n\t\t\treturn;\n\t\t}\n\t\tscrollToOptions = getElementPosition(el, position);\n\t} else scrollToOptions = position;\n\tif (\"scrollBehavior\" in document.documentElement.style) window.scrollTo(scrollToOptions);\n\telse window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.scrollX, scrollToOptions.top != null ? scrollToOptions.top : window.scrollY);\n}\nfunction getScrollKey(path, delta) {\n\treturn (history.state ? history.state.position - delta : -1) + path;\n}\nconst scrollPositions = /* @__PURE__ */ new Map();\nfunction saveScrollPosition(key, scrollPosition) {\n\tscrollPositions.set(key, scrollPosition);\n}\nfunction getSavedScrollPosition(key) {\n\tconst scroll = scrollPositions.get(key);\n\tscrollPositions.delete(key);\n\treturn scroll;\n}\n/**\n* ScrollBehavior instance used by the router to compute and restore the scroll\n* position when navigating.\n*/\n\n//#endregion\n//#region src/types/typeGuards.ts\nfunction isRouteLocation(route) {\n\treturn typeof route === \"string\" || route && typeof route === \"object\";\n}\nfunction isRouteName(name) {\n\treturn typeof name === \"string\" || typeof name === \"symbol\";\n}\n\n//#endregion\n//#region src/query.ts\n/**\n* Transforms a queryString into a {@link LocationQuery} object. Accept both, a\n* version with the leading `?` and without Should work as URLSearchParams\n\n* @internal\n*\n* @param search - search string to parse\n* @returns a query object\n*/\nfunction parseQuery(search) {\n\tconst query = {};\n\tif (search === \"\" || search === \"?\") return query;\n\tconst searchParams = (search[0] === \"?\" ? search.slice(1) : search).split(\"&\");\n\tfor (let i = 0; i < searchParams.length; ++i) {\n\t\tconst searchParam = searchParams[i].replace(PLUS_RE, \" \");\n\t\tconst eqPos = searchParam.indexOf(\"=\");\n\t\tconst key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));\n\t\tconst value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));\n\t\tif (key in query) {\n\t\t\tlet currentValue = query[key];\n\t\t\tif (!isArray(currentValue)) currentValue = query[key] = [currentValue];\n\t\t\tcurrentValue.push(value);\n\t\t} else query[key] = value;\n\t}\n\treturn query;\n}\n/**\n* Stringifies a {@link LocationQueryRaw} object. Like `URLSearchParams`, it\n* doesn't prepend a `?`\n*\n* @internal\n*\n* @param query - query object to stringify\n* @returns string version of the query without the leading `?`\n*/\nfunction stringifyQuery(query) {\n\tlet search = \"\";\n\tfor (let key in query) {\n\t\tconst value = query[key];\n\t\tkey = encodeQueryKey(key);\n\t\tif (value == null) {\n\t\t\tif (value !== void 0) search += (search.length ? \"&\" : \"\") + key;\n\t\t\tcontinue;\n\t\t}\n\t\t(isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)]).forEach((value) => {\n\t\t\tif (value !== void 0) {\n\t\t\t\tsearch += (search.length ? \"&\" : \"\") + key;\n\t\t\t\tif (value != null) search += \"=\" + value;\n\t\t\t}\n\t\t});\n\t}\n\treturn search;\n}\n/**\n* Transforms a {@link LocationQueryRaw} into a {@link LocationQuery} by casting\n* numbers into strings, removing keys with an undefined value and replacing\n* undefined with null in arrays\n*\n* @param query - query object to normalize\n* @returns a normalized query object\n*/\nfunction normalizeQuery(query) {\n\tconst normalizedQuery = {};\n\tfor (const key in query) {\n\t\tconst value = query[key];\n\t\tif (value !== void 0) normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : \"\" + v) : value == null ? value : \"\" + value;\n\t}\n\treturn normalizedQuery;\n}\n\n//#endregion\n//#region src/utils/callbacks.ts\n/**\n* Create a list of callbacks that can be reset. Used to create before and after navigation guards list\n*/\nfunction useCallbacks() {\n\tlet handlers = [];\n\tfunction add(handler) {\n\t\thandlers.push(handler);\n\t\treturn () => {\n\t\t\tconst i = handlers.indexOf(handler);\n\t\t\tif (i > -1) handlers.splice(i, 1);\n\t\t};\n\t}\n\tfunction reset() {\n\t\thandlers = [];\n\t}\n\treturn {\n\t\tadd,\n\t\tlist: () => handlers.slice(),\n\t\treset\n\t};\n}\n\n//#endregion\n//#region src/navigationGuards.ts\nfunction registerGuard(activeRecordRef, name, guard) {\n\tconst record = activeRecordRef.value;\n\tif (!record) {\n\t\tif (process.env.NODE_ENV !== \"production\") warn$1(`No active route record was found when calling \\`${name === \"updateGuards\" ? \"onBeforeRouteUpdate\" : \"onBeforeRouteLeave\"}()\\`. Make sure you call this function inside a component child of . Maybe you called it inside of App.vue?`);\n\t\treturn;\n\t}\n\tlet currentRecord = record;\n\tconst removeFromList = () => {\n\t\tcurrentRecord[name].delete(guard);\n\t};\n\tonUnmounted(removeFromList);\n\tonDeactivated(removeFromList);\n\tonActivated(() => {\n\t\tconst newRecord = activeRecordRef.value;\n\t\tif (process.env.NODE_ENV !== \"production\" && !newRecord) warn$1(\"No active route record was found when reactivating component with navigation guard. This is likely a bug in vue-router. Please report it.\");\n\t\tif (newRecord) currentRecord = newRecord;\n\t\tcurrentRecord[name].add(guard);\n\t});\n\tcurrentRecord[name].add(guard);\n}\n/**\n* Add a navigation guard that triggers whenever the component for the current\n* location is about to be left. Similar to {@link beforeRouteLeave} but can be\n* used in any component. The guard is removed when the component is unmounted.\n*\n* @param leaveGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteLeave(leaveGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteLeave() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"leaveGuards\", leaveGuard);\n}\n/**\n* Add a navigation guard that triggers whenever the current location is about\n* to be updated. Similar to {@link beforeRouteUpdate} but can be used in any\n* component. The guard is removed when the component is unmounted.\n*\n* @param updateGuard - {@link NavigationGuard}\n*/\nfunction onBeforeRouteUpdate(updateGuard) {\n\tif (process.env.NODE_ENV !== \"production\" && !getCurrentInstance()) {\n\t\twarn$1(\"getCurrentInstance() returned null. onBeforeRouteUpdate() must be called at the top of a setup function\");\n\t\treturn;\n\t}\n\tregisterGuard(inject(matchedRouteKey, {}), \"updateGuards\", updateGuard);\n}\nfunction guardToPromiseFn(guard, to, from, record, name, runWithContext = (fn) => fn()) {\n\tconst enterCallbackArray = record && (record.enterCallbacks[name] = record.enterCallbacks[name] || []);\n\treturn () => new Promise((resolve, reject) => {\n\t\tconst next = (valid) => {\n\t\t\tif (valid === false) reject(createRouterError(ErrorTypes.NAVIGATION_ABORTED, {\n\t\t\t\tfrom,\n\t\t\t\tto\n\t\t\t}));\n\t\t\telse if (valid instanceof Error) reject(valid);\n\t\t\telse if (isRouteLocation(valid)) reject(createRouterError(ErrorTypes.NAVIGATION_GUARD_REDIRECT, {\n\t\t\t\tfrom: to,\n\t\t\t\tto: valid\n\t\t\t}));\n\t\t\telse {\n\t\t\t\tif (enterCallbackArray && record.enterCallbacks[name] === enterCallbackArray && typeof valid === \"function\") enterCallbackArray.push(valid);\n\t\t\t\tresolve();\n\t\t\t}\n\t\t};\n\t\tconst guardReturn = runWithContext(() => guard.call(record && record.instances[name], to, from, process.env.NODE_ENV !== \"production\" ? canOnlyBeCalledOnce(next, to, from) : next));\n\t\tlet guardCall = Promise.resolve(guardReturn);\n\t\tif (guard.length < 3) guardCall = guardCall.then(next);\n\t\tif (process.env.NODE_ENV !== \"production\" && guard.length > 2) {\n\t\t\tconst message = `The \"next\" callback was never called inside of ${guard.name ? \"\\\"\" + guard.name + \"\\\"\" : \"\"}:\\n${guard.toString()}\\n. If you are returning a value instead of calling \"next\", make sure to remove the \"next\" parameter from your function.`;\n\t\t\tif (typeof guardReturn === \"object\" && \"then\" in guardReturn) guardCall = guardCall.then((resolvedValue) => {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t}\n\t\t\t\treturn resolvedValue;\n\t\t\t});\n\t\t\telse if (guardReturn !== void 0) {\n\t\t\t\tif (!next._called) {\n\t\t\t\t\twarn$1(message);\n\t\t\t\t\treject(/* @__PURE__ */ new Error(\"Invalid navigation guard\"));\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tguardCall.catch((err) => reject(err));\n\t});\n}\nfunction canOnlyBeCalledOnce(next, to, from) {\n\tlet called = 0;\n\treturn function() {\n\t\tif (called++ === 1) warn$1(`The \"next\" callback was called more than once in one navigation guard when going from \"${from.fullPath}\" to \"${to.fullPath}\". It should be called exactly one time in each navigation guard. This will fail in production.`);\n\t\tnext._called = true;\n\t\tif (called === 1) next.apply(null, arguments);\n\t};\n}\nfunction extractComponentsGuards(matched, guardType, to, from, runWithContext = (fn) => fn()) {\n\tconst guards = [];\n\tfor (const record of matched) {\n\t\tif (process.env.NODE_ENV !== \"production\" && !record.components && record.children && !record.children.length) warn$1(`Record with path \"${record.path}\" is either missing a \"component(s)\" or \"children\" property.`);\n\t\tfor (const name in record.components) {\n\t\t\tlet rawComponent = record.components[name];\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (!rawComponent || typeof rawComponent !== \"object\" && typeof rawComponent !== \"function\") {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is not a valid component. Received \"${String(rawComponent)}\".`);\n\t\t\t\t\tthrow new Error(\"Invalid route component\");\n\t\t\t\t} else if (\"then\" in rawComponent) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a Promise instead of a function that returns a Promise. Did you write \"import('./MyPage.vue')\" instead of \"() => import('./MyPage.vue')\" ? This will break in production if not fixed.`);\n\t\t\t\t\tconst promise = rawComponent;\n\t\t\t\t\trawComponent = () => promise;\n\t\t\t\t} else if (rawComponent.__asyncLoader && !rawComponent.__warnedDefineAsync) {\n\t\t\t\t\trawComponent.__warnedDefineAsync = true;\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is defined using \"defineAsyncComponent()\". Write \"() => import('./MyPage.vue')\" instead of \"defineAsyncComponent(() => import('./MyPage.vue'))\".`);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (guardType !== \"beforeRouteEnter\" && !record.instances[name]) continue;\n\t\t\tif (isRouteComponent(rawComponent)) {\n\t\t\t\tconst guard = (rawComponent.__vccOpts || rawComponent)[guardType];\n\t\t\t\tguard && guards.push(guardToPromiseFn(guard, to, from, record, name, runWithContext));\n\t\t\t} else {\n\t\t\t\tlet componentPromise = rawComponent();\n\t\t\t\tif (process.env.NODE_ENV !== \"production\" && !(\"catch\" in componentPromise)) {\n\t\t\t\t\twarn$1(`Component \"${name}\" in record with path \"${record.path}\" is a function that does not return a Promise. If you were passing a functional component, make sure to add a \"displayName\" to the component. This will break in production if not fixed.`);\n\t\t\t\t\tcomponentPromise = Promise.resolve(componentPromise);\n\t\t\t\t}\n\t\t\t\tguards.push(() => componentPromise.then((resolved) => {\n\t\t\t\t\tif (!resolved) throw new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\"`);\n\t\t\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\t\t\trecord.mods[name] = resolved;\n\t\t\t\t\trecord.components[name] = resolvedComponent;\n\t\t\t\t\tconst guard = (resolvedComponent.__vccOpts || resolvedComponent)[guardType];\n\t\t\t\t\treturn guard && guardToPromiseFn(guard, to, from, record, name, runWithContext)();\n\t\t\t\t}));\n\t\t\t}\n\t\t}\n\t}\n\treturn guards;\n}\n/**\n* Ensures a route is loaded, so it can be passed as o prop to ``.\n*\n* @param route - resolved route to load\n*/\nfunction loadRouteLocation(route) {\n\treturn route.matched.every((record) => record.redirect) ? Promise.reject(/* @__PURE__ */ new Error(\"Cannot load a route that redirects.\")) : Promise.all(route.matched.map((record) => record.components && Promise.all(Object.keys(record.components).reduce((promises, name) => {\n\t\tconst rawComponent = record.components[name];\n\t\tif (typeof rawComponent === \"function\" && !(\"displayName\" in rawComponent)) promises.push(rawComponent().then((resolved) => {\n\t\t\tif (!resolved) return Promise.reject(/* @__PURE__ */ new Error(`Couldn't resolve component \"${name}\" at \"${record.path}\". Ensure you passed a function that returns a promise.`));\n\t\t\tconst resolvedComponent = isESModule(resolved) ? resolved.default : resolved;\n\t\t\trecord.mods[name] = resolved;\n\t\t\trecord.components[name] = resolvedComponent;\n\t\t}));\n\t\treturn promises;\n\t}, [])))).then(() => route);\n}\n/**\n* Split the leaving, updating, and entering records.\n* @internal\n*\n* @param to - Location we are navigating to\n* @param from - Location we are navigating from\n*/\nfunction extractChangingRecords(to, from) {\n\tconst leavingRecords = [];\n\tconst updatingRecords = [];\n\tconst enteringRecords = [];\n\tconst len = Math.max(from.matched.length, to.matched.length);\n\tfor (let i = 0; i < len; i++) {\n\t\tconst recordFrom = from.matched[i];\n\t\tif (recordFrom) if (to.matched.find((record) => isSameRouteRecord(record, recordFrom))) updatingRecords.push(recordFrom);\n\t\telse leavingRecords.push(recordFrom);\n\t\tconst recordTo = to.matched[i];\n\t\tif (recordTo) {\n\t\t\tif (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) enteringRecords.push(recordTo);\n\t\t}\n\t}\n\treturn [\n\t\tleavingRecords,\n\t\tupdatingRecords,\n\t\tenteringRecords\n\t];\n}\n\n//#endregion\n//#region src/devtools.ts\n/**\n* Copies a route location and removes any problematic properties that cannot be shown in devtools (e.g. Vue instances).\n*\n* @param routeLocation - routeLocation to format\n* @param tooltip - optional tooltip\n* @returns a copy of the routeLocation\n*/\nfunction formatRouteLocation(routeLocation, tooltip) {\n\tconst copy = assign({}, routeLocation, { matched: routeLocation.matched.map((matched) => omit(matched, [\n\t\t\"instances\",\n\t\t\"children\",\n\t\t\"aliasOf\"\n\t])) });\n\treturn { _custom: {\n\t\ttype: null,\n\t\treadOnly: true,\n\t\tdisplay: routeLocation.fullPath,\n\t\ttooltip,\n\t\tvalue: copy\n\t} };\n}\nfunction formatDisplay(display) {\n\treturn { _custom: { display } };\n}\nlet routerId = 0;\nfunction addDevtools(app, router, matcher) {\n\tif (router.__hasDevtools) return;\n\trouter.__hasDevtools = true;\n\tconst id = routerId++;\n\tsetupDevtoolsPlugin({\n\t\tid: \"org.vuejs.router\" + (id ? \".\" + id : \"\"),\n\t\tlabel: \"Vue Router\",\n\t\tpackageName: \"vue-router\",\n\t\thomepage: \"https://router.vuejs.org\",\n\t\tlogo: \"https://router.vuejs.org/logo.png\",\n\t\tcomponentStateTypes: [\"Routing\"],\n\t\tapp\n\t}, (api) => {\n\t\tapi.on.inspectComponent((payload) => {\n\t\t\tif (payload.instanceData) payload.instanceData.state.push({\n\t\t\t\ttype: \"Routing\",\n\t\t\t\tkey: \"$route\",\n\t\t\t\teditable: false,\n\t\t\t\tvalue: formatRouteLocation(router.currentRoute.value, \"Current Route\")\n\t\t\t});\n\t\t});\n\t\tapi.on.visitComponentTree(({ treeNode: node, componentInstance }) => {\n\t\t\tif (componentInstance.__vrv_devtools) {\n\t\t\t\tconst info = componentInstance.__vrv_devtools;\n\t\t\t\tnode.tags.push({\n\t\t\t\t\tlabel: (info.name ? `${info.name.toString()}: ` : \"\") + info.path,\n\t\t\t\t\ttextColor: 0,\n\t\t\t\t\ttooltip: \"This component is rendered by <router-view>\",\n\t\t\t\t\tbackgroundColor: PINK_500\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (isArray(componentInstance.__vrl_devtools)) {\n\t\t\t\tcomponentInstance.__devtoolsApi = api;\n\t\t\t\tcomponentInstance.__vrl_devtools.forEach((devtoolsData) => {\n\t\t\t\t\tlet label = devtoolsData.route.path;\n\t\t\t\t\tlet backgroundColor = ORANGE_400;\n\t\t\t\t\tlet tooltip = \"\";\n\t\t\t\t\tlet textColor = 0;\n\t\t\t\t\tif (devtoolsData.error) {\n\t\t\t\t\t\tlabel = devtoolsData.error;\n\t\t\t\t\t\tbackgroundColor = RED_100;\n\t\t\t\t\t\ttextColor = RED_700;\n\t\t\t\t\t} else if (devtoolsData.isExactActive) {\n\t\t\t\t\t\tbackgroundColor = LIME_500;\n\t\t\t\t\t\ttooltip = \"This is exactly active\";\n\t\t\t\t\t} else if (devtoolsData.isActive) {\n\t\t\t\t\t\tbackgroundColor = BLUE_600;\n\t\t\t\t\t\ttooltip = \"This link is active\";\n\t\t\t\t\t}\n\t\t\t\t\tnode.tags.push({\n\t\t\t\t\t\tlabel,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\ttooltip,\n\t\t\t\t\t\tbackgroundColor\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\twatch(router.currentRoute, () => {\n\t\t\trefreshRoutesView();\n\t\t\tapi.notifyComponentUpdate();\n\t\t\tapi.sendInspectorTree(routerInspectorId);\n\t\t\tapi.sendInspectorState(routerInspectorId);\n\t\t});\n\t\tconst navigationsLayerId = \"router:navigations:\" + id;\n\t\tapi.addTimelineLayer({\n\t\t\tid: navigationsLayerId,\n\t\t\tlabel: `Router${id ? \" \" + id : \"\"} Navigations`,\n\t\t\tcolor: 4237508\n\t\t});\n\t\trouter.onError((error, to) => {\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"Error during Navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tlogType: \"error\",\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata: { error },\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\tlet navigationId = 0;\n\t\trouter.beforeEach((to, from) => {\n\t\t\tconst data = {\n\t\t\t\tguard: formatDisplay(\"beforeEach\"),\n\t\t\t\tfrom: formatRouteLocation(from, \"Current Location during this navigation\"),\n\t\t\t\tto: formatRouteLocation(to, \"Target location\")\n\t\t\t};\n\t\t\tObject.defineProperty(to.meta, \"__navigationId\", { value: navigationId++ });\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\ttitle: \"Start of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\tdata,\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\trouter.afterEach((to, from, failure) => {\n\t\t\tconst data = { guard: formatDisplay(\"afterEach\") };\n\t\t\tif (failure) {\n\t\t\t\tdata.failure = { _custom: {\n\t\t\t\t\ttype: Error,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tdisplay: failure ? failure.message : \"\",\n\t\t\t\t\ttooltip: \"Navigation Failure\",\n\t\t\t\t\tvalue: failure\n\t\t\t\t} };\n\t\t\t\tdata.status = formatDisplay(\"❌\");\n\t\t\t} else data.status = formatDisplay(\"✅\");\n\t\t\tdata.from = formatRouteLocation(from, \"Current Location during this navigation\");\n\t\t\tdata.to = formatRouteLocation(to, \"Target location\");\n\t\t\tapi.addTimelineEvent({\n\t\t\t\tlayerId: navigationsLayerId,\n\t\t\t\tevent: {\n\t\t\t\t\ttitle: \"End of navigation\",\n\t\t\t\t\tsubtitle: to.fullPath,\n\t\t\t\t\ttime: api.now(),\n\t\t\t\t\tdata,\n\t\t\t\t\tlogType: failure ? \"warning\" : \"default\",\n\t\t\t\t\tgroupId: to.meta.__navigationId\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\t/**\n\t\t* Inspector of Existing routes\n\t\t*/\n\t\tconst routerInspectorId = \"router-inspector:\" + id;\n\t\tapi.addInspector({\n\t\t\tid: routerInspectorId,\n\t\t\tlabel: \"Routes\" + (id ? \" \" + id : \"\"),\n\t\t\ticon: \"book\",\n\t\t\ttreeFilterPlaceholder: \"Search routes\"\n\t\t});\n\t\tfunction refreshRoutesView() {\n\t\t\tif (!activeRoutesPayload) return;\n\t\t\tconst payload = activeRoutesPayload;\n\t\t\tlet routes = matcher.getRoutes().filter((route) => !route.parent || !route.parent.record.components);\n\t\t\troutes.forEach(resetMatchStateOnRouteRecord);\n\t\t\tif (payload.filter) routes = routes.filter((route) => isRouteMatching(route, payload.filter.toLowerCase()));\n\t\t\troutes.forEach((route) => markRouteRecordActive(route, router.currentRoute.value));\n\t\t\tpayload.rootNodes = routes.map(formatRouteRecordForInspector);\n\t\t}\n\t\tlet activeRoutesPayload;\n\t\tapi.on.getInspectorTree((payload) => {\n\t\t\tactiveRoutesPayload = payload;\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) refreshRoutesView();\n\t\t});\n\t\t/**\n\t\t* Display information about the currently selected route record\n\t\t*/\n\t\tapi.on.getInspectorState((payload) => {\n\t\t\tif (payload.app === app && payload.inspectorId === routerInspectorId) {\n\t\t\t\tconst route = matcher.getRoutes().find((route) => route.record.__vd_id === payload.nodeId);\n\t\t\t\tif (route) payload.state = { options: formatRouteRecordMatcherForStateInspector(route) };\n\t\t\t}\n\t\t});\n\t\tapi.sendInspectorTree(routerInspectorId);\n\t\tapi.sendInspectorState(routerInspectorId);\n\t});\n}\nfunction modifierForKey(key) {\n\tif (key.optional) return key.repeatable ? \"*\" : \"?\";\n\telse return key.repeatable ? \"+\" : \"\";\n}\nfunction formatRouteRecordMatcherForStateInspector(route) {\n\tconst { record } = route;\n\tconst fields = [{\n\t\teditable: false,\n\t\tkey: \"path\",\n\t\tvalue: record.path\n\t}];\n\tif (record.name != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"name\",\n\t\tvalue: record.name\n\t});\n\tfields.push({\n\t\teditable: false,\n\t\tkey: \"regexp\",\n\t\tvalue: route.re\n\t});\n\tif (route.keys.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"keys\",\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.keys.map((key) => `${key.name}${modifierForKey(key)}`).join(\" \"),\n\t\t\ttooltip: \"Param keys\",\n\t\t\tvalue: route.keys\n\t\t} }\n\t});\n\tif (record.redirect != null) fields.push({\n\t\teditable: false,\n\t\tkey: \"redirect\",\n\t\tvalue: record.redirect\n\t});\n\tif (route.alias.length) fields.push({\n\t\teditable: false,\n\t\tkey: \"aliases\",\n\t\tvalue: route.alias.map((alias) => alias.record.path)\n\t});\n\tif (Object.keys(route.record.meta).length) fields.push({\n\t\teditable: false,\n\t\tkey: \"meta\",\n\t\tvalue: route.record.meta\n\t});\n\tfields.push({\n\t\tkey: \"score\",\n\t\teditable: false,\n\t\tvalue: { _custom: {\n\t\t\ttype: null,\n\t\t\treadOnly: true,\n\t\t\tdisplay: route.score.map((score) => score.join(\", \")).join(\" | \"),\n\t\t\ttooltip: \"Score used to sort routes\",\n\t\t\tvalue: route.score\n\t\t} }\n\t});\n\treturn fields;\n}\n/**\n* Extracted from tailwind palette\n*/\nconst PINK_500 = 15485081;\nconst BLUE_600 = 2450411;\nconst LIME_500 = 8702998;\nconst CYAN_400 = 2282478;\nconst ORANGE_400 = 16486972;\nconst DARK = 6710886;\nconst RED_100 = 16704226;\nconst RED_700 = 12131356;\nfunction formatRouteRecordForInspector(route) {\n\tconst tags = [];\n\tconst { record } = route;\n\tif (record.name != null) tags.push({\n\t\tlabel: String(record.name),\n\t\ttextColor: 0,\n\t\tbackgroundColor: CYAN_400\n\t});\n\tif (record.aliasOf) tags.push({\n\t\tlabel: \"alias\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: ORANGE_400\n\t});\n\tif (route.__vd_match) tags.push({\n\t\tlabel: \"matches\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: PINK_500\n\t});\n\tif (route.__vd_exactActive) tags.push({\n\t\tlabel: \"exact\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: LIME_500\n\t});\n\tif (route.__vd_active) tags.push({\n\t\tlabel: \"active\",\n\t\ttextColor: 0,\n\t\tbackgroundColor: BLUE_600\n\t});\n\tif (record.redirect) tags.push({\n\t\tlabel: typeof record.redirect === \"string\" ? `redirect: ${record.redirect}` : \"redirects\",\n\t\ttextColor: 16777215,\n\t\tbackgroundColor: DARK\n\t});\n\tlet id = record.__vd_id;\n\tif (id == null) {\n\t\tid = String(routeRecordId++);\n\t\trecord.__vd_id = id;\n\t}\n\treturn {\n\t\tid,\n\t\tlabel: record.path,\n\t\ttags,\n\t\tchildren: route.children.map(formatRouteRecordForInspector)\n\t};\n}\nlet routeRecordId = 0;\nconst EXTRACT_REGEXP_RE = /^\\/(.*)\\/([a-z]*)$/;\nfunction markRouteRecordActive(route, currentRoute) {\n\tconst isExactActive = currentRoute.matched.length && isSameRouteRecord(currentRoute.matched[currentRoute.matched.length - 1], route.record);\n\troute.__vd_exactActive = route.__vd_active = isExactActive;\n\tif (!isExactActive) route.__vd_active = currentRoute.matched.some((match) => isSameRouteRecord(match, route.record));\n\troute.children.forEach((childRoute) => markRouteRecordActive(childRoute, currentRoute));\n}\nfunction resetMatchStateOnRouteRecord(route) {\n\troute.__vd_match = false;\n\troute.children.forEach(resetMatchStateOnRouteRecord);\n}\nfunction isRouteMatching(route, filter) {\n\tconst found = String(route.re).match(EXTRACT_REGEXP_RE);\n\troute.__vd_match = false;\n\tif (!found || found.length < 3) return false;\n\tif (new RegExp(found[1].replace(/\\$$/, \"\"), found[2]).test(filter)) {\n\t\troute.children.forEach((child) => isRouteMatching(child, filter));\n\t\tif (route.record.path !== \"/\" || filter === \"/\") {\n\t\t\troute.__vd_match = route.re.test(filter);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\tconst path = route.record.path.toLowerCase();\n\tconst decodedPath = decode(path);\n\tif (!filter.startsWith(\"/\") && (decodedPath.includes(filter) || path.includes(filter))) return true;\n\tif (decodedPath.startsWith(filter) || path.startsWith(filter)) return true;\n\tif (route.record.name && String(route.record.name).includes(filter)) return true;\n\treturn route.children.some((child) => isRouteMatching(child, filter));\n}\nfunction omit(obj, keys) {\n\tconst ret = {};\n\tfor (const key in obj) if (!keys.includes(key)) ret[key] = obj[key];\n\treturn ret;\n}\n\n//#endregion\nexport { resolveRelativePath as A, normalizeBase as C, isSameRouteLocationParams as D, isSameRouteLocation as E, encodeParam as F, encodePath as I, warn$1 as L, stripBase as M, decode as N, isSameRouteRecord as O, encodeHash as P, createHref as S, START_LOCATION_NORMALIZED as T, saveScrollPosition as _, loadRouteLocation as a, NavigationType as b, useCallbacks as c, stringifyQuery as d, isRouteLocation as f, getScrollKey as g, getSavedScrollPosition as h, guardToPromiseFn as i, stringifyURL as j, parseURL as k, normalizeQuery as l, computeScrollPosition as m, extractChangingRecords as n, onBeforeRouteLeave as o, isRouteName as p, extractComponentsGuards as r, onBeforeRouteUpdate as s, addDevtools as t, parseQuery as u, scrollToPosition as v, NEW_stringifyURL as w, START as x, NavigationDirection as y };","/*!\n * vue-router v5.0.2\n * (c) 2026 Eduardo San Martin Morote\n * @license MIT\n */\nimport { a as routerKey, b as isBrowser, c as ErrorTypes, d as isNavigationFailure, f as applyToParams, h as isArray, i as routeLocationKey, l as NavigationFailureType, n as useRouter, o as routerViewLocationKey, p as assign, r as matchedRouteKey, s as viewDepthKey, t as useRoute, u as createRouterError, v as mergeOptions, y as noop } from \"./useApi-o-nPpLEi.mjs\";\nimport { C as normalizeBase, D as isSameRouteLocationParams, E as isSameRouteLocation, F as encodeParam, L as warn$1, M as stripBase, N as decode, O as isSameRouteRecord, P as encodeHash, S as createHref, T as START_LOCATION_NORMALIZED, _ as saveScrollPosition, a as loadRouteLocation, b as NavigationType, c as useCallbacks, d as stringifyQuery, f as isRouteLocation, g as getScrollKey, h as getSavedScrollPosition, i as guardToPromiseFn, j as stringifyURL, k as parseURL, l as normalizeQuery, m as computeScrollPosition, n as extractChangingRecords, o as onBeforeRouteLeave, p as isRouteName, r as extractComponentsGuards, s as onBeforeRouteUpdate, t as addDevtools, u as parseQuery, v as scrollToPosition, x as START, y as NavigationDirection } from \"./devtools-CQC1vVRY.mjs\";\nimport { computed, defineComponent, getCurrentInstance, h, inject, nextTick, provide, reactive, ref, shallowReactive, shallowRef, unref, watch, watchEffect } from \"vue\";\n\n//#region src/history/html5.ts\nlet createBaseLocation = () => location.protocol + \"//\" + location.host;\n/**\n* Creates a normalized history location from a window.location object\n* @param base - The base path\n* @param location - The window.location object\n*/\nfunction createCurrentLocation(base, location) {\n\tconst { pathname, search, hash } = location;\n\tconst hashPos = base.indexOf(\"#\");\n\tif (hashPos > -1) {\n\t\tlet slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;\n\t\tlet pathFromHash = hash.slice(slicePos);\n\t\tif (pathFromHash[0] !== \"/\") pathFromHash = \"/\" + pathFromHash;\n\t\treturn stripBase(pathFromHash, \"\");\n\t}\n\treturn stripBase(pathname, base) + search + hash;\n}\nfunction useHistoryListeners(base, historyState, currentLocation, replace) {\n\tlet listeners = [];\n\tlet teardowns = [];\n\tlet pauseState = null;\n\tconst popStateHandler = ({ state }) => {\n\t\tconst to = createCurrentLocation(base, location);\n\t\tconst from = currentLocation.value;\n\t\tconst fromState = historyState.value;\n\t\tlet delta = 0;\n\t\tif (state) {\n\t\t\tcurrentLocation.value = to;\n\t\t\thistoryState.value = state;\n\t\t\tif (pauseState && pauseState === from) {\n\t\t\t\tpauseState = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tdelta = fromState ? state.position - fromState.position : 0;\n\t\t} else replace(to);\n\t\tlisteners.forEach((listener) => {\n\t\t\tlistener(currentLocation.value, from, {\n\t\t\t\tdelta,\n\t\t\t\ttype: NavigationType.pop,\n\t\t\t\tdirection: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown\n\t\t\t});\n\t\t});\n\t};\n\tfunction pauseListeners() {\n\t\tpauseState = currentLocation.value;\n\t}\n\tfunction listen(callback) {\n\t\tlisteners.push(callback);\n\t\tconst teardown = () => {\n\t\t\tconst index = listeners.indexOf(callback);\n\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t};\n\t\tteardowns.push(teardown);\n\t\treturn teardown;\n\t}\n\tfunction beforeUnloadListener() {\n\t\tif (document.visibilityState === \"hidden\") {\n\t\t\tconst { history } = window;\n\t\t\tif (!history.state) return;\n\t\t\thistory.replaceState(assign({}, history.state, { scroll: computeScrollPosition() }), \"\");\n\t\t}\n\t}\n\tfunction destroy() {\n\t\tfor (const teardown of teardowns) teardown();\n\t\tteardowns = [];\n\t\twindow.removeEventListener(\"popstate\", popStateHandler);\n\t\twindow.removeEventListener(\"pagehide\", beforeUnloadListener);\n\t\tdocument.removeEventListener(\"visibilitychange\", beforeUnloadListener);\n\t}\n\twindow.addEventListener(\"popstate\", popStateHandler);\n\twindow.addEventListener(\"pagehide\", beforeUnloadListener);\n\tdocument.addEventListener(\"visibilitychange\", beforeUnloadListener);\n\treturn {\n\t\tpauseListeners,\n\t\tlisten,\n\t\tdestroy\n\t};\n}\n/**\n* Creates a state object\n*/\nfunction buildState(back, current, forward, replaced = false, computeScroll = false) {\n\treturn {\n\t\tback,\n\t\tcurrent,\n\t\tforward,\n\t\treplaced,\n\t\tposition: window.history.length,\n\t\tscroll: computeScroll ? computeScrollPosition() : null\n\t};\n}\nfunction useHistoryStateNavigation(base) {\n\tconst { history, location } = window;\n\tconst currentLocation = { value: createCurrentLocation(base, location) };\n\tconst historyState = { value: history.state };\n\tif (!historyState.value) changeLocation(currentLocation.value, {\n\t\tback: null,\n\t\tcurrent: currentLocation.value,\n\t\tforward: null,\n\t\tposition: history.length - 1,\n\t\treplaced: true,\n\t\tscroll: null\n\t}, true);\n\tfunction changeLocation(to, state, replace) {\n\t\t/**\n\t\t* if a base tag is provided, and we are on a normal domain, we have to\n\t\t* respect the provided `base` attribute because pushState() will use it and\n\t\t* potentially erase anything before the `#` like at\n\t\t* https://github.com/vuejs/router/issues/685 where a base of\n\t\t* `/folder/#` but a base of `/` would erase the `/folder/` section. If\n\t\t* there is no host, the `` tag makes no sense and if there isn't a\n\t\t* base tag we can just use everything after the `#`.\n\t\t*/\n\t\tconst hashIndex = base.indexOf(\"#\");\n\t\tconst url = hashIndex > -1 ? (location.host && document.querySelector(\"base\") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;\n\t\ttry {\n\t\t\thistory[replace ? \"replaceState\" : \"pushState\"](state, \"\", url);\n\t\t\thistoryState.value = state;\n\t\t} catch (err) {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Error with push/replace State\", err);\n\t\t\telse console.error(err);\n\t\t\tlocation[replace ? \"replace\" : \"assign\"](url);\n\t\t}\n\t}\n\tfunction replace(to, data) {\n\t\tchangeLocation(to, assign({}, history.state, buildState(historyState.value.back, to, historyState.value.forward, true), data, { position: historyState.value.position }), true);\n\t\tcurrentLocation.value = to;\n\t}\n\tfunction push(to, data) {\n\t\tconst currentState = assign({}, historyState.value, history.state, {\n\t\t\tforward: to,\n\t\t\tscroll: computeScrollPosition()\n\t\t});\n\t\tif (process.env.NODE_ENV !== \"production\" && !history.state) warn$1(\"history.state seems to have been manually replaced without preserving the necessary values. Make sure to preserve existing history state if you are manually calling history.replaceState:\\n\\nhistory.replaceState(history.state, '', url)\\n\\nYou can find more information at https://router.vuejs.org/guide/migration/#Usage-of-history-state\");\n\t\tchangeLocation(currentState.current, currentState, true);\n\t\tchangeLocation(to, assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data), false);\n\t\tcurrentLocation.value = to;\n\t}\n\treturn {\n\t\tlocation: currentLocation,\n\t\tstate: historyState,\n\t\tpush,\n\t\treplace\n\t};\n}\n/**\n* Creates an HTML5 history. Most common history for single page applications.\n*\n* @param base -\n*/\nfunction createWebHistory(base) {\n\tbase = normalizeBase(base);\n\tconst historyNavigation = useHistoryStateNavigation(base);\n\tconst historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);\n\tfunction go(delta, triggerListeners = true) {\n\t\tif (!triggerListeners) historyListeners.pauseListeners();\n\t\thistory.go(delta);\n\t}\n\tconst routerHistory = assign({\n\t\tlocation: \"\",\n\t\tbase,\n\t\tgo,\n\t\tcreateHref: createHref.bind(null, base)\n\t}, historyNavigation, historyListeners);\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.location.value\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => historyNavigation.state.value\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/memory.ts\n/**\n* Creates an in-memory based history. The main purpose of this history is to handle SSR. It starts in a special location that is nowhere.\n* It's up to the user to replace that location with the starter location by either calling `router.push` or `router.replace`.\n*\n* @param base - Base applied to all urls, defaults to '/'\n* @returns a history object that can be passed to the router constructor\n*/\nfunction createMemoryHistory(base = \"\") {\n\tlet listeners = [];\n\tlet queue = [[START, {}]];\n\tlet position = 0;\n\tbase = normalizeBase(base);\n\tfunction setLocation(location, state = {}) {\n\t\tposition++;\n\t\tif (position !== queue.length) queue.splice(position);\n\t\tqueue.push([location, state]);\n\t}\n\tfunction triggerListeners(to, from, { direction, delta }) {\n\t\tconst info = {\n\t\t\tdirection,\n\t\t\tdelta,\n\t\t\ttype: NavigationType.pop\n\t\t};\n\t\tfor (const callback of listeners) callback(to, from, info);\n\t}\n\tconst routerHistory = {\n\t\tlocation: START,\n\t\tstate: {},\n\t\tbase,\n\t\tcreateHref: createHref.bind(null, base),\n\t\treplace(to, state) {\n\t\t\tqueue.splice(position--, 1);\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tpush(to, state) {\n\t\t\tsetLocation(to, state);\n\t\t},\n\t\tlisten(callback) {\n\t\t\tlisteners.push(callback);\n\t\t\treturn () => {\n\t\t\t\tconst index = listeners.indexOf(callback);\n\t\t\t\tif (index > -1) listeners.splice(index, 1);\n\t\t\t};\n\t\t},\n\t\tdestroy() {\n\t\t\tlisteners = [];\n\t\t\tqueue = [[START, {}]];\n\t\t\tposition = 0;\n\t\t},\n\t\tgo(delta, shouldTrigger = true) {\n\t\t\tconst from = this.location;\n\t\t\tconst direction = delta < 0 ? NavigationDirection.back : NavigationDirection.forward;\n\t\t\tposition = Math.max(0, Math.min(position + delta, queue.length - 1));\n\t\t\tif (shouldTrigger) triggerListeners(this.location, from, {\n\t\t\t\tdirection,\n\t\t\t\tdelta\n\t\t\t});\n\t\t}\n\t};\n\tObject.defineProperty(routerHistory, \"location\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][0]\n\t});\n\tObject.defineProperty(routerHistory, \"state\", {\n\t\tenumerable: true,\n\t\tget: () => queue[position][1]\n\t});\n\treturn routerHistory;\n}\n\n//#endregion\n//#region src/history/hash.ts\n/**\n* Creates a hash history. Useful for web applications with no host (e.g. `file://`) or when configuring a server to\n* handle any URL is not possible.\n*\n* @param base - optional base to provide. Defaults to `location.pathname + location.search` If there is a `` tag\n* in the `head`, its value will be ignored in favor of this parameter **but note it affects all the history.pushState()\n* calls**, meaning that if you use a `` tag, it's `href` value **has to match this parameter** (ignoring anything\n* after the `#`).\n*\n* @example\n* ```js\n* // at https://example.com/folder\n* createWebHashHistory() // gives a url of `https://example.com/folder#`\n* createWebHashHistory('/folder/') // gives a url of `https://example.com/folder/#`\n* // if the `#` is provided in the base, it won't be added by `createWebHashHistory`\n* createWebHashHistory('/folder/#/app/') // gives a url of `https://example.com/folder/#/app/`\n* // you should avoid doing this because it changes the original url and breaks copying urls\n* createWebHashHistory('/other-folder/') // gives a url of `https://example.com/other-folder/#`\n*\n* // at file:///usr/etc/folder/index.html\n* // for locations with no `host`, the base is ignored\n* createWebHashHistory('/iAmIgnored') // gives a url of `file:///usr/etc/folder/index.html#`\n* ```\n*/\nfunction createWebHashHistory(base) {\n\tbase = location.host ? base || location.pathname + location.search : \"\";\n\tif (!base.includes(\"#\")) base += \"#\";\n\tif (process.env.NODE_ENV !== \"production\" && !base.endsWith(\"#/\") && !base.endsWith(\"#\")) warn$1(`A hash base must end with a \"#\":\\n\"${base}\" should be \"${base.replace(/#.*$/, \"#\")}\".`);\n\treturn createWebHistory(base);\n}\n\n//#endregion\n//#region src/matcher/pathTokenizer.ts\nlet TokenType = /* @__PURE__ */ function(TokenType) {\n\tTokenType[TokenType[\"Static\"] = 0] = \"Static\";\n\tTokenType[TokenType[\"Param\"] = 1] = \"Param\";\n\tTokenType[TokenType[\"Group\"] = 2] = \"Group\";\n\treturn TokenType;\n}({});\nvar TokenizerState = /* @__PURE__ */ function(TokenizerState) {\n\tTokenizerState[TokenizerState[\"Static\"] = 0] = \"Static\";\n\tTokenizerState[TokenizerState[\"Param\"] = 1] = \"Param\";\n\tTokenizerState[TokenizerState[\"ParamRegExp\"] = 2] = \"ParamRegExp\";\n\tTokenizerState[TokenizerState[\"ParamRegExpEnd\"] = 3] = \"ParamRegExpEnd\";\n\tTokenizerState[TokenizerState[\"EscapeNext\"] = 4] = \"EscapeNext\";\n\treturn TokenizerState;\n}(TokenizerState || {});\nconst ROOT_TOKEN = {\n\ttype: TokenType.Static,\n\tvalue: \"\"\n};\nconst VALID_PARAM_RE = /[a-zA-Z0-9_]/;\nfunction tokenizePath(path) {\n\tif (!path) return [[]];\n\tif (path === \"/\") return [[ROOT_TOKEN]];\n\tif (!path.startsWith(\"/\")) throw new Error(process.env.NODE_ENV !== \"production\" ? `Route paths should start with a \"/\": \"${path}\" should be \"/${path}\".` : `Invalid path \"${path}\"`);\n\tfunction crash(message) {\n\t\tthrow new Error(`ERR (${state})/\"${buffer}\": ${message}`);\n\t}\n\tlet state = TokenizerState.Static;\n\tlet previousState = state;\n\tconst tokens = [];\n\tlet segment;\n\tfunction finalizeSegment() {\n\t\tif (segment) tokens.push(segment);\n\t\tsegment = [];\n\t}\n\tlet i = 0;\n\tlet char;\n\tlet buffer = \"\";\n\tlet customRe = \"\";\n\tfunction consumeBuffer() {\n\t\tif (!buffer) return;\n\t\tif (state === TokenizerState.Static) segment.push({\n\t\t\ttype: TokenType.Static,\n\t\t\tvalue: buffer\n\t\t});\n\t\telse if (state === TokenizerState.Param || state === TokenizerState.ParamRegExp || state === TokenizerState.ParamRegExpEnd) {\n\t\t\tif (segment.length > 1 && (char === \"*\" || char === \"+\")) crash(`A repeatable param (${buffer}) must be alone in its segment. eg: '/:ids+.`);\n\t\t\tsegment.push({\n\t\t\t\ttype: TokenType.Param,\n\t\t\t\tvalue: buffer,\n\t\t\t\tregexp: customRe,\n\t\t\t\trepeatable: char === \"*\" || char === \"+\",\n\t\t\t\toptional: char === \"*\" || char === \"?\"\n\t\t\t});\n\t\t} else crash(\"Invalid state to consume buffer\");\n\t\tbuffer = \"\";\n\t}\n\tfunction addCharToBuffer() {\n\t\tbuffer += char;\n\t}\n\twhile (i < path.length) {\n\t\tchar = path[i++];\n\t\tif (char === \"\\\\\" && state !== TokenizerState.ParamRegExp) {\n\t\t\tpreviousState = state;\n\t\t\tstate = TokenizerState.EscapeNext;\n\t\t\tcontinue;\n\t\t}\n\t\tswitch (state) {\n\t\t\tcase TokenizerState.Static:\n\t\t\t\tif (char === \"/\") {\n\t\t\t\t\tif (buffer) consumeBuffer();\n\t\t\t\t\tfinalizeSegment();\n\t\t\t\t} else if (char === \":\") {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Param;\n\t\t\t\t} else addCharToBuffer();\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.EscapeNext:\n\t\t\t\taddCharToBuffer();\n\t\t\t\tstate = previousState;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.Param:\n\t\t\t\tif (char === \"(\") state = TokenizerState.ParamRegExp;\n\t\t\t\telse if (VALID_PARAM_RE.test(char)) addCharToBuffer();\n\t\t\t\telse {\n\t\t\t\t\tconsumeBuffer();\n\t\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExp:\n\t\t\t\tif (char === \")\") if (customRe[customRe.length - 1] == \"\\\\\") customRe = customRe.slice(0, -1) + char;\n\t\t\t\telse state = TokenizerState.ParamRegExpEnd;\n\t\t\t\telse customRe += char;\n\t\t\t\tbreak;\n\t\t\tcase TokenizerState.ParamRegExpEnd:\n\t\t\t\tconsumeBuffer();\n\t\t\t\tstate = TokenizerState.Static;\n\t\t\t\tif (char !== \"*\" && char !== \"?\" && char !== \"+\") i--;\n\t\t\t\tcustomRe = \"\";\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tcrash(\"Unknown state\");\n\t\t\t\tbreak;\n\t\t}\n\t}\n\tif (state === TokenizerState.ParamRegExp) crash(`Unfinished custom RegExp for param \"${buffer}\"`);\n\tconsumeBuffer();\n\tfinalizeSegment();\n\treturn tokens;\n}\n\n//#endregion\n//#region src/matcher/pathParserRanker.ts\nconst BASE_PARAM_PATTERN = \"[^/]+?\";\nconst BASE_PATH_PARSER_OPTIONS = {\n\tsensitive: false,\n\tstrict: false,\n\tstart: true,\n\tend: true\n};\nvar PathScore = /* @__PURE__ */ function(PathScore) {\n\tPathScore[PathScore[\"_multiplier\"] = 10] = \"_multiplier\";\n\tPathScore[PathScore[\"Root\"] = 90] = \"Root\";\n\tPathScore[PathScore[\"Segment\"] = 40] = \"Segment\";\n\tPathScore[PathScore[\"SubSegment\"] = 30] = \"SubSegment\";\n\tPathScore[PathScore[\"Static\"] = 40] = \"Static\";\n\tPathScore[PathScore[\"Dynamic\"] = 20] = \"Dynamic\";\n\tPathScore[PathScore[\"BonusCustomRegExp\"] = 10] = \"BonusCustomRegExp\";\n\tPathScore[PathScore[\"BonusWildcard\"] = -50] = \"BonusWildcard\";\n\tPathScore[PathScore[\"BonusRepeatable\"] = -20] = \"BonusRepeatable\";\n\tPathScore[PathScore[\"BonusOptional\"] = -8] = \"BonusOptional\";\n\tPathScore[PathScore[\"BonusStrict\"] = .7000000000000001] = \"BonusStrict\";\n\tPathScore[PathScore[\"BonusCaseSensitive\"] = .25] = \"BonusCaseSensitive\";\n\treturn PathScore;\n}(PathScore || {});\nconst REGEX_CHARS_RE = /[.+*?^${}()[\\]/\\\\]/g;\n/**\n* Creates a path parser from an array of Segments (a segment is an array of Tokens)\n*\n* @param segments - array of segments returned by tokenizePath\n* @param extraOptions - optional options for the regexp\n* @returns a PathParser\n*/\nfunction tokensToParser(segments, extraOptions) {\n\tconst options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);\n\tconst score = [];\n\tlet pattern = options.start ? \"^\" : \"\";\n\tconst keys = [];\n\tfor (const segment of segments) {\n\t\tconst segmentScores = segment.length ? [] : [PathScore.Root];\n\t\tif (options.strict && !segment.length) pattern += \"/\";\n\t\tfor (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {\n\t\t\tconst token = segment[tokenIndex];\n\t\t\tlet subSegmentScore = PathScore.Segment + (options.sensitive ? PathScore.BonusCaseSensitive : 0);\n\t\t\tif (token.type === TokenType.Static) {\n\t\t\t\tif (!tokenIndex) pattern += \"/\";\n\t\t\t\tpattern += token.value.replace(REGEX_CHARS_RE, \"\\\\$&\");\n\t\t\t\tsubSegmentScore += PathScore.Static;\n\t\t\t} else if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional, regexp } = token;\n\t\t\t\tkeys.push({\n\t\t\t\t\tname: value,\n\t\t\t\t\trepeatable,\n\t\t\t\t\toptional\n\t\t\t\t});\n\t\t\t\tconst re = regexp ? regexp : BASE_PARAM_PATTERN;\n\t\t\t\tif (re !== BASE_PARAM_PATTERN) {\n\t\t\t\t\tsubSegmentScore += PathScore.BonusCustomRegExp;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tnew RegExp(`(${re})`);\n\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\tthrow new Error(`Invalid custom RegExp for param \"${value}\" (${re}): ` + err.message);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet subPattern = repeatable ? `((?:${re})(?:/(?:${re}))*)` : `(${re})`;\n\t\t\t\tif (!tokenIndex) subPattern = optional && segment.length < 2 ? `(?:/${subPattern})` : \"/\" + subPattern;\n\t\t\t\tif (optional) subPattern += \"?\";\n\t\t\t\tpattern += subPattern;\n\t\t\t\tsubSegmentScore += PathScore.Dynamic;\n\t\t\t\tif (optional) subSegmentScore += PathScore.BonusOptional;\n\t\t\t\tif (repeatable) subSegmentScore += PathScore.BonusRepeatable;\n\t\t\t\tif (re === \".*\") subSegmentScore += PathScore.BonusWildcard;\n\t\t\t}\n\t\t\tsegmentScores.push(subSegmentScore);\n\t\t}\n\t\tscore.push(segmentScores);\n\t}\n\tif (options.strict && options.end) {\n\t\tconst i = score.length - 1;\n\t\tscore[i][score[i].length - 1] += PathScore.BonusStrict;\n\t}\n\tif (!options.strict) pattern += \"/?\";\n\tif (options.end) pattern += \"$\";\n\telse if (options.strict && !pattern.endsWith(\"/\")) pattern += \"(?:/|$)\";\n\tconst re = new RegExp(pattern, options.sensitive ? \"\" : \"i\");\n\tfunction parse(path) {\n\t\tconst match = path.match(re);\n\t\tconst params = {};\n\t\tif (!match) return null;\n\t\tfor (let i = 1; i < match.length; i++) {\n\t\t\tconst value = match[i] || \"\";\n\t\t\tconst key = keys[i - 1];\n\t\t\tparams[key.name] = value && key.repeatable ? value.split(\"/\") : value;\n\t\t}\n\t\treturn params;\n\t}\n\tfunction stringify(params) {\n\t\tlet path = \"\";\n\t\tlet avoidDuplicatedSlash = false;\n\t\tfor (const segment of segments) {\n\t\t\tif (!avoidDuplicatedSlash || !path.endsWith(\"/\")) path += \"/\";\n\t\t\tavoidDuplicatedSlash = false;\n\t\t\tfor (const token of segment) if (token.type === TokenType.Static) path += token.value;\n\t\t\telse if (token.type === TokenType.Param) {\n\t\t\t\tconst { value, repeatable, optional } = token;\n\t\t\t\tconst param = value in params ? params[value] : \"\";\n\t\t\t\tif (isArray(param) && !repeatable) throw new Error(`Provided param \"${value}\" is an array but it is not repeatable (* or + modifiers)`);\n\t\t\t\tconst text = isArray(param) ? param.join(\"/\") : param;\n\t\t\t\tif (!text) if (optional) {\n\t\t\t\t\tif (segment.length < 2) if (path.endsWith(\"/\")) path = path.slice(0, -1);\n\t\t\t\t\telse avoidDuplicatedSlash = true;\n\t\t\t\t} else throw new Error(`Missing required param \"${value}\"`);\n\t\t\t\tpath += text;\n\t\t\t}\n\t\t}\n\t\treturn path || \"/\";\n\t}\n\treturn {\n\t\tre,\n\t\tscore,\n\t\tkeys,\n\t\tparse,\n\t\tstringify\n\t};\n}\n/**\n* Compares an array of numbers as used in PathParser.score and returns a\n* number. This function can be used to `sort` an array\n*\n* @param a - first array of numbers\n* @param b - second array of numbers\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n* should be sorted first\n*/\nfunction compareScoreArray(a, b) {\n\tlet i = 0;\n\twhile (i < a.length && i < b.length) {\n\t\tconst diff = b[i] - a[i];\n\t\tif (diff) return diff;\n\t\ti++;\n\t}\n\tif (a.length < b.length) return a.length === 1 && a[0] === PathScore.Static + PathScore.Segment ? -1 : 1;\n\telse if (a.length > b.length) return b.length === 1 && b[0] === PathScore.Static + PathScore.Segment ? 1 : -1;\n\treturn 0;\n}\n/**\n* Compare function that can be used with `sort` to sort an array of PathParser\n*\n* @param a - first PathParser\n* @param b - second PathParser\n* @returns 0 if both are equal, < 0 if a should be sorted first, > 0 if b\n*/\nfunction comparePathParserScore(a, b) {\n\tlet i = 0;\n\tconst aScore = a.score;\n\tconst bScore = b.score;\n\twhile (i < aScore.length && i < bScore.length) {\n\t\tconst comp = compareScoreArray(aScore[i], bScore[i]);\n\t\tif (comp) return comp;\n\t\ti++;\n\t}\n\tif (Math.abs(bScore.length - aScore.length) === 1) {\n\t\tif (isLastScoreNegative(aScore)) return 1;\n\t\tif (isLastScoreNegative(bScore)) return -1;\n\t}\n\treturn bScore.length - aScore.length;\n}\n/**\n* This allows detecting splats at the end of a path: /home/:id(.*)*\n*\n* @param score - score to check\n* @returns true if the last entry is negative\n*/\nfunction isLastScoreNegative(score) {\n\tconst last = score[score.length - 1];\n\treturn score.length > 0 && last[last.length - 1] < 0;\n}\nconst PATH_PARSER_OPTIONS_DEFAULTS = {\n\tstrict: false,\n\tend: true,\n\tsensitive: false\n};\n\n//#endregion\n//#region src/matcher/pathMatcher.ts\nfunction createRouteRecordMatcher(record, parent, options) {\n\tconst parser = tokensToParser(tokenizePath(record.path), options);\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst existingKeys = /* @__PURE__ */ new Set();\n\t\tfor (const key of parser.keys) {\n\t\t\tif (existingKeys.has(key.name)) warn$1(`Found duplicated params with name \"${key.name}\" for path \"${record.path}\". Only the last one will be available on \"$route.params\".`);\n\t\t\texistingKeys.add(key.name);\n\t\t}\n\t}\n\tconst matcher = assign(parser, {\n\t\trecord,\n\t\tparent,\n\t\tchildren: [],\n\t\talias: []\n\t});\n\tif (parent) {\n\t\tif (!matcher.record.aliasOf === !parent.record.aliasOf) parent.children.push(matcher);\n\t}\n\treturn matcher;\n}\n\n//#endregion\n//#region src/matcher/index.ts\n/**\n* Creates a Router Matcher.\n*\n* @internal\n* @param routes - array of initial routes\n* @param globalOptions - global route options\n*/\nfunction createRouterMatcher(routes, globalOptions) {\n\tconst matchers = [];\n\tconst matcherMap = /* @__PURE__ */ new Map();\n\tglobalOptions = mergeOptions(PATH_PARSER_OPTIONS_DEFAULTS, globalOptions);\n\tfunction getRecordMatcher(name) {\n\t\treturn matcherMap.get(name);\n\t}\n\tfunction addRoute(record, parent, originalRecord) {\n\t\tconst isRootAdd = !originalRecord;\n\t\tconst mainNormalizedRecord = normalizeRouteRecord(record);\n\t\tif (process.env.NODE_ENV !== \"production\") checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent);\n\t\tmainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;\n\t\tconst options = mergeOptions(globalOptions, record);\n\t\tconst normalizedRecords = [mainNormalizedRecord];\n\t\tif (\"alias\" in record) {\n\t\t\tconst aliases = typeof record.alias === \"string\" ? [record.alias] : record.alias;\n\t\t\tfor (const alias of aliases) normalizedRecords.push(normalizeRouteRecord(assign({}, mainNormalizedRecord, {\n\t\t\t\tcomponents: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,\n\t\t\t\tpath: alias,\n\t\t\t\taliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord\n\t\t\t})));\n\t\t}\n\t\tlet matcher;\n\t\tlet originalMatcher;\n\t\tfor (const normalizedRecord of normalizedRecords) {\n\t\t\tconst { path } = normalizedRecord;\n\t\t\tif (parent && path[0] !== \"/\") {\n\t\t\t\tconst parentPath = parent.record.path;\n\t\t\t\tconst connectingSlash = parentPath[parentPath.length - 1] === \"/\" ? \"\" : \"/\";\n\t\t\t\tnormalizedRecord.path = parent.record.path + (path && connectingSlash + path);\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && normalizedRecord.path === \"*\") throw new Error(\"Catch all routes (\\\"*\\\") must now be defined using a param with a custom regexp.\\nSee more at https://router.vuejs.org/guide/migration/#Removed-star-or-catch-all-routes.\");\n\t\t\tmatcher = createRouteRecordMatcher(normalizedRecord, parent, options);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && parent && path[0] === \"/\") checkMissingParamsInAbsolutePath(matcher, parent);\n\t\t\tif (originalRecord) {\n\t\t\t\toriginalRecord.alias.push(matcher);\n\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameParams(originalRecord, matcher);\n\t\t\t} else {\n\t\t\t\toriginalMatcher = originalMatcher || matcher;\n\t\t\t\tif (originalMatcher !== matcher) originalMatcher.alias.push(matcher);\n\t\t\t\tif (isRootAdd && record.name && !isAliasRecord(matcher)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") checkSameNameAsAncestor(record, parent);\n\t\t\t\t\tremoveRoute(record.name);\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isMatchable(matcher)) insertMatcher(matcher);\n\t\t\tif (mainNormalizedRecord.children) {\n\t\t\t\tconst children = mainNormalizedRecord.children;\n\t\t\t\tfor (let i = 0; i < children.length; i++) addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);\n\t\t\t}\n\t\t\toriginalRecord = originalRecord || matcher;\n\t\t}\n\t\treturn originalMatcher ? () => {\n\t\t\tremoveRoute(originalMatcher);\n\t\t} : noop;\n\t}\n\tfunction removeRoute(matcherRef) {\n\t\tif (isRouteName(matcherRef)) {\n\t\t\tconst matcher = matcherMap.get(matcherRef);\n\t\t\tif (matcher) {\n\t\t\t\tmatcherMap.delete(matcherRef);\n\t\t\t\tmatchers.splice(matchers.indexOf(matcher), 1);\n\t\t\t\tmatcher.children.forEach(removeRoute);\n\t\t\t\tmatcher.alias.forEach(removeRoute);\n\t\t\t}\n\t\t} else {\n\t\t\tconst index = matchers.indexOf(matcherRef);\n\t\t\tif (index > -1) {\n\t\t\t\tmatchers.splice(index, 1);\n\t\t\t\tif (matcherRef.record.name) matcherMap.delete(matcherRef.record.name);\n\t\t\t\tmatcherRef.children.forEach(removeRoute);\n\t\t\t\tmatcherRef.alias.forEach(removeRoute);\n\t\t\t}\n\t\t}\n\t}\n\tfunction getRoutes() {\n\t\treturn matchers;\n\t}\n\tfunction insertMatcher(matcher) {\n\t\tconst index = findInsertionIndex(matcher, matchers);\n\t\tmatchers.splice(index, 0, matcher);\n\t\tif (matcher.record.name && !isAliasRecord(matcher)) matcherMap.set(matcher.record.name, matcher);\n\t}\n\tfunction resolve(location, currentLocation) {\n\t\tlet matcher;\n\t\tlet params = {};\n\t\tlet path;\n\t\tlet name;\n\t\tif (\"name\" in location && location.name) {\n\t\t\tmatcher = matcherMap.get(location.name);\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, { location });\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tconst invalidParams = Object.keys(location.params || {}).filter((paramName) => !matcher.keys.find((k) => k.name === paramName));\n\t\t\t\tif (invalidParams.length) warn$1(`Discarded invalid param(s) \"${invalidParams.join(\"\\\", \\\"\")}\" when navigating. See https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md#414-2022-08-22 for more details.`);\n\t\t\t}\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign(pickParams(currentLocation.params, matcher.keys.filter((k) => !k.optional).concat(matcher.parent ? matcher.parent.keys.filter((k) => k.optional) : []).map((k) => k.name)), location.params && pickParams(location.params, matcher.keys.map((k) => k.name)));\n\t\t\tpath = matcher.stringify(params);\n\t\t} else if (location.path != null) {\n\t\t\tpath = location.path;\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !path.startsWith(\"/\")) warn$1(`The Matcher cannot resolve relative paths but received \"${path}\". Unless you directly called \\`matcher.resolve(\"${path}\")\\`, this is probably a bug in vue-router. Please open an issue at https://github.com/vuejs/router/issues/new/choose.`);\n\t\t\tmatcher = matchers.find((m) => m.re.test(path));\n\t\t\tif (matcher) {\n\t\t\t\tparams = matcher.parse(path);\n\t\t\t\tname = matcher.record.name;\n\t\t\t}\n\t\t} else {\n\t\t\tmatcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));\n\t\t\tif (!matcher) throw createRouterError(ErrorTypes.MATCHER_NOT_FOUND, {\n\t\t\t\tlocation,\n\t\t\t\tcurrentLocation\n\t\t\t});\n\t\t\tname = matcher.record.name;\n\t\t\tparams = assign({}, currentLocation.params, location.params);\n\t\t\tpath = matcher.stringify(params);\n\t\t}\n\t\tconst matched = [];\n\t\tlet parentMatcher = matcher;\n\t\twhile (parentMatcher) {\n\t\t\tmatched.unshift(parentMatcher.record);\n\t\t\tparentMatcher = parentMatcher.parent;\n\t\t}\n\t\treturn {\n\t\t\tname,\n\t\t\tpath,\n\t\t\tparams,\n\t\t\tmatched,\n\t\t\tmeta: mergeMetaFields(matched)\n\t\t};\n\t}\n\troutes.forEach((route) => addRoute(route));\n\tfunction clearRoutes() {\n\t\tmatchers.length = 0;\n\t\tmatcherMap.clear();\n\t}\n\treturn {\n\t\taddRoute,\n\t\tresolve,\n\t\tremoveRoute,\n\t\tclearRoutes,\n\t\tgetRoutes,\n\t\tgetRecordMatcher\n\t};\n}\n/**\n* Picks an object param to contain only specified keys.\n*\n* @param params - params object to pick from\n* @param keys - keys to pick\n*/\nfunction pickParams(params, keys) {\n\tconst newParams = {};\n\tfor (const key of keys) if (key in params) newParams[key] = params[key];\n\treturn newParams;\n}\n/**\n* Normalizes a RouteRecordRaw. Creates a copy\n*\n* @param record\n* @returns the normalized version\n*/\nfunction normalizeRouteRecord(record) {\n\tconst normalized = {\n\t\tpath: record.path,\n\t\tredirect: record.redirect,\n\t\tname: record.name,\n\t\tmeta: record.meta || {},\n\t\taliasOf: record.aliasOf,\n\t\tbeforeEnter: record.beforeEnter,\n\t\tprops: normalizeRecordProps(record),\n\t\tchildren: record.children || [],\n\t\tinstances: {},\n\t\tleaveGuards: /* @__PURE__ */ new Set(),\n\t\tupdateGuards: /* @__PURE__ */ new Set(),\n\t\tenterCallbacks: {},\n\t\tcomponents: \"components\" in record ? record.components || null : record.component && { default: record.component }\n\t};\n\tObject.defineProperty(normalized, \"mods\", { value: {} });\n\treturn normalized;\n}\n/**\n* Normalize the optional `props` in a record to always be an object similar to\n* components. Also accept a boolean for components.\n* @param record\n*/\nfunction normalizeRecordProps(record) {\n\tconst propsObject = {};\n\tconst props = record.props || false;\n\tif (\"component\" in record) propsObject.default = props;\n\telse for (const name in record.components) propsObject[name] = typeof props === \"object\" ? props[name] : props;\n\treturn propsObject;\n}\n/**\n* Checks if a record or any of its parent is an alias\n* @param record\n*/\nfunction isAliasRecord(record) {\n\twhile (record) {\n\t\tif (record.record.aliasOf) return true;\n\t\trecord = record.parent;\n\t}\n\treturn false;\n}\n/**\n* Merge meta fields of an array of records\n*\n* @param matched - array of matched records\n*/\nfunction mergeMetaFields(matched) {\n\treturn matched.reduce((meta, record) => assign(meta, record.meta), {});\n}\nfunction isSameParam(a, b) {\n\treturn a.name === b.name && a.optional === b.optional && a.repeatable === b.repeatable;\n}\n/**\n* Check if a path and its alias have the same required params\n*\n* @param a - original record\n* @param b - alias record\n*/\nfunction checkSameParams(a, b) {\n\tfor (const key of a.keys) if (!key.optional && !b.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n\tfor (const key of b.keys) if (!key.optional && !a.keys.find(isSameParam.bind(null, key))) return warn$1(`Alias \"${b.record.path}\" and the original record: \"${a.record.path}\" must have the exact same param named \"${key.name}\"`);\n}\n/**\n* A route with a name and a child with an empty path without a name should warn when adding the route\n*\n* @param mainNormalizedRecord - RouteRecordNormalized\n* @param parent - RouteRecordMatcher\n*/\nfunction checkChildMissingNameWithEmptyPath(mainNormalizedRecord, parent) {\n\tif (parent && parent.record.name && !mainNormalizedRecord.name && !mainNormalizedRecord.path && mainNormalizedRecord.children.length === 0) warn$1(`The route named \"${String(parent.record.name)}\" has a child without a name, an empty path, and no children. This is probably a mistake: using that name won't render the empty path child so you probably want to move the name to the child instead. If this is intentional, add a name to the child route to silence the warning.`);\n}\nfunction checkSameNameAsAncestor(record, parent) {\n\tfor (let ancestor = parent; ancestor; ancestor = ancestor.parent) if (ancestor.record.name === record.name) throw new Error(`A route named \"${String(record.name)}\" has been added as a ${parent === ancestor ? \"child\" : \"descendant\"} of a route with the same name. Route names must be unique and a nested route cannot use the same name as an ancestor.`);\n}\nfunction checkMissingParamsInAbsolutePath(record, parent) {\n\tfor (const key of parent.keys) if (!record.keys.find(isSameParam.bind(null, key))) return warn$1(`Absolute path \"${record.record.path}\" must have the exact same param named \"${key.name}\" as its parent \"${parent.record.path}\".`);\n}\n/**\n* Performs a binary search to find the correct insertion index for a new matcher.\n*\n* Matchers are primarily sorted by their score. If scores are tied then we also consider parent/child relationships,\n* with descendants coming before ancestors. If there's still a tie, new routes are inserted after existing routes.\n*\n* @param matcher - new matcher to be inserted\n* @param matchers - existing matchers\n*/\nfunction findInsertionIndex(matcher, matchers) {\n\tlet lower = 0;\n\tlet upper = matchers.length;\n\twhile (lower !== upper) {\n\t\tconst mid = lower + upper >> 1;\n\t\tif (comparePathParserScore(matcher, matchers[mid]) < 0) upper = mid;\n\t\telse lower = mid + 1;\n\t}\n\tconst insertionAncestor = getInsertionAncestor(matcher);\n\tif (insertionAncestor) {\n\t\tupper = matchers.lastIndexOf(insertionAncestor, upper - 1);\n\t\tif (process.env.NODE_ENV !== \"production\" && upper < 0) warn$1(`Finding ancestor route \"${insertionAncestor.record.path}\" failed for \"${matcher.record.path}\"`);\n\t}\n\treturn upper;\n}\nfunction getInsertionAncestor(matcher) {\n\tlet ancestor = matcher;\n\twhile (ancestor = ancestor.parent) if (isMatchable(ancestor) && comparePathParserScore(matcher, ancestor) === 0) return ancestor;\n}\n/**\n* Checks if a matcher can be reachable. This means if it's possible to reach it as a route. For example, routes without\n* a component, or name, or redirect, are just used to group other routes.\n* @param matcher\n* @param matcher.record record of the matcher\n* @returns\n*/\nfunction isMatchable({ record }) {\n\treturn !!(record.name || record.components && Object.keys(record.components).length || record.redirect);\n}\n\n//#endregion\n//#region src/RouterLink.ts\n/**\n* Returns the internal behavior of a {@link RouterLink} without the rendering part.\n*\n* @param props - a `to` location and an optional `replace` flag\n*/\nfunction useLink(props) {\n\tconst router = inject(routerKey);\n\tconst currentRoute = inject(routeLocationKey);\n\tlet hasPrevious = false;\n\tlet previousTo = null;\n\tconst route = computed(() => {\n\t\tconst to = unref(props.to);\n\t\tif (process.env.NODE_ENV !== \"production\" && (!hasPrevious || to !== previousTo)) {\n\t\t\tif (!isRouteLocation(to)) if (hasPrevious) warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- previous to:`, previousTo, `\\n- props:`, props);\n\t\t\telse warn$1(`Invalid value for prop \"to\" in useLink()\\n- to:`, to, `\\n- props:`, props);\n\t\t\tpreviousTo = to;\n\t\t\thasPrevious = true;\n\t\t}\n\t\treturn router.resolve(to);\n\t});\n\tconst activeRecordIndex = computed(() => {\n\t\tconst { matched } = route.value;\n\t\tconst { length } = matched;\n\t\tconst routeMatched = matched[length - 1];\n\t\tconst currentMatched = currentRoute.matched;\n\t\tif (!routeMatched || !currentMatched.length) return -1;\n\t\tconst index = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));\n\t\tif (index > -1) return index;\n\t\tconst parentRecordPath = getOriginalPath(matched[length - 2]);\n\t\treturn length > 1 && getOriginalPath(routeMatched) === parentRecordPath && currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index;\n\t});\n\tconst isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));\n\tconst isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));\n\tfunction navigate(e = {}) {\n\t\tif (guardEvent(e)) {\n\t\t\tconst p = router[unref(props.replace) ? \"replace\" : \"push\"](unref(props.to)).catch(noop);\n\t\t\tif (props.viewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document) document.startViewTransition(() => p);\n\t\t\treturn p;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser) {\n\t\tconst instance = getCurrentInstance();\n\t\tif (instance) {\n\t\t\tconst linkContextDevtools = {\n\t\t\t\troute: route.value,\n\t\t\t\tisActive: isActive.value,\n\t\t\t\tisExactActive: isExactActive.value,\n\t\t\t\terror: null\n\t\t\t};\n\t\t\tinstance.__vrl_devtools = instance.__vrl_devtools || [];\n\t\t\tinstance.__vrl_devtools.push(linkContextDevtools);\n\t\t\twatchEffect(() => {\n\t\t\t\tlinkContextDevtools.route = route.value;\n\t\t\t\tlinkContextDevtools.isActive = isActive.value;\n\t\t\t\tlinkContextDevtools.isExactActive = isExactActive.value;\n\t\t\t\tlinkContextDevtools.error = isRouteLocation(unref(props.to)) ? null : \"Invalid \\\"to\\\" value\";\n\t\t\t}, { flush: \"post\" });\n\t\t}\n\t}\n\t/**\n\t* NOTE: update {@link _RouterLinkI}'s `$slots` type when updating this\n\t*/\n\treturn {\n\t\troute,\n\t\thref: computed(() => route.value.href),\n\t\tisActive,\n\t\tisExactActive,\n\t\tnavigate\n\t};\n}\nfunction preferSingleVNode(vnodes) {\n\treturn vnodes.length === 1 ? vnodes[0] : vnodes;\n}\nconst RouterLinkImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterLink\",\n\tcompatConfig: { MODE: 3 },\n\tprops: {\n\t\tto: {\n\t\t\ttype: [String, Object],\n\t\t\trequired: true\n\t\t},\n\t\treplace: Boolean,\n\t\tactiveClass: String,\n\t\texactActiveClass: String,\n\t\tcustom: Boolean,\n\t\tariaCurrentValue: {\n\t\t\ttype: String,\n\t\t\tdefault: \"page\"\n\t\t},\n\t\tviewTransition: Boolean\n\t},\n\tuseLink,\n\tsetup(props, { slots }) {\n\t\tconst link = reactive(useLink(props));\n\t\tconst { options } = inject(routerKey);\n\t\tconst elClass = computed(() => ({\n\t\t\t[getLinkClass(props.activeClass, options.linkActiveClass, \"router-link-active\")]: link.isActive,\n\t\t\t[getLinkClass(props.exactActiveClass, options.linkExactActiveClass, \"router-link-exact-active\")]: link.isExactActive\n\t\t}));\n\t\treturn () => {\n\t\t\tconst children = slots.default && preferSingleVNode(slots.default(link));\n\t\t\treturn props.custom ? children : h(\"a\", {\n\t\t\t\t\"aria-current\": link.isExactActive ? props.ariaCurrentValue : null,\n\t\t\t\thref: link.href,\n\t\t\t\tonClick: link.navigate,\n\t\t\t\tclass: elClass.value\n\t\t\t}, children);\n\t\t};\n\t}\n});\n/**\n* Component to render a link that triggers a navigation on click.\n*/\nconst RouterLink = RouterLinkImpl;\nfunction guardEvent(e) {\n\tif (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) return;\n\tif (e.defaultPrevented) return;\n\tif (e.button !== void 0 && e.button !== 0) return;\n\tif (e.currentTarget && e.currentTarget.getAttribute) {\n\t\tconst target = e.currentTarget.getAttribute(\"target\");\n\t\tif (/\\b_blank\\b/i.test(target)) return;\n\t}\n\tif (e.preventDefault) e.preventDefault();\n\treturn true;\n}\nfunction includesParams(outer, inner) {\n\tfor (const key in inner) {\n\t\tconst innerValue = inner[key];\n\t\tconst outerValue = outer[key];\n\t\tif (typeof innerValue === \"string\") {\n\t\t\tif (innerValue !== outerValue) return false;\n\t\t} else if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value.valueOf() !== outerValue[i].valueOf())) return false;\n\t}\n\treturn true;\n}\n/**\n* Get the original path value of a record by following its aliasOf\n* @param record\n*/\nfunction getOriginalPath(record) {\n\treturn record ? record.aliasOf ? record.aliasOf.path : record.path : \"\";\n}\n/**\n* Utility class to get the active class based on defaults.\n* @param propClass\n* @param globalClass\n* @param defaultClass\n*/\nconst getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;\n\n//#endregion\n//#region src/RouterView.ts\nconst RouterViewImpl = /* @__PURE__ */ defineComponent({\n\tname: \"RouterView\",\n\tinheritAttrs: false,\n\tprops: {\n\t\tname: {\n\t\t\ttype: String,\n\t\t\tdefault: \"default\"\n\t\t},\n\t\troute: Object\n\t},\n\tcompatConfig: { MODE: 3 },\n\tsetup(props, { attrs, slots }) {\n\t\tprocess.env.NODE_ENV !== \"production\" && warnDeprecatedUsage();\n\t\tconst injectedRoute = inject(routerViewLocationKey);\n\t\tconst routeToDisplay = computed(() => props.route || injectedRoute.value);\n\t\tconst injectedDepth = inject(viewDepthKey, 0);\n\t\tconst depth = computed(() => {\n\t\t\tlet initialDepth = unref(injectedDepth);\n\t\t\tconst { matched } = routeToDisplay.value;\n\t\t\tlet matchedRoute;\n\t\t\twhile ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) initialDepth++;\n\t\t\treturn initialDepth;\n\t\t});\n\t\tconst matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);\n\t\tprovide(viewDepthKey, computed(() => depth.value + 1));\n\t\tprovide(matchedRouteKey, matchedRouteRef);\n\t\tprovide(routerViewLocationKey, routeToDisplay);\n\t\tconst viewRef = ref();\n\t\twatch(() => [\n\t\t\tviewRef.value,\n\t\t\tmatchedRouteRef.value,\n\t\t\tprops.name\n\t\t], ([instance, to, name], [oldInstance, from, oldName]) => {\n\t\t\tif (to) {\n\t\t\t\tto.instances[name] = instance;\n\t\t\t\tif (from && from !== to && instance && instance === oldInstance) {\n\t\t\t\t\tif (!to.leaveGuards.size) to.leaveGuards = from.leaveGuards;\n\t\t\t\t\tif (!to.updateGuards.size) to.updateGuards = from.updateGuards;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (instance && to && (!from || !isSameRouteRecord(to, from) || !oldInstance)) (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));\n\t\t}, { flush: \"post\" });\n\t\treturn () => {\n\t\t\tconst route = routeToDisplay.value;\n\t\t\tconst currentName = props.name;\n\t\t\tconst matchedRoute = matchedRouteRef.value;\n\t\t\tconst ViewComponent = matchedRoute && matchedRoute.components[currentName];\n\t\t\tif (!ViewComponent) return normalizeSlot(slots.default, {\n\t\t\t\tComponent: ViewComponent,\n\t\t\t\troute\n\t\t\t});\n\t\t\tconst routePropsOption = matchedRoute.props[currentName];\n\t\t\tconst routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === \"function\" ? routePropsOption(route) : routePropsOption : null;\n\t\t\tconst onVnodeUnmounted = (vnode) => {\n\t\t\t\tif (vnode.component.isUnmounted) matchedRoute.instances[currentName] = null;\n\t\t\t};\n\t\t\tconst component = h(ViewComponent, assign({}, routeProps, attrs, {\n\t\t\t\tonVnodeUnmounted,\n\t\t\t\tref: viewRef\n\t\t\t}));\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && component.ref) {\n\t\t\t\tconst info = {\n\t\t\t\t\tdepth: depth.value,\n\t\t\t\t\tname: matchedRoute.name,\n\t\t\t\t\tpath: matchedRoute.path,\n\t\t\t\t\tmeta: matchedRoute.meta\n\t\t\t\t};\n\t\t\t\t(isArray(component.ref) ? component.ref.map((r) => r.i) : [component.ref.i]).forEach((instance) => {\n\t\t\t\t\tinstance.__vrv_devtools = info;\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn normalizeSlot(slots.default, {\n\t\t\t\tComponent: component,\n\t\t\t\troute\n\t\t\t}) || component;\n\t\t};\n\t}\n});\nfunction normalizeSlot(slot, data) {\n\tif (!slot) return null;\n\tconst slotContent = slot(data);\n\treturn slotContent.length === 1 ? slotContent[0] : slotContent;\n}\n/**\n* Component to display the current route the user is at.\n*/\nconst RouterView = RouterViewImpl;\nfunction warnDeprecatedUsage() {\n\tconst instance = getCurrentInstance();\n\tconst parentName = instance.parent && instance.parent.type.name;\n\tconst parentSubTreeType = instance.parent && instance.parent.subTree && instance.parent.subTree.type;\n\tif (parentName && (parentName === \"KeepAlive\" || parentName.includes(\"Transition\")) && typeof parentSubTreeType === \"object\" && parentSubTreeType.name === \"RouterView\") {\n\t\tconst comp = parentName === \"KeepAlive\" ? \"keep-alive\" : \"transition\";\n\t\twarn$1(` can no longer be used directly inside or .\nUse slot props instead:\n\n\n <${comp}>\\n \\n \\n`);\n\t}\n}\n\n//#endregion\n//#region src/router.ts\n/**\n* Creates a Router instance that can be used by a Vue app.\n*\n* @param options - {@link RouterOptions}\n*/\nfunction createRouter(options) {\n\tconst matcher = createRouterMatcher(options.routes, options);\n\tconst parseQuery$1 = options.parseQuery || parseQuery;\n\tconst stringifyQuery$1 = options.stringifyQuery || stringifyQuery;\n\tconst routerHistory = options.history;\n\tif (process.env.NODE_ENV !== \"production\" && !routerHistory) throw new Error(\"Provide the \\\"history\\\" option when calling \\\"createRouter()\\\": https://router.vuejs.org/api/interfaces/RouterOptions.html#history\");\n\tconst beforeGuards = useCallbacks();\n\tconst beforeResolveGuards = useCallbacks();\n\tconst afterGuards = useCallbacks();\n\tconst currentRoute = shallowRef(START_LOCATION_NORMALIZED);\n\tlet pendingLocation = START_LOCATION_NORMALIZED;\n\tif (isBrowser && options.scrollBehavior && \"scrollRestoration\" in history) history.scrollRestoration = \"manual\";\n\tconst normalizeParams = applyToParams.bind(null, (paramValue) => \"\" + paramValue);\n\tconst encodeParams = applyToParams.bind(null, encodeParam);\n\tconst decodeParams = applyToParams.bind(null, decode);\n\tfunction addRoute(parentOrRoute, route) {\n\t\tlet parent;\n\t\tlet record;\n\t\tif (isRouteName(parentOrRoute)) {\n\t\t\tparent = matcher.getRecordMatcher(parentOrRoute);\n\t\t\tif (process.env.NODE_ENV !== \"production\" && !parent) warn$1(`Parent route \"${String(parentOrRoute)}\" not found when adding child route`, route);\n\t\t\trecord = route;\n\t\t} else record = parentOrRoute;\n\t\treturn matcher.addRoute(record, parent);\n\t}\n\tfunction removeRoute(name) {\n\t\tconst recordMatcher = matcher.getRecordMatcher(name);\n\t\tif (recordMatcher) matcher.removeRoute(recordMatcher);\n\t\telse if (process.env.NODE_ENV !== \"production\") warn$1(`Cannot remove non-existent route \"${String(name)}\"`);\n\t}\n\tfunction getRoutes() {\n\t\treturn matcher.getRoutes().map((routeMatcher) => routeMatcher.record);\n\t}\n\tfunction hasRoute(name) {\n\t\treturn !!matcher.getRecordMatcher(name);\n\t}\n\tfunction resolve(rawLocation, currentLocation) {\n\t\tcurrentLocation = assign({}, currentLocation || currentRoute.value);\n\t\tif (typeof rawLocation === \"string\") {\n\t\t\tconst locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);\n\t\t\tconst matchedRoute = matcher.resolve({ path: locationNormalized.path }, currentLocation);\n\t\t\tconst href = routerHistory.createHref(locationNormalized.fullPath);\n\t\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation}\"`);\n\t\t\t}\n\t\t\treturn assign(locationNormalized, matchedRoute, {\n\t\t\t\tparams: decodeParams(matchedRoute.params),\n\t\t\t\thash: decode(locationNormalized.hash),\n\t\t\t\tredirectedFrom: void 0,\n\t\t\t\thref\n\t\t\t});\n\t\t}\n\t\tif (process.env.NODE_ENV !== \"production\" && !isRouteLocation(rawLocation)) {\n\t\t\twarn$1(`router.resolve() was passed an invalid location. This will fail in production.\\n- Location:`, rawLocation);\n\t\t\treturn resolve({});\n\t\t}\n\t\tlet matcherLocation;\n\t\tif (rawLocation.path != null) {\n\t\t\tif (process.env.NODE_ENV !== \"production\" && \"params\" in rawLocation && !(\"name\" in rawLocation) && Object.keys(rawLocation.params).length) warn$1(`Path \"${rawLocation.path}\" was passed with params but they will be ignored. Use a named route alongside params instead.`);\n\t\t\tmatcherLocation = assign({}, rawLocation, { path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path });\n\t\t} else {\n\t\t\tconst targetParams = assign({}, rawLocation.params);\n\t\t\tfor (const key in targetParams) if (targetParams[key] == null) delete targetParams[key];\n\t\t\tmatcherLocation = assign({}, rawLocation, { params: encodeParams(targetParams) });\n\t\t\tcurrentLocation.params = encodeParams(currentLocation.params);\n\t\t}\n\t\tconst matchedRoute = matcher.resolve(matcherLocation, currentLocation);\n\t\tconst hash = rawLocation.hash || \"\";\n\t\tif (process.env.NODE_ENV !== \"production\" && hash && !hash.startsWith(\"#\")) warn$1(`A \\`hash\\` should always start with the character \"#\". Replace \"${hash}\" with \"#${hash}\".`);\n\t\tmatchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));\n\t\tconst fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {\n\t\t\thash: encodeHash(hash),\n\t\t\tpath: matchedRoute.path\n\t\t}));\n\t\tconst href = routerHistory.createHref(fullPath);\n\t\tif (process.env.NODE_ENV !== \"production\") {\n\t\t\tif (href.startsWith(\"//\")) warn$1(`Location \"${rawLocation}\" resolved to \"${href}\". A resolved location cannot start with multiple slashes.`);\n\t\t\telse if (!matchedRoute.matched.length) warn$1(`No match found for location with path \"${rawLocation.path != null ? rawLocation.path : rawLocation}\"`);\n\t\t}\n\t\treturn assign({\n\t\t\tfullPath,\n\t\t\thash,\n\t\t\tquery: stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}\n\t\t}, matchedRoute, {\n\t\t\tredirectedFrom: void 0,\n\t\t\thref\n\t\t});\n\t}\n\tfunction locationAsObject(to) {\n\t\treturn typeof to === \"string\" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);\n\t}\n\tfunction checkCanceledNavigation(to, from) {\n\t\tif (pendingLocation !== to) return createRouterError(ErrorTypes.NAVIGATION_CANCELLED, {\n\t\t\tfrom,\n\t\t\tto\n\t\t});\n\t}\n\tfunction push(to) {\n\t\treturn pushWithRedirect(to);\n\t}\n\tfunction replace(to) {\n\t\treturn push(assign(locationAsObject(to), { replace: true }));\n\t}\n\tfunction handleRedirectRecord(to, from) {\n\t\tconst lastMatched = to.matched[to.matched.length - 1];\n\t\tif (lastMatched && lastMatched.redirect) {\n\t\t\tconst { redirect } = lastMatched;\n\t\t\tlet newTargetLocation = typeof redirect === \"function\" ? redirect(to, from) : redirect;\n\t\t\tif (typeof newTargetLocation === \"string\") {\n\t\t\t\tnewTargetLocation = newTargetLocation.includes(\"?\") || newTargetLocation.includes(\"#\") ? newTargetLocation = locationAsObject(newTargetLocation) : { path: newTargetLocation };\n\t\t\t\tnewTargetLocation.params = {};\n\t\t\t}\n\t\t\tif (process.env.NODE_ENV !== \"production\" && newTargetLocation.path == null && !(\"name\" in newTargetLocation)) {\n\t\t\t\twarn$1(`Invalid redirect found:\\n${JSON.stringify(newTargetLocation, null, 2)}\\n when navigating to \"${to.fullPath}\". A redirect must contain a name or path. This will break in production.`);\n\t\t\t\tthrow new Error(\"Invalid redirect\");\n\t\t\t}\n\t\t\treturn assign({\n\t\t\t\tquery: to.query,\n\t\t\t\thash: to.hash,\n\t\t\t\tparams: newTargetLocation.path != null ? {} : to.params\n\t\t\t}, newTargetLocation);\n\t\t}\n\t}\n\tfunction pushWithRedirect(to, redirectedFrom) {\n\t\tconst targetLocation = pendingLocation = resolve(to);\n\t\tconst from = currentRoute.value;\n\t\tconst data = to.state;\n\t\tconst force = to.force;\n\t\tconst replace = to.replace === true;\n\t\tconst shouldRedirect = handleRedirectRecord(targetLocation, from);\n\t\tif (shouldRedirect) return pushWithRedirect(assign(locationAsObject(shouldRedirect), {\n\t\t\tstate: typeof shouldRedirect === \"object\" ? assign({}, data, shouldRedirect.state) : data,\n\t\t\tforce,\n\t\t\treplace\n\t\t}), redirectedFrom || targetLocation);\n\t\tconst toLocation = targetLocation;\n\t\ttoLocation.redirectedFrom = redirectedFrom;\n\t\tlet failure;\n\t\tif (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {\n\t\t\tfailure = createRouterError(ErrorTypes.NAVIGATION_DUPLICATED, {\n\t\t\t\tto: toLocation,\n\t\t\t\tfrom\n\t\t\t});\n\t\t\thandleScroll(from, from, true, false);\n\t\t}\n\t\treturn (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT) ? error : markAsReady(error) : triggerError(error, toLocation, from)).then((failure) => {\n\t\t\tif (failure) {\n\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\" && isSameRouteLocation(stringifyQuery$1, resolve(failure.to), toLocation) && redirectedFrom && (redirectedFrom._count = redirectedFrom._count ? redirectedFrom._count + 1 : 1) > 30) {\n\t\t\t\t\t\twarn$1(`Detected a possibly infinite redirection in a navigation guard when going from \"${from.fullPath}\" to \"${toLocation.fullPath}\". Aborting to avoid a Stack Overflow.\\n Are you always returning a new location within a navigation guard? That would lead to this error. Only return when redirecting or aborting, that should fix this. This might break in production if not fixed.`);\n\t\t\t\t\t\treturn Promise.reject(/* @__PURE__ */ new Error(\"Infinite redirect in navigation guard\"));\n\t\t\t\t\t}\n\t\t\t\t\treturn pushWithRedirect(assign({ replace }, locationAsObject(failure.to), {\n\t\t\t\t\t\tstate: typeof failure.to === \"object\" ? assign({}, data, failure.to.state) : data,\n\t\t\t\t\t\tforce\n\t\t\t\t\t}), redirectedFrom || toLocation);\n\t\t\t\t}\n\t\t\t} else failure = finalizeNavigation(toLocation, from, true, replace, data);\n\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\treturn failure;\n\t\t});\n\t}\n\t/**\n\t* Helper to reject and skip all navigation guards if a new navigation happened\n\t* @param to\n\t* @param from\n\t*/\n\tfunction checkCanceledNavigationAndReject(to, from) {\n\t\tconst error = checkCanceledNavigation(to, from);\n\t\treturn error ? Promise.reject(error) : Promise.resolve();\n\t}\n\tfunction runWithContext(fn) {\n\t\tconst app = installedApps.values().next().value;\n\t\treturn app && typeof app.runWithContext === \"function\" ? app.runWithContext(fn) : fn();\n\t}\n\tfunction navigate(to, from) {\n\t\tlet guards;\n\t\tconst [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);\n\t\tguards = extractComponentsGuards(leavingRecords.reverse(), \"beforeRouteLeave\", to, from);\n\t\tfor (const record of leavingRecords) record.leaveGuards.forEach((guard) => {\n\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t});\n\t\tconst canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);\n\t\tguards.push(canceledNavigationCheck);\n\t\treturn runGuardQueue(guards).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = extractComponentsGuards(updatingRecords, \"beforeRouteUpdate\", to, from);\n\t\t\tfor (const record of updatingRecords) record.updateGuards.forEach((guard) => {\n\t\t\t\tguards.push(guardToPromiseFn(guard, to, from));\n\t\t\t});\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const record of enteringRecords) if (record.beforeEnter) if (isArray(record.beforeEnter)) for (const beforeEnter of record.beforeEnter) guards.push(guardToPromiseFn(beforeEnter, to, from));\n\t\t\telse guards.push(guardToPromiseFn(record.beforeEnter, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tto.matched.forEach((record) => record.enterCallbacks = {});\n\t\t\tguards = extractComponentsGuards(enteringRecords, \"beforeRouteEnter\", to, from, runWithContext);\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).then(() => {\n\t\t\tguards = [];\n\t\t\tfor (const guard of beforeResolveGuards.list()) guards.push(guardToPromiseFn(guard, to, from));\n\t\t\tguards.push(canceledNavigationCheck);\n\t\t\treturn runGuardQueue(guards);\n\t\t}).catch((err) => isNavigationFailure(err, ErrorTypes.NAVIGATION_CANCELLED) ? err : Promise.reject(err));\n\t}\n\tfunction triggerAfterEach(to, from, failure) {\n\t\tafterGuards.list().forEach((guard) => runWithContext(() => guard(to, from, failure)));\n\t}\n\t/**\n\t* - Cleans up any navigation guards\n\t* - Changes the url if necessary\n\t* - Calls the scrollBehavior\n\t*/\n\tfunction finalizeNavigation(toLocation, from, isPush, replace, data) {\n\t\tconst error = checkCanceledNavigation(toLocation, from);\n\t\tif (error) return error;\n\t\tconst isFirstNavigation = from === START_LOCATION_NORMALIZED;\n\t\tconst state = !isBrowser ? {} : history.state;\n\t\tif (isPush) if (replace || isFirstNavigation) routerHistory.replace(toLocation.fullPath, assign({ scroll: isFirstNavigation && state && state.scroll }, data));\n\t\telse routerHistory.push(toLocation.fullPath, data);\n\t\tcurrentRoute.value = toLocation;\n\t\thandleScroll(toLocation, from, isPush, isFirstNavigation);\n\t\tmarkAsReady();\n\t}\n\tlet removeHistoryListener;\n\tfunction setupListeners() {\n\t\tif (removeHistoryListener) return;\n\t\tremoveHistoryListener = routerHistory.listen((to, _from, info) => {\n\t\t\tif (!router.listening) return;\n\t\t\tconst toLocation = resolve(to);\n\t\t\tconst shouldRedirect = handleRedirectRecord(toLocation, router.currentRoute.value);\n\t\t\tif (shouldRedirect) {\n\t\t\t\tpushWithRedirect(assign(shouldRedirect, {\n\t\t\t\t\treplace: true,\n\t\t\t\t\tforce: true\n\t\t\t\t}), toLocation).catch(noop);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tpendingLocation = toLocation;\n\t\t\tconst from = currentRoute.value;\n\t\t\tif (isBrowser) saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());\n\t\t\tnavigate(toLocation, from).catch((error) => {\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_CANCELLED)) return error;\n\t\t\t\tif (isNavigationFailure(error, ErrorTypes.NAVIGATION_GUARD_REDIRECT)) {\n\t\t\t\t\tpushWithRedirect(assign(locationAsObject(error.to), { force: true }), toLocation).then((failure) => {\n\t\t\t\t\t\tif (isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED) && !info.delta && info.type === NavigationType.pop) routerHistory.go(-1, false);\n\t\t\t\t\t}).catch(noop);\n\t\t\t\t\treturn Promise.reject();\n\t\t\t\t}\n\t\t\t\tif (info.delta) routerHistory.go(-info.delta, false);\n\t\t\t\treturn triggerError(error, toLocation, from);\n\t\t\t}).then((failure) => {\n\t\t\t\tfailure = failure || finalizeNavigation(toLocation, from, false);\n\t\t\t\tif (failure) {\n\t\t\t\t\tif (info.delta && !isNavigationFailure(failure, ErrorTypes.NAVIGATION_CANCELLED)) routerHistory.go(-info.delta, false);\n\t\t\t\t\telse if (info.type === NavigationType.pop && isNavigationFailure(failure, ErrorTypes.NAVIGATION_ABORTED | ErrorTypes.NAVIGATION_DUPLICATED)) routerHistory.go(-1, false);\n\t\t\t\t}\n\t\t\t\ttriggerAfterEach(toLocation, from, failure);\n\t\t\t}).catch(noop);\n\t\t});\n\t}\n\tlet readyHandlers = useCallbacks();\n\tlet errorListeners = useCallbacks();\n\tlet ready;\n\t/**\n\t* Trigger errorListeners added via onError and throws the error as well\n\t*\n\t* @param error - error to throw\n\t* @param to - location we were navigating to when the error happened\n\t* @param from - location we were navigating from when the error happened\n\t* @returns the error as a rejected promise\n\t*/\n\tfunction triggerError(error, to, from) {\n\t\tmarkAsReady(error);\n\t\tconst list = errorListeners.list();\n\t\tif (list.length) list.forEach((handler) => handler(error, to, from));\n\t\telse {\n\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"uncaught error during route navigation:\");\n\t\t\tconsole.error(error);\n\t\t}\n\t\treturn Promise.reject(error);\n\t}\n\tfunction isReady() {\n\t\tif (ready && currentRoute.value !== START_LOCATION_NORMALIZED) return Promise.resolve();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\treadyHandlers.add([resolve, reject]);\n\t\t});\n\t}\n\tfunction markAsReady(err) {\n\t\tif (!ready) {\n\t\t\tready = !err;\n\t\t\tsetupListeners();\n\t\t\treadyHandlers.list().forEach(([resolve, reject]) => err ? reject(err) : resolve());\n\t\t\treadyHandlers.reset();\n\t\t}\n\t\treturn err;\n\t}\n\tfunction handleScroll(to, from, isPush, isFirstNavigation) {\n\t\tconst { scrollBehavior } = options;\n\t\tif (!isBrowser || !scrollBehavior) return Promise.resolve();\n\t\tconst scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;\n\t\treturn nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));\n\t}\n\tconst go = (delta) => routerHistory.go(delta);\n\tlet started;\n\tconst installedApps = /* @__PURE__ */ new Set();\n\tconst router = {\n\t\tcurrentRoute,\n\t\tlistening: true,\n\t\taddRoute,\n\t\tremoveRoute,\n\t\tclearRoutes: matcher.clearRoutes,\n\t\thasRoute,\n\t\tgetRoutes,\n\t\tresolve,\n\t\toptions,\n\t\tpush,\n\t\treplace,\n\t\tgo,\n\t\tback: () => go(-1),\n\t\tforward: () => go(1),\n\t\tbeforeEach: beforeGuards.add,\n\t\tbeforeResolve: beforeResolveGuards.add,\n\t\tafterEach: afterGuards.add,\n\t\tonError: errorListeners.add,\n\t\tisReady,\n\t\tinstall(app) {\n\t\t\tapp.component(\"RouterLink\", RouterLink);\n\t\t\tapp.component(\"RouterView\", RouterView);\n\t\t\tapp.config.globalProperties.$router = router;\n\t\t\tObject.defineProperty(app.config.globalProperties, \"$route\", {\n\t\t\t\tenumerable: true,\n\t\t\t\tget: () => unref(currentRoute)\n\t\t\t});\n\t\t\tif (isBrowser && !started && currentRoute.value === START_LOCATION_NORMALIZED) {\n\t\t\t\tstarted = true;\n\t\t\t\tpush(routerHistory.location).catch((err) => {\n\t\t\t\t\tif (process.env.NODE_ENV !== \"production\") warn$1(\"Unexpected error when starting the router:\", err);\n\t\t\t\t});\n\t\t\t}\n\t\t\tconst reactiveRoute = {};\n\t\t\tfor (const key in START_LOCATION_NORMALIZED) Object.defineProperty(reactiveRoute, key, {\n\t\t\t\tget: () => currentRoute.value[key],\n\t\t\t\tenumerable: true\n\t\t\t});\n\t\t\tapp.provide(routerKey, router);\n\t\t\tapp.provide(routeLocationKey, shallowReactive(reactiveRoute));\n\t\t\tapp.provide(routerViewLocationKey, currentRoute);\n\t\t\tconst unmountApp = app.unmount;\n\t\t\tinstalledApps.add(app);\n\t\t\tapp.unmount = function() {\n\t\t\t\tinstalledApps.delete(app);\n\t\t\t\tif (installedApps.size < 1) {\n\t\t\t\t\tpendingLocation = START_LOCATION_NORMALIZED;\n\t\t\t\t\tremoveHistoryListener && removeHistoryListener();\n\t\t\t\t\tremoveHistoryListener = null;\n\t\t\t\t\tcurrentRoute.value = START_LOCATION_NORMALIZED;\n\t\t\t\t\tstarted = false;\n\t\t\t\t\tready = false;\n\t\t\t\t}\n\t\t\t\tunmountApp();\n\t\t\t};\n\t\t\tif ((process.env.NODE_ENV !== \"production\" || __VUE_PROD_DEVTOOLS__) && isBrowser && true) addDevtools(app, router, matcher);\n\t\t}\n\t};\n\tfunction runGuardQueue(guards) {\n\t\treturn guards.reduce((promise, guard) => promise.then(() => runWithContext(guard)), Promise.resolve());\n\t}\n\treturn router;\n}\n\n//#endregion\nexport { NavigationFailureType, RouterLink, RouterView, START_LOCATION_NORMALIZED as START_LOCATION, createMemoryHistory, createRouter, createRouterMatcher, createWebHashHistory, createWebHistory, isNavigationFailure, loadRouteLocation, matchedRouteKey, onBeforeRouteLeave, onBeforeRouteUpdate, parseQuery, routeLocationKey, routerKey, routerViewLocationKey, stringifyQuery, useLink, useRoute, useRouter, viewDepthKey };","import '../assets/NcActionSeparator-Ct2RnclR.css';\nimport { createElementBlock, openBlock } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcActionSeparator\"\n};\nconst _hoisted_1 = {\n class: \"action action-separator action--disabled\",\n role: \"separator\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", _hoisted_1);\n}\nconst NcActionSeparator = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-3e2324b7\"]]);\nexport {\n NcActionSeparator as N\n};\n//# sourceMappingURL=NcActionSeparator-Doekl1NX.mjs.map\n","import { defineComponent, createElementBlock, openBlock, renderSlot } from \"vue\";\nconst _hoisted_1 = { class: \"app-content-details\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppContentDetails\",\n setup(__props) {\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", _hoisted_1, [\n renderSlot(_ctx.$slots, \"default\")\n ]);\n };\n }\n});\nexport {\n _sfc_main as _\n};\n//# sourceMappingURL=NcAppContentDetails.vue_vue_type_script_setup_true_lang-Dnf4r_Ng.mjs.map\n","import { createElementBlock, openBlock, normalizeClass, renderSlot } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcAppContentList\",\n props: {\n /**\n * Is the list selected\n */\n selection: {\n type: Boolean,\n default: false\n },\n /**\n * Is the details pane shown\n */\n showDetails: {\n type: Boolean,\n default: false\n }\n }\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"app-content-list\", { selection: $props.selection, showdetails: $props.showDetails }])\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n}\nconst NcAppContentList = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render]]);\nexport {\n NcAppContentList as N\n};\n//# sourceMappingURL=NcAppContentList-DYFsuDKh.mjs.map\n","import '../assets/NcAppSettingsSection-ObwpPdgW.css';\nimport { defineComponent, useSlots, inject, computed, watch, onMounted, onBeforeUnmount, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, toDisplayString, renderSlot } from \"vue\";\nimport { l as logger } from \"./logger-D3RVzcfQ.mjs\";\nimport { u as useAppSettingsDialog, A as APP_SETTINGS_LEGACY_DESIGN_KEY } from \"./useAppSettingsDialog-C73Wx6iQ.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-labelledby\"];\nconst _hoisted_2 = [\"id\"];\nconst _hoisted_3 = { class: \"app-settings-section__description\" };\nconst _hoisted_4 = { class: \"app-settings-section__content\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcAppSettingsSection\",\n props: {\n name: {},\n description: {},\n id: {},\n order: {}\n },\n setup(__props) {\n const props = __props;\n const slots = useSlots();\n const { registerSection, unregisterSection } = useAppSettingsDialog();\n const legacy = inject(APP_SETTINGS_LEGACY_DESIGN_KEY);\n const htmlId = computed(() => \"settings-section_\" + props.id);\n watch(() => props.id, () => {\n if (!/^[a-z0-9\\-_]+$/.test(props.id)) {\n logger.warn(`Invalid id prop: ${props.id}. Only alphanumeric, dash and underscore are allowed.`);\n }\n }, { immediate: true });\n watch([() => props.id, () => props.name, () => props.order], ([newId, newName, newOrder], [oldId, ,]) => {\n unregisterSection(oldId);\n registerSection(newId, newName, newOrder, slots?.icon?.());\n });\n onMounted(() => {\n registerSection(props.id, props.name, props.order, slots?.icon?.());\n });\n onBeforeUnmount(() => {\n unregisterSection(props.id);\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"section\", {\n id: htmlId.value,\n \"aria-labelledby\": `${htmlId.value}--label`,\n class: normalizeClass([\"app-settings-section\", { \"app-settings-section__legacy\": unref(legacy) }])\n }, [\n createElementVNode(\"h3\", {\n id: `${htmlId.value}--label`,\n class: \"app-settings-section__name\"\n }, toDisplayString(_ctx.name), 9, _hoisted_2),\n createElementVNode(\"div\", _hoisted_3, toDisplayString(_ctx.description), 1),\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ])\n ], 10, _hoisted_1);\n };\n }\n});\nconst NcAppSettingsSection = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-4095bb7f\"]]);\nexport {\n NcAppSettingsSection as N\n};\n//# sourceMappingURL=NcAppSettingsSection-B2pFK0UK.mjs.map\n","import '../assets/NcCounterBubble-ZnteskDR.css';\nimport { defineComponent, computed, createElementBlock, openBlock, normalizeClass, toDisplayString } from \"vue\";\nimport { getCanonicalLocale } from \"@nextcloud/l10n\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"title\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcCounterBubble\",\n props: {\n count: {},\n active: { type: Boolean },\n type: { default: \"\" },\n raw: { type: Boolean }\n },\n setup(__props) {\n const props = __props;\n const humanizedCount = computed(() => {\n if (props.raw) {\n return props.count.toString();\n }\n const formatter = new Intl.NumberFormat(getCanonicalLocale(), {\n notation: \"compact\",\n compactDisplay: \"short\"\n });\n return formatter.format(props.count);\n });\n const originalCountAsTitleIfNeeded = computed(() => {\n if (props.raw) {\n return;\n }\n const countAsString = props.count.toString();\n if (countAsString === humanizedCount.value) {\n return;\n }\n return countAsString;\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\"counter-bubble__counter\", {\n active: _ctx.active,\n \"counter-bubble__counter--highlighted\": _ctx.type === \"highlighted\",\n \"counter-bubble__counter--outlined\": _ctx.type === \"outlined\"\n }]),\n title: originalCountAsTitleIfNeeded.value\n }, toDisplayString(humanizedCount.value), 11, _hoisted_1);\n };\n }\n});\nconst NcCounterBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-36ffc13f\"]]);\nexport {\n NcCounterBubble as N\n};\n//# sourceMappingURL=NcCounterBubble-CxxHHh8i.mjs.map\n","import '../assets/NcFormBox-CRdHJkrd.css';\nimport { defineComponent, useCssModule, provide, createElementBlock, openBlock, normalizeClass, renderSlot } from \"vue\";\nimport { N as NC_FORM_BOX_CONTEXT_KEY } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBox\",\n props: {\n row: { type: Boolean }\n },\n setup(__props) {\n const style = useCssModule();\n provide(NC_FORM_BOX_CONTEXT_KEY, {\n isInFormBox: true,\n formBoxItemClass: style.ncFormBox__item\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([_ctx.$style.ncFormBox, _ctx.row ? _ctx.$style.ncFormBox_row : _ctx.$style.ncFormBox_col])\n }, [\n renderSlot(_ctx.$slots, \"default\", {\n itemClass: _ctx.$style.ncFormBox__item\n })\n ], 2);\n };\n }\n});\nconst ncFormBox = \"_ncFormBox_TawZT\";\nconst ncFormBox_row = \"_ncFormBox_row_ZnhfS\";\nconst ncFormBox__item = \"_ncFormBox__item_7zc34\";\nconst ncFormBox_col = \"_ncFormBox_col_wHCZx\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_mubdv\",\n ncFormBox,\n ncFormBox_row,\n ncFormBox__item,\n ncFormBox_col\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBox = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBox as N\n};\n//# sourceMappingURL=NcFormBox-BYjllt0m.mjs.map\n","import '../assets/NcFormBoxItem-CATNOTQx.css';\nimport { defineComponent, useSlots, createElementBlock, openBlock, normalizeClass, unref, createElementVNode, createBlock, createCommentVNode, resolveDynamicComponent, mergeProps, withCtx, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { u as useNcFormBox } from \"./useNcFormBox-Djlh582y.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { i as isLegacy } from \"./legacy-DcjXBL_t.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n ...{ inheritAttrs: false },\n __name: \"NcFormBoxItem\",\n props: {\n tag: {},\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n invertedAccent: { type: Boolean, default: false },\n class: { default: () => void 0 },\n itemClasses: { default: () => void 0 }\n },\n emits: [\"click\"],\n setup(__props) {\n const slots = useSlots();\n const { formBoxItemClass } = useNcFormBox();\n const descriptionId = createElementId();\n const hasDescription = () => !!__props.description || !!slots.description;\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: normalizeClass([\n __props.class,\n _ctx.$style.formBoxItem,\n unref(formBoxItemClass),\n {\n [_ctx.$style.formBoxItem_inverted]: _ctx.invertedAccent && hasDescription(),\n [_ctx.$style.formBoxItem_legacy]: unref(isLegacy)\n }\n ])\n }, [\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__content)\n }, [\n (openBlock(), createBlock(resolveDynamicComponent(_ctx.tag), mergeProps({\n class: [_ctx.$style.formBoxItem__element, _ctx.itemClasses]\n }, _ctx.$attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", { descriptionId: unref(descriptionId) }, () => [\n createTextVNode(toDisplayString(_ctx.label || \"⚠️ Label is missing\"), 1)\n ])\n ]),\n _: 3\n }, 16, [\"class\"])),\n hasDescription() ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n id: unref(descriptionId),\n class: normalizeClass(_ctx.$style.formBoxItem__description)\n }, [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(_ctx.description), 1)\n ])\n ], 10, _hoisted_1)) : createCommentVNode(\"\", true)\n ], 2),\n createElementVNode(\"span\", {\n class: normalizeClass(_ctx.$style.formBoxItem__icon)\n }, [\n renderSlot(_ctx.$slots, \"icon\", { descriptionId: unref(descriptionId) }, () => [\n _cache[1] || (_cache[1] = createTextVNode(\" ⚠️ Icon is missing \", -1))\n ])\n ], 2)\n ], 2);\n };\n }\n});\nconst formBoxItem = \"_formBoxItem_74l6r\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_IgNr3\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_9GGkh\";\nconst formBoxItem__element = \"_formBoxItem__element_YEZDA\";\nconst formBoxItem__description = \"_formBoxItem__description_1GjPD\";\nconst formBoxItem__content = \"_formBoxItem__content_CcZbG\";\nconst formBoxItem__icon = \"_formBoxItem__icon_eZXNE\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_D2F-K\",\n formBoxItem,\n formBoxItem_legacy,\n formBoxItem_inverted,\n formBoxItem__element,\n formBoxItem__description,\n formBoxItem__content,\n formBoxItem__icon\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxItem as N\n};\n//# sourceMappingURL=NcFormBoxItem-BAAPOa6z.mjs.map\n","import '../assets/NcFormBoxSwitch-Cn-MBAzZ.css';\nimport { defineComponent, mergeModels, useModel, watch, createBlock, openBlock, unref, createSlots, withCtx, withDirectives, createVNode, createElementVNode, normalizeClass, vModelCheckbox, renderSlot, createTextVNode, toDisplayString } from \"vue\";\nimport { N as NcFormBoxItem } from \"./NcFormBoxItem-BAAPOa6z.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-CSrdR61T.mjs\";\nimport { c as createElementId } from \"./createElementId-DhjFt1I9.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _hoisted_1 = [\"id\", \"aria-describedby\", \"disabled\"];\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcFormBoxSwitch\",\n props: /* @__PURE__ */ mergeModels({\n label: { default: () => void 0 },\n description: { default: () => void 0 },\n disabled: { type: Boolean, default: false }\n }, {\n \"modelValue\": { type: Boolean, ...{ required: true } },\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"enable\", \"disable\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const inputId = createElementId();\n watch(modelValue, () => {\n if (modelValue.value) {\n emit(\"enable\");\n } else {\n emit(\"disable\");\n }\n }, {\n // defineModel emits update:modelValue synchronously\n // Watching it synchronously to emit the enable/disable events together with the update:modelValue event\n flush: \"sync\"\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(NcFormBoxItem, {\n tag: \"label\",\n for: unref(inputId)\n }, createSlots({\n icon: withCtx(({ descriptionId }) => [\n withDirectives(createElementVNode(\"input\", {\n id: unref(inputId),\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: normalizeClass(_ctx.$style.formBoxSwitch__input),\n type: \"checkbox\",\n role: \"switch\",\n \"aria-describedby\": descriptionId,\n disabled: _ctx.disabled\n }, null, 10, _hoisted_1), [\n [vModelCheckbox, modelValue.value]\n ]),\n createVNode(NcIconToggleSwitch, {\n checked: modelValue.value,\n inline: \"\"\n }, null, 8, [\"checked\"])\n ]),\n _: 2\n }, [\n _ctx.$slots.default || _ctx.label ? {\n name: \"default\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n createTextVNode(toDisplayString(_ctx.label), 1)\n ])\n ]),\n key: \"0\"\n } : void 0,\n _ctx.$slots.description || _ctx.description ? {\n name: \"description\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"description\", {}, () => [\n createTextVNode(toDisplayString(_ctx.description), 1)\n ])\n ]),\n key: \"1\"\n } : void 0\n ]), 1032, [\"for\"]);\n };\n }\n});\nconst formBoxSwitch__input = \"_formBoxSwitch__input_e7y7s\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_YAxyJ\",\n formBoxSwitch__input\n};\nconst cssModules = {\n \"$style\": style0\n};\nconst NcFormBoxSwitch = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__cssModules\", cssModules]]);\nexport {\n NcFormBoxSwitch as N\n};\n//# sourceMappingURL=NcFormBoxSwitch-m9uRjJzl.mjs.map\n","import '../assets/NcListItem-Cat18cSx.css';\nimport { N as NcActions } from \"./NcActions-BWDsG06k.mjs\";\nimport { N as NcCounterBubble } from \"./NcCounterBubble-CxxHHh8i.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcVNodes.vue_vue_type_script_lang-BqUHinRZ.mjs\";\nimport { resolveComponent, createBlock, openBlock, resolveDynamicComponent, normalizeProps, guardReactiveProps, withCtx, createElementVNode, mergeProps, normalizeClass, createElementBlock, createCommentVNode, withKeys, renderSlot, createTextVNode, toDisplayString, withDirectives, vShow, createVNode, createSlots } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = {\n name: \"NcListItem\",\n components: {\n NcActions,\n NcCounterBubble,\n NcVNodes: _sfc_main$1\n },\n inheritAttrs: false,\n props: {\n /**\n * The details text displayed in the upper right part of the component\n */\n details: {\n type: String,\n default: \"\"\n },\n /**\n * Name (first line of text)\n */\n name: {\n type: String,\n default: void 0\n },\n /**\n * The route for the router link.\n */\n to: {\n type: [String, Object],\n default: null\n },\n /**\n * The value for the external link\n */\n href: {\n type: String,\n default: \"#\"\n },\n /**\n * The HTML target attribute used for the link\n */\n target: {\n type: String,\n default: \"\"\n },\n /**\n * Id for the `` element\n */\n anchorId: {\n type: String,\n default: \"\"\n },\n /**\n * Make subname bold\n */\n bold: {\n type: Boolean,\n default: false\n },\n /**\n * Show the NcListItem in compact design\n */\n compact: {\n type: Boolean,\n default: false\n },\n /**\n * Toggle the active state of the component\n */\n active: {\n type: Boolean,\n default: void 0\n },\n /**\n * Aria label for the wrapper element\n */\n linkAriaLabel: {\n type: String,\n default: \"\"\n },\n /**\n * Aria label for the actions toggle\n */\n actionsAriaLabel: {\n type: String,\n default: void 0\n },\n /**\n * If different from 0 this component will display the\n * NcCounterBubble component\n */\n counterNumber: {\n type: [Number, String],\n default: 0\n },\n /**\n * Outlined or highlighted state of the counter\n */\n counterType: {\n type: String,\n default: \"\",\n validator(value) {\n return [\"highlighted\", \"outlined\", \"\"].indexOf(value) !== -1;\n }\n },\n /**\n * To be used only when the elements in the actions menu are very important\n */\n forceDisplayActions: {\n type: Boolean,\n default: false\n },\n /**\n * Force the actions to display in a three dot menu\n */\n forceMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Show the list component layout\n */\n oneLine: {\n type: Boolean,\n default: false\n }\n },\n emits: [\n \"click\",\n \"dragstart\",\n \"update:menuOpen\"\n ],\n data() {\n return {\n hovered: false,\n hasActions: false,\n hasSubname: false,\n displayActionsOnHoverFocus: false,\n menuOpen: false,\n hasIndicator: false,\n hasDetails: false\n };\n },\n computed: {\n showAdditionalElements() {\n return !this.displayActionsOnHoverFocus || this.forceDisplayActions;\n },\n showDetails() {\n return (this.details !== \"\" || this.hasDetails) && (!this.displayActionsOnHoverFocus || this.forceDisplayActions);\n }\n },\n watch: {\n menuOpen(newValue) {\n if (!newValue && !this.hovered) {\n this.displayActionsOnHoverFocus = false;\n }\n }\n },\n mounted() {\n this.checkSlots();\n },\n updated() {\n this.checkSlots();\n },\n methods: {\n /**\n * Handle link click\n *\n * @param {MouseEvent|KeyboardEvent} event - Native click or keydown event\n * @param {Function} [navigate] - VueRouter link's navigate if any\n * @param {string} [routerLinkHref] - VueRouter link's href\n */\n onClick(event, navigate, routerLinkHref) {\n this.$emit(\"click\", event);\n if (event.metaKey || event.altKey || event.ctrlKey || event.shiftKey) {\n return;\n }\n if (routerLinkHref) {\n navigate?.(event);\n event.preventDefault();\n }\n },\n showActions() {\n if (this.hasActions) {\n this.displayActionsOnHoverFocus = true;\n }\n this.hovered = false;\n },\n hideActions() {\n this.displayActionsOnHoverFocus = false;\n },\n /**\n * @param {FocusEvent} event UI event\n */\n handleBlur(event) {\n if (this.menuOpen) {\n return;\n }\n if (this.$refs[\"list-item\"]?.contains(event.relatedTarget)) {\n return;\n }\n this.hideActions();\n },\n /**\n * Hide the actions on mouseleave unless the menu is open\n */\n handleMouseleave() {\n if (!this.menuOpen) {\n this.displayActionsOnHoverFocus = false;\n }\n this.hovered = false;\n },\n handleMouseover() {\n this.showActions();\n this.hovered = true;\n },\n handleActionsUpdateOpen(e) {\n this.menuOpen = e;\n this.$emit(\"update:menuOpen\", e);\n },\n // Check if subname and actions slots are populated\n checkSlots() {\n if (this.hasActions !== !!this.$slots.actions) {\n this.hasActions = !!this.$slots.actions;\n }\n if (this.hasSubname !== !!this.$slots.subname) {\n this.hasSubname = !!this.$slots.subname;\n }\n if (this.hasIndicator !== !!this.$slots.indicator) {\n this.hasIndicator = !!this.$slots.indicator;\n }\n if (this.hasDetails !== !!this.$slots.details) {\n this.hasDetails = !!this.$slots.details;\n }\n }\n }\n};\nconst _hoisted_1 = [\"id\", \"aria-label\", \"href\", \"target\", \"rel\", \"onClick\"];\nconst _hoisted_2 = { class: \"list-item-content\" };\nconst _hoisted_3 = { class: \"list-item-content__main\" };\nconst _hoisted_4 = { class: \"list-item-content__name\" };\nconst _hoisted_5 = { class: \"list-item-content__details\" };\nconst _hoisted_6 = {\n key: 0,\n class: \"list-item-details__details\"\n};\nconst _hoisted_7 = {\n key: 1,\n class: \"list-item-details__extra\"\n};\nconst _hoisted_8 = {\n key: 1,\n class: \"list-item-details__indicator\"\n};\nconst _hoisted_9 = {\n key: 0,\n class: \"list-item-content__extra-actions\"\n};\nconst _hoisted_10 = {\n key: 2,\n class: \"list-item__extra\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcCounterBubble = resolveComponent(\"NcCounterBubble\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n return openBlock(), createBlock(resolveDynamicComponent($props.to ? \"router-link\" : \"NcVNodes\"), normalizeProps(guardReactiveProps({ ...$props.to && { custom: true, to: $props.to } })), {\n default: withCtx(({ href: routerLinkHref, navigate, isActive }) => [\n createElementVNode(\"li\", mergeProps({\n class: [\"list-item__wrapper\", { \"list-item__wrapper--active\": $props.active ?? isActive }]\n }, _ctx.$attrs), [\n createElementVNode(\"div\", {\n ref: \"list-item\",\n class: normalizeClass([\"list-item\", {\n \"list-item--compact\": $props.compact,\n \"list-item--one-line\": $props.oneLine\n }]),\n onMouseover: _cache[5] || (_cache[5] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[6] || (_cache[6] = (...args) => $options.handleMouseleave && $options.handleMouseleave(...args))\n }, [\n createElementVNode(\"a\", {\n id: $props.anchorId || void 0,\n \"aria-label\": $props.linkAriaLabel,\n class: \"list-item__anchor\",\n href: routerLinkHref || $props.href,\n target: $props.target || ($props.href === \"#\" ? void 0 : \"_blank\"),\n rel: $props.href === \"#\" ? void 0 : \"noopener noreferrer\",\n onFocus: _cache[0] || (_cache[0] = (...args) => $options.showActions && $options.showActions(...args)),\n onFocusout: _cache[1] || (_cache[1] = (...args) => $options.handleBlur && $options.handleBlur(...args)),\n onClick: ($event) => $options.onClick($event, navigate, routerLinkHref),\n onDragstart: _cache[2] || (_cache[2] = ($event) => _ctx.$emit(\"dragstart\", $event)),\n onKeydown: _cache[3] || (_cache[3] = withKeys((...args) => $options.hideActions && $options.hideActions(...args), [\"esc\"]))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, void 0, true),\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n createElementVNode(\"div\", _hoisted_4, [\n renderSlot(_ctx.$slots, \"name\", {}, () => [\n createTextVNode(toDisplayString($props.name), 1)\n ], true)\n ]),\n $data.hasSubname ? (openBlock(), createElementBlock(\"div\", {\n key: 0,\n class: normalizeClass([\"list-item-content__subname\", { \"list-item-content__subname--bold\": $props.bold }])\n }, [\n renderSlot(_ctx.$slots, \"subname\", {}, void 0, true)\n ], 2)) : createCommentVNode(\"\", true)\n ]),\n createElementVNode(\"div\", _hoisted_5, [\n $options.showDetails ? (openBlock(), createElementBlock(\"div\", _hoisted_6, [\n renderSlot(_ctx.$slots, \"details\", {}, () => [\n createTextVNode(toDisplayString($props.details), 1)\n ], true)\n ])) : createCommentVNode(\"\", true),\n $props.counterNumber !== 0 || $data.hasIndicator ? withDirectives((openBlock(), createElementBlock(\"div\", _hoisted_7, [\n $props.counterNumber !== 0 ? (openBlock(), createBlock(_component_NcCounterBubble, {\n key: 0,\n count: $props.counterNumber,\n active: $props.active ?? isActive,\n class: \"list-item-details__counter\",\n type: $props.counterType\n }, null, 8, [\"count\", \"active\", \"type\"])) : createCommentVNode(\"\", true),\n $data.hasIndicator ? (openBlock(), createElementBlock(\"span\", _hoisted_8, [\n renderSlot(_ctx.$slots, \"indicator\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 512)), [\n [vShow, $options.showAdditionalElements]\n ]) : createCommentVNode(\"\", true)\n ])\n ])\n ], 40, _hoisted_1),\n _ctx.$slots[\"extra-actions\"] ? (openBlock(), createElementBlock(\"div\", _hoisted_9, [\n renderSlot(_ctx.$slots, \"extra-actions\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true),\n $props.forceDisplayActions || $data.displayActionsOnHoverFocus ? (openBlock(), createElementBlock(\"div\", {\n key: 1,\n class: \"list-item-content__actions\",\n onFocusout: _cache[4] || (_cache[4] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $props.active ?? isActive,\n forceMenu: $props.forceMenu,\n \"aria-label\": $props.actionsAriaLabel,\n \"onUpdate:open\": $options.handleActionsUpdateOpen\n }, createSlots({\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions\", {}, void 0, true)\n ]),\n _: 2\n }, [\n _ctx.$slots[\"actions-icon\"] ? {\n name: \"icon\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"actions-icon\", {}, void 0, true)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"primary\", \"forceMenu\", \"aria-label\", \"onUpdate:open\"])\n ], 32)) : createCommentVNode(\"\", true),\n _ctx.$slots.extra ? (openBlock(), createElementBlock(\"div\", _hoisted_10, [\n renderSlot(_ctx.$slots, \"extra\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ], 34)\n ], 16)\n ]),\n _: 3\n }, 16);\n}\nconst NcListItem = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-bc710154\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-DSdLnQJX.mjs.map\n","import '../assets/NcListItemIcon-DJRcmlo1.css';\nimport \"escape-html\";\nimport \"striptags\";\nimport { resolveComponent, createElementBlock, openBlock, normalizeStyle, normalizeClass, createVNode, createElementVNode, renderSlot, mergeProps, createBlock, createCommentVNode, toDisplayString } from \"vue\";\nimport \"../composables/useIsDarkTheme/index.mjs\";\nimport \"@nextcloud/router\";\nimport \"../functions/isDarkTheme/index.mjs\";\nimport \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_45238efd_lang-D6LzDiYf.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nimport { u as userStatus, N as NcAvatar } from \"./NcAvatar-C9d7Wrc8.mjs\";\nimport { _ as _sfc_main$1 } from \"./NcHighlight.vue_vue_type_script_lang-DnWQDM_2.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper-BvLanNaW.mjs\";\nconst margin = 8;\nconst defaultSize = 32;\nconst _sfc_main = {\n name: \"NcListItemIcon\",\n components: {\n NcAvatar,\n NcHighlight: _sfc_main$1,\n NcIconSvgWrapper\n },\n mixins: [\n userStatus\n ],\n props: {\n /**\n * Default first line text\n */\n name: {\n type: String,\n required: true\n },\n /**\n * Secondary optional line\n * Only visible on size of 32 and above\n */\n subname: {\n type: String,\n default: \"\"\n },\n /**\n * Icon class to be displayed at the end of the component\n */\n icon: {\n type: String,\n default: \"\"\n },\n /**\n * SVG icon to be displayed at the end of the component\n */\n iconSvg: {\n type: String,\n default: \"\"\n },\n /**\n * Descriptive name for the icon\n */\n iconName: {\n type: String,\n default: \"\"\n },\n /**\n * Search within the highlight of name/subname\n */\n search: {\n type: String,\n default: \"\"\n },\n /**\n * Set a size in px that will define the avatar height/width\n * and therefore, the height of the component\n */\n avatarSize: {\n type: Number,\n default: defaultSize\n },\n /**\n * Disable the margins of this component.\n * Useful for integration in `NcSelect` for example\n */\n noMargin: {\n type: Boolean,\n default: false\n },\n /**\n * See the [Avatar](#Avatar) displayName prop\n * Fallback to name\n */\n displayName: {\n type: String,\n default: null\n },\n /**\n * See the [Avatar](#Avatar) isNoUser prop\n * Enable/disable the UserStatus fetching\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Unique list item ID\n */\n id: {\n type: String,\n default: null\n }\n },\n setup() {\n return {\n margin,\n defaultSize\n };\n },\n computed: {\n hasIcon() {\n return this.icon !== \"\";\n },\n hasIconSvg() {\n return this.iconSvg !== \"\";\n },\n isValidSubname() {\n return this.subname?.trim?.() !== \"\";\n },\n isSizeBigEnough() {\n return this.avatarSize >= 26;\n },\n cssVars() {\n const margin2 = this.noMargin ? 0 : this.margin;\n return {\n \"--height\": this.avatarSize + 2 * margin2 + \"px\",\n \"--margin\": this.margin + \"px\"\n };\n },\n /**\n * Separates the search property into two parts, the first one is the search part on the name, the second on the subname.\n *\n * @return {[string, string]}\n */\n searchParts() {\n const EMAIL_NOTATION = /^([^<]*)<([^>]+)>?$/;\n const match = this.search.match(EMAIL_NOTATION);\n if (this.isNoUser || !match) {\n return [this.search, this.search];\n }\n return [match[1].trim(), match[2]];\n }\n },\n beforeMount() {\n if (!this.isNoUser && !this.subname) {\n this.fetchUserStatus(this.user);\n }\n }\n};\nconst _hoisted_1 = [\"id\"];\nconst _hoisted_2 = { class: \"option__details\" };\nconst _hoisted_3 = { key: 1 };\nconst _hoisted_4 = [\"aria-label\"];\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcAvatar = resolveComponent(\"NcAvatar\");\n const _component_NcHighlight = resolveComponent(\"NcHighlight\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n return openBlock(), createElementBlock(\"span\", {\n id: $props.id,\n class: normalizeClass([\"option\", { \"option--compact\": $props.avatarSize < $setup.defaultSize }]),\n style: normalizeStyle($options.cssVars)\n }, [\n createVNode(_component_NcAvatar, mergeProps(_ctx.$attrs, {\n disableMenu: \"\",\n disableTooltip: \"\",\n displayName: $props.displayName || $props.name,\n isNoUser: $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"displayName\", \"isNoUser\", \"size\"]),\n createElementVNode(\"div\", _hoisted_2, [\n createVNode(_component_NcHighlight, {\n class: \"option__lineone\",\n text: $props.name,\n search: $options.searchParts[0]\n }, null, 8, [\"text\", \"search\"]),\n $options.isValidSubname && $options.isSizeBigEnough ? (openBlock(), createBlock(_component_NcHighlight, {\n key: 0,\n class: \"option__linetwo\",\n text: $props.subname,\n search: $options.searchParts[1]\n }, null, 8, [\"text\", \"search\"])) : _ctx.hasStatus ? (openBlock(), createElementBlock(\"span\", _hoisted_3, [\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.icon), 1),\n createElementVNode(\"span\", null, toDisplayString(_ctx.userStatus.message), 1)\n ])) : createCommentVNode(\"\", true)\n ]),\n renderSlot(_ctx.$slots, \"default\", {}, () => [\n $options.hasIconSvg ? (openBlock(), createBlock(_component_NcIconSvgWrapper, {\n key: 0,\n class: \"option__icon\",\n svg: $props.iconSvg,\n name: $props.iconName\n }, null, 8, [\"svg\", \"name\"])) : $options.hasIcon ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: normalizeClass([\"icon option__icon\", $props.icon]),\n \"aria-label\": $props.iconName\n }, null, 10, _hoisted_4)) : createCommentVNode(\"\", true)\n ], true)\n ], 14, _hoisted_1);\n}\nconst NcListItemIcon = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-0ee94269\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon-C_yQkDIv.mjs.map\n","import '../assets/NcSelectUsers-YF5729PJ.css';\nimport { defineComponent, mergeModels, useModel, ref, watch, createBlock, openBlock, unref, mergeProps, withCtx, createVNode } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-C_yQkDIv.mjs\";\nimport { N as NcSelect } from \"./NcSelect-DLheQ2yp.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcSelectUsers\",\n props: /* @__PURE__ */ mergeModels({\n ariaLabelClearSelected: {},\n ariaLabelListbox: {},\n ariaLabelDeselectOption: { type: Function },\n disabled: { type: Boolean },\n inputId: {},\n inputLabel: {},\n labelOutside: { type: Boolean },\n keepOpen: { type: Boolean },\n loading: { type: Boolean },\n multiple: { type: Boolean },\n noWrap: { type: Boolean },\n options: {},\n placeholder: {},\n required: { type: Boolean }\n }, {\n \"modelValue\": {},\n \"modelModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"search\"], [\"update:modelValue\"]),\n setup(__props, { emit: __emit }) {\n const modelValue = useModel(__props, \"modelValue\");\n const emit = __emit;\n const search = ref(\"\");\n watch(search, () => emit(\"search\", search.value));\n const clickableArea = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-clickable-area\"));\n const gridBaseLine = Number.parseInt(window.getComputedStyle(document.body).getPropertyValue(\"--default-grid-baseline\"));\n const avatarSize = clickableArea - 2 * gridBaseLine;\n function filterBy(option, label, search2) {\n const EMAIL_NOTATION = /[^<]*<([^>]+)/;\n const match = search2.match(EMAIL_NOTATION);\n const subname = option.subname?.toLocaleLowerCase() ?? \"\";\n return match && subname.indexOf(match[1].toLocaleLowerCase()) > -1 || `${label} ${option.subname}`.toLocaleLowerCase().indexOf(search2.toLocaleLowerCase()) > -1;\n }\n return (_ctx, _cache) => {\n return openBlock(), createBlock(unref(NcSelect), mergeProps({\n modelValue: modelValue.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),\n class: \"nc-select-users\"\n }, _ctx.$props, {\n filterBy,\n label: \"displayName\",\n onSearch: _cache[1] || (_cache[1] = ($event) => search.value = $event)\n }), {\n option: withCtx((option) => [\n createVNode(unref(NcListItemIcon), mergeProps(option, {\n avatarSize: 32,\n name: option.displayName,\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n \"selected-option\": withCtx((selectedOption) => [\n createVNode(unref(NcListItemIcon), mergeProps(selectedOption, {\n avatarSize,\n name: selectedOption.displayName,\n noMargin: \"\",\n search: search.value\n }), null, 16, [\"name\", \"search\"])\n ]),\n _: 1\n }, 16, [\"modelValue\"]);\n };\n }\n});\nconst NcSelectUsers = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-e8e18fd3\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-BlMjKkJ3.mjs.map\n","import '../assets/NcUserBubble-DFUmBxeb.css';\nimport { createElementBlock, openBlock, renderSlot, defineComponent, mergeModels, useModel, computed, warn, watch, createBlock, resolveDynamicComponent, withCtx, mergeProps, createVNode, createElementVNode, createCommentVNode, normalizeStyle, toDisplayString } from \"vue\";\nimport { RouterLink } from \"vue-router\";\nimport { N as NcAvatar } from \"./NcAvatar-C9d7Wrc8.mjs\";\nimport { N as NcPopover } from \"./NcPopover-OqcYrWOx.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper-1tPrXgE0.mjs\";\nconst _sfc_main$1 = {};\nfunction _sfc_render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", null, [\n renderSlot(_ctx.$slots, \"trigger\")\n ]);\n}\nconst NcUserBubbleDiv = /* @__PURE__ */ _export_sfc(_sfc_main$1, [[\"render\", _sfc_render]]);\nconst _hoisted_1 = { class: \"user-bubble__name\" };\nconst _hoisted_2 = {\n key: 0,\n class: \"user-bubble__secondary\"\n};\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"NcUserBubble\",\n props: /* @__PURE__ */ mergeModels({\n avatarImage: { default: void 0 },\n user: { default: void 0 },\n displayName: { default: void 0 },\n showUserStatus: { type: Boolean },\n url: { default: void 0 },\n to: { default: void 0 },\n primary: { type: Boolean },\n size: { default: 20 },\n margin: { default: 2 }\n }, {\n \"open\": { type: Boolean },\n \"openModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"click\"], [\"update:open\"]),\n setup(__props, { emit: __emit }) {\n const isOpen = useModel(__props, \"open\");\n const props = __props;\n const emit = __emit;\n const isAvatarUrl = computed(() => {\n if (!props.avatarImage) {\n return false;\n }\n try {\n const url = new URL(props.avatarImage);\n return !!url;\n } catch {\n return false;\n }\n });\n const isCustomAvatar = computed(() => !!props.avatarImage);\n const avatarStyle = computed(() => ({\n marginInlineStart: `${props.margin}px`\n }));\n const hasUrl = computed(() => {\n if (!props.url || props.url.trim() === \"\") {\n return false;\n }\n try {\n const url = new URL(props.url, props.url?.startsWith?.(\"/\") ? window.location.href : void 0);\n return !!url;\n } catch {\n warn(\"[NcUserBubble] Invalid URL passed\", { url: props.url });\n return false;\n }\n });\n const href = computed(() => hasUrl.value ? props.url : void 0);\n const contentComponent = computed(() => {\n if (hasUrl.value) {\n return \"a\";\n } else if (props.to) {\n return RouterLink;\n } else {\n return \"div\";\n }\n });\n const contentStyle = computed(() => ({\n height: `${props.size}px`,\n lineHeight: `${props.size}px`,\n borderRadius: `${props.size / 2}px`\n }));\n watch([() => props.displayName, () => props.user], () => {\n if (!props.displayName && !props.user) {\n warn(\"[NcUserBubble] At least `displayName` or `user` property should be set.\");\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(resolveDynamicComponent(!!_ctx.$slots.default ? NcPopover : NcUserBubbleDiv), {\n shown: isOpen.value,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => isOpen.value = $event),\n class: \"user-bubble__wrapper\",\n trigger: \"hover focus\"\n }, {\n trigger: withCtx(({ attrs }) => [\n (openBlock(), createBlock(resolveDynamicComponent(contentComponent.value), mergeProps({\n class: [\"user-bubble__content\", { \"user-bubble__content--primary\": _ctx.primary }],\n style: contentStyle.value,\n to: _ctx.to,\n href: href.value\n }, attrs, {\n onClick: _cache[0] || (_cache[0] = ($event) => emit(\"click\", $event))\n }), {\n default: withCtx(() => [\n createVNode(NcAvatar, {\n url: isCustomAvatar.value && isAvatarUrl.value ? _ctx.avatarImage : void 0,\n iconClass: isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n displayName: _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n disableTooltip: \"\",\n disableMenu: \"\",\n hideStatus: !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"iconClass\", \"user\", \"displayName\", \"size\", \"style\", \"hideStatus\"]),\n createElementVNode(\"span\", _hoisted_1, toDisplayString(_ctx.displayName || _ctx.user), 1),\n !!_ctx.$slots.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n renderSlot(_ctx.$slots, \"name\", {}, void 0, true)\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, 1040, [\"class\", \"style\", \"to\", \"href\"]))\n ]),\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"default\", {}, void 0, true)\n ]),\n _: 3\n }, 40, [\"shown\"]);\n };\n }\n});\nconst NcUserBubble = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"__scopeId\", \"data-v-9189d023\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-vOAXLHB5.mjs.map\n","export default function cumsum(values, valueof) {\n var sum = 0, index = 0;\n return Float64Array.from(values, valueof === undefined\n ? v => (sum += +v || 0)\n : v => (sum += +valueof(v, index++, values) || 0));\n}","export default function max(values, valueof) {\n let max;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (max < value || (max === undefined && value >= value))) {\n max = value;\n }\n }\n }\n return max;\n}\n","export default function min(values, valueof) {\n let min;\n if (valueof === undefined) {\n for (const value of values) {\n if (value != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if ((value = valueof(value, ++index, values)) != null\n && (min > value || (min === undefined && value >= value))) {\n min = value;\n }\n }\n }\n return min;\n}\n","export default function sum(values, valueof) {\n let sum = 0;\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n sum += value;\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n sum += value;\n }\n }\n }\n return sum;\n}\n","var noop = {value: () => {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","import namespaces from \"./namespaces.js\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name; // eslint-disable-line no-prototype-builtins\n}\n","import namespace from \"./namespace.js\";\nimport {xhtml} from \"./namespaces.js\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport selector from \"../selector.js\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","// Given something array like (or null), returns something that is strictly an\n// array. This is used to ensure that array-like objects passed to d3.selectAll\n// or selection.selectAll are converted into proper arrays when creating a\n// selection; we don’t ever want to create a selection backed by a live\n// HTMLCollection or NodeList. However, note that selection.selectAll will use a\n// static NodeList as a group, since it safely derived from querySelectorAll.\nexport default function array(x) {\n return x == null ? [] : Array.isArray(x) ? x : Array.from(x);\n}\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","import {Selection} from \"./index.js\";\nimport array from \"../array.js\";\nimport selectorAll from \"../selectorAll.js\";\n\nfunction arrayAll(select) {\n return function() {\n return array(select.apply(this, arguments));\n };\n}\n\nexport default function(select) {\n if (typeof select === \"function\") select = arrayAll(select);\n else select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n\nexport function childMatcher(selector) {\n return function(node) {\n return node.matches(selector);\n };\n}\n\n","import {childMatcher} from \"../matcher.js\";\n\nvar find = Array.prototype.find;\n\nfunction childFind(match) {\n return function() {\n return find.call(this.children, match);\n };\n}\n\nfunction childFirst() {\n return this.firstElementChild;\n}\n\nexport default function(match) {\n return this.select(match == null ? childFirst\n : childFind(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {childMatcher} from \"../matcher.js\";\n\nvar filter = Array.prototype.filter;\n\nfunction children() {\n return Array.from(this.children);\n}\n\nfunction childrenFilter(match) {\n return function() {\n return filter.call(this.children, match);\n };\n}\n\nexport default function(match) {\n return this.selectAll(match == null ? children\n : childrenFilter(typeof match === \"function\" ? match : childMatcher(match)));\n}\n","import {Selection} from \"./index.js\";\nimport matcher from \"../matcher.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import {Selection} from \"./index.js\";\nimport {EnterNode} from \"./enter.js\";\nimport constant from \"../constant.js\";\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = new Map,\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = key.call(node, node.__data__, i, group) + \"\";\n if (nodeByKeyValue.has(keyValue)) {\n exit[i] = node;\n } else {\n nodeByKeyValue.set(keyValue, node);\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = key.call(parent, data[i], i, data) + \"\";\n if (node = nodeByKeyValue.get(keyValue)) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue.delete(keyValue);\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue.get(keyValues[i]) === node)) {\n exit[i] = node;\n }\n }\n}\n\nfunction datum(node) {\n return node.__data__;\n}\n\nexport default function(value, key) {\n if (!arguments.length) return Array.from(this, datum);\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = arraylike(value.call(parent, parent && parent.__data__, j, parents)),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n\n// Given some data, this returns an array-like view of it: an object that\n// exposes a length property and allows numeric indexing. Note that unlike\n// selectAll, this isn’t worried about “live” collections because the resulting\n// array will only be used briefly while data is being bound. (It is possible to\n// cause the data to change while iterating by using a key function, but please\n// don’t; we’d rather avoid a gratuitous copy.)\nfunction arraylike(data) {\n return typeof data === \"object\" && \"length\" in data\n ? data // Array, TypedArray, NodeList, array-like\n : Array.from(data); // Map, Set, iterable, string, or anything else\n}\n","import sparse from \"./sparse.js\";\nimport {Selection} from \"./index.js\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n if (typeof onenter === \"function\") {\n enter = onenter(enter);\n if (enter) enter = enter.selection();\n } else {\n enter = enter.append(onenter + \"\");\n }\n if (onupdate != null) {\n update = onupdate(update);\n if (update) update = update.selection();\n }\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(context) {\n var selection = context.selection ? context.selection() : context;\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","import {Selection} from \"./index.js\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n let size = 0;\n for (const node of this) ++size; // eslint-disable-line no-unused-vars\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import namespace from \"../namespace.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import defaultView from \"../window.js\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import creator from \"../creator.js\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","import creator from \"../creator.js\";\nimport selector from \"../selector.js\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","function contextListener(listener) {\n return function(event) {\n listener.call(this, event, this.__data__);\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, options) {\n return function() {\n var on = this.__on, o, listener = contextListener(value);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.options);\n this.addEventListener(o.type, o.listener = listener, o.options = options);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, options);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, options: options};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, options) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, options));\n return this;\n}\n","import defaultView from \"../window.js\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","export default function*() {\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) yield node;\n }\n }\n}\n","import selection_select from \"./select.js\";\nimport selection_selectAll from \"./selectAll.js\";\nimport selection_selectChild from \"./selectChild.js\";\nimport selection_selectChildren from \"./selectChildren.js\";\nimport selection_filter from \"./filter.js\";\nimport selection_data from \"./data.js\";\nimport selection_enter from \"./enter.js\";\nimport selection_exit from \"./exit.js\";\nimport selection_join from \"./join.js\";\nimport selection_merge from \"./merge.js\";\nimport selection_order from \"./order.js\";\nimport selection_sort from \"./sort.js\";\nimport selection_call from \"./call.js\";\nimport selection_nodes from \"./nodes.js\";\nimport selection_node from \"./node.js\";\nimport selection_size from \"./size.js\";\nimport selection_empty from \"./empty.js\";\nimport selection_each from \"./each.js\";\nimport selection_attr from \"./attr.js\";\nimport selection_style from \"./style.js\";\nimport selection_property from \"./property.js\";\nimport selection_classed from \"./classed.js\";\nimport selection_text from \"./text.js\";\nimport selection_html from \"./html.js\";\nimport selection_raise from \"./raise.js\";\nimport selection_lower from \"./lower.js\";\nimport selection_append from \"./append.js\";\nimport selection_insert from \"./insert.js\";\nimport selection_remove from \"./remove.js\";\nimport selection_clone from \"./clone.js\";\nimport selection_datum from \"./datum.js\";\nimport selection_on from \"./on.js\";\nimport selection_dispatch from \"./dispatch.js\";\nimport selection_iterator from \"./iterator.js\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nfunction selection_selection() {\n return this;\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n selectChild: selection_selectChild,\n selectChildren: selection_selectChildren,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n selection: selection_selection,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch,\n [Symbol.iterator]: selection_iterator\n};\n\nexport default selection;\n","import {Selection, root} from \"./selection/index.js\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","export default function(event) {\n let sourceEvent;\n while (sourceEvent = event.sourceEvent) event = sourceEvent;\n return event;\n}\n","import sourceEvent from \"./sourceEvent.js\";\n\nexport default function(event, node) {\n event = sourceEvent(event);\n if (node === undefined) node = event.currentTarget;\n if (node) {\n var svg = node.ownerSVGElement || node;\n if (svg.createSVGPoint) {\n var point = svg.createSVGPoint();\n point.x = event.clientX, point.y = event.clientY;\n point = point.matrixTransform(node.getScreenCTM().inverse());\n return [point.x, point.y];\n }\n if (node.getBoundingClientRect) {\n var rect = node.getBoundingClientRect();\n return [event.clientX - rect.left - node.clientLeft, event.clientY - rect.top - node.clientTop];\n }\n }\n return [event.pageX, event.pageY];\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(`^rgb\\\\(${reI},${reI},${reI}\\\\)$`),\n reRgbPercent = new RegExp(`^rgb\\\\(${reP},${reP},${reP}\\\\)$`),\n reRgbaInteger = new RegExp(`^rgba\\\\(${reI},${reI},${reI},${reN}\\\\)$`),\n reRgbaPercent = new RegExp(`^rgba\\\\(${reP},${reP},${reP},${reN}\\\\)$`),\n reHslPercent = new RegExp(`^hsl\\\\(${reN},${reP},${reP}\\\\)$`),\n reHslaPercent = new RegExp(`^hsla\\\\(${reN},${reP},${reP},${reN}\\\\)$`);\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHex8: color_formatHex8,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHex8() {\n return this.rgb().formatHex8();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb() {\n return this;\n },\n clamp() {\n return new Rgb(clampi(this.r), clampi(this.g), clampi(this.b), clampa(this.opacity));\n },\n displayable() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatHex8: rgb_formatHex8,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}`;\n}\n\nfunction rgb_formatHex8() {\n return `#${hex(this.r)}${hex(this.g)}${hex(this.b)}${hex((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;\n}\n\nfunction rgb_formatRgb() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"rgb(\" : \"rgba(\"}${clampi(this.r)}, ${clampi(this.g)}, ${clampi(this.b)}${a === 1 ? \")\" : `, ${a})`}`;\n}\n\nfunction clampa(opacity) {\n return isNaN(opacity) ? 1 : Math.max(0, Math.min(1, opacity));\n}\n\nfunction clampi(value) {\n return Math.max(0, Math.min(255, Math.round(value) || 0));\n}\n\nfunction hex(value) {\n value = clampi(value);\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n clamp() {\n return new Hsl(clamph(this.h), clampt(this.s), clampt(this.l), clampa(this.opacity));\n },\n displayable() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl() {\n const a = clampa(this.opacity);\n return `${a === 1 ? \"hsl(\" : \"hsla(\"}${clamph(this.h)}, ${clampt(this.s) * 100}%, ${clampt(this.l) * 100}%${a === 1 ? \")\" : `, ${a})`}`;\n }\n}));\n\nfunction clamph(value) {\n value = (value || 0) % 360;\n return value < 0 ? value + 360 : value;\n}\n\nfunction clampt(value) {\n return Math.max(0, Math.min(1, value || 0));\n}\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export default x => () => x;\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(undefined, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","const pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], children, i, index = -1;\n while (node = nodes.pop()) {\n callback.call(that, node, ++index, this);\n if (children = node.children) {\n for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n }\n return this;\n}\n","export default function(callback, that) {\n var node = this, nodes = [node], next = [], children, i, n, index = -1;\n while (node = nodes.pop()) {\n next.push(node);\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n }\n while (node = next.pop()) {\n callback.call(that, node, ++index, this);\n }\n return this;\n}\n","export default function(callback, that) {\n let index = -1;\n for (const node of this) {\n if (callback.call(that, node, ++index, this)) {\n return node;\n }\n }\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n return Array.from(this);\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","export default function*() {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n yield node;\n if (children = node.children) {\n for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n }\n } while (next.length);\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_find from \"./find.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\nimport node_iterator from \"./iterator.js\";\n\nexport default function hierarchy(data, children) {\n if (data instanceof Map) {\n data = [undefined, data];\n if (children === undefined) children = mapChildren;\n } else if (children === undefined) {\n children = objectChildren;\n }\n\n var root = new Node(data),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n while (node = nodes.pop()) {\n if ((childs = children(node.data)) && (n = (childs = Array.from(childs)).length)) {\n node.children = childs;\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = childs[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction objectChildren(d) {\n return d.children;\n}\n\nfunction mapChildren(d) {\n return Array.isArray(d) ? d[1] : null;\n}\n\nfunction copyData(node) {\n if (node.data.value !== undefined) node.value = node.data.value;\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n find: node_find,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy,\n [Symbol.iterator]: node_iterator\n};\n","export function optional(f) {\n return f == null ? null : required(f);\n}\n\nexport function required(f) {\n if (typeof f !== \"function\") throw new Error;\n return f;\n}\n","import {optional} from \"./accessors.js\";\nimport {Node, computeHeight} from \"./hierarchy/index.js\";\n\nvar preroot = {depth: -1},\n ambiguous = {},\n imputed = {};\n\nfunction defaultId(d) {\n return d.id;\n}\n\nfunction defaultParentId(d) {\n return d.parentId;\n}\n\nexport default function() {\n var id = defaultId,\n parentId = defaultParentId,\n path;\n\n function stratify(data) {\n var nodes = Array.from(data),\n currentId = id,\n currentParentId = parentId,\n n,\n d,\n i,\n root,\n parent,\n node,\n nodeId,\n nodeKey,\n nodeByKey = new Map;\n\n if (path != null) {\n const I = nodes.map((d, i) => normalize(path(d, i, data)));\n const P = I.map(parentof);\n const S = new Set(I).add(\"\");\n for (const i of P) {\n if (!S.has(i)) {\n S.add(i);\n I.push(i);\n P.push(parentof(i));\n nodes.push(imputed);\n }\n }\n currentId = (_, i) => I[i];\n currentParentId = (_, i) => P[i];\n }\n\n for (i = 0, n = nodes.length; i < n; ++i) {\n d = nodes[i], node = nodes[i] = new Node(d);\n if ((nodeId = currentId(d, i, data)) != null && (nodeId += \"\")) {\n nodeKey = node.id = nodeId;\n nodeByKey.set(nodeKey, nodeByKey.has(nodeKey) ? ambiguous : node);\n }\n if ((nodeId = currentParentId(d, i, data)) != null && (nodeId += \"\")) {\n node.parent = nodeId;\n }\n }\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (nodeId = node.parent) {\n parent = nodeByKey.get(nodeId);\n if (!parent) throw new Error(\"missing: \" + nodeId);\n if (parent === ambiguous) throw new Error(\"ambiguous: \" + nodeId);\n if (parent.children) parent.children.push(node);\n else parent.children = [node];\n node.parent = parent;\n } else {\n if (root) throw new Error(\"multiple roots\");\n root = node;\n }\n }\n\n if (!root) throw new Error(\"no root\");\n\n // When imputing internal nodes, only introduce roots if needed.\n // Then replace the imputed marker data with null.\n if (path != null) {\n while (root.data === imputed && root.children.length === 1) {\n root = root.children[0], --n;\n }\n for (let i = nodes.length - 1; i >= 0; --i) {\n node = nodes[i];\n if (node.data !== imputed) break;\n node.data = null;\n }\n }\n\n root.parent = preroot;\n root.eachBefore(function(node) { node.depth = node.parent.depth + 1; --n; }).eachBefore(computeHeight);\n root.parent = null;\n if (n > 0) throw new Error(\"cycle\");\n\n return root;\n }\n\n stratify.id = function(x) {\n return arguments.length ? (id = optional(x), stratify) : id;\n };\n\n stratify.parentId = function(x) {\n return arguments.length ? (parentId = optional(x), stratify) : parentId;\n };\n\n stratify.path = function(x) {\n return arguments.length ? (path = optional(x), stratify) : path;\n };\n\n return stratify;\n}\n\n// To normalize a path, we coerce to a string, strip the trailing slash if any\n// (as long as the trailing slash is not immediately preceded by another slash),\n// and add leading slash if missing.\nfunction normalize(path) {\n path = `${path}`;\n let i = path.length;\n if (slash(path, i - 1) && !slash(path, i - 2)) path = path.slice(0, -1);\n return path[0] === \"/\" ? path : `/${path}`;\n}\n\n// Walk backwards to find the first slash that is not the leading slash, e.g.:\n// \"/foo/bar\" ⇥ \"/foo\", \"/foo\" ⇥ \"/\", \"/\" ↦ \"\". (The root is special-cased\n// because the id of the root must be a truthy value.)\nfunction parentof(path) {\n let i = path.length;\n if (i < 2) return \"\";\n while (--i > 1) if (slash(path, i)) break;\n return path.slice(0, i);\n}\n\n// Slashes can be escaped; to determine whether a slash is a path delimiter, we\n// count the number of preceding backslashes escaping the forward slash: an odd\n// number indicates an escaped forward slash.\nfunction slash(path, i) {\n if (path[i] === \"/\") {\n let k = 0;\n while (i > 0 && path[--i] === \"\\\\\") ++k;\n if ((k & 1) === 0) return true;\n }\n return false;\n}\n","import {Node} from \"./hierarchy/index.js\";\n\nfunction defaultSeparation(a, b) {\n return a.parent === b.parent ? 1 : 2;\n}\n\n// function radialSeparation(a, b) {\n// return (a.parent === b.parent ? 1 : 2) / a.depth;\n// }\n\n// This function is used to traverse the left contour of a subtree (or\n// subforest). It returns the successor of v on this contour. This successor is\n// either given by the leftmost child of v or by the thread of v. The function\n// returns null if and only if v is on the highest level of its subtree.\nfunction nextLeft(v) {\n var children = v.children;\n return children ? children[0] : v.t;\n}\n\n// This function works analogously to nextLeft.\nfunction nextRight(v) {\n var children = v.children;\n return children ? children[children.length - 1] : v.t;\n}\n\n// Shifts the current subtree rooted at w+. This is done by increasing\n// prelim(w+) and mod(w+) by shift.\nfunction moveSubtree(wm, wp, shift) {\n var change = shift / (wp.i - wm.i);\n wp.c -= change;\n wp.s += shift;\n wm.c += change;\n wp.z += shift;\n wp.m += shift;\n}\n\n// All other shifts, applied to the smaller subtrees between w- and w+, are\n// performed by this function. To prepare the shifts, we have to adjust\n// change(w+), shift(w+), and change(w-).\nfunction executeShifts(v) {\n var shift = 0,\n change = 0,\n children = v.children,\n i = children.length,\n w;\n while (--i >= 0) {\n w = children[i];\n w.z += shift;\n w.m += shift;\n shift += w.s + (change += w.c);\n }\n}\n\n// If vi-’s ancestor is a sibling of v, returns vi-’s ancestor. Otherwise,\n// returns the specified (default) ancestor.\nfunction nextAncestor(vim, v, ancestor) {\n return vim.a.parent === v.parent ? vim.a : ancestor;\n}\n\nfunction TreeNode(node, i) {\n this._ = node;\n this.parent = null;\n this.children = null;\n this.A = null; // default ancestor\n this.a = this; // ancestor\n this.z = 0; // prelim\n this.m = 0; // mod\n this.c = 0; // change\n this.s = 0; // shift\n this.t = null; // thread\n this.i = i; // number\n}\n\nTreeNode.prototype = Object.create(Node.prototype);\n\nfunction treeRoot(root) {\n var tree = new TreeNode(root, 0),\n node,\n nodes = [tree],\n child,\n children,\n i,\n n;\n\n while (node = nodes.pop()) {\n if (children = node._.children) {\n node.children = new Array(n = children.length);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new TreeNode(children[i], i));\n child.parent = node;\n }\n }\n }\n\n (tree.parent = new TreeNode(null, 0)).children = [tree];\n return tree;\n}\n\n// Node-link tree diagram using the Reingold-Tilford \"tidy\" algorithm\nexport default function() {\n var separation = defaultSeparation,\n dx = 1,\n dy = 1,\n nodeSize = null;\n\n function tree(root) {\n var t = treeRoot(root);\n\n // Compute the layout using Buchheim et al.’s algorithm.\n t.eachAfter(firstWalk), t.parent.m = -t.z;\n t.eachBefore(secondWalk);\n\n // If a fixed node size is specified, scale x and y.\n if (nodeSize) root.eachBefore(sizeNode);\n\n // If a fixed tree size is specified, scale x and y based on the extent.\n // Compute the left-most, right-most, and depth-most nodes for extents.\n else {\n var left = root,\n right = root,\n bottom = root;\n root.eachBefore(function(node) {\n if (node.x < left.x) left = node;\n if (node.x > right.x) right = node;\n if (node.depth > bottom.depth) bottom = node;\n });\n var s = left === right ? 1 : separation(left, right) / 2,\n tx = s - left.x,\n kx = dx / (right.x + s + tx),\n ky = dy / (bottom.depth || 1);\n root.eachBefore(function(node) {\n node.x = (node.x + tx) * kx;\n node.y = node.depth * ky;\n });\n }\n\n return root;\n }\n\n // Computes a preliminary x-coordinate for v. Before that, FIRST WALK is\n // applied recursively to the children of v, as well as the function\n // APPORTION. After spacing out the children by calling EXECUTE SHIFTS, the\n // node v is placed to the midpoint of its outermost children.\n function firstWalk(v) {\n var children = v.children,\n siblings = v.parent.children,\n w = v.i ? siblings[v.i - 1] : null;\n if (children) {\n executeShifts(v);\n var midpoint = (children[0].z + children[children.length - 1].z) / 2;\n if (w) {\n v.z = w.z + separation(v._, w._);\n v.m = v.z - midpoint;\n } else {\n v.z = midpoint;\n }\n } else if (w) {\n v.z = w.z + separation(v._, w._);\n }\n v.parent.A = apportion(v, w, v.parent.A || siblings[0]);\n }\n\n // Computes all real x-coordinates by summing up the modifiers recursively.\n function secondWalk(v) {\n v._.x = v.z + v.parent.m;\n v.m += v.parent.m;\n }\n\n // The core of the algorithm. Here, a new subtree is combined with the\n // previous subtrees. Threads are used to traverse the inside and outside\n // contours of the left and right subtree up to the highest common level. The\n // vertices used for the traversals are vi+, vi-, vo-, and vo+, where the\n // superscript o means outside and i means inside, the subscript - means left\n // subtree and + means right subtree. For summing up the modifiers along the\n // contour, we use respective variables si+, si-, so-, and so+. Whenever two\n // nodes of the inside contours conflict, we compute the left one of the\n // greatest uncommon ancestors using the function ANCESTOR and call MOVE\n // SUBTREE to shift the subtree and prepare the shifts of smaller subtrees.\n // Finally, we add a new thread (if necessary).\n function apportion(v, w, ancestor) {\n if (w) {\n var vip = v,\n vop = v,\n vim = w,\n vom = vip.parent.children[0],\n sip = vip.m,\n sop = vop.m,\n sim = vim.m,\n som = vom.m,\n shift;\n while (vim = nextRight(vim), vip = nextLeft(vip), vim && vip) {\n vom = nextLeft(vom);\n vop = nextRight(vop);\n vop.a = v;\n shift = vim.z + sim - vip.z - sip + separation(vim._, vip._);\n if (shift > 0) {\n moveSubtree(nextAncestor(vim, v, ancestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.m;\n sip += vip.m;\n som += vom.m;\n sop += vop.m;\n }\n if (vim && !nextRight(vop)) {\n vop.t = vim;\n vop.m += sim - sop;\n }\n if (vip && !nextLeft(vom)) {\n vom.t = vip;\n vom.m += sip - som;\n ancestor = v;\n }\n }\n return ancestor;\n }\n\n function sizeNode(node) {\n node.x *= dx;\n node.y = node.depth * dy;\n }\n\n tree.separation = function(x) {\n return arguments.length ? (separation = x, tree) : separation;\n };\n\n tree.size = function(x) {\n return arguments.length ? (nodeSize = false, dx = +x[0], dy = +x[1], tree) : (nodeSize ? null : [dx, dy]);\n };\n\n tree.nodeSize = function(x) {\n return arguments.length ? (nodeSize = true, dx = +x[0], dy = +x[1], tree) : (nodeSize ? [dx, dy] : null);\n };\n\n return tree;\n}\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export var slice = Array.prototype.slice;\n\nexport default function(x) {\n return typeof x === \"object\" && \"length\" in x\n ? x // Array, TypedArray, NodeList, array-like\n : Array.from(x); // Map, Set, iterable, string, or anything else\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import pointRadial from \"../pointRadial.js\";\n\nclass Bump {\n constructor(context, x) {\n this._context = context;\n this._x = x;\n }\n areaStart() {\n this._line = 0;\n }\n areaEnd() {\n this._line = NaN;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {\n if (this._line || (this._line !== 0 && this._point === 1)) this._context.closePath();\n this._line = 1 - this._line;\n }\n point(x, y) {\n x = +x, y = +y;\n switch (this._point) {\n case 0: {\n this._point = 1;\n if (this._line) this._context.lineTo(x, y);\n else this._context.moveTo(x, y);\n break;\n }\n case 1: this._point = 2; // falls through\n default: {\n if (this._x) this._context.bezierCurveTo(this._x0 = (this._x0 + x) / 2, this._y0, this._x0, y, x, y);\n else this._context.bezierCurveTo(this._x0, this._y0 = (this._y0 + y) / 2, x, this._y0, x, y);\n break;\n }\n }\n this._x0 = x, this._y0 = y;\n }\n}\n\nclass BumpRadial {\n constructor(context) {\n this._context = context;\n }\n lineStart() {\n this._point = 0;\n }\n lineEnd() {}\n point(x, y) {\n x = +x, y = +y;\n if (this._point++ === 0) {\n this._x0 = x, this._y0 = y;\n } else {\n const p0 = pointRadial(this._x0, this._y0);\n const p1 = pointRadial(this._x0, this._y0 = (this._y0 + y) / 2);\n const p2 = pointRadial(x, this._y0);\n const p3 = pointRadial(x, y);\n this._context.moveTo(...p0);\n this._context.bezierCurveTo(...p1, ...p2, ...p3);\n }\n }\n}\n\nexport function bumpX(context) {\n return new Bump(context, true);\n}\n\nexport function bumpY(context) {\n return new Bump(context, false);\n}\n\nexport function bumpRadial(context) {\n return new BumpRadial(context);\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"./array.js\";\nimport constant from \"./constant.js\";\nimport {bumpX, bumpY, bumpRadial} from \"./curve/bump.js\";\nimport {x as pointX, y as pointY} from \"./point.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nexport function link(curve) {\n let source = linkSource;\n let target = linkTarget;\n let x = pointX;\n let y = pointY;\n let context = null;\n let output = null;\n\n function link() {\n let buffer;\n const argv = slice.call(arguments);\n const s = source.apply(this, argv);\n const t = target.apply(this, argv);\n if (context == null) output = curve(buffer = path());\n output.lineStart();\n argv[0] = s, output.point(+x.apply(this, argv), +y.apply(this, argv));\n argv[0] = t, output.point(+x.apply(this, argv), +y.apply(this, argv));\n output.lineEnd();\n if (buffer) return output = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? (_ == null ? context = output = null : output = curve(context = _), link) : context;\n };\n\n return link;\n}\n\nexport function linkHorizontal() {\n return link(bumpX);\n}\n\nexport function linkVertical() {\n return link(bumpY);\n}\n\nexport function linkRadial() {\n const l = link(bumpRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n","function count(node) {\n var sum = 0,\n children = node.children,\n i = children && children.length;\n if (!i) sum = 1;\n else while (--i >= 0) sum += children[i].value;\n node.value = sum;\n}\n\nexport default function() {\n return this.eachAfter(count);\n}\n","export default function(callback) {\n var node = this, current, next = [node], children, i, n;\n do {\n current = next.reverse(), next = [];\n while (node = current.pop()) {\n callback(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n next.push(children[i]);\n }\n }\n } while (next.length);\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], children, i;\n while (node = nodes.pop()) {\n callback(node), children = node.children;\n if (children) for (i = children.length - 1; i >= 0; --i) {\n nodes.push(children[i]);\n }\n }\n return this;\n}\n","export default function(callback) {\n var node = this, nodes = [node], next = [], children, i, n;\n while (node = nodes.pop()) {\n next.push(node), children = node.children;\n if (children) for (i = 0, n = children.length; i < n; ++i) {\n nodes.push(children[i]);\n }\n }\n while (node = next.pop()) {\n callback(node);\n }\n return this;\n}\n","export default function(value) {\n return this.eachAfter(function(node) {\n var sum = +value(node.data) || 0,\n children = node.children,\n i = children && children.length;\n while (--i >= 0) sum += children[i].value;\n node.value = sum;\n });\n}\n","export default function(compare) {\n return this.eachBefore(function(node) {\n if (node.children) {\n node.children.sort(compare);\n }\n });\n}\n","export default function(end) {\n var start = this,\n ancestor = leastCommonAncestor(start, end),\n nodes = [start];\n while (start !== ancestor) {\n start = start.parent;\n nodes.push(start);\n }\n var k = nodes.length;\n while (end !== ancestor) {\n nodes.splice(k, 0, end);\n end = end.parent;\n }\n return nodes;\n}\n\nfunction leastCommonAncestor(a, b) {\n if (a === b) return a;\n var aNodes = a.ancestors(),\n bNodes = b.ancestors(),\n c = null;\n a = aNodes.pop();\n b = bNodes.pop();\n while (a === b) {\n c = a;\n a = aNodes.pop();\n b = bNodes.pop();\n }\n return c;\n}\n","export default function() {\n var node = this, nodes = [node];\n while (node = node.parent) {\n nodes.push(node);\n }\n return nodes;\n}\n","export default function() {\n var nodes = [];\n this.each(function(node) {\n nodes.push(node);\n });\n return nodes;\n}\n","export default function() {\n var leaves = [];\n this.eachBefore(function(node) {\n if (!node.children) {\n leaves.push(node);\n }\n });\n return leaves;\n}\n","export default function() {\n var root = this, links = [];\n root.each(function(node) {\n if (node !== root) { // Don’t include the root’s parent, if any.\n links.push({source: node.parent, target: node});\n }\n });\n return links;\n}\n","import node_count from \"./count.js\";\nimport node_each from \"./each.js\";\nimport node_eachBefore from \"./eachBefore.js\";\nimport node_eachAfter from \"./eachAfter.js\";\nimport node_sum from \"./sum.js\";\nimport node_sort from \"./sort.js\";\nimport node_path from \"./path.js\";\nimport node_ancestors from \"./ancestors.js\";\nimport node_descendants from \"./descendants.js\";\nimport node_leaves from \"./leaves.js\";\nimport node_links from \"./links.js\";\n\nexport default function hierarchy(data, children) {\n var root = new Node(data),\n valued = +data.value && (root.value = data.value),\n node,\n nodes = [root],\n child,\n childs,\n i,\n n;\n\n if (children == null) children = defaultChildren;\n\n while (node = nodes.pop()) {\n if (valued) node.value = +node.data.value;\n if ((childs = children(node.data)) && (n = childs.length)) {\n node.children = new Array(n);\n for (i = n - 1; i >= 0; --i) {\n nodes.push(child = node.children[i] = new Node(childs[i]));\n child.parent = node;\n child.depth = node.depth + 1;\n }\n }\n }\n\n return root.eachBefore(computeHeight);\n}\n\nfunction node_copy() {\n return hierarchy(this).eachBefore(copyData);\n}\n\nfunction defaultChildren(d) {\n return d.children;\n}\n\nfunction copyData(node) {\n node.data = node.data.data;\n}\n\nexport function computeHeight(node) {\n var height = 0;\n do node.height = height;\n while ((node = node.parent) && (node.height < ++height));\n}\n\nexport function Node(data) {\n this.data = data;\n this.depth =\n this.height = 0;\n this.parent = null;\n}\n\nNode.prototype = hierarchy.prototype = {\n constructor: Node,\n count: node_count,\n each: node_each,\n eachAfter: node_eachAfter,\n eachBefore: node_eachBefore,\n sum: node_sum,\n sort: node_sort,\n path: node_path,\n ancestors: node_ancestors,\n descendants: node_descendants,\n leaves: node_leaves,\n links: node_links,\n copy: node_copy\n};\n","import {hierarchy} from 'd3-hierarchy';\nimport packageInfo from '../package.json';\n\nconst {version} = packageInfo;\nconst defaults = Object.freeze({\n children: data => data.children,\n nodeSize: node => node.data.size,\n spacing: 0,\n});\n\n// Create a layout function with customizable options. Per D3-style, the\n// options can be set at any time using setter methods. The layout function\n// will compute the tree node positions based on the options in effect at the\n// time it is called.\nexport default function flextree(options) {\n const opts = Object.assign({}, defaults, options);\n function accessor(name) {\n const opt = opts[name];\n return typeof opt === 'function' ? opt : () => opt;\n }\n\n function layout(tree) {\n const wtree = wrap(getWrapper(), tree, node=>node.children);\n wtree.update();\n return wtree.data;\n }\n\n function getFlexNode() {\n const nodeSize = accessor('nodeSize');\n const spacing = accessor('spacing');\n return class FlexNode extends hierarchy.prototype.constructor {\n constructor(data) {\n super(data);\n }\n copy() {\n const c = wrap(this.constructor, this, node=>node.children);\n c.each(node => node.data = node.data.data);\n return c;\n }\n get size() { return nodeSize(this); }\n spacing(oNode) { return spacing(this, oNode); }\n get nodes() { return this.descendants(); }\n get xSize() { return this.size[0]; }\n get ySize() { return this.size[1]; }\n get top() { return this.y; }\n get bottom() { return this.y + this.ySize; }\n get left() { return this.x - this.xSize / 2; }\n get right() { return this.x + this.xSize / 2; }\n get root() {\n const ancs = this.ancestors();\n return ancs[ancs.length - 1];\n }\n get numChildren() {\n return this.hasChildren ? this.children.length : 0;\n }\n get hasChildren() { return !this.noChildren; }\n get noChildren() { return this.children === null; }\n get firstChild() {\n return this.hasChildren ? this.children[0] : null;\n }\n get lastChild() {\n return this.hasChildren ? this.children[this.numChildren - 1] : null;\n }\n get extents() {\n return (this.children || []).reduce(\n (acc, kid) => FlexNode.maxExtents(acc, kid.extents),\n this.nodeExtents);\n }\n get nodeExtents() {\n return {\n top: this.top,\n bottom: this.bottom,\n left: this.left,\n right: this.right,\n };\n }\n static maxExtents(e0, e1) {\n return {\n top: Math.min(e0.top, e1.top),\n bottom: Math.max(e0.bottom, e1.bottom),\n left: Math.min(e0.left, e1.left),\n right: Math.max(e0.right, e1.right),\n };\n }\n };\n }\n\n function getWrapper() {\n const FlexNode = getFlexNode();\n const nodeSize = accessor('nodeSize');\n const spacing = accessor('spacing');\n return class extends FlexNode {\n constructor(data) {\n super(data);\n Object.assign(this, {\n x: 0, y: 0,\n relX: 0, prelim: 0, shift: 0, change: 0,\n lExt: this, lExtRelX: 0, lThr: null,\n rExt: this, rExtRelX: 0, rThr: null,\n });\n }\n get size() { return nodeSize(this.data); }\n spacing(oNode) { return spacing(this.data, oNode.data); }\n get x() { return this.data.x; }\n set x(v) { this.data.x = v; }\n get y() { return this.data.y; }\n set y(v) { this.data.y = v; }\n update() {\n layoutChildren(this);\n resolveX(this);\n return this;\n }\n };\n }\n\n function wrap(FlexClass, treeData, children) {\n const _wrap = (data, parent) => {\n const node = new FlexClass(data);\n Object.assign(node, {\n parent,\n depth: parent === null ? 0 : parent.depth + 1,\n height: 0,\n length: 1,\n });\n const kidsData = children(data) || [];\n node.children = kidsData.length === 0 ? null\n : kidsData.map(kd => _wrap(kd, node));\n if (node.children) {\n Object.assign(node, node.children.reduce(\n (hl, kid) => ({\n height: Math.max(hl.height, kid.height + 1),\n length: hl.length + kid.length,\n }), node\n ));\n }\n return node;\n };\n return _wrap(treeData, null);\n }\n\n\n Object.assign(layout, {\n nodeSize(arg) {\n return arguments.length ? (opts.nodeSize = arg, layout) : opts.nodeSize;\n },\n spacing(arg) {\n return arguments.length ? (opts.spacing = arg, layout) : opts.spacing;\n },\n children(arg) {\n return arguments.length ? (opts.children = arg, layout) : opts.children;\n },\n hierarchy(treeData, children) {\n const kids = typeof children === 'undefined' ? opts.children : children;\n return wrap(getFlexNode(), treeData, kids);\n },\n dump(tree) {\n const nodeSize = accessor('nodeSize');\n const _dump = i0 => node => {\n const i1 = i0 + ' ';\n const i2 = i0 + ' ';\n const {x, y} = node;\n const size = nodeSize(node);\n const kids = (node.children || []);\n const kdumps = (kids.length === 0) ? ' ' :\n `,${i1}children: [${i2}${kids.map(_dump(i2)).join(i2)}${i1}],${i0}`;\n return `{ size: [${size.join(', ')}],${i1}x: ${x}, y: ${y}${kdumps}},`;\n };\n return _dump('\\n')(tree);\n },\n });\n return layout;\n}\nflextree.version = version;\n\nconst layoutChildren = (w, y = 0) => {\n w.y = y;\n (w.children || []).reduce((acc, kid) => {\n const [i, lastLows] = acc;\n layoutChildren(kid, w.y + w.ySize);\n // The lowest vertical coordinate while extreme nodes still point\n // in current subtree.\n const lowY = (i === 0 ? kid.lExt : kid.rExt).bottom;\n if (i !== 0) separate(w, i, lastLows);\n const lows = updateLows(lowY, i, lastLows);\n return [i + 1, lows];\n }, [0, null]);\n shiftChange(w);\n positionRoot(w);\n return w;\n};\n\n// Resolves the relative coordinate properties - relX and prelim --\n// to set the final, absolute x coordinate for each node. This also sets\n// `prelim` to 0, so that `relX` for each node is its x-coordinate relative\n// to its parent.\nconst resolveX = (w, prevSum, parentX) => {\n // A call to resolveX without arguments is assumed to be for the root of\n // the tree. This will set the root's x-coord to zero.\n if (typeof prevSum === 'undefined') {\n prevSum = -w.relX - w.prelim;\n parentX = 0;\n }\n const sum = prevSum + w.relX;\n w.relX = sum + w.prelim - parentX;\n w.prelim = 0;\n w.x = parentX + w.relX;\n (w.children || []).forEach(k => resolveX(k, sum, w.x));\n return w;\n};\n\n// Process shift and change for all children, to add intermediate spacing to\n// each child's modifier.\nconst shiftChange = w => {\n (w.children || []).reduce((acc, child) => {\n const [lastShiftSum, lastChangeSum] = acc;\n const shiftSum = lastShiftSum + child.shift;\n const changeSum = lastChangeSum + shiftSum + child.change;\n child.relX += changeSum;\n return [shiftSum, changeSum];\n }, [0, 0]);\n};\n\n// Separates the latest child from its previous sibling\n/* eslint-disable complexity */\nconst separate = (w, i, lows) => {\n const lSib = w.children[i - 1];\n const curSubtree = w.children[i];\n let rContour = lSib;\n let rSumMods = lSib.relX;\n let lContour = curSubtree;\n let lSumMods = curSubtree.relX;\n let isFirst = true;\n while (rContour && lContour) {\n if (rContour.bottom > lows.lowY) lows = lows.next;\n // How far to the left of the right side of rContour is the left side\n // of lContour? First compute the center-to-center distance, then add\n // the \"spacing\"\n const dist =\n (rSumMods + rContour.prelim) - (lSumMods + lContour.prelim) +\n rContour.xSize / 2 + lContour.xSize / 2 +\n rContour.spacing(lContour);\n if (dist > 0 || (dist < 0 && isFirst)) {\n lSumMods += dist;\n // Move subtree by changing relX.\n moveSubtree(curSubtree, dist);\n distributeExtra(w, i, lows.index, dist);\n }\n isFirst = false;\n // Advance highest node(s) and sum(s) of modifiers\n const rightBottom = rContour.bottom;\n const leftBottom = lContour.bottom;\n if (rightBottom <= leftBottom) {\n rContour = nextRContour(rContour);\n if (rContour) rSumMods += rContour.relX;\n }\n if (rightBottom >= leftBottom) {\n lContour = nextLContour(lContour);\n if (lContour) lSumMods += lContour.relX;\n }\n }\n // Set threads and update extreme nodes. In the first case, the\n // current subtree is taller than the left siblings.\n if (!rContour && lContour) setLThr(w, i, lContour, lSumMods);\n // In the next case, the left siblings are taller than the current subtree\n else if (rContour && !lContour) setRThr(w, i, rContour, rSumMods);\n};\n/* eslint-enable complexity */\n\n// Move subtree by changing relX.\nconst moveSubtree = (subtree, distance) => {\n subtree.relX += distance;\n subtree.lExtRelX += distance;\n subtree.rExtRelX += distance;\n};\n\nconst distributeExtra = (w, curSubtreeI, leftSibI, dist) => {\n const curSubtree = w.children[curSubtreeI];\n const n = curSubtreeI - leftSibI;\n // Are there intermediate children?\n if (n > 1) {\n const delta = dist / n;\n w.children[leftSibI + 1].shift += delta;\n curSubtree.shift -= delta;\n curSubtree.change -= dist - delta;\n }\n};\n\nconst nextLContour = w => {\n return w.hasChildren ? w.firstChild : w.lThr;\n};\n\nconst nextRContour = w => {\n return w.hasChildren ? w.lastChild : w.rThr;\n};\n\nconst setLThr = (w, i, lContour, lSumMods) => {\n const firstChild = w.firstChild;\n const lExt = firstChild.lExt;\n const curSubtree = w.children[i];\n lExt.lThr = lContour;\n // Change relX so that the sum of modifier after following thread is correct.\n const diff = lSumMods - lContour.relX - firstChild.lExtRelX;\n lExt.relX += diff;\n // Change preliminary x coordinate so that the node does not move.\n lExt.prelim -= diff;\n // Update extreme node and its sum of modifiers.\n firstChild.lExt = curSubtree.lExt;\n firstChild.lExtRelX = curSubtree.lExtRelX;\n};\n\n// Mirror image of setLThr.\nconst setRThr = (w, i, rContour, rSumMods) => {\n const curSubtree = w.children[i];\n const rExt = curSubtree.rExt;\n const lSib = w.children[i - 1];\n rExt.rThr = rContour;\n const diff = rSumMods - rContour.relX - curSubtree.rExtRelX;\n rExt.relX += diff;\n rExt.prelim -= diff;\n curSubtree.rExt = lSib.rExt;\n curSubtree.rExtRelX = lSib.rExtRelX;\n};\n\n// Position root between children, taking into account their modifiers\nconst positionRoot = w => {\n if (w.hasChildren) {\n const k0 = w.firstChild;\n const kf = w.lastChild;\n const prelim = (k0.prelim + k0.relX - k0.xSize / 2 +\n kf.relX + kf.prelim + kf.xSize / 2 ) / 2;\n Object.assign(w, {\n prelim,\n lExt: k0.lExt, lExtRelX: k0.lExtRelX,\n rExt: kf.rExt, rExtRelX: kf.rExtRelX,\n });\n }\n};\n\n// Make/maintain a linked list of the indexes of left siblings and their\n// lowest vertical coordinate.\nconst updateLows = (lowY, index, lastLows) => {\n // Remove siblings that are hidden by the new subtree.\n while (lastLows !== null && lowY >= lastLows.lowY)\n lastLows = lastLows.next;\n // Prepend the new subtree.\n return {\n lowY,\n index,\n next: lastLows,\n };\n};\n","import { selection, select } from \"d3-selection\";\nimport { max, min, sum, cumsum } from \"d3-array\";\nimport { tree, stratify } from \"d3-hierarchy\";\nimport { zoom, zoomIdentity } from \"d3-zoom\";\nimport { flextree } from 'd3-flextree';\nimport { linkHorizontal } from 'd3-shape';\n\nconst d3 = {\n selection,\n select,\n max,\n min,\n sum,\n cumsum,\n tree,\n stratify,\n zoom,\n zoomIdentity,\n linkHorizontal,\n flextree\n}\n\nexport class OrgChart {\n constructor() {\n\n // Exposed variables test test\n const attrs = {\n\n /* NOT INTENDED FOR PUBLIC OVERRIDE */\n\n id: `ID${Math.floor(Math.random() * 1000000)}`, // Id for event handlings\n firstDraw: true, // Whether chart is drawn for the first time\n ctx: document.createElement('canvas').getContext('2d'),\n initialExpandLevel: 1,\n nodeDefaultBackground: 'none',\n lastTransform: { x: 0, y: 0, k: 1 }, // Panning and zooming values\n allowedNodesCount: {},\n zoomBehavior: null,\n generateRoot: null,\n\n /* INTENDED FOR PUBLIC OVERRIDE */\n\n svgWidth: 800, // Configure svg width\n svgHeight: window.innerHeight - 100, // Configure svg height\n container: \"body\", // Set parent container, either CSS style selector or DOM element\n data: null, // Set data, it must be an array of objects, where hierarchy is clearly defined via id and parent ID (property names are configurable)\n connections: [], // Sets connection data, array of objects, SAMPLE: [{from:\"145\",to:\"201\",label:\"Conflicts of interest\"}]\n defaultFont: \"Helvetica\", // Set default font\n nodeId: d => d.nodeId || d.id, // Configure accessor for node id, default is either odeId or id\n parentNodeId: d => d.parentNodeId || d.parentId, // Configure accessor for parent node id, default is either parentNodeId or parentId\n rootMargin: 40, // Configure how much root node is offset from top\n nodeWidth: d3Node => 250, // Configure each node width, use with caution, it is better to have the same value set for all nodes\n nodeHeight: d => 150, // Configure each node height, use with caution, it is better to have the same value set for all nodes\n neighbourMargin: (n1, n2) => 80, // Configure margin between two nodes, use with caution, it is better to have the same value set for all nodes\n siblingsMargin: d3Node => 20, // Configure margin between two siblings, use with caution, it is better to have the same value set for all nodes\n childrenMargin: d => 60, // Configure margin between parent and children, use with caution, it is better to have the same value set for all nodes\n compactMarginPair: d => 100, // Configure margin between two nodes in compact mode, use with caution, it is better to have the same value set for all nodes\n compactMarginBetween: (d3Node => 20), // Configure margin between two nodes in compact mode, use with caution, it is better to have the same value set for all nodes\n nodeButtonWidth: d => 40, // Configure expand & collapse button width\n nodeButtonHeight: d => 40, // Configure expand & collapse button height\n nodeButtonX: d => -20, // Configure expand & collapse button x position\n nodeButtonY: d => -20, // Configure expand & collapse button y position\n linkYOffset: 30, // When correcting links which is not working for safari\n pagingStep: d => 5, // Configure how many nodes to show when making new nodes appear\n minPagingVisibleNodes: d => 2000, // Configure minimum number of visible nodes , after which paging button appears\n scaleExtent: [0.001, 20], // Configure zoom scale extent , if you don't want any kind of zooming, set it to [1,1]\n duration: 400, // Configure duration of transitions\n imageName: 'Chart', // Configure exported PNG and SVG image name\n setActiveNodeCentered: true, // Configure if active node should be centered when expanded and collapsed\n layout: \"top\",// Configure layout direction , possible values are \"top\", \"left\", \"right\", \"bottom\"\n compact: true, // Configure if compact mode is enabled , when enabled, nodes are shown in compact positions, instead of horizontal spread\n createZoom: d => d3.zoom(),\n onZoomStart: e => { }, // Callback for zoom & panning start\n onZoom: e => { }, // Callback for zoom & panning \n onZoomEnd: e => { }, // Callback for zoom & panning end\n onNodeClick: (d) => d, // Callback for node click\n onExpandOrCollapse: (d) => d, // Callback for node expand or collapse\n\n /*\n * Node HTML content generation , remember that you can access some helper methods:\n\n * node=> node.data - to access node's original data\n * node=> node.leaves() - to access node's leaves\n * node=> node.descendants() - to access node's descendants\n * node=> node.children - to access node's children\n * node=> node.parent - to access node's parent\n * node=> node.depth - to access node's depth\n * node=> node.hierarchyHeight - to access node's hierarchy height ( Height, which d3 assigns to hierarchy nodes)\n * node=> node.height - to access node's height\n * node=> node.width - to access node's width\n * \n * You can also access additional properties to style your node:\n * \n * d=>d.data._centeredWithDescendants - when node is centered with descendants\n * d=>d.data._directSubordinatesPaging - subordinates count in paging mode\n * d=>d.data._directSubordinates - subordinates count\n * d=>d.data._totalSubordinates - total subordinates count\n * d=>d._highlighted - when node is highlighted\n * d=>d._upToTheRootHighlighted - when node is highlighted up to the root\n * d=>d._expanded - when node is expanded\n * d=>d.data._centered - when node is centered\n */\n nodeContent: d => ``,\n\n /* Node expand & collapse button content and styling. You can access same helper methods as above */\n buttonContent: ({ node, state }) => {\n const icons = {\n \"left\": d => d ?\n `
\n \n ${node.data._directSubordinatesPaging}
` :\n `
\n \n ${node.data._directSubordinatesPaging}
`\n ,\n \"bottom\": d => d ? `
\n \n ${node.data._directSubordinatesPaging}
\n ` : `
\n \n ${node.data._directSubordinatesPaging}
\n `,\n \"right\": d => d ? `
\n \n ${node.data._directSubordinatesPaging}
` :\n `
\n \n ${node.data._directSubordinatesPaging}
`,\n \"top\": d => d ? `
\n \n ${node.data._directSubordinatesPaging}
\n ` : `
\n \n ${node.data._directSubordinatesPaging}
\n `,\n }\n return `
${icons[state.layout](node.children)}
`\n },\n /* Node paging button content and styling. You can access same helper methods as above. */\n pagingButton: (d, i, arr, state) => {\n const step = state.pagingStep(d.parent);\n const currentIndex = d.parent.data._pagingStep;\n const diff = d.parent.data._directSubordinatesPaging - currentIndex;\n const min = Math.min(diff, step);\n return `\n
\n
\n
\n \n \n
Show next ${min} nodes
\n
\n `\n },\n /* You can access and modify actual node DOM element in runtime using this method. */\n nodeUpdate: function (d, i, arr) {\n d3.select(this)\n .select('.node-rect')\n .attr(\"stroke\", d => d.data._highlighted || d.data._upToTheRootHighlighted ? '#E27396' : 'none')\n .attr(\"stroke-width\", d.data._highlighted || d.data._upToTheRootHighlighted ? 10 : 1)\n },\n nodeEnter: (d) => d, // Custom handling of node update\n nodeExit: (d) => d, // Custom handling of exit node\n /* You can access and modify actual link DOM element in runtime using this method. */\n linkUpdate: function (d, i, arr) {\n d3.select(this)\n .attr(\"stroke\", d => d.data._upToTheRootHighlighted ? '#E27396' : '#E4E2E9')\n .attr(\"stroke-width\", d => d.data._upToTheRootHighlighted ? 5 : 1)\n\n if (d.data._upToTheRootHighlighted) {\n d3.select(this).raise()\n }\n },\n /* Horizontal diagonal generation algorithm - https://observablehq.com/@bumbeishvili/curved-edges-compact-horizontal */\n hdiagonal: function (s, t, m) {\n // Define source and target x,y coordinates\n const x = s.x;\n const y = s.y;\n const ex = t.x;\n const ey = t.y;\n\n let mx = m && m.x != null ? m.x : x; // This is a changed line\n let my = m && m.y != null ? m.y : y; // This also is a changed line\n\n // Values in case of top reversed and left reversed diagonals\n let xrvs = ex - x < 0 ? -1 : 1;\n let yrvs = ey - y < 0 ? -1 : 1;\n\n // Define preferred curve radius\n let rdef = 35;\n\n // Reduce curve radius, if source-target x space is smaller\n let r = Math.abs(ex - x) / 2 < rdef ? Math.abs(ex - x) / 2 : rdef;\n\n // Further reduce curve radius, is y space is more small\n r = Math.abs(ey - y) / 2 < r ? Math.abs(ey - y) / 2 : r;\n\n // Defin width and height of link, excluding radius\n let h = Math.abs(ey - y) / 2 - r;\n let w = Math.abs(ex - x) / 2 - r;\n\n // Build and return custom arc command\n return `\n M ${mx} ${my}\n L ${mx} ${y}\n L ${x} ${y}\n L ${x + w * xrvs} ${y}\n C ${x + w * xrvs + r * xrvs} ${y} \n ${x + w * xrvs + r * xrvs} ${y} \n ${x + w * xrvs + r * xrvs} ${y + r * yrvs}\n L ${x + w * xrvs + r * xrvs} ${ey - r * yrvs} \n C ${x + w * xrvs + r * xrvs} ${ey} \n ${x + w * xrvs + r * xrvs} ${ey} \n ${ex - w * xrvs} ${ey}\n L ${ex} ${ey}\n `;\n },\n /* Vertical diagonal generation algorithm - https://observablehq.com/@bumbeishvili/curved-edges-compacty-vertical */\n diagonal: function (s, t, m, offsets = { sy: 0, }) {\n const x = s.x;\n let y = s.y;\n\n const ex = t.x;\n const ey = t.y;\n\n let mx = m && m.x != null ? m.x : x; // This is a changed line\n let my = m && m.y != null ? m.y : y; // This also is a changed line\n\n let xrvs = ex - x < 0 ? -1 : 1;\n let yrvs = ey - y < 0 ? -1 : 1;\n\n y += offsets.sy;\n\n\n let rdef = 35;\n let r = Math.abs(ex - x) / 2 < rdef ? Math.abs(ex - x) / 2 : rdef;\n\n r = Math.abs(ey - y) / 2 < r ? Math.abs(ey - y) / 2 : r;\n\n let h = Math.abs(ey - y) / 2 - r;\n let w = Math.abs(ex - x) - r * 2;\n //w=0;\n const path = `\n M ${mx} ${my}\n L ${x} ${my}\n L ${x} ${y}\n L ${x} ${y + h * yrvs}\n C ${x} ${y + h * yrvs + r * yrvs} ${x} ${y + h * yrvs + r * yrvs\n } ${x + r * xrvs} ${y + h * yrvs + r * yrvs}\n L ${x + w * xrvs + r * xrvs} ${y + h * yrvs + r * yrvs}\n C ${ex} ${y + h * yrvs + r * yrvs} ${ex} ${y + h * yrvs + r * yrvs\n } ${ex} ${ey - h * yrvs}\n L ${ex} ${ey}\n `;\n return path;\n },\n // Defining arrows with markers for connections\n defs: function (state, visibleConnections) {\n return `\n ${visibleConnections.map(conn => {\n const labelWidth = this.getTextWidth(conn.label, { ctx: state.ctx, fontSize: 2, defaultFont: state.defaultFont });\n return `\n \n \n ${conn.label || ''}\n \n\n \n \n \n `}).join(\"\")}\n \n `},\n /* You can update connections with custom styling using this function */\n connectionsUpdate: function (d, i, arr) {\n d3.select(this)\n .attr(\"stroke\", d => '#E27396')\n .attr('stroke-linecap', 'round')\n .attr(\"stroke-width\", d => '5')\n .attr('pointer-events', 'none')\n .attr(\"marker-start\", d => `url(#${d.from + \"_\" + d.to})`)\n .attr(\"marker-end\", d => `url(#arrow-${d.from + \"_\" + d.to})`)\n },\n // Link generator for connections\n linkGroupArc: d3.linkHorizontal().x(d => d.x).y(d => d.y),\n\n /*\n * You can customize/offset positions for each node and link by overriding these functions\n * For example, suppose you want to move link y position 30 px bellow in top layout. You can do it like this:\n * ```javascript\n * const layout = chart.layoutBindings();\n * layout.top.linkY = node => node.y + 30;\n * chart.layoutBindings(layout);\n * ```\n */\n layoutBindings: {\n \"left\": {\n \"nodeLeftX\": node => 0,\n \"nodeRightX\": node => node.width,\n \"nodeTopY\": node => - node.height / 2,\n \"nodeBottomY\": node => node.height / 2,\n \"nodeJoinX\": node => node.x + node.width,\n \"nodeJoinY\": node => node.y - node.height / 2,\n \"linkJoinX\": node => node.x + node.width,\n \"linkJoinY\": node => node.y,\n \"linkX\": node => node.x,\n \"linkY\": node => node.y,\n \"linkCompactXStart\": node => node.x + node.width / 2,//node.x + (node.compactEven ? node.width / 2 : -node.width / 2),\n \"linkCompactYStart\": node => node.y + (node.compactEven ? node.height / 2 : -node.height / 2),\n \"compactLinkMidX\": (node, state) => node.firstCompactNode.x,// node.firstCompactNode.x + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"compactLinkMidY\": (node, state) => node.firstCompactNode.y + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"linkParentX\": node => node.parent.x + node.parent.width,\n \"linkParentY\": node => node.parent.y,\n \"buttonX\": node => node.width,\n \"buttonY\": node => node.height / 2,\n \"centerTransform\": ({ root, rootMargin, centerY, scale, centerX }) => `translate(${rootMargin},${centerY}) scale(${scale})`,\n \"compactDimension\": {\n sizeColumn: node => node.height,\n sizeRow: node => node.width,\n reverse: arr => arr.slice().reverse()\n },\n \"nodeFlexSize\": ({ height, width, siblingsMargin, childrenMargin, state, node }) => {\n if (state.compact && node.flexCompactDim) {\n const result = [node.flexCompactDim[0], node.flexCompactDim[1]]\n return result;\n };\n return [height + siblingsMargin, width + childrenMargin]\n },\n \"zoomTransform\": ({ centerY, scale }) => `translate(${0},${centerY}) scale(${scale})`,\n \"diagonal\": this.hdiagonal.bind(this),\n \"swap\": d => { const x = d.x; d.x = d.y; d.y = x; },\n \"nodeUpdateTransform\": ({ x, y, width, height }) => `translate(${x},${y - height / 2})`,\n },\n \"top\": {\n \"nodeLeftX\": node => -node.width / 2,\n \"nodeRightX\": node => node.width / 2,\n \"nodeTopY\": node => 0,\n \"nodeBottomY\": node => node.height,\n \"nodeJoinX\": node => node.x - node.width / 2,\n \"nodeJoinY\": node => node.y + node.height,\n \"linkJoinX\": node => node.x,\n \"linkJoinY\": node => node.y + node.height,\n \"linkCompactXStart\": node => node.x + (node.compactEven ? node.width / 2 : -node.width / 2),\n \"linkCompactYStart\": node => node.y + node.height / 2,\n \"compactLinkMidX\": (node, state) => node.firstCompactNode.x + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"compactLinkMidY\": node => node.firstCompactNode.y,\n \"compactDimension\": {\n sizeColumn: node => node.width,\n sizeRow: node => node.height,\n reverse: arr => arr,\n },\n \"linkX\": node => node.x,\n \"linkY\": node => node.y,\n \"linkParentX\": node => node.parent.x,\n \"linkParentY\": node => node.parent.y + node.parent.height,\n \"buttonX\": node => node.width / 2,\n \"buttonY\": node => node.height,\n \"centerTransform\": ({ root, rootMargin, centerY, scale, centerX }) => `translate(${centerX},${rootMargin}) scale(${scale})`,\n \"nodeFlexSize\": ({ height, width, siblingsMargin, childrenMargin, state, node, compactViewIndex }) => {\n if (state.compact && node.flexCompactDim) {\n const result = [node.flexCompactDim[0], node.flexCompactDim[1]]\n return result;\n };\n return [width + siblingsMargin, height + childrenMargin];\n },\n \"zoomTransform\": ({ centerX, scale }) => `translate(${centerX},0}) scale(${scale})`,\n \"diagonal\": this.diagonal.bind(this),\n \"swap\": d => { },\n \"nodeUpdateTransform\": ({ x, y, width, height }) => `translate(${x - width / 2},${y})`,\n\n },\n \"bottom\": {\n \"nodeLeftX\": node => -node.width / 2,\n \"nodeRightX\": node => node.width / 2,\n \"nodeTopY\": node => -node.height,\n \"nodeBottomY\": node => 0,\n \"nodeJoinX\": node => node.x - node.width / 2,\n \"nodeJoinY\": node => node.y - node.height - node.height,\n \"linkJoinX\": node => node.x,\n \"linkJoinY\": node => node.y - node.height,\n \"linkCompactXStart\": node => node.x + (node.compactEven ? node.width / 2 : -node.width / 2),\n \"linkCompactYStart\": node => node.y - node.height / 2,\n \"compactLinkMidX\": (node, state) => node.firstCompactNode.x + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"compactLinkMidY\": node => node.firstCompactNode.y,\n \"linkX\": node => node.x,\n \"linkY\": node => node.y,\n \"compactDimension\": {\n sizeColumn: node => node.width,\n sizeRow: node => node.height,\n reverse: arr => arr,\n },\n \"linkParentX\": node => node.parent.x,\n \"linkParentY\": node => node.parent.y - node.parent.height,\n \"buttonX\": node => node.width / 2,\n \"buttonY\": node => 0,\n \"centerTransform\": ({ root, rootMargin, centerY, scale, centerX, chartHeight }) => `translate(${centerX},${chartHeight - rootMargin}) scale(${scale})`,\n \"nodeFlexSize\": ({ height, width, siblingsMargin, childrenMargin, state, node }) => {\n if (state.compact && node.flexCompactDim) {\n const result = [node.flexCompactDim[0], node.flexCompactDim[1]]\n return result;\n };\n return [width + siblingsMargin, height + childrenMargin]\n },\n \"zoomTransform\": ({ centerX, scale }) => `translate(${centerX},0}) scale(${scale})`,\n \"diagonal\": this.diagonal.bind(this),\n \"swap\": d => { d.y = -d.y; },\n \"nodeUpdateTransform\": ({ x, y, width, height }) => `translate(${x - width / 2},${y - height})`,\n },\n \"right\": {\n \"nodeLeftX\": node => -node.width,\n \"nodeRightX\": node => 0,\n \"nodeTopY\": node => - node.height / 2,\n \"nodeBottomY\": node => node.height / 2,\n \"nodeJoinX\": node => node.x - node.width - node.width,\n \"nodeJoinY\": node => node.y - node.height / 2,\n \"linkJoinX\": node => node.x - node.width,\n \"linkJoinY\": node => node.y,\n \"linkX\": node => node.x,\n \"linkY\": node => node.y,\n \"linkParentX\": node => node.parent.x - node.parent.width,\n \"linkParentY\": node => node.parent.y,\n \"buttonX\": node => 0,\n \"buttonY\": node => node.height / 2,\n \"linkCompactXStart\": node => node.x - node.width / 2,//node.x + (node.compactEven ? node.width / 2 : -node.width / 2),\n \"linkCompactYStart\": node => node.y + (node.compactEven ? node.height / 2 : -node.height / 2),\n \"compactLinkMidX\": (node, state) => node.firstCompactNode.x,// node.firstCompactNode.x + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"compactLinkMidY\": (node, state) => node.firstCompactNode.y + node.firstCompactNode.flexCompactDim[0] / 4 + state.compactMarginPair(node) / 4,\n \"centerTransform\": ({ root, rootMargin, centerY, scale, centerX, chartWidth }) => `translate(${chartWidth - rootMargin},${centerY}) scale(${scale})`,\n \"nodeFlexSize\": ({ height, width, siblingsMargin, childrenMargin, state, node }) => {\n if (state.compact && node.flexCompactDim) {\n const result = [node.flexCompactDim[0], node.flexCompactDim[1]]\n return result;\n };\n return [height + siblingsMargin, width + childrenMargin]\n },\n \"compactDimension\": {\n sizeColumn: node => node.height,\n sizeRow: node => node.width,\n reverse: arr => arr.slice().reverse()\n },\n \"zoomTransform\": ({ centerY, scale }) => `translate(${0},${centerY}) scale(${scale})`,\n \"diagonal\": this.hdiagonal.bind(this),\n \"swap\": d => { const x = d.x; d.x = -d.y; d.y = x; },\n \"nodeUpdateTransform\": ({ x, y, width, height }) => `translate(${x - width},${y - height / 2})`,\n },\n }\n\n };\n\n this.getChartState = () => attrs;\n\n // Dynamically set getter and setter functions for Chart class\n Object.keys(attrs).forEach((key) => {\n //@ts-ignore\n this[key] = function (_) {\n if (!arguments.length) {\n return attrs[key];\n } else {\n attrs[key] = _;\n }\n return this;\n };\n });\n\n this.initializeEnterExitUpdatePattern();\n }\n\n initializeEnterExitUpdatePattern() {\n d3.selection.prototype.patternify = function (params) {\n var container = this;\n var selector = params.selector;\n var elementTag = params.tag;\n var data = params.data || [selector];\n\n // Pattern in action\n var selection = container.selectAll(\".\" + selector).data(data, (d, i) => {\n if (typeof d === \"object\") {\n if (d.id) { return d.id; }\n }\n return i;\n });\n selection.exit().remove();\n selection = selection.enter().append(elementTag).merge(selection);\n selection.attr(\"class\", selector);\n return selection;\n };\n }\n\n // This method retrieves passed node's children IDs (including node)\n getNodeChildren({ data, children, _children }, nodeStore) {\n // Store current node ID\n nodeStore.push(data);\n\n // Loop over children and recursively store descendants id (expanded nodes)\n if (children) {\n children.forEach((d) => {\n this.getNodeChildren(d, nodeStore);\n });\n }\n\n // Loop over _children and recursively store descendants id (collapsed nodes)\n if (_children) {\n _children.forEach((d) => {\n this.getNodeChildren(d, nodeStore);\n });\n }\n\n // Return result\n return nodeStore;\n }\n\n // This method can be invoked via chart.setZoomFactor API, it zooms to particulat scale\n initialZoom(zoomLevel) {\n const attrs = this.getChartState();\n attrs.lastTransform.k = zoomLevel;\n return this;\n }\n\n render() {\n //InnerFunctions which will update visuals\n const attrs = this.getChartState();\n if (!attrs.data || attrs.data.length == 0) {\n console.log('ORG CHART - Data is empty');\n if (attrs.container) {\n select(attrs.container).select('.nodes-wrapper').remove();\n select(attrs.container).select('.links-wrapper').remove();\n select(attrs.container).select('.connections-wrapper').remove();\n }\n return this;\n }\n\n //Drawing containers\n const container = d3.select(attrs.container);\n const containerRect = container.node().getBoundingClientRect();\n if (containerRect.width > 0) attrs.svgWidth = containerRect.width;\n\n //Calculated properties\n const calc = {\n id: `ID${Math.floor(Math.random() * 1000000)}`, // id for event handlings,\n chartWidth: attrs.svgWidth,\n chartHeight: attrs.svgHeight\n };\n attrs.calc = calc;\n\n // Calculate max node depth (it's needed for layout heights calculation)\n calc.centerX = calc.chartWidth / 2;\n calc.centerY = calc.chartHeight / 2;\n\n // ******************* BEHAVIORS **********************\n if (attrs.firstDraw) {\n const behaviors = {\n zoom: null\n };\n\n // Get zooming function\n behaviors.zoom = attrs.createZoom()\n .clickDistance(10)\n .on('start', (event, d) => attrs.onZoomStart(event))\n .on('end', (event, d) => attrs.onZoomEnd(event))\n .on(\"zoom\", (event, d) => {\n attrs.onZoom(event);\n this.zoomed(event, d);\n })\n .scaleExtent(attrs.scaleExtent)\n attrs.zoomBehavior = behaviors.zoom;\n }\n\n //****************** ROOT node work ************************\n\n attrs.flexTreeLayout = flextree({\n nodeSize: node => {\n const width = attrs.nodeWidth(node);;\n const height = attrs.nodeHeight(node);\n const siblingsMargin = attrs.siblingsMargin(node)\n const childrenMargin = attrs.childrenMargin(node);\n return attrs.layoutBindings[attrs.layout].nodeFlexSize({\n state: attrs,\n node: node,\n width,\n height,\n siblingsMargin,\n childrenMargin\n });\n }\n })\n .spacing((nodeA, nodeB) => nodeA.parent == nodeB.parent ? 0 : attrs.neighbourMargin(nodeA, nodeB));\n\n this.setLayouts({ expandNodesFirst: false });\n\n // ************************* DRAWING **************************\n //Add svg\n const svg = container\n .patternify({\n tag: \"svg\",\n selector: \"svg-chart-container\"\n })\n .attr(\"width\", attrs.svgWidth)\n .attr(\"height\", attrs.svgHeight)\n .attr(\"font-family\", attrs.defaultFont)\n\n if (attrs.firstDraw) {\n svg.call(attrs.zoomBehavior)\n .on(\"dblclick.zoom\", null)\n .attr(\"cursor\", \"move\")\n }\n\n attrs.svg = svg;\n\n //Add container g element\n const chart = svg\n .patternify({\n tag: \"g\",\n selector: \"chart\"\n })\n\n // Add one more container g element, for better positioning controls\n attrs.centerG = chart\n .patternify({\n tag: \"g\",\n selector: \"center-group\"\n })\n\n attrs.linksWrapper = attrs.centerG.patternify({\n tag: \"g\",\n selector: \"links-wrapper\"\n })\n\n attrs.nodesWrapper = attrs.centerG.patternify({\n tag: \"g\",\n selector: \"nodes-wrapper\"\n })\n\n attrs.connectionsWrapper = attrs.centerG.patternify({\n tag: \"g\",\n selector: \"connections-wrapper\"\n })\n\n attrs.defsWrapper = svg.patternify({\n tag: \"g\",\n selector: \"defs-wrapper\"\n })\n\n if (attrs.firstDraw) {\n attrs.centerG.attr(\"transform\", () => {\n return attrs.layoutBindings[attrs.layout].centerTransform({\n centerX: calc.centerX,\n centerY: calc.centerY,\n scale: attrs.lastTransform.k,\n rootMargin: attrs.rootMargin,\n root: attrs.root,\n chartHeight: calc.chartHeight,\n chartWidth: calc.chartWidth\n })\n });\n }\n\n attrs.chart = chart;\n\n // Display tree contenrs\n this.update(attrs.root);\n\n\n //######################################### UTIL FUNCS ##################################\n // This function restyles foreign object elements ()\n\n d3.select(window).on(`resize.${attrs.id}`, () => {\n const containerRect = d3.select(attrs.container).node().getBoundingClientRect();\n attrs.svg.attr('width', containerRect.width)\n });\n\n if (attrs.firstDraw) {\n attrs.firstDraw = false;\n }\n\n return this;\n }\n\n // This function can be invoked via chart.addNode API, and it adds node in tree at runtime\n addNode(obj) {\n const attrs = this.getChartState();\n if (obj && (attrs.parentNodeId(obj) == null || attrs.parentNodeId(obj) == attrs.nodeId(obj)) && attrs.data.length == 0) {\n attrs.data.push(obj);\n this.render()\n return this;\n }\n const root = attrs.generateRoot(attrs.data)\n const descendants = root.descendants();\n const nodeFound = descendants.filter(({ data }) => attrs.nodeId(data).toString() === attrs.nodeId(obj).toString())[0];\n const parentFound = descendants.filter(({ data }) => attrs.nodeId(data).toString() === attrs.parentNodeId(obj).toString())[0];\n if (nodeFound) {\n console.log(`ORG CHART - ADD - Node with id \"${attrs.nodeId(obj)}\" already exists in tree`)\n return this;\n }\n\n if (obj._centered && !obj._expanded) obj._expanded = true;\n attrs.data.push(obj);\n\n // Update state of nodes and redraw graph\n this.updateNodesState();\n\n return this;\n }\n\n // This function can be invoked via chart.removeNode API, and it removes node from tree at runtime\n removeNode(nodeId) {\n const attrs = this.getChartState();\n const root = attrs.generateRoot(attrs.data)\n const descendants = root.descendants();\n const node = descendants.filter(({ data }) => attrs.nodeId(data) == nodeId)[0];\n\n if (!node) {\n console.log(`ORG CHART - REMOVE - Node with id \"${nodeId}\" not found in the tree`);\n return this;\n }\n\n // Get all node descendants\n const nodeDescendants = node.descendants()\n\n // Mark all node children and node itself for removal\n nodeDescendants\n .forEach(d => d.data._filteredOut = true)\n\n // Filter out retrieved nodes and reassign data\n attrs.data = attrs.data.filter(d => !d._filteredOut);\n\n if (attrs.data.length == 0) {\n this.render();\n } else {\n const updateNodesState = this.updateNodesState.bind(this);\n // Update state of nodes and redraw graph\n updateNodesState();\n }\n return this;\n }\n\n groupBy(array, accessor, aggegator) {\n const grouped = {}\n array.forEach(item => {\n const key = accessor(item)\n if (!grouped[key]) {\n grouped[key] = []\n }\n grouped[key].push(item)\n })\n\n Object.keys(grouped).forEach(key => {\n grouped[key] = aggegator(grouped[key])\n })\n return Object.entries(grouped);\n }\n calculateCompactFlexDimensions(root) {\n const attrs = this.getChartState();\n root.eachBefore(node => {\n node.firstCompact = null;\n node.compactEven = null;\n node.flexCompactDim = null;\n node.firstCompactNode = null;\n })\n root.eachBefore(node => {\n if (node.children && node.children.length > 1) {\n const compactChildren = node.children\n .filter(d => !d.children)\n\n if (compactChildren.length < 2) return;\n compactChildren.forEach((child, i) => {\n if (!i) child.firstCompact = true;\n if (i % 2) child.compactEven = false;\n else child.compactEven = true;\n child.row = Math.floor(i / 2);\n })\n const evenMaxColumnDimension = d3.max(compactChildren.filter(d => d.compactEven), attrs.layoutBindings[attrs.layout].compactDimension.sizeColumn);\n const oddMaxColumnDimension = d3.max(compactChildren.filter(d => !d.compactEven), attrs.layoutBindings[attrs.layout].compactDimension.sizeColumn);\n const columnSize = Math.max(evenMaxColumnDimension, oddMaxColumnDimension) * 2;\n const rowsMapNew = this.groupBy(compactChildren, d => d.row, reducedGroup => d3.max(reducedGroup, d => attrs.layoutBindings[attrs.layout].compactDimension.sizeRow(d) + attrs.compactMarginBetween(d)));\n const rowSize = d3.sum(rowsMapNew.map(v => v[1]))\n compactChildren.forEach(node => {\n node.firstCompactNode = compactChildren[0];\n if (node.firstCompact) {\n node.flexCompactDim = [\n columnSize + attrs.compactMarginPair(node),\n rowSize - attrs.compactMarginBetween(node)\n ];\n } else {\n node.flexCompactDim = [0, 0];\n }\n })\n node.flexCompactDim = null;\n }\n })\n }\n\n calculateCompactFlexPositions(root) {\n const attrs = this.getChartState();\n root.eachBefore(node => {\n if (node.children) {\n const compactChildren = node.children.filter(d => d.flexCompactDim);\n const fch = compactChildren[0];\n if (!fch) return;\n compactChildren.forEach((child, i, arr) => {\n if (i == 0) fch.x -= fch.flexCompactDim[0] / 2;\n if (i & i % 2 - 1) child.x = fch.x + fch.flexCompactDim[0] * 0.25 - attrs.compactMarginPair(child) / 4;\n else if (i) child.x = fch.x + fch.flexCompactDim[0] * 0.75 + attrs.compactMarginPair(child) / 4;\n })\n const centerX = fch.x + fch.flexCompactDim[0] * 0.5;\n fch.x = fch.x + fch.flexCompactDim[0] * 0.25 - attrs.compactMarginPair(fch) / 4;\n const offsetX = node.x - centerX;\n if (Math.abs(offsetX) < 10) {\n compactChildren.forEach(d => d.x += offsetX);\n }\n\n const rowsMapNew = this.groupBy(compactChildren, d => d.row, reducedGroup => d3.max(reducedGroup, d => attrs.layoutBindings[attrs.layout].compactDimension.sizeRow(d)));\n const cumSum = d3.cumsum(rowsMapNew.map(d => d[1] + attrs.compactMarginBetween(d)));\n compactChildren\n .forEach((node, i) => {\n if (node.row) {\n node.y = fch.y + cumSum[node.row - 1]\n } else {\n node.y = fch.y;\n }\n })\n\n }\n })\n }\n\n // This function basically redraws visible graph, based on nodes state\n update({ x0, y0, x = 0, y = 0, width, height }) {\n const attrs = this.getChartState();\n const calc = attrs.calc;\n\n // Paging\n if (attrs.compact) {\n this.calculateCompactFlexDimensions(attrs.root);\n }\n\n // Assigns the x and y position for the nodes\n const treeData = attrs.flexTreeLayout(attrs.root);\n\n // Reassigns the x and y position for the based on the compact layout\n if (attrs.compact) {\n this.calculateCompactFlexPositions(attrs.root);\n }\n\n const nodes = treeData.descendants();\n\n // console.table(nodes.map(d => ({ x: d.x, y: d.y, width: d.width, height: d.height, flexCompactDim: d.flexCompactDim + \"\" })))\n\n // Get all links\n const links = treeData.descendants().slice(1);\n nodes.forEach(attrs.layoutBindings[attrs.layout].swap)\n\n // Connections\n const connections = attrs.connections;\n const allNodesMap = {};\n attrs.allNodes.forEach(d => allNodesMap[attrs.nodeId(d.data)] = d);\n\n const visibleNodesMap = {}\n nodes.forEach(d => visibleNodesMap[attrs.nodeId(d.data)] = d);\n\n connections.forEach(connection => {\n const source = allNodesMap[connection.from];\n const target = allNodesMap[connection.to];\n connection._source = source;\n connection._target = target;\n })\n const visibleConnections = connections.filter(d => visibleNodesMap[d.from] && visibleNodesMap[d.to]);\n const defsString = attrs.defs.bind(this)(attrs, visibleConnections);\n const existingString = attrs.defsWrapper.html();\n if (defsString !== existingString) {\n attrs.defsWrapper.html(defsString)\n }\n\n // -------------------------- LINKS ----------------------\n // Get links selection\n const linkSelection = attrs.linksWrapper\n .selectAll(\"path.link\")\n .data(links, (d) => attrs.nodeId(d.data));\n\n // Enter any new links at the parent's previous position.\n const linkEnter = linkSelection\n .enter()\n .insert(\"path\", \"g\")\n .attr(\"class\", \"link\")\n .attr(\"d\", (d) => {\n const xo = attrs.layoutBindings[attrs.layout].linkJoinX({ x: x0, y: y0, width, height });\n const yo = attrs.layoutBindings[attrs.layout].linkJoinY({ x: x0, y: y0, width, height });\n const o = { x: xo, y: yo };\n return attrs.layoutBindings[attrs.layout].diagonal(o, o, o);\n });\n\n // Get links update selection\n const linkUpdate = linkEnter.merge(linkSelection);\n\n // Styling links\n linkUpdate\n .attr(\"fill\", \"none\")\n\n\n if (this.isEdge()) {\n linkUpdate\n .style('display', d => {\n const display = d.data._pagingButton ? 'none' : 'auto'\n return display;\n })\n } else {\n linkUpdate\n .attr('display', d => {\n const display = d.data._pagingButton ? 'none' : 'auto'\n return display;\n })\n }\n\n // Allow external modifications\n linkUpdate.each(attrs.linkUpdate);\n\n // Transition back to the parent element position\n linkUpdate\n .transition()\n .duration(attrs.duration)\n .attr(\"d\", (d) => {\n const n = attrs.compact && d.flexCompactDim ?\n {\n x: attrs.layoutBindings[attrs.layout].compactLinkMidX(d, attrs),\n y: attrs.layoutBindings[attrs.layout].compactLinkMidY(d, attrs)\n } :\n {\n x: attrs.layoutBindings[attrs.layout].linkX(d),\n y: attrs.layoutBindings[attrs.layout].linkY(d)\n };\n\n const p = {\n x: attrs.layoutBindings[attrs.layout].linkParentX(d),\n y: attrs.layoutBindings[attrs.layout].linkParentY(d),\n };\n\n const m = attrs.compact && d.flexCompactDim ? {\n x: attrs.layoutBindings[attrs.layout].linkCompactXStart(d),\n y: attrs.layoutBindings[attrs.layout].linkCompactYStart(d),\n } : n;\n return attrs.layoutBindings[attrs.layout].diagonal(n, p, m, { sy: attrs.linkYOffset });\n });\n\n // Remove any links which is exiting after animation\n const linkExit = linkSelection\n .exit()\n .transition()\n .duration(attrs.duration)\n .attr(\"d\", (d) => {\n const xo = attrs.layoutBindings[attrs.layout].linkJoinX({ x, y, width, height });\n const yo = attrs.layoutBindings[attrs.layout].linkJoinY({ x, y, width, height });\n const o = { x: xo, y: yo };\n return attrs.layoutBindings[attrs.layout].diagonal(o, o, null, { sy: attrs.linkYOffset });\n })\n .remove();\n\n\n // -------------------------- CONNECTIONS ----------------------\n\n const connectionsSel = attrs.connectionsWrapper\n .selectAll(\"path.connection\")\n .data(visibleConnections)\n\n // Enter any new connections at the parent's previous position.\n const connEnter = connectionsSel\n .enter()\n .insert(\"path\", \"g\")\n .attr(\"class\", \"connection\")\n .attr(\"d\", (d) => {\n const xo = attrs.layoutBindings[attrs.layout].linkJoinX({ x: x0, y: y0, width, height });\n const yo = attrs.layoutBindings[attrs.layout].linkJoinY({ x: x0, y: y0, width, height });\n const o = { x: xo, y: yo };\n return attrs.layoutBindings[attrs.layout].diagonal(o, o, null, { sy: attrs.linkYOffset });\n });\n\n\n // Get connections update selection\n const connUpdate = connEnter.merge(connectionsSel);\n\n // Styling connections\n connUpdate.attr(\"fill\", \"none\")\n\n // Transition back to the parent element position\n connUpdate\n .transition()\n .duration(attrs.duration)\n .attr('d', (d) => {\n const xs = attrs.layoutBindings[attrs.layout].linkX({ x: d._source.x, y: d._source.y, width: d._source.width, height: d._source.height });\n const ys = attrs.layoutBindings[attrs.layout].linkY({ x: d._source.x, y: d._source.y, width: d._source.width, height: d._source.height });\n const xt = attrs.layoutBindings[attrs.layout].linkJoinX({ x: d._target.x, y: d._target.y, width: d._target.width, height: d._target.height });\n const yt = attrs.layoutBindings[attrs.layout].linkJoinY({ x: d._target.x, y: d._target.y, width: d._target.width, height: d._target.height });\n return attrs.linkGroupArc({ source: { x: xs, y: ys }, target: { x: xt, y: yt } })\n })\n\n // Allow external modifications\n connUpdate.each(attrs.connectionsUpdate);\n\n // Remove any links which is exiting after animation\n const connExit = connectionsSel\n .exit()\n .transition()\n .duration(attrs.duration)\n .attr('opacity', 0)\n .remove();\n\n // -------------------------- NODES ----------------------\n // Get nodes selection\n const nodesSelection = attrs.nodesWrapper\n .selectAll(\"g.node\")\n .data(nodes, ({ data }) => attrs.nodeId(data));\n\n // Enter any new nodes at the parent's previous position.\n const nodeEnter = nodesSelection\n .enter()\n .append(\"g\")\n .attr(\"class\", \"node\")\n .attr(\"transform\", (d) => {\n if (d == attrs.root) return `translate(${x0},${y0})`\n const xj = attrs.layoutBindings[attrs.layout].nodeJoinX({ x: x0, y: y0, width, height });\n const yj = attrs.layoutBindings[attrs.layout].nodeJoinY({ x: x0, y: y0, width, height });\n return `translate(${xj},${yj})`\n })\n .attr(\"cursor\", \"pointer\")\n .on(\"click.node\", (event, node) => {\n const { data } = node;\n if ([...event.srcElement.classList].includes(\"node-button-foreign-object\")) {\n return;\n }\n if ([...event.srcElement.classList].includes(\"paging-button-wrapper\")) {\n this.loadPagingNodes(node);\n return;\n }\n if (!data._pagingButton) {\n attrs.onNodeClick(node);\n return;\n }\n console.log('event fired, no handlers')\n })\n // Event handler to the expand button\n .on(\"keydown.node\", (event, node) => {\n const { data } = node;\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n if ([...event.srcElement.classList].includes(\"node-button-foreign-object\")) {\n return;\n }\n if ([...event.srcElement.classList].includes(\"paging-button-wrapper\")) {\n this.loadPagingNodes(node);\n return;\n }\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n this.onButtonClick(event, node)\n }\n }\n });\n nodeEnter.each(attrs.nodeEnter)\n\n // Add background rectangle for the nodes\n nodeEnter\n .patternify({\n tag: \"rect\",\n selector: \"node-rect\",\n data: (d) => [d]\n })\n\n // Node update styles\n const nodeUpdate = nodeEnter\n .merge(nodesSelection)\n .style(\"font\", \"12px sans-serif\");\n\n // Add foreignObject element inside rectangle\n const fo = nodeUpdate.patternify({\n tag: \"foreignObject\",\n selector: \"node-foreign-object\",\n data: (d) => [d]\n })\n .style('overflow', 'visible')\n\n // Add foreign object\n fo.patternify({\n tag: \"xhtml:div\",\n selector: \"node-foreign-object-div\",\n data: (d) => [d]\n })\n\n this.restyleForeignObjectElements();\n\n // Add Node button circle's group (expand-collapse button)\n const nodeButtonGroups = nodeEnter\n .patternify({\n tag: \"g\",\n selector: \"node-button-g\",\n data: (d) => [d]\n })\n .on(\"click\", (event, d) => this.onButtonClick(event, d))\n .on(\"keydown\", (event, d) => {\n if (event.key === 'Enter' || event.key === ' ' || event.key === 'Spacebar') {\n this.onButtonClick(event, d)\n }\n });\n\n nodeButtonGroups.patternify({\n tag: 'rect',\n selector: 'node-button-rect',\n data: (d) => [d]\n })\n .attr('opacity', 0)\n .attr('pointer-events', 'all')\n .attr('width', d => attrs.nodeButtonWidth(d))\n .attr('height', d => attrs.nodeButtonHeight(d))\n .attr('x', d => attrs.nodeButtonX(d))\n .attr('y', d => attrs.nodeButtonY(d))\n\n // Add expand collapse button content\n const nodeFo = nodeButtonGroups\n .patternify({\n tag: \"foreignObject\",\n selector: \"node-button-foreign-object\",\n data: (d) => [d]\n })\n .attr('width', d => attrs.nodeButtonWidth(d))\n .attr('height', d => attrs.nodeButtonHeight(d))\n .attr('x', d => attrs.nodeButtonX(d))\n .attr('y', d => attrs.nodeButtonY(d))\n .style('overflow', 'visible')\n .patternify({\n tag: \"xhtml:div\",\n selector: \"node-button-div\",\n data: (d) => [d]\n })\n .style('pointer-events', 'none')\n .style('display', 'flex')\n .style('width', '100%')\n .style('height', '100%')\n\n\n\n // Transition to the proper position for the node\n nodeUpdate\n .transition()\n .attr(\"opacity\", 0)\n .duration(attrs.duration)\n .attr(\"transform\", ({ x, y, width, height }) => {\n return attrs.layoutBindings[attrs.layout].nodeUpdateTransform({ x, y, width, height });\n\n })\n .attr(\"opacity\", 1);\n\n // Style node rectangles\n nodeUpdate\n .select(\".node-rect\")\n .attr(\"width\", ({ width }) => width)\n .attr(\"height\", ({ height }) => height)\n .attr(\"x\", ({ width }) => 0)\n .attr(\"y\", ({ height }) => 0)\n .attr(\"cursor\", \"pointer\")\n .attr('rx', 3)\n .attr(\"fill\", attrs.nodeDefaultBackground)\n\n\n nodeUpdate.select(\".node-button-g\").attr(\"transform\", ({ data, width, height }) => {\n const x = attrs.layoutBindings[attrs.layout].buttonX({ width, height });\n const y = attrs.layoutBindings[attrs.layout].buttonY({ width, height });\n return `translate(${x},${y})`\n })\n .attr(\"display\", ({ data }) => {\n return data._directSubordinates > 0 ? null : 'none';\n })\n .attr(\"opacity\", ({ data, children, _children }) => {\n if (data._pagingButton) {\n return 0;\n }\n if (children || _children) {\n return 1;\n }\n return 0;\n });\n\n // Restyle node button circle\n nodeUpdate\n .select(\".node-button-foreign-object .node-button-div\")\n .html((node) => {\n return attrs.buttonContent({ node, state: attrs })\n })\n\n // Restyle button texts\n nodeUpdate\n .select(\".node-button-text\")\n .attr(\"text-anchor\", \"middle\")\n .attr(\"alignment-baseline\", \"middle\")\n .attr(\"font-size\", ({ children }) => {\n if (children) return 40;\n return 26;\n })\n .text(({ children }) => {\n if (children) return \"-\";\n return \"+\";\n })\n .attr(\"y\", this.isEdge() ? 10 : 0);\n\n nodeUpdate.each(attrs.nodeUpdate)\n\n // Remove any exiting nodes after transition\n const nodeExitTransition = nodesSelection\n .exit()\n nodeExitTransition.each(attrs.nodeExit)\n\n const maxDepthNode = nodeExitTransition.data().reduce((a, b) => a.depth < b.depth ? a : b, { depth: Infinity });\n\n nodeExitTransition.attr(\"opacity\", 1)\n .transition()\n .duration(attrs.duration)\n .attr(\"transform\", (d) => {\n\n let { x, y, width, height } = maxDepthNode.parent || {};\n const ex = attrs.layoutBindings[attrs.layout].nodeJoinX({ x, y, width, height });\n const ey = attrs.layoutBindings[attrs.layout].nodeJoinY({ x, y, width, height });\n return `translate(${ex},${ey})`\n })\n .on(\"end\", function () {\n d3.select(this).remove();\n })\n .attr(\"opacity\", 0);\n\n // Store the old positions for transition.\n nodes.forEach((d) => {\n d.x0 = d.x;\n d.y0 = d.y;\n });\n\n // CHECK FOR CENTERING\n const centeredNode = attrs.allNodes.filter(d => d.data._centered)[0]\n if (centeredNode) {\n let centeredNodes = [centeredNode]\n if (centeredNode.data._centeredWithDescendants) {\n if (attrs.compact) {\n centeredNodes = centeredNode.descendants().filter((d, i) => i < 7);\n } else {\n centeredNodes = centeredNode.descendants().filter((d, i, arr) => {\n const h = Math.round(arr.length / 2);\n const spread = 2;\n if (arr.length % 2) {\n return i > h - spread && i < h + spread - 1;\n }\n\n return i > h - spread && i < h + spread;\n });\n }\n\n }\n centeredNode.data._centeredWithDescendants = null;\n centeredNode.data._centered = null;\n this.fit({\n animate: true,\n scale: false,\n nodes: centeredNodes\n })\n }\n\n }\n\n // This function detects whether current browser is edge\n isEdge() {\n return window.navigator.userAgent.includes(\"Edge\");\n }\n\n // Generate horizontal diagonal - play with it here - https://observablehq.com/@bumbeishvili/curved-edges-horizontal-d3-v3-v4-v5-v6\n hdiagonal(s, t, m, offsets) {\n const state = this.getChartState();\n return state.hdiagonal(s, t, m, offsets);\n }\n\n // Generate custom diagonal - play with it here - https://observablehq.com/@bumbeishvili/curved-edges\n diagonal(s, t, m, offsets) {\n const state = this.getChartState();\n return state.diagonal(s, t, m, offsets);\n }\n\n restyleForeignObjectElements() {\n const attrs = this.getChartState();\n\n attrs.svg\n .selectAll(\".node-foreign-object\")\n .attr(\"width\", ({ width }) => width)\n .attr(\"height\", ({ height }) => height)\n .attr(\"x\", ({ width }) => 0)\n .attr(\"y\", ({ height }) => 0);\n attrs.svg\n .selectAll(\".node-foreign-object-div\")\n .style(\"width\", ({ width }) => `${width}px`)\n .style(\"height\", ({ height }) => `${height}px`)\n .html(function (d, i, arr) {\n if (d.data._pagingButton) {\n return `
${attrs.pagingButton(d, i, arr, attrs)}
`;\n }\n return attrs.nodeContent.bind(this)(d, i, arr, attrs)\n })\n }\n\n // Toggle children on click.\n onButtonClick(event, d) {\n const attrs = this.getChartState();\n if (d.data._pagingButton) {\n return;\n }\n if (attrs.setActiveNodeCentered) {\n d.data._centered = true;\n d.data._centeredWithDescendants = true;\n }\n\n // If childrens are expanded\n if (d.children) {\n //Collapse them\n d._children = d.children;\n d.children = null;\n\n // Set descendants expanded property to false\n this.setExpansionFlagToChildren(d, false);\n } else {\n // Expand children\n d.children = d._children;\n d._children = null;\n\n // Set each children as expanded\n if (d.children) {\n d.children.forEach(({ data }) => (data._expanded = true));\n }\n }\n\n // Redraw Graph\n this.update(d);\n event.stopPropagation();\n\n // Trigger callback\n attrs.onExpandOrCollapse(d);\n\n }\n\n // This function changes `expanded` property to descendants\n setExpansionFlagToChildren({ data, children, _children }, flag) {\n // Set flag to the current property\n data._expanded = flag;\n\n // Loop over and recursively update expanded children's descendants\n if (children) {\n children.forEach((d) => {\n this.setExpansionFlagToChildren(d, flag);\n });\n }\n\n // Loop over and recursively update collapsed children's descendants\n if (_children) {\n _children.forEach((d) => {\n this.setExpansionFlagToChildren(d, flag);\n });\n }\n }\n\n\n // Method which only expands nodes, which have property set \"expanded=true\"\n expandSomeNodes(d) {\n // If node has expanded property set\n if (d.data._expanded) {\n // Retrieve node's parent\n let parent = d.parent;\n\n // While we can go up\n while (parent && parent._children) {\n // Expand all current parent's children\n parent.children = parent._children;\n parent._children = null;\n // Replace current parent holding object\n parent = parent.parent;\n }\n }\n\n // Recursively do the same for collapsed nodes\n if (d._children) {\n d._children.forEach((ch) => this.expandSomeNodes(ch));\n }\n\n // Recursively do the same for expanded nodes\n if (d.children) {\n d.children.forEach((ch) => this.expandSomeNodes(ch));\n }\n }\n\n // This function updates nodes state and redraws graph, usually after data change\n updateNodesState() {\n const attrs = this.getChartState();\n\n\n this.setLayouts({ expandNodesFirst: true });\n\n // Redraw Graphs\n this.update(attrs.root);\n }\n\n setLayouts({ expandNodesFirst = true }) {\n const attrs = this.getChartState();\n // Store new root by converting flat data to hierarchy\n\n attrs.generateRoot = d3\n .stratify()\n .id((d) => attrs.nodeId(d))\n .parentId(d => attrs.parentNodeId(d))\n attrs.root = attrs.generateRoot(attrs.data);\n\n const descendantsBefore = attrs.root.descendants();\n if (attrs.initialExpandLevel > 1 && descendantsBefore.length > 0) {\n descendantsBefore.forEach((d) => {\n if (d.depth <= attrs.initialExpandLevel) {\n d.data._expanded = true;\n }\n })\n attrs.initialExpandLevel = 1;\n }\n\n\n const hiddenNodesMap = {};\n attrs.root.descendants()\n .filter(node => node.children)\n .filter(node => !node.data._pagingStep)\n .forEach(node => {\n node.data._pagingStep = attrs.minPagingVisibleNodes(node);\n })\n\n\n\n attrs.root.eachBefore((node, i) => {\n node.data._directSubordinatesPaging = node.children ? node.children.length : 0;\n if (node.children) {\n node.children.forEach((child, j) => {\n child.data._pagingButton = false;\n if (j > node.data._pagingStep) {\n hiddenNodesMap[child.id] = true;\n }\n if (j === node.data._pagingStep && (node.children.length - 1) > node.data._pagingStep) {\n child.data._pagingButton = true;\n }\n if (hiddenNodesMap[child.parent.id]) {\n hiddenNodesMap[child.id] = true;\n }\n if (child.data._expanded || child.data._centered || child.data._highlighted || child.data._upToTheRootHighlighted) {\n let localNode = child;\n while (localNode && (hiddenNodesMap[localNode.id] || localNode.data._pagingButton)) {\n hiddenNodesMap[localNode.id] = false;\n if (localNode.data._pagingButton) {\n localNode.data._pagingButton = false;\n localNode.parent.children.forEach(ch => {\n ch.data._expanded = true;\n hiddenNodesMap[ch.id] = false;\n })\n }\n localNode = localNode.parent;\n }\n }\n })\n }\n })\n\n\n attrs.root = d3\n .stratify()\n .id((d) => attrs.nodeId(d))\n .parentId(d => attrs.parentNodeId(d))(attrs.data.filter(d => hiddenNodesMap[d.id] !== true));\n\n attrs.root.each((node, i, arr) => {\n let _hierarchyHeight = node._hierarchyHeight || node.height\n let width = attrs.nodeWidth(node);\n let height = attrs.nodeHeight(node);\n Object.assign(node, { width, height, _hierarchyHeight })\n })\n\n // Store positions, where children appear during their enter animation\n attrs.root.x0 = 0;\n attrs.root.y0 = 0;\n attrs.allNodes = attrs.root.descendants();\n\n // Store direct and total descendants count\n attrs.allNodes.forEach((d) => {\n Object.assign(d.data, {\n _directSubordinates: d.children ? d.children.length : 0,\n _totalSubordinates: d.descendants().length - 1\n });\n });\n\n if (attrs.root.children) {\n if (expandNodesFirst) {\n // Expand all nodes first\n attrs.root.children.forEach(this.expand);\n }\n // Then collapse them all\n attrs.root.children.forEach((d) => this.collapse(d));\n\n // Collapse root if level is 0\n if (attrs.initialExpandLevel == 0) {\n attrs.root._children = attrs.root.children;\n attrs.root.children = null;\n }\n\n // Then only expand nodes, which have expanded property set to true\n [attrs.root].forEach((ch) => this.expandSomeNodes(ch));\n }\n }\n\n // Function which collapses passed node and it's descendants\n collapse(d) {\n if (d.children) {\n d._children = d.children;\n d._children.forEach((ch) => this.collapse(ch));\n d.children = null;\n }\n }\n\n // Function which expands passed node and it's descendants\n expand(d) {\n if (d._children) {\n d.children = d._children;\n d.children.forEach((ch) => this.expand(ch));\n d._children = null;\n }\n }\n\n // Zoom handler function\n zoomed(event, d) {\n const attrs = this.getChartState();\n const chart = attrs.chart;\n\n // Get d3 event's transform object\n const transform = event.transform;\n\n // Store it\n attrs.lastTransform = transform;\n\n // Reposition and rescale chart accordingly\n chart.attr(\"transform\", transform);\n\n // Apply new styles to the foreign object element\n if (this.isEdge()) {\n this.restyleForeignObjectElements();\n }\n }\n\n zoomTreeBounds({ x0, x1, y0, y1, params = { animate: true, scale: true, onCompleted: () => { } } }) {\n const { centerG, svgWidth: w, svgHeight: h, svg, zoomBehavior, duration, lastTransform } = this.getChartState()\n let scaleVal = Math.min(8, 0.9 / Math.max((x1 - x0) / w, (y1 - y0) / h));\n let identity = d3.zoomIdentity.translate(w / 2, h / 2)\n identity = identity.scale(params.scale ? scaleVal : lastTransform.k)\n\n identity = identity.translate(-(x0 + x1) / 2, -(y0 + y1) / 2);\n // Transition zoom wrapper component into specified bounds\n svg.transition().duration(params.animate ? duration : 0).call(zoomBehavior.transform, identity);\n centerG.transition().duration(params.animate ? duration : 0).attr('transform', 'translate(0,0)')\n .on('end', function () {\n if (params.onCompleted) {\n params.onCompleted()\n }\n })\n }\n\n fit({ animate = true, nodes, scale = true, onCompleted = () => { } } = {}) {\n const attrs = this.getChartState();\n const { root } = attrs;\n let descendants = nodes ? nodes : root.descendants();\n const minX = d3.min(descendants, d => d.x + attrs.layoutBindings[attrs.layout].nodeLeftX(d))\n const maxX = d3.max(descendants, d => d.x + attrs.layoutBindings[attrs.layout].nodeRightX(d))\n const minY = d3.min(descendants, d => d.y + attrs.layoutBindings[attrs.layout].nodeTopY(d))\n const maxY = d3.max(descendants, d => d.y + attrs.layoutBindings[attrs.layout].nodeBottomY(d))\n\n this.zoomTreeBounds({\n params: { animate: animate, scale, onCompleted },\n x0: minX - 50,\n x1: maxX + 50,\n y0: minY - 50,\n y1: maxY + 50,\n\n });\n return this;\n }\n\n // Load Paging Nodes\n loadPagingNodes(node) {\n const attrs = this.getChartState();\n node.data._pagingButton = false;\n const current = node.parent.data._pagingStep;\n const step = attrs.pagingStep(node.parent)\n const newPagingIndex = current + step;\n node.parent.data._pagingStep = newPagingIndex;\n this.updateNodesState();\n }\n\n // This function can be invoked via chart.setExpanded API, it expands or collapses particular node\n setExpanded(id, expandedFlag = true) {\n\n const attrs = this.getChartState();\n // Retrieve node by node Id\n const node = attrs.allNodes.filter(({ data }) => attrs.nodeId(data) == id)[0];\n\n if (!node) {\n console.log(`ORG CHART - ${expandedFlag ? \"EXPAND\" : \"COLLAPSE\"} - Node with id (${id}) not found in the tree`)\n return this;\n }\n node.data._expanded = expandedFlag;\n if (expandedFlag == false) {\n const parent = node.parent || { descendants: () => [] };\n const descendants = parent.descendants().filter(d => d != parent);\n descendants.forEach(d => d.data._expanded = false)\n }\n\n\n return this;\n }\n\n setCentered(nodeId) {\n const attrs = this.getChartState();\n // this.setExpanded(nodeId)\n const root = attrs.generateRoot(attrs.data)\n const descendants = root.descendants();\n const node = descendants.filter(({ data }) => attrs.nodeId(data).toString() == nodeId.toString())[0];\n if (!node) {\n console.log(`ORG CHART - CENTER - Node with id (${nodeId}) not found in the tree`)\n return this;\n }\n const ancestors = node.ancestors();\n ancestors.forEach(d => d.data._expanded = true)\n node.data._centered = true;\n node.data._expanded = true;\n return this;\n }\n\n setHighlighted(nodeId) {\n const attrs = this.getChartState();\n const root = attrs.generateRoot(attrs.data)\n const descendants = root.descendants();\n const node = descendants.filter(d => attrs.nodeId(d.data).toString() === nodeId.toString())[0];\n if (!node) {\n console.log(`ORG CHART - HIGHLIGHT - Node with id (${nodeId}) not found in the tree`);\n return this\n }\n const ancestors = node.ancestors();\n ancestors.forEach(d => d.data._expanded = true)\n node.data._highlighted = true;\n node.data._expanded = true;\n node.data._centered = true;\n return this;\n }\n\n setUpToTheRootHighlighted(nodeId) {\n const attrs = this.getChartState();\n const root = attrs.generateRoot(attrs.data)\n const descendants = root.descendants();\n const node = descendants.filter(d => attrs.nodeId(d.data).toString() === nodeId.toString())[0];\n if (!node) {\n console.log(`ORG CHART - HIGHLIGHTROOT - Node with id (${nodeId}) not found in the tree`)\n return this;\n }\n const ancestors = node.ancestors();\n ancestors.forEach(d => d.data._expanded = true)\n node.data._upToTheRootHighlighted = true;\n node.data._expanded = true;\n node.ancestors().forEach(d => d.data._upToTheRootHighlighted = true)\n return this;\n }\n\n clearHighlighting() {\n const attrs = this.getChartState();\n attrs.allNodes.forEach(d => {\n d.data._highlighted = false;\n d.data._upToTheRootHighlighted = false;\n })\n this.update(attrs.root);\n return this;\n }\n\n // It can take selector which would go fullscreen\n fullscreen(elem) {\n const attrs = this.getChartState();\n const el = d3.select(elem || attrs.container).node();\n\n d3.select(document).on('fullscreenchange.' + attrs.id, function (d) {\n const fsElement = document.fullscreenElement || document.mozFullscreenElement || document.webkitFullscreenElement;\n if (fsElement == el) {\n setTimeout(d => {\n attrs.svg.attr('height', window.innerHeight - 40);\n }, 500)\n } else {\n attrs.svg.attr('height', attrs.svgHeight)\n }\n })\n\n if (el.requestFullscreen) {\n el.requestFullscreen();\n } else if (el.mozRequestFullScreen) {\n el.mozRequestFullScreen();\n } else if (el.webkitRequestFullscreen) {\n el.webkitRequestFullscreen();\n } else if (el.msRequestFullscreen) {\n el.msRequestFullscreen();\n }\n }\n\n // Zoom in exposed method\n zoomIn() {\n const { svg, zoomBehavior } = this.getChartState();\n svg.transition().call(zoomBehavior.scaleBy, 1.3);\n }\n\n // Zoom out exposed method\n zoomOut() {\n const { svg, zoomBehavior } = this.getChartState();\n svg.transition().call(zoomBehavior.scaleBy, 0.78);\n }\n\n toDataURL(url, callback) {\n var xhr = new XMLHttpRequest();\n xhr.onload = function () {\n var reader = new FileReader();\n reader.onloadend = function () {\n callback(reader.result);\n }\n reader.readAsDataURL(xhr.response);\n };\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.send();\n }\n\n exportImg({ full = false, scale = 3, onLoad = d => d, save = true, backgroundColor = \"#FAFAFA\" } = {}) {\n const that = this;\n const attrs = this.getChartState();\n const { svg: svgImg, root } = attrs\n let count = 0;\n const selection = svgImg.selectAll('img')\n let total = selection.size()\n\n const exportImage = () => {\n const transform = JSON.parse(JSON.stringify(that.lastTransform()));\n const duration = that.duration();\n if (full) {\n that.fit();\n }\n const { svg } = that.getChartState()\n\n setTimeout(d => {\n that.downloadImage({\n node: svg.node(), scale,\n isSvg: false,\n backgroundColor,\n onAlreadySerialized: d => {\n that.update(root)\n },\n imageName: attrs.imageName,\n onLoad: onLoad,\n save\n })\n }, full ? duration + 10 : 0)\n }\n\n if (total > 0) {\n selection\n .each(function () {\n that.toDataURL(this.src, (dataUrl) => {\n this.src = dataUrl;\n if (++count == total) {\n exportImage();\n }\n })\n })\n } else {\n exportImage();\n }\n\n\n }\n\n\n\n exportSvg() {\n const { svg, imageName } = this.getChartState();\n this.downloadImage({ imageName: imageName, node: svg.node(), scale: 3, isSvg: true })\n return this;\n }\n\n expandAll() {\n const { allNodes, root, data } = this.getChartState();\n data.forEach(d => d._expanded = true)\n // allNodes.forEach(d => d.data._expanded = true);\n this.render()\n return this;\n }\n\n collapseAll() {\n const { allNodes, root } = this.getChartState();\n allNodes.forEach(d => d.data._expanded = false);\n this.initialExpandLevel(0)\n this.render();\n return this;\n }\n\n downloadImage({ node, scale = 2, imageName = 'graph', isSvg = false, save = true, backgroundColor = \"#FAFAFA\", onAlreadySerialized = d => { }, onLoad = d => { } }) {\n // Retrieve svg node\n const svgNode = node;\n\n function saveAs(uri, filename) {\n // create link\n var link = document.createElement('a');\n if (typeof link.download === 'string') {\n document.body.appendChild(link); // Firefox requires the link to be in the body\n link.download = filename;\n link.href = uri;\n link.click();\n document.body.removeChild(link); // remove the link when done\n } else {\n location.replace(uri);\n }\n }\n // This function serializes SVG and sets all necessary attributes\n function serializeString(svg) {\n const xmlns = 'http://www.w3.org/2000/xmlns/';\n const xlinkns = 'http://www.w3.org/1999/xlink';\n const svgns = 'http://www.w3.org/2000/svg';\n svg = svg.cloneNode(true);\n const fragment = window.location.href + '#';\n const walker = document.createTreeWalker(svg, NodeFilter.SHOW_ELEMENT, null, false);\n while (walker.nextNode()) {\n for (const attr of walker.currentNode.attributes) {\n if (attr.value.includes(fragment)) {\n attr.value = attr.value.replace(fragment, '#');\n }\n }\n }\n svg.setAttributeNS(xmlns, 'xmlns', svgns);\n svg.setAttributeNS(xmlns, 'xmlns:xlink', xlinkns);\n const serializer = new XMLSerializer();\n const string = serializer.serializeToString(svg);\n return string;\n }\n\n if (isSvg) {\n let source = serializeString(svgNode);\n //add xml declaration\n source = '\\r\\n' + source;\n //convert svg source to URI data scheme.\n var url = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n saveAs(url, imageName + \".svg\");\n onAlreadySerialized()\n return;\n }\n // Get image quality index (basically, index you can zoom in)\n const quality = scale\n // Create image\n const image = document.createElement('img');\n image.onload = function () {\n // Create image canvas\n const canvas = document.createElement('canvas');\n // Set width and height based on SVG node\n const rect = svgNode.getBoundingClientRect();\n canvas.width = rect.width * quality;\n canvas.height = rect.height * quality;\n // Draw background\n const context = canvas.getContext('2d');\n context.fillStyle = backgroundColor;;\n context.fillRect(0, 0, rect.width * quality, rect.height * quality);\n context.drawImage(image, 0, 0, rect.width * quality, rect.height * quality);\n // Set some image metadata\n let dt = canvas.toDataURL('image/png');\n if (onLoad) {\n onLoad(dt)\n }\n if (save) {\n // Invoke saving function\n saveAs(dt, imageName + '.png');\n }\n\n };\n\n var url = 'data:image/svg+xml; charset=utf8, ' + encodeURIComponent(serializeString(svgNode));\n\n onAlreadySerialized()\n\n image.src = url// URL.createObjectURL(blob);\n // This function invokes save window\n\n }\n\n // Calculate what size text will take\n getTextWidth(text, {\n fontSize = 14,\n fontWeight = 400,\n defaultFont = \"Helvetice\",\n ctx\n } = {}) {\n ctx.font = `${fontWeight || ''} ${fontSize}px ${defaultFont} `\n const measurement = ctx.measureText(text);\n return measurement.width;\n }\n\n // Clear after moving off from the page\n clear() {\n const attrs = this.getChartState();\n d3.select(window).on(`resize.${attrs.id}`, null);\n attrs.svg && attrs.svg.selectAll(\"*\").remove();\n }\n}","\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showSuccess } from '@nextcloud/dialogs'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tcopied: false,\n\t\t\tcopyLoading: false,\n\t\t\tcopySuccess: false,\n\t\t}\n\t},\n\tcomputed: {\n\t\tcopyLinkIcon() {\n\t\t\tif (this.copySuccess) {\n\t\t\t\treturn 'icon-checkmark'\n\t\t\t}\n\t\t\tif (this.copyLoading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t}\n\t\t\treturn 'icon-public'\n\t\t},\n\t},\n\n\tmethods: {\n\t\tasync copyToClipboard(url) {\n\t\t\t// change to loading status\n\t\t\tthis.copyLoading = true\n\n\t\t\t// copy link to clipboard\n\t\t\ttry {\n\t\t\t\tawait navigator.clipboard.writeText(url)\n\t\t\t\tthis.copySuccess = true\n\t\t\t\tthis.copied = true\n\n\t\t\t\t// Notify success\n\t\t\t\tshowSuccess(t('contacts', 'Link copied to the clipboard'))\n\t\t\t} catch (error) {\n\t\t\t\tthis.copySuccess = false\n\t\t\t\tthis.copied = true\n\t\t\t\tshowError(t('contacts', 'Could not copy link to the clipboard.'))\n\t\t\t} finally {\n\t\t\t\tthis.copyLoading = false\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t// stop loading status regardless of outcome\n\t\t\t\t\tthis.copied = false\n\t\t\t\t\tthis.copySuccess = false\n\t\t\t\t}, 2000)\n\t\t\t}\n\t\t},\n\t},\n}\n","import { showConfirmation, showError, showSuccess } from '@nextcloud/dialogs'\n/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { emit } from '@nextcloud/event-bus'\nimport Circle from '../models/circle.ts'\nimport Member from '../models/member.ts'\nimport { joinCircle } from '../services/circles.ts'\nimport CopyToClipboardMixin from './CopyToClipboardMixin.js'\n\nexport default {\n\n\tprops: {\n\t\tcircle: {\n\t\t\ttype: Circle,\n\t\t\trequired: true,\n\t\t},\n\t},\n\n\tmixins: [CopyToClipboardMixin],\n\n\tdata() {\n\t\treturn {\n\t\t\tloadingAction: false,\n\t\t\tloadingJoin: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tcopyButtonText() {\n\t\t\tif (this.copied) {\n\t\t\t\treturn this.copySuccess\n\t\t\t\t\t? t('contacts', 'Copied')\n\t\t\t\t\t: t('contacts', 'Could not copy')\n\t\t\t}\n\t\t\treturn t('contacts', 'Copy link')\n\t\t},\n\n\t\tcircleUrl() {\n\t\t\tconst route = this.$router.resolve(this.circle.router)\n\t\t\treturn window.location.origin + route.href\n\t\t},\n\n\t\tjoinButtonTitle() {\n\t\t\tif (this.circle.requireJoinAccept) {\n\t\t\t\treturn t('contacts', 'Request to join')\n\t\t\t}\n\t\t\treturn t('contacts', 'Join team')\n\t\t},\n\t},\n\n\tmethods: {\n\t\tconfirmLeaveCircle() {\n\t\t\twindow.OC.dialogs.confirmDestructive(\n\t\t\t\tt('contacts', 'You are about to leave {circle}.\\nAre you sure?', {\n\t\t\t\t\tcircle: this.circle.displayName,\n\t\t\t\t}),\n\t\t\t\tt('contacts', 'Please confirm team leave'),\n\t\t\t\twindow.OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\tthis.leaveCircle,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\t\tasync leaveCircle(confirm) {\n\t\t\tif (!confirm) {\n\t\t\t\tthis.logger.debug('Circle leave cancelled')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingAction = true\n\t\t\tconst member = this.circle.initiator\n\n\t\t\ttry {\n\t\t\t\tawait this.$store.dispatch('deleteMemberFromCircle', {\n\t\t\t\t\tmember,\n\t\t\t\t\tleave: true,\n\t\t\t\t})\n\n\t\t\t\t// Reset initiator\n\t\t\t\tthis.circle.initiator = null\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Could not leave the circle', member, error)\n\t\t\t\tshowError(t('contacts', 'Could not leave the team {displayName}', this.circle))\n\t\t\t} finally {\n\t\t\t\tthis.loadingAction = false\n\t\t\t}\n\t\t},\n\n\t\tasync joinCircle() {\n\t\t\tthis.loadingJoin = true\n\t\t\ttry {\n\t\t\t\tconst initiator = await joinCircle(this.circle.id)\n\t\t\t\tconst member = new Member(initiator, this.circle)\n\n\t\t\t\t// Update initiator with newest membership values\n\t\t\t\tthis.circle.initiator = member\n\n\t\t\t\t// Append new member\n\t\t\t\tmember.circle.addMember(member)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('contacts', 'Unable to join the team'))\n\t\t\t\tconsole.error('Unable to join the circle', error)\n\t\t\t} finally {\n\t\t\t\tthis.loadingJoin = false\n\t\t\t}\n\t\t},\n\n\t\tconfirmDeleteCircle() {\n\t\t\twindow.OC.dialogs.confirmDestructive(\n\t\t\t\tt('contacts', 'You are about to delete {circle}.\\nAre you sure?', {\n\t\t\t\t\tcircle: this.circle.displayName,\n\t\t\t\t}),\n\t\t\t\tt('contacts', 'Please confirm team deletion'),\n\t\t\t\twindow.OC.dialogs.YES_NO_BUTTONS,\n\t\t\t\tthis.deleteCircle,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t},\n\t\tasync deleteCircle(confirm) {\n\t\t\tif (!confirm) {\n\t\t\t\tthis.logger.debug('Circle deletion cancelled')\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.loadingAction = true\n\n\t\t\ttry {\n\t\t\t\tthis.$store.dispatch('deleteCircle', this.circle.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('contacts', 'Unable to delete the team'))\n\t\t\t} finally {\n\t\t\t\tthis.loadingAction = false\n\t\t\t}\n\t\t},\n\n\t\tasync confirmEnableFederationForCircle() {\n\t\t\tconst confirmed = await showConfirmation({\n\t\t\t\tname: t('contacts', 'Confirm enabling federation'),\n\t\t\t\ttext: t('contacts', 'Enabling this will prevent {circle} from being a member of other teams.\\nAre you sure?', {\n\t\t\t\t\tcircle: this.circle.displayName,\n\t\t\t\t}),\n\t\t\t\tlabelConfirm: t('contacts', 'Enable federation'),\n\t\t\t\tlabelReject: t('contacts', 'Cancel'),\n\t\t\t\tseverity: 'warning',\n\t\t\t})\n\t\t\tif (!confirmed) {\n\t\t\t\tthis.logger.debug('Enable federation cancelled')\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn true\n\t\t},\n\n\t\t/**\n\t\t * Trigger the entity picker view\n\t\t */\n\t\tasync addMemberToCircle() {\n\t\t\ttry {\n\t\t\t\t// Avoid VueRouter NavigationDuplicated\n\t\t\t\tawait this.$router.push(this.circle.router)\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Could not open circle member picker', error)\n\t\t\t}\n\t\t\temit('contacts:circles:append', this.circle.id)\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n\n","import { defineComponent as e, ref as t, computed as r, watch as o, createVNode as n, mergeProps as s, isVNode as i, onMounted as l, onUnmounted as c } from \"vue\";\n\nconst a = null, {min: u, max: f, abs: d, floor: p} = Math, m = (e, t, r) => u(r, f(t, e)), h = e => [ ...e ].sort(((e, t) => e - t)), _ = \"function\" == typeof queueMicrotask ? queueMicrotask : e => {\n Promise.resolve().then(e);\n}, b = () => {\n let e;\n return [ new Promise((t => {\n e = t;\n })), e ];\n}, v = e => {\n let t;\n return () => (e && (t = e(), e = void 0), t);\n}, g = (e, t, r) => {\n const o = r ? \"unshift\" : \"push\";\n for (let r = 0; r < t; r++) e[o](-1);\n return e;\n}, y = (e, t) => {\n const r = e.t[t];\n return -1 === r ? e.o : r;\n}, S = (e, t, r) => {\n const o = -1 === e.t[t];\n return e.t[t] = r, e.i = u(t, e.i), o;\n}, z = (e, t) => {\n if (!e.l) return 0;\n if (e.i >= t) return e.u[t];\n e.i < 0 && (e.u[0] = 0, e.i = 0);\n let r = e.i, o = e.u[r];\n for (;r < t; ) o += y(e, r), e.u[++r] = o;\n return e.i = t, o;\n}, x = (e, t, r = 0, o = e.l - 1) => {\n let n = r;\n for (;r <= o; ) {\n const s = p((r + o) / 2);\n z(e, s) <= t ? (n = s, r = s + 1) : o = s - 1;\n }\n return m(n, 0, e.l - 1);\n}, $ = (e, t, r) => {\n const o = t - e.l;\n return e.i = r ? -1 : u(t - 1, e.i), e.l = t, o > 0 ? (g(e.u, o), g(e.t, o, r), \n e.o * o) : (e.u.splice(o), (r ? e.t.splice(0, -o) : e.t.splice(o)).reduce(((t, r) => t - (-1 === r ? e.o : r)), 0));\n}, w = e => e.documentElement, I = e => e.ownerDocument, O = e => e.defaultView, k = /*#__PURE__*/ v((() => !!/iP(hone|od|ad)/.test(navigator.userAgent) || \"MacIntel\" === navigator.platform && navigator.maxTouchPoints > 0)), j = /*#__PURE__*/ v((() => \"scrollBehavior\" in w(document).style)), N = (e, t = 40, r = 0, o, n = !1) => {\n let s = !!r, i = 1, l = 0, c = 0, p = 0, m = 0, _ = 0, b = 0, v = 0, w = 0, I = a, O = [ 0, s ? f(r - 1, 0) : -1 ], j = 0, N = !1;\n const B = ((e, t, r) => ({\n o: t,\n t: r ? g(r.slice(0, u(e, r.length)), f(0, e - r.length)) : g([], e),\n l: e,\n i: -1,\n u: g([], e + 1)\n }))(e, o ? o[1] : t, o && o[0]), T = new Set, q = () => p - c, M = () => q() + _ + m, E = (e, t) => ((e, t, r, o) => {\n if (o = u(o, e.l - 1), z(e, o) <= t) {\n const n = x(e, r, o);\n return [ x(e, t, o, n), n ];\n }\n {\n const n = x(e, t, void 0, o);\n return [ n, x(e, r, n) ];\n }\n })(B, e, t, O[0]), P = () => z(B, B.l), R = (e, t) => {\n const r = z(B, e) - _;\n return t ? P() - r - A(e) : r;\n }, A = e => y(B, e), C = (e, t = -1) => B.t[e] === t, H = e => {\n e && (k() && 0 !== v || I && 1 === w ? _ += e : m += e);\n };\n return {\n p: () => {\n T.clear();\n },\n m: () => i,\n h: () => (e => [ e.t.slice(), e.o ])(B),\n v: (e = 200) => {\n if (!N || s) return O;\n let t, r;\n if (b) [t, r] = O; else {\n let o = f(0, M()), s = o + l;\n n || (e = f(0, e), 1 !== v && (o -= e), 2 !== v && (s += e)), [t, r] = O = E(f(0, o), f(0, s)), \n I && (t = u(t, I[0]), r = f(r, I[1]));\n }\n return [ f(t, 0), u(r, B.l - 1) ];\n },\n S: e => x(B, e - c),\n I: C,\n O: R,\n k: A,\n j: () => B.l,\n N: () => p,\n B: () => 0 !== v,\n T: () => l,\n q: () => c,\n M: P,\n P: () => (b = m, m = 0, [ b, 2 === w ]),\n R: (e, t) => {\n const r = [ e, t ];\n return T.add(r), () => {\n T.delete(r);\n };\n },\n A: (e, t) => {\n let r, o, u = 0;\n switch (e) {\n case 1:\n {\n if (t === p && 0 === w) break;\n const e = b;\n b = 0;\n const r = t - p, n = d(r);\n e && n < d(e) + 1 || 0 !== w || (v = r < 0 ? 2 : 1), s && (s = !1), p = t, u = 4;\n const i = q();\n i >= -l && i <= P() && (u += 1, o = n > l);\n break;\n }\n\n case 2:\n u = 8, 0 !== v && (r = !0, u += 1), v = 0, w = 0, I = a;\n break;\n\n case 3:\n {\n const e = t.filter((([e, t]) => !C(e, t)));\n if (!e.length) break;\n H(e.reduce(((e, [t, r]) => ((2 === w || (I && 1 === w ? t < I[0] : R(t + (0 === v && 0 === w ? 1 : 0)) < q())) && (e += r - A(t)), \n e)), 0));\n for (const [t, r] of e) {\n const e = A(t), o = S(B, t, r);\n n && (j += o ? r : r - e);\n }\n n && l && j > l && (H(((e, t) => {\n let r = 0;\n const o = [];\n e.t.forEach(((e, n) => {\n -1 !== e && (o.push(e), n < t && r++);\n })), e.i = -1;\n const n = h(o), s = n.length, i = s / 2 | 0, l = s % 2 == 0 ? (n[i - 1] + n[i]) / 2 : n[i], c = e.o;\n return ((e.o = l) - c) * f(t - r, 0);\n })(B, x(B, M()))), n = !1), u = 3, o = !0;\n break;\n }\n\n case 4:\n l !== t && (l || (N = o = !0), l = t, u = 3);\n break;\n\n case 5:\n t[1] ? (H($(B, t[0], !0)), w = 2, u = 1) : ($(B, t[0]), u = 1);\n break;\n\n case 6:\n c = t;\n break;\n\n case 7:\n w = 1;\n break;\n\n case 8:\n I = E(t, t + l), u = 1;\n }\n u && (i = 1 + (2147483647 & i), r && _ && (m += _, _ = 0), T.forEach((([e, t]) => {\n u & e && t(o);\n })));\n }\n };\n}, B = setTimeout, T = (e, t) => t ? -e : e, q = (e, t, r, o, n, s) => {\n const i = Date.now;\n let l = 0, c = !1, u = !1, f = !1, d = !1;\n const p = (() => {\n let t;\n const r = () => {\n t != a && clearTimeout(t);\n }, o = () => {\n r(), t = B((() => {\n t = a, (() => {\n if (c || u) return c = !1, void p();\n f = !1, e.A(2);\n })();\n }), 150);\n };\n return o.C = r, o;\n })(), m = () => {\n l = i(), f && (d = !0), s && e.A(6, s()), e.A(1, o()), p();\n }, h = t => {\n if (c || !e.B() || t.ctrlKey) return;\n const o = i() - l;\n 150 > o && 50 < o && (r ? t.deltaX : t.deltaY) && (c = !0);\n }, _ = () => {\n u = !0, f = d = !1;\n }, b = () => {\n u = !1, k() && (f = !0);\n };\n return t.addEventListener(\"scroll\", m), t.addEventListener(\"wheel\", h, {\n passive: !0\n }), t.addEventListener(\"touchstart\", _, {\n passive: !0\n }), t.addEventListener(\"touchend\", b, {\n passive: !0\n }), {\n H: () => {\n t.removeEventListener(\"scroll\", m), t.removeEventListener(\"wheel\", h), t.removeEventListener(\"touchstart\", _), \n t.removeEventListener(\"touchend\", b), p.C();\n },\n V: () => {\n const [t, r] = e.P();\n t && (n(t, r, d), d = !1, r && e.T() > e.M() && e.A(1, o()));\n }\n };\n}, M = (e, t, r) => {\n let o;\n return [ async (n, s) => {\n if (!await t()) return;\n o && o();\n const i = () => {\n const [t, r] = b();\n return o = () => {\n r(!1);\n }, e.T() && B(o, 150), [ t, e.R(2, (() => {\n r(!0);\n })) ];\n };\n if (s && j()) e.A(8, n()), _((async () => {\n for (;;) {\n let t = !0;\n for (let [r, o] = e.v(); r <= o; r++) if (e.I(r)) {\n t = !1;\n break;\n }\n if (t) break;\n const [r, o] = i();\n try {\n if (!await r) return;\n } finally {\n o();\n }\n }\n e.A(7), r(n(), s);\n })); else for (;;) {\n const [t, o] = i();\n try {\n if (e.A(7), r(n()), !await t) return;\n } finally {\n o();\n }\n }\n }, () => {\n o && o();\n } ];\n}, E = e => {\n let t;\n return {\n F(r) {\n (t || (t = new (O(I(r)).ResizeObserver)(e))).observe(r);\n },\n J(e) {\n t.unobserve(e);\n },\n H() {\n t && t.disconnect();\n }\n };\n}, P = /*#__PURE__*/ e({\n props: {\n L: {\n type: Object,\n required: !0\n },\n W: {\n type: Object,\n required: !0\n },\n X: {\n type: Object,\n required: !0\n },\n Y: {\n type: Function,\n required: !0\n },\n D: {\n type: Number,\n required: !0\n },\n U: {\n type: Boolean\n },\n G: {\n type: Boolean\n },\n K: {\n type: Boolean\n },\n Z: {\n type: String,\n required: !0\n },\n ee: Object\n },\n setup(e) {\n const l = t(), c = r((() => e.L.value && e.W.O(e.D, e.K))), a = r((() => e.L.value && e.W.I(e.D)));\n return o((() => l.value && e.D), ((t, r, o) => {\n o(e.Y(l.value, e.D));\n }), {\n flush: \"post\"\n }), () => {\n var t;\n const {X: r, U: o, G: u, Z: f} = e, d = a.value, {style: p, ...m} = null !== (t = e.ee) && void 0 !== t ? t : {}, h = {\n contain: \"layout style\",\n position: d && u ? void 0 : \"absolute\",\n [o ? \"height\" : \"width\"]: \"100%\",\n [o ? \"top\" : \"left\"]: \"0px\",\n [o ? \"left\" : \"top\"]: c.value + \"px\",\n visibility: !d || u ? void 0 : \"hidden\",\n ...p\n };\n return o && (h.display = \"inline-flex\"), n(f, s({\n ref: l,\n style: h\n }, m), \"function\" == typeof (_ = r) || \"[object Object]\" === Object.prototype.toString.call(_) && !i(_) ? r : {\n default: () => [ r ],\n _: 2\n }, 16, [ \"style\" ]);\n var _;\n };\n }\n}), R = (e, t) => {\n if (1 === e.length) {\n const t = e[0].key;\n if (null != t) return t;\n }\n return \"_\" + t;\n}, A = (e, t) => e[0] === t[0] && e[1] === t[1], C = /*#__PURE__*/ e({\n props: {\n data: {\n type: Array,\n required: !0\n },\n bufferSize: Number,\n itemSize: Number,\n shift: Boolean,\n horizontal: Boolean,\n startMargin: {\n type: Number,\n default: 0\n },\n ssrCount: Number,\n scrollRef: Object,\n as: {\n type: String,\n default: \"div\"\n },\n item: {\n type: String,\n default: \"div\"\n },\n itemProps: Function,\n keepMounted: Array,\n cache: Object\n },\n emits: [ \"scroll\", \"scrollEnd\" ],\n setup(e, {emit: s, expose: u, slots: d}) {\n let p = !!e.ssrCount;\n const _ = e.horizontal, v = t(), g = N(e.data.length, e.itemSize, e.ssrCount, e.cache, !e.itemSize), y = ((e, t) => {\n let r;\n const o = t ? \"width\" : \"height\", n = new WeakMap, s = E((t => {\n const s = [];\n for (const {target: i, contentRect: l} of t) if (i.offsetParent) if (i === r) e.A(4, l[o]); else {\n const e = n.get(i);\n e != a && s.push([ e, l[o] ]);\n }\n s.length && e.A(3, s);\n }));\n return {\n te(e) {\n s.F(r = e);\n },\n re: (e, t) => (n.set(e, t), s.F(e), () => {\n n.delete(e), s.J(e);\n }),\n p: s.H\n };\n })(g, _), S = ((e, t) => {\n let r, o, n = b(), s = !1;\n const i = t ? \"scrollLeft\" : \"scrollTop\", l = t ? \"overflowX\" : \"overflowY\", [c, a] = M(e, (() => n[0]), ((e, o) => {\n e = T(e, s), o ? r.scrollTo({\n [t ? \"left\" : \"top\"]: e,\n behavior: \"smooth\"\n }) : r[i] = e;\n }));\n return {\n oe(c, u) {\n r = u, t && (s = \"rtl\" === getComputedStyle(u).direction), o = q(e, u, t, (() => T(u[i], s)), ((t, r, o) => {\n if (o) {\n const e = u.style, t = e[l];\n e[l] = \"hidden\", B((() => {\n e[l] = t;\n }));\n }\n u[i] = T(e.N() + t, s), r && a();\n })), n[1](!0);\n },\n p() {\n o && o.H(), n[1](!1), n = b();\n },\n ne: () => s,\n se(e) {\n c((() => e));\n },\n ie(t) {\n t += e.N(), c((() => t));\n },\n le(t, {align: r, smooth: o, offset: n = 0} = {}) {\n if (t = m(t, 0, e.j() - 1), \"nearest\" === r) {\n const o = e.O(t), n = e.N();\n if (o < n) r = \"start\"; else {\n if (!(o + e.k(t) > n + e.T())) return;\n r = \"end\";\n }\n }\n c((() => n + e.q() + e.O(t) + (\"end\" === r ? e.k(t) - e.T() : \"center\" === r ? (e.k(t) - e.T()) / 2 : 0)), o);\n },\n ce: () => {\n o && o.V();\n }\n };\n })(g, _), z = t(g.m());\n g.R(1, (() => {\n z.value = g.m();\n })), g.R(4, (() => {\n s(\"scroll\", g.N());\n })), g.R(8, (() => {\n s(\"scrollEnd\");\n }));\n const x = r((t => {\n z.value;\n const r = g.v(e.bufferSize);\n return t && A(t, r) ? t : r;\n })), $ = r((() => z.value && g.B())), w = r((() => z.value && g.M()));\n return l((() => {\n p = !1;\n const t = v.value, r = requestAnimationFrame((() => {\n const r = e => {\n y.te(e), S.oe(t, e);\n };\n e.scrollRef ? r(e.scrollRef) : r(t.parentElement);\n }));\n c((() => {\n cancelAnimationFrame(r);\n }));\n })), c((() => {\n g.p(), y.p(), S.p();\n })), o((() => e.data.length), (t => {\n g.A(5, [ t, e.shift ]);\n })), o((() => e.startMargin), (e => {\n g.A(6, e);\n }), {\n immediate: !0\n }), o([ z ], (() => {\n S.ce();\n }), {\n flush: \"post\"\n }), u({\n get cache() {\n return g.h();\n },\n get scrollOffset() {\n return g.N();\n },\n get scrollSize() {\n return (e => f(e.M(), e.T()))(g);\n },\n get viewportSize() {\n return g.T();\n },\n findItemIndex: g.S,\n getItemOffset: g.O,\n getItemSize: g.k,\n scrollToIndex: S.le,\n scrollTo: S.se,\n scrollBy: S.ie\n }), () => {\n const t = e.as, r = e.item, o = w.value, s = S.ne(), l = [], c = t => {\n var o;\n const i = d.default({\n item: e.data[t],\n index: t\n });\n return n(P, {\n key: R(i, t),\n L: z,\n W: g,\n Y: y.re,\n D: t,\n X: i,\n U: _,\n K: s,\n G: p,\n Z: r,\n ee: null === (o = e.itemProps) || void 0 === o ? void 0 : o.call(e, {\n item: e.data[t],\n index: t\n })\n }, null, 8, [ \"L\", \"W\", \"Y\", \"D\", \"X\", \"U\", \"K\", \"G\", \"Z\", \"ee\" ]);\n };\n if (e.keepMounted) {\n const t = new Set(e.keepMounted);\n for (let [e, r] = x.value; e <= r; e++) t.add(e);\n h([ ...t ]).forEach((e => {\n l.push(c(e));\n }));\n } else for (let [e, t] = x.value; e <= t; e++) l.push(c(e));\n return n(t, {\n ref: v,\n style: {\n contain: \"size style\",\n overflowAnchor: \"none\",\n flex: \"none\",\n position: \"relative\",\n width: _ ? o + \"px\" : \"100%\",\n height: _ ? \"100%\" : o + \"px\",\n pointerEvents: $.value ? \"none\" : void 0\n }\n }, \"function\" == typeof (a = l) || \"[object Object]\" === Object.prototype.toString.call(a) && !i(a) ? l : {\n default: () => [ l ],\n _: 2\n }, 8, [ \"style\" ]);\n var a;\n };\n }\n}), H = /*#__PURE__*/ e({\n props: {\n data: {\n type: Array,\n required: !0\n },\n bufferSize: Number,\n itemSize: Number,\n shift: Boolean,\n horizontal: Boolean,\n ssrCount: Number,\n itemProps: Function,\n keepMounted: Array,\n cache: Object\n },\n emits: [ \"scroll\", \"scrollEnd\" ],\n setup(e, {emit: r, expose: o, slots: s}) {\n const l = e.horizontal, c = e => {\n r(\"scroll\", e);\n }, a = () => {\n r(\"scrollEnd\");\n }, u = t();\n return o({\n get cache() {\n return u.value.cache;\n },\n get scrollOffset() {\n return u.value.scrollOffset;\n },\n get scrollSize() {\n return u.value.scrollSize;\n },\n get viewportSize() {\n return u.value.viewportSize;\n },\n findItemIndex: (...e) => u.value.findItemIndex(...e),\n getItemOffset: (...e) => u.value.getItemOffset(...e),\n getItemSize: (...e) => u.value.getItemSize(...e),\n scrollToIndex: (...e) => u.value.scrollToIndex(...e),\n scrollTo: (...e) => u.value.scrollTo(...e),\n scrollBy: (...e) => u.value.scrollBy(...e)\n }), () => {\n return n(\"div\", {\n style: {\n display: l ? \"inline-block\" : \"block\",\n [l ? \"overflowX\" : \"overflowY\"]: \"auto\",\n contain: \"strict\",\n width: \"100%\",\n height: \"100%\"\n }\n }, [ n(C, {\n ref: u,\n data: e.data,\n bufferSize: e.bufferSize,\n itemSize: e.itemSize,\n itemProps: e.itemProps,\n shift: e.shift,\n ssrCount: e.ssrCount,\n horizontal: l,\n keepMounted: e.keepMounted,\n cache: e.cache,\n onScroll: c,\n onScrollEnd: a\n }, (t = s, \"function\" == typeof t || \"[object Object]\" === Object.prototype.toString.call(t) && !i(t) ? s : {\n default: () => [ s ],\n _: 2\n }), 8, [ \"data\", \"bufferSize\", \"itemSize\", \"itemProps\", \"shift\", \"ssrCount\", \"horizontal\", \"keepMounted\", \"cache\", \"onScroll\", \"onScrollEnd\" ]) ], 4);\n var t;\n };\n }\n}), V = /*#__PURE__*/ e({\n props: {\n data: {\n type: Array,\n required: !0\n },\n bufferSize: Number,\n itemSize: Number,\n shift: Boolean,\n horizontal: Boolean,\n as: {\n type: String,\n default: \"div\"\n },\n item: {\n type: String,\n default: \"div\"\n },\n cache: Object\n },\n emits: [ \"scroll\", \"scrollEnd\" ],\n setup(e, {emit: s, slots: u, expose: f}) {\n const d = e.horizontal, p = t(), h = N(e.data.length, e.itemSize, void 0, e.cache, !e.itemSize), v = ((e, t) => {\n const r = t ? \"width\" : \"height\", o = t ? \"innerWidth\" : \"innerHeight\", n = new WeakMap, s = E((t => {\n const o = [];\n for (const {target: e, contentRect: s} of t) {\n if (!e.offsetParent) continue;\n const t = n.get(e);\n t != a && o.push([ t, s[r] ]);\n }\n o.length && e.A(3, o);\n }));\n let i;\n return {\n te(t) {\n const r = O(I(t)), n = () => {\n e.A(4, r[o]);\n };\n r.addEventListener(\"resize\", n), _(n), i = () => {\n r.removeEventListener(\"resize\", n);\n };\n },\n re: (e, t) => (n.set(e, t), s.F(e), () => {\n n.delete(e), s.J(e);\n }),\n p() {\n i && i(), s.H();\n }\n };\n })(h, d), g = ((e, t) => {\n let r, o, n = b(), s = !1;\n const i = t ? \"left\" : \"top\", [l] = M(e, (() => n[0]), ((e, t) => {\n e = T(e, s);\n const o = O(I(r));\n t ? o.scroll({\n [i]: e,\n behavior: \"smooth\"\n }) : o.scroll({\n [i]: e\n });\n })), c = (e, t, r, o, n = 0) => {\n const i = o ? \"offsetLeft\" : \"offsetTop\", l = n + (o && s ? r.innerWidth - e[i] - e.offsetWidth : e[i]), a = e.offsetParent;\n return e !== t && a ? c(a, t, r, o, l) : l;\n };\n return {\n oe(l) {\n r = l;\n const a = t ? \"scrollX\" : \"scrollY\", u = I(l), f = O(u);\n t && (s = \"rtl\" === getComputedStyle(w(u)).direction), o = q(e, f, t, (() => T(f[a], s)), ((t, r) => {\n r ? f.scroll({\n [i]: T(e.N() + t, s)\n }) : f.scrollBy({\n [i]: T(t, s)\n });\n }), (() => c(l, u.body, f, t))), n[1](!0);\n },\n p() {\n o && o.H(), r = void 0, n[1](!1), n = b();\n },\n ne: () => s,\n ce: () => {\n o && o.V();\n },\n le(o, {align: n, smooth: s, offset: i = 0} = {}) {\n if (!r) return;\n if (o = m(o, 0, e.j() - 1), \"nearest\" === n) {\n const t = e.O(o), r = e.N();\n if (t < r) n = \"start\"; else {\n if (!(t + e.k(o) > r + e.T())) return;\n n = \"end\";\n }\n }\n const a = I(r), u = O(a), f = w(a), d = () => e.T() - (t ? f.clientWidth : f.clientHeight);\n l((() => i + c(r, a.body, u, t) + e.O(o) + (\"end\" === n ? e.k(o) - (e.T() - d()) : \"center\" === n ? (e.k(o) - (e.T() - d())) / 2 : 0)), s);\n }\n };\n })(h, d), y = t(h.m());\n h.R(1, (() => {\n y.value = h.m();\n })), h.R(4, (() => {\n s(\"scroll\");\n })), h.R(8, (() => {\n s(\"scrollEnd\");\n }));\n const S = r((t => {\n y.value;\n const r = h.v(e.bufferSize);\n return t && A(t, r) ? t : r;\n })), z = r((() => y.value && h.B())), x = r((() => y.value && h.M()));\n return l((() => {\n const e = p.value;\n e && (v.te(e), g.oe(e));\n })), c((() => {\n h.p(), v.p(), g.p();\n })), o((() => e.data.length), (t => {\n h.A(5, [ t, e.shift ]);\n })), o([ y ], (() => {\n g.ce();\n }), {\n flush: \"post\"\n }), f({\n get cache() {\n return h.h();\n },\n get scrollOffset() {\n return h.N();\n },\n get viewportSize() {\n return h.T();\n },\n findItemIndex: h.S,\n getItemOffset: h.O,\n getItemSize: h.k,\n scrollToIndex: g.le\n }), () => {\n const t = e.as, r = e.item, o = x.value, s = g.ne(), l = [];\n for (let [t, o] = S.value; t <= o; t++) {\n const o = u.default({\n item: e.data[t],\n index: t\n });\n l.push(n(P, {\n key: R(o, t),\n L: y,\n W: h,\n Y: v.re,\n D: t,\n X: o,\n U: d,\n K: s,\n Z: r\n }, null, 8, [ \"L\", \"W\", \"Y\", \"D\", \"X\", \"U\", \"K\", \"Z\" ]));\n }\n return n(t, {\n ref: p,\n style: {\n contain: \"size style\",\n overflowAnchor: \"none\",\n flex: \"none\",\n position: \"relative\",\n width: d ? o + \"px\" : \"100%\",\n height: d ? \"100%\" : o + \"px\",\n pointerEvents: z.value ? \"none\" : void 0\n }\n }, \"function\" == typeof (c = l) || \"[object Object]\" === Object.prototype.toString.call(c) && !i(c) ? l : {\n default: () => [ l ],\n _: 2\n }, 8, [ \"style\" ]);\n var c;\n };\n }\n});\n\nexport { H as VList, C as Virtualizer, V as WindowVirtualizer };\n//# sourceMappingURL=index.js.map\n","\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nexport default {\n\tcomputed: {\n\t\t// router variables\n\t\tselectedContact() {\n\t\t\treturn this.$route.params.selectedContact\n\t\t},\n\t\tselectedGroup() {\n\t\t\treturn this.$route.params.selectedGroup\n\t\t},\n\t\tselectedCircle() {\n\t\t\treturn this.$route.params.selectedCircle\n\t\t},\n\t\tselectedUserGroup() {\n\t\t\treturn this.$route.params.selectedUserGroup\n\t\t},\n\t\tselectedChart() {\n\t\t\treturn this.$route.params.selectedChart\n\t\t},\n\t},\n}\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\nimport { ShareType } from '@nextcloud/sharing'\nimport { CircleConfigs, SHARES_TYPES_MEMBER_MAP } from '../models/constants.ts'\n\n// generate allowed shareType from SHARES_TYPES_MEMBER_MAP\nconst shareType = Object.keys(SHARES_TYPES_MEMBER_MAP)\nconst maxAutocompleteResults = parseInt(window.OC.config['sharing.maxAutocompleteResults'], 10) || 25\n\n/**\n * Get suggestions\n *\n * @param {string} search the search query\n * @param {object|null} circle - the circle object\n */\nexport async function getSuggestions(search, circle = null) {\n\tconst request = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees'), {\n\t\tparams: {\n\t\t\tformat: 'json',\n\t\t\titemType: 'teams',\n\t\t\tsearch,\n\t\t\tperPage: maxAutocompleteResults,\n\t\t\tshareType,\n\t\t\tlookup: false,\n\t\t},\n\t})\n\n\tconst data = request.data.ocs.data\n\tconst exact = request.data.ocs.data.exact\n\tdata.exact = [] // removing exact from general results\n\n\t// flatten array of arrays\n\tlet rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\tlet rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\n\n\t// check if federation flag is enabled using bitwise AND on circle config\n\tconst isCircleFederated = circle ? (circle.config & CircleConfigs.FEDERATED) !== 0 : false\n\tif (isCircleFederated) {\n\t\t// remove results from untrusted remote servers\n\t\trawExactSuggestions = rawExactSuggestions\n\t\t\t.filter((result) => !(result.value?.shareType === ShareType.Remote && result.value?.isTrustedServer === false))\n\t\trawSuggestions = rawSuggestions\n\t\t\t.filter((result) => !(result.value?.shareType === ShareType.Remote && result.value?.isTrustedServer === false))\n\t} else {\n\t\t// remove all results from remote servers\n\t\trawExactSuggestions = rawExactSuggestions\n\t\t\t.filter((result) => result.value?.shareType !== ShareType.Remote)\n\t\trawSuggestions = rawSuggestions\n\t\t\t.filter((result) => result.value?.shareType !== ShareType.Remote)\n\t}\n\n\t// remove invalid data and format to user-select layout\n\tconst exactSuggestions = rawExactSuggestions\n\t\t.filter((result) => typeof result === 'object')\n\t\t.map((share) => formatResults(share))\n\t\t// sort by type so we can get user&groups first...\n\t\t.sort((a, b) => a.shareType - b.shareType)\n\tconst suggestions = rawSuggestions\n\t\t.filter((result) => typeof result === 'object')\n\t\t.map((share) => formatResults(share))\n\t\t// sort by type so we can get user&groups first...\n\t\t.sort((a, b) => a.shareType - b.shareType)\n\n\tconst allSuggestions = exactSuggestions.concat(suggestions)\n\n\t// Count occurances of display names in order to provide a distinguishable description if needed\n\tconst nameCounts = allSuggestions.reduce((nameCounts, result) => {\n\t\tif (!result.displayName) {\n\t\t\treturn nameCounts\n\t\t}\n\t\tif (!nameCounts[result.displayName]) {\n\t\t\tnameCounts[result.displayName] = 0\n\t\t}\n\t\tnameCounts[result.displayName]++\n\t\treturn nameCounts\n\t}, {})\n\n\tconst finalResults = allSuggestions.map((item) => {\n\t\t// Make sure that items with duplicate displayName get the shareWith applied as a description\n\t\tif (nameCounts[item.displayName] > 1 && !item.desc) {\n\t\t\treturn { ...item, desc: item.shareWithDisplayNameUnique }\n\t\t}\n\t\treturn item\n\t})\n\n\tconsole.info('suggestions', finalResults)\n\n\treturn finalResults\n}\n\n/**\n * Get the sharing recommendations\n */\nexport async function getRecommendations() {\n\tconst request = await axios.get(generateOcsUrl('apps/files_sharing/api/v1/sharees_recommended'), {\n\t\tparams: {\n\t\t\tformat: 'json',\n\t\t\titemType: 'contacts',\n\t\t\tshareType,\n\t\t},\n\t})\n\n\t// flatten array of arrays\n\tconst exact = request.data.ocs.data.exact\n\tconst recommendations = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\n\t// remove invalid data and format to user-select layout\n\tconst finalResults = recommendations\n\t\t.map((share) => formatResults(share))\n\n\tconsole.info('recommendations', finalResults)\n\n\treturn finalResults\n}\n\nfunction formatResults(result) {\n\tconst type = `picker-${result.value.shareType}`\n\treturn {\n\t\tlabel: result.label,\n\t\tid: `${type}-${result.value.shareWith}`,\n\t\t// If this is a user, set as user for avatar display by UserBubble\n\t\tuser: [window.OC.Share.SHARE_TYPE_USER, window.OC.Share.SHARE_TYPE_REMOTE].indexOf(result.value.shareType) > -1\n\t\t\t? result.value.shareWith\n\t\t\t: null,\n\t\ttype,\n\t\t...result.value,\n\t}\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { ROUTE_USER_GROUP } from './constants.ts'\n\nexport default class UserGroup {\n\tprivate _data: object\n\tprivate _members: string[]\n\n\tconstructor(group: object) {\n\t\tthis._data = group\n\t\tthis._members = []\n\t}\n\n\taddMember(member: object) {\n\t\tif (!this._members.includes(member)) {\n\t\t\tthis._members.push(member)\n\t\t}\n\t}\n\n\tget id(): string {\n\t\treturn this._data.id\n\t}\n\n\tget displayName(): string {\n\t\treturn this._data.displayname\n\t}\n\n\tget population(): number {\n\t\treturn this._data.usercount\n\t}\n\n\tget canLeave(): boolean {\n\t\t// users can't leave groups\n\t\treturn false\n\t}\n\n\tget isOwner(): boolean {\n\t\treturn false\n\t}\n\n\tget isMember(): boolean {\n\t\t// Only the groups that a user has been added to will be visible to them\n\t\treturn true\n\t}\n\n\tget canManageMembers(): boolean {\n\t\treturn false\n\t}\n\n\tget canJoin(): boolean {\n\t\treturn false\n\t}\n\n\tget members(): string[] {\n\t\treturn this._members\n\t}\n\n\tget router(): object {\n\t\treturn {\n\t\t\tname: 'user_group',\n\t\t\tparams: { selectedUserGroup: this.id, selectedGroup: ROUTE_USER_GROUP },\n\t\t}\n\t}\n\n\ttoString(): string {\n\t\treturn this.displayName\n\t}\n}\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\nexport async function getUserGroups(userId: string): string[] {\n\tconst response = await axios.get(generateOcsUrl('/cloud/users/{userId}/groups/details', { userId }))\n\treturn response.data.ocs.data.groups\n}\n\nexport async function getUserGroupMembers(groupId: string): string[] {\n\tconst response = await axios.get(generateOcsUrl('/cloud/groups/{groupId}/users', { groupId }))\n\treturn response.data.ocs.data.users\n}\n","/**\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\nimport UserGroup from '../models/userGroup.ts'\nimport logger from '../services/logger.js'\nimport { getUserGroupMembers, getUserGroups } from '../services/userGroup.ts'\n\nexport default defineStore('userGroup', {\n\tstate: () => ({\n\t\tuserGroups: {},\n\t}),\n\n\tgetters: {\n\t\tuserGroupList: (state) => Object.values(state.userGroups),\n\t\tgetUserGroup: (state) => (groupId: string) => state.userGroups[groupId],\n\t},\n\n\tactions: {\n\t\tasync getUserGroups(userId: string): Promise {\n\t\t\tconst userGroups = await getUserGroups(userId)\n\n\t\t\tuserGroups.forEach((group) => {\n\t\t\t\ttry {\n\t\t\t\t\tconst newUserGroup = new UserGroup(group)\n\t\t\t\t\tthis.userGroups[newUserGroup.id] = newUserGroup\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error('Failed to add group', { group, error })\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn userGroups\n\t\t},\n\t\tasync getUserGroupMembers(groupId: string): Promise {\n\t\t\tconst members = await getUserGroupMembers(groupId)\n\n\t\t\tmembers.forEach((member) => {\n\t\t\t\tthis.getUserGroup(groupId).addMember(member)\n\t\t\t})\n\n\t\t\treturn members\n\t\t},\n\t},\n})\n","\n\n\n\n\n\n\n","export function zeroFillFinders(matrix) {\n matrix = structuredClone(matrix);\n const N = matrix.length;\n const zeroPixel = 0;\n for (let i = -3; i <= 3; i++) {\n for (let j = -3; j <= 3; j++) {\n matrix[3 + i][3 + j] = zeroPixel;\n matrix[3 + i][N - 4 + j] = zeroPixel;\n matrix[N - 4 + i][3 + j] = zeroPixel;\n }\n }\n for (let i = 0; i < 8; i++) {\n matrix[7][i] =\n matrix[i][7] =\n matrix[7][N - i - 1] =\n matrix[i][N - 8] =\n matrix[N - 8][i] =\n matrix[N - 1 - i][7] =\n zeroPixel;\n }\n return matrix;\n}\nexport function clearMatrixCenter(matrix, widthPct, heightPct) {\n matrix = structuredClone(matrix);\n const mW = matrix.length;\n const cW = Math.ceil(((mW * widthPct) / 100 + (mW % 2)) / 2) * 2 - (mW % 2);\n const mH = matrix[0]?.length ?? 0;\n const cH = Math.ceil(((mH * heightPct) / 100 + (mH % 2)) / 2) * 2 - (mH % 2);\n const clearStartX = Math.round((mW - cW) / 2);\n const clearStartY = Math.round((mH - cH) / 2);\n for (let x = clearStartX; x < clearStartX + cW; x += 1) {\n for (let y = clearStartY; y < clearStartY + cH; y += 1) {\n matrix[x][y] = 0;\n }\n }\n return matrix;\n}\n//# sourceMappingURL=bitMatrix.js.map","const enc = new TextEncoder();\nconst dec = new TextDecoder();\nexport function encode(inData, parse_url) {\n let str;\n let data;\n if (typeof inData === \"string\" || typeof inData === \"number\") {\n str = `${inData}`;\n data = enc.encode(str);\n }\n else if (Array.isArray(inData)) {\n data = new Uint8Array(inData);\n str = dec.decode(inData);\n }\n else {\n throw new Error(\"Bad data: \" + typeof inData);\n }\n if (/^[0-9]+$/.test(str)) {\n if (data.byteLength > 7089) {\n throw new Error(\"Too much data\");\n }\n return encode_numeric(str);\n }\n if (/^[0-9A-Z \\$%\\*\\+\\.\\/\\:\\-]+$/.test(str)) {\n if (data.byteLength > 4296) {\n throw new Error(\"Too much data\");\n }\n return encode_alphanum(str);\n }\n if (parse_url && /^https?:/i.test(str)) {\n return encode_url(str);\n }\n if (data.byteLength > 2953) {\n throw new Error(\"Too much data\");\n }\n return encode_8bit(new Uint8Array(data));\n}\nfunction pushBits(arr, n, value) {\n for (let bit = 1 << (n - 1); bit; bit >>>= 1) {\n arr.push(bit & value ? 1 : 0);\n }\n}\nfunction encode_8bit(data) {\n const len = data.byteLength;\n const bits = [];\n for (let i = 0; i < len; i++) {\n pushBits(bits, 8, data[i]);\n }\n const res = {};\n let d = [0, 1, 0, 0];\n pushBits(d, 16, len);\n res.data10 = res.data27 = d.concat(bits);\n if (len < 256) {\n let d = [0, 1, 0, 0];\n pushBits(d, 8, len);\n res.data1 = d.concat(bits);\n }\n return res;\n}\nconst ALPHANUM = (function (s) {\n const res = {};\n for (let i = 0; i < s.length; i++) {\n res[s[i]] = i;\n }\n return res;\n})(\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:\");\nfunction encode_alphanum(str) {\n const len = str.length;\n const bits = [];\n for (let i = 0; i < len; i += 2) {\n let b = 6;\n let n = ALPHANUM[str[i]];\n if (str[i + 1]) {\n b = 11;\n n = n * 45 + ALPHANUM[str[i + 1]];\n }\n pushBits(bits, b, n);\n }\n const res = {};\n let d = [0, 0, 1, 0];\n pushBits(d, 13, len);\n res.data27 = d.concat(bits);\n if (len < 2048) {\n let d = [0, 0, 1, 0];\n pushBits(d, 11, len);\n res.data10 = d.concat(bits);\n }\n if (len < 512) {\n let d = [0, 0, 1, 0];\n pushBits(d, 9, len);\n res.data1 = d.concat(bits);\n }\n return res;\n}\nfunction encode_numeric(str) {\n const len = str.length;\n const bits = [];\n for (let i = 0; i < len; i += 3) {\n const s = str.substr(i, 3);\n const b = Math.ceil((s.length * 10) / 3);\n pushBits(bits, b, parseInt(s, 10));\n }\n const res = {};\n let d = [0, 0, 0, 1];\n pushBits(d, 14, len);\n res.data27 = d.concat(bits);\n if (len < 4096) {\n let d = [0, 0, 0, 1];\n pushBits(d, 12, len);\n res.data10 = d.concat(bits);\n }\n if (len < 1024) {\n let d = [0, 0, 0, 1];\n pushBits(d, 10, len);\n res.data1 = d.concat(bits);\n }\n return res;\n}\nfunction encode_url(str) {\n const slash = str.indexOf(\"/\", 8) + 1 || str.length;\n const res = encode(str.slice(0, slash).toUpperCase(), false);\n if (slash >= str.length) {\n return res;\n }\n const path_res = encode(str.slice(slash), false);\n res.data27 = res.data27.concat(path_res.data27);\n if (res.data10 && path_res.data10) {\n res.data10 = res.data10.concat(path_res.data10);\n }\n if (res.data1 && path_res.data1) {\n res.data1 = res.data1.concat(path_res.data1);\n }\n return res;\n}\n//# sourceMappingURL=encode.js.map","export function calculateEC(msg, ec_len) {\n msg = [].slice.call(msg);\n const poly = generatorPolynomial(ec_len);\n for (let i = 0; i < ec_len; i++)\n msg.push(0);\n while (msg.length > ec_len) {\n if (!msg[0]) {\n msg.shift();\n continue;\n }\n const log_k = log(msg[0]);\n for (let i = 0; i <= ec_len; i++) {\n msg[i] = msg[i] ^ exp(poly[i] + log_k);\n }\n msg.shift();\n }\n return new Uint8Array(msg);\n}\nconst GF256_BASE = 285;\nconst EXP_TABLE = [1];\nconst LOG_TABLE = [];\nfor (let i = 1; i < 256; i++) {\n let n = EXP_TABLE[i - 1] << 1;\n if (n > 255)\n n ^= GF256_BASE;\n EXP_TABLE[i] = n;\n}\nfor (let i = 0; i < 255; i++) {\n LOG_TABLE[EXP_TABLE[i]] = i;\n}\nfunction exp(k) {\n while (k < 0)\n k += 255;\n while (k > 255)\n k -= 255;\n return EXP_TABLE[k];\n}\nfunction log(k) {\n if (k < 1 || k > 255) {\n throw Error(`Bad log(${k})`);\n }\n return LOG_TABLE[k];\n}\nconst POLYNOMIALS = [\n [0],\n [0, 0],\n [0, 25, 1],\n];\nfunction generatorPolynomial(num) {\n if (POLYNOMIALS[num]) {\n return POLYNOMIALS[num];\n }\n const prev = generatorPolynomial(num - 1);\n const res = [];\n res[0] = prev[0];\n for (let i = 1; i <= num; i++) {\n res[i] = log(exp(prev[i]) ^ exp(prev[i - 1] + num - 1));\n }\n POLYNOMIALS[num] = res;\n return res;\n}\n//# sourceMappingURL=errorcode.js.map","export function init(version) {\n const N = (version << 2) + 0b10001;\n return Array(N).fill(null).map(() => Array(N).fill(0));\n}\nexport function fillFinders(matrix) {\n const N = matrix.length;\n for (let i = -3; i <= 3; i++) {\n for (let j = -3; j <= 3; j++) {\n const max = Math.max(i, j);\n const min = Math.min(i, j);\n const pixel = (max == 2 && min >= -2) || (min == -2 && max <= 2)\n ? 128\n : 129;\n matrix[3 + i][3 + j] = pixel;\n matrix[3 + i][N - 4 + j] = pixel;\n matrix[N - 4 + i][3 + j] = pixel;\n }\n }\n for (let i = 0; i < 8; i++) {\n matrix[7][i] =\n matrix[i][7] =\n matrix[7][N - i - 1] =\n matrix[i][N - 8] =\n matrix[N - 8][i] =\n matrix[N - 1 - i][7] =\n 128;\n }\n}\nexport function fillAlignAndTiming(matrix) {\n const N = matrix.length;\n if (N > 21) {\n const len = N - 13;\n let delta = Math.round(len / Math.ceil(len / 28));\n if (delta % 2)\n delta++;\n const res = [];\n for (let p = len + 6; p > 10; p -= delta) {\n res.unshift(p);\n }\n res.unshift(6);\n for (var i = 0; i < res.length; i++) {\n for (let j = 0; j < res.length; j++) {\n const x = res[i];\n const y = res[j];\n if (matrix[x][y])\n continue;\n for (let r = -2; r <= 2; r++) {\n for (let c = -2; c <= 2; c++) {\n const max = Math.max(r, c);\n const min = Math.min(r, c);\n const pixel = (max == 1 && min >= -1) || (min == -1 && max <= 1)\n ? 0x80\n : 0x81;\n matrix[x + r][y + c] = pixel;\n }\n }\n }\n }\n }\n for (var i = 8; i < N - 8; i++) {\n matrix[6][i] = matrix[i][6] = i % 2 ? 0x80 : 0x81;\n }\n}\nexport function fillStub(matrix) {\n const N = matrix.length;\n for (var i = 0; i < 8; i++) {\n if (i != 6) {\n matrix[8][i] = matrix[i][8] = 0x80;\n }\n matrix[8][N - 1 - i] = 0x80;\n matrix[N - 1 - i][8] = 0x80;\n }\n matrix[8][8] = 0x80;\n matrix[N - 8][8] = 0x81;\n if (N < 45)\n return;\n for (var i = N - 11; i < N - 8; i++) {\n for (let j = 0; j < 6; j++) {\n matrix[i][j] = matrix[j][i] = 0x80;\n }\n }\n}\nexport const fillReserved = (function () {\n const FORMATS = Array(32);\n const VERSIONS = Array(40);\n const gf15 = 0x0537;\n const gf18 = 0x1f25;\n const formats_mask = 0x5412;\n for (let format = 0; format < 32; format++) {\n let res = format << 10;\n for (let i = 5; i > 0; i--) {\n if (res >>> (9 + i)) {\n res ^= gf15 << (i - 1);\n }\n }\n FORMATS[format] = (res | (format << 10)) ^ formats_mask;\n }\n for (let version = 7; version <= 40; version++) {\n let res = version << 12;\n for (let i = 6; i > 0; i--) {\n if (res >>> (11 + i)) {\n res ^= gf18 << (i - 1);\n }\n }\n VERSIONS[version] = res | (version << 12);\n }\n const EC_LEVELS = {\n L: 1,\n M: 0,\n Q: 3,\n H: 2,\n };\n return function fillReserved(matrix, ec_level, mask) {\n const N = matrix.length;\n const format = FORMATS[(EC_LEVELS[ec_level] << 3) | mask];\n function F(k) {\n return (format >> k) & 1 ? 0x81 : 0x80;\n }\n for (var i = 0; i < 8; i++) {\n matrix[8][N - 1 - i] = F(i);\n if (i < 6)\n matrix[i][8] = F(i);\n }\n for (var i = 8; i < 15; i++) {\n matrix[N - 15 + i][8] = F(i);\n if (i > 8)\n matrix[8][14 - i] = F(i);\n }\n matrix[7][8] = F(6);\n matrix[8][8] = F(7);\n matrix[8][7] = F(8);\n const version = VERSIONS[(N - 17) / 4];\n if (!version) {\n return;\n }\n function V(k) {\n return (version >> k) & 1 ? 0x81 : 0x80;\n }\n for (var i = 0; i < 6; i++) {\n for (let j = 0; j < 3; j++) {\n matrix[N - 11 + j][i] = matrix[i][N - 11 + j] = V(i * 3 + j);\n }\n }\n };\n})();\nexport const fillData = (function () {\n const MASK_FUNCTIONS = [\n (i, j) => (i + j) % 2 == 0,\n (i, j) => i % 2 == 0,\n (i, j) => j % 3 == 0,\n (i, j) => (i + j) % 3 == 0,\n (i, j) => (Math.floor(i / 2) + Math.floor(j / 3)) % 2 == 0,\n (i, j) => ((i * j) % 2) + ((i * j) % 3) == 0,\n (i, j) => (((i * j) % 2) + ((i * j) % 3)) % 2 == 0,\n (i, j) => (((i * j) % 3) + ((i + j) % 2)) % 2 == 0,\n ];\n return function fillData(matrix, data, mask) {\n const N = matrix.length;\n let row;\n let col;\n let dir = -1;\n row = col = N - 1;\n const mask_fn = MASK_FUNCTIONS[mask];\n let len = data.blocks[data.blocks.length - 1].length;\n for (var i = 0; i < len; i++) {\n for (var b = 0; b < data.blocks.length; b++) {\n if (data.blocks[b].length <= i) {\n continue;\n }\n put(data.blocks[b][i]);\n }\n }\n len = data.ec_len;\n for (var i = 0; i < len; i++) {\n for (var b = 0; b < data.ec.length; b++) {\n put(data.ec[b][i]);\n }\n }\n if (col > -1) {\n do {\n matrix[row][col] = mask_fn(row, col) ? 1 : 0;\n } while (next());\n }\n function put(byte) {\n for (let mask = 0x80; mask; mask >>= 1) {\n let pixel = !!(mask & byte);\n if (mask_fn(row, col))\n pixel = !pixel;\n matrix[row][col] = pixel ? 1 : 0;\n next();\n }\n }\n function next() {\n do {\n if (col % 2 ^ Number(col < 6)) {\n if ((dir < 0 && row == 0) || (dir > 0 && row == N - 1)) {\n col--;\n dir = -dir;\n }\n else {\n col++;\n row += dir;\n }\n }\n else {\n col--;\n }\n if (col == 6) {\n col--;\n }\n if (col < 0) {\n return false;\n }\n } while (matrix[row][col] & 0xf0);\n return true;\n }\n };\n})();\nexport function calculatePenalty(matrix) {\n const N = matrix.length;\n let penalty = 0;\n for (var i = 0; i < N; i++) {\n var pixel = matrix[i][0] & 1;\n var len = 1;\n for (var j = 1; j < N; j++) {\n var p = matrix[i][j] & 1;\n if (p == pixel) {\n len++;\n continue;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n pixel = p;\n len = 1;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n }\n for (var j = 0; j < N; j++) {\n var pixel = matrix[0][j] & 1;\n var len = 1;\n for (var i = 1; i < N; i++) {\n var p = matrix[i][j] & 1;\n if (p == pixel) {\n len++;\n continue;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n pixel = p;\n len = 1;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n }\n for (var i = 0; i < N - 1; i++) {\n for (var j = 0; j < N - 1; j++) {\n const s = (matrix[i][j] +\n matrix[i][j + 1] +\n matrix[i + 1][j] +\n matrix[i + 1][j + 1]) &\n 7;\n if (s == 0 || s == 4) {\n penalty += 3;\n }\n }\n }\n function I(k) {\n return matrix[i][j + k] & 1;\n }\n function J(k) {\n return matrix[i + k][j] & 1;\n }\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n if (j < N - 6 &&\n I(0) &&\n !I(1) &&\n I(2) &&\n I(3) &&\n I(4) &&\n !I(5) &&\n I(6)) {\n if (j >= 4 && !(I(-4) || I(-3) || I(-2) || I(-1))) {\n penalty += 40;\n }\n if (j < N - 10 && !(I(7) || I(8) || I(9) || I(10))) {\n penalty += 40;\n }\n }\n if (i < N - 6 &&\n J(0) &&\n !J(1) &&\n J(2) &&\n J(3) &&\n J(4) &&\n !J(5) &&\n J(6)) {\n if (i >= 4 && !(J(-4) || J(-3) || J(-2) || J(-1))) {\n penalty += 40;\n }\n if (i < N - 10 && !(J(7) || J(8) || J(9) || J(10))) {\n penalty += 40;\n }\n }\n }\n }\n let numDark = 0;\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n if (matrix[i][j] & 1)\n numDark++;\n }\n }\n penalty += 10 * Math.floor(Math.abs(10 - (20 * numDark) / (N * N)));\n return penalty;\n}\nexport function getMatrix(data) {\n const matrix = init(data.version);\n fillFinders(matrix);\n fillAlignAndTiming(matrix);\n fillStub(matrix);\n let penalty = Infinity;\n let bestMask = 0;\n for (let mask = 0; mask < 8; mask++) {\n fillData(matrix, data, mask);\n fillReserved(matrix, data.ec_level, mask);\n const p = calculatePenalty(matrix);\n if (p < penalty) {\n penalty = p;\n bestMask = mask;\n }\n }\n fillData(matrix, data, bestMask);\n fillReserved(matrix, data.ec_level, bestMask);\n return matrix.map((row) => row.map((cell) => (cell & 1)));\n}\n//# sourceMappingURL=matrix.js.map","import { encode } from \"./encode.js\";\nimport { calculateEC } from \"./errorcode.js\";\nimport { getMatrix } from \"./matrix.js\";\nconst EC_LEVELS = [\"L\", \"M\", \"Q\", \"H\"];\nexport function getTemplate(message, ec_level) {\n let i = 1;\n let len;\n if (message.data1) {\n len = Math.ceil(message.data1.length / 8);\n }\n else {\n i = 10;\n }\n for (; i < 10; i++) {\n let version = mappedVersions[i][ec_level];\n if (version.data_len >= len) {\n return deepCopy(version);\n }\n }\n if (message.data10) {\n len = Math.ceil(message.data10.length / 8);\n }\n else {\n i = 27;\n }\n for (; i < 27; i++) {\n let version = mappedVersions[i][ec_level];\n if (version.data_len >= len) {\n return deepCopy(version);\n }\n }\n len = Math.ceil(message.data27.length / 8);\n for (; i < 41; i++) {\n let version = mappedVersions[i][ec_level];\n if (version.data_len >= len) {\n return deepCopy(version);\n }\n }\n throw new Error(\"Too much data\");\n}\nexport function fillTemplate(message, template) {\n const blocks = new Uint8ClampedArray(template.data_len);\n let messageUpdated;\n if (template.version < 10) {\n messageUpdated = message.data1;\n }\n else if (template.version < 27) {\n messageUpdated = message.data10;\n }\n else {\n messageUpdated = message.data27;\n }\n const len = messageUpdated.length;\n for (let i = 0; i < len; i += 8) {\n let b = 0;\n for (let j = 0; j < 8; j++) {\n b = (b << 1) | (messageUpdated[i + j] ? 1 : 0);\n }\n blocks[i / 8] = b;\n }\n let pad = 236;\n for (let i = Math.ceil((len + 4) / 8); i < blocks.length; i++) {\n blocks[i] = pad;\n pad = pad == 236 ? 17 : 236;\n }\n let offset = 0;\n template.blocks = template.blocks.map((n) => {\n const b = blocks.slice(offset, offset + n);\n offset += n;\n template.ec.push(calculateEC(b, template.ec_len));\n return b;\n });\n return template;\n}\nexport function QR(text, ec_level, parse_url) {\n ec_level = EC_LEVELS.includes(ec_level) ? ec_level : \"M\";\n const message = encode(text, parse_url);\n const data = fillTemplate(message, getTemplate(message, ec_level));\n return getMatrix(data);\n}\nconst deepCopy = typeof structuredClone !== \"undefined\" ? structuredClone : ((obj) => JSON.parse(JSON.stringify(obj)));\nconst versions = [\n [],\n [26, 7, 1, 10, 1, 13, 1, 17, 1],\n [44, 10, 1, 16, 1, 22, 1, 28, 1],\n [70, 15, 1, 26, 1, 36, 2, 44, 2],\n [100, 20, 1, 36, 2, 52, 2, 64, 4],\n [134, 26, 1, 48, 2, 72, 4, 88, 4],\n [172, 36, 2, 64, 4, 96, 4, 112, 4],\n [196, 40, 2, 72, 4, 108, 6, 130, 5],\n [242, 48, 2, 88, 4, 132, 6, 156, 6],\n [292, 60, 2, 110, 5, 160, 8, 192, 8],\n [346, 72, 4, 130, 5, 192, 8, 224, 8],\n [404, 80, 4, 150, 5, 224, 8, 264, 11],\n [466, 96, 4, 176, 8, 260, 10, 308, 11],\n [532, 104, 4, 198, 9, 288, 12, 352, 16],\n [581, 120, 4, 216, 9, 320, 16, 384, 16],\n [655, 132, 6, 240, 10, 360, 12, 432, 18],\n [733, 144, 6, 280, 10, 408, 17, 480, 16],\n [815, 168, 6, 308, 11, 448, 16, 532, 19],\n [901, 180, 6, 338, 13, 504, 18, 588, 21],\n [991, 196, 7, 364, 14, 546, 21, 650, 25],\n [1085, 224, 8, 416, 16, 600, 20, 700, 25],\n [1156, 224, 8, 442, 17, 644, 23, 750, 25],\n [1258, 252, 9, 476, 17, 690, 23, 816, 34],\n [1364, 270, 9, 504, 18, 750, 25, 900, 30],\n [1474, 300, 10, 560, 20, 810, 27, 960, 32],\n [1588, 312, 12, 588, 21, 870, 29, 1050, 35],\n [1706, 336, 12, 644, 23, 952, 34, 1110, 37],\n [1828, 360, 12, 700, 25, 1020, 34, 1200, 40],\n [1921, 390, 13, 728, 26, 1050, 35, 1260, 42],\n [2051, 420, 14, 784, 28, 1140, 38, 1350, 45],\n [2185, 450, 15, 812, 29, 1200, 40, 1440, 48],\n [2323, 480, 16, 868, 31, 1290, 43, 1530, 51],\n [2465, 510, 17, 924, 33, 1350, 45, 1620, 54],\n [2611, 540, 18, 980, 35, 1440, 48, 1710, 57],\n [2761, 570, 19, 1036, 37, 1530, 51, 1800, 60],\n [2876, 570, 19, 1064, 38, 1590, 53, 1890, 63],\n [3034, 600, 20, 1120, 40, 1680, 56, 1980, 66],\n [3196, 630, 21, 1204, 43, 1770, 59, 2100, 70],\n [3362, 660, 22, 1260, 45, 1860, 62, 2220, 74],\n [3532, 720, 24, 1316, 47, 1950, 65, 2310, 77],\n [3706, 750, 25, 1372, 49, 2040, 68, 2430, 81],\n];\nconst mappedVersions = versions.map((el, index) => {\n if (!index) {\n return Object.create(null);\n }\n const res = Object.create(null);\n for (let i = 1; i < 8; i += 2) {\n const length = el[0] - el[i];\n const num_template = el[i + 1];\n const ec_level = EC_LEVELS[(i / 2) | 0];\n const level = {\n version: index,\n ec_level,\n data_len: length,\n ec_len: el[i] / num_template,\n blocks: [],\n ec: [],\n };\n for (let k = num_template, n = length; k > 0; k--) {\n const block = (n / k) | 0;\n level.blocks.push(block);\n n -= block;\n }\n res[ec_level] = level;\n }\n return res;\n});\n//# sourceMappingURL=qr-base.js.map","'use strict'\r\n\r\nmodule.exports = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\r\n","module.exports = function isArrayish(obj) {\n\tif (!obj || typeof obj === 'string') {\n\t\treturn false;\n\t}\n\n\treturn obj instanceof Array || Array.isArray(obj) ||\n\t\t(obj.length >= 0 && (obj.splice instanceof Function ||\n\t\t\t(Object.getOwnPropertyDescriptor(obj, (obj.length - 1)) && obj.constructor.name !== 'String')));\n};\n","'use strict';\n\nvar isArrayish = require('is-arrayish');\n\nvar concat = Array.prototype.concat;\nvar slice = Array.prototype.slice;\n\nvar swizzle = module.exports = function swizzle(args) {\n\tvar results = [];\n\n\tfor (var i = 0, len = args.length; i < len; i++) {\n\t\tvar arg = args[i];\n\n\t\tif (isArrayish(arg)) {\n\t\t\t// http://jsperf.com/javascript-array-concat-vs-push/98\n\t\t\tresults = concat.call(results, slice.call(arg));\n\t\t} else {\n\t\t\tresults.push(arg);\n\t\t}\n\t}\n\n\treturn results;\n};\n\nswizzle.wrap = function (fn) {\n\treturn function () {\n\t\treturn fn(swizzle(arguments));\n\t};\n};\n","/* MIT license */\nvar colorNames = require('color-name');\nvar swizzle = require('simple-swizzle');\nvar hasOwnProperty = Object.hasOwnProperty;\n\nvar reverseNames = Object.create(null);\n\n// create a list of reverse color names\nfor (var name in colorNames) {\n\tif (hasOwnProperty.call(colorNames, name)) {\n\t\treverseNames[colorNames[name]] = name;\n\t}\n}\n\nvar cs = module.exports = {\n\tto: {},\n\tget: {}\n};\n\ncs.get = function (string) {\n\tvar prefix = string.substring(0, 3).toLowerCase();\n\tvar val;\n\tvar model;\n\tswitch (prefix) {\n\t\tcase 'hsl':\n\t\t\tval = cs.get.hsl(string);\n\t\t\tmodel = 'hsl';\n\t\t\tbreak;\n\t\tcase 'hwb':\n\t\t\tval = cs.get.hwb(string);\n\t\t\tmodel = 'hwb';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tval = cs.get.rgb(string);\n\t\t\tmodel = 'rgb';\n\t\t\tbreak;\n\t}\n\n\tif (!val) {\n\t\treturn null;\n\t}\n\n\treturn {model: model, value: val};\n};\n\ncs.get.rgb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar abbr = /^#([a-f0-9]{3,4})$/i;\n\tvar hex = /^#([a-f0-9]{6})([a-f0-9]{2})?$/i;\n\tvar rgba = /^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/;\n\tvar keyword = /^(\\w+)$/;\n\n\tvar rgb = [0, 0, 0, 1];\n\tvar match;\n\tvar i;\n\tvar hexAlpha;\n\n\tif (match = string.match(hex)) {\n\t\thexAlpha = match[2];\n\t\tmatch = match[1];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\t// https://jsperf.com/slice-vs-substr-vs-substring-methods-long-string/19\n\t\t\tvar i2 = i * 2;\n\t\t\trgb[i] = parseInt(match.slice(i2, i2 + 2), 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(abbr)) {\n\t\tmatch = match[1];\n\t\thexAlpha = match[3];\n\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i] + match[i], 16);\n\t\t}\n\n\t\tif (hexAlpha) {\n\t\t\trgb[3] = parseInt(hexAlpha + hexAlpha, 16) / 255;\n\t\t}\n\t} else if (match = string.match(rgba)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = parseInt(match[i + 1], 0);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(per)) {\n\t\tfor (i = 0; i < 3; i++) {\n\t\t\trgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n\t\t}\n\n\t\tif (match[4]) {\n\t\t\tif (match[5]) {\n\t\t\t\trgb[3] = parseFloat(match[4]) * 0.01;\n\t\t\t} else {\n\t\t\t\trgb[3] = parseFloat(match[4]);\n\t\t\t}\n\t\t}\n\t} else if (match = string.match(keyword)) {\n\t\tif (match[1] === 'transparent') {\n\t\t\treturn [0, 0, 0, 0];\n\t\t}\n\n\t\tif (!hasOwnProperty.call(colorNames, match[1])) {\n\t\t\treturn null;\n\t\t}\n\n\t\trgb = colorNames[match[1]];\n\t\trgb[3] = 1;\n\n\t\treturn rgb;\n\t} else {\n\t\treturn null;\n\t}\n\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] = clamp(rgb[i], 0, 255);\n\t}\n\trgb[3] = clamp(rgb[3], 0, 1);\n\n\treturn rgb;\n};\n\ncs.get.hsl = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hsl = /^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hsl);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar s = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar l = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\n\t\treturn [h, s, l, a];\n\t}\n\n\treturn null;\n};\n\ncs.get.hwb = function (string) {\n\tif (!string) {\n\t\treturn null;\n\t}\n\n\tvar hwb = /^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/;\n\tvar match = string.match(hwb);\n\n\tif (match) {\n\t\tvar alpha = parseFloat(match[4]);\n\t\tvar h = ((parseFloat(match[1]) % 360) + 360) % 360;\n\t\tvar w = clamp(parseFloat(match[2]), 0, 100);\n\t\tvar b = clamp(parseFloat(match[3]), 0, 100);\n\t\tvar a = clamp(isNaN(alpha) ? 1 : alpha, 0, 1);\n\t\treturn [h, w, b, a];\n\t}\n\n\treturn null;\n};\n\ncs.to.hex = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn (\n\t\t'#' +\n\t\thexDouble(rgba[0]) +\n\t\thexDouble(rgba[1]) +\n\t\thexDouble(rgba[2]) +\n\t\t(rgba[3] < 1\n\t\t\t? (hexDouble(Math.round(rgba[3] * 255)))\n\t\t\t: '')\n\t);\n};\n\ncs.to.rgb = function () {\n\tvar rgba = swizzle(arguments);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ')'\n\t\t: 'rgba(' + Math.round(rgba[0]) + ', ' + Math.round(rgba[1]) + ', ' + Math.round(rgba[2]) + ', ' + rgba[3] + ')';\n};\n\ncs.to.rgb.percent = function () {\n\tvar rgba = swizzle(arguments);\n\n\tvar r = Math.round(rgba[0] / 255 * 100);\n\tvar g = Math.round(rgba[1] / 255 * 100);\n\tvar b = Math.round(rgba[2] / 255 * 100);\n\n\treturn rgba.length < 4 || rgba[3] === 1\n\t\t? 'rgb(' + r + '%, ' + g + '%, ' + b + '%)'\n\t\t: 'rgba(' + r + '%, ' + g + '%, ' + b + '%, ' + rgba[3] + ')';\n};\n\ncs.to.hsl = function () {\n\tvar hsla = swizzle(arguments);\n\treturn hsla.length < 4 || hsla[3] === 1\n\t\t? 'hsl(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%)'\n\t\t: 'hsla(' + hsla[0] + ', ' + hsla[1] + '%, ' + hsla[2] + '%, ' + hsla[3] + ')';\n};\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\ncs.to.hwb = function () {\n\tvar hwba = swizzle(arguments);\n\n\tvar a = '';\n\tif (hwba.length >= 4 && hwba[3] !== 1) {\n\t\ta = ', ' + hwba[3];\n\t}\n\n\treturn 'hwb(' + hwba[0] + ', ' + hwba[1] + '%, ' + hwba[2] + '%' + a + ')';\n};\n\ncs.to.keyword = function (rgb) {\n\treturn reverseNames[rgb.slice(0, 3)];\n};\n\n// helpers\nfunction clamp(num, min, max) {\n\treturn Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n\tvar str = Math.round(num).toString(16).toUpperCase();\n\treturn (str.length < 2) ? '0' + str : str;\n}\n","import colorString from \"color-string\";\nexport function getOptions(inOptions) {\n const type = inOptions?.type ?? \"png\";\n const defaults = type === \"png\" ? BITMAP_OPTIONS : VECTOR_OPTIONS;\n return { ...defaults, ...inOptions };\n}\nexport function colorToHex(color) {\n if (typeof color === \"string\") {\n return colorString.to.hex(colorString.get.rgb(color));\n }\n return `#${(color >>> 8).toString(16).padStart(6, \"0\")}`;\n}\nconst svgMove = (left, top) => ['M', left, top];\nconst svgReturn = () => ['z'];\nconst svgDeltaArc = (borderRadius, dx, dy, sweep = 0) => borderRadius > 0 ? ['a', borderRadius, borderRadius, 0, 0, sweep, dx, dy] : [];\nconst svgVerticalDeltaLite = (dy) => ['v', dy];\nconst svgHorizontalDeltaLine = (dx) => ['h', dx];\nexport function getFindersSVGPath(matrix, size = 0, margin = 0, borderRadius = 0) {\n const matrixSize = matrix.length * size + margin * 2;\n let finderSize = 8;\n let finderEnd = finderSize - 1;\n const sides = [[0, 0], [1, 0], [0, 1]];\n const rectangles = [];\n for (const side of sides) {\n const [xSign, ySign] = side.map(sidePoint => sidePoint == 0 ? 1 : -1);\n for (const offset of [0, 1, 2]) {\n let xCorner = matrixSize * side[0] + xSign * (margin + size * offset);\n let yCorner = matrixSize * side[1] + ySign * (margin + size * offset);\n const xDelta = xSign * (size * (finderEnd - 2 * offset) - 2 * borderRadius);\n const yDelta = ySign * (size * (finderEnd - 2 * offset) - 2 * borderRadius);\n let rectangle = [\n svgMove(xCorner, yCorner + borderRadius * ySign),\n svgVerticalDeltaLite(yDelta),\n svgDeltaArc(borderRadius, borderRadius * xSign, borderRadius * ySign, side[1] | side[0]),\n svgHorizontalDeltaLine(xDelta),\n svgDeltaArc(borderRadius, borderRadius * xSign, -borderRadius * ySign, (side[1] | side[0])),\n svgVerticalDeltaLite(-yDelta),\n svgDeltaArc(borderRadius, -borderRadius * xSign, -borderRadius * ySign, (side[1] | side[0])),\n svgHorizontalDeltaLine(-xDelta),\n svgDeltaArc(borderRadius, -borderRadius * xSign, borderRadius * ySign, (side[1] | side[0])),\n svgReturn(),\n ];\n rectangles.push(...rectangle.flat());\n }\n }\n return rectangles.join(\" \");\n}\nexport function getDotsSVGPath(matrix, size, margin = 0, borderRadius = 0) {\n let rectangles = [];\n for (let x = 0; x < matrix.length; x++) {\n const column = matrix[x];\n for (let y = 0; y < column.length; y++) {\n if (column[y]) {\n const leftX = x * size + margin;\n const topY = y * size + margin;\n const delta = size - 2 * borderRadius;\n const rectangle = [\n svgMove(leftX, topY + borderRadius),\n svgVerticalDeltaLite(delta),\n svgDeltaArc(borderRadius, borderRadius, borderRadius),\n svgHorizontalDeltaLine(delta),\n svgDeltaArc(borderRadius, borderRadius, -borderRadius),\n svgVerticalDeltaLite(-delta),\n svgDeltaArc(borderRadius, -borderRadius, -borderRadius),\n svgHorizontalDeltaLine(-delta),\n svgDeltaArc(borderRadius, -borderRadius, borderRadius),\n svgReturn(),\n ];\n rectangles.push(...rectangle.flat());\n }\n }\n }\n return rectangles.join(\" \");\n}\nconst commonOptions = {\n type: \"png\",\n parse_url: false,\n ec_level: \"M\",\n logo: undefined,\n logoWidth: 20,\n logoHeight: 20,\n bgColor: 0xffffffff,\n color: 0x000000ff,\n};\nconst BITMAP_OPTIONS = {\n ...commonOptions,\n margin: 1,\n size: 5,\n};\nconst VECTOR_OPTIONS = {\n ...commonOptions,\n margin: 1,\n size: 0,\n};\n//# sourceMappingURL=utils.js.map","/**\n * base64.ts\n *\n * Licensed under the BSD 3-Clause License.\n * http://opensource.org/licenses/BSD-3-Clause\n *\n * References:\n * http://en.wikipedia.org/wiki/Base64\n *\n * @author Dan Kogai (https://github.com/dankogai)\n */\nconst version = '3.7.7';\n/**\n * @deprecated use lowercase `version`.\n */\nconst VERSION = version;\nconst _hasBuffer = typeof Buffer === 'function';\nconst _TD = typeof TextDecoder === 'function' ? new TextDecoder() : undefined;\nconst _TE = typeof TextEncoder === 'function' ? new TextEncoder() : undefined;\nconst b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\nconst b64chs = Array.prototype.slice.call(b64ch);\nconst b64tab = ((a) => {\n let tab = {};\n a.forEach((c, i) => tab[c] = i);\n return tab;\n})(b64chs);\nconst b64re = /^(?:[A-Za-z\\d+\\/]{4})*?(?:[A-Za-z\\d+\\/]{2}(?:==)?|[A-Za-z\\d+\\/]{3}=?)?$/;\nconst _fromCC = String.fromCharCode.bind(String);\nconst _U8Afrom = typeof Uint8Array.from === 'function'\n ? Uint8Array.from.bind(Uint8Array)\n : (it) => new Uint8Array(Array.prototype.slice.call(it, 0));\nconst _mkUriSafe = (src) => src\n .replace(/=/g, '').replace(/[+\\/]/g, (m0) => m0 == '+' ? '-' : '_');\nconst _tidyB64 = (s) => s.replace(/[^A-Za-z0-9\\+\\/]/g, '');\n/**\n * polyfill version of `btoa`\n */\nconst btoaPolyfill = (bin) => {\n // console.log('polyfilled');\n let u32, c0, c1, c2, asc = '';\n const pad = bin.length % 3;\n for (let i = 0; i < bin.length;) {\n if ((c0 = bin.charCodeAt(i++)) > 255 ||\n (c1 = bin.charCodeAt(i++)) > 255 ||\n (c2 = bin.charCodeAt(i++)) > 255)\n throw new TypeError('invalid character found');\n u32 = (c0 << 16) | (c1 << 8) | c2;\n asc += b64chs[u32 >> 18 & 63]\n + b64chs[u32 >> 12 & 63]\n + b64chs[u32 >> 6 & 63]\n + b64chs[u32 & 63];\n }\n return pad ? asc.slice(0, pad - 3) + \"===\".substring(pad) : asc;\n};\n/**\n * does what `window.btoa` of web browsers do.\n * @param {String} bin binary string\n * @returns {string} Base64-encoded string\n */\nconst _btoa = typeof btoa === 'function' ? (bin) => btoa(bin)\n : _hasBuffer ? (bin) => Buffer.from(bin, 'binary').toString('base64')\n : btoaPolyfill;\nconst _fromUint8Array = _hasBuffer\n ? (u8a) => Buffer.from(u8a).toString('base64')\n : (u8a) => {\n // cf. https://stackoverflow.com/questions/12710001/how-to-convert-uint8-array-to-base64-encoded-string/12713326#12713326\n const maxargs = 0x1000;\n let strs = [];\n for (let i = 0, l = u8a.length; i < l; i += maxargs) {\n strs.push(_fromCC.apply(null, u8a.subarray(i, i + maxargs)));\n }\n return _btoa(strs.join(''));\n };\n/**\n * converts a Uint8Array to a Base64 string.\n * @param {boolean} [urlsafe] URL-and-filename-safe a la RFC4648 §5\n * @returns {string} Base64 string\n */\nconst fromUint8Array = (u8a, urlsafe = false) => urlsafe ? _mkUriSafe(_fromUint8Array(u8a)) : _fromUint8Array(u8a);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const utob = (src: string) => unescape(encodeURIComponent(src));\n// reverting good old fationed regexp\nconst cb_utob = (c) => {\n if (c.length < 2) {\n var cc = c.charCodeAt(0);\n return cc < 0x80 ? c\n : cc < 0x800 ? (_fromCC(0xc0 | (cc >>> 6))\n + _fromCC(0x80 | (cc & 0x3f)))\n : (_fromCC(0xe0 | ((cc >>> 12) & 0x0f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n else {\n var cc = 0x10000\n + (c.charCodeAt(0) - 0xD800) * 0x400\n + (c.charCodeAt(1) - 0xDC00);\n return (_fromCC(0xf0 | ((cc >>> 18) & 0x07))\n + _fromCC(0x80 | ((cc >>> 12) & 0x3f))\n + _fromCC(0x80 | ((cc >>> 6) & 0x3f))\n + _fromCC(0x80 | (cc & 0x3f)));\n }\n};\nconst re_utob = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFFF]|[^\\x00-\\x7F]/g;\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-8 string\n * @returns {string} UTF-16 string\n */\nconst utob = (u) => u.replace(re_utob, cb_utob);\n//\nconst _encode = _hasBuffer\n ? (s) => Buffer.from(s, 'utf8').toString('base64')\n : _TE\n ? (s) => _fromUint8Array(_TE.encode(s))\n : (s) => _btoa(utob(s));\n/**\n * converts a UTF-8-encoded string to a Base64 string.\n * @param {boolean} [urlsafe] if `true` make the result URL-safe\n * @returns {string} Base64 string\n */\nconst encode = (src, urlsafe = false) => urlsafe\n ? _mkUriSafe(_encode(src))\n : _encode(src);\n/**\n * converts a UTF-8-encoded string to URL-safe Base64 RFC4648 §5.\n * @returns {string} Base64 string\n */\nconst encodeURI = (src) => encode(src, true);\n// This trick is found broken https://github.com/dankogai/js-base64/issues/130\n// const btou = (src: string) => decodeURIComponent(escape(src));\n// reverting good old fationed regexp\nconst re_btou = /[\\xC0-\\xDF][\\x80-\\xBF]|[\\xE0-\\xEF][\\x80-\\xBF]{2}|[\\xF0-\\xF7][\\x80-\\xBF]{3}/g;\nconst cb_btou = (cccc) => {\n switch (cccc.length) {\n case 4:\n var cp = ((0x07 & cccc.charCodeAt(0)) << 18)\n | ((0x3f & cccc.charCodeAt(1)) << 12)\n | ((0x3f & cccc.charCodeAt(2)) << 6)\n | (0x3f & cccc.charCodeAt(3)), offset = cp - 0x10000;\n return (_fromCC((offset >>> 10) + 0xD800)\n + _fromCC((offset & 0x3FF) + 0xDC00));\n case 3:\n return _fromCC(((0x0f & cccc.charCodeAt(0)) << 12)\n | ((0x3f & cccc.charCodeAt(1)) << 6)\n | (0x3f & cccc.charCodeAt(2)));\n default:\n return _fromCC(((0x1f & cccc.charCodeAt(0)) << 6)\n | (0x3f & cccc.charCodeAt(1)));\n }\n};\n/**\n * @deprecated should have been internal use only.\n * @param {string} src UTF-16 string\n * @returns {string} UTF-8 string\n */\nconst btou = (b) => b.replace(re_btou, cb_btou);\n/**\n * polyfill version of `atob`\n */\nconst atobPolyfill = (asc) => {\n // console.log('polyfilled');\n asc = asc.replace(/\\s+/g, '');\n if (!b64re.test(asc))\n throw new TypeError('malformed base64.');\n asc += '=='.slice(2 - (asc.length & 3));\n let u24, bin = '', r1, r2;\n for (let i = 0; i < asc.length;) {\n u24 = b64tab[asc.charAt(i++)] << 18\n | b64tab[asc.charAt(i++)] << 12\n | (r1 = b64tab[asc.charAt(i++)]) << 6\n | (r2 = b64tab[asc.charAt(i++)]);\n bin += r1 === 64 ? _fromCC(u24 >> 16 & 255)\n : r2 === 64 ? _fromCC(u24 >> 16 & 255, u24 >> 8 & 255)\n : _fromCC(u24 >> 16 & 255, u24 >> 8 & 255, u24 & 255);\n }\n return bin;\n};\n/**\n * does what `window.atob` of web browsers do.\n * @param {String} asc Base64-encoded string\n * @returns {string} binary string\n */\nconst _atob = typeof atob === 'function' ? (asc) => atob(_tidyB64(asc))\n : _hasBuffer ? (asc) => Buffer.from(asc, 'base64').toString('binary')\n : atobPolyfill;\n//\nconst _toUint8Array = _hasBuffer\n ? (a) => _U8Afrom(Buffer.from(a, 'base64'))\n : (a) => _U8Afrom(_atob(a).split('').map(c => c.charCodeAt(0)));\n/**\n * converts a Base64 string to a Uint8Array.\n */\nconst toUint8Array = (a) => _toUint8Array(_unURI(a));\n//\nconst _decode = _hasBuffer\n ? (a) => Buffer.from(a, 'base64').toString('utf8')\n : _TD\n ? (a) => _TD.decode(_toUint8Array(a))\n : (a) => btou(_atob(a));\nconst _unURI = (a) => _tidyB64(a.replace(/[-_]/g, (m0) => m0 == '-' ? '+' : '/'));\n/**\n * converts a Base64 string to a UTF-8 string.\n * @param {String} src Base64 string. Both normal and URL-safe are supported\n * @returns {string} UTF-8 string\n */\nconst decode = (src) => _decode(_unURI(src));\n/**\n * check if a value is a valid Base64 string\n * @param {String} src a value to check\n */\nconst isValid = (src) => {\n if (typeof src !== 'string')\n return false;\n const s = src.replace(/\\s+/g, '').replace(/={0,2}$/, '');\n return !/[^\\s0-9a-zA-Z\\+/]/.test(s) || !/[^\\s0-9a-zA-Z\\-_]/.test(s);\n};\n//\nconst _noEnum = (v) => {\n return {\n value: v, enumerable: false, writable: true, configurable: true\n };\n};\n/**\n * extend String.prototype with relevant methods\n */\nconst extendString = function () {\n const _add = (name, body) => Object.defineProperty(String.prototype, name, _noEnum(body));\n _add('fromBase64', function () { return decode(this); });\n _add('toBase64', function (urlsafe) { return encode(this, urlsafe); });\n _add('toBase64URI', function () { return encode(this, true); });\n _add('toBase64URL', function () { return encode(this, true); });\n _add('toUint8Array', function () { return toUint8Array(this); });\n};\n/**\n * extend Uint8Array.prototype with relevant methods\n */\nconst extendUint8Array = function () {\n const _add = (name, body) => Object.defineProperty(Uint8Array.prototype, name, _noEnum(body));\n _add('toBase64', function (urlsafe) { return fromUint8Array(this, urlsafe); });\n _add('toBase64URI', function () { return fromUint8Array(this, true); });\n _add('toBase64URL', function () { return fromUint8Array(this, true); });\n};\n/**\n * extend Builtin prototypes with relevant methods\n */\nconst extendBuiltins = () => {\n extendString();\n extendUint8Array();\n};\nconst gBase64 = {\n version: version,\n VERSION: VERSION,\n atob: _atob,\n atobPolyfill: atobPolyfill,\n btoa: _btoa,\n btoaPolyfill: btoaPolyfill,\n fromBase64: decode,\n toBase64: encode,\n encode: encode,\n encodeURI: encodeURI,\n encodeURL: encodeURI,\n utob: utob,\n btou: btou,\n decode: decode,\n isValid: isValid,\n fromUint8Array: fromUint8Array,\n toUint8Array: toUint8Array,\n extendString: extendString,\n extendUint8Array: extendUint8Array,\n extendBuiltins: extendBuiltins\n};\n// makecjs:CUT //\nexport { version };\nexport { VERSION };\nexport { _atob as atob };\nexport { atobPolyfill };\nexport { _btoa as btoa };\nexport { btoaPolyfill };\nexport { decode as fromBase64 };\nexport { encode as toBase64 };\nexport { utob };\nexport { encode };\nexport { encodeURI };\nexport { encodeURI as encodeURL };\nexport { btou };\nexport { decode };\nexport { isValid };\nexport { fromUint8Array };\nexport { toUint8Array };\nexport { extendString };\nexport { extendUint8Array };\nexport { extendBuiltins };\n// and finally,\nexport { gBase64 as Base64 };\n","import { clearMatrixCenter, zeroFillFinders } from \"./bitMatrix.js\";\nimport { QR } from \"./qr-base.js\";\nimport { colorToHex, getOptions, getDotsSVGPath, getFindersSVGPath } from \"./utils.js\";\nimport { Base64 } from \"js-base64\";\nexport function getSVG(text, inOptions = {}) {\n const options = getOptions({ ...inOptions, type: \"svg\" });\n let matrix = QR(text, options.ec_level, options.parse_url);\n matrix = zeroFillFinders(matrix);\n if (options.logo && options.logoWidth && options.logoHeight && !options.noExcavate) {\n matrix = clearMatrixCenter(matrix, options.logoWidth, options.logoHeight);\n }\n return createSVG({ matrix, ...options });\n}\nconst te = new TextEncoder();\nexport function createSVG({ matrix, margin, size, logo, logoWidth, logoHeight, color, bgColor, imageWidth, imageHeight, borderRadius, }) {\n const actualBlockSize = size || 9;\n const matrixSizePx = matrix.length * actualBlockSize;\n const marginPx = margin * actualBlockSize;\n const imageSizePx = matrixSizePx + 2 * marginPx;\n const imageWidthStr = imageWidth ? ` width=\"${imageWidth}\"` : \"\";\n const imageHeightStr = imageHeight ? ` height=\"${imageWidth}\"` : \"\";\n const xmlTag = ``;\n const svgOpeningTag = ``;\n const svgBody = getSVGBody(matrix, {\n color,\n bgColor,\n size: imageSizePx,\n margin,\n blockSize: actualBlockSize,\n borderRadius,\n });\n const svgEndTag = \"\";\n const logoImage = logo ? getLogoImage(logo, marginPx, matrixSizePx, logoWidth, logoHeight) : \"\";\n return te.encode(xmlTag + svgOpeningTag + svgBody + logoImage + svgEndTag);\n}\nfunction getSVGBody(matrix, options) {\n const dotsPath = getDotsSVGPath(matrix, options.blockSize, options.margin * options.blockSize, options.borderRadius);\n const outerFindersPath = getFindersSVGPath(matrix, options.blockSize, options.margin * options.blockSize, options.borderRadius);\n let svgBody = ``;\n svgBody += ``;\n svgBody += ``;\n return svgBody;\n}\nfunction getLogoImage(logo, marginPx, matrixSizePx, logoWidth, logoHeight) {\n const imageBase64 = `data:image/png;base64,${Base64.fromUint8Array(new Uint8Array(logo))}`;\n const logoWidthPx = (logoWidth / 100) * matrixSizePx;\n const logoHeightPx = (logoHeight / 100) * matrixSizePx;\n return (`` +\n ``);\n}\n//# sourceMappingURL=svg.js.map","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n","/**\n* @vue/compiler-core v3.5.28\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { isString, NOOP, isObject, extend, NO, isSymbol, PatchFlagNames, isArray, capitalize, camelize, EMPTY_OBJ, slotFlagsText, isOn, isBuiltInDirective, isReservedProp, toHandlerKey } from '@vue/shared';\nexport { generateCodeFrame } from '@vue/shared';\n\nconst FRAGMENT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Fragment` : ``);\nconst TELEPORT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Teleport` : ``);\nconst SUSPENSE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Suspense` : ``);\nconst KEEP_ALIVE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `KeepAlive` : ``);\nconst BASE_TRANSITION = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `BaseTransition` : ``\n);\nconst OPEN_BLOCK = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `openBlock` : ``);\nconst CREATE_BLOCK = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createBlock` : ``);\nconst CREATE_ELEMENT_BLOCK = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createElementBlock` : ``\n);\nconst CREATE_VNODE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createVNode` : ``);\nconst CREATE_ELEMENT_VNODE = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createElementVNode` : ``\n);\nconst CREATE_COMMENT = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createCommentVNode` : ``\n);\nconst CREATE_TEXT = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createTextVNode` : ``\n);\nconst CREATE_STATIC = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `createStaticVNode` : ``\n);\nconst RESOLVE_COMPONENT = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveComponent` : ``\n);\nconst RESOLVE_DYNAMIC_COMPONENT = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveDynamicComponent` : ``\n);\nconst RESOLVE_DIRECTIVE = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveDirective` : ``\n);\nconst RESOLVE_FILTER = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `resolveFilter` : ``\n);\nconst WITH_DIRECTIVES = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `withDirectives` : ``\n);\nconst RENDER_LIST = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `renderList` : ``);\nconst RENDER_SLOT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `renderSlot` : ``);\nconst CREATE_SLOTS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `createSlots` : ``);\nconst TO_DISPLAY_STRING = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `toDisplayString` : ``\n);\nconst MERGE_PROPS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `mergeProps` : ``);\nconst NORMALIZE_CLASS = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeClass` : ``\n);\nconst NORMALIZE_STYLE = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeStyle` : ``\n);\nconst NORMALIZE_PROPS = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `normalizeProps` : ``\n);\nconst GUARD_REACTIVE_PROPS = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `guardReactiveProps` : ``\n);\nconst TO_HANDLERS = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `toHandlers` : ``);\nconst CAMELIZE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `camelize` : ``);\nconst CAPITALIZE = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `capitalize` : ``);\nconst TO_HANDLER_KEY = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `toHandlerKey` : ``\n);\nconst SET_BLOCK_TRACKING = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `setBlockTracking` : ``\n);\nconst PUSH_SCOPE_ID = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `pushScopeId` : ``);\nconst POP_SCOPE_ID = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `popScopeId` : ``);\nconst WITH_CTX = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `withCtx` : ``);\nconst UNREF = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `unref` : ``);\nconst IS_REF = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `isRef` : ``);\nconst WITH_MEMO = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `withMemo` : ``);\nconst IS_MEMO_SAME = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `isMemoSame` : ``);\nconst helperNameMap = {\n [FRAGMENT]: `Fragment`,\n [TELEPORT]: `Teleport`,\n [SUSPENSE]: `Suspense`,\n [KEEP_ALIVE]: `KeepAlive`,\n [BASE_TRANSITION]: `BaseTransition`,\n [OPEN_BLOCK]: `openBlock`,\n [CREATE_BLOCK]: `createBlock`,\n [CREATE_ELEMENT_BLOCK]: `createElementBlock`,\n [CREATE_VNODE]: `createVNode`,\n [CREATE_ELEMENT_VNODE]: `createElementVNode`,\n [CREATE_COMMENT]: `createCommentVNode`,\n [CREATE_TEXT]: `createTextVNode`,\n [CREATE_STATIC]: `createStaticVNode`,\n [RESOLVE_COMPONENT]: `resolveComponent`,\n [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,\n [RESOLVE_DIRECTIVE]: `resolveDirective`,\n [RESOLVE_FILTER]: `resolveFilter`,\n [WITH_DIRECTIVES]: `withDirectives`,\n [RENDER_LIST]: `renderList`,\n [RENDER_SLOT]: `renderSlot`,\n [CREATE_SLOTS]: `createSlots`,\n [TO_DISPLAY_STRING]: `toDisplayString`,\n [MERGE_PROPS]: `mergeProps`,\n [NORMALIZE_CLASS]: `normalizeClass`,\n [NORMALIZE_STYLE]: `normalizeStyle`,\n [NORMALIZE_PROPS]: `normalizeProps`,\n [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,\n [TO_HANDLERS]: `toHandlers`,\n [CAMELIZE]: `camelize`,\n [CAPITALIZE]: `capitalize`,\n [TO_HANDLER_KEY]: `toHandlerKey`,\n [SET_BLOCK_TRACKING]: `setBlockTracking`,\n [PUSH_SCOPE_ID]: `pushScopeId`,\n [POP_SCOPE_ID]: `popScopeId`,\n [WITH_CTX]: `withCtx`,\n [UNREF]: `unref`,\n [IS_REF]: `isRef`,\n [WITH_MEMO]: `withMemo`,\n [IS_MEMO_SAME]: `isMemoSame`\n};\nfunction registerRuntimeHelpers(helpers) {\n Object.getOwnPropertySymbols(helpers).forEach((s) => {\n helperNameMap[s] = helpers[s];\n });\n}\n\nconst Namespaces = {\n \"HTML\": 0,\n \"0\": \"HTML\",\n \"SVG\": 1,\n \"1\": \"SVG\",\n \"MATH_ML\": 2,\n \"2\": \"MATH_ML\"\n};\nconst NodeTypes = {\n \"ROOT\": 0,\n \"0\": \"ROOT\",\n \"ELEMENT\": 1,\n \"1\": \"ELEMENT\",\n \"TEXT\": 2,\n \"2\": \"TEXT\",\n \"COMMENT\": 3,\n \"3\": \"COMMENT\",\n \"SIMPLE_EXPRESSION\": 4,\n \"4\": \"SIMPLE_EXPRESSION\",\n \"INTERPOLATION\": 5,\n \"5\": \"INTERPOLATION\",\n \"ATTRIBUTE\": 6,\n \"6\": \"ATTRIBUTE\",\n \"DIRECTIVE\": 7,\n \"7\": \"DIRECTIVE\",\n \"COMPOUND_EXPRESSION\": 8,\n \"8\": \"COMPOUND_EXPRESSION\",\n \"IF\": 9,\n \"9\": \"IF\",\n \"IF_BRANCH\": 10,\n \"10\": \"IF_BRANCH\",\n \"FOR\": 11,\n \"11\": \"FOR\",\n \"TEXT_CALL\": 12,\n \"12\": \"TEXT_CALL\",\n \"VNODE_CALL\": 13,\n \"13\": \"VNODE_CALL\",\n \"JS_CALL_EXPRESSION\": 14,\n \"14\": \"JS_CALL_EXPRESSION\",\n \"JS_OBJECT_EXPRESSION\": 15,\n \"15\": \"JS_OBJECT_EXPRESSION\",\n \"JS_PROPERTY\": 16,\n \"16\": \"JS_PROPERTY\",\n \"JS_ARRAY_EXPRESSION\": 17,\n \"17\": \"JS_ARRAY_EXPRESSION\",\n \"JS_FUNCTION_EXPRESSION\": 18,\n \"18\": \"JS_FUNCTION_EXPRESSION\",\n \"JS_CONDITIONAL_EXPRESSION\": 19,\n \"19\": \"JS_CONDITIONAL_EXPRESSION\",\n \"JS_CACHE_EXPRESSION\": 20,\n \"20\": \"JS_CACHE_EXPRESSION\",\n \"JS_BLOCK_STATEMENT\": 21,\n \"21\": \"JS_BLOCK_STATEMENT\",\n \"JS_TEMPLATE_LITERAL\": 22,\n \"22\": \"JS_TEMPLATE_LITERAL\",\n \"JS_IF_STATEMENT\": 23,\n \"23\": \"JS_IF_STATEMENT\",\n \"JS_ASSIGNMENT_EXPRESSION\": 24,\n \"24\": \"JS_ASSIGNMENT_EXPRESSION\",\n \"JS_SEQUENCE_EXPRESSION\": 25,\n \"25\": \"JS_SEQUENCE_EXPRESSION\",\n \"JS_RETURN_STATEMENT\": 26,\n \"26\": \"JS_RETURN_STATEMENT\"\n};\nconst ElementTypes = {\n \"ELEMENT\": 0,\n \"0\": \"ELEMENT\",\n \"COMPONENT\": 1,\n \"1\": \"COMPONENT\",\n \"SLOT\": 2,\n \"2\": \"SLOT\",\n \"TEMPLATE\": 3,\n \"3\": \"TEMPLATE\"\n};\nconst ConstantTypes = {\n \"NOT_CONSTANT\": 0,\n \"0\": \"NOT_CONSTANT\",\n \"CAN_SKIP_PATCH\": 1,\n \"1\": \"CAN_SKIP_PATCH\",\n \"CAN_CACHE\": 2,\n \"2\": \"CAN_CACHE\",\n \"CAN_STRINGIFY\": 3,\n \"3\": \"CAN_STRINGIFY\"\n};\nconst locStub = {\n start: { line: 1, column: 1, offset: 0 },\n end: { line: 1, column: 1, offset: 0 },\n source: \"\"\n};\nfunction createRoot(children, source = \"\") {\n return {\n type: 0,\n source,\n children,\n helpers: /* @__PURE__ */ new Set(),\n components: [],\n directives: [],\n hoists: [],\n imports: [],\n cached: [],\n temps: 0,\n codegenNode: void 0,\n loc: locStub\n };\n}\nfunction createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent = false, loc = locStub) {\n if (context) {\n if (isBlock) {\n context.helper(OPEN_BLOCK);\n context.helper(getVNodeBlockHelper(context.inSSR, isComponent));\n } else {\n context.helper(getVNodeHelper(context.inSSR, isComponent));\n }\n if (directives) {\n context.helper(WITH_DIRECTIVES);\n }\n }\n return {\n type: 13,\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent,\n loc\n };\n}\nfunction createArrayExpression(elements, loc = locStub) {\n return {\n type: 17,\n loc,\n elements\n };\n}\nfunction createObjectExpression(properties, loc = locStub) {\n return {\n type: 15,\n loc,\n properties\n };\n}\nfunction createObjectProperty(key, value) {\n return {\n type: 16,\n loc: locStub,\n key: isString(key) ? createSimpleExpression(key, true) : key,\n value\n };\n}\nfunction createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {\n return {\n type: 4,\n loc,\n content,\n isStatic,\n constType: isStatic ? 3 : constType\n };\n}\nfunction createInterpolation(content, loc) {\n return {\n type: 5,\n loc,\n content: isString(content) ? createSimpleExpression(content, false, loc) : content\n };\n}\nfunction createCompoundExpression(children, loc = locStub) {\n return {\n type: 8,\n loc,\n children\n };\n}\nfunction createCallExpression(callee, args = [], loc = locStub) {\n return {\n type: 14,\n loc,\n callee,\n arguments: args\n };\n}\nfunction createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {\n return {\n type: 18,\n params,\n returns,\n newline,\n isSlot,\n loc\n };\n}\nfunction createConditionalExpression(test, consequent, alternate, newline = true) {\n return {\n type: 19,\n test,\n consequent,\n alternate,\n newline,\n loc: locStub\n };\n}\nfunction createCacheExpression(index, value, needPauseTracking = false, inVOnce = false) {\n return {\n type: 20,\n index,\n value,\n needPauseTracking,\n inVOnce,\n needArraySpread: false,\n loc: locStub\n };\n}\nfunction createBlockStatement(body) {\n return {\n type: 21,\n body,\n loc: locStub\n };\n}\nfunction createTemplateLiteral(elements) {\n return {\n type: 22,\n elements,\n loc: locStub\n };\n}\nfunction createIfStatement(test, consequent, alternate) {\n return {\n type: 23,\n test,\n consequent,\n alternate,\n loc: locStub\n };\n}\nfunction createAssignmentExpression(left, right) {\n return {\n type: 24,\n left,\n right,\n loc: locStub\n };\n}\nfunction createSequenceExpression(expressions) {\n return {\n type: 25,\n expressions,\n loc: locStub\n };\n}\nfunction createReturnStatement(returns) {\n return {\n type: 26,\n returns,\n loc: locStub\n };\n}\nfunction getVNodeHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_VNODE : CREATE_ELEMENT_VNODE;\n}\nfunction getVNodeBlockHelper(ssr, isComponent) {\n return ssr || isComponent ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;\n}\nfunction convertToBlock(node, { helper, removeHelper, inSSR }) {\n if (!node.isBlock) {\n node.isBlock = true;\n removeHelper(getVNodeHelper(inSSR, node.isComponent));\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(inSSR, node.isComponent));\n }\n}\n\nconst defaultDelimitersOpen = new Uint8Array([123, 123]);\nconst defaultDelimitersClose = new Uint8Array([125, 125]);\nfunction isTagStartChar(c) {\n return c >= 97 && c <= 122 || c >= 65 && c <= 90;\n}\nfunction isWhitespace(c) {\n return c === 32 || c === 10 || c === 9 || c === 12 || c === 13;\n}\nfunction isEndOfTagSection(c) {\n return c === 47 || c === 62 || isWhitespace(c);\n}\nfunction toCharCodes(str) {\n const ret = new Uint8Array(str.length);\n for (let i = 0; i < str.length; i++) {\n ret[i] = str.charCodeAt(i);\n }\n return ret;\n}\nconst Sequences = {\n Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),\n // CDATA[\n CdataEnd: new Uint8Array([93, 93, 62]),\n // ]]>\n CommentEnd: new Uint8Array([45, 45, 62]),\n // `-->`\n ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),\n // `<\\/script`\n StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),\n // ` 100) {\n let l = -1;\n let r = length;\n while (l + 1 < r) {\n const m = l + r >>> 1;\n this.newlines[m] < index ? l = m : r = m;\n }\n j = l;\n } else {\n for (let i = length - 1; i >= 0; i--) {\n if (index > this.newlines[i]) {\n j = i;\n break;\n }\n }\n }\n if (j >= 0) {\n line = j + 2;\n column = index - this.newlines[j];\n }\n return {\n column,\n line,\n offset: index\n };\n }\n peek() {\n return this.buffer.charCodeAt(this.index + 1);\n }\n stateText(c) {\n if (c === 60) {\n if (this.index > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, this.index);\n }\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n }\n stateInterpolationOpen(c) {\n if (c === this.delimiterOpen[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterOpen.length - 1) {\n const start = this.index + 1 - this.delimiterOpen.length;\n if (start > this.sectionStart) {\n this.cbs.ontext(this.sectionStart, start);\n }\n this.state = 3;\n this.sectionStart = start;\n } else {\n this.delimiterIndex++;\n }\n } else if (this.inRCDATA) {\n this.state = 32;\n this.stateInRCDATA(c);\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInterpolation(c) {\n if (c === this.delimiterClose[0]) {\n this.state = 4;\n this.delimiterIndex = 0;\n this.stateInterpolationClose(c);\n }\n }\n stateInterpolationClose(c) {\n if (c === this.delimiterClose[this.delimiterIndex]) {\n if (this.delimiterIndex === this.delimiterClose.length - 1) {\n this.cbs.oninterpolation(this.sectionStart, this.index + 1);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else {\n this.delimiterIndex++;\n }\n } else {\n this.state = 3;\n this.stateInterpolation(c);\n }\n }\n stateSpecialStartSequence(c) {\n const isEnd = this.sequenceIndex === this.currentSequence.length;\n const isMatch = isEnd ? (\n // If we are at the end of the sequence, make sure the tag name has ended\n isEndOfTagSection(c)\n ) : (\n // Otherwise, do a case-insensitive comparison\n (c | 32) === this.currentSequence[this.sequenceIndex]\n );\n if (!isMatch) {\n this.inRCDATA = false;\n } else if (!isEnd) {\n this.sequenceIndex++;\n return;\n }\n this.sequenceIndex = 0;\n this.state = 6;\n this.stateInTagName(c);\n }\n /** Look for an end tag. For and <textarea>, also decode entities. */\n stateInRCDATA(c) {\n if (this.sequenceIndex === this.currentSequence.length) {\n if (c === 62 || isWhitespace(c)) {\n const endOfText = this.index - this.currentSequence.length;\n if (this.sectionStart < endOfText) {\n const actualIndex = this.index;\n this.index = endOfText;\n this.cbs.ontext(this.sectionStart, endOfText);\n this.index = actualIndex;\n }\n this.sectionStart = endOfText + 2;\n this.stateInClosingTagName(c);\n this.inRCDATA = false;\n return;\n }\n this.sequenceIndex = 0;\n }\n if ((c | 32) === this.currentSequence[this.sequenceIndex]) {\n this.sequenceIndex += 1;\n } else if (this.sequenceIndex === 0) {\n if (this.currentSequence === Sequences.TitleEnd || this.currentSequence === Sequences.TextareaEnd && !this.inSFCRoot) {\n if (!this.inVPre && c === this.delimiterOpen[0]) {\n this.state = 2;\n this.delimiterIndex = 0;\n this.stateInterpolationOpen(c);\n }\n } else if (this.fastForwardTo(60)) {\n this.sequenceIndex = 1;\n }\n } else {\n this.sequenceIndex = Number(c === 60);\n }\n }\n stateCDATASequence(c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this.state = 28;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n }\n } else {\n this.sequenceIndex = 0;\n this.state = 23;\n this.stateInDeclaration(c);\n }\n }\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n fastForwardTo(c) {\n while (++this.index < this.buffer.length) {\n const cc = this.buffer.charCodeAt(this.index);\n if (cc === 10) {\n this.newlines.push(this.index);\n }\n if (cc === c) {\n return true;\n }\n }\n this.index = this.buffer.length - 1;\n return false;\n }\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n stateInCommentLike(c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, this.index - 2);\n } else {\n this.cbs.oncomment(this.sectionStart, this.index - 2);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this.index + 1;\n this.state = 1;\n }\n } else if (this.sequenceIndex === 0) {\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n } else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n this.sequenceIndex = 0;\n }\n }\n startSpecial(sequence, offset) {\n this.enterRCDATA(sequence, offset);\n this.state = 31;\n }\n enterRCDATA(sequence, offset) {\n this.inRCDATA = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n }\n stateBeforeTagName(c) {\n if (c === 33) {\n this.state = 22;\n this.sectionStart = this.index + 1;\n } else if (c === 63) {\n this.state = 24;\n this.sectionStart = this.index + 1;\n } else if (isTagStartChar(c)) {\n this.sectionStart = this.index;\n if (this.mode === 0) {\n this.state = 6;\n } else if (this.inSFCRoot) {\n this.state = 34;\n } else if (!this.inXML) {\n if (c === 116) {\n this.state = 30;\n } else {\n this.state = c === 115 ? 29 : 6;\n }\n } else {\n this.state = 6;\n }\n } else if (c === 47) {\n this.state = 8;\n } else {\n this.state = 1;\n this.stateText(c);\n }\n }\n stateInTagName(c) {\n if (isEndOfTagSection(c)) {\n this.handleTagName(c);\n }\n }\n stateInSFCRootTagName(c) {\n if (isEndOfTagSection(c)) {\n const tag = this.buffer.slice(this.sectionStart, this.index);\n if (tag !== \"template\") {\n this.enterRCDATA(toCharCodes(`</` + tag), 0);\n }\n this.handleTagName(c);\n }\n }\n handleTagName(c) {\n this.cbs.onopentagname(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n stateBeforeClosingTagName(c) {\n if (isWhitespace(c)) ; else if (c === 62) {\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n this.cbs.onerr(14, this.index);\n }\n this.state = 1;\n this.sectionStart = this.index + 1;\n } else {\n this.state = isTagStartChar(c) ? 9 : 27;\n this.sectionStart = this.index;\n }\n }\n stateInClosingTagName(c) {\n if (c === 62 || isWhitespace(c)) {\n this.cbs.onclosetag(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.state = 10;\n this.stateAfterClosingTagName(c);\n }\n }\n stateAfterClosingTagName(c) {\n if (c === 62) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeAttrName(c) {\n if (c === 62) {\n this.cbs.onopentagend(this.index);\n if (this.inRCDATA) {\n this.state = 32;\n } else {\n this.state = 1;\n }\n this.sectionStart = this.index + 1;\n } else if (c === 47) {\n this.state = 7;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && this.peek() !== 62) {\n this.cbs.onerr(22, this.index);\n }\n } else if (c === 60 && this.peek() === 47) {\n this.cbs.onopentagend(this.index);\n this.state = 5;\n this.sectionStart = this.index;\n } else if (!isWhitespace(c)) {\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && c === 61) {\n this.cbs.onerr(\n 19,\n this.index\n );\n }\n this.handleAttrStart(c);\n }\n }\n handleAttrStart(c) {\n if (c === 118 && this.peek() === 45) {\n this.state = 13;\n this.sectionStart = this.index;\n } else if (c === 46 || c === 58 || c === 64 || c === 35) {\n this.cbs.ondirname(this.index, this.index + 1);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 12;\n this.sectionStart = this.index;\n }\n }\n stateInSelfClosingTag(c) {\n if (c === 62) {\n this.cbs.onselfclosingtag(this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n this.inRCDATA = false;\n } else if (!isWhitespace(c)) {\n this.state = 11;\n this.stateBeforeAttrName(c);\n }\n }\n stateInAttrName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if ((!!(process.env.NODE_ENV !== \"production\") || false) && (c === 34 || c === 39 || c === 60)) {\n this.cbs.onerr(\n 17,\n this.index\n );\n }\n }\n stateInDirName(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 58) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 14;\n this.sectionStart = this.index + 1;\n } else if (c === 46) {\n this.cbs.ondirname(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDirArg(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 91) {\n this.state = 15;\n } else if (c === 46) {\n this.cbs.ondirarg(this.sectionStart, this.index);\n this.state = 16;\n this.sectionStart = this.index + 1;\n }\n }\n stateInDynamicDirArg(c) {\n if (c === 93) {\n this.state = 14;\n } else if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirarg(this.sectionStart, this.index + 1);\n this.handleAttrNameEnd(c);\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n this.cbs.onerr(\n 27,\n this.index\n );\n }\n }\n }\n stateInDirModifier(c) {\n if (c === 61 || isEndOfTagSection(c)) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.handleAttrNameEnd(c);\n } else if (c === 46) {\n this.cbs.ondirmodifier(this.sectionStart, this.index);\n this.sectionStart = this.index + 1;\n }\n }\n handleAttrNameEnd(c) {\n this.sectionStart = this.index;\n this.state = 17;\n this.cbs.onattribnameend(this.index);\n this.stateAfterAttrName(c);\n }\n stateAfterAttrName(c) {\n if (c === 61) {\n this.state = 18;\n } else if (c === 47 || c === 62) {\n this.cbs.onattribend(0, this.sectionStart);\n this.sectionStart = -1;\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if (!isWhitespace(c)) {\n this.cbs.onattribend(0, this.sectionStart);\n this.handleAttrStart(c);\n }\n }\n stateBeforeAttrValue(c) {\n if (c === 34) {\n this.state = 19;\n this.sectionStart = this.index + 1;\n } else if (c === 39) {\n this.state = 20;\n this.sectionStart = this.index + 1;\n } else if (!isWhitespace(c)) {\n this.sectionStart = this.index;\n this.state = 21;\n this.stateInAttrValueNoQuotes(c);\n }\n }\n handleInAttrValue(c, quote) {\n if (c === quote || this.fastForwardTo(quote)) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(\n quote === 34 ? 3 : 2,\n this.index + 1\n );\n this.state = 11;\n }\n }\n stateInAttrValueDoubleQuotes(c) {\n this.handleInAttrValue(c, 34);\n }\n stateInAttrValueSingleQuotes(c) {\n this.handleInAttrValue(c, 39);\n }\n stateInAttrValueNoQuotes(c) {\n if (isWhitespace(c) || c === 62) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = -1;\n this.cbs.onattribend(1, this.index);\n this.state = 11;\n this.stateBeforeAttrName(c);\n } else if ((!!(process.env.NODE_ENV !== \"production\") || false) && c === 34 || c === 39 || c === 60 || c === 61 || c === 96) {\n this.cbs.onerr(\n 18,\n this.index\n );\n } else ;\n }\n stateBeforeDeclaration(c) {\n if (c === 91) {\n this.state = 26;\n this.sequenceIndex = 0;\n } else {\n this.state = c === 45 ? 25 : 23;\n }\n }\n stateInDeclaration(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateInProcessingInstruction(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.onprocessinginstruction(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeComment(c) {\n if (c === 45) {\n this.state = 28;\n this.currentSequence = Sequences.CommentEnd;\n this.sequenceIndex = 2;\n this.sectionStart = this.index + 1;\n } else {\n this.state = 23;\n }\n }\n stateInSpecialComment(c) {\n if (c === 62 || this.fastForwardTo(62)) {\n this.cbs.oncomment(this.sectionStart, this.index);\n this.state = 1;\n this.sectionStart = this.index + 1;\n }\n }\n stateBeforeSpecialS(c) {\n if (c === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n } else if (c === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n stateBeforeSpecialT(c) {\n if (c === Sequences.TitleEnd[3]) {\n this.startSpecial(Sequences.TitleEnd, 4);\n } else if (c === Sequences.TextareaEnd[3]) {\n this.startSpecial(Sequences.TextareaEnd, 4);\n } else {\n this.state = 6;\n this.stateInTagName(c);\n }\n }\n startEntity() {\n }\n stateInEntity() {\n }\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n parse(input) {\n this.buffer = input;\n while (this.index < this.buffer.length) {\n const c = this.buffer.charCodeAt(this.index);\n if (c === 10 && this.state !== 33) {\n this.newlines.push(this.index);\n }\n switch (this.state) {\n case 1: {\n this.stateText(c);\n break;\n }\n case 2: {\n this.stateInterpolationOpen(c);\n break;\n }\n case 3: {\n this.stateInterpolation(c);\n break;\n }\n case 4: {\n this.stateInterpolationClose(c);\n break;\n }\n case 31: {\n this.stateSpecialStartSequence(c);\n break;\n }\n case 32: {\n this.stateInRCDATA(c);\n break;\n }\n case 26: {\n this.stateCDATASequence(c);\n break;\n }\n case 19: {\n this.stateInAttrValueDoubleQuotes(c);\n break;\n }\n case 12: {\n this.stateInAttrName(c);\n break;\n }\n case 13: {\n this.stateInDirName(c);\n break;\n }\n case 14: {\n this.stateInDirArg(c);\n break;\n }\n case 15: {\n this.stateInDynamicDirArg(c);\n break;\n }\n case 16: {\n this.stateInDirModifier(c);\n break;\n }\n case 28: {\n this.stateInCommentLike(c);\n break;\n }\n case 27: {\n this.stateInSpecialComment(c);\n break;\n }\n case 11: {\n this.stateBeforeAttrName(c);\n break;\n }\n case 6: {\n this.stateInTagName(c);\n break;\n }\n case 34: {\n this.stateInSFCRootTagName(c);\n break;\n }\n case 9: {\n this.stateInClosingTagName(c);\n break;\n }\n case 5: {\n this.stateBeforeTagName(c);\n break;\n }\n case 17: {\n this.stateAfterAttrName(c);\n break;\n }\n case 20: {\n this.stateInAttrValueSingleQuotes(c);\n break;\n }\n case 18: {\n this.stateBeforeAttrValue(c);\n break;\n }\n case 8: {\n this.stateBeforeClosingTagName(c);\n break;\n }\n case 10: {\n this.stateAfterClosingTagName(c);\n break;\n }\n case 29: {\n this.stateBeforeSpecialS(c);\n break;\n }\n case 30: {\n this.stateBeforeSpecialT(c);\n break;\n }\n case 21: {\n this.stateInAttrValueNoQuotes(c);\n break;\n }\n case 7: {\n this.stateInSelfClosingTag(c);\n break;\n }\n case 23: {\n this.stateInDeclaration(c);\n break;\n }\n case 22: {\n this.stateBeforeDeclaration(c);\n break;\n }\n case 25: {\n this.stateBeforeComment(c);\n break;\n }\n case 24: {\n this.stateInProcessingInstruction(c);\n break;\n }\n case 33: {\n this.stateInEntity();\n break;\n }\n }\n this.index++;\n }\n this.cleanup();\n this.finish();\n }\n /**\n * Remove data that has already been consumed from the buffer.\n */\n cleanup() {\n if (this.sectionStart !== this.index) {\n if (this.state === 1 || this.state === 32 && this.sequenceIndex === 0) {\n this.cbs.ontext(this.sectionStart, this.index);\n this.sectionStart = this.index;\n } else if (this.state === 19 || this.state === 20 || this.state === 21) {\n this.cbs.onattribdata(this.sectionStart, this.index);\n this.sectionStart = this.index;\n }\n }\n }\n finish() {\n this.handleTrailingData();\n this.cbs.onend();\n }\n /** Handle any trailing data. */\n handleTrailingData() {\n const endIndex = this.buffer.length;\n if (this.sectionStart >= endIndex) {\n return;\n }\n if (this.state === 28) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(this.sectionStart, endIndex);\n } else {\n this.cbs.oncomment(this.sectionStart, endIndex);\n }\n } else if (this.state === 6 || this.state === 11 || this.state === 18 || this.state === 17 || this.state === 12 || this.state === 13 || this.state === 14 || this.state === 15 || this.state === 16 || this.state === 20 || this.state === 19 || this.state === 21 || this.state === 9) ; else {\n this.cbs.ontext(this.sectionStart, endIndex);\n }\n }\n emitCodePoint(cp, consumed) {\n }\n}\n\nconst CompilerDeprecationTypes = {\n \"COMPILER_IS_ON_ELEMENT\": \"COMPILER_IS_ON_ELEMENT\",\n \"COMPILER_V_BIND_SYNC\": \"COMPILER_V_BIND_SYNC\",\n \"COMPILER_V_BIND_OBJECT_ORDER\": \"COMPILER_V_BIND_OBJECT_ORDER\",\n \"COMPILER_V_ON_NATIVE\": \"COMPILER_V_ON_NATIVE\",\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\": \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n \"COMPILER_NATIVE_TEMPLATE\": \"COMPILER_NATIVE_TEMPLATE\",\n \"COMPILER_INLINE_TEMPLATE\": \"COMPILER_INLINE_TEMPLATE\",\n \"COMPILER_FILTERS\": \"COMPILER_FILTERS\"\n};\nconst deprecationData = {\n [\"COMPILER_IS_ON_ELEMENT\"]: {\n message: `Platform-native elements with \"is\" prop will no longer be treated as components in Vue 3 unless the \"is\" value is explicitly prefixed with \"vue:\".`,\n link: `https://v3-migration.vuejs.org/breaking-changes/custom-elements-interop.html`\n },\n [\"COMPILER_V_BIND_SYNC\"]: {\n message: (key) => `.sync modifier for v-bind has been removed. Use v-model with argument instead. \\`v-bind:${key}.sync\\` should be changed to \\`v-model:${key}\\`.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-model.html`\n },\n [\"COMPILER_V_BIND_OBJECT_ORDER\"]: {\n message: `v-bind=\"obj\" usage is now order sensitive and behaves like JavaScript object spread: it will now overwrite an existing non-mergeable attribute that appears before v-bind in the case of conflict. To retain 2.x behavior, move v-bind to make it the first attribute. You can also suppress this warning if the usage is intended.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-bind.html`\n },\n [\"COMPILER_V_ON_NATIVE\"]: {\n message: `.native modifier for v-on has been removed as is no longer necessary.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-on-native-modifier-removed.html`\n },\n [\"COMPILER_V_IF_V_FOR_PRECEDENCE\"]: {\n message: `v-if / v-for precedence when used on the same element has changed in Vue 3: v-if now takes higher precedence and will no longer have access to v-for scope variables. It is best to avoid the ambiguity with <template> tags or use a computed property that filters v-for data source.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/v-if-v-for.html`\n },\n [\"COMPILER_NATIVE_TEMPLATE\"]: {\n message: `<template> with no special directives will render as a native template element instead of its inner content in Vue 3.`\n },\n [\"COMPILER_INLINE_TEMPLATE\"]: {\n message: `\"inline-template\" has been removed in Vue 3.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/inline-template-attribute.html`\n },\n [\"COMPILER_FILTERS\"]: {\n message: `filters have been removed in Vue 3. The \"|\" symbol will be treated as native JavaScript bitwise OR operator. Use method calls or computed properties instead.`,\n link: `https://v3-migration.vuejs.org/breaking-changes/filters.html`\n }\n};\nfunction getCompatValue(key, { compatConfig }) {\n const value = compatConfig && compatConfig[key];\n if (key === \"MODE\") {\n return value || 3;\n } else {\n return value;\n }\n}\nfunction isCompatEnabled(key, context) {\n const mode = getCompatValue(\"MODE\", context);\n const value = getCompatValue(key, context);\n return mode === 3 ? value === true : value !== false;\n}\nfunction checkCompatEnabled(key, context, loc, ...args) {\n const enabled = isCompatEnabled(key, context);\n if (!!(process.env.NODE_ENV !== \"production\") && enabled) {\n warnDeprecation(key, context, loc, ...args);\n }\n return enabled;\n}\nfunction warnDeprecation(key, context, loc, ...args) {\n const val = getCompatValue(key, context);\n if (val === \"suppress-warning\") {\n return;\n }\n const { message, link } = deprecationData[key];\n const msg = `(deprecation ${key}) ${typeof message === \"function\" ? message(...args) : message}${link ? `\n Details: ${link}` : ``}`;\n const err = new SyntaxError(msg);\n err.code = key;\n if (loc) err.loc = loc;\n context.onWarn(err);\n}\n\nfunction defaultOnError(error) {\n throw error;\n}\nfunction defaultOnWarn(msg) {\n !!(process.env.NODE_ENV !== \"production\") && console.warn(`[Vue warn] ${msg.message}`);\n}\nfunction createCompilerError(code, loc, messages, additionalMessage) {\n const msg = !!(process.env.NODE_ENV !== \"production\") || false ? (messages || errorMessages)[code] + (additionalMessage || ``) : `https://vuejs.org/error-reference/#compiler-${code}`;\n const error = new SyntaxError(String(msg));\n error.code = code;\n error.loc = loc;\n return error;\n}\nconst ErrorCodes = {\n \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\": 0,\n \"0\": \"ABRUPT_CLOSING_OF_EMPTY_COMMENT\",\n \"CDATA_IN_HTML_CONTENT\": 1,\n \"1\": \"CDATA_IN_HTML_CONTENT\",\n \"DUPLICATE_ATTRIBUTE\": 2,\n \"2\": \"DUPLICATE_ATTRIBUTE\",\n \"END_TAG_WITH_ATTRIBUTES\": 3,\n \"3\": \"END_TAG_WITH_ATTRIBUTES\",\n \"END_TAG_WITH_TRAILING_SOLIDUS\": 4,\n \"4\": \"END_TAG_WITH_TRAILING_SOLIDUS\",\n \"EOF_BEFORE_TAG_NAME\": 5,\n \"5\": \"EOF_BEFORE_TAG_NAME\",\n \"EOF_IN_CDATA\": 6,\n \"6\": \"EOF_IN_CDATA\",\n \"EOF_IN_COMMENT\": 7,\n \"7\": \"EOF_IN_COMMENT\",\n \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\": 8,\n \"8\": \"EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT\",\n \"EOF_IN_TAG\": 9,\n \"9\": \"EOF_IN_TAG\",\n \"INCORRECTLY_CLOSED_COMMENT\": 10,\n \"10\": \"INCORRECTLY_CLOSED_COMMENT\",\n \"INCORRECTLY_OPENED_COMMENT\": 11,\n \"11\": \"INCORRECTLY_OPENED_COMMENT\",\n \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\": 12,\n \"12\": \"INVALID_FIRST_CHARACTER_OF_TAG_NAME\",\n \"MISSING_ATTRIBUTE_VALUE\": 13,\n \"13\": \"MISSING_ATTRIBUTE_VALUE\",\n \"MISSING_END_TAG_NAME\": 14,\n \"14\": \"MISSING_END_TAG_NAME\",\n \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\": 15,\n \"15\": \"MISSING_WHITESPACE_BETWEEN_ATTRIBUTES\",\n \"NESTED_COMMENT\": 16,\n \"16\": \"NESTED_COMMENT\",\n \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\": 17,\n \"17\": \"UNEXPECTED_CHARACTER_IN_ATTRIBUTE_NAME\",\n \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\": 18,\n \"18\": \"UNEXPECTED_CHARACTER_IN_UNQUOTED_ATTRIBUTE_VALUE\",\n \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\": 19,\n \"19\": \"UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME\",\n \"UNEXPECTED_NULL_CHARACTER\": 20,\n \"20\": \"UNEXPECTED_NULL_CHARACTER\",\n \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\": 21,\n \"21\": \"UNEXPECTED_QUESTION_MARK_INSTEAD_OF_TAG_NAME\",\n \"UNEXPECTED_SOLIDUS_IN_TAG\": 22,\n \"22\": \"UNEXPECTED_SOLIDUS_IN_TAG\",\n \"X_INVALID_END_TAG\": 23,\n \"23\": \"X_INVALID_END_TAG\",\n \"X_MISSING_END_TAG\": 24,\n \"24\": \"X_MISSING_END_TAG\",\n \"X_MISSING_INTERPOLATION_END\": 25,\n \"25\": \"X_MISSING_INTERPOLATION_END\",\n \"X_MISSING_DIRECTIVE_NAME\": 26,\n \"26\": \"X_MISSING_DIRECTIVE_NAME\",\n \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\": 27,\n \"27\": \"X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END\",\n \"X_V_IF_NO_EXPRESSION\": 28,\n \"28\": \"X_V_IF_NO_EXPRESSION\",\n \"X_V_IF_SAME_KEY\": 29,\n \"29\": \"X_V_IF_SAME_KEY\",\n \"X_V_ELSE_NO_ADJACENT_IF\": 30,\n \"30\": \"X_V_ELSE_NO_ADJACENT_IF\",\n \"X_V_FOR_NO_EXPRESSION\": 31,\n \"31\": \"X_V_FOR_NO_EXPRESSION\",\n \"X_V_FOR_MALFORMED_EXPRESSION\": 32,\n \"32\": \"X_V_FOR_MALFORMED_EXPRESSION\",\n \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\": 33,\n \"33\": \"X_V_FOR_TEMPLATE_KEY_PLACEMENT\",\n \"X_V_BIND_NO_EXPRESSION\": 34,\n \"34\": \"X_V_BIND_NO_EXPRESSION\",\n \"X_V_ON_NO_EXPRESSION\": 35,\n \"35\": \"X_V_ON_NO_EXPRESSION\",\n \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\": 36,\n \"36\": \"X_V_SLOT_UNEXPECTED_DIRECTIVE_ON_SLOT_OUTLET\",\n \"X_V_SLOT_MIXED_SLOT_USAGE\": 37,\n \"37\": \"X_V_SLOT_MIXED_SLOT_USAGE\",\n \"X_V_SLOT_DUPLICATE_SLOT_NAMES\": 38,\n \"38\": \"X_V_SLOT_DUPLICATE_SLOT_NAMES\",\n \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\": 39,\n \"39\": \"X_V_SLOT_EXTRANEOUS_DEFAULT_SLOT_CHILDREN\",\n \"X_V_SLOT_MISPLACED\": 40,\n \"40\": \"X_V_SLOT_MISPLACED\",\n \"X_V_MODEL_NO_EXPRESSION\": 41,\n \"41\": \"X_V_MODEL_NO_EXPRESSION\",\n \"X_V_MODEL_MALFORMED_EXPRESSION\": 42,\n \"42\": \"X_V_MODEL_MALFORMED_EXPRESSION\",\n \"X_V_MODEL_ON_SCOPE_VARIABLE\": 43,\n \"43\": \"X_V_MODEL_ON_SCOPE_VARIABLE\",\n \"X_V_MODEL_ON_PROPS\": 44,\n \"44\": \"X_V_MODEL_ON_PROPS\",\n \"X_V_MODEL_ON_CONST\": 45,\n \"45\": \"X_V_MODEL_ON_CONST\",\n \"X_INVALID_EXPRESSION\": 46,\n \"46\": \"X_INVALID_EXPRESSION\",\n \"X_KEEP_ALIVE_INVALID_CHILDREN\": 47,\n \"47\": \"X_KEEP_ALIVE_INVALID_CHILDREN\",\n \"X_PREFIX_ID_NOT_SUPPORTED\": 48,\n \"48\": \"X_PREFIX_ID_NOT_SUPPORTED\",\n \"X_MODULE_MODE_NOT_SUPPORTED\": 49,\n \"49\": \"X_MODULE_MODE_NOT_SUPPORTED\",\n \"X_CACHE_HANDLER_NOT_SUPPORTED\": 50,\n \"50\": \"X_CACHE_HANDLER_NOT_SUPPORTED\",\n \"X_SCOPE_ID_NOT_SUPPORTED\": 51,\n \"51\": \"X_SCOPE_ID_NOT_SUPPORTED\",\n \"X_VNODE_HOOKS\": 52,\n \"52\": \"X_VNODE_HOOKS\",\n \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\": 53,\n \"53\": \"X_V_BIND_INVALID_SAME_NAME_ARGUMENT\",\n \"__EXTEND_POINT__\": 54,\n \"54\": \"__EXTEND_POINT__\"\n};\nconst errorMessages = {\n // parse errors\n [0]: \"Illegal comment.\",\n [1]: \"CDATA section is allowed only in XML context.\",\n [2]: \"Duplicate attribute.\",\n [3]: \"End tag cannot have attributes.\",\n [4]: \"Illegal '/' in tags.\",\n [5]: \"Unexpected EOF in tag.\",\n [6]: \"Unexpected EOF in CDATA section.\",\n [7]: \"Unexpected EOF in comment.\",\n [8]: \"Unexpected EOF in script.\",\n [9]: \"Unexpected EOF in tag.\",\n [10]: \"Incorrectly closed comment.\",\n [11]: \"Incorrectly opened comment.\",\n [12]: \"Illegal tag name. Use '<' to print '<'.\",\n [13]: \"Attribute value was expected.\",\n [14]: \"End tag name was expected.\",\n [15]: \"Whitespace was expected.\",\n [16]: \"Unexpected '<!--' in comment.\",\n [17]: `Attribute name cannot contain U+0022 (\"), U+0027 ('), and U+003C (<).`,\n [18]: \"Unquoted attribute value cannot contain U+0022 (\\\"), U+0027 ('), U+003C (<), U+003D (=), and U+0060 (`).\",\n [19]: \"Attribute name cannot start with '='.\",\n [21]: \"'<?' is allowed only in XML context.\",\n [20]: `Unexpected null character.`,\n [22]: \"Illegal '/' in tags.\",\n // Vue-specific parse errors\n [23]: \"Invalid end tag.\",\n [24]: \"Element is missing end tag.\",\n [25]: \"Interpolation end sign was not found.\",\n [27]: \"End bracket for dynamic directive argument was not found. Note that dynamic directive argument cannot contain spaces.\",\n [26]: \"Legal directive name was expected.\",\n // transform errors\n [28]: `v-if/v-else-if is missing expression.`,\n [29]: `v-if/else branches must use unique keys.`,\n [30]: `v-else/v-else-if has no adjacent v-if or v-else-if.`,\n [31]: `v-for is missing expression.`,\n [32]: `v-for has invalid expression.`,\n [33]: `<template v-for> key should be placed on the <template> tag.`,\n [34]: `v-bind is missing expression.`,\n [53]: `v-bind with same-name shorthand only allows static argument.`,\n [35]: `v-on is missing expression.`,\n [36]: `Unexpected custom directive on <slot> outlet.`,\n [37]: `Mixed v-slot usage on both the component and nested <template>. When there are multiple named slots, all slots should use <template> syntax to avoid scope ambiguity.`,\n [38]: `Duplicate slot names found. `,\n [39]: `Extraneous children found when component already has explicitly named default slot. These children will be ignored.`,\n [40]: `v-slot can only be used on components or <template> tags.`,\n [41]: `v-model is missing expression.`,\n [42]: `v-model value must be a valid JavaScript member expression.`,\n [43]: `v-model cannot be used on v-for or v-slot scope variables because they are not writable.`,\n [44]: `v-model cannot be used on a prop, because local prop bindings are not writable.\nUse a v-bind binding combined with a v-on listener that emits update:x event instead.`,\n [45]: `v-model cannot be used on a const binding because it is not writable.`,\n [46]: `Error parsing JavaScript expression: `,\n [47]: `<KeepAlive> expects exactly one child component.`,\n [52]: `@vnode-* hooks in templates are no longer supported. Use the vue: prefix instead. For example, @vnode-mounted should be changed to @vue:mounted. @vnode-* hooks support has been removed in 3.4.`,\n // generic errors\n [48]: `\"prefixIdentifiers\" option is not supported in this build of compiler.`,\n [49]: `ES module mode is not supported in this build of compiler.`,\n [50]: `\"cacheHandlers\" option is only supported when the \"prefixIdentifiers\" option is enabled.`,\n [51]: `\"scopeId\" option is only supported in module mode.`,\n // just to fulfill types\n [54]: ``\n};\n\nfunction walkIdentifiers(root, onIdentifier, includeAll = false, parentStack = [], knownIds = /* @__PURE__ */ Object.create(null)) {\n {\n return;\n }\n}\nfunction isReferencedIdentifier(id, parent, parentStack) {\n {\n return false;\n }\n}\nfunction isInDestructureAssignment(parent, parentStack) {\n if (parent && (parent.type === \"ObjectProperty\" || parent.type === \"ArrayPattern\")) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"AssignmentExpression\") {\n return true;\n } else if (p.type !== \"ObjectProperty\" && !p.type.endsWith(\"Pattern\")) {\n break;\n }\n }\n }\n return false;\n}\nfunction isInNewExpression(parentStack) {\n let i = parentStack.length;\n while (i--) {\n const p = parentStack[i];\n if (p.type === \"NewExpression\") {\n return true;\n } else if (p.type !== \"MemberExpression\") {\n break;\n }\n }\n return false;\n}\nfunction walkFunctionParams(node, onIdent) {\n for (const p of node.params) {\n for (const id of extractIdentifiers(p)) {\n onIdent(id);\n }\n }\n}\nfunction walkBlockDeclarations(block, onIdent) {\n const body = block.type === \"SwitchCase\" ? block.consequent : block.body;\n for (const stmt of body) {\n if (stmt.type === \"VariableDeclaration\") {\n if (stmt.declare) continue;\n for (const decl of stmt.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n } else if (stmt.type === \"FunctionDeclaration\" || stmt.type === \"ClassDeclaration\") {\n if (stmt.declare || !stmt.id) continue;\n onIdent(stmt.id);\n } else if (isForStatement(stmt)) {\n walkForStatement(stmt, true, onIdent);\n } else if (stmt.type === \"SwitchStatement\") {\n walkSwitchStatement(stmt, true, onIdent);\n }\n }\n}\nfunction isForStatement(stmt) {\n return stmt.type === \"ForOfStatement\" || stmt.type === \"ForInStatement\" || stmt.type === \"ForStatement\";\n}\nfunction walkForStatement(stmt, isVar, onIdent) {\n const variable = stmt.type === \"ForStatement\" ? stmt.init : stmt.left;\n if (variable && variable.type === \"VariableDeclaration\" && (variable.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of variable.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n}\nfunction walkSwitchStatement(stmt, isVar, onIdent) {\n for (const cs of stmt.cases) {\n for (const stmt2 of cs.consequent) {\n if (stmt2.type === \"VariableDeclaration\" && (stmt2.kind === \"var\" ? isVar : !isVar)) {\n for (const decl of stmt2.declarations) {\n for (const id of extractIdentifiers(decl.id)) {\n onIdent(id);\n }\n }\n }\n }\n walkBlockDeclarations(cs, onIdent);\n }\n}\nfunction extractIdentifiers(param, nodes = []) {\n switch (param.type) {\n case \"Identifier\":\n nodes.push(param);\n break;\n case \"MemberExpression\":\n let object = param;\n while (object.type === \"MemberExpression\") {\n object = object.object;\n }\n nodes.push(object);\n break;\n case \"ObjectPattern\":\n for (const prop of param.properties) {\n if (prop.type === \"RestElement\") {\n extractIdentifiers(prop.argument, nodes);\n } else {\n extractIdentifiers(prop.value, nodes);\n }\n }\n break;\n case \"ArrayPattern\":\n param.elements.forEach((element) => {\n if (element) extractIdentifiers(element, nodes);\n });\n break;\n case \"RestElement\":\n extractIdentifiers(param.argument, nodes);\n break;\n case \"AssignmentPattern\":\n extractIdentifiers(param.left, nodes);\n break;\n }\n return nodes;\n}\nconst isFunctionType = (node) => {\n return /Function(?:Expression|Declaration)$|Method$/.test(node.type);\n};\nconst isStaticProperty = (node) => node && (node.type === \"ObjectProperty\" || node.type === \"ObjectMethod\") && !node.computed;\nconst isStaticPropertyKey = (node, parent) => isStaticProperty(parent) && parent.key === node;\nconst TS_NODE_TYPES = [\n \"TSAsExpression\",\n // foo as number\n \"TSTypeAssertion\",\n // (<number>foo)\n \"TSNonNullExpression\",\n // foo!\n \"TSInstantiationExpression\",\n // foo<string>\n \"TSSatisfiesExpression\"\n // foo satisfies T\n];\nfunction unwrapTSNode(node) {\n if (TS_NODE_TYPES.includes(node.type)) {\n return unwrapTSNode(node.expression);\n } else {\n return node;\n }\n}\n\nconst isStaticExp = (p) => p.type === 4 && p.isStatic;\nfunction isCoreComponent(tag) {\n switch (tag) {\n case \"Teleport\":\n case \"teleport\":\n return TELEPORT;\n case \"Suspense\":\n case \"suspense\":\n return SUSPENSE;\n case \"KeepAlive\":\n case \"keep-alive\":\n return KEEP_ALIVE;\n case \"BaseTransition\":\n case \"base-transition\":\n return BASE_TRANSITION;\n }\n}\nconst nonIdentifierRE = /^$|^\\d|[^\\$\\w\\xA0-\\uFFFF]/;\nconst isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);\nconst validFirstIdentCharRE = /[A-Za-z_$\\xA0-\\uFFFF]/;\nconst validIdentCharRE = /[\\.\\?\\w$\\xA0-\\uFFFF]/;\nconst whitespaceRE = /\\s+[.[]\\s*|\\s*[.[]\\s+/g;\nconst getExpSource = (exp) => exp.type === 4 ? exp.content : exp.loc.source;\nconst isMemberExpressionBrowser = (exp) => {\n const path = getExpSource(exp).trim().replace(whitespaceRE, (s) => s.trim());\n let state = 0 /* inMemberExp */;\n let stateStack = [];\n let currentOpenBracketCount = 0;\n let currentOpenParensCount = 0;\n let currentStringType = null;\n for (let i = 0; i < path.length; i++) {\n const char = path.charAt(i);\n switch (state) {\n case 0 /* inMemberExp */:\n if (char === \"[\") {\n stateStack.push(state);\n state = 1 /* inBrackets */;\n currentOpenBracketCount++;\n } else if (char === \"(\") {\n stateStack.push(state);\n state = 2 /* inParens */;\n currentOpenParensCount++;\n } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {\n return false;\n }\n break;\n case 1 /* inBrackets */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `[`) {\n currentOpenBracketCount++;\n } else if (char === `]`) {\n if (!--currentOpenBracketCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 2 /* inParens */:\n if (char === `'` || char === `\"` || char === \"`\") {\n stateStack.push(state);\n state = 3 /* inString */;\n currentStringType = char;\n } else if (char === `(`) {\n currentOpenParensCount++;\n } else if (char === `)`) {\n if (i === path.length - 1) {\n return false;\n }\n if (!--currentOpenParensCount) {\n state = stateStack.pop();\n }\n }\n break;\n case 3 /* inString */:\n if (char === currentStringType) {\n state = stateStack.pop();\n currentStringType = null;\n }\n break;\n }\n }\n return !currentOpenBracketCount && !currentOpenParensCount;\n};\nconst isMemberExpressionNode = NOOP ;\nconst isMemberExpression = isMemberExpressionBrowser ;\nconst fnExpRE = /^\\s*(?:async\\s*)?(?:\\([^)]*?\\)|[\\w$_]+)\\s*(?::[^=]+)?=>|^\\s*(?:async\\s+)?function(?:\\s+[\\w$]+)?\\s*\\(/;\nconst isFnExpressionBrowser = (exp) => fnExpRE.test(getExpSource(exp));\nconst isFnExpressionNode = NOOP ;\nconst isFnExpression = isFnExpressionBrowser ;\nfunction advancePositionWithClone(pos, source, numberOfCharacters = source.length) {\n return advancePositionWithMutation(\n {\n offset: pos.offset,\n line: pos.line,\n column: pos.column\n },\n source,\n numberOfCharacters\n );\n}\nfunction advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {\n let linesCount = 0;\n let lastNewLinePos = -1;\n for (let i = 0; i < numberOfCharacters; i++) {\n if (source.charCodeAt(i) === 10) {\n linesCount++;\n lastNewLinePos = i;\n }\n }\n pos.offset += numberOfCharacters;\n pos.line += linesCount;\n pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;\n return pos;\n}\nfunction assert(condition, msg) {\n if (!condition) {\n throw new Error(msg || `unexpected compiler condition`);\n }\n}\nfunction findDir(node, name, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (allowEmpty || p.exp) && (isString(name) ? p.name === name : name.test(p.name))) {\n return p;\n }\n }\n}\nfunction findProp(node, name, dynamicOnly = false, allowEmpty = false) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (dynamicOnly) continue;\n if (p.name === name && (p.value || allowEmpty)) {\n return p;\n }\n } else if (p.name === \"bind\" && (p.exp || allowEmpty) && isStaticArgOf(p.arg, name)) {\n return p;\n }\n }\n}\nfunction isStaticArgOf(arg, name) {\n return !!(arg && isStaticExp(arg) && arg.content === name);\n}\nfunction hasDynamicKeyVBind(node) {\n return node.props.some(\n (p) => p.type === 7 && p.name === \"bind\" && (!p.arg || // v-bind=\"obj\"\n p.arg.type !== 4 || // v-bind:[_ctx.foo]\n !p.arg.isStatic)\n // v-bind:[foo]\n );\n}\nfunction isText$1(node) {\n return node.type === 5 || node.type === 2;\n}\nfunction isVPre(p) {\n return p.type === 7 && p.name === \"pre\";\n}\nfunction isVSlot(p) {\n return p.type === 7 && p.name === \"slot\";\n}\nfunction isTemplateNode(node) {\n return node.type === 1 && node.tagType === 3;\n}\nfunction isSlotOutlet(node) {\n return node.type === 1 && node.tagType === 2;\n}\nconst propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);\nfunction getUnnormalizedProps(props, callPath = []) {\n if (props && !isString(props) && props.type === 14) {\n const callee = props.callee;\n if (!isString(callee) && propsHelperSet.has(callee)) {\n return getUnnormalizedProps(\n props.arguments[0],\n callPath.concat(props)\n );\n }\n }\n return [props, callPath];\n}\nfunction injectProp(node, prop, context) {\n let propsWithInjection;\n let props = node.type === 13 ? node.props : node.arguments[2];\n let callPath = [];\n let parentCall;\n if (props && !isString(props) && props.type === 14) {\n const ret = getUnnormalizedProps(props);\n props = ret[0];\n callPath = ret[1];\n parentCall = callPath[callPath.length - 1];\n }\n if (props == null || isString(props)) {\n propsWithInjection = createObjectExpression([prop]);\n } else if (props.type === 14) {\n const first = props.arguments[0];\n if (!isString(first) && first.type === 15) {\n if (!hasProp(prop, first)) {\n first.properties.unshift(prop);\n }\n } else {\n if (props.callee === TO_HANDLERS) {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n } else {\n props.arguments.unshift(createObjectExpression([prop]));\n }\n }\n !propsWithInjection && (propsWithInjection = props);\n } else if (props.type === 15) {\n if (!hasProp(prop, props)) {\n props.properties.unshift(prop);\n }\n propsWithInjection = props;\n } else {\n propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [\n createObjectExpression([prop]),\n props\n ]);\n if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {\n parentCall = callPath[callPath.length - 2];\n }\n }\n if (node.type === 13) {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.props = propsWithInjection;\n }\n } else {\n if (parentCall) {\n parentCall.arguments[0] = propsWithInjection;\n } else {\n node.arguments[2] = propsWithInjection;\n }\n }\n}\nfunction hasProp(prop, props) {\n let result = false;\n if (prop.key.type === 4) {\n const propKeyName = prop.key.content;\n result = props.properties.some(\n (p) => p.key.type === 4 && p.key.content === propKeyName\n );\n }\n return result;\n}\nfunction toValidAssetId(name, type) {\n return `_${type}_${name.replace(/[^\\w]/g, (searchValue, replaceValue) => {\n return searchValue === \"-\" ? \"_\" : name.charCodeAt(replaceValue).toString();\n })}`;\n}\nfunction hasScopeRef(node, ids) {\n if (!node || Object.keys(ids).length === 0) {\n return false;\n }\n switch (node.type) {\n case 1:\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && (hasScopeRef(p.arg, ids) || hasScopeRef(p.exp, ids))) {\n return true;\n }\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 11:\n if (hasScopeRef(node.source, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 9:\n return node.branches.some((b) => hasScopeRef(b, ids));\n case 10:\n if (hasScopeRef(node.condition, ids)) {\n return true;\n }\n return node.children.some((c) => hasScopeRef(c, ids));\n case 4:\n return !node.isStatic && isSimpleIdentifier(node.content) && !!ids[node.content];\n case 8:\n return node.children.some((c) => isObject(c) && hasScopeRef(c, ids));\n case 5:\n case 12:\n return hasScopeRef(node.content, ids);\n case 2:\n case 3:\n case 20:\n return false;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) ;\n return false;\n }\n}\nfunction getMemoedVNodeCall(node) {\n if (node.type === 14 && node.callee === WITH_MEMO) {\n return node.arguments[1].returns;\n } else {\n return node;\n }\n}\nconst forAliasRE = /([\\s\\S]*?)\\s+(?:in|of)\\s+(\\S[\\s\\S]*)/;\nfunction isAllWhitespace(str) {\n for (let i = 0; i < str.length; i++) {\n if (!isWhitespace(str.charCodeAt(i))) {\n return false;\n }\n }\n return true;\n}\nfunction isWhitespaceText(node) {\n return node.type === 2 && isAllWhitespace(node.content) || node.type === 12 && isWhitespaceText(node.content);\n}\nfunction isCommentOrWhitespace(node) {\n return node.type === 3 || isWhitespaceText(node);\n}\n\nconst defaultParserOptions = {\n parseMode: \"base\",\n ns: 0,\n delimiters: [`{{`, `}}`],\n getNamespace: () => 0,\n isVoidTag: NO,\n isPreTag: NO,\n isIgnoreNewlineTag: NO,\n isCustomElement: NO,\n onError: defaultOnError,\n onWarn: defaultOnWarn,\n comments: !!(process.env.NODE_ENV !== \"production\"),\n prefixIdentifiers: false\n};\nlet currentOptions = defaultParserOptions;\nlet currentRoot = null;\nlet currentInput = \"\";\nlet currentOpenTag = null;\nlet currentProp = null;\nlet currentAttrValue = \"\";\nlet currentAttrStartIndex = -1;\nlet currentAttrEndIndex = -1;\nlet inPre = 0;\nlet inVPre = false;\nlet currentVPreBoundary = null;\nconst stack = [];\nconst tokenizer = new Tokenizer(stack, {\n onerr: emitError,\n ontext(start, end) {\n onText(getSlice(start, end), start, end);\n },\n ontextentity(char, start, end) {\n onText(char, start, end);\n },\n oninterpolation(start, end) {\n if (inVPre) {\n return onText(getSlice(start, end), start, end);\n }\n let innerStart = start + tokenizer.delimiterOpen.length;\n let innerEnd = end - tokenizer.delimiterClose.length;\n while (isWhitespace(currentInput.charCodeAt(innerStart))) {\n innerStart++;\n }\n while (isWhitespace(currentInput.charCodeAt(innerEnd - 1))) {\n innerEnd--;\n }\n let exp = getSlice(innerStart, innerEnd);\n if (exp.includes(\"&\")) {\n {\n exp = currentOptions.decodeEntities(exp, false);\n }\n }\n addNode({\n type: 5,\n content: createExp(exp, false, getLoc(innerStart, innerEnd)),\n loc: getLoc(start, end)\n });\n },\n onopentagname(start, end) {\n const name = getSlice(start, end);\n currentOpenTag = {\n type: 1,\n tag: name,\n ns: currentOptions.getNamespace(name, stack[0], currentOptions.ns),\n tagType: 0,\n // will be refined on tag close\n props: [],\n children: [],\n loc: getLoc(start - 1, end),\n codegenNode: void 0\n };\n },\n onopentagend(end) {\n endOpenTag(end);\n },\n onclosetag(start, end) {\n const name = getSlice(start, end);\n if (!currentOptions.isVoidTag(name)) {\n let found = false;\n for (let i = 0; i < stack.length; i++) {\n const e = stack[i];\n if (e.tag.toLowerCase() === name.toLowerCase()) {\n found = true;\n if (i > 0) {\n emitError(24, stack[0].loc.start.offset);\n }\n for (let j = 0; j <= i; j++) {\n const el = stack.shift();\n onCloseTag(el, end, j < i);\n }\n break;\n }\n }\n if (!found) {\n emitError(23, backTrack(start, 60));\n }\n }\n },\n onselfclosingtag(end) {\n const name = currentOpenTag.tag;\n currentOpenTag.isSelfClosing = true;\n endOpenTag(end);\n if (stack[0] && stack[0].tag === name) {\n onCloseTag(stack.shift(), end);\n }\n },\n onattribname(start, end) {\n currentProp = {\n type: 6,\n name: getSlice(start, end),\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n },\n ondirname(start, end) {\n const raw = getSlice(start, end);\n const name = raw === \".\" || raw === \":\" ? \"bind\" : raw === \"@\" ? \"on\" : raw === \"#\" ? \"slot\" : raw.slice(2);\n if (!inVPre && name === \"\") {\n emitError(26, start);\n }\n if (inVPre || name === \"\") {\n currentProp = {\n type: 6,\n name: raw,\n nameLoc: getLoc(start, end),\n value: void 0,\n loc: getLoc(start)\n };\n } else {\n currentProp = {\n type: 7,\n name,\n rawName: raw,\n exp: void 0,\n arg: void 0,\n modifiers: raw === \".\" ? [createSimpleExpression(\"prop\")] : [],\n loc: getLoc(start)\n };\n if (name === \"pre\") {\n inVPre = tokenizer.inVPre = true;\n currentVPreBoundary = currentOpenTag;\n const props = currentOpenTag.props;\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7) {\n props[i] = dirToAttr(props[i]);\n }\n }\n }\n }\n },\n ondirarg(start, end) {\n if (start === end) return;\n const arg = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += arg;\n setLocEnd(currentProp.nameLoc, end);\n } else {\n const isStatic = arg[0] !== `[`;\n currentProp.arg = createExp(\n isStatic ? arg : arg.slice(1, -1),\n isStatic,\n getLoc(start, end),\n isStatic ? 3 : 0\n );\n }\n },\n ondirmodifier(start, end) {\n const mod = getSlice(start, end);\n if (inVPre && !isVPre(currentProp)) {\n currentProp.name += \".\" + mod;\n setLocEnd(currentProp.nameLoc, end);\n } else if (currentProp.name === \"slot\") {\n const arg = currentProp.arg;\n if (arg) {\n arg.content += \".\" + mod;\n setLocEnd(arg.loc, end);\n }\n } else {\n const exp = createSimpleExpression(mod, true, getLoc(start, end));\n currentProp.modifiers.push(exp);\n }\n },\n onattribdata(start, end) {\n currentAttrValue += getSlice(start, end);\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribentity(char, start, end) {\n currentAttrValue += char;\n if (currentAttrStartIndex < 0) currentAttrStartIndex = start;\n currentAttrEndIndex = end;\n },\n onattribnameend(end) {\n const start = currentProp.loc.start.offset;\n const name = getSlice(start, end);\n if (currentProp.type === 7) {\n currentProp.rawName = name;\n }\n if (currentOpenTag.props.some(\n (p) => (p.type === 7 ? p.rawName : p.name) === name\n )) {\n emitError(2, start);\n }\n },\n onattribend(quote, end) {\n if (currentOpenTag && currentProp) {\n setLocEnd(currentProp.loc, end);\n if (quote !== 0) {\n if (currentAttrValue.includes(\"&\")) {\n currentAttrValue = currentOptions.decodeEntities(\n currentAttrValue,\n true\n );\n }\n if (currentProp.type === 6) {\n if (currentProp.name === \"class\") {\n currentAttrValue = condense(currentAttrValue).trim();\n }\n if (quote === 1 && !currentAttrValue) {\n emitError(13, end);\n }\n currentProp.value = {\n type: 2,\n content: currentAttrValue,\n loc: quote === 1 ? getLoc(currentAttrStartIndex, currentAttrEndIndex) : getLoc(currentAttrStartIndex - 1, currentAttrEndIndex + 1)\n };\n if (tokenizer.inSFCRoot && currentOpenTag.tag === \"template\" && currentProp.name === \"lang\" && currentAttrValue && currentAttrValue !== \"html\") {\n tokenizer.enterRCDATA(toCharCodes(`</template`), 0);\n }\n } else {\n let expParseMode = 0 /* Normal */;\n currentProp.exp = createExp(\n currentAttrValue,\n false,\n getLoc(currentAttrStartIndex, currentAttrEndIndex),\n 0,\n expParseMode\n );\n if (currentProp.name === \"for\") {\n currentProp.forParseResult = parseForExpression(currentProp.exp);\n }\n let syncIndex = -1;\n if (currentProp.name === \"bind\" && (syncIndex = currentProp.modifiers.findIndex(\n (mod) => mod.content === \"sync\"\n )) > -1 && checkCompatEnabled(\n \"COMPILER_V_BIND_SYNC\",\n currentOptions,\n currentProp.loc,\n currentProp.arg.loc.source\n )) {\n currentProp.name = \"model\";\n currentProp.modifiers.splice(syncIndex, 1);\n }\n }\n }\n if (currentProp.type !== 7 || currentProp.name !== \"pre\") {\n currentOpenTag.props.push(currentProp);\n }\n }\n currentAttrValue = \"\";\n currentAttrStartIndex = currentAttrEndIndex = -1;\n },\n oncomment(start, end) {\n if (currentOptions.comments) {\n addNode({\n type: 3,\n content: getSlice(start, end),\n loc: getLoc(start - 4, end + 3)\n });\n }\n },\n onend() {\n const end = currentInput.length;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && tokenizer.state !== 1) {\n switch (tokenizer.state) {\n case 5:\n case 8:\n emitError(5, end);\n break;\n case 3:\n case 4:\n emitError(\n 25,\n tokenizer.sectionStart\n );\n break;\n case 28:\n if (tokenizer.currentSequence === Sequences.CdataEnd) {\n emitError(6, end);\n } else {\n emitError(7, end);\n }\n break;\n case 6:\n case 7:\n case 9:\n case 11:\n case 12:\n case 13:\n case 14:\n case 15:\n case 16:\n case 17:\n case 18:\n case 19:\n // \"\n case 20:\n // '\n case 21:\n emitError(9, end);\n break;\n }\n }\n for (let index = 0; index < stack.length; index++) {\n onCloseTag(stack[index], end - 1);\n emitError(24, stack[index].loc.start.offset);\n }\n },\n oncdata(start, end) {\n if (stack[0].ns !== 0) {\n onText(getSlice(start, end), start, end);\n } else {\n emitError(1, start - 9);\n }\n },\n onprocessinginstruction(start) {\n if ((stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n emitError(\n 21,\n start - 1\n );\n }\n }\n});\nconst forIteratorRE = /,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/;\nconst stripParensRE = /^\\(|\\)$/g;\nfunction parseForExpression(input) {\n const loc = input.loc;\n const exp = input.content;\n const inMatch = exp.match(forAliasRE);\n if (!inMatch) return;\n const [, LHS, RHS] = inMatch;\n const createAliasExpression = (content, offset, asParam = false) => {\n const start = loc.start.offset + offset;\n const end = start + content.length;\n return createExp(\n content,\n false,\n getLoc(start, end),\n 0,\n asParam ? 1 /* Params */ : 0 /* Normal */\n );\n };\n const result = {\n source: createAliasExpression(RHS.trim(), exp.indexOf(RHS, LHS.length)),\n value: void 0,\n key: void 0,\n index: void 0,\n finalized: false\n };\n let valueContent = LHS.trim().replace(stripParensRE, \"\").trim();\n const trimmedOffset = LHS.indexOf(valueContent);\n const iteratorMatch = valueContent.match(forIteratorRE);\n if (iteratorMatch) {\n valueContent = valueContent.replace(forIteratorRE, \"\").trim();\n const keyContent = iteratorMatch[1].trim();\n let keyOffset;\n if (keyContent) {\n keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);\n result.key = createAliasExpression(keyContent, keyOffset, true);\n }\n if (iteratorMatch[2]) {\n const indexContent = iteratorMatch[2].trim();\n if (indexContent) {\n result.index = createAliasExpression(\n indexContent,\n exp.indexOf(\n indexContent,\n result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length\n ),\n true\n );\n }\n }\n }\n if (valueContent) {\n result.value = createAliasExpression(valueContent, trimmedOffset, true);\n }\n return result;\n}\nfunction getSlice(start, end) {\n return currentInput.slice(start, end);\n}\nfunction endOpenTag(end) {\n if (tokenizer.inSFCRoot) {\n currentOpenTag.innerLoc = getLoc(end + 1, end + 1);\n }\n addNode(currentOpenTag);\n const { tag, ns } = currentOpenTag;\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre++;\n }\n if (currentOptions.isVoidTag(tag)) {\n onCloseTag(currentOpenTag, end);\n } else {\n stack.unshift(currentOpenTag);\n if (ns === 1 || ns === 2) {\n tokenizer.inXML = true;\n }\n }\n currentOpenTag = null;\n}\nfunction onText(content, start, end) {\n {\n const tag = stack[0] && stack[0].tag;\n if (tag !== \"script\" && tag !== \"style\" && content.includes(\"&\")) {\n content = currentOptions.decodeEntities(content, false);\n }\n }\n const parent = stack[0] || currentRoot;\n const lastNode = parent.children[parent.children.length - 1];\n if (lastNode && lastNode.type === 2) {\n lastNode.content += content;\n setLocEnd(lastNode.loc, end);\n } else {\n parent.children.push({\n type: 2,\n content,\n loc: getLoc(start, end)\n });\n }\n}\nfunction onCloseTag(el, end, isImplied = false) {\n if (isImplied) {\n setLocEnd(el.loc, backTrack(end, 60));\n } else {\n setLocEnd(el.loc, lookAhead(end, 62) + 1);\n }\n if (tokenizer.inSFCRoot) {\n if (el.children.length) {\n el.innerLoc.end = extend({}, el.children[el.children.length - 1].loc.end);\n } else {\n el.innerLoc.end = extend({}, el.innerLoc.start);\n }\n el.innerLoc.source = getSlice(\n el.innerLoc.start.offset,\n el.innerLoc.end.offset\n );\n }\n const { tag, ns, children } = el;\n if (!inVPre) {\n if (tag === \"slot\") {\n el.tagType = 2;\n } else if (isFragmentTemplate(el)) {\n el.tagType = 3;\n } else if (isComponent(el)) {\n el.tagType = 1;\n }\n }\n if (!tokenizer.inRCDATA) {\n el.children = condenseWhitespace(children);\n }\n if (ns === 0 && currentOptions.isIgnoreNewlineTag(tag)) {\n const first = children[0];\n if (first && first.type === 2) {\n first.content = first.content.replace(/^\\r?\\n/, \"\");\n }\n }\n if (ns === 0 && currentOptions.isPreTag(tag)) {\n inPre--;\n }\n if (currentVPreBoundary === el) {\n inVPre = tokenizer.inVPre = false;\n currentVPreBoundary = null;\n }\n if (tokenizer.inXML && (stack[0] ? stack[0].ns : currentOptions.ns) === 0) {\n tokenizer.inXML = false;\n }\n {\n const props = el.props;\n if (!!(process.env.NODE_ENV !== \"production\") && isCompatEnabled(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions\n )) {\n let hasIf = false;\n let hasFor = false;\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 7) {\n if (p.name === \"if\") {\n hasIf = true;\n } else if (p.name === \"for\") {\n hasFor = true;\n }\n }\n if (hasIf && hasFor) {\n warnDeprecation(\n \"COMPILER_V_IF_V_FOR_PRECEDENCE\",\n currentOptions,\n el.loc\n );\n break;\n }\n }\n }\n if (!tokenizer.inSFCRoot && isCompatEnabled(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions\n ) && el.tag === \"template\" && !isFragmentTemplate(el)) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\n \"COMPILER_NATIVE_TEMPLATE\",\n currentOptions,\n el.loc\n );\n const parent = stack[0] || currentRoot;\n const index = parent.children.indexOf(el);\n parent.children.splice(index, 1, ...el.children);\n }\n const inlineTemplateProp = props.find(\n (p) => p.type === 6 && p.name === \"inline-template\"\n );\n if (inlineTemplateProp && checkCompatEnabled(\n \"COMPILER_INLINE_TEMPLATE\",\n currentOptions,\n inlineTemplateProp.loc\n ) && el.children.length) {\n inlineTemplateProp.value = {\n type: 2,\n content: getSlice(\n el.children[0].loc.start.offset,\n el.children[el.children.length - 1].loc.end.offset\n ),\n loc: inlineTemplateProp.loc\n };\n }\n }\n}\nfunction lookAhead(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i < currentInput.length - 1) i++;\n return i;\n}\nfunction backTrack(index, c) {\n let i = index;\n while (currentInput.charCodeAt(i) !== c && i >= 0) i--;\n return i;\n}\nconst specialTemplateDir = /* @__PURE__ */ new Set([\"if\", \"else\", \"else-if\", \"for\", \"slot\"]);\nfunction isFragmentTemplate({ tag, props }) {\n if (tag === \"template\") {\n for (let i = 0; i < props.length; i++) {\n if (props[i].type === 7 && specialTemplateDir.has(props[i].name)) {\n return true;\n }\n }\n }\n return false;\n}\nfunction isComponent({ tag, props }) {\n if (currentOptions.isCustomElement(tag)) {\n return false;\n }\n if (tag === \"component\" || isUpperCase(tag.charCodeAt(0)) || isCoreComponent(tag) || currentOptions.isBuiltInComponent && currentOptions.isBuiltInComponent(tag) || currentOptions.isNativeTag && !currentOptions.isNativeTag(tag)) {\n return true;\n }\n for (let i = 0; i < props.length; i++) {\n const p = props[i];\n if (p.type === 6) {\n if (p.name === \"is\" && p.value) {\n if (p.value.content.startsWith(\"vue:\")) {\n return true;\n } else if (checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n } else if (// :is on plain element - only treat as component in compat mode\n p.name === \"bind\" && isStaticArgOf(p.arg, \"is\") && checkCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n currentOptions,\n p.loc\n )) {\n return true;\n }\n }\n return false;\n}\nfunction isUpperCase(c) {\n return c > 64 && c < 91;\n}\nconst windowsNewlineRE = /\\r\\n/g;\nfunction condenseWhitespace(nodes) {\n const shouldCondense = currentOptions.whitespace !== \"preserve\";\n let removedWhitespace = false;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (node.type === 2) {\n if (!inPre) {\n if (isAllWhitespace(node.content)) {\n const prev = nodes[i - 1] && nodes[i - 1].type;\n const next = nodes[i + 1] && nodes[i + 1].type;\n if (!prev || !next || shouldCondense && (prev === 3 && (next === 3 || next === 1) || prev === 1 && (next === 3 || next === 1 && hasNewlineChar(node.content)))) {\n removedWhitespace = true;\n nodes[i] = null;\n } else {\n node.content = \" \";\n }\n } else if (shouldCondense) {\n node.content = condense(node.content);\n }\n } else {\n node.content = node.content.replace(windowsNewlineRE, \"\\n\");\n }\n }\n }\n return removedWhitespace ? nodes.filter(Boolean) : nodes;\n}\nfunction hasNewlineChar(str) {\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c === 10 || c === 13) {\n return true;\n }\n }\n return false;\n}\nfunction condense(str) {\n let ret = \"\";\n let prevCharIsWhitespace = false;\n for (let i = 0; i < str.length; i++) {\n if (isWhitespace(str.charCodeAt(i))) {\n if (!prevCharIsWhitespace) {\n ret += \" \";\n prevCharIsWhitespace = true;\n }\n } else {\n ret += str[i];\n prevCharIsWhitespace = false;\n }\n }\n return ret;\n}\nfunction addNode(node) {\n (stack[0] || currentRoot).children.push(node);\n}\nfunction getLoc(start, end) {\n return {\n start: tokenizer.getPos(start),\n // @ts-expect-error allow late attachment\n end: end == null ? end : tokenizer.getPos(end),\n // @ts-expect-error allow late attachment\n source: end == null ? end : getSlice(start, end)\n };\n}\nfunction cloneLoc(loc) {\n return getLoc(loc.start.offset, loc.end.offset);\n}\nfunction setLocEnd(loc, end) {\n loc.end = tokenizer.getPos(end);\n loc.source = getSlice(loc.start.offset, end);\n}\nfunction dirToAttr(dir) {\n const attr = {\n type: 6,\n name: dir.rawName,\n nameLoc: getLoc(\n dir.loc.start.offset,\n dir.loc.start.offset + dir.rawName.length\n ),\n value: void 0,\n loc: dir.loc\n };\n if (dir.exp) {\n const loc = dir.exp.loc;\n if (loc.end.offset < dir.loc.end.offset) {\n loc.start.offset--;\n loc.start.column--;\n loc.end.offset++;\n loc.end.column++;\n }\n attr.value = {\n type: 2,\n content: dir.exp.content,\n loc\n };\n }\n return attr;\n}\nfunction createExp(content, isStatic = false, loc, constType = 0, parseMode = 0 /* Normal */) {\n const exp = createSimpleExpression(content, isStatic, loc, constType);\n return exp;\n}\nfunction emitError(code, index, message) {\n currentOptions.onError(\n createCompilerError(code, getLoc(index, index), void 0, message)\n );\n}\nfunction reset() {\n tokenizer.reset();\n currentOpenTag = null;\n currentProp = null;\n currentAttrValue = \"\";\n currentAttrStartIndex = -1;\n currentAttrEndIndex = -1;\n stack.length = 0;\n}\nfunction baseParse(input, options) {\n reset();\n currentInput = input;\n currentOptions = extend({}, defaultParserOptions);\n if (options) {\n let key;\n for (key in options) {\n if (options[key] != null) {\n currentOptions[key] = options[key];\n }\n }\n }\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!currentOptions.decodeEntities) {\n throw new Error(\n `[@vue/compiler-core] decodeEntities option is required in browser builds.`\n );\n }\n }\n tokenizer.mode = currentOptions.parseMode === \"html\" ? 1 : currentOptions.parseMode === \"sfc\" ? 2 : 0;\n tokenizer.inXML = currentOptions.ns === 1 || currentOptions.ns === 2;\n const delimiters = options && options.delimiters;\n if (delimiters) {\n tokenizer.delimiterOpen = toCharCodes(delimiters[0]);\n tokenizer.delimiterClose = toCharCodes(delimiters[1]);\n }\n const root = currentRoot = createRoot([], input);\n tokenizer.parse(currentInput);\n root.loc = getLoc(0, input.length);\n root.children = condenseWhitespace(root.children);\n currentRoot = null;\n return root;\n}\n\nfunction cacheStatic(root, context) {\n walk(\n root,\n void 0,\n context,\n // Root node is unfortunately non-hoistable due to potential parent\n // fallthrough attributes.\n !!getSingleElementRoot(root)\n );\n}\nfunction getSingleElementRoot(root) {\n const children = root.children.filter((x) => x.type !== 3);\n return children.length === 1 && children[0].type === 1 && !isSlotOutlet(children[0]) ? children[0] : null;\n}\nfunction walk(node, parent, context, doNotHoistNode = false, inFor = false) {\n const { children } = node;\n const toCache = [];\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (child.type === 1 && child.tagType === 0) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType > 0) {\n if (constantType >= 2) {\n child.codegenNode.patchFlag = -1;\n toCache.push(child);\n continue;\n }\n } else {\n const codegenNode = child.codegenNode;\n if (codegenNode.type === 13) {\n const flag = codegenNode.patchFlag;\n if ((flag === void 0 || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {\n const props = getNodeProps(child);\n if (props) {\n codegenNode.props = context.hoist(props);\n }\n }\n if (codegenNode.dynamicProps) {\n codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);\n }\n }\n }\n } else if (child.type === 12) {\n const constantType = doNotHoistNode ? 0 : getConstantType(child, context);\n if (constantType >= 2) {\n if (child.codegenNode.type === 14 && child.codegenNode.arguments.length > 0) {\n child.codegenNode.arguments.push(\n -1 + (!!(process.env.NODE_ENV !== \"production\") ? ` /* ${PatchFlagNames[-1]} */` : ``)\n );\n }\n toCache.push(child);\n continue;\n }\n }\n if (child.type === 1) {\n const isComponent = child.tagType === 1;\n if (isComponent) {\n context.scopes.vSlot++;\n }\n walk(child, node, context, false, inFor);\n if (isComponent) {\n context.scopes.vSlot--;\n }\n } else if (child.type === 11) {\n walk(child, node, context, child.children.length === 1, true);\n } else if (child.type === 9) {\n for (let i2 = 0; i2 < child.branches.length; i2++) {\n walk(\n child.branches[i2],\n node,\n context,\n child.branches[i2].children.length === 1,\n inFor\n );\n }\n }\n }\n let cachedAsArray = false;\n if (toCache.length === children.length && node.type === 1) {\n if (node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray(node.codegenNode.children)) {\n node.codegenNode.children = getCacheExpression(\n createArrayExpression(node.codegenNode.children)\n );\n cachedAsArray = true;\n } else if (node.tagType === 1 && node.codegenNode && node.codegenNode.type === 13 && node.codegenNode.children && !isArray(node.codegenNode.children) && node.codegenNode.children.type === 15) {\n const slot = getSlotNode(node.codegenNode, \"default\");\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n } else if (node.tagType === 3 && parent && parent.type === 1 && parent.tagType === 1 && parent.codegenNode && parent.codegenNode.type === 13 && parent.codegenNode.children && !isArray(parent.codegenNode.children) && parent.codegenNode.children.type === 15) {\n const slotName = findDir(node, \"slot\", true);\n const slot = slotName && slotName.arg && getSlotNode(parent.codegenNode, slotName.arg);\n if (slot) {\n slot.returns = getCacheExpression(\n createArrayExpression(slot.returns)\n );\n cachedAsArray = true;\n }\n }\n }\n if (!cachedAsArray) {\n for (const child of toCache) {\n child.codegenNode = context.cache(child.codegenNode);\n }\n }\n function getCacheExpression(value) {\n const exp = context.cache(value);\n exp.needArraySpread = true;\n return exp;\n }\n function getSlotNode(node2, name) {\n if (node2.children && !isArray(node2.children) && node2.children.type === 15) {\n const slot = node2.children.properties.find(\n (p) => p.key === name || p.key.content === name\n );\n return slot && slot.value;\n }\n }\n if (toCache.length && context.transformHoist) {\n context.transformHoist(children, context, node);\n }\n}\nfunction getConstantType(node, context) {\n const { constantCache } = context;\n switch (node.type) {\n case 1:\n if (node.tagType !== 0) {\n return 0;\n }\n const cached = constantCache.get(node);\n if (cached !== void 0) {\n return cached;\n }\n const codegenNode = node.codegenNode;\n if (codegenNode.type !== 13) {\n return 0;\n }\n if (codegenNode.isBlock && node.tag !== \"svg\" && node.tag !== \"foreignObject\" && node.tag !== \"math\") {\n return 0;\n }\n if (codegenNode.patchFlag === void 0) {\n let returnType2 = 3;\n const generatedPropsType = getGeneratedPropsConstantType(node, context);\n if (generatedPropsType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (generatedPropsType < returnType2) {\n returnType2 = generatedPropsType;\n }\n for (let i = 0; i < node.children.length; i++) {\n const childType = getConstantType(node.children[i], context);\n if (childType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (childType < returnType2) {\n returnType2 = childType;\n }\n }\n if (returnType2 > 1) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7 && p.name === \"bind\" && p.exp) {\n const expType = getConstantType(p.exp, context);\n if (expType === 0) {\n constantCache.set(node, 0);\n return 0;\n }\n if (expType < returnType2) {\n returnType2 = expType;\n }\n }\n }\n }\n if (codegenNode.isBlock) {\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 7) {\n constantCache.set(node, 0);\n return 0;\n }\n }\n context.removeHelper(OPEN_BLOCK);\n context.removeHelper(\n getVNodeBlockHelper(context.inSSR, codegenNode.isComponent)\n );\n codegenNode.isBlock = false;\n context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));\n }\n constantCache.set(node, returnType2);\n return returnType2;\n } else {\n constantCache.set(node, 0);\n return 0;\n }\n case 2:\n case 3:\n return 3;\n case 9:\n case 11:\n case 10:\n return 0;\n case 5:\n case 12:\n return getConstantType(node.content, context);\n case 4:\n return node.constType;\n case 8:\n let returnType = 3;\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (isString(child) || isSymbol(child)) {\n continue;\n }\n const childType = getConstantType(child, context);\n if (childType === 0) {\n return 0;\n } else if (childType < returnType) {\n returnType = childType;\n }\n }\n return returnType;\n case 20:\n return 2;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) ;\n return 0;\n }\n}\nconst allowHoistedHelperSet = /* @__PURE__ */ new Set([\n NORMALIZE_CLASS,\n NORMALIZE_STYLE,\n NORMALIZE_PROPS,\n GUARD_REACTIVE_PROPS\n]);\nfunction getConstantTypeOfHelperCall(value, context) {\n if (value.type === 14 && !isString(value.callee) && allowHoistedHelperSet.has(value.callee)) {\n const arg = value.arguments[0];\n if (arg.type === 4) {\n return getConstantType(arg, context);\n } else if (arg.type === 14) {\n return getConstantTypeOfHelperCall(arg, context);\n }\n }\n return 0;\n}\nfunction getGeneratedPropsConstantType(node, context) {\n let returnType = 3;\n const props = getNodeProps(node);\n if (props && props.type === 15) {\n const { properties } = props;\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n const keyType = getConstantType(key, context);\n if (keyType === 0) {\n return keyType;\n }\n if (keyType < returnType) {\n returnType = keyType;\n }\n let valueType;\n if (value.type === 4) {\n valueType = getConstantType(value, context);\n } else if (value.type === 14) {\n valueType = getConstantTypeOfHelperCall(value, context);\n } else {\n valueType = 0;\n }\n if (valueType === 0) {\n return valueType;\n }\n if (valueType < returnType) {\n returnType = valueType;\n }\n }\n }\n return returnType;\n}\nfunction getNodeProps(node) {\n const codegenNode = node.codegenNode;\n if (codegenNode.type === 13) {\n return codegenNode.props;\n }\n}\n\nfunction createTransformContext(root, {\n filename = \"\",\n prefixIdentifiers = false,\n hoistStatic = false,\n hmr = false,\n cacheHandlers = false,\n nodeTransforms = [],\n directiveTransforms = {},\n transformHoist = null,\n isBuiltInComponent = NOOP,\n isCustomElement = NOOP,\n expressionPlugins = [],\n scopeId = null,\n slotted = true,\n ssr = false,\n inSSR = false,\n ssrCssVars = ``,\n bindingMetadata = EMPTY_OBJ,\n inline = false,\n isTS = false,\n onError = defaultOnError,\n onWarn = defaultOnWarn,\n compatConfig\n}) {\n const nameMatch = filename.replace(/\\?.*$/, \"\").match(/([^/\\\\]+)\\.\\w+$/);\n const context = {\n // options\n filename,\n selfName: nameMatch && capitalize(camelize(nameMatch[1])),\n prefixIdentifiers,\n hoistStatic,\n hmr,\n cacheHandlers,\n nodeTransforms,\n directiveTransforms,\n transformHoist,\n isBuiltInComponent,\n isCustomElement,\n expressionPlugins,\n scopeId,\n slotted,\n ssr,\n inSSR,\n ssrCssVars,\n bindingMetadata,\n inline,\n isTS,\n onError,\n onWarn,\n compatConfig,\n // state\n root,\n helpers: /* @__PURE__ */ new Map(),\n components: /* @__PURE__ */ new Set(),\n directives: /* @__PURE__ */ new Set(),\n hoists: [],\n imports: [],\n cached: [],\n constantCache: /* @__PURE__ */ new WeakMap(),\n temps: 0,\n identifiers: /* @__PURE__ */ Object.create(null),\n scopes: {\n vFor: 0,\n vSlot: 0,\n vPre: 0,\n vOnce: 0\n },\n parent: null,\n grandParent: null,\n currentNode: root,\n childIndex: 0,\n inVOnce: false,\n // methods\n helper(name) {\n const count = context.helpers.get(name) || 0;\n context.helpers.set(name, count + 1);\n return name;\n },\n removeHelper(name) {\n const count = context.helpers.get(name);\n if (count) {\n const currentCount = count - 1;\n if (!currentCount) {\n context.helpers.delete(name);\n } else {\n context.helpers.set(name, currentCount);\n }\n }\n },\n helperString(name) {\n return `_${helperNameMap[context.helper(name)]}`;\n },\n replaceNode(node) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (!context.currentNode) {\n throw new Error(`Node being replaced is already removed.`);\n }\n if (!context.parent) {\n throw new Error(`Cannot replace root node.`);\n }\n }\n context.parent.children[context.childIndex] = context.currentNode = node;\n },\n removeNode(node) {\n if (!!(process.env.NODE_ENV !== \"production\") && !context.parent) {\n throw new Error(`Cannot remove root node.`);\n }\n const list = context.parent.children;\n const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;\n if (!!(process.env.NODE_ENV !== \"production\") && removalIndex < 0) {\n throw new Error(`node being removed is not a child of current parent`);\n }\n if (!node || node === context.currentNode) {\n context.currentNode = null;\n context.onNodeRemoved();\n } else {\n if (context.childIndex > removalIndex) {\n context.childIndex--;\n context.onNodeRemoved();\n }\n }\n context.parent.children.splice(removalIndex, 1);\n },\n onNodeRemoved: NOOP,\n addIdentifiers(exp) {\n },\n removeIdentifiers(exp) {\n },\n hoist(exp) {\n if (isString(exp)) exp = createSimpleExpression(exp);\n context.hoists.push(exp);\n const identifier = createSimpleExpression(\n `_hoisted_${context.hoists.length}`,\n false,\n exp.loc,\n 2\n );\n identifier.hoisted = exp;\n return identifier;\n },\n cache(exp, isVNode = false, inVOnce = false) {\n const cacheExp = createCacheExpression(\n context.cached.length,\n exp,\n isVNode,\n inVOnce\n );\n context.cached.push(cacheExp);\n return cacheExp;\n }\n };\n {\n context.filters = /* @__PURE__ */ new Set();\n }\n return context;\n}\nfunction transform(root, options) {\n const context = createTransformContext(root, options);\n traverseNode(root, context);\n if (options.hoistStatic) {\n cacheStatic(root, context);\n }\n if (!options.ssr) {\n createRootCodegen(root, context);\n }\n root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);\n root.components = [...context.components];\n root.directives = [...context.directives];\n root.imports = context.imports;\n root.hoists = context.hoists;\n root.temps = context.temps;\n root.cached = context.cached;\n root.transformed = true;\n {\n root.filters = [...context.filters];\n }\n}\nfunction createRootCodegen(root, context) {\n const { helper } = context;\n const { children } = root;\n if (children.length === 1) {\n const singleElementRootChild = getSingleElementRoot(root);\n if (singleElementRootChild && singleElementRootChild.codegenNode) {\n const codegenNode = singleElementRootChild.codegenNode;\n if (codegenNode.type === 13) {\n convertToBlock(codegenNode, context);\n }\n root.codegenNode = codegenNode;\n } else {\n root.codegenNode = children[0];\n }\n } else if (children.length > 1) {\n let patchFlag = 64;\n if (!!(process.env.NODE_ENV !== \"production\") && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n root.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n root.children,\n patchFlag,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else ;\n}\nfunction traverseChildren(parent, context) {\n let i = 0;\n const nodeRemoved = () => {\n i--;\n };\n for (; i < parent.children.length; i++) {\n const child = parent.children[i];\n if (isString(child)) continue;\n context.grandParent = context.parent;\n context.parent = parent;\n context.childIndex = i;\n context.onNodeRemoved = nodeRemoved;\n traverseNode(child, context);\n }\n}\nfunction traverseNode(node, context) {\n context.currentNode = node;\n const { nodeTransforms } = context;\n const exitFns = [];\n for (let i2 = 0; i2 < nodeTransforms.length; i2++) {\n const onExit = nodeTransforms[i2](node, context);\n if (onExit) {\n if (isArray(onExit)) {\n exitFns.push(...onExit);\n } else {\n exitFns.push(onExit);\n }\n }\n if (!context.currentNode) {\n return;\n } else {\n node = context.currentNode;\n }\n }\n switch (node.type) {\n case 3:\n if (!context.ssr) {\n context.helper(CREATE_COMMENT);\n }\n break;\n case 5:\n if (!context.ssr) {\n context.helper(TO_DISPLAY_STRING);\n }\n break;\n // for container types, further traverse downwards\n case 9:\n for (let i2 = 0; i2 < node.branches.length; i2++) {\n traverseNode(node.branches[i2], context);\n }\n break;\n case 10:\n case 11:\n case 1:\n case 0:\n traverseChildren(node, context);\n break;\n }\n context.currentNode = node;\n let i = exitFns.length;\n while (i--) {\n exitFns[i]();\n }\n}\nfunction createStructuralDirectiveTransform(name, fn) {\n const matches = isString(name) ? (n) => n === name : (n) => name.test(n);\n return (node, context) => {\n if (node.type === 1) {\n const { props } = node;\n if (node.tagType === 3 && props.some(isVSlot)) {\n return;\n }\n const exitFns = [];\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 7 && matches(prop.name)) {\n props.splice(i, 1);\n i--;\n const onExit = fn(node, prop, context);\n if (onExit) exitFns.push(onExit);\n }\n }\n return exitFns;\n }\n };\n}\n\nconst PURE_ANNOTATION = `/*@__PURE__*/`;\nconst aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;\nfunction createCodegenContext(ast, {\n mode = \"function\",\n prefixIdentifiers = mode === \"module\",\n sourceMap = false,\n filename = `template.vue.html`,\n scopeId = null,\n optimizeImports = false,\n runtimeGlobalName = `Vue`,\n runtimeModuleName = `vue`,\n ssrRuntimeModuleName = \"vue/server-renderer\",\n ssr = false,\n isTS = false,\n inSSR = false\n}) {\n const context = {\n mode,\n prefixIdentifiers,\n sourceMap,\n filename,\n scopeId,\n optimizeImports,\n runtimeGlobalName,\n runtimeModuleName,\n ssrRuntimeModuleName,\n ssr,\n isTS,\n inSSR,\n source: ast.source,\n code: ``,\n column: 1,\n line: 1,\n offset: 0,\n indentLevel: 0,\n pure: false,\n map: void 0,\n helper(key) {\n return `_${helperNameMap[key]}`;\n },\n push(code, newlineIndex = -2 /* None */, node) {\n context.code += code;\n },\n indent() {\n newline(++context.indentLevel);\n },\n deindent(withoutNewLine = false) {\n if (withoutNewLine) {\n --context.indentLevel;\n } else {\n newline(--context.indentLevel);\n }\n },\n newline() {\n newline(context.indentLevel);\n }\n };\n function newline(n) {\n context.push(\"\\n\" + ` `.repeat(n), 0 /* Start */);\n }\n return context;\n}\nfunction generate(ast, options = {}) {\n const context = createCodegenContext(ast, options);\n if (options.onContextCreated) options.onContextCreated(context);\n const {\n mode,\n push,\n prefixIdentifiers,\n indent,\n deindent,\n newline,\n scopeId,\n ssr\n } = context;\n const helpers = Array.from(ast.helpers);\n const hasHelpers = helpers.length > 0;\n const useWithBlock = !prefixIdentifiers && mode !== \"module\";\n const preambleContext = context;\n {\n genFunctionPreamble(ast, preambleContext);\n }\n const functionName = ssr ? `ssrRender` : `render`;\n const args = ssr ? [\"_ctx\", \"_push\", \"_parent\", \"_attrs\"] : [\"_ctx\", \"_cache\"];\n const signature = args.join(\", \");\n {\n push(`function ${functionName}(${signature}) {`);\n }\n indent();\n if (useWithBlock) {\n push(`with (_ctx) {`);\n indent();\n if (hasHelpers) {\n push(\n `const { ${helpers.map(aliasHelper).join(\", \")} } = _Vue\n`,\n -1 /* End */\n );\n newline();\n }\n }\n if (ast.components.length) {\n genAssets(ast.components, \"component\", context);\n if (ast.directives.length || ast.temps > 0) {\n newline();\n }\n }\n if (ast.directives.length) {\n genAssets(ast.directives, \"directive\", context);\n if (ast.temps > 0) {\n newline();\n }\n }\n if (ast.filters && ast.filters.length) {\n newline();\n genAssets(ast.filters, \"filter\", context);\n newline();\n }\n if (ast.temps > 0) {\n push(`let `);\n for (let i = 0; i < ast.temps; i++) {\n push(`${i > 0 ? `, ` : ``}_temp${i}`);\n }\n }\n if (ast.components.length || ast.directives.length || ast.temps) {\n push(`\n`, 0 /* Start */);\n newline();\n }\n if (!ssr) {\n push(`return `);\n }\n if (ast.codegenNode) {\n genNode(ast.codegenNode, context);\n } else {\n push(`null`);\n }\n if (useWithBlock) {\n deindent();\n push(`}`);\n }\n deindent();\n push(`}`);\n return {\n ast,\n code: context.code,\n preamble: ``,\n map: context.map ? context.map.toJSON() : void 0\n };\n}\nfunction genFunctionPreamble(ast, context) {\n const {\n ssr,\n prefixIdentifiers,\n push,\n newline,\n runtimeModuleName,\n runtimeGlobalName,\n ssrRuntimeModuleName\n } = context;\n const VueBinding = runtimeGlobalName;\n const helpers = Array.from(ast.helpers);\n if (helpers.length > 0) {\n {\n push(`const _Vue = ${VueBinding}\n`, -1 /* End */);\n if (ast.hoists.length) {\n const staticHelpers = [\n CREATE_VNODE,\n CREATE_ELEMENT_VNODE,\n CREATE_COMMENT,\n CREATE_TEXT,\n CREATE_STATIC\n ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(\", \");\n push(`const { ${staticHelpers} } = _Vue\n`, -1 /* End */);\n }\n }\n }\n genHoists(ast.hoists, context);\n newline();\n push(`return `);\n}\nfunction genAssets(assets, type, { helper, push, newline, isTS }) {\n const resolver = helper(\n type === \"filter\" ? RESOLVE_FILTER : type === \"component\" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE\n );\n for (let i = 0; i < assets.length; i++) {\n let id = assets[i];\n const maybeSelfReference = id.endsWith(\"__self\");\n if (maybeSelfReference) {\n id = id.slice(0, -6);\n }\n push(\n `const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`\n );\n if (i < assets.length - 1) {\n newline();\n }\n }\n}\nfunction genHoists(hoists, context) {\n if (!hoists.length) {\n return;\n }\n context.pure = true;\n const { push, newline } = context;\n newline();\n for (let i = 0; i < hoists.length; i++) {\n const exp = hoists[i];\n if (exp) {\n push(`const _hoisted_${i + 1} = `);\n genNode(exp, context);\n newline();\n }\n }\n context.pure = false;\n}\nfunction isText(n) {\n return isString(n) || n.type === 4 || n.type === 2 || n.type === 5 || n.type === 8;\n}\nfunction genNodeListAsArray(nodes, context) {\n const multilines = nodes.length > 3 || !!(process.env.NODE_ENV !== \"production\") && nodes.some((n) => isArray(n) || !isText(n));\n context.push(`[`);\n multilines && context.indent();\n genNodeList(nodes, context, multilines);\n multilines && context.deindent();\n context.push(`]`);\n}\nfunction genNodeList(nodes, context, multilines = false, comma = true) {\n const { push, newline } = context;\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (isString(node)) {\n push(node, -3 /* Unknown */);\n } else if (isArray(node)) {\n genNodeListAsArray(node, context);\n } else {\n genNode(node, context);\n }\n if (i < nodes.length - 1) {\n if (multilines) {\n comma && push(\",\");\n newline();\n } else {\n comma && push(\", \");\n }\n }\n }\n}\nfunction genNode(node, context) {\n if (isString(node)) {\n context.push(node, -3 /* Unknown */);\n return;\n }\n if (isSymbol(node)) {\n context.push(context.helper(node));\n return;\n }\n switch (node.type) {\n case 1:\n case 9:\n case 11:\n !!(process.env.NODE_ENV !== \"production\") && assert(\n node.codegenNode != null,\n `Codegen node is missing for element/if/for node. Apply appropriate transforms first.`\n );\n genNode(node.codegenNode, context);\n break;\n case 2:\n genText(node, context);\n break;\n case 4:\n genExpression(node, context);\n break;\n case 5:\n genInterpolation(node, context);\n break;\n case 12:\n genNode(node.codegenNode, context);\n break;\n case 8:\n genCompoundExpression(node, context);\n break;\n case 3:\n genComment(node, context);\n break;\n case 13:\n genVNodeCall(node, context);\n break;\n case 14:\n genCallExpression(node, context);\n break;\n case 15:\n genObjectExpression(node, context);\n break;\n case 17:\n genArrayExpression(node, context);\n break;\n case 18:\n genFunctionExpression(node, context);\n break;\n case 19:\n genConditionalExpression(node, context);\n break;\n case 20:\n genCacheExpression(node, context);\n break;\n case 21:\n genNodeList(node.body, context, true, false);\n break;\n // SSR only types\n case 22:\n break;\n case 23:\n break;\n case 24:\n break;\n case 25:\n break;\n case 26:\n break;\n /* v8 ignore start */\n case 10:\n break;\n default:\n if (!!(process.env.NODE_ENV !== \"production\")) {\n assert(false, `unhandled codegen node type: ${node.type}`);\n const exhaustiveCheck = node;\n return exhaustiveCheck;\n }\n }\n}\nfunction genText(node, context) {\n context.push(JSON.stringify(node.content), -3 /* Unknown */, node);\n}\nfunction genExpression(node, context) {\n const { content, isStatic } = node;\n context.push(\n isStatic ? JSON.stringify(content) : content,\n -3 /* Unknown */,\n node\n );\n}\nfunction genInterpolation(node, context) {\n const { push, helper, pure } = context;\n if (pure) push(PURE_ANNOTATION);\n push(`${helper(TO_DISPLAY_STRING)}(`);\n genNode(node.content, context);\n push(`)`);\n}\nfunction genCompoundExpression(node, context) {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (isString(child)) {\n context.push(child, -3 /* Unknown */);\n } else {\n genNode(child, context);\n }\n }\n}\nfunction genExpressionAsPropertyKey(node, context) {\n const { push } = context;\n if (node.type === 8) {\n push(`[`);\n genCompoundExpression(node, context);\n push(`]`);\n } else if (node.isStatic) {\n const text = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);\n push(text, -2 /* None */, node);\n } else {\n push(`[${node.content}]`, -3 /* Unknown */, node);\n }\n}\nfunction genComment(node, context) {\n const { push, helper, pure } = context;\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(\n `${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`,\n -3 /* Unknown */,\n node\n );\n}\nfunction genVNodeCall(node, context) {\n const { push, helper, pure } = context;\n const {\n tag,\n props,\n children,\n patchFlag,\n dynamicProps,\n directives,\n isBlock,\n disableTracking,\n isComponent\n } = node;\n let patchFlagString;\n if (patchFlag) {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n if (patchFlag < 0) {\n patchFlagString = patchFlag + ` /* ${PatchFlagNames[patchFlag]} */`;\n } else {\n const flagNames = Object.keys(PatchFlagNames).map(Number).filter((n) => n > 0 && patchFlag & n).map((n) => PatchFlagNames[n]).join(`, `);\n patchFlagString = patchFlag + ` /* ${flagNames} */`;\n }\n } else {\n patchFlagString = String(patchFlag);\n }\n }\n if (directives) {\n push(helper(WITH_DIRECTIVES) + `(`);\n }\n if (isBlock) {\n push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);\n }\n if (pure) {\n push(PURE_ANNOTATION);\n }\n const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent) : getVNodeHelper(context.inSSR, isComponent);\n push(helper(callHelper) + `(`, -2 /* None */, node);\n genNodeList(\n genNullableArgs([tag, props, children, patchFlagString, dynamicProps]),\n context\n );\n push(`)`);\n if (isBlock) {\n push(`)`);\n }\n if (directives) {\n push(`, `);\n genNode(directives, context);\n push(`)`);\n }\n}\nfunction genNullableArgs(args) {\n let i = args.length;\n while (i--) {\n if (args[i] != null) break;\n }\n return args.slice(0, i + 1).map((arg) => arg || `null`);\n}\nfunction genCallExpression(node, context) {\n const { push, helper, pure } = context;\n const callee = isString(node.callee) ? node.callee : helper(node.callee);\n if (pure) {\n push(PURE_ANNOTATION);\n }\n push(callee + `(`, -2 /* None */, node);\n genNodeList(node.arguments, context);\n push(`)`);\n}\nfunction genObjectExpression(node, context) {\n const { push, indent, deindent, newline } = context;\n const { properties } = node;\n if (!properties.length) {\n push(`{}`, -2 /* None */, node);\n return;\n }\n const multilines = properties.length > 1 || !!(process.env.NODE_ENV !== \"production\") && properties.some((p) => p.value.type !== 4);\n push(multilines ? `{` : `{ `);\n multilines && indent();\n for (let i = 0; i < properties.length; i++) {\n const { key, value } = properties[i];\n genExpressionAsPropertyKey(key, context);\n push(`: `);\n genNode(value, context);\n if (i < properties.length - 1) {\n push(`,`);\n newline();\n }\n }\n multilines && deindent();\n push(multilines ? `}` : ` }`);\n}\nfunction genArrayExpression(node, context) {\n genNodeListAsArray(node.elements, context);\n}\nfunction genFunctionExpression(node, context) {\n const { push, indent, deindent } = context;\n const { params, returns, body, newline, isSlot } = node;\n if (isSlot) {\n push(`_${helperNameMap[WITH_CTX]}(`);\n }\n push(`(`, -2 /* None */, node);\n if (isArray(params)) {\n genNodeList(params, context);\n } else if (params) {\n genNode(params, context);\n }\n push(`) => `);\n if (newline || body) {\n push(`{`);\n indent();\n }\n if (returns) {\n if (newline) {\n push(`return `);\n }\n if (isArray(returns)) {\n genNodeListAsArray(returns, context);\n } else {\n genNode(returns, context);\n }\n } else if (body) {\n genNode(body, context);\n }\n if (newline || body) {\n deindent();\n push(`}`);\n }\n if (isSlot) {\n if (node.isNonScopedSlot) {\n push(`, undefined, true`);\n }\n push(`)`);\n }\n}\nfunction genConditionalExpression(node, context) {\n const { test, consequent, alternate, newline: needNewline } = node;\n const { push, indent, deindent, newline } = context;\n if (test.type === 4) {\n const needsParens = !isSimpleIdentifier(test.content);\n needsParens && push(`(`);\n genExpression(test, context);\n needsParens && push(`)`);\n } else {\n push(`(`);\n genNode(test, context);\n push(`)`);\n }\n needNewline && indent();\n context.indentLevel++;\n needNewline || push(` `);\n push(`? `);\n genNode(consequent, context);\n context.indentLevel--;\n needNewline && newline();\n needNewline || push(` `);\n push(`: `);\n const isNested = alternate.type === 19;\n if (!isNested) {\n context.indentLevel++;\n }\n genNode(alternate, context);\n if (!isNested) {\n context.indentLevel--;\n }\n needNewline && deindent(\n true\n /* without newline */\n );\n}\nfunction genCacheExpression(node, context) {\n const { push, helper, indent, deindent, newline } = context;\n const { needPauseTracking, needArraySpread } = node;\n if (needArraySpread) {\n push(`[...(`);\n }\n push(`_cache[${node.index}] || (`);\n if (needPauseTracking) {\n indent();\n push(`${helper(SET_BLOCK_TRACKING)}(-1`);\n if (node.inVOnce) push(`, true`);\n push(`),`);\n newline();\n push(`(`);\n }\n push(`_cache[${node.index}] = `);\n genNode(node.value, context);\n if (needPauseTracking) {\n push(`).cacheIndex = ${node.index},`);\n newline();\n push(`${helper(SET_BLOCK_TRACKING)}(1),`);\n newline();\n push(`_cache[${node.index}]`);\n deindent();\n }\n push(`)`);\n if (needArraySpread) {\n push(`)]`);\n }\n}\n\nconst prohibitedKeywordRE = new RegExp(\n \"\\\\b\" + \"arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield\".split(\",\").join(\"\\\\b|\\\\b\") + \"\\\\b\"\n);\nconst stripStringRE = /'(?:[^'\\\\]|\\\\.)*'|\"(?:[^\"\\\\]|\\\\.)*\"|`(?:[^`\\\\]|\\\\.)*\\$\\{|\\}(?:[^`\\\\]|\\\\.)*`|`(?:[^`\\\\]|\\\\.)*`/g;\nfunction validateBrowserExpression(node, context, asParams = false, asRawStatements = false) {\n const exp = node.content;\n if (!exp.trim()) {\n return;\n }\n try {\n new Function(\n asRawStatements ? ` ${exp} ` : `return ${asParams ? `(${exp}) => {}` : `(${exp})`}`\n );\n } catch (e) {\n let message = e.message;\n const keywordMatch = exp.replace(stripStringRE, \"\").match(prohibitedKeywordRE);\n if (keywordMatch) {\n message = `avoid using JavaScript keyword as property name: \"${keywordMatch[0]}\"`;\n }\n context.onError(\n createCompilerError(\n 46,\n node.loc,\n void 0,\n message\n )\n );\n }\n}\n\nconst transformExpression = (node, context) => {\n if (node.type === 5) {\n node.content = processExpression(\n node.content,\n context\n );\n } else if (node.type === 1) {\n const memo = findDir(node, \"memo\");\n for (let i = 0; i < node.props.length; i++) {\n const dir = node.props[i];\n if (dir.type === 7 && dir.name !== \"for\") {\n const exp = dir.exp;\n const arg = dir.arg;\n if (exp && exp.type === 4 && !(dir.name === \"on\" && arg) && // key has been processed in transformFor(vMemo + vFor)\n !(memo && arg && arg.type === 4 && arg.content === \"key\")) {\n dir.exp = processExpression(\n exp,\n context,\n // slot args must be processed as function params\n dir.name === \"slot\"\n );\n }\n if (arg && arg.type === 4 && !arg.isStatic) {\n dir.arg = processExpression(arg, context);\n }\n }\n }\n }\n};\nfunction processExpression(node, context, asParams = false, asRawStatements = false, localVars = Object.create(context.identifiers)) {\n {\n if (!!(process.env.NODE_ENV !== \"production\")) {\n validateBrowserExpression(node, context, asParams, asRawStatements);\n }\n return node;\n }\n}\nfunction stringifyExpression(exp) {\n if (isString(exp)) {\n return exp;\n } else if (exp.type === 4) {\n return exp.content;\n } else {\n return exp.children.map(stringifyExpression).join(\"\");\n }\n}\n\nconst transformIf = createStructuralDirectiveTransform(\n /^(?:if|else|else-if)$/,\n (node, dir, context) => {\n return processIf(node, dir, context, (ifNode, branch, isRoot) => {\n const siblings = context.parent.children;\n let i = siblings.indexOf(ifNode);\n let key = 0;\n while (i-- >= 0) {\n const sibling = siblings[i];\n if (sibling && sibling.type === 9) {\n key += sibling.branches.length;\n }\n }\n return () => {\n if (isRoot) {\n ifNode.codegenNode = createCodegenNodeForBranch(\n branch,\n key,\n context\n );\n } else {\n const parentCondition = getParentCondition(ifNode.codegenNode);\n parentCondition.alternate = createCodegenNodeForBranch(\n branch,\n key + ifNode.branches.length - 1,\n context\n );\n }\n };\n });\n }\n);\nfunction processIf(node, dir, context, processCodegen) {\n if (dir.name !== \"else\" && (!dir.exp || !dir.exp.content.trim())) {\n const loc = dir.exp ? dir.exp.loc : node.loc;\n context.onError(\n createCompilerError(28, dir.loc)\n );\n dir.exp = createSimpleExpression(`true`, false, loc);\n }\n if (!!(process.env.NODE_ENV !== \"production\") && true && dir.exp) {\n validateBrowserExpression(dir.exp, context);\n }\n if (dir.name === \"if\") {\n const branch = createIfBranch(node, dir);\n const ifNode = {\n type: 9,\n loc: cloneLoc(node.loc),\n branches: [branch]\n };\n context.replaceNode(ifNode);\n if (processCodegen) {\n return processCodegen(ifNode, branch, true);\n }\n } else {\n const siblings = context.parent.children;\n const comments = [];\n let i = siblings.indexOf(node);\n while (i-- >= -1) {\n const sibling = siblings[i];\n if (sibling && isCommentOrWhitespace(sibling)) {\n context.removeNode(sibling);\n if (!!(process.env.NODE_ENV !== \"production\") && sibling.type === 3) {\n comments.unshift(sibling);\n }\n continue;\n }\n if (sibling && sibling.type === 9) {\n if ((dir.name === \"else-if\" || dir.name === \"else\") && sibling.branches[sibling.branches.length - 1].condition === void 0) {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n context.removeNode();\n const branch = createIfBranch(node, dir);\n if (!!(process.env.NODE_ENV !== \"production\") && comments.length && // #3619 ignore comments if the v-if is direct child of <transition>\n !(context.parent && context.parent.type === 1 && (context.parent.tag === \"transition\" || context.parent.tag === \"Transition\"))) {\n branch.children = [...comments, ...branch.children];\n }\n if (!!(process.env.NODE_ENV !== \"production\") || false) {\n const key = branch.userKey;\n if (key) {\n sibling.branches.forEach(({ userKey }) => {\n if (isSameKey(userKey, key)) {\n context.onError(\n createCompilerError(\n 29,\n branch.userKey.loc\n )\n );\n }\n });\n }\n }\n sibling.branches.push(branch);\n const onExit = processCodegen && processCodegen(sibling, branch, false);\n traverseNode(branch, context);\n if (onExit) onExit();\n context.currentNode = null;\n } else {\n context.onError(\n createCompilerError(30, node.loc)\n );\n }\n break;\n }\n }\n}\nfunction createIfBranch(node, dir) {\n const isTemplateIf = node.tagType === 3;\n return {\n type: 10,\n loc: node.loc,\n condition: dir.name === \"else\" ? void 0 : dir.exp,\n children: isTemplateIf && !findDir(node, \"for\") ? node.children : [node],\n userKey: findProp(node, `key`),\n isTemplateIf\n };\n}\nfunction createCodegenNodeForBranch(branch, keyIndex, context) {\n if (branch.condition) {\n return createConditionalExpression(\n branch.condition,\n createChildrenCodegenNode(branch, keyIndex, context),\n // make sure to pass in asBlock: true so that the comment node call\n // closes the current block.\n createCallExpression(context.helper(CREATE_COMMENT), [\n !!(process.env.NODE_ENV !== \"production\") ? '\"v-if\"' : '\"\"',\n \"true\"\n ])\n );\n } else {\n return createChildrenCodegenNode(branch, keyIndex, context);\n }\n}\nfunction createChildrenCodegenNode(branch, keyIndex, context) {\n const { helper } = context;\n const keyProperty = createObjectProperty(\n `key`,\n createSimpleExpression(\n `${keyIndex}`,\n false,\n locStub,\n 2\n )\n );\n const { children } = branch;\n const firstChild = children[0];\n const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;\n if (needFragmentWrapper) {\n if (children.length === 1 && firstChild.type === 11) {\n const vnodeCall = firstChild.codegenNode;\n injectProp(vnodeCall, keyProperty, context);\n return vnodeCall;\n } else {\n let patchFlag = 64;\n if (!!(process.env.NODE_ENV !== \"production\") && !branch.isTemplateIf && children.filter((c) => c.type !== 3).length === 1) {\n patchFlag |= 2048;\n }\n return createVNodeCall(\n context,\n helper(FRAGMENT),\n createObjectExpression([keyProperty]),\n children,\n patchFlag,\n void 0,\n void 0,\n true,\n false,\n false,\n branch.loc\n );\n }\n } else {\n const ret = firstChild.codegenNode;\n const vnodeCall = getMemoedVNodeCall(ret);\n if (vnodeCall.type === 13) {\n convertToBlock(vnodeCall, context);\n }\n injectProp(vnodeCall, keyProperty, context);\n return ret;\n }\n}\nfunction isSameKey(a, b) {\n if (!a || a.type !== b.type) {\n return false;\n }\n if (a.type === 6) {\n if (a.value.content !== b.value.content) {\n return false;\n }\n } else {\n const exp = a.exp;\n const branchExp = b.exp;\n if (exp.type !== branchExp.type) {\n return false;\n }\n if (exp.type !== 4 || exp.isStatic !== branchExp.isStatic || exp.content !== branchExp.content) {\n return false;\n }\n }\n return true;\n}\nfunction getParentCondition(node) {\n while (true) {\n if (node.type === 19) {\n if (node.alternate.type === 19) {\n node = node.alternate;\n } else {\n return node;\n }\n } else if (node.type === 20) {\n node = node.value;\n }\n }\n}\n\nconst transformFor = createStructuralDirectiveTransform(\n \"for\",\n (node, dir, context) => {\n const { helper, removeHelper } = context;\n return processFor(node, dir, context, (forNode) => {\n const renderExp = createCallExpression(helper(RENDER_LIST), [\n forNode.source\n ]);\n const isTemplate = isTemplateNode(node);\n const memo = findDir(node, \"memo\");\n const keyProp = findProp(node, `key`, false, true);\n keyProp && keyProp.type === 7;\n let keyExp = keyProp && (keyProp.type === 6 ? keyProp.value ? createSimpleExpression(keyProp.value.content, true) : void 0 : keyProp.exp);\n const keyProperty = keyProp && keyExp ? createObjectProperty(`key`, keyExp) : null;\n const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;\n const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;\n forNode.codegenNode = createVNodeCall(\n context,\n helper(FRAGMENT),\n void 0,\n renderExp,\n fragmentFlag,\n void 0,\n void 0,\n true,\n !isStableFragment,\n false,\n node.loc\n );\n return () => {\n let childBlock;\n const { children } = forNode;\n if ((!!(process.env.NODE_ENV !== \"production\") || false) && isTemplate) {\n node.children.some((c) => {\n if (c.type === 1) {\n const key = findProp(c, \"key\");\n if (key) {\n context.onError(\n createCompilerError(\n 33,\n key.loc\n )\n );\n return true;\n }\n }\n });\n }\n const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;\n const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;\n if (slotOutlet) {\n childBlock = slotOutlet.codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n } else if (needFragmentWrapper) {\n childBlock = createVNodeCall(\n context,\n helper(FRAGMENT),\n keyProperty ? createObjectExpression([keyProperty]) : void 0,\n node.children,\n 64,\n void 0,\n void 0,\n true,\n void 0,\n false\n );\n } else {\n childBlock = children[0].codegenNode;\n if (isTemplate && keyProperty) {\n injectProp(childBlock, keyProperty, context);\n }\n if (childBlock.isBlock !== !isStableFragment) {\n if (childBlock.isBlock) {\n removeHelper(OPEN_BLOCK);\n removeHelper(\n getVNodeBlockHelper(context.inSSR, childBlock.isComponent)\n );\n } else {\n removeHelper(\n getVNodeHelper(context.inSSR, childBlock.isComponent)\n );\n }\n }\n childBlock.isBlock = !isStableFragment;\n if (childBlock.isBlock) {\n helper(OPEN_BLOCK);\n helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));\n } else {\n helper(getVNodeHelper(context.inSSR, childBlock.isComponent));\n }\n }\n if (memo) {\n const loop = createFunctionExpression(\n createForLoopParams(forNode.parseResult, [\n createSimpleExpression(`_cached`)\n ])\n );\n loop.body = createBlockStatement([\n createCompoundExpression([`const _memo = (`, memo.exp, `)`]),\n createCompoundExpression([\n `if (_cached`,\n ...keyExp ? [` && _cached.key === `, keyExp] : [],\n ` && ${context.helperString(\n IS_MEMO_SAME\n )}(_cached, _memo)) return _cached`\n ]),\n createCompoundExpression([`const _item = `, childBlock]),\n createSimpleExpression(`_item.memo = _memo`),\n createSimpleExpression(`return _item`)\n ]);\n renderExp.arguments.push(\n loop,\n createSimpleExpression(`_cache`),\n createSimpleExpression(String(context.cached.length))\n );\n context.cached.push(null);\n } else {\n renderExp.arguments.push(\n createFunctionExpression(\n createForLoopParams(forNode.parseResult),\n childBlock,\n true\n )\n );\n }\n };\n });\n }\n);\nfunction processFor(node, dir, context, processCodegen) {\n if (!dir.exp) {\n context.onError(\n createCompilerError(31, dir.loc)\n );\n return;\n }\n const parseResult = dir.forParseResult;\n if (!parseResult) {\n context.onError(\n createCompilerError(32, dir.loc)\n );\n return;\n }\n finalizeForParseResult(parseResult, context);\n const { addIdentifiers, removeIdentifiers, scopes } = context;\n const { source, value, key, index } = parseResult;\n const forNode = {\n type: 11,\n loc: dir.loc,\n source,\n valueAlias: value,\n keyAlias: key,\n objectIndexAlias: index,\n parseResult,\n children: isTemplateNode(node) ? node.children : [node]\n };\n context.replaceNode(forNode);\n scopes.vFor++;\n const onExit = processCodegen && processCodegen(forNode);\n return () => {\n scopes.vFor--;\n if (onExit) onExit();\n };\n}\nfunction finalizeForParseResult(result, context) {\n if (result.finalized) return;\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n validateBrowserExpression(result.source, context);\n if (result.key) {\n validateBrowserExpression(\n result.key,\n context,\n true\n );\n }\n if (result.index) {\n validateBrowserExpression(\n result.index,\n context,\n true\n );\n }\n if (result.value) {\n validateBrowserExpression(\n result.value,\n context,\n true\n );\n }\n }\n result.finalized = true;\n}\nfunction createForLoopParams({ value, key, index }, memoArgs = []) {\n return createParamsList([value, key, index, ...memoArgs]);\n}\nfunction createParamsList(args) {\n let i = args.length;\n while (i--) {\n if (args[i]) break;\n }\n return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));\n}\n\nconst defaultFallback = createSimpleExpression(`undefined`, false);\nconst trackSlotScopes = (node, context) => {\n if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {\n const vSlot = findDir(node, \"slot\");\n if (vSlot) {\n vSlot.exp;\n context.scopes.vSlot++;\n return () => {\n context.scopes.vSlot--;\n };\n }\n }\n};\nconst trackVForSlotScopes = (node, context) => {\n let vFor;\n if (isTemplateNode(node) && node.props.some(isVSlot) && (vFor = findDir(node, \"for\"))) {\n const result = vFor.forParseResult;\n if (result) {\n finalizeForParseResult(result, context);\n const { value, key, index } = result;\n const { addIdentifiers, removeIdentifiers } = context;\n value && addIdentifiers(value);\n key && addIdentifiers(key);\n index && addIdentifiers(index);\n return () => {\n value && removeIdentifiers(value);\n key && removeIdentifiers(key);\n index && removeIdentifiers(index);\n };\n }\n }\n};\nconst buildClientSlotFn = (props, _vForExp, children, loc) => createFunctionExpression(\n props,\n children,\n false,\n true,\n children.length ? children[0].loc : loc\n);\nfunction buildSlots(node, context, buildSlotFn = buildClientSlotFn) {\n context.helper(WITH_CTX);\n const { children, loc } = node;\n const slotsProperties = [];\n const dynamicSlots = [];\n let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;\n const onComponentSlot = findDir(node, \"slot\", true);\n if (onComponentSlot) {\n const { arg, exp } = onComponentSlot;\n if (arg && !isStaticExp(arg)) {\n hasDynamicSlots = true;\n }\n slotsProperties.push(\n createObjectProperty(\n arg || createSimpleExpression(\"default\", true),\n buildSlotFn(exp, void 0, children, loc)\n )\n );\n }\n let hasTemplateSlots = false;\n let hasNamedDefaultSlot = false;\n const implicitDefaultChildren = [];\n const seenSlotNames = /* @__PURE__ */ new Set();\n let conditionalBranchIndex = 0;\n for (let i = 0; i < children.length; i++) {\n const slotElement = children[i];\n let slotDir;\n if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, \"slot\", true))) {\n if (slotElement.type !== 3) {\n implicitDefaultChildren.push(slotElement);\n }\n continue;\n }\n if (onComponentSlot) {\n context.onError(\n createCompilerError(37, slotDir.loc)\n );\n break;\n }\n hasTemplateSlots = true;\n const { children: slotChildren, loc: slotLoc } = slotElement;\n const {\n arg: slotName = createSimpleExpression(`default`, true),\n exp: slotProps,\n loc: dirLoc\n } = slotDir;\n let staticSlotName;\n if (isStaticExp(slotName)) {\n staticSlotName = slotName ? slotName.content : `default`;\n } else {\n hasDynamicSlots = true;\n }\n const vFor = findDir(slotElement, \"for\");\n const slotFunction = buildSlotFn(slotProps, vFor, slotChildren, slotLoc);\n let vIf;\n let vElse;\n if (vIf = findDir(slotElement, \"if\")) {\n hasDynamicSlots = true;\n dynamicSlots.push(\n createConditionalExpression(\n vIf.exp,\n buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++),\n defaultFallback\n )\n );\n } else if (vElse = findDir(\n slotElement,\n /^else(?:-if)?$/,\n true\n /* allowEmpty */\n )) {\n let j = i;\n let prev;\n while (j--) {\n prev = children[j];\n if (!isCommentOrWhitespace(prev)) {\n break;\n }\n }\n if (prev && isTemplateNode(prev) && findDir(prev, /^(?:else-)?if$/)) {\n let conditional = dynamicSlots[dynamicSlots.length - 1];\n while (conditional.alternate.type === 19) {\n conditional = conditional.alternate;\n }\n conditional.alternate = vElse.exp ? createConditionalExpression(\n vElse.exp,\n buildDynamicSlot(\n slotName,\n slotFunction,\n conditionalBranchIndex++\n ),\n defaultFallback\n ) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);\n } else {\n context.onError(\n createCompilerError(30, vElse.loc)\n );\n }\n } else if (vFor) {\n hasDynamicSlots = true;\n const parseResult = vFor.forParseResult;\n if (parseResult) {\n finalizeForParseResult(parseResult, context);\n dynamicSlots.push(\n createCallExpression(context.helper(RENDER_LIST), [\n parseResult.source,\n createFunctionExpression(\n createForLoopParams(parseResult),\n buildDynamicSlot(slotName, slotFunction),\n true\n )\n ])\n );\n } else {\n context.onError(\n createCompilerError(\n 32,\n vFor.loc\n )\n );\n }\n } else {\n if (staticSlotName) {\n if (seenSlotNames.has(staticSlotName)) {\n context.onError(\n createCompilerError(\n 38,\n dirLoc\n )\n );\n continue;\n }\n seenSlotNames.add(staticSlotName);\n if (staticSlotName === \"default\") {\n hasNamedDefaultSlot = true;\n }\n }\n slotsProperties.push(createObjectProperty(slotName, slotFunction));\n }\n }\n if (!onComponentSlot) {\n const buildDefaultSlotProperty = (props, children2) => {\n const fn = buildSlotFn(props, void 0, children2, loc);\n if (context.compatConfig) {\n fn.isNonScopedSlot = true;\n }\n return createObjectProperty(`default`, fn);\n };\n if (!hasTemplateSlots) {\n slotsProperties.push(buildDefaultSlotProperty(void 0, children));\n } else if (implicitDefaultChildren.length && // #3766\n // with whitespace: 'preserve', whitespaces between slots will end up in\n // implicitDefaultChildren. Ignore if all implicit children are whitespaces.\n !implicitDefaultChildren.every(isWhitespaceText)) {\n if (hasNamedDefaultSlot) {\n context.onError(\n createCompilerError(\n 39,\n implicitDefaultChildren[0].loc\n )\n );\n } else {\n slotsProperties.push(\n buildDefaultSlotProperty(void 0, implicitDefaultChildren)\n );\n }\n }\n }\n const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;\n let slots = createObjectExpression(\n slotsProperties.concat(\n createObjectProperty(\n `_`,\n // 2 = compiled but dynamic = can skip normalization, but must run diff\n // 1 = compiled and static = can skip normalization AND diff as optimized\n createSimpleExpression(\n slotFlag + (!!(process.env.NODE_ENV !== \"production\") ? ` /* ${slotFlagsText[slotFlag]} */` : ``),\n false\n )\n )\n ),\n loc\n );\n if (dynamicSlots.length) {\n slots = createCallExpression(context.helper(CREATE_SLOTS), [\n slots,\n createArrayExpression(dynamicSlots)\n ]);\n }\n return {\n slots,\n hasDynamicSlots\n };\n}\nfunction buildDynamicSlot(name, fn, index) {\n const props = [\n createObjectProperty(`name`, name),\n createObjectProperty(`fn`, fn)\n ];\n if (index != null) {\n props.push(\n createObjectProperty(`key`, createSimpleExpression(String(index), true))\n );\n }\n return createObjectExpression(props);\n}\nfunction hasForwardedSlots(children) {\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n switch (child.type) {\n case 1:\n if (child.tagType === 2 || hasForwardedSlots(child.children)) {\n return true;\n }\n break;\n case 9:\n if (hasForwardedSlots(child.branches)) return true;\n break;\n case 10:\n case 11:\n if (hasForwardedSlots(child.children)) return true;\n break;\n }\n }\n return false;\n}\n\nconst directiveImportMap = /* @__PURE__ */ new WeakMap();\nconst transformElement = (node, context) => {\n return function postTransformElement() {\n node = context.currentNode;\n if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {\n return;\n }\n const { tag, props } = node;\n const isComponent = node.tagType === 1;\n let vnodeTag = isComponent ? resolveComponentType(node, context) : `\"${tag}\"`;\n const isDynamicComponent = isObject(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;\n let vnodeProps;\n let vnodeChildren;\n let patchFlag = 0;\n let vnodeDynamicProps;\n let dynamicPropNames;\n let vnodeDirectives;\n let shouldUseBlock = (\n // dynamic component may resolve to plain elements\n isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent && // <svg> and <foreignObject> must be forced into blocks so that block\n // updates inside get proper isSVG flag at runtime. (#639, #643)\n // This is technically web-specific, but splitting the logic out of core\n // leads to too much unnecessary complexity.\n (tag === \"svg\" || tag === \"foreignObject\" || tag === \"math\")\n );\n if (props.length > 0) {\n const propsBuildResult = buildProps(\n node,\n context,\n void 0,\n isComponent,\n isDynamicComponent\n );\n vnodeProps = propsBuildResult.props;\n patchFlag = propsBuildResult.patchFlag;\n dynamicPropNames = propsBuildResult.dynamicPropNames;\n const directives = propsBuildResult.directives;\n vnodeDirectives = directives && directives.length ? createArrayExpression(\n directives.map((dir) => buildDirectiveArgs(dir, context))\n ) : void 0;\n if (propsBuildResult.shouldUseBlock) {\n shouldUseBlock = true;\n }\n }\n if (node.children.length > 0) {\n if (vnodeTag === KEEP_ALIVE) {\n shouldUseBlock = true;\n patchFlag |= 1024;\n if (!!(process.env.NODE_ENV !== \"production\") && node.children.length > 1) {\n context.onError(\n createCompilerError(47, {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n })\n );\n }\n }\n const shouldBuildAsSlots = isComponent && // Teleport is not a real component and has dedicated runtime handling\n vnodeTag !== TELEPORT && // explained above.\n vnodeTag !== KEEP_ALIVE;\n if (shouldBuildAsSlots) {\n const { slots, hasDynamicSlots } = buildSlots(node, context);\n vnodeChildren = slots;\n if (hasDynamicSlots) {\n patchFlag |= 1024;\n }\n } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {\n const child = node.children[0];\n const type = child.type;\n const hasDynamicTextChild = type === 5 || type === 8;\n if (hasDynamicTextChild && getConstantType(child, context) === 0) {\n patchFlag |= 1;\n }\n if (hasDynamicTextChild || type === 2) {\n vnodeChildren = child;\n } else {\n vnodeChildren = node.children;\n }\n } else {\n vnodeChildren = node.children;\n }\n }\n if (dynamicPropNames && dynamicPropNames.length) {\n vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);\n }\n node.codegenNode = createVNodeCall(\n context,\n vnodeTag,\n vnodeProps,\n vnodeChildren,\n patchFlag === 0 ? void 0 : patchFlag,\n vnodeDynamicProps,\n vnodeDirectives,\n !!shouldUseBlock,\n false,\n isComponent,\n node.loc\n );\n };\n};\nfunction resolveComponentType(node, context, ssr = false) {\n let { tag } = node;\n const isExplicitDynamic = isComponentTag(tag);\n const isProp = findProp(\n node,\n \"is\",\n false,\n true\n /* allow empty */\n );\n if (isProp) {\n if (isExplicitDynamic || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n )) {\n let exp;\n if (isProp.type === 6) {\n exp = isProp.value && createSimpleExpression(isProp.value.content, true);\n } else {\n exp = isProp.exp;\n if (!exp) {\n exp = createSimpleExpression(`is`, false, isProp.arg.loc);\n }\n }\n if (exp) {\n return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [\n exp\n ]);\n }\n } else if (isProp.type === 6 && isProp.value.content.startsWith(\"vue:\")) {\n tag = isProp.value.content.slice(4);\n }\n }\n const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);\n if (builtIn) {\n if (!ssr) context.helper(builtIn);\n return builtIn;\n }\n context.helper(RESOLVE_COMPONENT);\n context.components.add(tag);\n return toValidAssetId(tag, `component`);\n}\nfunction buildProps(node, context, props = node.props, isComponent, isDynamicComponent, ssr = false) {\n const { tag, loc: elementLoc, children } = node;\n let properties = [];\n const mergeArgs = [];\n const runtimeDirectives = [];\n const hasChildren = children.length > 0;\n let shouldUseBlock = false;\n let patchFlag = 0;\n let hasRef = false;\n let hasClassBinding = false;\n let hasStyleBinding = false;\n let hasHydrationEventBinding = false;\n let hasDynamicKeys = false;\n let hasVnodeHook = false;\n const dynamicPropNames = [];\n const pushMergeArg = (arg) => {\n if (properties.length) {\n mergeArgs.push(\n createObjectExpression(dedupeProperties(properties), elementLoc)\n );\n properties = [];\n }\n if (arg) mergeArgs.push(arg);\n };\n const pushRefVForMarker = () => {\n if (context.scopes.vFor > 0) {\n properties.push(\n createObjectProperty(\n createSimpleExpression(\"ref_for\", true),\n createSimpleExpression(\"true\")\n )\n );\n }\n };\n const analyzePatchFlag = ({ key, value }) => {\n if (isStaticExp(key)) {\n const name = key.content;\n const isEventHandler = isOn(name);\n if (isEventHandler && (!isComponent || isDynamicComponent) && // omit the flag for click handlers because hydration gives click\n // dedicated fast path.\n name.toLowerCase() !== \"onclick\" && // omit v-model handlers\n name !== \"onUpdate:modelValue\" && // omit onVnodeXXX hooks\n !isReservedProp(name)) {\n hasHydrationEventBinding = true;\n }\n if (isEventHandler && isReservedProp(name)) {\n hasVnodeHook = true;\n }\n if (isEventHandler && value.type === 14) {\n value = value.arguments[0];\n }\n if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {\n return;\n }\n if (name === \"ref\") {\n hasRef = true;\n } else if (name === \"class\") {\n hasClassBinding = true;\n } else if (name === \"style\") {\n hasStyleBinding = true;\n } else if (name !== \"key\" && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n if (isComponent && (name === \"class\" || name === \"style\") && !dynamicPropNames.includes(name)) {\n dynamicPropNames.push(name);\n }\n } else {\n hasDynamicKeys = true;\n }\n };\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (prop.type === 6) {\n const { loc, name, nameLoc, value } = prop;\n let isStatic = true;\n if (name === \"ref\") {\n hasRef = true;\n pushRefVForMarker();\n }\n if (name === \"is\" && (isComponentTag(tag) || value && value.content.startsWith(\"vue:\") || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n properties.push(\n createObjectProperty(\n createSimpleExpression(name, true, nameLoc),\n createSimpleExpression(\n value ? value.content : \"\",\n isStatic,\n value ? value.loc : loc\n )\n )\n );\n } else {\n const { name, arg, exp, loc, modifiers } = prop;\n const isVBind = name === \"bind\";\n const isVOn = name === \"on\";\n if (name === \"slot\") {\n if (!isComponent) {\n context.onError(\n createCompilerError(40, loc)\n );\n }\n continue;\n }\n if (name === \"once\" || name === \"memo\") {\n continue;\n }\n if (name === \"is\" || isVBind && isStaticArgOf(arg, \"is\") && (isComponentTag(tag) || isCompatEnabled(\n \"COMPILER_IS_ON_ELEMENT\",\n context\n ))) {\n continue;\n }\n if (isVOn && ssr) {\n continue;\n }\n if (\n // #938: elements with dynamic keys should be forced into blocks\n isVBind && isStaticArgOf(arg, \"key\") || // inline before-update hooks need to force block so that it is invoked\n // before children\n isVOn && hasChildren && isStaticArgOf(arg, \"vue:before-update\")\n ) {\n shouldUseBlock = true;\n }\n if (isVBind && isStaticArgOf(arg, \"ref\")) {\n pushRefVForMarker();\n }\n if (!arg && (isVBind || isVOn)) {\n hasDynamicKeys = true;\n if (exp) {\n if (isVBind) {\n {\n pushMergeArg();\n if (!!(process.env.NODE_ENV !== \"production\")) {\n const hasOverridableKeys = mergeArgs.some((arg2) => {\n if (arg2.type === 15) {\n return arg2.properties.some(({ key }) => {\n if (key.type !== 4 || !key.isStatic) {\n return true;\n }\n return key.content !== \"class\" && key.content !== \"style\" && !isOn(key.content);\n });\n } else {\n return true;\n }\n });\n if (hasOverridableKeys) {\n checkCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context,\n loc\n );\n }\n }\n if (isCompatEnabled(\n \"COMPILER_V_BIND_OBJECT_ORDER\",\n context\n )) {\n mergeArgs.unshift(exp);\n continue;\n }\n }\n pushRefVForMarker();\n pushMergeArg();\n mergeArgs.push(exp);\n } else {\n pushMergeArg({\n type: 14,\n loc,\n callee: context.helper(TO_HANDLERS),\n arguments: isComponent ? [exp] : [exp, `true`]\n });\n }\n } else {\n context.onError(\n createCompilerError(\n isVBind ? 34 : 35,\n loc\n )\n );\n }\n continue;\n }\n if (isVBind && modifiers.some((mod) => mod.content === \"prop\")) {\n patchFlag |= 32;\n }\n const directiveTransform = context.directiveTransforms[name];\n if (directiveTransform) {\n const { props: props2, needRuntime } = directiveTransform(prop, node, context);\n !ssr && props2.forEach(analyzePatchFlag);\n if (isVOn && arg && !isStaticExp(arg)) {\n pushMergeArg(createObjectExpression(props2, elementLoc));\n } else {\n properties.push(...props2);\n }\n if (needRuntime) {\n runtimeDirectives.push(prop);\n if (isSymbol(needRuntime)) {\n directiveImportMap.set(prop, needRuntime);\n }\n }\n } else if (!isBuiltInDirective(name)) {\n runtimeDirectives.push(prop);\n if (hasChildren) {\n shouldUseBlock = true;\n }\n }\n }\n }\n let propsExpression = void 0;\n if (mergeArgs.length) {\n pushMergeArg();\n if (mergeArgs.length > 1) {\n propsExpression = createCallExpression(\n context.helper(MERGE_PROPS),\n mergeArgs,\n elementLoc\n );\n } else {\n propsExpression = mergeArgs[0];\n }\n } else if (properties.length) {\n propsExpression = createObjectExpression(\n dedupeProperties(properties),\n elementLoc\n );\n }\n if (hasDynamicKeys) {\n patchFlag |= 16;\n } else {\n if (hasClassBinding && !isComponent) {\n patchFlag |= 2;\n }\n if (hasStyleBinding && !isComponent) {\n patchFlag |= 4;\n }\n if (dynamicPropNames.length) {\n patchFlag |= 8;\n }\n if (hasHydrationEventBinding) {\n patchFlag |= 32;\n }\n }\n if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {\n patchFlag |= 512;\n }\n if (!context.inSSR && propsExpression) {\n switch (propsExpression.type) {\n case 15:\n let classKeyIndex = -1;\n let styleKeyIndex = -1;\n let hasDynamicKey = false;\n for (let i = 0; i < propsExpression.properties.length; i++) {\n const key = propsExpression.properties[i].key;\n if (isStaticExp(key)) {\n if (key.content === \"class\") {\n classKeyIndex = i;\n } else if (key.content === \"style\") {\n styleKeyIndex = i;\n }\n } else if (!key.isHandlerKey) {\n hasDynamicKey = true;\n }\n }\n const classProp = propsExpression.properties[classKeyIndex];\n const styleProp = propsExpression.properties[styleKeyIndex];\n if (!hasDynamicKey) {\n if (classProp && !isStaticExp(classProp.value)) {\n classProp.value = createCallExpression(\n context.helper(NORMALIZE_CLASS),\n [classProp.value]\n );\n }\n if (styleProp && // the static style is compiled into an object,\n // so use `hasStyleBinding` to ensure that it is a dynamic style binding\n (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,\n // v-bind:style with static literal object\n styleProp.value.type === 17)) {\n styleProp.value = createCallExpression(\n context.helper(NORMALIZE_STYLE),\n [styleProp.value]\n );\n }\n } else {\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [propsExpression]\n );\n }\n break;\n case 14:\n break;\n default:\n propsExpression = createCallExpression(\n context.helper(NORMALIZE_PROPS),\n [\n createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [\n propsExpression\n ])\n ]\n );\n break;\n }\n }\n return {\n props: propsExpression,\n directives: runtimeDirectives,\n patchFlag,\n dynamicPropNames,\n shouldUseBlock\n };\n}\nfunction dedupeProperties(properties) {\n const knownProps = /* @__PURE__ */ new Map();\n const deduped = [];\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (prop.key.type === 8 || !prop.key.isStatic) {\n deduped.push(prop);\n continue;\n }\n const name = prop.key.content;\n const existing = knownProps.get(name);\n if (existing) {\n if (name === \"style\" || name === \"class\" || isOn(name)) {\n mergeAsArray(existing, prop);\n }\n } else {\n knownProps.set(name, prop);\n deduped.push(prop);\n }\n }\n return deduped;\n}\nfunction mergeAsArray(existing, incoming) {\n if (existing.value.type === 17) {\n existing.value.elements.push(incoming.value);\n } else {\n existing.value = createArrayExpression(\n [existing.value, incoming.value],\n existing.loc\n );\n }\n}\nfunction buildDirectiveArgs(dir, context) {\n const dirArgs = [];\n const runtime = directiveImportMap.get(dir);\n if (runtime) {\n dirArgs.push(context.helperString(runtime));\n } else {\n {\n context.helper(RESOLVE_DIRECTIVE);\n context.directives.add(dir.name);\n dirArgs.push(toValidAssetId(dir.name, `directive`));\n }\n }\n const { loc } = dir;\n if (dir.exp) dirArgs.push(dir.exp);\n if (dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(dir.arg);\n }\n if (Object.keys(dir.modifiers).length) {\n if (!dir.arg) {\n if (!dir.exp) {\n dirArgs.push(`void 0`);\n }\n dirArgs.push(`void 0`);\n }\n const trueExpression = createSimpleExpression(`true`, false, loc);\n dirArgs.push(\n createObjectExpression(\n dir.modifiers.map(\n (modifier) => createObjectProperty(modifier, trueExpression)\n ),\n loc\n )\n );\n }\n return createArrayExpression(dirArgs, dir.loc);\n}\nfunction stringifyDynamicPropNames(props) {\n let propsNamesString = `[`;\n for (let i = 0, l = props.length; i < l; i++) {\n propsNamesString += JSON.stringify(props[i]);\n if (i < l - 1) propsNamesString += \", \";\n }\n return propsNamesString + `]`;\n}\nfunction isComponentTag(tag) {\n return tag === \"component\" || tag === \"Component\";\n}\n\nconst transformSlotOutlet = (node, context) => {\n if (isSlotOutlet(node)) {\n const { children, loc } = node;\n const { slotName, slotProps } = processSlotOutlet(node, context);\n const slotArgs = [\n context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,\n slotName,\n \"{}\",\n \"undefined\",\n \"true\"\n ];\n let expectedLen = 2;\n if (slotProps) {\n slotArgs[2] = slotProps;\n expectedLen = 3;\n }\n if (children.length) {\n slotArgs[3] = createFunctionExpression([], children, false, false, loc);\n expectedLen = 4;\n }\n if (context.scopeId && !context.slotted) {\n expectedLen = 5;\n }\n slotArgs.splice(expectedLen);\n node.codegenNode = createCallExpression(\n context.helper(RENDER_SLOT),\n slotArgs,\n loc\n );\n }\n};\nfunction processSlotOutlet(node, context) {\n let slotName = `\"default\"`;\n let slotProps = void 0;\n const nonNameProps = [];\n for (let i = 0; i < node.props.length; i++) {\n const p = node.props[i];\n if (p.type === 6) {\n if (p.value) {\n if (p.name === \"name\") {\n slotName = JSON.stringify(p.value.content);\n } else {\n p.name = camelize(p.name);\n nonNameProps.push(p);\n }\n }\n } else {\n if (p.name === \"bind\" && isStaticArgOf(p.arg, \"name\")) {\n if (p.exp) {\n slotName = p.exp;\n } else if (p.arg && p.arg.type === 4) {\n const name = camelize(p.arg.content);\n slotName = p.exp = createSimpleExpression(name, false, p.arg.loc);\n }\n } else {\n if (p.name === \"bind\" && p.arg && isStaticExp(p.arg)) {\n p.arg.content = camelize(p.arg.content);\n }\n nonNameProps.push(p);\n }\n }\n }\n if (nonNameProps.length > 0) {\n const { props, directives } = buildProps(\n node,\n context,\n nonNameProps,\n false,\n false\n );\n slotProps = props;\n if (directives.length) {\n context.onError(\n createCompilerError(\n 36,\n directives[0].loc\n )\n );\n }\n }\n return {\n slotName,\n slotProps\n };\n}\n\nconst transformOn = (dir, node, context, augmentor) => {\n const { loc, modifiers, arg } = dir;\n if (!dir.exp && !modifiers.length) {\n context.onError(createCompilerError(35, loc));\n }\n let eventName;\n if (arg.type === 4) {\n if (arg.isStatic) {\n let rawName = arg.content;\n if (!!(process.env.NODE_ENV !== \"production\") && rawName.startsWith(\"vnode\")) {\n context.onError(createCompilerError(52, arg.loc));\n }\n if (rawName.startsWith(\"vue:\")) {\n rawName = `vnode-${rawName.slice(4)}`;\n }\n const eventString = node.tagType !== 0 || rawName.startsWith(\"vnode\") || !/[A-Z]/.test(rawName) ? (\n // for non-element and vnode lifecycle event listeners, auto convert\n // it to camelCase. See issue #2249\n toHandlerKey(camelize(rawName))\n ) : (\n // preserve case for plain element listeners that have uppercase\n // letters, as these may be custom elements' custom events\n `on:${rawName}`\n );\n eventName = createSimpleExpression(eventString, true, arg.loc);\n } else {\n eventName = createCompoundExpression([\n `${context.helperString(TO_HANDLER_KEY)}(`,\n arg,\n `)`\n ]);\n }\n } else {\n eventName = arg;\n eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);\n eventName.children.push(`)`);\n }\n let exp = dir.exp;\n if (exp && !exp.content.trim()) {\n exp = void 0;\n }\n let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;\n if (exp) {\n const isMemberExp = isMemberExpression(exp);\n const isInlineStatement = !(isMemberExp || isFnExpression(exp));\n const hasMultipleStatements = exp.content.includes(`;`);\n if (!!(process.env.NODE_ENV !== \"production\") && true) {\n validateBrowserExpression(\n exp,\n context,\n false,\n hasMultipleStatements\n );\n }\n if (isInlineStatement || shouldCache && isMemberExp) {\n exp = createCompoundExpression([\n `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,\n exp,\n hasMultipleStatements ? `}` : `)`\n ]);\n }\n }\n let ret = {\n props: [\n createObjectProperty(\n eventName,\n exp || createSimpleExpression(`() => {}`, false, loc)\n )\n ]\n };\n if (augmentor) {\n ret = augmentor(ret);\n }\n if (shouldCache) {\n ret.props[0].value = context.cache(ret.props[0].value);\n }\n ret.props.forEach((p) => p.key.isHandlerKey = true);\n return ret;\n};\n\nconst transformBind = (dir, _node, context) => {\n const { modifiers, loc } = dir;\n const arg = dir.arg;\n let { exp } = dir;\n if (exp && exp.type === 4 && !exp.content.trim()) {\n {\n exp = void 0;\n }\n }\n if (arg.type !== 4) {\n arg.children.unshift(`(`);\n arg.children.push(`) || \"\"`);\n } else if (!arg.isStatic) {\n arg.content = arg.content ? `${arg.content} || \"\"` : `\"\"`;\n }\n if (modifiers.some((mod) => mod.content === \"camel\")) {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = camelize(arg.content);\n } else {\n arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;\n }\n } else {\n arg.children.unshift(`${context.helperString(CAMELIZE)}(`);\n arg.children.push(`)`);\n }\n }\n if (!context.inSSR) {\n if (modifiers.some((mod) => mod.content === \"prop\")) {\n injectPrefix(arg, \".\");\n }\n if (modifiers.some((mod) => mod.content === \"attr\")) {\n injectPrefix(arg, \"^\");\n }\n }\n return {\n props: [createObjectProperty(arg, exp)]\n };\n};\nconst injectPrefix = (arg, prefix) => {\n if (arg.type === 4) {\n if (arg.isStatic) {\n arg.content = prefix + arg.content;\n } else {\n arg.content = `\\`${prefix}\\${${arg.content}}\\``;\n }\n } else {\n arg.children.unshift(`'${prefix}' + (`);\n arg.children.push(`)`);\n }\n};\n\nconst transformText = (node, context) => {\n if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {\n return () => {\n const children = node.children;\n let currentContainer = void 0;\n let hasText = false;\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child)) {\n hasText = true;\n for (let j = i + 1; j < children.length; j++) {\n const next = children[j];\n if (isText$1(next)) {\n if (!currentContainer) {\n currentContainer = children[i] = createCompoundExpression(\n [child],\n child.loc\n );\n }\n currentContainer.children.push(` + `, next);\n children.splice(j, 1);\n j--;\n } else {\n currentContainer = void 0;\n break;\n }\n }\n }\n }\n if (!hasText || // if this is a plain element with a single text child, leave it\n // as-is since the runtime has dedicated fast path for this by directly\n // setting textContent of the element.\n // for component root it's always normalized anyway.\n children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756\n // custom directives can potentially add DOM elements arbitrarily,\n // we need to avoid setting textContent of the element at runtime\n // to avoid accidentally overwriting the DOM elements added\n // by the user through custom directives.\n !node.props.find(\n (p) => p.type === 7 && !context.directiveTransforms[p.name]\n ) && // in compat mode, <template> tags with no special directives\n // will be rendered as a fragment so its children must be\n // converted into vnodes.\n !(node.tag === \"template\"))) {\n return;\n }\n for (let i = 0; i < children.length; i++) {\n const child = children[i];\n if (isText$1(child) || child.type === 8) {\n const callArgs = [];\n if (child.type !== 2 || child.content !== \" \") {\n callArgs.push(child);\n }\n if (!context.ssr && getConstantType(child, context) === 0) {\n callArgs.push(\n 1 + (!!(process.env.NODE_ENV !== \"production\") ? ` /* ${PatchFlagNames[1]} */` : ``)\n );\n }\n children[i] = {\n type: 12,\n content: child,\n loc: child.loc,\n codegenNode: createCallExpression(\n context.helper(CREATE_TEXT),\n callArgs\n )\n };\n }\n }\n };\n }\n};\n\nconst seen$1 = /* @__PURE__ */ new WeakSet();\nconst transformOnce = (node, context) => {\n if (node.type === 1 && findDir(node, \"once\", true)) {\n if (seen$1.has(node) || context.inVOnce || context.inSSR) {\n return;\n }\n seen$1.add(node);\n context.inVOnce = true;\n context.helper(SET_BLOCK_TRACKING);\n return () => {\n context.inVOnce = false;\n const cur = context.currentNode;\n if (cur.codegenNode) {\n cur.codegenNode = context.cache(\n cur.codegenNode,\n true,\n true\n );\n }\n };\n }\n};\n\nconst transformModel = (dir, node, context) => {\n const { exp, arg } = dir;\n if (!exp) {\n context.onError(\n createCompilerError(41, dir.loc)\n );\n return createTransformProps();\n }\n const rawExp = exp.loc.source.trim();\n const expString = exp.type === 4 ? exp.content : rawExp;\n const bindingType = context.bindingMetadata[rawExp];\n if (bindingType === \"props\" || bindingType === \"props-aliased\") {\n context.onError(createCompilerError(44, exp.loc));\n return createTransformProps();\n }\n if (bindingType === \"literal-const\" || bindingType === \"setup-const\") {\n context.onError(createCompilerError(45, exp.loc));\n return createTransformProps();\n }\n if (!expString.trim() || !isMemberExpression(exp) && true) {\n context.onError(\n createCompilerError(42, exp.loc)\n );\n return createTransformProps();\n }\n const propName = arg ? arg : createSimpleExpression(\"modelValue\", true);\n const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize(arg.content)}` : createCompoundExpression(['\"onUpdate:\" + ', arg]) : `onUpdate:modelValue`;\n let assignmentExp;\n const eventArg = context.isTS ? `($event: any)` : `$event`;\n {\n assignmentExp = createCompoundExpression([\n `${eventArg} => ((`,\n exp,\n `) = $event)`\n ]);\n }\n const props = [\n // modelValue: foo\n createObjectProperty(propName, dir.exp),\n // \"onUpdate:modelValue\": $event => (foo = $event)\n createObjectProperty(eventName, assignmentExp)\n ];\n if (dir.modifiers.length && node.tagType === 1) {\n const modifiers = dir.modifiers.map((m) => m.content).map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);\n const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + \"Modifiers\"']) : `modelModifiers`;\n props.push(\n createObjectProperty(\n modifiersKey,\n createSimpleExpression(\n `{ ${modifiers} }`,\n false,\n dir.loc,\n 2\n )\n )\n );\n }\n return createTransformProps(props);\n};\nfunction createTransformProps(props = []) {\n return { props };\n}\n\nconst validDivisionCharRE = /[\\w).+\\-_$\\]]/;\nconst transformFilter = (node, context) => {\n if (!isCompatEnabled(\"COMPILER_FILTERS\", context)) {\n return;\n }\n if (node.type === 5) {\n rewriteFilter(node.content, context);\n } else if (node.type === 1) {\n node.props.forEach((prop) => {\n if (prop.type === 7 && prop.name !== \"for\" && prop.exp) {\n rewriteFilter(prop.exp, context);\n }\n });\n }\n};\nfunction rewriteFilter(node, context) {\n if (node.type === 4) {\n parseFilter(node, context);\n } else {\n for (let i = 0; i < node.children.length; i++) {\n const child = node.children[i];\n if (typeof child !== \"object\") continue;\n if (child.type === 4) {\n parseFilter(child, context);\n } else if (child.type === 8) {\n rewriteFilter(node, context);\n } else if (child.type === 5) {\n rewriteFilter(child.content, context);\n }\n }\n }\n}\nfunction parseFilter(node, context) {\n const exp = node.content;\n let inSingle = false;\n let inDouble = false;\n let inTemplateString = false;\n let inRegex = false;\n let curly = 0;\n let square = 0;\n let paren = 0;\n let lastFilterIndex = 0;\n let c, prev, i, expression, filters = [];\n for (i = 0; i < exp.length; i++) {\n prev = c;\n c = exp.charCodeAt(i);\n if (inSingle) {\n if (c === 39 && prev !== 92) inSingle = false;\n } else if (inDouble) {\n if (c === 34 && prev !== 92) inDouble = false;\n } else if (inTemplateString) {\n if (c === 96 && prev !== 92) inTemplateString = false;\n } else if (inRegex) {\n if (c === 47 && prev !== 92) inRegex = false;\n } else if (c === 124 && // pipe\n exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {\n if (expression === void 0) {\n lastFilterIndex = i + 1;\n expression = exp.slice(0, i).trim();\n } else {\n pushFilter();\n }\n } else {\n switch (c) {\n case 34:\n inDouble = true;\n break;\n // \"\n case 39:\n inSingle = true;\n break;\n // '\n case 96:\n inTemplateString = true;\n break;\n // `\n case 40:\n paren++;\n break;\n // (\n case 41:\n paren--;\n break;\n // )\n case 91:\n square++;\n break;\n // [\n case 93:\n square--;\n break;\n // ]\n case 123:\n curly++;\n break;\n // {\n case 125:\n curly--;\n break;\n }\n if (c === 47) {\n let j = i - 1;\n let p;\n for (; j >= 0; j--) {\n p = exp.charAt(j);\n if (p !== \" \") break;\n }\n if (!p || !validDivisionCharRE.test(p)) {\n inRegex = true;\n }\n }\n }\n }\n if (expression === void 0) {\n expression = exp.slice(0, i).trim();\n } else if (lastFilterIndex !== 0) {\n pushFilter();\n }\n function pushFilter() {\n filters.push(exp.slice(lastFilterIndex, i).trim());\n lastFilterIndex = i + 1;\n }\n if (filters.length) {\n !!(process.env.NODE_ENV !== \"production\") && warnDeprecation(\n \"COMPILER_FILTERS\",\n context,\n node.loc\n );\n for (i = 0; i < filters.length; i++) {\n expression = wrapFilter(expression, filters[i], context);\n }\n node.content = expression;\n node.ast = void 0;\n }\n}\nfunction wrapFilter(exp, filter, context) {\n context.helper(RESOLVE_FILTER);\n const i = filter.indexOf(\"(\");\n if (i < 0) {\n context.filters.add(filter);\n return `${toValidAssetId(filter, \"filter\")}(${exp})`;\n } else {\n const name = filter.slice(0, i);\n const args = filter.slice(i + 1);\n context.filters.add(name);\n return `${toValidAssetId(name, \"filter\")}(${exp}${args !== \")\" ? \",\" + args : args}`;\n }\n}\n\nconst seen = /* @__PURE__ */ new WeakSet();\nconst transformMemo = (node, context) => {\n if (node.type === 1) {\n const dir = findDir(node, \"memo\");\n if (!dir || seen.has(node) || context.inSSR) {\n return;\n }\n seen.add(node);\n return () => {\n const codegenNode = node.codegenNode || context.currentNode.codegenNode;\n if (codegenNode && codegenNode.type === 13) {\n if (node.tagType !== 1) {\n convertToBlock(codegenNode, context);\n }\n node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [\n dir.exp,\n createFunctionExpression(void 0, codegenNode),\n `_cache`,\n String(context.cached.length)\n ]);\n context.cached.push(null);\n }\n };\n }\n};\n\nconst transformVBindShorthand = (node, context) => {\n if (node.type === 1) {\n for (const prop of node.props) {\n if (prop.type === 7 && prop.name === \"bind\" && (!prop.exp || // #13930 :foo in in-DOM templates will be parsed into :foo=\"\" by browser\n prop.exp.type === 4 && !prop.exp.content.trim()) && prop.arg) {\n const arg = prop.arg;\n if (arg.type !== 4 || !arg.isStatic) {\n context.onError(\n createCompilerError(\n 53,\n arg.loc\n )\n );\n prop.exp = createSimpleExpression(\"\", true, arg.loc);\n } else {\n const propName = camelize(arg.content);\n if (validFirstIdentCharRE.test(propName[0]) || // allow hyphen first char for https://github.com/vuejs/language-tools/pull/3424\n propName[0] === \"-\") {\n prop.exp = createSimpleExpression(propName, false, arg.loc);\n }\n }\n }\n }\n }\n};\n\nfunction getBaseTransformPreset(prefixIdentifiers) {\n return [\n [\n transformVBindShorthand,\n transformOnce,\n transformIf,\n transformMemo,\n transformFor,\n ...[transformFilter] ,\n ...!!(process.env.NODE_ENV !== \"production\") ? [transformExpression] : [],\n transformSlotOutlet,\n transformElement,\n trackSlotScopes,\n transformText\n ],\n {\n on: transformOn,\n bind: transformBind,\n model: transformModel\n }\n ];\n}\nfunction baseCompile(source, options = {}) {\n const onError = options.onError || defaultOnError;\n const isModuleMode = options.mode === \"module\";\n {\n if (options.prefixIdentifiers === true) {\n onError(createCompilerError(48));\n } else if (isModuleMode) {\n onError(createCompilerError(49));\n }\n }\n const prefixIdentifiers = false;\n if (options.cacheHandlers) {\n onError(createCompilerError(50));\n }\n if (options.scopeId && !isModuleMode) {\n onError(createCompilerError(51));\n }\n const resolvedOptions = extend({}, options, {\n prefixIdentifiers\n });\n const ast = isString(source) ? baseParse(source, resolvedOptions) : source;\n const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();\n transform(\n ast,\n extend({}, resolvedOptions, {\n nodeTransforms: [\n ...nodeTransforms,\n ...options.nodeTransforms || []\n // user transforms\n ],\n directiveTransforms: extend(\n {},\n directiveTransforms,\n options.directiveTransforms || {}\n // user transforms\n )\n })\n );\n return generate(ast, resolvedOptions);\n}\n\nconst BindingTypes = {\n \"DATA\": \"data\",\n \"PROPS\": \"props\",\n \"PROPS_ALIASED\": \"props-aliased\",\n \"SETUP_LET\": \"setup-let\",\n \"SETUP_CONST\": \"setup-const\",\n \"SETUP_REACTIVE_CONST\": \"setup-reactive-const\",\n \"SETUP_MAYBE_REF\": \"setup-maybe-ref\",\n \"SETUP_REF\": \"setup-ref\",\n \"OPTIONS\": \"options\",\n \"LITERAL_CONST\": \"literal-const\"\n};\n\nconst noopDirectiveTransform = () => ({ props: [] });\n\nexport { BASE_TRANSITION, BindingTypes, CAMELIZE, CAPITALIZE, CREATE_BLOCK, CREATE_COMMENT, CREATE_ELEMENT_BLOCK, CREATE_ELEMENT_VNODE, CREATE_SLOTS, CREATE_STATIC, CREATE_TEXT, CREATE_VNODE, CompilerDeprecationTypes, ConstantTypes, ElementTypes, ErrorCodes, FRAGMENT, GUARD_REACTIVE_PROPS, IS_MEMO_SAME, IS_REF, KEEP_ALIVE, MERGE_PROPS, NORMALIZE_CLASS, NORMALIZE_PROPS, NORMALIZE_STYLE, Namespaces, NodeTypes, OPEN_BLOCK, POP_SCOPE_ID, PUSH_SCOPE_ID, RENDER_LIST, RENDER_SLOT, RESOLVE_COMPONENT, RESOLVE_DIRECTIVE, RESOLVE_DYNAMIC_COMPONENT, RESOLVE_FILTER, SET_BLOCK_TRACKING, SUSPENSE, TELEPORT, TO_DISPLAY_STRING, TO_HANDLERS, TO_HANDLER_KEY, TS_NODE_TYPES, UNREF, WITH_CTX, WITH_DIRECTIVES, WITH_MEMO, advancePositionWithClone, advancePositionWithMutation, assert, baseCompile, baseParse, buildDirectiveArgs, buildProps, buildSlots, checkCompatEnabled, convertToBlock, createArrayExpression, createAssignmentExpression, createBlockStatement, createCacheExpression, createCallExpression, createCompilerError, createCompoundExpression, createConditionalExpression, createForLoopParams, createFunctionExpression, createIfStatement, createInterpolation, createObjectExpression, createObjectProperty, createReturnStatement, createRoot, createSequenceExpression, createSimpleExpression, createStructuralDirectiveTransform, createTemplateLiteral, createTransformContext, createVNodeCall, errorMessages, extractIdentifiers, findDir, findProp, forAliasRE, generate, getBaseTransformPreset, getConstantType, getMemoedVNodeCall, getVNodeBlockHelper, getVNodeHelper, hasDynamicKeyVBind, hasScopeRef, helperNameMap, injectProp, isAllWhitespace, isCommentOrWhitespace, isCoreComponent, isFnExpression, isFnExpressionBrowser, isFnExpressionNode, isFunctionType, isInDestructureAssignment, isInNewExpression, isMemberExpression, isMemberExpressionBrowser, isMemberExpressionNode, isReferencedIdentifier, isSimpleIdentifier, isSlotOutlet, isStaticArgOf, isStaticExp, isStaticProperty, isStaticPropertyKey, isTemplateNode, isText$1 as isText, isVPre, isVSlot, isWhitespaceText, locStub, noopDirectiveTransform, processExpression, processFor, processIf, processSlotOutlet, registerRuntimeHelpers, resolveComponentType, stringifyExpression, toValidAssetId, trackSlotScopes, trackVForSlotScopes, transform, transformBind, transformElement, transformExpression, transformModel, transformOn, transformVBindShorthand, traverseNode, unwrapTSNode, validFirstIdentCharRE, walkBlockDeclarations, walkFunctionParams, walkIdentifiers, warnDeprecation };\n","/**\n* @vue/compiler-dom v3.5.28\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, getConstantType, createCallExpression, TO_DISPLAY_STRING, transformModel as transformModel$1, findProp, hasDynamicKeyVBind, findDir, isStaticArgOf, transformOn as transformOn$1, isStaticExp, createCompoundExpression, checkCompatEnabled, isCommentOrWhitespace, noopDirectiveTransform, baseCompile, baseParse } from '@vue/compiler-core';\nexport * from '@vue/compiler-core';\nimport { isVoidTag, isHTMLTag, isSVGTag, isMathMLTag, parseStringStyle, capitalize, makeMap, extend } from '@vue/shared';\n\nconst V_MODEL_RADIO = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vModelRadio` : ``);\nconst V_MODEL_CHECKBOX = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelCheckbox` : ``\n);\nconst V_MODEL_TEXT = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vModelText` : ``);\nconst V_MODEL_SELECT = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelSelect` : ``\n);\nconst V_MODEL_DYNAMIC = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vModelDynamic` : ``\n);\nconst V_ON_WITH_MODIFIERS = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vOnModifiersGuard` : ``\n);\nconst V_ON_WITH_KEYS = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `vOnKeysGuard` : ``\n);\nconst V_SHOW = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `vShow` : ``);\nconst TRANSITION = /* @__PURE__ */ Symbol(!!(process.env.NODE_ENV !== \"production\") ? `Transition` : ``);\nconst TRANSITION_GROUP = /* @__PURE__ */ Symbol(\n !!(process.env.NODE_ENV !== \"production\") ? `TransitionGroup` : ``\n);\nregisterRuntimeHelpers({\n [V_MODEL_RADIO]: `vModelRadio`,\n [V_MODEL_CHECKBOX]: `vModelCheckbox`,\n [V_MODEL_TEXT]: `vModelText`,\n [V_MODEL_SELECT]: `vModelSelect`,\n [V_MODEL_DYNAMIC]: `vModelDynamic`,\n [V_ON_WITH_MODIFIERS]: `withModifiers`,\n [V_ON_WITH_KEYS]: `withKeys`,\n [V_SHOW]: `vShow`,\n [TRANSITION]: `Transition`,\n [TRANSITION_GROUP]: `TransitionGroup`\n});\n\nlet decoder;\nfunction decodeHtmlBrowser(raw, asAttr = false) {\n if (!decoder) {\n decoder = document.createElement(\"div\");\n }\n if (asAttr) {\n decoder.innerHTML = `<div foo=\"${raw.replace(/\"/g, \""\")}\">`;\n return decoder.children[0].getAttribute(\"foo\");\n } else {\n decoder.innerHTML = raw;\n return decoder.textContent;\n }\n}\n\nconst parserOptions = {\n parseMode: \"html\",\n isVoidTag,\n isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag) || isMathMLTag(tag),\n isPreTag: (tag) => tag === \"pre\",\n isIgnoreNewlineTag: (tag) => tag === \"pre\" || tag === \"textarea\",\n decodeEntities: decodeHtmlBrowser ,\n isBuiltInComponent: (tag) => {\n if (tag === \"Transition\" || tag === \"transition\") {\n return TRANSITION;\n } else if (tag === \"TransitionGroup\" || tag === \"transition-group\") {\n return TRANSITION_GROUP;\n }\n },\n // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher\n getNamespace(tag, parent, rootNamespace) {\n let ns = parent ? parent.ns : rootNamespace;\n if (parent && ns === 2) {\n if (parent.tag === \"annotation-xml\") {\n if (tag === \"svg\") {\n return 1;\n }\n if (parent.props.some(\n (a) => a.type === 6 && a.name === \"encoding\" && a.value != null && (a.value.content === \"text/html\" || a.value.content === \"application/xhtml+xml\")\n )) {\n ns = 0;\n }\n } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== \"mglyph\" && tag !== \"malignmark\") {\n ns = 0;\n }\n } else if (parent && ns === 1) {\n if (parent.tag === \"foreignObject\" || parent.tag === \"desc\" || parent.tag === \"title\") {\n ns = 0;\n }\n }\n if (ns === 0) {\n if (tag === \"svg\") {\n return 1;\n }\n if (tag === \"math\") {\n return 2;\n }\n }\n return ns;\n }\n};\n\nconst transformStyle = (node) => {\n if (node.type === 1) {\n node.props.forEach((p, i) => {\n if (p.type === 6 && p.name === \"style\" && p.value) {\n node.props[i] = {\n type: 7,\n name: `bind`,\n arg: createSimpleExpression(`style`, true, p.loc),\n exp: parseInlineCSS(p.value.content, p.loc),\n modifiers: [],\n loc: p.loc\n };\n }\n });\n }\n};\nconst parseInlineCSS = (cssText, loc) => {\n const normalized = parseStringStyle(cssText);\n return createSimpleExpression(\n JSON.stringify(normalized),\n false,\n loc,\n 3\n );\n};\n\nfunction createDOMCompilerError(code, loc) {\n return createCompilerError(\n code,\n loc,\n !!(process.env.NODE_ENV !== \"production\") || false ? DOMErrorMessages : void 0\n );\n}\nconst DOMErrorCodes = {\n \"X_V_HTML_NO_EXPRESSION\": 54,\n \"54\": \"X_V_HTML_NO_EXPRESSION\",\n \"X_V_HTML_WITH_CHILDREN\": 55,\n \"55\": \"X_V_HTML_WITH_CHILDREN\",\n \"X_V_TEXT_NO_EXPRESSION\": 56,\n \"56\": \"X_V_TEXT_NO_EXPRESSION\",\n \"X_V_TEXT_WITH_CHILDREN\": 57,\n \"57\": \"X_V_TEXT_WITH_CHILDREN\",\n \"X_V_MODEL_ON_INVALID_ELEMENT\": 58,\n \"58\": \"X_V_MODEL_ON_INVALID_ELEMENT\",\n \"X_V_MODEL_ARG_ON_ELEMENT\": 59,\n \"59\": \"X_V_MODEL_ARG_ON_ELEMENT\",\n \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\": 60,\n \"60\": \"X_V_MODEL_ON_FILE_INPUT_ELEMENT\",\n \"X_V_MODEL_UNNECESSARY_VALUE\": 61,\n \"61\": \"X_V_MODEL_UNNECESSARY_VALUE\",\n \"X_V_SHOW_NO_EXPRESSION\": 62,\n \"62\": \"X_V_SHOW_NO_EXPRESSION\",\n \"X_TRANSITION_INVALID_CHILDREN\": 63,\n \"63\": \"X_TRANSITION_INVALID_CHILDREN\",\n \"X_IGNORED_SIDE_EFFECT_TAG\": 64,\n \"64\": \"X_IGNORED_SIDE_EFFECT_TAG\",\n \"__EXTEND_POINT__\": 65,\n \"65\": \"__EXTEND_POINT__\"\n};\nconst DOMErrorMessages = {\n [54]: `v-html is missing expression.`,\n [55]: `v-html will override element children.`,\n [56]: `v-text is missing expression.`,\n [57]: `v-text will override element children.`,\n [58]: `v-model can only be used on <input>, <textarea> and <select> elements.`,\n [59]: `v-model argument is not supported on plain elements.`,\n [60]: `v-model cannot be used on file inputs since they are read-only. Use a v-on:change listener instead.`,\n [61]: `Unnecessary value binding used alongside v-model. It will interfere with v-model's behavior.`,\n [62]: `v-show is missing expression.`,\n [63]: `<Transition> expects exactly one child element or component.`,\n [64]: `Tags with side effect (<script> and <style>) are ignored in client component templates.`\n};\n\nconst transformVHtml = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(54, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(55, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n createObjectProperty(\n createSimpleExpression(`innerHTML`, true, loc),\n exp || createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformVText = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(56, loc)\n );\n }\n if (node.children.length) {\n context.onError(\n createDOMCompilerError(57, loc)\n );\n node.children.length = 0;\n }\n return {\n props: [\n createObjectProperty(\n createSimpleExpression(`textContent`, true),\n exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression(\n context.helperString(TO_DISPLAY_STRING),\n [exp],\n loc\n ) : createSimpleExpression(\"\", true)\n )\n ]\n };\n};\n\nconst transformModel = (dir, node, context) => {\n const baseResult = transformModel$1(dir, node, context);\n if (!baseResult.props.length || node.tagType === 1) {\n return baseResult;\n }\n if (dir.arg) {\n context.onError(\n createDOMCompilerError(\n 59,\n dir.arg.loc\n )\n );\n }\n function checkDuplicatedValue() {\n const value = findDir(node, \"bind\");\n if (value && isStaticArgOf(value.arg, \"value\")) {\n context.onError(\n createDOMCompilerError(\n 61,\n value.loc\n )\n );\n }\n }\n const { tag } = node;\n const isCustomElement = context.isCustomElement(tag);\n if (tag === \"input\" || tag === \"textarea\" || tag === \"select\" || isCustomElement) {\n let directiveToUse = V_MODEL_TEXT;\n let isInvalidType = false;\n if (tag === \"input\" || isCustomElement) {\n const type = findProp(node, `type`);\n if (type) {\n if (type.type === 7) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else if (type.value) {\n switch (type.value.content) {\n case \"radio\":\n directiveToUse = V_MODEL_RADIO;\n break;\n case \"checkbox\":\n directiveToUse = V_MODEL_CHECKBOX;\n break;\n case \"file\":\n isInvalidType = true;\n context.onError(\n createDOMCompilerError(\n 60,\n dir.loc\n )\n );\n break;\n default:\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n break;\n }\n }\n } else if (hasDynamicKeyVBind(node)) {\n directiveToUse = V_MODEL_DYNAMIC;\n } else {\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n }\n } else if (tag === \"select\") {\n directiveToUse = V_MODEL_SELECT;\n } else {\n !!(process.env.NODE_ENV !== \"production\") && checkDuplicatedValue();\n }\n if (!isInvalidType) {\n baseResult.needRuntime = context.helper(directiveToUse);\n }\n } else {\n context.onError(\n createDOMCompilerError(\n 58,\n dir.loc\n )\n );\n }\n baseResult.props = baseResult.props.filter(\n (p) => !(p.key.type === 4 && p.key.content === \"modelValue\")\n );\n return baseResult;\n};\n\nconst isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);\nconst isNonKeyModifier = /* @__PURE__ */ makeMap(\n // event propagation management\n `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`\n);\nconst maybeKeyModifier = /* @__PURE__ */ makeMap(\"left,right\");\nconst isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`);\nconst resolveModifiers = (key, modifiers, context, loc) => {\n const keyModifiers = [];\n const nonKeyModifiers = [];\n const eventOptionModifiers = [];\n for (let i = 0; i < modifiers.length; i++) {\n const modifier = modifiers[i].content;\n if (modifier === \"native\" && checkCompatEnabled(\n \"COMPILER_V_ON_NATIVE\",\n context,\n loc\n )) {\n eventOptionModifiers.push(modifier);\n } else if (isEventOptionModifier(modifier)) {\n eventOptionModifiers.push(modifier);\n } else {\n if (maybeKeyModifier(modifier)) {\n if (isStaticExp(key)) {\n if (isKeyboardEvent(key.content.toLowerCase())) {\n keyModifiers.push(modifier);\n } else {\n nonKeyModifiers.push(modifier);\n }\n } else {\n keyModifiers.push(modifier);\n nonKeyModifiers.push(modifier);\n }\n } else {\n if (isNonKeyModifier(modifier)) {\n nonKeyModifiers.push(modifier);\n } else {\n keyModifiers.push(modifier);\n }\n }\n }\n }\n return {\n keyModifiers,\n nonKeyModifiers,\n eventOptionModifiers\n };\n};\nconst transformClick = (key, event) => {\n const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === \"onclick\";\n return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([\n `(`,\n key,\n `) === \"onClick\" ? \"${event}\" : (`,\n key,\n `)`\n ]) : key;\n};\nconst transformOn = (dir, node, context) => {\n return transformOn$1(dir, node, context, (baseResult) => {\n const { modifiers } = dir;\n if (!modifiers.length) return baseResult;\n let { key, value: handlerExp } = baseResult.props[0];\n const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);\n if (nonKeyModifiers.includes(\"right\")) {\n key = transformClick(key, `onContextmenu`);\n }\n if (nonKeyModifiers.includes(\"middle\")) {\n key = transformClick(key, `onMouseup`);\n }\n if (nonKeyModifiers.length) {\n handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [\n handlerExp,\n JSON.stringify(nonKeyModifiers)\n ]);\n }\n if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard\n (!isStaticExp(key) || isKeyboardEvent(key.content.toLowerCase()))) {\n handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [\n handlerExp,\n JSON.stringify(keyModifiers)\n ]);\n }\n if (eventOptionModifiers.length) {\n const modifierPostfix = eventOptionModifiers.map(capitalize).join(\"\");\n key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + \"${modifierPostfix}\"`]);\n }\n return {\n props: [createObjectProperty(key, handlerExp)]\n };\n });\n};\n\nconst transformShow = (dir, node, context) => {\n const { exp, loc } = dir;\n if (!exp) {\n context.onError(\n createDOMCompilerError(62, loc)\n );\n }\n return {\n props: [],\n needRuntime: context.helper(V_SHOW)\n };\n};\n\nconst transformTransition = (node, context) => {\n if (node.type === 1 && node.tagType === 1) {\n const component = context.isBuiltInComponent(node.tag);\n if (component === TRANSITION) {\n return () => {\n if (!node.children.length) {\n return;\n }\n if (hasMultipleChildren(node)) {\n context.onError(\n createDOMCompilerError(\n 63,\n {\n start: node.children[0].loc.start,\n end: node.children[node.children.length - 1].loc.end,\n source: \"\"\n }\n )\n );\n }\n const child = node.children[0];\n if (child.type === 1) {\n for (const p of child.props) {\n if (p.type === 7 && p.name === \"show\") {\n node.props.push({\n type: 6,\n name: \"persisted\",\n nameLoc: node.loc,\n value: void 0,\n loc: node.loc\n });\n }\n }\n }\n };\n }\n }\n};\nfunction hasMultipleChildren(node) {\n const children = node.children = node.children.filter(\n (c) => !isCommentOrWhitespace(c)\n );\n const child = children[0];\n return children.length !== 1 || child.type === 11 || child.type === 9 && child.branches.some(hasMultipleChildren);\n}\n\nconst ignoreSideEffectTags = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && (node.tag === \"script\" || node.tag === \"style\")) {\n !!(process.env.NODE_ENV !== \"production\") && context.onError(\n createDOMCompilerError(\n 64,\n node.loc\n )\n );\n context.removeNode();\n }\n};\n\nfunction isValidHTMLNesting(parent, child) {\n if (parent === \"template\") {\n return true;\n }\n if (parent in onlyValidChildren) {\n return onlyValidChildren[parent].has(child);\n }\n if (child in onlyValidParents) {\n return onlyValidParents[child].has(parent);\n }\n if (parent in knownInvalidChildren) {\n if (knownInvalidChildren[parent].has(child)) return false;\n }\n if (child in knownInvalidParents) {\n if (knownInvalidParents[child].has(parent)) return false;\n }\n return true;\n}\nconst headings = /* @__PURE__ */ new Set([\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"]);\nconst emptySet = /* @__PURE__ */ new Set([]);\nconst onlyValidChildren = {\n head: /* @__PURE__ */ new Set([\n \"base\",\n \"basefront\",\n \"bgsound\",\n \"link\",\n \"meta\",\n \"title\",\n \"noscript\",\n \"noframes\",\n \"style\",\n \"script\",\n \"template\"\n ]),\n optgroup: /* @__PURE__ */ new Set([\"option\"]),\n select: /* @__PURE__ */ new Set([\"optgroup\", \"option\", \"hr\"]),\n // table\n table: /* @__PURE__ */ new Set([\"caption\", \"colgroup\", \"tbody\", \"tfoot\", \"thead\"]),\n tr: /* @__PURE__ */ new Set([\"td\", \"th\"]),\n colgroup: /* @__PURE__ */ new Set([\"col\"]),\n tbody: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"tr\"]),\n tfoot: /* @__PURE__ */ new Set([\"tr\"]),\n // these elements can not have any children elements\n script: emptySet,\n iframe: emptySet,\n option: emptySet,\n textarea: emptySet,\n style: emptySet,\n title: emptySet\n};\nconst onlyValidParents = {\n // sections\n html: emptySet,\n body: /* @__PURE__ */ new Set([\"html\"]),\n head: /* @__PURE__ */ new Set([\"html\"]),\n // table\n td: /* @__PURE__ */ new Set([\"tr\"]),\n colgroup: /* @__PURE__ */ new Set([\"table\"]),\n caption: /* @__PURE__ */ new Set([\"table\"]),\n tbody: /* @__PURE__ */ new Set([\"table\"]),\n tfoot: /* @__PURE__ */ new Set([\"table\"]),\n col: /* @__PURE__ */ new Set([\"colgroup\"]),\n th: /* @__PURE__ */ new Set([\"tr\"]),\n thead: /* @__PURE__ */ new Set([\"table\"]),\n tr: /* @__PURE__ */ new Set([\"tbody\", \"thead\", \"tfoot\"]),\n // data list\n dd: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n dt: /* @__PURE__ */ new Set([\"dl\", \"div\"]),\n // other\n figcaption: /* @__PURE__ */ new Set([\"figure\"]),\n // li: new Set([\"ul\", \"ol\"]),\n summary: /* @__PURE__ */ new Set([\"details\"]),\n area: /* @__PURE__ */ new Set([\"map\"])\n};\nconst knownInvalidChildren = {\n p: /* @__PURE__ */ new Set([\n \"address\",\n \"article\",\n \"aside\",\n \"blockquote\",\n \"center\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"fieldset\",\n \"figure\",\n \"footer\",\n \"form\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"header\",\n \"hgroup\",\n \"hr\",\n \"li\",\n \"main\",\n \"nav\",\n \"menu\",\n \"ol\",\n \"p\",\n \"pre\",\n \"section\",\n \"table\",\n \"ul\"\n ]),\n svg: /* @__PURE__ */ new Set([\n \"b\",\n \"blockquote\",\n \"br\",\n \"code\",\n \"dd\",\n \"div\",\n \"dl\",\n \"dt\",\n \"em\",\n \"embed\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"hr\",\n \"i\",\n \"img\",\n \"li\",\n \"menu\",\n \"meta\",\n \"ol\",\n \"p\",\n \"pre\",\n \"ruby\",\n \"s\",\n \"small\",\n \"span\",\n \"strong\",\n \"sub\",\n \"sup\",\n \"table\",\n \"u\",\n \"ul\",\n \"var\"\n ])\n};\nconst knownInvalidParents = {\n a: /* @__PURE__ */ new Set([\"a\"]),\n button: /* @__PURE__ */ new Set([\"button\"]),\n dd: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n dt: /* @__PURE__ */ new Set([\"dd\", \"dt\"]),\n form: /* @__PURE__ */ new Set([\"form\"]),\n li: /* @__PURE__ */ new Set([\"li\"]),\n h1: headings,\n h2: headings,\n h3: headings,\n h4: headings,\n h5: headings,\n h6: headings\n};\n\nconst validateHtmlNesting = (node, context) => {\n if (node.type === 1 && node.tagType === 0 && context.parent && context.parent.type === 1 && context.parent.tagType === 0 && !isValidHTMLNesting(context.parent.tag, node.tag)) {\n const error = new SyntaxError(\n `<${node.tag}> cannot be child of <${context.parent.tag}>, according to HTML specifications. This can cause hydration errors or potentially disrupt future functionality.`\n );\n error.loc = node.loc;\n context.onWarn(error);\n }\n};\n\nconst DOMNodeTransforms = [\n transformStyle,\n ...!!(process.env.NODE_ENV !== \"production\") ? [transformTransition, validateHtmlNesting] : []\n];\nconst DOMDirectiveTransforms = {\n cloak: noopDirectiveTransform,\n html: transformVHtml,\n text: transformVText,\n model: transformModel,\n // override compiler-core\n on: transformOn,\n // override compiler-core\n show: transformShow\n};\nfunction compile(src, options = {}) {\n return baseCompile(\n src,\n extend({}, parserOptions, options, {\n nodeTransforms: [\n // ignore <script> and <tag>\n // this is not put inside DOMNodeTransforms because that list is used\n // by compiler-ssr to generate vnode fallback branches\n ignoreSideEffectTags,\n ...DOMNodeTransforms,\n ...options.nodeTransforms || []\n ],\n directiveTransforms: extend(\n {},\n DOMDirectiveTransforms,\n options.directiveTransforms || {}\n ),\n transformHoist: null \n })\n );\n}\nfunction parse(template, options = {}) {\n return baseParse(template, extend({}, parserOptions, options));\n}\n\nexport { DOMDirectiveTransforms, DOMErrorCodes, DOMErrorMessages, DOMNodeTransforms, TRANSITION, TRANSITION_GROUP, V_MODEL_CHECKBOX, V_MODEL_DYNAMIC, V_MODEL_RADIO, V_MODEL_SELECT, V_MODEL_TEXT, V_ON_WITH_KEYS, V_ON_WITH_MODIFIERS, V_SHOW, compile, createDOMCompilerError, parse, parserOptions, transformStyle };\n","/**\n* vue v3.5.28\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\n'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar compilerDom = require('@vue/compiler-dom');\nvar runtimeDom = require('@vue/runtime-dom');\nvar shared = require('@vue/shared');\n\nfunction _interopNamespaceDefault(e) {\n var n = Object.create(null);\n if (e) {\n for (var k in e) {\n n[k] = e[k];\n }\n }\n n.default = e;\n return Object.freeze(n);\n}\n\nvar runtimeDom__namespace = /*#__PURE__*/_interopNamespaceDefault(runtimeDom);\n\nconst compileCache = /* @__PURE__ */ Object.create(null);\nfunction compileToFunction(template, options) {\n if (!shared.isString(template)) {\n if (template.nodeType) {\n template = template.innerHTML;\n } else {\n return shared.NOOP;\n }\n }\n const key = shared.genCacheKey(template, options);\n const cached = compileCache[key];\n if (cached) {\n return cached;\n }\n if (template[0] === \"#\") {\n const el = document.querySelector(template);\n template = el ? el.innerHTML : ``;\n }\n const opts = shared.extend(\n {\n hoistStatic: true,\n onError: void 0,\n onWarn: shared.NOOP\n },\n options\n );\n if (!opts.isCustomElement && typeof customElements !== \"undefined\") {\n opts.isCustomElement = (tag) => !!customElements.get(tag);\n }\n const { code } = compilerDom.compile(template, opts);\n const render = new Function(\"Vue\", code)(runtimeDom__namespace);\n render._rc = true;\n return compileCache[key] = render;\n}\nruntimeDom.registerRuntimeCompiler(compileToFunction);\n\nexports.compile = compileToFunction;\nObject.keys(runtimeDom).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = runtimeDom[k];\n});\n","'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./dist/vue.cjs.prod.js')\n} else {\n module.exports = require('./dist/vue.cjs.js')\n}\n","/*!\n * Cropper.js v1.6.2\n * https://fengyuanchen.github.io/cropperjs\n *\n * Copyright 2015-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2024-04-21T07:43:05.335Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Cropper = factory());\n})(this, (function () { 'use strict';\n\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n }\n function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n }\n function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n var IS_TOUCH_DEVICE = IS_BROWSER && WINDOW.document.documentElement ? 'ontouchstart' in WINDOW.document.documentElement : false;\n var HAS_POINTER_EVENT = IS_BROWSER ? 'PointerEvent' in WINDOW : false;\n var NAMESPACE = 'cropper';\n\n // Actions\n var ACTION_ALL = 'all';\n var ACTION_CROP = 'crop';\n var ACTION_MOVE = 'move';\n var ACTION_ZOOM = 'zoom';\n var ACTION_EAST = 'e';\n var ACTION_WEST = 'w';\n var ACTION_SOUTH = 's';\n var ACTION_NORTH = 'n';\n var ACTION_NORTH_EAST = 'ne';\n var ACTION_NORTH_WEST = 'nw';\n var ACTION_SOUTH_EAST = 'se';\n var ACTION_SOUTH_WEST = 'sw';\n\n // Classes\n var CLASS_CROP = \"\".concat(NAMESPACE, \"-crop\");\n var CLASS_DISABLED = \"\".concat(NAMESPACE, \"-disabled\");\n var CLASS_HIDDEN = \"\".concat(NAMESPACE, \"-hidden\");\n var CLASS_HIDE = \"\".concat(NAMESPACE, \"-hide\");\n var CLASS_INVISIBLE = \"\".concat(NAMESPACE, \"-invisible\");\n var CLASS_MODAL = \"\".concat(NAMESPACE, \"-modal\");\n var CLASS_MOVE = \"\".concat(NAMESPACE, \"-move\");\n\n // Data keys\n var DATA_ACTION = \"\".concat(NAMESPACE, \"Action\");\n var DATA_PREVIEW = \"\".concat(NAMESPACE, \"Preview\");\n\n // Drag modes\n var DRAG_MODE_CROP = 'crop';\n var DRAG_MODE_MOVE = 'move';\n var DRAG_MODE_NONE = 'none';\n\n // Events\n var EVENT_CROP = 'crop';\n var EVENT_CROP_END = 'cropend';\n var EVENT_CROP_MOVE = 'cropmove';\n var EVENT_CROP_START = 'cropstart';\n var EVENT_DBLCLICK = 'dblclick';\n var EVENT_TOUCH_START = IS_TOUCH_DEVICE ? 'touchstart' : 'mousedown';\n var EVENT_TOUCH_MOVE = IS_TOUCH_DEVICE ? 'touchmove' : 'mousemove';\n var EVENT_TOUCH_END = IS_TOUCH_DEVICE ? 'touchend touchcancel' : 'mouseup';\n var EVENT_POINTER_DOWN = HAS_POINTER_EVENT ? 'pointerdown' : EVENT_TOUCH_START;\n var EVENT_POINTER_MOVE = HAS_POINTER_EVENT ? 'pointermove' : EVENT_TOUCH_MOVE;\n var EVENT_POINTER_UP = HAS_POINTER_EVENT ? 'pointerup pointercancel' : EVENT_TOUCH_END;\n var EVENT_READY = 'ready';\n var EVENT_RESIZE = 'resize';\n var EVENT_WHEEL = 'wheel';\n var EVENT_ZOOM = 'zoom';\n\n // Mime types\n var MIME_TYPE_JPEG = 'image/jpeg';\n\n // RegExps\n var REGEXP_ACTIONS = /^e|w|s|n|se|sw|ne|nw|all|crop|move|zoom$/;\n var REGEXP_DATA_URL = /^data:/;\n var REGEXP_DATA_URL_JPEG = /^data:image\\/jpeg;base64,/;\n var REGEXP_TAG_NAME = /^img|canvas$/i;\n\n // Misc\n // Inspired by the default width and height of a canvas element.\n var MIN_CONTAINER_WIDTH = 200;\n var MIN_CONTAINER_HEIGHT = 100;\n\n var DEFAULTS = {\n // Define the view mode of the cropper\n viewMode: 0,\n // 0, 1, 2, 3\n\n // Define the dragging mode of the cropper\n dragMode: DRAG_MODE_CROP,\n // 'crop', 'move' or 'none'\n\n // Define the initial aspect ratio of the crop box\n initialAspectRatio: NaN,\n // Define the aspect ratio of the crop box\n aspectRatio: NaN,\n // An object with the previous cropping result data\n data: null,\n // A selector for adding extra containers to preview\n preview: '',\n // Re-render the cropper when resize the window\n responsive: true,\n // Restore the cropped area after resize the window\n restore: true,\n // Check if the current image is a cross-origin image\n checkCrossOrigin: true,\n // Check the current image's Exif Orientation information\n checkOrientation: true,\n // Show the black modal\n modal: true,\n // Show the dashed lines for guiding\n guides: true,\n // Show the center indicator for guiding\n center: true,\n // Show the white modal to highlight the crop box\n highlight: true,\n // Show the grid background\n background: true,\n // Enable to crop the image automatically when initialize\n autoCrop: true,\n // Define the percentage of automatic cropping area when initializes\n autoCropArea: 0.8,\n // Enable to move the image\n movable: true,\n // Enable to rotate the image\n rotatable: true,\n // Enable to scale the image\n scalable: true,\n // Enable to zoom the image\n zoomable: true,\n // Enable to zoom the image by dragging touch\n zoomOnTouch: true,\n // Enable to zoom the image by wheeling mouse\n zoomOnWheel: true,\n // Define zoom ratio when zoom the image by wheeling mouse\n wheelZoomRatio: 0.1,\n // Enable to move the crop box\n cropBoxMovable: true,\n // Enable to resize the crop box\n cropBoxResizable: true,\n // Toggle drag mode between \"crop\" and \"move\" when click twice on the cropper\n toggleDragModeOnDblclick: true,\n // Size limitation\n minCanvasWidth: 0,\n minCanvasHeight: 0,\n minCropBoxWidth: 0,\n minCropBoxHeight: 0,\n minContainerWidth: MIN_CONTAINER_WIDTH,\n minContainerHeight: MIN_CONTAINER_HEIGHT,\n // Shortcuts of events\n ready: null,\n cropstart: null,\n cropmove: null,\n cropend: null,\n crop: null,\n zoom: null\n };\n\n var TEMPLATE = '<div class=\"cropper-container\" touch-action=\"none\">' + '<div class=\"cropper-wrap-box\">' + '<div class=\"cropper-canvas\"></div>' + '</div>' + '<div class=\"cropper-drag-box\"></div>' + '<div class=\"cropper-crop-box\">' + '<span class=\"cropper-view-box\"></span>' + '<span class=\"cropper-dashed dashed-h\"></span>' + '<span class=\"cropper-dashed dashed-v\"></span>' + '<span class=\"cropper-center\"></span>' + '<span class=\"cropper-face\"></span>' + '<span class=\"cropper-line line-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-line line-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-line line-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-line line-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-e\" data-cropper-action=\"e\"></span>' + '<span class=\"cropper-point point-n\" data-cropper-action=\"n\"></span>' + '<span class=\"cropper-point point-w\" data-cropper-action=\"w\"></span>' + '<span class=\"cropper-point point-s\" data-cropper-action=\"s\"></span>' + '<span class=\"cropper-point point-ne\" data-cropper-action=\"ne\"></span>' + '<span class=\"cropper-point point-nw\" data-cropper-action=\"nw\"></span>' + '<span class=\"cropper-point point-sw\" data-cropper-action=\"sw\"></span>' + '<span class=\"cropper-point point-se\" data-cropper-action=\"se\"></span>' + '</div>' + '</div>';\n\n /**\n * Check if the given value is not a number.\n */\n var isNaN = Number.isNaN || WINDOW.isNaN;\n\n /**\n * Check if the given value is a number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a number, else `false`.\n */\n function isNumber(value) {\n return typeof value === 'number' && !isNaN(value);\n }\n\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n\n /**\n * Check if the given value is undefined.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is undefined, else `false`.\n */\n function isUndefined(value) {\n return typeof value === 'undefined';\n }\n\n /**\n * Check if the given value is an object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is an object, else `false`.\n */\n function isObject(value) {\n return _typeof(value) === 'object' && value !== null;\n }\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /**\n * Check if the given value is a plain object.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a plain object, else `false`.\n */\n function isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n try {\n var _constructor = value.constructor;\n var prototype = _constructor.prototype;\n return _constructor && prototype && hasOwnProperty.call(prototype, 'isPrototypeOf');\n } catch (error) {\n return false;\n }\n }\n\n /**\n * Check if the given value is a function.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a function, else `false`.\n */\n function isFunction(value) {\n return typeof value === 'function';\n }\n var slice = Array.prototype.slice;\n\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n\n /**\n * Iterate the given data.\n * @param {*} data - The data to iterate.\n * @param {Function} callback - The process function for each element.\n * @returns {*} The original data.\n */\n function forEach(data, callback) {\n if (data && isFunction(callback)) {\n if (Array.isArray(data) || isNumber(data.length) /* array-like */) {\n toArray(data).forEach(function (value, key) {\n callback.call(data, value, key, data);\n });\n } else if (isObject(data)) {\n Object.keys(data).forEach(function (key) {\n callback.call(data, data[key], key, data);\n });\n }\n }\n return data;\n }\n\n /**\n * Extend the given object.\n * @param {*} target - The target object to extend.\n * @param {*} args - The rest objects for merging to the target object.\n * @returns {Object} The extended object.\n */\n var assign = Object.assign || function assign(target) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n if (isObject(target) && args.length > 0) {\n args.forEach(function (arg) {\n if (isObject(arg)) {\n Object.keys(arg).forEach(function (key) {\n target[key] = arg[key];\n });\n }\n });\n }\n return target;\n };\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n var REGEXP_SUFFIX = /^width|height|left|top|marginLeft|marginTop$/;\n\n /**\n * Apply styles to the given element.\n * @param {Element} element - The target element.\n * @param {Object} styles - The styles for applying.\n */\n function setStyle(element, styles) {\n var style = element.style;\n forEach(styles, function (value, property) {\n if (REGEXP_SUFFIX.test(property) && isNumber(value)) {\n value = \"\".concat(value, \"px\");\n }\n style[property] = value;\n });\n }\n\n /**\n * Check if the given element has a special class.\n * @param {Element} element - The element to check.\n * @param {string} value - The class to search.\n * @returns {boolean} Returns `true` if the special class was found.\n */\n function hasClass(element, value) {\n return element.classList ? element.classList.contains(value) : element.className.indexOf(value) > -1;\n }\n\n /**\n * Add classes to the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be added.\n */\n function addClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n addClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.add(value);\n return;\n }\n var className = element.className.trim();\n if (!className) {\n element.className = value;\n } else if (className.indexOf(value) < 0) {\n element.className = \"\".concat(className, \" \").concat(value);\n }\n }\n\n /**\n * Remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be removed.\n */\n function removeClass(element, value) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n removeClass(elem, value);\n });\n return;\n }\n if (element.classList) {\n element.classList.remove(value);\n return;\n }\n if (element.className.indexOf(value) >= 0) {\n element.className = element.className.replace(value, '');\n }\n }\n\n /**\n * Add or remove classes from the given element.\n * @param {Element} element - The target element.\n * @param {string} value - The classes to be toggled.\n * @param {boolean} added - Add only.\n */\n function toggleClass(element, value, added) {\n if (!value) {\n return;\n }\n if (isNumber(element.length)) {\n forEach(element, function (elem) {\n toggleClass(elem, value, added);\n });\n return;\n }\n\n // IE10-11 doesn't support the second parameter of `classList.toggle`\n if (added) {\n addClass(element, value);\n } else {\n removeClass(element, value);\n }\n }\n var REGEXP_CAMEL_CASE = /([a-z\\d])([A-Z])/g;\n\n /**\n * Transform the given string from camelCase to kebab-case\n * @param {string} value - The value to transform.\n * @returns {string} The transformed value.\n */\n function toParamCase(value) {\n return value.replace(REGEXP_CAMEL_CASE, '$1-$2').toLowerCase();\n }\n\n /**\n * Get data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to get.\n * @returns {string} The data value.\n */\n function getData(element, name) {\n if (isObject(element[name])) {\n return element[name];\n }\n if (element.dataset) {\n return element.dataset[name];\n }\n return element.getAttribute(\"data-\".concat(toParamCase(name)));\n }\n\n /**\n * Set data to the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to set.\n * @param {string} data - The data value.\n */\n function setData(element, name, data) {\n if (isObject(data)) {\n element[name] = data;\n } else if (element.dataset) {\n element.dataset[name] = data;\n } else {\n element.setAttribute(\"data-\".concat(toParamCase(name)), data);\n }\n }\n\n /**\n * Remove data from the given element.\n * @param {Element} element - The target element.\n * @param {string} name - The data key to remove.\n */\n function removeData(element, name) {\n if (isObject(element[name])) {\n try {\n delete element[name];\n } catch (error) {\n element[name] = undefined;\n }\n } else if (element.dataset) {\n // #128 Safari not allows to delete dataset property\n try {\n delete element.dataset[name];\n } catch (error) {\n element.dataset[name] = undefined;\n }\n } else {\n element.removeAttribute(\"data-\".concat(toParamCase(name)));\n }\n }\n var REGEXP_SPACES = /\\s\\s*/;\n var onceSupported = function () {\n var supported = false;\n if (IS_BROWSER) {\n var once = false;\n var listener = function listener() {};\n var options = Object.defineProperty({}, 'once', {\n get: function get() {\n supported = true;\n return once;\n },\n /**\n * This setter can fix a `TypeError` in strict mode\n * {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Getter_only}\n * @param {boolean} value - The value to set\n */\n set: function set(value) {\n once = value;\n }\n });\n WINDOW.addEventListener('test', listener, options);\n WINDOW.removeEventListener('test', listener, options);\n }\n return supported;\n }();\n\n /**\n * Remove event listener from the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function removeListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (!onceSupported) {\n var listeners = element.listeners;\n if (listeners && listeners[event] && listeners[event][listener]) {\n handler = listeners[event][listener];\n delete listeners[event][listener];\n if (Object.keys(listeners[event]).length === 0) {\n delete listeners[event];\n }\n if (Object.keys(listeners).length === 0) {\n delete element.listeners;\n }\n }\n }\n element.removeEventListener(event, handler, options);\n });\n }\n\n /**\n * Add event listener to the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Function} listener - The event listener.\n * @param {Object} options - The event options.\n */\n function addListener(element, type, listener) {\n var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n var _handler = listener;\n type.trim().split(REGEXP_SPACES).forEach(function (event) {\n if (options.once && !onceSupported) {\n var _element$listeners = element.listeners,\n listeners = _element$listeners === void 0 ? {} : _element$listeners;\n _handler = function handler() {\n delete listeners[event][listener];\n element.removeEventListener(event, _handler, options);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n listener.apply(element, args);\n };\n if (!listeners[event]) {\n listeners[event] = {};\n }\n if (listeners[event][listener]) {\n element.removeEventListener(event, listeners[event][listener], options);\n }\n listeners[event][listener] = _handler;\n element.listeners = listeners;\n }\n element.addEventListener(event, _handler, options);\n });\n }\n\n /**\n * Dispatch event on the target element.\n * @param {Element} element - The event target.\n * @param {string} type - The event type(s).\n * @param {Object} data - The additional event data.\n * @returns {boolean} Indicate if the event is default prevented or not.\n */\n function dispatchEvent(element, type, data) {\n var event;\n\n // Event and CustomEvent on IE9-11 are global objects, not constructors\n if (isFunction(Event) && isFunction(CustomEvent)) {\n event = new CustomEvent(type, {\n detail: data,\n bubbles: true,\n cancelable: true\n });\n } else {\n event = document.createEvent('CustomEvent');\n event.initCustomEvent(type, true, true, data);\n }\n return element.dispatchEvent(event);\n }\n\n /**\n * Get the offset base on the document.\n * @param {Element} element - The target element.\n * @returns {Object} The offset data.\n */\n function getOffset(element) {\n var box = element.getBoundingClientRect();\n return {\n left: box.left + (window.pageXOffset - document.documentElement.clientLeft),\n top: box.top + (window.pageYOffset - document.documentElement.clientTop)\n };\n }\n var location = WINDOW.location;\n var REGEXP_ORIGINS = /^(\\w+:)\\/\\/([^:/?#]*):?(\\d*)/i;\n\n /**\n * Check if the given URL is a cross origin URL.\n * @param {string} url - The target URL.\n * @returns {boolean} Returns `true` if the given URL is a cross origin URL, else `false`.\n */\n function isCrossOriginURL(url) {\n var parts = url.match(REGEXP_ORIGINS);\n return parts !== null && (parts[1] !== location.protocol || parts[2] !== location.hostname || parts[3] !== location.port);\n }\n\n /**\n * Add timestamp to the given URL.\n * @param {string} url - The target URL.\n * @returns {string} The result URL.\n */\n function addTimestamp(url) {\n var timestamp = \"timestamp=\".concat(new Date().getTime());\n return url + (url.indexOf('?') === -1 ? '?' : '&') + timestamp;\n }\n\n /**\n * Get transforms base on the given object.\n * @param {Object} obj - The target object.\n * @returns {string} A string contains transform values.\n */\n function getTransforms(_ref) {\n var rotate = _ref.rotate,\n scaleX = _ref.scaleX,\n scaleY = _ref.scaleY,\n translateX = _ref.translateX,\n translateY = _ref.translateY;\n var values = [];\n if (isNumber(translateX) && translateX !== 0) {\n values.push(\"translateX(\".concat(translateX, \"px)\"));\n }\n if (isNumber(translateY) && translateY !== 0) {\n values.push(\"translateY(\".concat(translateY, \"px)\"));\n }\n\n // Rotate should come first before scale to match orientation transform\n if (isNumber(rotate) && rotate !== 0) {\n values.push(\"rotate(\".concat(rotate, \"deg)\"));\n }\n if (isNumber(scaleX) && scaleX !== 1) {\n values.push(\"scaleX(\".concat(scaleX, \")\"));\n }\n if (isNumber(scaleY) && scaleY !== 1) {\n values.push(\"scaleY(\".concat(scaleY, \")\"));\n }\n var transform = values.length ? values.join(' ') : 'none';\n return {\n WebkitTransform: transform,\n msTransform: transform,\n transform: transform\n };\n }\n\n /**\n * Get the max ratio of a group of pointers.\n * @param {string} pointers - The target pointers.\n * @returns {number} The result ratio.\n */\n function getMaxZoomRatio(pointers) {\n var pointers2 = _objectSpread2({}, pointers);\n var maxRatio = 0;\n forEach(pointers, function (pointer, pointerId) {\n delete pointers2[pointerId];\n forEach(pointers2, function (pointer2) {\n var x1 = Math.abs(pointer.startX - pointer2.startX);\n var y1 = Math.abs(pointer.startY - pointer2.startY);\n var x2 = Math.abs(pointer.endX - pointer2.endX);\n var y2 = Math.abs(pointer.endY - pointer2.endY);\n var z1 = Math.sqrt(x1 * x1 + y1 * y1);\n var z2 = Math.sqrt(x2 * x2 + y2 * y2);\n var ratio = (z2 - z1) / z1;\n if (Math.abs(ratio) > Math.abs(maxRatio)) {\n maxRatio = ratio;\n }\n });\n });\n return maxRatio;\n }\n\n /**\n * Get a pointer from an event object.\n * @param {Object} event - The target event object.\n * @param {boolean} endOnly - Indicates if only returns the end point coordinate or not.\n * @returns {Object} The result pointer contains start and/or end point coordinates.\n */\n function getPointer(_ref2, endOnly) {\n var pageX = _ref2.pageX,\n pageY = _ref2.pageY;\n var end = {\n endX: pageX,\n endY: pageY\n };\n return endOnly ? end : _objectSpread2({\n startX: pageX,\n startY: pageY\n }, end);\n }\n\n /**\n * Get the center point coordinate of a group of pointers.\n * @param {Object} pointers - The target pointers.\n * @returns {Object} The center point coordinate.\n */\n function getPointersCenter(pointers) {\n var pageX = 0;\n var pageY = 0;\n var count = 0;\n forEach(pointers, function (_ref3) {\n var startX = _ref3.startX,\n startY = _ref3.startY;\n pageX += startX;\n pageY += startY;\n count += 1;\n });\n pageX /= count;\n pageY /= count;\n return {\n pageX: pageX,\n pageY: pageY\n };\n }\n\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n function getAdjustedSizes(_ref4) {\n var aspectRatio = _ref4.aspectRatio,\n height = _ref4.height,\n width = _ref4.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'contain';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n if (type === 'contain' && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width: width,\n height: height\n };\n }\n\n /**\n * Get the new sizes of a rectangle after rotated.\n * @param {Object} data - The original sizes.\n * @returns {Object} The result sizes.\n */\n function getRotatedSizes(_ref5) {\n var width = _ref5.width,\n height = _ref5.height,\n degree = _ref5.degree;\n degree = Math.abs(degree) % 180;\n if (degree === 90) {\n return {\n width: height,\n height: width\n };\n }\n var arc = degree % 90 * Math.PI / 180;\n var sinArc = Math.sin(arc);\n var cosArc = Math.cos(arc);\n var newWidth = width * cosArc + height * sinArc;\n var newHeight = width * sinArc + height * cosArc;\n return degree > 90 ? {\n width: newHeight,\n height: newWidth\n } : {\n width: newWidth,\n height: newHeight\n };\n }\n\n /**\n * Get a canvas which drew the given image.\n * @param {HTMLImageElement} image - The image for drawing.\n * @param {Object} imageData - The image data.\n * @param {Object} canvasData - The canvas data.\n * @param {Object} options - The options.\n * @returns {HTMLCanvasElement} The result canvas.\n */\n function getSourceCanvas(image, _ref6, _ref7, _ref8) {\n var imageAspectRatio = _ref6.aspectRatio,\n imageNaturalWidth = _ref6.naturalWidth,\n imageNaturalHeight = _ref6.naturalHeight,\n _ref6$rotate = _ref6.rotate,\n rotate = _ref6$rotate === void 0 ? 0 : _ref6$rotate,\n _ref6$scaleX = _ref6.scaleX,\n scaleX = _ref6$scaleX === void 0 ? 1 : _ref6$scaleX,\n _ref6$scaleY = _ref6.scaleY,\n scaleY = _ref6$scaleY === void 0 ? 1 : _ref6$scaleY;\n var aspectRatio = _ref7.aspectRatio,\n naturalWidth = _ref7.naturalWidth,\n naturalHeight = _ref7.naturalHeight;\n var _ref8$fillColor = _ref8.fillColor,\n fillColor = _ref8$fillColor === void 0 ? 'transparent' : _ref8$fillColor,\n _ref8$imageSmoothingE = _ref8.imageSmoothingEnabled,\n imageSmoothingEnabled = _ref8$imageSmoothingE === void 0 ? true : _ref8$imageSmoothingE,\n _ref8$imageSmoothingQ = _ref8.imageSmoothingQuality,\n imageSmoothingQuality = _ref8$imageSmoothingQ === void 0 ? 'low' : _ref8$imageSmoothingQ,\n _ref8$maxWidth = _ref8.maxWidth,\n maxWidth = _ref8$maxWidth === void 0 ? Infinity : _ref8$maxWidth,\n _ref8$maxHeight = _ref8.maxHeight,\n maxHeight = _ref8$maxHeight === void 0 ? Infinity : _ref8$maxHeight,\n _ref8$minWidth = _ref8.minWidth,\n minWidth = _ref8$minWidth === void 0 ? 0 : _ref8$minWidth,\n _ref8$minHeight = _ref8.minHeight,\n minHeight = _ref8$minHeight === void 0 ? 0 : _ref8$minHeight;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var width = Math.min(maxSizes.width, Math.max(minSizes.width, naturalWidth));\n var height = Math.min(maxSizes.height, Math.max(minSizes.height, naturalHeight));\n\n // Note: should always use image's natural sizes for drawing as\n // imageData.naturalWidth === canvasData.naturalHeight when rotate % 180 === 90\n var destMaxSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: maxWidth,\n height: maxHeight\n });\n var destMinSizes = getAdjustedSizes({\n aspectRatio: imageAspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n var destWidth = Math.min(destMaxSizes.width, Math.max(destMinSizes.width, imageNaturalWidth));\n var destHeight = Math.min(destMaxSizes.height, Math.max(destMinSizes.height, imageNaturalHeight));\n var params = [-destWidth / 2, -destHeight / 2, destWidth, destHeight];\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = fillColor;\n context.fillRect(0, 0, width, height);\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n context.imageSmoothingQuality = imageSmoothingQuality;\n context.drawImage.apply(context, [image].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n context.restore();\n return canvas;\n }\n var fromCharCode = String.fromCharCode;\n\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n length += start;\n for (var i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n return str;\n }\n var REGEXP_DATA_URL_HEAD = /^data:.*,/;\n\n /**\n * Transform Data URL to array buffer.\n * @param {string} dataURL - The Data URL to transform.\n * @returns {ArrayBuffer} The result array buffer.\n */\n function dataURLToArrayBuffer(dataURL) {\n var base64 = dataURL.replace(REGEXP_DATA_URL_HEAD, '');\n var binary = atob(base64);\n var arrayBuffer = new ArrayBuffer(binary.length);\n var uint8 = new Uint8Array(arrayBuffer);\n forEach(uint8, function (value, i) {\n uint8[i] = binary.charCodeAt(i);\n });\n return arrayBuffer;\n }\n\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n\n // Chunk Typed Array for better performance (#435)\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n var littleEndian;\n var app1Start;\n var ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset += 1;\n }\n }\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n var _offset;\n var i;\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n _offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(_offset, littleEndian);\n\n // Override the orientation with its default value\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (error) {\n orientation = 1;\n }\n return orientation;\n }\n\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n\n var render = {\n render: function render() {\n this.initContainer();\n this.initCanvas();\n this.initCropBox();\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n },\n initContainer: function initContainer() {\n var element = this.element,\n options = this.options,\n container = this.container,\n cropper = this.cropper;\n var minWidth = Number(options.minContainerWidth);\n var minHeight = Number(options.minContainerHeight);\n addClass(cropper, CLASS_HIDDEN);\n removeClass(element, CLASS_HIDDEN);\n var containerData = {\n width: Math.max(container.offsetWidth, minWidth >= 0 ? minWidth : MIN_CONTAINER_WIDTH),\n height: Math.max(container.offsetHeight, minHeight >= 0 ? minHeight : MIN_CONTAINER_HEIGHT)\n };\n this.containerData = containerData;\n setStyle(cropper, {\n width: containerData.width,\n height: containerData.height\n });\n addClass(element, CLASS_HIDDEN);\n removeClass(cropper, CLASS_HIDDEN);\n },\n // Canvas (image wrapper)\n initCanvas: function initCanvas() {\n var containerData = this.containerData,\n imageData = this.imageData;\n var viewMode = this.options.viewMode;\n var rotated = Math.abs(imageData.rotate) % 180 === 90;\n var naturalWidth = rotated ? imageData.naturalHeight : imageData.naturalWidth;\n var naturalHeight = rotated ? imageData.naturalWidth : imageData.naturalHeight;\n var aspectRatio = naturalWidth / naturalHeight;\n var canvasWidth = containerData.width;\n var canvasHeight = containerData.height;\n if (containerData.height * aspectRatio > containerData.width) {\n if (viewMode === 3) {\n canvasWidth = containerData.height * aspectRatio;\n } else {\n canvasHeight = containerData.width / aspectRatio;\n }\n } else if (viewMode === 3) {\n canvasHeight = containerData.width / aspectRatio;\n } else {\n canvasWidth = containerData.height * aspectRatio;\n }\n var canvasData = {\n aspectRatio: aspectRatio,\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n width: canvasWidth,\n height: canvasHeight\n };\n this.canvasData = canvasData;\n this.limited = viewMode === 1 || viewMode === 2;\n this.limitCanvas(true, true);\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n canvasData.left = (containerData.width - canvasData.width) / 2;\n canvasData.top = (containerData.height - canvasData.height) / 2;\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n this.initialCanvasData = assign({}, canvasData);\n },\n limitCanvas: function limitCanvas(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var viewMode = options.viewMode;\n var aspectRatio = canvasData.aspectRatio;\n var cropped = this.cropped && cropBoxData;\n if (sizeLimited) {\n var minCanvasWidth = Number(options.minCanvasWidth) || 0;\n var minCanvasHeight = Number(options.minCanvasHeight) || 0;\n if (viewMode > 1) {\n minCanvasWidth = Math.max(minCanvasWidth, containerData.width);\n minCanvasHeight = Math.max(minCanvasHeight, containerData.height);\n if (viewMode === 3) {\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n } else if (viewMode > 0) {\n if (minCanvasWidth) {\n minCanvasWidth = Math.max(minCanvasWidth, cropped ? cropBoxData.width : 0);\n } else if (minCanvasHeight) {\n minCanvasHeight = Math.max(minCanvasHeight, cropped ? cropBoxData.height : 0);\n } else if (cropped) {\n minCanvasWidth = cropBoxData.width;\n minCanvasHeight = cropBoxData.height;\n if (minCanvasHeight * aspectRatio > minCanvasWidth) {\n minCanvasWidth = minCanvasHeight * aspectRatio;\n } else {\n minCanvasHeight = minCanvasWidth / aspectRatio;\n }\n }\n }\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minCanvasWidth,\n height: minCanvasHeight\n });\n minCanvasWidth = _getAdjustedSizes.width;\n minCanvasHeight = _getAdjustedSizes.height;\n canvasData.minWidth = minCanvasWidth;\n canvasData.minHeight = minCanvasHeight;\n canvasData.maxWidth = Infinity;\n canvasData.maxHeight = Infinity;\n }\n if (positionLimited) {\n if (viewMode > (cropped ? 0 : 1)) {\n var newCanvasLeft = containerData.width - canvasData.width;\n var newCanvasTop = containerData.height - canvasData.height;\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n if (cropped && this.limited) {\n canvasData.minLeft = Math.min(cropBoxData.left, cropBoxData.left + (cropBoxData.width - canvasData.width));\n canvasData.minTop = Math.min(cropBoxData.top, cropBoxData.top + (cropBoxData.height - canvasData.height));\n canvasData.maxLeft = cropBoxData.left;\n canvasData.maxTop = cropBoxData.top;\n if (viewMode === 2) {\n if (canvasData.width >= containerData.width) {\n canvasData.minLeft = Math.min(0, newCanvasLeft);\n canvasData.maxLeft = Math.max(0, newCanvasLeft);\n }\n if (canvasData.height >= containerData.height) {\n canvasData.minTop = Math.min(0, newCanvasTop);\n canvasData.maxTop = Math.max(0, newCanvasTop);\n }\n }\n }\n } else {\n canvasData.minLeft = -canvasData.width;\n canvasData.minTop = -canvasData.height;\n canvasData.maxLeft = containerData.width;\n canvasData.maxTop = containerData.height;\n }\n }\n },\n renderCanvas: function renderCanvas(changed, transformed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n if (transformed) {\n var _getRotatedSizes = getRotatedSizes({\n width: imageData.naturalWidth * Math.abs(imageData.scaleX || 1),\n height: imageData.naturalHeight * Math.abs(imageData.scaleY || 1),\n degree: imageData.rotate || 0\n }),\n naturalWidth = _getRotatedSizes.width,\n naturalHeight = _getRotatedSizes.height;\n var width = canvasData.width * (naturalWidth / canvasData.naturalWidth);\n var height = canvasData.height * (naturalHeight / canvasData.naturalHeight);\n canvasData.left -= (width - canvasData.width) / 2;\n canvasData.top -= (height - canvasData.height) / 2;\n canvasData.width = width;\n canvasData.height = height;\n canvasData.aspectRatio = naturalWidth / naturalHeight;\n canvasData.naturalWidth = naturalWidth;\n canvasData.naturalHeight = naturalHeight;\n this.limitCanvas(true, false);\n }\n if (canvasData.width > canvasData.maxWidth || canvasData.width < canvasData.minWidth) {\n canvasData.left = canvasData.oldLeft;\n }\n if (canvasData.height > canvasData.maxHeight || canvasData.height < canvasData.minHeight) {\n canvasData.top = canvasData.oldTop;\n }\n canvasData.width = Math.min(Math.max(canvasData.width, canvasData.minWidth), canvasData.maxWidth);\n canvasData.height = Math.min(Math.max(canvasData.height, canvasData.minHeight), canvasData.maxHeight);\n this.limitCanvas(false, true);\n canvasData.left = Math.min(Math.max(canvasData.left, canvasData.minLeft), canvasData.maxLeft);\n canvasData.top = Math.min(Math.max(canvasData.top, canvasData.minTop), canvasData.maxTop);\n canvasData.oldLeft = canvasData.left;\n canvasData.oldTop = canvasData.top;\n setStyle(this.canvas, assign({\n width: canvasData.width,\n height: canvasData.height\n }, getTransforms({\n translateX: canvasData.left,\n translateY: canvasData.top\n })));\n this.renderImage(changed);\n if (this.cropped && this.limited) {\n this.limitCropBox(true, true);\n }\n },\n renderImage: function renderImage(changed) {\n var canvasData = this.canvasData,\n imageData = this.imageData;\n var width = imageData.naturalWidth * (canvasData.width / canvasData.naturalWidth);\n var height = imageData.naturalHeight * (canvasData.height / canvasData.naturalHeight);\n assign(imageData, {\n width: width,\n height: height,\n left: (canvasData.width - width) / 2,\n top: (canvasData.height - height) / 2\n });\n setStyle(this.image, assign({\n width: imageData.width,\n height: imageData.height\n }, getTransforms(assign({\n translateX: imageData.left,\n translateY: imageData.top\n }, imageData))));\n if (changed) {\n this.output();\n }\n },\n initCropBox: function initCropBox() {\n var options = this.options,\n canvasData = this.canvasData;\n var aspectRatio = options.aspectRatio || options.initialAspectRatio;\n var autoCropArea = Number(options.autoCropArea) || 0.8;\n var cropBoxData = {\n width: canvasData.width,\n height: canvasData.height\n };\n if (aspectRatio) {\n if (canvasData.height * aspectRatio > canvasData.width) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.cropBoxData = cropBoxData;\n this.limitCropBox(true, true);\n\n // Initialize auto crop area\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n\n // The width/height of auto crop area must large than \"minWidth/Height\"\n cropBoxData.width = Math.max(cropBoxData.minWidth, cropBoxData.width * autoCropArea);\n cropBoxData.height = Math.max(cropBoxData.minHeight, cropBoxData.height * autoCropArea);\n cropBoxData.left = canvasData.left + (canvasData.width - cropBoxData.width) / 2;\n cropBoxData.top = canvasData.top + (canvasData.height - cropBoxData.height) / 2;\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n this.initialCropBoxData = assign({}, cropBoxData);\n },\n limitCropBox: function limitCropBox(sizeLimited, positionLimited) {\n var options = this.options,\n containerData = this.containerData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData,\n limited = this.limited;\n var aspectRatio = options.aspectRatio;\n if (sizeLimited) {\n var minCropBoxWidth = Number(options.minCropBoxWidth) || 0;\n var minCropBoxHeight = Number(options.minCropBoxHeight) || 0;\n var maxCropBoxWidth = limited ? Math.min(containerData.width, canvasData.width, canvasData.width + canvasData.left, containerData.width - canvasData.left) : containerData.width;\n var maxCropBoxHeight = limited ? Math.min(containerData.height, canvasData.height, canvasData.height + canvasData.top, containerData.height - canvasData.top) : containerData.height;\n\n // The min/maxCropBoxWidth/Height must be less than container's width/height\n minCropBoxWidth = Math.min(minCropBoxWidth, containerData.width);\n minCropBoxHeight = Math.min(minCropBoxHeight, containerData.height);\n if (aspectRatio) {\n if (minCropBoxWidth && minCropBoxHeight) {\n if (minCropBoxHeight * aspectRatio > minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n } else if (minCropBoxWidth) {\n minCropBoxHeight = minCropBoxWidth / aspectRatio;\n } else if (minCropBoxHeight) {\n minCropBoxWidth = minCropBoxHeight * aspectRatio;\n }\n if (maxCropBoxHeight * aspectRatio > maxCropBoxWidth) {\n maxCropBoxHeight = maxCropBoxWidth / aspectRatio;\n } else {\n maxCropBoxWidth = maxCropBoxHeight * aspectRatio;\n }\n }\n\n // The minWidth/Height must be less than maxWidth/Height\n cropBoxData.minWidth = Math.min(minCropBoxWidth, maxCropBoxWidth);\n cropBoxData.minHeight = Math.min(minCropBoxHeight, maxCropBoxHeight);\n cropBoxData.maxWidth = maxCropBoxWidth;\n cropBoxData.maxHeight = maxCropBoxHeight;\n }\n if (positionLimited) {\n if (limited) {\n cropBoxData.minLeft = Math.max(0, canvasData.left);\n cropBoxData.minTop = Math.max(0, canvasData.top);\n cropBoxData.maxLeft = Math.min(containerData.width, canvasData.left + canvasData.width) - cropBoxData.width;\n cropBoxData.maxTop = Math.min(containerData.height, canvasData.top + canvasData.height) - cropBoxData.height;\n } else {\n cropBoxData.minLeft = 0;\n cropBoxData.minTop = 0;\n cropBoxData.maxLeft = containerData.width - cropBoxData.width;\n cropBoxData.maxTop = containerData.height - cropBoxData.height;\n }\n }\n },\n renderCropBox: function renderCropBox() {\n var options = this.options,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData;\n if (cropBoxData.width > cropBoxData.maxWidth || cropBoxData.width < cropBoxData.minWidth) {\n cropBoxData.left = cropBoxData.oldLeft;\n }\n if (cropBoxData.height > cropBoxData.maxHeight || cropBoxData.height < cropBoxData.minHeight) {\n cropBoxData.top = cropBoxData.oldTop;\n }\n cropBoxData.width = Math.min(Math.max(cropBoxData.width, cropBoxData.minWidth), cropBoxData.maxWidth);\n cropBoxData.height = Math.min(Math.max(cropBoxData.height, cropBoxData.minHeight), cropBoxData.maxHeight);\n this.limitCropBox(false, true);\n cropBoxData.left = Math.min(Math.max(cropBoxData.left, cropBoxData.minLeft), cropBoxData.maxLeft);\n cropBoxData.top = Math.min(Math.max(cropBoxData.top, cropBoxData.minTop), cropBoxData.maxTop);\n cropBoxData.oldLeft = cropBoxData.left;\n cropBoxData.oldTop = cropBoxData.top;\n if (options.movable && options.cropBoxMovable) {\n // Turn to move the canvas when the crop box is equal to the container\n setData(this.face, DATA_ACTION, cropBoxData.width >= containerData.width && cropBoxData.height >= containerData.height ? ACTION_MOVE : ACTION_ALL);\n }\n setStyle(this.cropBox, assign({\n width: cropBoxData.width,\n height: cropBoxData.height\n }, getTransforms({\n translateX: cropBoxData.left,\n translateY: cropBoxData.top\n })));\n if (this.cropped && this.limited) {\n this.limitCanvas(true, true);\n }\n if (!this.disabled) {\n this.output();\n }\n },\n output: function output() {\n this.preview();\n dispatchEvent(this.element, EVENT_CROP, this.getData());\n }\n };\n\n var preview = {\n initPreview: function initPreview() {\n var element = this.element,\n crossOrigin = this.crossOrigin;\n var preview = this.options.preview;\n var url = crossOrigin ? this.crossOriginUrl : this.url;\n var alt = element.alt || 'The image to preview';\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = url;\n image.alt = alt;\n this.viewBox.appendChild(image);\n this.viewBoxImage = image;\n if (!preview) {\n return;\n }\n var previews = preview;\n if (typeof preview === 'string') {\n previews = element.ownerDocument.querySelectorAll(preview);\n } else if (preview.querySelector) {\n previews = [preview];\n }\n this.previews = previews;\n forEach(previews, function (el) {\n var img = document.createElement('img');\n\n // Save the original size for recover\n setData(el, DATA_PREVIEW, {\n width: el.offsetWidth,\n height: el.offsetHeight,\n html: el.innerHTML\n });\n if (crossOrigin) {\n img.crossOrigin = crossOrigin;\n }\n img.src = url;\n img.alt = alt;\n\n /**\n * Override img element styles\n * Add `display:block` to avoid margin top issue\n * Add `height:auto` to override `height` attribute on IE8\n * (Occur only when margin-top <= -height)\n */\n img.style.cssText = 'display:block;' + 'width:100%;' + 'height:auto;' + 'min-width:0!important;' + 'min-height:0!important;' + 'max-width:none!important;' + 'max-height:none!important;' + 'image-orientation:0deg!important;\"';\n el.innerHTML = '';\n el.appendChild(img);\n });\n },\n resetPreview: function resetPreview() {\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n setStyle(element, {\n width: data.width,\n height: data.height\n });\n element.innerHTML = data.html;\n removeData(element, DATA_PREVIEW);\n });\n },\n preview: function preview() {\n var imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var cropBoxWidth = cropBoxData.width,\n cropBoxHeight = cropBoxData.height;\n var width = imageData.width,\n height = imageData.height;\n var left = cropBoxData.left - canvasData.left - imageData.left;\n var top = cropBoxData.top - canvasData.top - imageData.top;\n if (!this.cropped || this.disabled) {\n return;\n }\n setStyle(this.viewBoxImage, assign({\n width: width,\n height: height\n }, getTransforms(assign({\n translateX: -left,\n translateY: -top\n }, imageData))));\n forEach(this.previews, function (element) {\n var data = getData(element, DATA_PREVIEW);\n var originalWidth = data.width;\n var originalHeight = data.height;\n var newWidth = originalWidth;\n var newHeight = originalHeight;\n var ratio = 1;\n if (cropBoxWidth) {\n ratio = originalWidth / cropBoxWidth;\n newHeight = cropBoxHeight * ratio;\n }\n if (cropBoxHeight && newHeight > originalHeight) {\n ratio = originalHeight / cropBoxHeight;\n newWidth = cropBoxWidth * ratio;\n newHeight = originalHeight;\n }\n setStyle(element, {\n width: newWidth,\n height: newHeight\n });\n setStyle(element.getElementsByTagName('img')[0], assign({\n width: width * ratio,\n height: height * ratio\n }, getTransforms(assign({\n translateX: -left * ratio,\n translateY: -top * ratio\n }, imageData))));\n });\n }\n };\n\n var events = {\n bind: function bind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n addListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n addListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n addListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n addListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n addListener(element, EVENT_ZOOM, options.zoom);\n }\n addListener(cropper, EVENT_POINTER_DOWN, this.onCropStart = this.cropStart.bind(this));\n if (options.zoomable && options.zoomOnWheel) {\n addListener(cropper, EVENT_WHEEL, this.onWheel = this.wheel.bind(this), {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n addListener(cropper, EVENT_DBLCLICK, this.onDblclick = this.dblclick.bind(this));\n }\n addListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove = this.cropMove.bind(this));\n addListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd = this.cropEnd.bind(this));\n if (options.responsive) {\n addListener(window, EVENT_RESIZE, this.onResize = this.resize.bind(this));\n }\n },\n unbind: function unbind() {\n var element = this.element,\n options = this.options,\n cropper = this.cropper;\n if (isFunction(options.cropstart)) {\n removeListener(element, EVENT_CROP_START, options.cropstart);\n }\n if (isFunction(options.cropmove)) {\n removeListener(element, EVENT_CROP_MOVE, options.cropmove);\n }\n if (isFunction(options.cropend)) {\n removeListener(element, EVENT_CROP_END, options.cropend);\n }\n if (isFunction(options.crop)) {\n removeListener(element, EVENT_CROP, options.crop);\n }\n if (isFunction(options.zoom)) {\n removeListener(element, EVENT_ZOOM, options.zoom);\n }\n removeListener(cropper, EVENT_POINTER_DOWN, this.onCropStart);\n if (options.zoomable && options.zoomOnWheel) {\n removeListener(cropper, EVENT_WHEEL, this.onWheel, {\n passive: false,\n capture: true\n });\n }\n if (options.toggleDragModeOnDblclick) {\n removeListener(cropper, EVENT_DBLCLICK, this.onDblclick);\n }\n removeListener(element.ownerDocument, EVENT_POINTER_MOVE, this.onCropMove);\n removeListener(element.ownerDocument, EVENT_POINTER_UP, this.onCropEnd);\n if (options.responsive) {\n removeListener(window, EVENT_RESIZE, this.onResize);\n }\n }\n };\n\n var handlers = {\n resize: function resize() {\n if (this.disabled) {\n return;\n }\n var options = this.options,\n container = this.container,\n containerData = this.containerData;\n var ratioX = container.offsetWidth / containerData.width;\n var ratioY = container.offsetHeight / containerData.height;\n var ratio = Math.abs(ratioX - 1) > Math.abs(ratioY - 1) ? ratioX : ratioY;\n\n // Resize when width changed or height changed\n if (ratio !== 1) {\n var canvasData;\n var cropBoxData;\n if (options.restore) {\n canvasData = this.getCanvasData();\n cropBoxData = this.getCropBoxData();\n }\n this.render();\n if (options.restore) {\n this.setCanvasData(forEach(canvasData, function (n, i) {\n canvasData[i] = n * ratio;\n }));\n this.setCropBoxData(forEach(cropBoxData, function (n, i) {\n cropBoxData[i] = n * ratio;\n }));\n }\n }\n },\n dblclick: function dblclick() {\n if (this.disabled || this.options.dragMode === DRAG_MODE_NONE) {\n return;\n }\n this.setDragMode(hasClass(this.dragBox, CLASS_CROP) ? DRAG_MODE_MOVE : DRAG_MODE_CROP);\n },\n wheel: function wheel(event) {\n var _this = this;\n var ratio = Number(this.options.wheelZoomRatio) || 0.1;\n var delta = 1;\n if (this.disabled) {\n return;\n }\n event.preventDefault();\n\n // Limit wheel speed to prevent zoom too fast (#21)\n if (this.wheeling) {\n return;\n }\n this.wheeling = true;\n setTimeout(function () {\n _this.wheeling = false;\n }, 50);\n if (event.deltaY) {\n delta = event.deltaY > 0 ? 1 : -1;\n } else if (event.wheelDelta) {\n delta = -event.wheelDelta / 120;\n } else if (event.detail) {\n delta = event.detail > 0 ? 1 : -1;\n }\n this.zoom(-delta * ratio, event);\n },\n cropStart: function cropStart(event) {\n var buttons = event.buttons,\n button = event.button;\n if (this.disabled\n\n // Handle mouse event and pointer event and ignore touch event\n || (event.type === 'mousedown' || event.type === 'pointerdown' && event.pointerType === 'mouse') && (\n // No primary button (Usually the left button)\n isNumber(buttons) && buttons !== 1 || isNumber(button) && button !== 0\n\n // Open context menu\n || event.ctrlKey)) {\n return;\n }\n var options = this.options,\n pointers = this.pointers;\n var action;\n if (event.changedTouches) {\n // Handle touch event\n forEach(event.changedTouches, function (touch) {\n pointers[touch.identifier] = getPointer(touch);\n });\n } else {\n // Handle mouse event and pointer event\n pointers[event.pointerId || 0] = getPointer(event);\n }\n if (Object.keys(pointers).length > 1 && options.zoomable && options.zoomOnTouch) {\n action = ACTION_ZOOM;\n } else {\n action = getData(event.target, DATA_ACTION);\n }\n if (!REGEXP_ACTIONS.test(action)) {\n return;\n }\n if (dispatchEvent(this.element, EVENT_CROP_START, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n\n // This line is required for preventing page zooming in iOS browsers\n event.preventDefault();\n this.action = action;\n this.cropping = false;\n if (action === ACTION_CROP) {\n this.cropping = true;\n addClass(this.dragBox, CLASS_MODAL);\n }\n },\n cropMove: function cropMove(event) {\n var action = this.action;\n if (this.disabled || !action) {\n return;\n }\n var pointers = this.pointers;\n event.preventDefault();\n if (dispatchEvent(this.element, EVENT_CROP_MOVE, {\n originalEvent: event,\n action: action\n }) === false) {\n return;\n }\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n // The first parameter should not be undefined (#432)\n assign(pointers[touch.identifier] || {}, getPointer(touch, true));\n });\n } else {\n assign(pointers[event.pointerId || 0] || {}, getPointer(event, true));\n }\n this.change(event);\n },\n cropEnd: function cropEnd(event) {\n if (this.disabled) {\n return;\n }\n var action = this.action,\n pointers = this.pointers;\n if (event.changedTouches) {\n forEach(event.changedTouches, function (touch) {\n delete pointers[touch.identifier];\n });\n } else {\n delete pointers[event.pointerId || 0];\n }\n if (!action) {\n return;\n }\n event.preventDefault();\n if (!Object.keys(pointers).length) {\n this.action = '';\n }\n if (this.cropping) {\n this.cropping = false;\n toggleClass(this.dragBox, CLASS_MODAL, this.cropped && this.options.modal);\n }\n dispatchEvent(this.element, EVENT_CROP_END, {\n originalEvent: event,\n action: action\n });\n }\n };\n\n var change = {\n change: function change(event) {\n var options = this.options,\n canvasData = this.canvasData,\n containerData = this.containerData,\n cropBoxData = this.cropBoxData,\n pointers = this.pointers;\n var action = this.action;\n var aspectRatio = options.aspectRatio;\n var left = cropBoxData.left,\n top = cropBoxData.top,\n width = cropBoxData.width,\n height = cropBoxData.height;\n var right = left + width;\n var bottom = top + height;\n var minLeft = 0;\n var minTop = 0;\n var maxWidth = containerData.width;\n var maxHeight = containerData.height;\n var renderable = true;\n var offset;\n\n // Locking aspect ratio in \"free mode\" by holding shift key\n if (!aspectRatio && event.shiftKey) {\n aspectRatio = width && height ? width / height : 1;\n }\n if (this.limited) {\n minLeft = cropBoxData.minLeft;\n minTop = cropBoxData.minTop;\n maxWidth = minLeft + Math.min(containerData.width, canvasData.width, canvasData.left + canvasData.width);\n maxHeight = minTop + Math.min(containerData.height, canvasData.height, canvasData.top + canvasData.height);\n }\n var pointer = pointers[Object.keys(pointers)[0]];\n var range = {\n x: pointer.endX - pointer.startX,\n y: pointer.endY - pointer.startY\n };\n var check = function check(side) {\n switch (side) {\n case ACTION_EAST:\n if (right + range.x > maxWidth) {\n range.x = maxWidth - right;\n }\n break;\n case ACTION_WEST:\n if (left + range.x < minLeft) {\n range.x = minLeft - left;\n }\n break;\n case ACTION_NORTH:\n if (top + range.y < minTop) {\n range.y = minTop - top;\n }\n break;\n case ACTION_SOUTH:\n if (bottom + range.y > maxHeight) {\n range.y = maxHeight - bottom;\n }\n break;\n }\n };\n switch (action) {\n // Move crop box\n case ACTION_ALL:\n left += range.x;\n top += range.y;\n break;\n\n // Resize crop box\n case ACTION_EAST:\n if (range.x >= 0 && (right >= maxWidth || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n if (width < 0) {\n action = ACTION_WEST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_NORTH:\n if (range.y <= 0 && (top <= minTop || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n if (height < 0) {\n action = ACTION_SOUTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_WEST:\n if (range.x <= 0 && (left <= minLeft || aspectRatio && (top <= minTop || bottom >= maxHeight))) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n if (width < 0) {\n action = ACTION_EAST;\n width = -width;\n left -= width;\n }\n if (aspectRatio) {\n height = width / aspectRatio;\n top += (cropBoxData.height - height) / 2;\n }\n break;\n case ACTION_SOUTH:\n if (range.y >= 0 && (bottom >= maxHeight || aspectRatio && (left <= minLeft || right >= maxWidth))) {\n renderable = false;\n break;\n }\n check(ACTION_SOUTH);\n height += range.y;\n if (height < 0) {\n action = ACTION_NORTH;\n height = -height;\n top -= height;\n }\n if (aspectRatio) {\n width = height * aspectRatio;\n left += (cropBoxData.width - width) / 2;\n }\n break;\n case ACTION_NORTH_EAST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || right >= maxWidth)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n } else {\n check(ACTION_NORTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_NORTH_WEST:\n if (aspectRatio) {\n if (range.y <= 0 && (top <= minTop || left <= minLeft)) {\n renderable = false;\n break;\n }\n check(ACTION_NORTH);\n height -= range.y;\n top += range.y;\n width = height * aspectRatio;\n left += cropBoxData.width - width;\n } else {\n check(ACTION_NORTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y <= 0 && top <= minTop) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y <= 0) {\n if (top > minTop) {\n height -= range.y;\n top += range.y;\n }\n } else {\n height -= range.y;\n top += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_SOUTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_NORTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_SOUTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_WEST:\n if (aspectRatio) {\n if (range.x <= 0 && (left <= minLeft || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_WEST);\n width -= range.x;\n left += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_WEST);\n if (range.x <= 0) {\n if (left > minLeft) {\n width -= range.x;\n left += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width -= range.x;\n left += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_EAST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n top -= height;\n }\n break;\n case ACTION_SOUTH_EAST:\n if (aspectRatio) {\n if (range.x >= 0 && (right >= maxWidth || bottom >= maxHeight)) {\n renderable = false;\n break;\n }\n check(ACTION_EAST);\n width += range.x;\n height = width / aspectRatio;\n } else {\n check(ACTION_SOUTH);\n check(ACTION_EAST);\n if (range.x >= 0) {\n if (right < maxWidth) {\n width += range.x;\n } else if (range.y >= 0 && bottom >= maxHeight) {\n renderable = false;\n }\n } else {\n width += range.x;\n }\n if (range.y >= 0) {\n if (bottom < maxHeight) {\n height += range.y;\n }\n } else {\n height += range.y;\n }\n }\n if (width < 0 && height < 0) {\n action = ACTION_NORTH_WEST;\n height = -height;\n width = -width;\n top -= height;\n left -= width;\n } else if (width < 0) {\n action = ACTION_SOUTH_WEST;\n width = -width;\n left -= width;\n } else if (height < 0) {\n action = ACTION_NORTH_EAST;\n height = -height;\n top -= height;\n }\n break;\n\n // Move canvas\n case ACTION_MOVE:\n this.move(range.x, range.y);\n renderable = false;\n break;\n\n // Zoom canvas\n case ACTION_ZOOM:\n this.zoom(getMaxZoomRatio(pointers), event);\n renderable = false;\n break;\n\n // Create crop box\n case ACTION_CROP:\n if (!range.x || !range.y) {\n renderable = false;\n break;\n }\n offset = getOffset(this.cropper);\n left = pointer.startX - offset.left;\n top = pointer.startY - offset.top;\n width = cropBoxData.minWidth;\n height = cropBoxData.minHeight;\n if (range.x > 0) {\n action = range.y > 0 ? ACTION_SOUTH_EAST : ACTION_NORTH_EAST;\n } else if (range.x < 0) {\n left -= width;\n action = range.y > 0 ? ACTION_SOUTH_WEST : ACTION_NORTH_WEST;\n }\n if (range.y < 0) {\n top -= height;\n }\n\n // Show the crop box if is hidden\n if (!this.cropped) {\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.cropped = true;\n if (this.limited) {\n this.limitCropBox(true, true);\n }\n }\n break;\n }\n if (renderable) {\n cropBoxData.width = width;\n cropBoxData.height = height;\n cropBoxData.left = left;\n cropBoxData.top = top;\n this.action = action;\n this.renderCropBox();\n }\n\n // Override\n forEach(pointers, function (p) {\n p.startX = p.endX;\n p.startY = p.endY;\n });\n }\n };\n\n var methods = {\n // Show the crop box manually\n crop: function crop() {\n if (this.ready && !this.cropped && !this.disabled) {\n this.cropped = true;\n this.limitCropBox(true, true);\n if (this.options.modal) {\n addClass(this.dragBox, CLASS_MODAL);\n }\n removeClass(this.cropBox, CLASS_HIDDEN);\n this.setCropBoxData(this.initialCropBoxData);\n }\n return this;\n },\n // Reset the image and crop box to their initial states\n reset: function reset() {\n if (this.ready && !this.disabled) {\n this.imageData = assign({}, this.initialImageData);\n this.canvasData = assign({}, this.initialCanvasData);\n this.cropBoxData = assign({}, this.initialCropBoxData);\n this.renderCanvas();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n return this;\n },\n // Clear the crop box\n clear: function clear() {\n if (this.cropped && !this.disabled) {\n assign(this.cropBoxData, {\n left: 0,\n top: 0,\n width: 0,\n height: 0\n });\n this.cropped = false;\n this.renderCropBox();\n this.limitCanvas(true, true);\n\n // Render canvas after crop box rendered\n this.renderCanvas();\n removeClass(this.dragBox, CLASS_MODAL);\n addClass(this.cropBox, CLASS_HIDDEN);\n }\n return this;\n },\n /**\n * Replace the image's src and rebuild the cropper\n * @param {string} url - The new URL.\n * @param {boolean} [hasSameSize] - Indicate if the new image has the same size as the old one.\n * @returns {Cropper} this\n */\n replace: function replace(url) {\n var hasSameSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!this.disabled && url) {\n if (this.isImg) {\n this.element.src = url;\n }\n if (hasSameSize) {\n this.url = url;\n this.image.src = url;\n if (this.ready) {\n this.viewBoxImage.src = url;\n forEach(this.previews, function (element) {\n element.getElementsByTagName('img')[0].src = url;\n });\n }\n } else {\n if (this.isImg) {\n this.replaced = true;\n }\n this.options.data = null;\n this.uncreate();\n this.load(url);\n }\n }\n return this;\n },\n // Enable (unfreeze) the cropper\n enable: function enable() {\n if (this.ready && this.disabled) {\n this.disabled = false;\n removeClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n // Disable (freeze) the cropper\n disable: function disable() {\n if (this.ready && !this.disabled) {\n this.disabled = true;\n addClass(this.cropper, CLASS_DISABLED);\n }\n return this;\n },\n /**\n * Destroy the cropper and remove the instance from the image\n * @returns {Cropper} this\n */\n destroy: function destroy() {\n var element = this.element;\n if (!element[NAMESPACE]) {\n return this;\n }\n element[NAMESPACE] = undefined;\n if (this.isImg && this.replaced) {\n element.src = this.originalUrl;\n }\n this.uncreate();\n return this;\n },\n /**\n * Move the canvas with relative offsets\n * @param {number} offsetX - The relative offset distance on the x-axis.\n * @param {number} [offsetY=offsetX] - The relative offset distance on the y-axis.\n * @returns {Cropper} this\n */\n move: function move(offsetX) {\n var offsetY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : offsetX;\n var _this$canvasData = this.canvasData,\n left = _this$canvasData.left,\n top = _this$canvasData.top;\n return this.moveTo(isUndefined(offsetX) ? offsetX : left + Number(offsetX), isUndefined(offsetY) ? offsetY : top + Number(offsetY));\n },\n /**\n * Move the canvas to an absolute point\n * @param {number} x - The x-axis coordinate.\n * @param {number} [y=x] - The y-axis coordinate.\n * @returns {Cropper} this\n */\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n var canvasData = this.canvasData;\n var changed = false;\n x = Number(x);\n y = Number(y);\n if (this.ready && !this.disabled && this.options.movable) {\n if (isNumber(x)) {\n canvasData.left = x;\n changed = true;\n }\n if (isNumber(y)) {\n canvasData.top = y;\n changed = true;\n }\n if (changed) {\n this.renderCanvas(true);\n }\n }\n return this;\n },\n /**\n * Zoom the canvas with a relative ratio\n * @param {number} ratio - The target ratio.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoom: function zoom(ratio, _originalEvent) {\n var canvasData = this.canvasData;\n ratio = Number(ratio);\n if (ratio < 0) {\n ratio = 1 / (1 - ratio);\n } else {\n ratio = 1 + ratio;\n }\n return this.zoomTo(canvasData.width * ratio / canvasData.naturalWidth, null, _originalEvent);\n },\n /**\n * Zoom the canvas to an absolute ratio\n * @param {number} ratio - The target ratio.\n * @param {Object} pivot - The zoom pivot point coordinate.\n * @param {Event} _originalEvent - The original event if any.\n * @returns {Cropper} this\n */\n zoomTo: function zoomTo(ratio, pivot, _originalEvent) {\n var options = this.options,\n canvasData = this.canvasData;\n var width = canvasData.width,\n height = canvasData.height,\n naturalWidth = canvasData.naturalWidth,\n naturalHeight = canvasData.naturalHeight;\n ratio = Number(ratio);\n if (ratio >= 0 && this.ready && !this.disabled && options.zoomable) {\n var newWidth = naturalWidth * ratio;\n var newHeight = naturalHeight * ratio;\n if (dispatchEvent(this.element, EVENT_ZOOM, {\n ratio: ratio,\n oldRatio: width / naturalWidth,\n originalEvent: _originalEvent\n }) === false) {\n return this;\n }\n if (_originalEvent) {\n var pointers = this.pointers;\n var offset = getOffset(this.cropper);\n var center = pointers && Object.keys(pointers).length ? getPointersCenter(pointers) : {\n pageX: _originalEvent.pageX,\n pageY: _originalEvent.pageY\n };\n\n // Zoom from the triggering point of the event\n canvasData.left -= (newWidth - width) * ((center.pageX - offset.left - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((center.pageY - offset.top - canvasData.top) / height);\n } else if (isPlainObject(pivot) && isNumber(pivot.x) && isNumber(pivot.y)) {\n canvasData.left -= (newWidth - width) * ((pivot.x - canvasData.left) / width);\n canvasData.top -= (newHeight - height) * ((pivot.y - canvasData.top) / height);\n } else {\n // Zoom from the center of the canvas\n canvasData.left -= (newWidth - width) / 2;\n canvasData.top -= (newHeight - height) / 2;\n }\n canvasData.width = newWidth;\n canvasData.height = newHeight;\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Rotate the canvas with a relative degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotate: function rotate(degree) {\n return this.rotateTo((this.imageData.rotate || 0) + Number(degree));\n },\n /**\n * Rotate the canvas to an absolute degree\n * @param {number} degree - The rotate degree.\n * @returns {Cropper} this\n */\n rotateTo: function rotateTo(degree) {\n degree = Number(degree);\n if (isNumber(degree) && this.ready && !this.disabled && this.options.rotatable) {\n this.imageData.rotate = degree % 360;\n this.renderCanvas(true, true);\n }\n return this;\n },\n /**\n * Scale the image on the x-axis.\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @returns {Cropper} this\n */\n scaleX: function scaleX(_scaleX) {\n var scaleY = this.imageData.scaleY;\n return this.scale(_scaleX, isNumber(scaleY) ? scaleY : 1);\n },\n /**\n * Scale the image on the y-axis.\n * @param {number} scaleY - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scaleY: function scaleY(_scaleY) {\n var scaleX = this.imageData.scaleX;\n return this.scale(isNumber(scaleX) ? scaleX : 1, _scaleY);\n },\n /**\n * Scale the image\n * @param {number} scaleX - The scale ratio on the x-axis.\n * @param {number} [scaleY=scaleX] - The scale ratio on the y-axis.\n * @returns {Cropper} this\n */\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n var imageData = this.imageData;\n var transformed = false;\n scaleX = Number(scaleX);\n scaleY = Number(scaleY);\n if (this.ready && !this.disabled && this.options.scalable) {\n if (isNumber(scaleX)) {\n imageData.scaleX = scaleX;\n transformed = true;\n }\n if (isNumber(scaleY)) {\n imageData.scaleY = scaleY;\n transformed = true;\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n }\n return this;\n },\n /**\n * Get the cropped area position and size data (base on the original image)\n * @param {boolean} [rounded=false] - Indicate if round the data values or not.\n * @returns {Object} The result cropped data.\n */\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData,\n cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n x: cropBoxData.left - canvasData.left,\n y: cropBoxData.top - canvasData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n var ratio = imageData.width / imageData.naturalWidth;\n forEach(data, function (n, i) {\n data[i] = n / ratio;\n });\n if (rounded) {\n // In case rounding off leads to extra 1px in right or bottom border\n // we should round the top-left corner and the dimension (#343).\n var bottom = Math.round(data.y + data.height);\n var right = Math.round(data.x + data.width);\n data.x = Math.round(data.x);\n data.y = Math.round(data.y);\n data.width = right - data.x;\n data.height = bottom - data.y;\n }\n } else {\n data = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n }\n if (options.rotatable) {\n data.rotate = imageData.rotate || 0;\n }\n if (options.scalable) {\n data.scaleX = imageData.scaleX || 1;\n data.scaleY = imageData.scaleY || 1;\n }\n return data;\n },\n /**\n * Set the cropped area position and size with new data\n * @param {Object} data - The new data.\n * @returns {Cropper} this\n */\n setData: function setData(data) {\n var options = this.options,\n imageData = this.imageData,\n canvasData = this.canvasData;\n var cropBoxData = {};\n if (this.ready && !this.disabled && isPlainObject(data)) {\n var transformed = false;\n if (options.rotatable) {\n if (isNumber(data.rotate) && data.rotate !== imageData.rotate) {\n imageData.rotate = data.rotate;\n transformed = true;\n }\n }\n if (options.scalable) {\n if (isNumber(data.scaleX) && data.scaleX !== imageData.scaleX) {\n imageData.scaleX = data.scaleX;\n transformed = true;\n }\n if (isNumber(data.scaleY) && data.scaleY !== imageData.scaleY) {\n imageData.scaleY = data.scaleY;\n transformed = true;\n }\n }\n if (transformed) {\n this.renderCanvas(true, true);\n }\n var ratio = imageData.width / imageData.naturalWidth;\n if (isNumber(data.x)) {\n cropBoxData.left = data.x * ratio + canvasData.left;\n }\n if (isNumber(data.y)) {\n cropBoxData.top = data.y * ratio + canvasData.top;\n }\n if (isNumber(data.width)) {\n cropBoxData.width = data.width * ratio;\n }\n if (isNumber(data.height)) {\n cropBoxData.height = data.height * ratio;\n }\n this.setCropBoxData(cropBoxData);\n }\n return this;\n },\n /**\n * Get the container size data.\n * @returns {Object} The result container data.\n */\n getContainerData: function getContainerData() {\n return this.ready ? assign({}, this.containerData) : {};\n },\n /**\n * Get the image position and size data.\n * @returns {Object} The result image data.\n */\n getImageData: function getImageData() {\n return this.sized ? assign({}, this.imageData) : {};\n },\n /**\n * Get the canvas position and size data.\n * @returns {Object} The result canvas data.\n */\n getCanvasData: function getCanvasData() {\n var canvasData = this.canvasData;\n var data = {};\n if (this.ready) {\n forEach(['left', 'top', 'width', 'height', 'naturalWidth', 'naturalHeight'], function (n) {\n data[n] = canvasData[n];\n });\n }\n return data;\n },\n /**\n * Set the canvas position and size with new data.\n * @param {Object} data - The new canvas data.\n * @returns {Cropper} this\n */\n setCanvasData: function setCanvasData(data) {\n var canvasData = this.canvasData;\n var aspectRatio = canvasData.aspectRatio;\n if (this.ready && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n canvasData.left = data.left;\n }\n if (isNumber(data.top)) {\n canvasData.top = data.top;\n }\n if (isNumber(data.width)) {\n canvasData.width = data.width;\n canvasData.height = data.width / aspectRatio;\n } else if (isNumber(data.height)) {\n canvasData.height = data.height;\n canvasData.width = data.height * aspectRatio;\n }\n this.renderCanvas(true);\n }\n return this;\n },\n /**\n * Get the crop box position and size data.\n * @returns {Object} The result crop box data.\n */\n getCropBoxData: function getCropBoxData() {\n var cropBoxData = this.cropBoxData;\n var data;\n if (this.ready && this.cropped) {\n data = {\n left: cropBoxData.left,\n top: cropBoxData.top,\n width: cropBoxData.width,\n height: cropBoxData.height\n };\n }\n return data || {};\n },\n /**\n * Set the crop box position and size with new data.\n * @param {Object} data - The new crop box data.\n * @returns {Cropper} this\n */\n setCropBoxData: function setCropBoxData(data) {\n var cropBoxData = this.cropBoxData;\n var aspectRatio = this.options.aspectRatio;\n var widthChanged;\n var heightChanged;\n if (this.ready && this.cropped && !this.disabled && isPlainObject(data)) {\n if (isNumber(data.left)) {\n cropBoxData.left = data.left;\n }\n if (isNumber(data.top)) {\n cropBoxData.top = data.top;\n }\n if (isNumber(data.width) && data.width !== cropBoxData.width) {\n widthChanged = true;\n cropBoxData.width = data.width;\n }\n if (isNumber(data.height) && data.height !== cropBoxData.height) {\n heightChanged = true;\n cropBoxData.height = data.height;\n }\n if (aspectRatio) {\n if (widthChanged) {\n cropBoxData.height = cropBoxData.width / aspectRatio;\n } else if (heightChanged) {\n cropBoxData.width = cropBoxData.height * aspectRatio;\n }\n }\n this.renderCropBox();\n }\n return this;\n },\n /**\n * Get a canvas drawn the cropped image.\n * @param {Object} [options={}] - The config options.\n * @returns {HTMLCanvasElement} - The result canvas.\n */\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (!this.ready || !window.HTMLCanvasElement) {\n return null;\n }\n var canvasData = this.canvasData;\n var source = getSourceCanvas(this.image, this.imageData, canvasData, options);\n\n // Returns the source canvas if it is not cropped.\n if (!this.cropped) {\n return source;\n }\n var _this$getData = this.getData(options.rounded),\n initialX = _this$getData.x,\n initialY = _this$getData.y,\n initialWidth = _this$getData.width,\n initialHeight = _this$getData.height;\n var ratio = source.width / Math.floor(canvasData.naturalWidth);\n if (ratio !== 1) {\n initialX *= ratio;\n initialY *= ratio;\n initialWidth *= ratio;\n initialHeight *= ratio;\n }\n var aspectRatio = initialWidth / initialHeight;\n var maxSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.maxWidth || Infinity,\n height: options.maxHeight || Infinity\n });\n var minSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.minWidth || 0,\n height: options.minHeight || 0\n }, 'cover');\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: options.width || (ratio !== 1 ? source.width : initialWidth),\n height: options.height || (ratio !== 1 ? source.height : initialHeight)\n }),\n width = _getAdjustedSizes.width,\n height = _getAdjustedSizes.height;\n width = Math.min(maxSizes.width, Math.max(minSizes.width, width));\n height = Math.min(maxSizes.height, Math.max(minSizes.height, height));\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = normalizeDecimalNumber(width);\n canvas.height = normalizeDecimalNumber(height);\n context.fillStyle = options.fillColor || 'transparent';\n context.fillRect(0, 0, width, height);\n var _options$imageSmoothi = options.imageSmoothingEnabled,\n imageSmoothingEnabled = _options$imageSmoothi === void 0 ? true : _options$imageSmoothi,\n imageSmoothingQuality = options.imageSmoothingQuality;\n context.imageSmoothingEnabled = imageSmoothingEnabled;\n if (imageSmoothingQuality) {\n context.imageSmoothingQuality = imageSmoothingQuality;\n }\n\n // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D.drawImage\n var sourceWidth = source.width;\n var sourceHeight = source.height;\n\n // Source canvas parameters\n var srcX = initialX;\n var srcY = initialY;\n var srcWidth;\n var srcHeight;\n\n // Destination canvas parameters\n var dstX;\n var dstY;\n var dstWidth;\n var dstHeight;\n if (srcX <= -initialWidth || srcX > sourceWidth) {\n srcX = 0;\n srcWidth = 0;\n dstX = 0;\n dstWidth = 0;\n } else if (srcX <= 0) {\n dstX = -srcX;\n srcX = 0;\n srcWidth = Math.min(sourceWidth, initialWidth + srcX);\n dstWidth = srcWidth;\n } else if (srcX <= sourceWidth) {\n dstX = 0;\n srcWidth = Math.min(initialWidth, sourceWidth - srcX);\n dstWidth = srcWidth;\n }\n if (srcWidth <= 0 || srcY <= -initialHeight || srcY > sourceHeight) {\n srcY = 0;\n srcHeight = 0;\n dstY = 0;\n dstHeight = 0;\n } else if (srcY <= 0) {\n dstY = -srcY;\n srcY = 0;\n srcHeight = Math.min(sourceHeight, initialHeight + srcY);\n dstHeight = srcHeight;\n } else if (srcY <= sourceHeight) {\n dstY = 0;\n srcHeight = Math.min(initialHeight, sourceHeight - srcY);\n dstHeight = srcHeight;\n }\n var params = [srcX, srcY, srcWidth, srcHeight];\n\n // Avoid \"IndexSizeError\"\n if (dstWidth > 0 && dstHeight > 0) {\n var scale = width / initialWidth;\n params.push(dstX * scale, dstY * scale, dstWidth * scale, dstHeight * scale);\n }\n\n // All the numerical parameters should be integer for `drawImage`\n // https://github.com/fengyuanchen/cropper/issues/476\n context.drawImage.apply(context, [source].concat(_toConsumableArray(params.map(function (param) {\n return Math.floor(normalizeDecimalNumber(param));\n }))));\n return canvas;\n },\n /**\n * Change the aspect ratio of the crop box.\n * @param {number} aspectRatio - The new aspect ratio.\n * @returns {Cropper} this\n */\n setAspectRatio: function setAspectRatio(aspectRatio) {\n var options = this.options;\n if (!this.disabled && !isUndefined(aspectRatio)) {\n // 0 -> NaN\n options.aspectRatio = Math.max(0, aspectRatio) || NaN;\n if (this.ready) {\n this.initCropBox();\n if (this.cropped) {\n this.renderCropBox();\n }\n }\n }\n return this;\n },\n /**\n * Change the drag mode.\n * @param {string} mode - The new drag mode.\n * @returns {Cropper} this\n */\n setDragMode: function setDragMode(mode) {\n var options = this.options,\n dragBox = this.dragBox,\n face = this.face;\n if (this.ready && !this.disabled) {\n var croppable = mode === DRAG_MODE_CROP;\n var movable = options.movable && mode === DRAG_MODE_MOVE;\n mode = croppable || movable ? mode : DRAG_MODE_NONE;\n options.dragMode = mode;\n setData(dragBox, DATA_ACTION, mode);\n toggleClass(dragBox, CLASS_CROP, croppable);\n toggleClass(dragBox, CLASS_MOVE, movable);\n if (!options.cropBoxMovable) {\n // Sync drag mode to crop box when it is not movable\n setData(face, DATA_ACTION, mode);\n toggleClass(face, CLASS_CROP, croppable);\n toggleClass(face, CLASS_MOVE, movable);\n }\n }\n return this;\n }\n };\n\n var AnotherCropper = WINDOW.Cropper;\n var Cropper = /*#__PURE__*/function () {\n /**\n * Create a new Cropper.\n * @param {Element} element - The target element for cropping.\n * @param {Object} [options={}] - The configuration options.\n */\n function Cropper(element) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n _classCallCheck(this, Cropper);\n if (!element || !REGEXP_TAG_NAME.test(element.tagName)) {\n throw new Error('The first argument is required and must be an <img> or <canvas> element.');\n }\n this.element = element;\n this.options = assign({}, DEFAULTS, isPlainObject(options) && options);\n this.cropped = false;\n this.disabled = false;\n this.pointers = {};\n this.ready = false;\n this.reloading = false;\n this.replaced = false;\n this.sized = false;\n this.sizing = false;\n this.init();\n }\n return _createClass(Cropper, [{\n key: \"init\",\n value: function init() {\n var element = this.element;\n var tagName = element.tagName.toLowerCase();\n var url;\n if (element[NAMESPACE]) {\n return;\n }\n element[NAMESPACE] = this;\n if (tagName === 'img') {\n this.isImg = true;\n\n // e.g.: \"img/picture.jpg\"\n url = element.getAttribute('src') || '';\n this.originalUrl = url;\n\n // Stop when it's a blank image\n if (!url) {\n return;\n }\n\n // e.g.: \"https://example.com/img/picture.jpg\"\n url = element.src;\n } else if (tagName === 'canvas' && window.HTMLCanvasElement) {\n url = element.toDataURL();\n }\n this.load(url);\n }\n }, {\n key: \"load\",\n value: function load(url) {\n var _this = this;\n if (!url) {\n return;\n }\n this.url = url;\n this.imageData = {};\n var element = this.element,\n options = this.options;\n if (!options.rotatable && !options.scalable) {\n options.checkOrientation = false;\n }\n\n // Only IE10+ supports Typed Arrays\n if (!options.checkOrientation || !window.ArrayBuffer) {\n this.clone();\n return;\n }\n\n // Detect the mime type of the image directly if it is a Data URL\n if (REGEXP_DATA_URL.test(url)) {\n // Read ArrayBuffer from Data URL of JPEG images directly for better performance\n if (REGEXP_DATA_URL_JPEG.test(url)) {\n this.read(dataURLToArrayBuffer(url));\n } else {\n // Only a JPEG image may contains Exif Orientation information,\n // the rest types of Data URLs are not necessary to check orientation at all.\n this.clone();\n }\n return;\n }\n\n // 1. Detect the mime type of the image by a XMLHttpRequest.\n // 2. Load the image as ArrayBuffer for reading orientation if its a JPEG image.\n var xhr = new XMLHttpRequest();\n var clone = this.clone.bind(this);\n this.reloading = true;\n this.xhr = xhr;\n\n // 1. Cross origin requests are only supported for protocol schemes:\n // http, https, data, chrome, chrome-extension.\n // 2. Access to XMLHttpRequest from a Data URL will be blocked by CORS policy\n // in some browsers as IE11 and Safari.\n xhr.onabort = clone;\n xhr.onerror = clone;\n xhr.ontimeout = clone;\n xhr.onprogress = function () {\n // Abort the request directly if it not a JPEG image for better performance\n if (xhr.getResponseHeader('content-type') !== MIME_TYPE_JPEG) {\n xhr.abort();\n }\n };\n xhr.onload = function () {\n _this.read(xhr.response);\n };\n xhr.onloadend = function () {\n _this.reloading = false;\n _this.xhr = null;\n };\n\n // Bust cache when there is a \"crossOrigin\" property to avoid browser cache error\n if (options.checkCrossOrigin && isCrossOriginURL(url) && element.crossOrigin) {\n url = addTimestamp(url);\n }\n\n // The third parameter is required for avoiding side-effect (#682)\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n xhr.withCredentials = element.crossOrigin === 'use-credentials';\n xhr.send();\n }\n }, {\n key: \"read\",\n value: function read(arrayBuffer) {\n var options = this.options,\n imageData = this.imageData;\n\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n var orientation = resetAndGetOrientation(arrayBuffer);\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n if (orientation > 1) {\n // Generate a new URL which has the default orientation value\n this.url = arrayBufferToDataURL(arrayBuffer, MIME_TYPE_JPEG);\n var _parseOrientation = parseOrientation(orientation);\n rotate = _parseOrientation.rotate;\n scaleX = _parseOrientation.scaleX;\n scaleY = _parseOrientation.scaleY;\n }\n if (options.rotatable) {\n imageData.rotate = rotate;\n }\n if (options.scalable) {\n imageData.scaleX = scaleX;\n imageData.scaleY = scaleY;\n }\n this.clone();\n }\n }, {\n key: \"clone\",\n value: function clone() {\n var element = this.element,\n url = this.url;\n var crossOrigin = element.crossOrigin;\n var crossOriginUrl = url;\n if (this.options.checkCrossOrigin && isCrossOriginURL(url)) {\n if (!crossOrigin) {\n crossOrigin = 'anonymous';\n }\n\n // Bust cache when there is not a \"crossOrigin\" property (#519)\n crossOriginUrl = addTimestamp(url);\n }\n this.crossOrigin = crossOrigin;\n this.crossOriginUrl = crossOriginUrl;\n var image = document.createElement('img');\n if (crossOrigin) {\n image.crossOrigin = crossOrigin;\n }\n image.src = crossOriginUrl || url;\n image.alt = element.alt || 'The image to crop';\n this.image = image;\n image.onload = this.start.bind(this);\n image.onerror = this.stop.bind(this);\n addClass(image, CLASS_HIDE);\n element.parentNode.insertBefore(image, element.nextSibling);\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n this.sizing = true;\n\n // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n var isIOSWebKit = WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent);\n var done = function done(naturalWidth, naturalHeight) {\n assign(_this2.imageData, {\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n aspectRatio: naturalWidth / naturalHeight\n });\n _this2.initialImageData = assign({}, _this2.imageData);\n _this2.sizing = false;\n _this2.sized = true;\n _this2.build();\n };\n\n // Most modern browsers (excepts iOS WebKit)\n if (image.naturalWidth && !isIOSWebKit) {\n done(image.naturalWidth, image.naturalHeight);\n return;\n }\n var sizingImage = document.createElement('img');\n var body = document.body || document.documentElement;\n this.sizingImage = sizingImage;\n sizingImage.onload = function () {\n done(sizingImage.width, sizingImage.height);\n if (!isIOSWebKit) {\n body.removeChild(sizingImage);\n }\n };\n sizingImage.src = image.src;\n\n // iOS WebKit will convert the image automatically\n // with its orientation once append it into DOM (#279)\n if (!isIOSWebKit) {\n sizingImage.style.cssText = 'left:0;' + 'max-height:none!important;' + 'max-width:none!important;' + 'min-height:0!important;' + 'min-width:0!important;' + 'opacity:0;' + 'position:absolute;' + 'top:0;' + 'z-index:-1;';\n body.appendChild(sizingImage);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n var image = this.image;\n image.onload = null;\n image.onerror = null;\n image.parentNode.removeChild(image);\n this.image = null;\n }\n }, {\n key: \"build\",\n value: function build() {\n if (!this.sized || this.ready) {\n return;\n }\n var element = this.element,\n options = this.options,\n image = this.image;\n\n // Create cropper elements\n var container = element.parentNode;\n var template = document.createElement('div');\n template.innerHTML = TEMPLATE;\n var cropper = template.querySelector(\".\".concat(NAMESPACE, \"-container\"));\n var canvas = cropper.querySelector(\".\".concat(NAMESPACE, \"-canvas\"));\n var dragBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-drag-box\"));\n var cropBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-crop-box\"));\n var face = cropBox.querySelector(\".\".concat(NAMESPACE, \"-face\"));\n this.container = container;\n this.cropper = cropper;\n this.canvas = canvas;\n this.dragBox = dragBox;\n this.cropBox = cropBox;\n this.viewBox = cropper.querySelector(\".\".concat(NAMESPACE, \"-view-box\"));\n this.face = face;\n canvas.appendChild(image);\n\n // Hide the original image\n addClass(element, CLASS_HIDDEN);\n\n // Inserts the cropper after to the current image\n container.insertBefore(cropper, element.nextSibling);\n\n // Show the hidden image\n removeClass(image, CLASS_HIDE);\n this.initPreview();\n this.bind();\n options.initialAspectRatio = Math.max(0, options.initialAspectRatio) || NaN;\n options.aspectRatio = Math.max(0, options.aspectRatio) || NaN;\n options.viewMode = Math.max(0, Math.min(3, Math.round(options.viewMode))) || 0;\n addClass(cropBox, CLASS_HIDDEN);\n if (!options.guides) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-dashed\")), CLASS_HIDDEN);\n }\n if (!options.center) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-center\")), CLASS_HIDDEN);\n }\n if (options.background) {\n addClass(cropper, \"\".concat(NAMESPACE, \"-bg\"));\n }\n if (!options.highlight) {\n addClass(face, CLASS_INVISIBLE);\n }\n if (options.cropBoxMovable) {\n addClass(face, CLASS_MOVE);\n setData(face, DATA_ACTION, ACTION_ALL);\n }\n if (!options.cropBoxResizable) {\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-line\")), CLASS_HIDDEN);\n addClass(cropBox.getElementsByClassName(\"\".concat(NAMESPACE, \"-point\")), CLASS_HIDDEN);\n }\n this.render();\n this.ready = true;\n this.setDragMode(options.dragMode);\n if (options.autoCrop) {\n this.crop();\n }\n this.setData(options.data);\n if (isFunction(options.ready)) {\n addListener(element, EVENT_READY, options.ready, {\n once: true\n });\n }\n dispatchEvent(element, EVENT_READY);\n }\n }, {\n key: \"unbuild\",\n value: function unbuild() {\n if (!this.ready) {\n return;\n }\n this.ready = false;\n this.unbind();\n this.resetPreview();\n var parentNode = this.cropper.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.cropper);\n }\n removeClass(this.element, CLASS_HIDDEN);\n }\n }, {\n key: \"uncreate\",\n value: function uncreate() {\n if (this.ready) {\n this.unbuild();\n this.ready = false;\n this.cropped = false;\n } else if (this.sizing) {\n this.sizingImage.onload = null;\n this.sizing = false;\n this.sized = false;\n } else if (this.reloading) {\n this.xhr.onabort = null;\n this.xhr.abort();\n } else if (this.image) {\n this.stop();\n }\n }\n\n /**\n * Get the no conflict cropper class.\n * @returns {Cropper} The cropper class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Cropper = AnotherCropper;\n return Cropper;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n assign(DEFAULTS, isPlainObject(options) && options);\n }\n }]);\n }();\n assign(Cropper.prototype, render, preview, events, handlers, change, methods);\n\n return Cropper;\n\n}));\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _vue = require('vue');\n\nvar _cropperjs = require('cropperjs');\n\nvar _cropperjs2 = _interopRequireDefault(_cropperjs);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nvar previewPropType = typeof window === 'undefined' ? [String, Array] : [String, Array, Element, NodeList];\n\nexports.default = {\n render: function render() {\n var crossorigin = this.crossorigin || undefined;\n\n return (0, _vue.h)('div', { style: this.containerStyle }, [(0, _vue.h)('img', {\n ref: 'img',\n src: this.src,\n alt: this.alt || 'image',\n style: [{ 'max-width': '100%' }, this.imgStyle],\n crossorigin: crossorigin\n })]);\n },\n\n props: {\n containerStyle: Object,\n src: {\n type: String,\n default: ''\n },\n alt: String,\n imgStyle: Object,\n\n viewMode: Number,\n dragMode: String,\n initialAspectRatio: Number,\n aspectRatio: Number,\n data: Object,\n preview: previewPropType,\n responsive: {\n type: Boolean,\n default: true\n },\n restore: {\n type: Boolean,\n default: true\n },\n checkCrossOrigin: {\n type: Boolean,\n default: true\n },\n checkOrientation: {\n type: Boolean,\n default: true\n },\n crossorigin: {\n type: String\n },\n modal: {\n type: Boolean,\n default: true\n },\n guides: {\n type: Boolean,\n default: true\n },\n center: {\n type: Boolean,\n default: true\n },\n highlight: {\n type: Boolean,\n default: true\n },\n background: {\n type: Boolean,\n default: true\n },\n autoCrop: {\n type: Boolean,\n default: true\n },\n autoCropArea: Number,\n movable: {\n type: Boolean,\n default: true\n },\n rotatable: {\n type: Boolean,\n default: true\n },\n scalable: {\n type: Boolean,\n default: true\n },\n zoomable: {\n type: Boolean,\n default: true\n },\n zoomOnTouch: {\n type: Boolean,\n default: true\n },\n zoomOnWheel: {\n type: Boolean,\n default: true\n },\n wheelZoomRatio: Number,\n cropBoxMovable: {\n type: Boolean,\n default: true\n },\n cropBoxResizable: {\n type: Boolean,\n default: true\n },\n toggleDragModeOnDblclick: {\n type: Boolean,\n default: true\n },\n\n minCanvasWidth: Number,\n minCanvasHeight: Number,\n minCropBoxWidth: Number,\n minCropBoxHeight: Number,\n minContainerWidth: Number,\n minContainerHeight: Number,\n\n ready: Function,\n cropstart: Function,\n cropmove: Function,\n cropend: Function,\n crop: Function,\n zoom: Function\n },\n mounted: function mounted() {\n var _$options$props = this.$options.props,\n containerStyle = _$options$props.containerStyle,\n src = _$options$props.src,\n alt = _$options$props.alt,\n imgStyle = _$options$props.imgStyle,\n data = _objectWithoutProperties(_$options$props, ['containerStyle', 'src', 'alt', 'imgStyle']);\n\n var props = {};\n\n for (var key in data) {\n if (this[key] !== undefined) {\n props[key] = this[key];\n }\n }\n\n this.cropper = new _cropperjs2.default(this.$refs.img, props);\n },\n\n methods: {\n reset: function reset() {\n return this.cropper.reset();\n },\n clear: function clear() {\n return this.cropper.clear();\n },\n initCrop: function initCrop() {\n return this.cropper.crop();\n },\n replace: function replace(url) {\n var onlyColorChanged = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n return this.cropper.replace(url, onlyColorChanged);\n },\n enable: function enable() {\n return this.cropper.enable();\n },\n disable: function disable() {\n return this.cropper.disable();\n },\n destroy: function destroy() {\n return this.cropper.destroy();\n },\n move: function move(offsetX, offsetY) {\n return this.cropper.move(offsetX, offsetY);\n },\n moveTo: function moveTo(x) {\n var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : x;\n\n return this.cropper.moveTo(x, y);\n },\n relativeZoom: function relativeZoom(ratio, _originalEvent) {\n return this.cropper.zoom(ratio, _originalEvent);\n },\n zoomTo: function zoomTo(ratio, _originalEvent) {\n return this.cropper.zoomTo(ratio, _originalEvent);\n },\n rotate: function rotate(degree) {\n return this.cropper.rotate(degree);\n },\n rotateTo: function rotateTo(degree) {\n return this.cropper.rotateTo(degree);\n },\n scaleX: function scaleX(_scaleX) {\n return this.cropper.scaleX(_scaleX);\n },\n scaleY: function scaleY(_scaleY) {\n return this.cropper.scaleY(_scaleY);\n },\n scale: function scale(scaleX) {\n var scaleY = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : scaleX;\n\n return this.cropper.scale(scaleX, scaleY);\n },\n getData: function getData() {\n var rounded = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n return this.cropper.getData(rounded);\n },\n setData: function setData(data) {\n return this.cropper.setData(data);\n },\n getContainerData: function getContainerData() {\n return this.cropper.getContainerData();\n },\n getImageData: function getImageData() {\n return this.cropper.getImageData();\n },\n getCanvasData: function getCanvasData() {\n return this.cropper.getCanvasData();\n },\n setCanvasData: function setCanvasData(data) {\n return this.cropper.setCanvasData(data);\n },\n getCropBoxData: function getCropBoxData() {\n return this.cropper.getCropBoxData();\n },\n setCropBoxData: function setCropBoxData(data) {\n return this.cropper.setCropBoxData(data);\n },\n getCroppedCanvas: function getCroppedCanvas() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n return this.cropper.getCroppedCanvas(options);\n },\n setAspectRatio: function setAspectRatio(aspectRatio) {\n return this.cropper.setAspectRatio(aspectRatio);\n },\n setDragMode: function setDragMode(mode) {\n return this.cropper.setDragMode(mode);\n }\n }\n};","<template>\n <span v-bind=\"$attrs\"\n :aria-hidden=\"title ? null : 'true'\"\n :aria-label=\"title\"\n class=\"material-design-icon cloud-download-outline-icon\"\n role=\"img\"\n @click=\"$emit('click', $event)\">\n <svg :fill=\"fillColor\"\n class=\"material-design-icon__svg\"\n :width=\"size\"\n :height=\"size\"\n viewBox=\"0 0 24 24\">\n <path d=\"M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.68 7.35 7.38 5.73 9.07 4.1 11 4.1 11.83 4.1 12.41 4.69 13 5.28 13 6.1V12.15L14.6 10.6L16 12L12 16L8 12L9.4 10.6L11 12.15V6.1Q9.1 6.45 8.05 7.94 7 9.43 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 9.8 16.45 8.76 15.9 7.73 15 7V4.68Q16.85 5.55 17.93 7.26 19 9 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20M12 11.05Z\">\n <title v-if=\"title\">{{ title }}\n \n \n \n\n\n","\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","'use strict';\n\nconst defaultAlphabetIndexMap = [];\n\nfunction isNumberCode(code) {\n return code >= 48/* '0' */ && code <= 57/* '9' */;\n}\n\nfunction naturalCompare(a, b, opts) {\n if (typeof a !== 'string') {\n throw new TypeError(`The first argument must be a string. Received type '${typeof a}'`);\n }\n if (typeof b !== 'string') {\n throw new TypeError(`The second argument must be a string. Received type '${typeof b}'`);\n }\n\n const lengthA = a.length;\n const lengthB = b.length;\n let indexA = 0;\n let indexB = 0;\n let alphabetIndexMap = defaultAlphabetIndexMap;\n let firstDifferenceInLeadingZeros = 0;\n\n if (opts) {\n if (opts.caseInsensitive) {\n a = a.toLowerCase();\n b = b.toLowerCase();\n }\n\n if (opts.alphabet) {\n alphabetIndexMap = buildAlphabetIndexMap(opts.alphabet);\n }\n }\n\n while (indexA < lengthA && indexB < lengthB) {\n let charCodeA = a.charCodeAt(indexA);\n let charCodeB = b.charCodeAt(indexB);\n\n if (isNumberCode(charCodeA)) {\n if (!isNumberCode(charCodeB)) {\n return charCodeA - charCodeB;\n }\n\n let numStartA = indexA;\n let numStartB = indexB;\n\n while (charCodeA === 48/* '0' */ && ++numStartA < lengthA) {\n charCodeA = a.charCodeAt(numStartA);\n }\n while (charCodeB === 48/* '0' */ && ++numStartB < lengthB) {\n charCodeB = b.charCodeAt(numStartB);\n }\n\n if (numStartA !== numStartB && firstDifferenceInLeadingZeros === 0) {\n firstDifferenceInLeadingZeros = numStartA - numStartB;\n }\n\n let numEndA = numStartA;\n let numEndB = numStartB;\n\n while (numEndA < lengthA && isNumberCode(a.charCodeAt(numEndA))) {\n ++numEndA;\n }\n while (numEndB < lengthB && isNumberCode(b.charCodeAt(numEndB))) {\n ++numEndB;\n }\n\n let difference = numEndA - numStartA - numEndB + numStartB; // numA length - numB length\n if (difference !== 0) {\n return difference;\n }\n\n while (numStartA < numEndA) {\n difference = a.charCodeAt(numStartA++) - b.charCodeAt(numStartB++);\n if (difference !== 0) {\n return difference;\n }\n }\n\n indexA = numEndA;\n indexB = numEndB;\n continue;\n }\n\n if (charCodeA !== charCodeB) {\n if (\n charCodeA < alphabetIndexMap.length &&\n charCodeB < alphabetIndexMap.length &&\n alphabetIndexMap[charCodeA] !== -1 &&\n alphabetIndexMap[charCodeB] !== -1\n ) {\n return alphabetIndexMap[charCodeA] - alphabetIndexMap[charCodeB];\n }\n\n return charCodeA - charCodeB;\n }\n\n ++indexA;\n ++indexB;\n }\n\n if (indexA < lengthA) { // `b` is a substring of `a`\n return 1;\n }\n\n if (indexB < lengthB) { // `a` is a substring of `b`\n return -1;\n }\n\n return firstDifferenceInLeadingZeros;\n}\n\nconst alphabetIndexMapCache = {};\n\nfunction buildAlphabetIndexMap(alphabet) {\n const existingMap = alphabetIndexMapCache[alphabet];\n if (existingMap !== undefined) {\n return existingMap;\n }\n\n const indexMap = [];\n const maxCharCode = alphabet.split('').reduce((maxCode, char) => {\n return Math.max(maxCode, char.charCodeAt(0));\n }, 0);\n\n for (let i = 0; i <= maxCharCode; i++) {\n indexMap.push(-1);\n }\n\n for (let i = 0; i < alphabet.length; i++) {\n indexMap[alphabet.charCodeAt(i)] = i;\n }\n\n alphabetIndexMapCache[alphabet] = indexMap;\n\n return indexMap;\n}\n\nmodule.exports = naturalCompare;\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst isTalkEnabled = loadState('contacts', 'isTalkEnabled', false)\nexport default isTalkEnabled\n","\n\n\n\n\n\n\n","export default \"\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='mdi-delete-outline'%20viewBox='0%200%2024%2024'%3e%3cpath%20d='M6,19A2,2%200%200,0%208,21H16A2,2%200%200,0%2018,19V7H6V19M8,9H16V19H8V9M15.5,4L14.5,3H9.5L8.5,4H5V6H19V4H15.5Z'%20/%3e%3c/svg%3e\"","\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\n\n/**\n * Append a group to a contact\n *\n * @param {Contact} contact the contact model\n * @param {string} groupName the group name\n */\nasync function appendContactToGroup(contact, groupName) {\n\tconst groups = contact.groups\n\tgroups.push(groupName)\n\n\treturn axios.patch(contact.url, {}, {\n\t\theaders: {\n\t\t\t'X-PROPERTY': 'CATEGORIES',\n\t\t\t'X-PROPERTY-REPLACE': groups.map((groupName) => encodeURIComponent(groupName)).join(','),\n\t\t},\n\t})\n}\n\nexport default appendContactToGroup\n","\n\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n","\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n","\n\n","\n\n","\n\n\n\n","\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst isGroupSharingEnabled = loadState('contacts', 'isGroupSharingEnabled', false)\nexport default isGroupSharingEnabled\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Works like urldecode() from php\n *\n * @see https://www.php.net/manual/en/function.urldecode.php\n * @param {string} url The url to be decoded\n * @return {string} The decoded url\n */\nexport function urldecode(url) {\n\treturn decodeURIComponent(url.replace(/\\+/g, ' '))\n}\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage\n// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime\n// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs\n// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling.\n// v4 adds AMD/UMD, commonJS, and plain browser support\n// v4.1 adds url download capability via solo URL argument (same domain/CORS only)\n// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors\n// https://github.com/rndme/download\n\n(function (root, factory) {\n\tif (typeof define === 'function' && define.amd) {\n\t\t// AMD. Register as an anonymous module.\n\t\tdefine([], factory);\n\t} else if (typeof exports === 'object') {\n\t\t// Node. Does not work with strict CommonJS, but\n\t\t// only CommonJS-like environments that support module.exports,\n\t\t// like Node.\n\t\tmodule.exports = factory();\n\t} else {\n\t\t// Browser globals (root is window)\n\t\troot.download = factory();\n }\n}(this, function () {\n\n\treturn function download(data, strFileName, strMimeType) {\n\n\t\tvar self = window, // this script is only for browsers anyway...\n\t\t\tdefaultMime = \"application/octet-stream\", // this default mime also triggers iframe downloads\n\t\t\tmimeType = strMimeType || defaultMime,\n\t\t\tpayload = data,\n\t\t\turl = !strFileName && !strMimeType && payload,\n\t\t\tanchor = document.createElement(\"a\"),\n\t\t\ttoString = function(a){return String(a);},\n\t\t\tmyBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString),\n\t\t\tfileName = strFileName || \"download\",\n\t\t\tblob,\n\t\t\treader;\n\t\t\tmyBlob= myBlob.call ? myBlob.bind(self) : Blob ;\n\t \n\t\tif(String(this)===\"true\"){ //reverse arguments, allowing download.bind(true, \"text/xml\", \"export.xml\") to act as a callback\n\t\t\tpayload=[payload, mimeType];\n\t\t\tmimeType=payload[0];\n\t\t\tpayload=payload[1];\n\t\t}\n\n\n\t\tif(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument\n\t\t\tfileName = url.split(\"/\").pop().split(\"?\")[0];\n\t\t\tanchor.href = url; // assign href prop to temp anchor\n\t\t \tif(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path:\n \t\tvar ajax=new XMLHttpRequest();\n \t\tajax.open( \"GET\", url, true);\n \t\tajax.responseType = 'blob';\n \t\tajax.onload= function(e){ \n\t\t\t\t download(e.target.response, fileName, defaultMime);\n\t\t\t\t};\n \t\tsetTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return:\n\t\t\t return ajax;\n\t\t\t} // end if valid url?\n\t\t} // end if url?\n\n\n\t\t//go ahead and download dataURLs right away\n\t\tif(/^data:([\\w+-]+\\/[\\w+.-]+)?[,;]/.test(payload)){\n\t\t\n\t\t\tif(payload.length > (1024*1024*1.999) && myBlob !== toString ){\n\t\t\t\tpayload=dataUrlToBlob(payload);\n\t\t\t\tmimeType=payload.type || defaultMime;\n\t\t\t}else{\t\t\t\n\t\t\t\treturn navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs:\n\t\t\t\t\tnavigator.msSaveBlob(dataUrlToBlob(payload), fileName) :\n\t\t\t\t\tsaver(payload) ; // everyone else can save dataURLs un-processed\n\t\t\t}\n\t\t\t\n\t\t}else{//not data url, is it a string with special needs?\n\t\t\tif(/([\\x80-\\xff])/.test(payload)){\t\t\t \n\t\t\t\tvar i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length;\n\t\t\t\tfor(i;i>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n}\n\nfunction isValid(m) {\n var flags = null,\n parsedParts = false,\n isNowValid = m._d && !isNaN(m._d.getTime());\n if (isNowValid) {\n flags = getParsingFlags(m);\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n isNowValid =\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n }\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n return m._isValid;\n}\n\nfunction createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n}\n\n// Plugins that add properties should also add the key here (null value),\n// so we can properly clone ourselves.\nvar momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\nfunction copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n}\n\n// Moment prototype object\nfunction Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n}\n\nfunction isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n}\n\nfunction warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n}\n\nfunction deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n}\n\nvar deprecations = {};\n\nfunction deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n}\n\nhooks.suppressDeprecationWarnings = false;\nhooks.deprecationHandler = null;\n\nfunction isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n}\n\nfunction set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n}\n\nfunction mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n}\n\nfunction Locale(config) {\n if (config != null) {\n this.set(config);\n }\n}\n\nvar keys;\n\nif (Object.keys) {\n keys = Object.keys;\n} else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n}\n\nvar defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n};\n\nfunction calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n}\n\nfunction zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n}\n\nvar formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n// token: 'M'\n// padded: ['MM', 2]\n// ordinal: 'Mo'\n// callback: function () { this.month() + 1 }\nfunction addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n}\n\nfunction removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n}\n\nfunction makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n}\n\n// format date using native date object\nfunction formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n}\n\nfunction expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n}\n\nvar defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n};\n\nfunction longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n}\n\nvar defaultInvalidDate = 'Invalid date';\n\nfunction invalidDate() {\n return this._invalidDate;\n}\n\nvar defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\nfunction ordinal(number) {\n return this._ordinal.replace('%d', number);\n}\n\nvar defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n};\n\nfunction relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n}\n\nfunction pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n}\n\nvar aliases = {\n D: 'date',\n dates: 'date',\n date: 'date',\n d: 'day',\n days: 'day',\n day: 'day',\n e: 'weekday',\n weekdays: 'weekday',\n weekday: 'weekday',\n E: 'isoWeekday',\n isoweekdays: 'isoWeekday',\n isoweekday: 'isoWeekday',\n DDD: 'dayOfYear',\n dayofyears: 'dayOfYear',\n dayofyear: 'dayOfYear',\n h: 'hour',\n hours: 'hour',\n hour: 'hour',\n ms: 'millisecond',\n milliseconds: 'millisecond',\n millisecond: 'millisecond',\n m: 'minute',\n minutes: 'minute',\n minute: 'minute',\n M: 'month',\n months: 'month',\n month: 'month',\n Q: 'quarter',\n quarters: 'quarter',\n quarter: 'quarter',\n s: 'second',\n seconds: 'second',\n second: 'second',\n gg: 'weekYear',\n weekyears: 'weekYear',\n weekyear: 'weekYear',\n GG: 'isoWeekYear',\n isoweekyears: 'isoWeekYear',\n isoweekyear: 'isoWeekYear',\n w: 'week',\n weeks: 'week',\n week: 'week',\n W: 'isoWeek',\n isoweeks: 'isoWeek',\n isoweek: 'isoWeek',\n y: 'year',\n years: 'year',\n year: 'year',\n};\n\nfunction normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n}\n\nfunction normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n}\n\nvar priorities = {\n date: 9,\n day: 11,\n weekday: 11,\n isoWeekday: 11,\n dayOfYear: 4,\n hour: 13,\n millisecond: 16,\n minute: 14,\n month: 8,\n quarter: 7,\n second: 15,\n weekYear: 1,\n isoWeekYear: 1,\n week: 5,\n isoWeek: 5,\n year: 1,\n};\n\nfunction getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n}\n\nvar match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n match1to2NoLeadingZero = /^[1-9]\\d?/, // 1-99\n match1to2HasZero = /^([1-9]\\d|\\d)/, // 0-99\n regexes;\n\nregexes = {};\n\nfunction addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n}\n\nfunction getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n}\n\n// Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\nfunction unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n}\n\nfunction regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n}\n\nfunction absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n}\n\nfunction toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n}\n\nvar tokens = {};\n\nfunction addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n}\n\nfunction addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n}\n\nfunction addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n}\n\nfunction isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n}\n\nvar YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n// FORMATTING\n\naddFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n});\n\naddFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n});\n\naddFormatToken(0, ['YYYY', 4], 0, 'year');\naddFormatToken(0, ['YYYYY', 5], 0, 'year');\naddFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n// PARSING\n\naddRegexToken('Y', matchSigned);\naddRegexToken('YY', match1to2, match2);\naddRegexToken('YYYY', match1to4, match4);\naddRegexToken('YYYYY', match1to6, match6);\naddRegexToken('YYYYYY', match1to6, match6);\n\naddParseToken(['YYYYY', 'YYYYYY'], YEAR);\naddParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n});\naddParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n});\naddParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n});\n\n// HELPERS\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\n// HOOKS\n\nhooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n};\n\n// MOMENTS\n\nvar getSetYear = makeGetSet('FullYear', true);\n\nfunction getIsLeapYear() {\n return isLeapYear(this.year());\n}\n\nfunction makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n}\n\nfunction get(mom, unit) {\n if (!mom.isValid()) {\n return NaN;\n }\n\n var d = mom._d,\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return isUTC ? d.getUTCMilliseconds() : d.getMilliseconds();\n case 'Seconds':\n return isUTC ? d.getUTCSeconds() : d.getSeconds();\n case 'Minutes':\n return isUTC ? d.getUTCMinutes() : d.getMinutes();\n case 'Hours':\n return isUTC ? d.getUTCHours() : d.getHours();\n case 'Date':\n return isUTC ? d.getUTCDate() : d.getDate();\n case 'Day':\n return isUTC ? d.getUTCDay() : d.getDay();\n case 'Month':\n return isUTC ? d.getUTCMonth() : d.getMonth();\n case 'FullYear':\n return isUTC ? d.getUTCFullYear() : d.getFullYear();\n default:\n return NaN; // Just in case\n }\n}\n\nfunction set$1(mom, unit, value) {\n var d, isUTC, year, month, date;\n\n if (!mom.isValid() || isNaN(value)) {\n return;\n }\n\n d = mom._d;\n isUTC = mom._isUTC;\n\n switch (unit) {\n case 'Milliseconds':\n return void (isUTC\n ? d.setUTCMilliseconds(value)\n : d.setMilliseconds(value));\n case 'Seconds':\n return void (isUTC ? d.setUTCSeconds(value) : d.setSeconds(value));\n case 'Minutes':\n return void (isUTC ? d.setUTCMinutes(value) : d.setMinutes(value));\n case 'Hours':\n return void (isUTC ? d.setUTCHours(value) : d.setHours(value));\n case 'Date':\n return void (isUTC ? d.setUTCDate(value) : d.setDate(value));\n // case 'Day': // Not real\n // return void (isUTC ? d.setUTCDay(value) : d.setDay(value));\n // case 'Month': // Not used because we need to pass two variables\n // return void (isUTC ? d.setUTCMonth(value) : d.setMonth(value));\n case 'FullYear':\n break; // See below ...\n default:\n return; // Just in case\n }\n\n year = value;\n month = mom.month();\n date = mom.date();\n date = date === 29 && month === 1 && !isLeapYear(year) ? 28 : date;\n void (isUTC\n ? d.setUTCFullYear(year, month, date)\n : d.setFullYear(year, month, date));\n}\n\n// MOMENTS\n\nfunction stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n}\n\nfunction stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n}\n\nfunction mod(n, x) {\n return ((n % x) + x) % x;\n}\n\nvar indexOf;\n\nif (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n} else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n}\n\nfunction daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n}\n\n// FORMATTING\n\naddFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n});\n\naddFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n});\n\naddFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n});\n\n// PARSING\n\naddRegexToken('M', match1to2, match1to2NoLeadingZero);\naddRegexToken('MM', match1to2, match2);\naddRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n});\naddRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n});\n\naddParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n});\n\naddParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n});\n\n// LOCALES\n\nvar defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\nfunction localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n}\n\nfunction localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n}\n\nfunction handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction setMonth(mom, value) {\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n var month = value,\n date = mom.date();\n\n date = date < 29 ? date : Math.min(date, daysInMonth(mom.year(), month));\n void (mom._isUTC\n ? mom._d.setUTCMonth(month, date)\n : mom._d.setMonth(month, date));\n return mom;\n}\n\nfunction getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n}\n\nfunction getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n}\n\nfunction monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n}\n\nfunction monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n}\n\nfunction computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n shortP,\n longP;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortP = regexEscape(this.monthsShort(mom, ''));\n longP = regexEscape(this.months(mom, ''));\n shortPieces.push(shortP);\n longPieces.push(longP);\n mixedPieces.push(longP);\n mixedPieces.push(shortP);\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n}\n\nfunction createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n}\n\nfunction createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n}\n\n// start-of-first-week - start-of-year\nfunction firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n}\n\n// https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\nfunction dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n}\n\nfunction weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n}\n\nfunction weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n}\n\n// FORMATTING\n\naddFormatToken('w', ['ww', 2], 'wo', 'week');\naddFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n// PARSING\n\naddRegexToken('w', match1to2, match1to2NoLeadingZero);\naddRegexToken('ww', match1to2, match2);\naddRegexToken('W', match1to2, match1to2NoLeadingZero);\naddRegexToken('WW', match1to2, match2);\n\naddWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n);\n\n// HELPERS\n\n// LOCALES\n\nfunction localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n}\n\nvar defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n};\n\nfunction localeFirstDayOfWeek() {\n return this._week.dow;\n}\n\nfunction localeFirstDayOfYear() {\n return this._week.doy;\n}\n\n// MOMENTS\n\nfunction getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\nfunction getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('d', 0, 'do', 'day');\n\naddFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n});\n\naddFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n});\n\naddFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n});\n\naddFormatToken('e', 0, 0, 'weekday');\naddFormatToken('E', 0, 0, 'isoWeekday');\n\n// PARSING\n\naddRegexToken('d', match1to2);\naddRegexToken('e', match1to2);\naddRegexToken('E', match1to2);\naddRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n});\naddRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n});\naddRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n});\n\naddWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n});\n\naddWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n});\n\n// HELPERS\n\nfunction parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n}\n\nfunction parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n}\n\n// LOCALES\nfunction shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n}\n\nvar defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\nfunction localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n}\n\nfunction localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n}\n\nfunction localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n}\n\nfunction handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n}\n\nfunction localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n}\n\n// MOMENTS\n\nfunction getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n var day = get(this, 'Day');\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n}\n\nfunction getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n}\n\nfunction getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n}\n\nfunction weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n}\n\nfunction weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n}\n\nfunction weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n}\n\nfunction computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\nfunction hFormat() {\n return this.hours() % 12 || 12;\n}\n\nfunction kFormat() {\n return this.hours() || 24;\n}\n\naddFormatToken('H', ['HH', 2], 0, 'hour');\naddFormatToken('h', ['hh', 2], 0, hFormat);\naddFormatToken('k', ['kk', 2], 0, kFormat);\n\naddFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\naddFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n});\n\naddFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n});\n\nfunction meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n}\n\nmeridiem('a', true);\nmeridiem('A', false);\n\n// PARSING\n\nfunction matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n}\n\naddRegexToken('a', matchMeridiem);\naddRegexToken('A', matchMeridiem);\naddRegexToken('H', match1to2, match1to2HasZero);\naddRegexToken('h', match1to2, match1to2NoLeadingZero);\naddRegexToken('k', match1to2, match1to2NoLeadingZero);\naddRegexToken('HH', match1to2, match2);\naddRegexToken('hh', match1to2, match2);\naddRegexToken('kk', match1to2, match2);\n\naddRegexToken('hmm', match3to4);\naddRegexToken('hmmss', match5to6);\naddRegexToken('Hmm', match3to4);\naddRegexToken('Hmmss', match5to6);\n\naddParseToken(['H', 'HH'], HOUR);\naddParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n});\naddParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n});\naddParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n});\naddParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n});\naddParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n});\n\n// LOCALES\n\nfunction localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n}\n\nvar defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\nfunction localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n}\n\nvar baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n};\n\n// internal storage for locale config files\nvar locales = {},\n localeFamilies = {},\n globalLocale;\n\nfunction commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n}\n\nfunction normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n}\n\n// pick the locale from the array\n// try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n// substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\nfunction chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n}\n\nfunction isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n // Ensure name is available and function returns boolean\n return !!(name && name.match('^[^/\\\\\\\\]*$'));\n}\n\nfunction loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n}\n\n// This function will load locale and then set the global locale. If\n// no arguments are passed in, it will simply return the current global\n// locale key.\nfunction getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n}\n\nfunction defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n}\n\nfunction updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n}\n\n// returns locale data\nfunction getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n}\n\nfunction listLocales() {\n return keys(locales);\n}\n\nfunction checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n}\n\n// iso 8601 regex\n// 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\nvar extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n// date from iso format\nfunction configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n}\n\nfunction extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n}\n\nfunction untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n}\n\nfunction checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n}\n\nfunction calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n}\n\n// date and time from ref 2822 format\nfunction configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n}\n\n// date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\nfunction configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n}\n\nhooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n);\n\n// Pick the first defined of two or three arguments.\nfunction defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n}\n\nfunction currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n}\n\n// convert an array to a date.\n// the array should mirror the parameters below\n// note: all values past the year are optional and will default to the lowest possible value.\n// [year, month, day , hour, minute, second, millisecond]\nfunction configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n}\n\nfunction dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n}\n\n// constant that refers to the ISO standard\nhooks.ISO_8601 = function () {};\n\n// constant that refers to the RFC 2822 form\nhooks.RFC_2822 = function () {};\n\n// date from string and format string\nfunction configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n}\n\nfunction meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n}\n\n// date from string and array of format strings\nfunction configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n}\n\nfunction configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n}\n\nfunction createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n}\n\nfunction prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n}\n\nfunction configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n}\n\nfunction createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n}\n\nfunction createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n}\n\nvar prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n// Pick a moment m from moments so that m[fn](other) is true for all\n// other. This relies on the function fn to be transitive.\n//\n// moments should either be an array of moment objects or an array, whose\n// first element is an array of moment objects.\nfunction pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n}\n\n// TODO: Use [].sort instead?\nfunction min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n}\n\nfunction max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n}\n\nvar now = function () {\n return Date.now ? Date.now() : +new Date();\n};\n\nvar ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n];\n\nfunction isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n}\n\nfunction isValid$1() {\n return this._isValid;\n}\n\nfunction createInvalid$1() {\n return createDuration(NaN);\n}\n\nfunction Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n}\n\nfunction isDuration(obj) {\n return obj instanceof Duration;\n}\n\nfunction absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n}\n\n// compare two arrays, return the number of differences\nfunction compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n}\n\n// FORMATTING\n\nfunction offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n}\n\noffset('Z', ':');\noffset('ZZ', '');\n\n// PARSING\n\naddRegexToken('Z', matchShortOffset);\naddRegexToken('ZZ', matchShortOffset);\naddParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n});\n\n// HELPERS\n\n// timezone chunker\n// '+10:00' > ['10', '00']\n// '-1530' > ['-15', '30']\nvar chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\nfunction offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n}\n\n// Return a moment from input, that is local/utc/zone equivalent to model.\nfunction cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n}\n\nfunction getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n}\n\n// HOOKS\n\n// This function will be called whenever a moment is mutated.\n// It is intended to keep the offset in sync with the timezone.\nhooks.updateOffset = function () {};\n\n// MOMENTS\n\n// keepLocalTime = true means only change the timezone, without\n// affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n// 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n// +0200, so we adjust the time as needed, to be valid.\n//\n// Keeping the time actually adds/subtracts (one hour)\n// from the actual represented time. That is why we call updateOffset\n// a second time. In case it wants us to change the offset again\n// _changeInProgress == true case, then we have to adjust, because\n// there is no such time in the given timezone.\nfunction getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n}\n\nfunction getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n}\n\nfunction setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n}\n\nfunction setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n}\n\nfunction setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n}\n\nfunction hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n}\n\nfunction isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n}\n\nfunction isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n}\n\nfunction isLocal() {\n return this.isValid() ? !this._isUTC : false;\n}\n\nfunction isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n}\n\nfunction isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n}\n\n// ASP.NET json date format regex\nvar aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\nfunction createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n}\n\ncreateDuration.fn = Duration.prototype;\ncreateDuration.invalid = createInvalid$1;\n\nfunction parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n}\n\nfunction positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n}\n\nfunction momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n}\n\n// TODO: remove 'name' arg after deprecation is removed\nfunction createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n}\n\nfunction addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n}\n\nvar add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\nfunction isString(input) {\n return typeof input === 'string' || input instanceof String;\n}\n\n// type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\nfunction isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n}\n\nfunction isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n}\n\nfunction isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n}\n\nfunction getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n}\n\nfunction calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n}\n\nfunction clone() {\n return new Moment(this);\n}\n\nfunction isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n}\n\nfunction isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n}\n\nfunction isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n}\n\nfunction isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n}\n\nfunction isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n}\n\nfunction isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n}\n\nfunction diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n}\n\nfunction monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n}\n\nhooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\nhooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\nfunction toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n}\n\nfunction toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n}\n\n/**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\nfunction inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n}\n\nfunction format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n}\n\nfunction from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n}\n\nfunction to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n}\n\nfunction toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n}\n\n// If passed a locale key, it will set the locale for this\n// instance. Otherwise, it will return the locale configuration\n// variables for this instance.\nfunction locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n}\n\nvar lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n);\n\nfunction localeData() {\n return this._locale;\n}\n\nvar MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n// actual modulo - handles negative numbers (for dates before 1970):\nfunction mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n}\n\nfunction localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n}\n\nfunction utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n}\n\nfunction startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n}\n\nfunction valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n}\n\nfunction unix() {\n return Math.floor(this.valueOf() / 1000);\n}\n\nfunction toDate() {\n return new Date(this.valueOf());\n}\n\nfunction toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n}\n\nfunction toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n}\n\nfunction toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n}\n\nfunction isValid$2() {\n return isValid(this);\n}\n\nfunction parsingFlags() {\n return extend({}, getParsingFlags(this));\n}\n\nfunction invalidAt() {\n return getParsingFlags(this).overflow;\n}\n\nfunction creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n}\n\naddFormatToken('N', 0, 0, 'eraAbbr');\naddFormatToken('NN', 0, 0, 'eraAbbr');\naddFormatToken('NNN', 0, 0, 'eraAbbr');\naddFormatToken('NNNN', 0, 0, 'eraName');\naddFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\naddFormatToken('y', ['y', 1], 'yo', 'eraYear');\naddFormatToken('y', ['yy', 2], 0, 'eraYear');\naddFormatToken('y', ['yyy', 3], 0, 'eraYear');\naddFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\naddRegexToken('N', matchEraAbbr);\naddRegexToken('NN', matchEraAbbr);\naddRegexToken('NNN', matchEraAbbr);\naddRegexToken('NNNN', matchEraName);\naddRegexToken('NNNNN', matchEraNarrow);\n\naddParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n);\n\naddRegexToken('y', matchUnsigned);\naddRegexToken('yy', matchUnsigned);\naddRegexToken('yyy', matchUnsigned);\naddRegexToken('yyyy', matchUnsigned);\naddRegexToken('yo', matchEraYearOrdinal);\n\naddParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\naddParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n});\n\nfunction localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n}\n\nfunction localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n}\n\nfunction localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n}\n\nfunction getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n}\n\nfunction getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n}\n\nfunction getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n}\n\nfunction getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n}\n\nfunction erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n}\n\nfunction erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n}\n\nfunction erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n}\n\nfunction matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n}\n\nfunction matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n}\n\nfunction matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n}\n\nfunction matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n}\n\nfunction computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n erasName,\n erasAbbr,\n erasNarrow,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n erasName = regexEscape(eras[i].name);\n erasAbbr = regexEscape(eras[i].abbr);\n erasNarrow = regexEscape(eras[i].narrow);\n\n namePieces.push(erasName);\n abbrPieces.push(erasAbbr);\n narrowPieces.push(erasNarrow);\n mixedPieces.push(erasName);\n mixedPieces.push(erasAbbr);\n mixedPieces.push(erasNarrow);\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n}\n\n// FORMATTING\n\naddFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n});\n\naddFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n});\n\nfunction addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n}\n\naddWeekYearFormatToken('gggg', 'weekYear');\naddWeekYearFormatToken('ggggg', 'weekYear');\naddWeekYearFormatToken('GGGG', 'isoWeekYear');\naddWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n// ALIASES\n\n// PARSING\n\naddRegexToken('G', matchSigned);\naddRegexToken('g', matchSigned);\naddRegexToken('GG', match1to2, match2);\naddRegexToken('gg', match1to2, match2);\naddRegexToken('GGGG', match1to4, match4);\naddRegexToken('gggg', match1to4, match4);\naddRegexToken('GGGGG', match1to6, match6);\naddRegexToken('ggggg', match1to6, match6);\n\naddWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n);\n\naddWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n});\n\n// MOMENTS\n\nfunction getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday() + this.localeData()._week.dow,\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n}\n\nfunction getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n}\n\nfunction getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n}\n\nfunction getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n}\n\nfunction getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n}\n\nfunction getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n}\n\nfunction setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n}\n\n// FORMATTING\n\naddFormatToken('Q', 0, 'Qo', 'quarter');\n\n// PARSING\n\naddRegexToken('Q', match1);\naddParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n});\n\n// MOMENTS\n\nfunction getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n}\n\n// FORMATTING\n\naddFormatToken('D', ['DD', 2], 'Do', 'date');\n\n// PARSING\n\naddRegexToken('D', match1to2, match1to2NoLeadingZero);\naddRegexToken('DD', match1to2, match2);\naddRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n});\n\naddParseToken(['D', 'DD'], DATE);\naddParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n});\n\n// MOMENTS\n\nvar getSetDayOfMonth = makeGetSet('Date', true);\n\n// FORMATTING\n\naddFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n// PARSING\n\naddRegexToken('DDD', match1to3);\naddRegexToken('DDDD', match3);\naddParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n});\n\n// HELPERS\n\n// MOMENTS\n\nfunction getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n}\n\n// FORMATTING\n\naddFormatToken('m', ['mm', 2], 0, 'minute');\n\n// PARSING\n\naddRegexToken('m', match1to2, match1to2HasZero);\naddRegexToken('mm', match1to2, match2);\naddParseToken(['m', 'mm'], MINUTE);\n\n// MOMENTS\n\nvar getSetMinute = makeGetSet('Minutes', false);\n\n// FORMATTING\n\naddFormatToken('s', ['ss', 2], 0, 'second');\n\n// PARSING\n\naddRegexToken('s', match1to2, match1to2HasZero);\naddRegexToken('ss', match1to2, match2);\naddParseToken(['s', 'ss'], SECOND);\n\n// MOMENTS\n\nvar getSetSecond = makeGetSet('Seconds', false);\n\n// FORMATTING\n\naddFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n});\n\naddFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n});\n\naddFormatToken(0, ['SSS', 3], 0, 'millisecond');\naddFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n});\naddFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n});\naddFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n});\naddFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n});\naddFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n});\naddFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n});\n\n// PARSING\n\naddRegexToken('S', match1to3, match1);\naddRegexToken('SS', match1to3, match2);\naddRegexToken('SSS', match1to3, match3);\n\nvar token, getSetMillisecond;\nfor (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n}\n\nfunction parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n}\n\nfor (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n}\n\ngetSetMillisecond = makeGetSet('Milliseconds', false);\n\n// FORMATTING\n\naddFormatToken('z', 0, 0, 'zoneAbbr');\naddFormatToken('zz', 0, 0, 'zoneName');\n\n// MOMENTS\n\nfunction getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n}\n\nfunction getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n}\n\nvar proto = Moment.prototype;\n\nproto.add = add;\nproto.calendar = calendar$1;\nproto.clone = clone;\nproto.diff = diff;\nproto.endOf = endOf;\nproto.format = format;\nproto.from = from;\nproto.fromNow = fromNow;\nproto.to = to;\nproto.toNow = toNow;\nproto.get = stringGet;\nproto.invalidAt = invalidAt;\nproto.isAfter = isAfter;\nproto.isBefore = isBefore;\nproto.isBetween = isBetween;\nproto.isSame = isSame;\nproto.isSameOrAfter = isSameOrAfter;\nproto.isSameOrBefore = isSameOrBefore;\nproto.isValid = isValid$2;\nproto.lang = lang;\nproto.locale = locale;\nproto.localeData = localeData;\nproto.max = prototypeMax;\nproto.min = prototypeMin;\nproto.parsingFlags = parsingFlags;\nproto.set = stringSet;\nproto.startOf = startOf;\nproto.subtract = subtract;\nproto.toArray = toArray;\nproto.toObject = toObject;\nproto.toDate = toDate;\nproto.toISOString = toISOString;\nproto.inspect = inspect;\nif (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n}\nproto.toJSON = toJSON;\nproto.toString = toString;\nproto.unix = unix;\nproto.valueOf = valueOf;\nproto.creationData = creationData;\nproto.eraName = getEraName;\nproto.eraNarrow = getEraNarrow;\nproto.eraAbbr = getEraAbbr;\nproto.eraYear = getEraYear;\nproto.year = getSetYear;\nproto.isLeapYear = getIsLeapYear;\nproto.weekYear = getSetWeekYear;\nproto.isoWeekYear = getSetISOWeekYear;\nproto.quarter = proto.quarters = getSetQuarter;\nproto.month = getSetMonth;\nproto.daysInMonth = getDaysInMonth;\nproto.week = proto.weeks = getSetWeek;\nproto.isoWeek = proto.isoWeeks = getSetISOWeek;\nproto.weeksInYear = getWeeksInYear;\nproto.weeksInWeekYear = getWeeksInWeekYear;\nproto.isoWeeksInYear = getISOWeeksInYear;\nproto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\nproto.date = getSetDayOfMonth;\nproto.day = proto.days = getSetDayOfWeek;\nproto.weekday = getSetLocaleDayOfWeek;\nproto.isoWeekday = getSetISODayOfWeek;\nproto.dayOfYear = getSetDayOfYear;\nproto.hour = proto.hours = getSetHour;\nproto.minute = proto.minutes = getSetMinute;\nproto.second = proto.seconds = getSetSecond;\nproto.millisecond = proto.milliseconds = getSetMillisecond;\nproto.utcOffset = getSetOffset;\nproto.utc = setOffsetToUTC;\nproto.local = setOffsetToLocal;\nproto.parseZone = setOffsetToParsedOffset;\nproto.hasAlignedHourOffset = hasAlignedHourOffset;\nproto.isDST = isDaylightSavingTime;\nproto.isLocal = isLocal;\nproto.isUtcOffset = isUtcOffset;\nproto.isUtc = isUtc;\nproto.isUTC = isUtc;\nproto.zoneAbbr = getZoneAbbr;\nproto.zoneName = getZoneName;\nproto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n);\nproto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n);\nproto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n);\nproto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n);\nproto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n);\n\nfunction createUnix(input) {\n return createLocal(input * 1000);\n}\n\nfunction createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n}\n\nfunction preParsePostFormat(string) {\n return string;\n}\n\nvar proto$1 = Locale.prototype;\n\nproto$1.calendar = calendar;\nproto$1.longDateFormat = longDateFormat;\nproto$1.invalidDate = invalidDate;\nproto$1.ordinal = ordinal;\nproto$1.preparse = preParsePostFormat;\nproto$1.postformat = preParsePostFormat;\nproto$1.relativeTime = relativeTime;\nproto$1.pastFuture = pastFuture;\nproto$1.set = set;\nproto$1.eras = localeEras;\nproto$1.erasParse = localeErasParse;\nproto$1.erasConvertYear = localeErasConvertYear;\nproto$1.erasAbbrRegex = erasAbbrRegex;\nproto$1.erasNameRegex = erasNameRegex;\nproto$1.erasNarrowRegex = erasNarrowRegex;\n\nproto$1.months = localeMonths;\nproto$1.monthsShort = localeMonthsShort;\nproto$1.monthsParse = localeMonthsParse;\nproto$1.monthsRegex = monthsRegex;\nproto$1.monthsShortRegex = monthsShortRegex;\nproto$1.week = localeWeek;\nproto$1.firstDayOfYear = localeFirstDayOfYear;\nproto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\nproto$1.weekdays = localeWeekdays;\nproto$1.weekdaysMin = localeWeekdaysMin;\nproto$1.weekdaysShort = localeWeekdaysShort;\nproto$1.weekdaysParse = localeWeekdaysParse;\n\nproto$1.weekdaysRegex = weekdaysRegex;\nproto$1.weekdaysShortRegex = weekdaysShortRegex;\nproto$1.weekdaysMinRegex = weekdaysMinRegex;\n\nproto$1.isPM = localeIsPM;\nproto$1.meridiem = localeMeridiem;\n\nfunction get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n}\n\nfunction listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n}\n\n// ()\n// (5)\n// (fmt, 5)\n// (fmt)\n// (true)\n// (true, 5)\n// (true, fmt, 5)\n// (true, fmt)\nfunction listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n}\n\nfunction listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n}\n\nfunction listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n}\n\nfunction listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n}\n\nfunction listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n}\n\nfunction listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n}\n\ngetSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n});\n\n// Side effect imports\n\nhooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n);\nhooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n);\n\nvar mathAbs = Math.abs;\n\nfunction abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n}\n\nfunction addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n}\n\n// supports only 2.0-style add(1, 's') or add(duration)\nfunction add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n}\n\n// supports only 2.0-style subtract(1, 's') or subtract(duration)\nfunction subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n}\n\nfunction absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n}\n\nfunction bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n}\n\nfunction daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n}\n\nfunction monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n}\n\nfunction as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n}\n\nfunction makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n}\n\nvar asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y'),\n valueOf$1 = asMilliseconds;\n\nfunction clone$1() {\n return createDuration(this);\n}\n\nfunction get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n}\n\nfunction makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n}\n\nvar milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\nfunction weeks() {\n return absFloor(this.days() / 7);\n}\n\nvar round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n// helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\nfunction substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n}\n\nfunction relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n}\n\n// This function allows you to set the rounding function for relative time strings\nfunction getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n}\n\n// This function allows you to set a threshold for relative time strings\nfunction getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n}\n\nfunction humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n}\n\nvar abs$1 = Math.abs;\n\nfunction sign(x) {\n return (x > 0) - (x < 0) || +x;\n}\n\nfunction toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n}\n\nvar proto$2 = Duration.prototype;\n\nproto$2.isValid = isValid$1;\nproto$2.abs = abs;\nproto$2.add = add$1;\nproto$2.subtract = subtract$1;\nproto$2.as = as;\nproto$2.asMilliseconds = asMilliseconds;\nproto$2.asSeconds = asSeconds;\nproto$2.asMinutes = asMinutes;\nproto$2.asHours = asHours;\nproto$2.asDays = asDays;\nproto$2.asWeeks = asWeeks;\nproto$2.asMonths = asMonths;\nproto$2.asQuarters = asQuarters;\nproto$2.asYears = asYears;\nproto$2.valueOf = valueOf$1;\nproto$2._bubble = bubble;\nproto$2.clone = clone$1;\nproto$2.get = get$2;\nproto$2.milliseconds = milliseconds;\nproto$2.seconds = seconds;\nproto$2.minutes = minutes;\nproto$2.hours = hours;\nproto$2.days = days;\nproto$2.weeks = weeks;\nproto$2.months = months;\nproto$2.years = years;\nproto$2.humanize = humanize;\nproto$2.toISOString = toISOString$1;\nproto$2.toString = toISOString$1;\nproto$2.toJSON = toISOString$1;\nproto$2.locale = locale;\nproto$2.localeData = localeData;\n\nproto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n);\nproto$2.lang = lang;\n\n// FORMATTING\n\naddFormatToken('X', 0, 0, 'unix');\naddFormatToken('x', 0, 0, 'valueOf');\n\n// PARSING\n\naddRegexToken('x', matchSigned);\naddRegexToken('X', matchTimestamp);\naddParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n});\naddParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n});\n\n//! moment.js\n\nhooks.version = '2.30.1';\n\nsetHookCallback(createLocal);\n\nhooks.fn = proto;\nhooks.min = min;\nhooks.max = max;\nhooks.now = now;\nhooks.utc = createUTC;\nhooks.unix = createUnix;\nhooks.months = listMonths;\nhooks.isDate = isDate;\nhooks.locale = getSetGlobalLocale;\nhooks.invalid = createInvalid;\nhooks.duration = createDuration;\nhooks.isMoment = isMoment;\nhooks.weekdays = listWeekdays;\nhooks.parseZone = createInZone;\nhooks.localeData = getLocale;\nhooks.isDuration = isDuration;\nhooks.monthsShort = listMonthsShort;\nhooks.weekdaysMin = listWeekdaysMin;\nhooks.defineLocale = defineLocale;\nhooks.updateLocale = updateLocale;\nhooks.locales = listLocales;\nhooks.weekdaysShort = listWeekdaysShort;\nhooks.normalizeUnits = normalizeUnits;\nhooks.relativeTimeRounding = getSetRelativeTimeRounding;\nhooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\nhooks.calendarFormat = getCalendarFormat;\nhooks.prototype = proto;\n\n// currently HTML5 input type only supports 24-hour formats\nhooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n};\n\nexport default hooks;\n","\n\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\n\n/**\n * Append a group to a contact\n *\n * @param {Contact} contact the contact model\n * @param {string} groupName the group name\n */\nasync function removeContactFromGroup(contact, groupName) {\n\tconst foundGroups = contact.groups\n\n\tlet currentGroups = foundGroups.map((groupName) => encodeURIComponent(groupName))\n\n\tcurrentGroups = currentGroups.filter((e) => e !== encodeURIComponent(groupName))\n\n\treturn axios.patch(contact.url, {}, {\n\t\theaders: {\n\t\t\t'X-PROPERTY': 'CATEGORIES',\n\t\t\t'X-PROPERTY-REPLACE': currentGroups.join(','),\n\t\t},\n\t})\n}\n\nexport default removeContactFromGroup\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport axios from '@nextcloud/axios'\n\n/**\n * Append a group to a contact\n *\n * @param {Contact} contact the contact model\n * @param {string} oldGroupName name that gets removed\n * @param {string} newGroupName name that gets added\n */\nasync function renameContactFromGroup(contact, oldGroupName, newGroupName) {\n\tconst foundGroups = contact.groups\n\tfoundGroups.push(newGroupName)\n\n\tlet currentGroups = foundGroups.map((groupName) => encodeURIComponent(groupName))\n\n\tcurrentGroups = currentGroups.filter((e) => e !== encodeURIComponent(oldGroupName))\n\n\treturn axios.patch(contact.url, {}, {\n\t\theaders: {\n\t\t\t'X-PROPERTY': 'CATEGORIES',\n\t\t\t'X-PROPERTY-REPLACE': currentGroups.join(','),\n\t\t},\n\t})\n}\n\nexport default renameContactFromGroup\n","\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { loadState } from '@nextcloud/initial-state'\n\nconst isContactsInteractionEnabled = loadState('contacts', 'isContactsInteractionEnabled', false)\nexport default isContactsInteractionEnabled\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n","\n\n\n\n\n\n\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateUrl } from '@nextcloud/router'\nimport { createRouter, createWebHistory } from 'vue-router'\nimport Contacts from '../views/Contacts.vue'\nimport { ROUTE_CHART, ROUTE_CIRCLE, ROUTE_USER_GROUP } from '../models/constants.ts'\n\n// if index.php is in the url AND we got this far, then it's working:\n// let's keep using index.php in the url\nconst routerHistory = createWebHistory(generateUrl('/apps/contacts', ''))\n\nexport default createRouter({\n\thistory: routerHistory,\n\tlinkActiveClass: 'active',\n\troutes: [\n\t\t{\n\t\t\tpath: '/',\n\t\t\tcomponent: Contacts,\n\t\t\tprops: true,\n\t\t\tname: 'root',\n\t\t\t// always load default group\n\t\t\tredirect: {\n\t\t\t\tname: 'group',\n\t\t\t\tparams: { selectedGroup: t('contacts', 'All contacts') },\n\t\t\t},\n\t\t\tchildren: [\n\t\t\t\t{\n\t\t\t\t\tpath: `/${ROUTE_CHART}/:selectedChart`,\n\t\t\t\t\tname: 'chart',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: 'import',\n\t\t\t\t\tname: 'import',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: `${ROUTE_CIRCLE}/:selectedCircle`,\n\t\t\t\t\tname: 'circle',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup',\n\t\t\t\t\tname: 'group',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: ':selectedGroup/:selectedContact',\n\t\t\t\t\tname: 'contact',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tpath: `${ROUTE_USER_GROUP}/:selectedUserGroup`,\n\t\t\t\t\tname: 'user_group',\n\t\t\t\t\tcomponent: Contacts,\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t],\n})\n","/**\n * SPDX-FileCopyrightText: 2018 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { createPinia } from 'pinia'\nimport { createApp } from 'vue'\nimport App from './ContactsRoot.vue'\nimport LegacyGlobalMixin from './mixins/LegacyGlobalMixin.js'\nimport router from './router/index.js'\nimport logger from './services/logger.js'\nimport store from './store/index.js'\n\nimport 'vite/modulepreload-polyfill'\n// Global scss sheets\nimport './css/contacts.scss'\n// Dialogs css\nimport '@nextcloud/dialogs/style.css'\n\nconst app = createApp(App)\n\n// Redirect Vue errors to Sentry\napp.config.errorHandler = async function(error, vm, info) {\n\tlogger.error(`[Vue error]: Error in ${info}: ${error}`, {\n\t\terror,\n\t\tvm,\n\t\tinfo,\n\t})\n\twindow.onerror?.(error)\n}\n\nconst pinia = createPinia()\napp.use(pinia)\n\napp.use(store)\napp.use(router)\n\napp.mixin(LegacyGlobalMixin)\n\n// Force redirect if rewrite enabled but accessed through index.php\nif (window.location.pathname.split('/')[1] === 'index.php'\n\t&& window.OC.config.modRewriteWorking) {\n\trouter.push({\n\t\tname: 'group',\n\t\tparams: { selectedGroup: t('contacts', 'All contacts') },\n\t})\n}\n\napp.mount('#content')\n"],"file":"contacts-main.mjs"}