{"version":3,"mappings":"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","names":["_sfc_main","_createBlock","_component_RouterView","_hoisted_1","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","NcActionSeparator","_export_sfc","defineComponent","__props","renderSlot","normalizeClass","NcAppContentList","_hoisted_2","_hoisted_3","_hoisted_4","props","slots","useSlots","registerSection","unregisterSection","useAppSettingsDialog","legacy","inject","APP_SETTINGS_LEGACY_DESIGN_KEY","htmlId","computed","watch","logger","newId","newName","newOrder","oldId","onMounted","onBeforeUnmount","unref","createElementVNode","toDisplayString","NcAppSettingsSection","humanizedCount","getCanonicalLocale","originalCountAsTitleIfNeeded","countAsString","NcCounterBubble","style","useCssModule","provide","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","value","newValue","event","navigate","routerLinkHref","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_component_NcCounterBubble","resolveComponent","_component_NcActions","normalizeProps","guardReactiveProps","isActive","args","withKeys","vShow","NcListItem","margin","defaultSize","NcAvatar","NcIconSvgWrapper","userStatus","margin2","EMAIL_NOTATION","match","_component_NcAvatar","_component_NcHighlight","_component_NcIconSvgWrapper","normalizeStyle","NcListItemIcon","search","ref","clickableArea","gridBaseLine","avatarSize","filterBy","option","label","search2","subname","NcSelect","selectedOption","NcSelectUsers","NcUserBubbleDiv","isOpen","isAvatarUrl","isCustomAvatar","avatarStyle","hasUrl","warn","href","contentComponent","RouterLink","contentStyle","NcPopover","attrs","NcUserBubble","cumsum","values","valueof","sum","index","v","max","min","noop","dispatch","i","n","_","t","Dispatch","parseTypenames","typenames","types","name","typename","callback","T","get","set","copy","type","that","c","xhtml","namespaces","namespace","prefix","creatorInherit","document","uri","creatorFixed","fullname","creator","none","selector","selection_select","select","groups","m","subgroups","j","group","subgroup","node","subnode","Selection","array","x","empty","selectorAll","arrayAll","selection_selectAll","parents","matcher","childMatcher","find","childFind","childFirst","selection_selectChild","filter","children","childrenFilter","selection_selectChildren","selection_filter","sparse","update","selection_enter","EnterNode","parent","datum","child","next","constant$3","bindIndex","enter","exit","data","groupLength","dataLength","bindKey","key","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","a","b","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","list","classedRemove","classedTrue","classedFalse","classedFunction","selection_classed","textRemove","textConstant","textFunction","selection_text","htmlRemove","htmlConstant","htmlFunction","selection_html","raise","selection_raise","lower","selection_lower","selection_append","create","constantNull","selection_insert","before","remove","selection_remove","selection_cloneShallow","clone","selection_cloneDeep","selection_clone","deep","selection_datum","contextListener","listener","onRemove","on","o","onAdd","options","selection_on","dispatchEvent","params","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","k","clampi","clampa","rgb_formatHex","rgb_formatHex8","rgb_formatRgb","hex","h","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","e","f","scaleX","scaleY","skewX","svgNode","parseCss","parseSvg","interpolateTransform","parse","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","resolve","reject","cancel","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","pi","tau","epsilon","tauEpsilon","Path","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","ancestor","leastCommonAncestor","aNodes","bNodes","node_ancestors$1","node_descendants$1","node_leaves$1","leaves","node_links$1","links","node_iterator","current","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","optional","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","p","Bump","bumpX","linkSource","linkTarget","link","curve","source","target","pointX","pointY","output","buffer","argv","linkHorizontal","ZoomEvent","transform","Transform","location","nopropagation","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","extent","translateExtent","dx0","dx1","dy0","dy1","constrain","wheelDelta","touchable","scaleExtent","duration","listeners","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","started","l0","l1","dp","dl","valued","defaultChildren","version","packageInfo","defaults","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","delta","firstChild","lExt","diff","rExt","kf","prelim","d3","zoomIdentity","OrgChart$1","d3Node","n1","n2","state","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","obj","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","el","url","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","text","fontSize","fontWeight","defaultFont","ctx","Avatar","_openBlock","_createElementBlock","_createElementVNode","_createVNode","_component_router_link","_component_Avatar","_toDisplayString","head","getLocale","inputProps","OrgChart","containerHTMLElement","app","createApp","ChartTemplate","uid","router","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","_sfc_main$17","ContentHeading","CirclePasswordSettings","IconDelete","IconLogout","NcCheckboxRadioSwitch","PUBLIC_CIRCLE_CONFIG","config","checked","prevConfig","circleData","editCircle","CircleEdit","error","showError","_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","_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","request","axios","generateOcsUrl","exact","rawExactSuggestions","rawSuggestions","exactSuggestions","result","share","formatResults","suggestions","allSuggestions","nameCounts","finalResults","getRecommendations","_sfc_main$X","EntityPicker","IconContact","MemberGridItem","NcEmptyContent","IsMobileMixin","CIRCLES_MEMBER_GROUPING","userType","member","teams","users","circleId","results","term","entry","showWarning","guest","_component_NcEmptyContent","_component_MemberGridItem","_component_IconContact","_component_EntityPicker","_createCommentVNode","CopyToClipboardMixin","showSuccess","CircleActionsMixin","Circle","route","confirm","initiator","joinCircle","Member","AccountPlusIcon","ListItem","CogIcon","CopyIcon","IconAccountGroup","FileDocumentOutline","LoginIcon","LogoutIcon","MemberList","CircleSettings","TeamResourceButton","NcLoadingIcon","PencilIcon","NcTextArea","FolderIcon","MessageIcon","CalendarIcon","ViewDashboardIcon","BookOpenPageVariantIcon","CheckIcon","avatarList","useElementSize","reactive","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","len","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","message","mappedVersions","deepCopy","fillTemplate","template","blocks","messageUpdated","pad","offset","QR","versions","length","num_template","block","colorName","isArrayish","require$$0","concat","swizzle","simpleSwizzleModule","fn","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","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","err","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","param","object","element","isFunctionType","isStaticProperty","isStaticPropertyKey","TS_NODE_TYPES","unwrapTSNode","isStaticExp","isCoreComponent","nonIdentifierRE","isSimpleIdentifier","validFirstIdentCharRE","validIdentCharRE","whitespaceRE","getExpSource","isMemberExpressionBrowser","stateStack","currentOpenBracketCount","currentOpenParensCount","currentStringType","char","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","reset","baseParse","delimiters","cacheStatic","walk","getSingleElementRoot","doNotHoistNode","inFor","toCache","constantType","getConstantType","codegenNode","getGeneratedPropsConstantType","getNodeProps","cachedAsArray","isArray","getCacheExpression","slot","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","push","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","normalized","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","instance","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","assign","_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","handler","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","handlers","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","keys","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","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","_vModelText","_component_IconAccount","emailAddress","_component_IconMail","phoneNumber","_component_IconCall","_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","_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","query","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","encodePath","_component_IconError","NcInputField","_component_NcInputField","_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","to","from","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","token","padded","ordinal","func","removeFormattingTokens","makeFormatFunction","formatMoment","expandFormat","replaceLongDateFormatTokens","defaultLongDateFormat","longDateFormat","formatUpper","tok","defaultInvalidDate","invalidDate","defaultOrdinal","defaultDayOfMonthOrdinalParse","defaultRelativeTime","relativeTime","withoutSuffix","isFuture","pastFuture","aliases","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","matched","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","tokens","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","base","createAdder","direction","period","dur","tmp","isAdding","updateOffset","add","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","alias","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","circle","_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","routerHistory","createWebHistory","createRouter","Contacts","ROUTE_CHART","App","vm","info","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,154,155,156,157,158,159,160,161,162,163,164,165,169,171,172,176,177,178,179,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,213,214,215,216,217,218,219,220,221,224,229,230,231,232,233,234,235,239,240,241,242,246,247,248,251,252,254,261,265,266,267],"sources":["../src/ContactsRoot.vue","../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-CkgY7Tif.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxItem-vnU0KmUL.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcFormBoxSwitch-DGcRJH9Q.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItem-Bx93C7tP.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcListItemIcon-DVy6eGJx.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcSelectUsers-DlUM6S6l.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcUserBubble-Cs84CNHz.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/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/mixins/CopyToClipboardMixin.js","../src/mixins/CircleActionsMixin.js","../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","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-D-kcijXp.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_1u9di_20\";\nconst ncFormBox_row = \"_ncFormBox_row_1u9di_25\";\nconst ncFormBox__item = \"_ncFormBox__item_1u9di_29\";\nconst ncFormBox_col = \"_ncFormBox_col_1u9di_33\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_1u9di_12\",\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-CkgY7Tif.mjs.map\n","import '../assets/NcFormBoxItem-BfXKp9xJ.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_v5un7_20\";\nconst formBoxItem_legacy = \"_formBoxItem_legacy_v5un7_60\";\nconst formBoxItem_inverted = \"_formBoxItem_inverted_v5un7_64\";\nconst formBoxItem__element = \"_formBoxItem__element_v5un7_64\";\nconst formBoxItem__description = \"_formBoxItem__description_v5un7_67\";\nconst formBoxItem__content = \"_formBoxItem__content_v5un7_71\";\nconst formBoxItem__icon = \"_formBoxItem__icon_v5un7_89\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_v5un7_12\",\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-vnU0KmUL.mjs.map\n","import '../assets/NcFormBoxSwitch-DScgbxtv.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-vnU0KmUL.mjs\";\nimport { N as NcIconToggleSwitch } from \"./NcIconToggleSwitch-DNEYngCw.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_njiy8_20\";\nconst style0 = {\n \"material-design-icon\": \"_material-design-icon_njiy8_12\",\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-DGcRJH9Q.mjs.map\n","import '../assets/NcListItem-CZnKmy9X.css';\nimport { N as NcActions } from \"./NcActions-4R7icatI.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 \"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[4] || (_cache[4] = (...args) => $options.handleMouseover && $options.handleMouseover(...args)),\n onMouseleave: _cache[5] || (_cache[5] = (...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 onKeydown: _cache[2] || (_cache[2] = 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[3] || (_cache[3] = (...args) => $options.handleBlur && $options.handleBlur(...args))\n }, [\n createVNode(_component_NcActions, {\n ref: \"actions\",\n primary: $props.active ?? isActive,\n \"force-menu\": $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\", \"force-menu\", \"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-532f3807\"]]);\nexport {\n NcListItem as N\n};\n//# sourceMappingURL=NcListItem-Bx93C7tP.mjs.map\n","import '../assets/NcListItemIcon-aquns6B7.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-CK_dTsmT.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 \"disable-menu\": true,\n \"disable-tooltip\": true,\n \"display-name\": $props.displayName || $props.name,\n \"is-no-user\": $props.isNoUser,\n size: $props.avatarSize,\n class: \"option__avatar\"\n }), null, 16, [\"display-name\", \"is-no-user\", \"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-60a83836\"]]);\nexport {\n NcListItemIcon as N\n};\n//# sourceMappingURL=NcListItemIcon-DVy6eGJx.mjs.map\n","import '../assets/NcSelectUsers-BWhtNRbI.css';\nimport { defineComponent, mergeModels, useModel, ref, watch, createBlock, openBlock, unref, mergeProps, withCtx, createVNode } from \"vue\";\nimport { N as NcListItemIcon } from \"./NcListItemIcon-DVy6eGJx.mjs\";\nimport { N as NcSelect } from \"./NcSelect-Cc9_a8nG.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 \"filter-by\": 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 \"avatar-size\": 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 \"avatar-size\": avatarSize,\n name: selectedOption.displayName,\n \"no-margin\": \"\",\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-4fbb6472\"]]);\nexport {\n NcSelectUsers as N\n};\n//# sourceMappingURL=NcSelectUsers-DlUM6S6l.mjs.map\n","import '../assets/NcUserBubble-B3Jad98g.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-CK_dTsmT.mjs\";\nimport { N as NcPopover } from \"./NcPopover-C-MTaPCs.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 \"icon-class\": isCustomAvatar.value && !isAvatarUrl.value ? _ctx.avatarImage : void 0,\n user: _ctx.user,\n \"display-name\": _ctx.displayName,\n size: _ctx.size - _ctx.margin * 2,\n style: normalizeStyle(avatarStyle.value),\n \"disable-tooltip\": true,\n \"disable-menu\": true,\n \"hide-status\": !_ctx.showUserStatus,\n class: \"user-bubble__avatar\"\n }, null, 8, [\"url\", \"icon-class\", \"user\", \"display-name\", \"size\", \"style\", \"hide-status\"]),\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-ad356e41\"]]);\nexport {\n NcUserBubble as N\n};\n//# sourceMappingURL=NcUserBubble-Cs84CNHz.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 => `
Sample Node(id=${d.id}), override using
\n chart.nodeContent({data}=>{
\n     return '' // Custom HTML
\n })
\n
\n Or check different
layout examples\n
`,\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\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\";const a=null,{min:u,max:f,abs:d,floor:p}=Math,h=(e,t,r)=>u(r,f(t,e)),m=e=>[...e].sort(((e,t)=>e-t)),_=\"function\"==typeof queueMicrotask?queueMicrotask:e=>{Promise.resolve().then(e)},b=()=>{let e;return[new Promise((t=>{e=t})),e]},v=e=>{let t;return()=>(e&&(t=e(),e=void 0),t)},g=(e,t,r)=>{const o=r?\"unshift\":\"push\";for(let r=0;r{const r=e.t[t];return-1===r?e.o:r},S=(e,t,r)=>{const o=-1===e.t[t];return e.t[t]=r,e.i=u(t,e.i),o},z=(e,t)=>{if(!e.l)return 0;if(e.i>=t)return e.u[t];e.i<0&&(e.u[0]=0,e.i=0);let r=e.i,o=e.u[r];for(;r{let n=r;for(;r<=o;){const s=p((r+o)/2);z(e,s)<=t?(n=s,r=s+1):o=s-1}return h(n,0,e.l-1)},$=(e,t,r)=>{const o=t-e.l;return e.i=r?-1:u(t-1,e.i),e.l=t,o>0?(g(e.u,o),g(e.t,o,r),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))},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)=>{let s=!!r,i=1,l=0,c=0,p=0,h=0,_=0,b=0,v=0,w=0,I=a,O=[0,s?f(r-1,0):-1],j=0,N=!1;const B=((e,t,r)=>({o:t,t:r?g(r.slice(0,u(e,r.length)),f(0,e-r.length)):g([],e),l:e,i:-1,u:g([],e+1)}))(e,o?o[1]:t,o&&o[0]),T=new Set,q=()=>p-c,M=()=>q()+_+h,E=(e,t)=>((e,t,r,o)=>{if(o=u(o,e.l-1),z(e,o)<=t){const n=x(e,r,o);return[x(e,t,o,n),n]}{const n=x(e,t,void 0,o);return[n,x(e,r,n)]}})(B,e,t,O[0]),P=()=>z(B,B.l),R=(e,t)=>{const r=z(B,e)-_;return t?P()-r-A(e):r},A=e=>y(B,e),C=(e,t=-1)=>B.t[e]===t,H=e=>{e&&(k()&&0!==v||I&&1===w?_+=e:h+=e)};return{p:()=>{T.clear()},h:()=>i,m:()=>(e=>[e.t.slice(),e.o])(B),v:(e=200)=>{if(!N||s)return O;let t,r;if(b)[t,r]=O;else{let o=f(0,M()),s=o+l;n||(e=f(0,e),1!==v&&(o-=e),2!==v&&(s+=e)),[t,r]=O=E(f(0,o),f(0,s)),I&&(t=u(t,I[0]),r=f(r,I[1]))}return[f(t,0),u(r,B.l-1)]},S:e=>x(B,e-c),I:C,O:R,k:A,j:()=>B.l,N:()=>p,B:()=>0!==v,T:()=>l,q:()=>c,M:P,P:()=>(b=h,h=0,[b,2===w]),R:(e,t)=>{const r=[e,t];return T.add(r),()=>{T.delete(r)}},A:(e,t)=>{let r,o,u=0;switch(e){case 1:{if(t===p&&0===w)break;const e=b;b=0;const r=t-p,n=d(r);e&&n=-l&&i<=P()&&(u+=1,o=n>l);break}case 2:u=8,0!==v&&(r=!0,u+=1),v=0,w=0,I=a;break;case 3:{const e=t.filter((([e,t])=>!C(e,t)));if(!e.length)break;H(e.reduce(((e,[t,r])=>((2===w||(I&&1===w?tl&&(H(((e,t)=>{let r=0;const o=[];e.t.forEach(((e,n)=>{-1!==e&&(o.push(e),n{u&e&&t(o)})))}}},B=setTimeout,T=(e,t)=>t?-e:e,q=(e,t,r,o,n,s)=>{const i=Date.now;let l=0,c=!1,u=!1,f=!1,d=!1;const p=(()=>{let t;const r=()=>{t!=a&&clearTimeout(t)},o=()=>{r(),t=B((()=>{t=a,(()=>{if(c||u)return c=!1,void p();f=!1,e.A(2)})()}),150)};return o.C=r,o})(),h=()=>{l=i(),f&&(d=!0),s&&e.A(6,s()),e.A(1,o()),p()},m=t=>{if(c||!e.B()||t.ctrlKey)return;const o=i()-l;150>o&&50{u=!0,f=d=!1},b=()=>{u=!1,k()&&(f=!0)};return t.addEventListener(\"scroll\",h),t.addEventListener(\"wheel\",m,{passive:!0}),t.addEventListener(\"touchstart\",_,{passive:!0}),t.addEventListener(\"touchend\",b,{passive:!0}),{H:()=>{t.removeEventListener(\"scroll\",h),t.removeEventListener(\"wheel\",m),t.removeEventListener(\"touchstart\",_),t.removeEventListener(\"touchend\",b),p.C()},V:()=>{const[t,r]=e.P();t&&(n(t,r,d),d=!1,r&&e.T()>e.M()&&e.A(1,o()))}}},M=(e,t,r)=>{let o;return[async(n,s)=>{if(!await t())return;o&&o();const i=()=>{const[t,r]=b();return o=()=>{r(!1)},e.T()&&B(o,150),[t,e.R(2,(()=>{r(!0)}))]};if(s&&j())e.A(8,n()),_((async()=>{for(;;){let t=!0;for(let[r,o]=e.v();r<=o;r++)if(e.I(r)){t=!1;break}if(t)break;const[r,o]=i();try{if(!await r)return}finally{o()}}e.A(7),r(n(),s)}));else for(;;){const[t,o]=i();try{if(e.A(7),r(n()),!await t)return}finally{o()}}},()=>{o&&o()}]},E=e=>{let t;return{F(r){(t||(t=new(O(I(r)).ResizeObserver)(e))).observe(r)},J(e){t.unobserve(e)},H(){t&&t.disconnect()}}},P=/*#__PURE__*/e({props:{L:{type:Object,required:!0},W:{type:Object,required:!0},X:{type:Object,required:!0},Y:{type:Function,required:!0},D:{type:Number,required:!0},U:{type:Boolean},G:{type:Boolean},K:{type:Boolean},Z:{type:String,required:!0},ee:Object},setup(e){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)));return o((()=>l.value&&e.D),((t,r,o)=>{o(e.Y(l.value,e.D))}),{flush:\"post\"}),()=>{var t;const{X:r,U:o,G:u,Z:f}=e,d=a.value,{style:p,...h}=null!==(t=e.ee)&&void 0!==t?t:{},m={contain:\"layout style\",position:d&&u?void 0:\"absolute\",[o?\"height\":\"width\"]:\"100%\",[o?\"top\":\"left\"]:\"0px\",[o?\"left\":\"top\"]:c.value+\"px\",visibility:!d||u?void 0:\"hidden\",...p};return o&&(m.display=\"inline-flex\"),n(f,s({ref:l,style:m},h),\"function\"==typeof(_=r)||\"[object Object]\"===Object.prototype.toString.call(_)&&!i(_)?r:{default:()=>[r],_:2},16,[\"style\"]);var _}}}),R=(e,t)=>{const r=e.key;return null!=r?r:\"_\"+t},A=(e,t)=>e[0]===t[0]&&e[1]===t[1],C=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,startMargin:{type:Number,default:0},ssrCount:Number,scrollRef:Object,as:{type:String,default:\"div\"},item:{type:String,default:\"div\"},itemProps:Function,keepMounted:Array,cache:Object},emits:[\"scroll\",\"scrollEnd\"],setup(e,{emit:s,expose:u,slots:d}){let p=!!e.ssrCount;const _=e.horizontal,v=t(),g=N(e.data.length,e.itemSize,e.ssrCount,e.cache,!e.itemSize),y=((e,t)=>{let r;const o=t?\"width\":\"height\",n=new WeakMap,s=E((t=>{const s=[];for(const{target:i,contentRect:l}of t)if(i.offsetParent)if(i===r)e.A(4,l[o]);else{const e=n.get(i);e!=a&&s.push([e,l[o]])}s.length&&e.A(3,s)}));return{te(e){s.F(r=e)},re:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),p:s.H}})(g,_),S=((e,t)=>{let r,o,n=b(),s=!1;const i=t?\"scrollLeft\":\"scrollTop\",l=t?\"overflowX\":\"overflowY\",[c,a]=M(e,(()=>n[0]),((e,o)=>{e=T(e,s),o?r.scrollTo({[t?\"left\":\"top\"]:e,behavior:\"smooth\"}):r[i]=e}));return{oe(c){r=c,t&&(s=\"rtl\"===getComputedStyle(c).direction),o=q(e,c,t,(()=>T(c[i],s)),((t,r,o)=>{if(o){const e=c.style,t=e[l];e[l]=\"hidden\",B((()=>{e[l]=t}))}c[i]=T(e.N()+t,s),r&&a()})),n[1](!0)},p(){o&&o.H(),n[1](!1),n=b()},ne:()=>s,se(e){c((()=>e))},ie(t){t+=e.N(),c((()=>t))},le(t,{align:r,smooth:o,offset:n=0}={}){if(t=h(t,0,e.j()-1),\"nearest\"===r){const o=e.O(t),n=e.N();if(on+e.T()))return;r=\"end\"}}c((()=>n+e.q()+e.O(t)+(\"end\"===r?e.k(t)-e.T():\"center\"===r?(e.k(t)-e.T())/2:0)),o)},ce:()=>{o&&o.V()}}})(g,_),z=t(g.h());g.R(1,(()=>{z.value=g.h()})),g.R(4,(()=>{s(\"scroll\",g.N())})),g.R(8,(()=>{s(\"scrollEnd\")}));const x=r((t=>{z.value;const r=g.v(e.bufferSize);return t&&A(t,r)?t:r})),$=r((()=>z.value&&g.B())),w=r((()=>z.value&&g.M()));return l((()=>{p=!1;const t=requestAnimationFrame((()=>{const t=e=>{y.te(e),S.oe(e)};e.scrollRef?t(e.scrollRef):t(v.value.parentElement)}));c((()=>{cancelAnimationFrame(t)}))})),c((()=>{g.p(),y.p(),S.p()})),o((()=>e.data.length),(t=>{g.A(5,[t,e.shift])})),o((()=>e.startMargin),(e=>{g.A(6,e)}),{immediate:!0}),o([z],(()=>{S.ce()}),{flush:\"post\"}),u({get cache(){return g.m()},get scrollOffset(){return g.N()},get scrollSize(){return(e=>f(e.M(),e.T()))(g)},get viewportSize(){return g.T()},findItemIndex:g.S,getItemOffset:g.O,getItemSize:g.k,scrollToIndex:S.le,scrollTo:S.se,scrollBy:S.ie}),()=>{const t=e.as,r=e.item,o=w.value,s=S.ne(),l=!_&&s?\"unshift\":\"push\",c=[],a=t=>{var o;const i=d.default({item:e.data[t],index:t})[0];return n(P,{key:R(i,t),L:z,W:g,Y:y.re,D:t,X:i,U:_,K:s,G:p,Z:r,ee:null===(o=e.itemProps)||void 0===o?void 0:o.call(e,{item:e.data[t],index:t})},null,8,[\"L\",\"W\",\"Y\",\"D\",\"X\",\"U\",\"K\",\"G\",\"Z\",\"ee\"])};if(e.keepMounted){const t=new Set(e.keepMounted);for(let[e,r]=x.value;e<=r;e++)t.add(e);m([...t]).forEach((e=>{c[l](a(e))}))}else for(let[e,t]=x.value;e<=t;e++)c[l](a(e));return n(t,{ref:v,style:{contain:\"size style\",overflowAnchor:\"none\",flex:\"none\",position:\"relative\",width:_?o+\"px\":\"100%\",height:_?\"100%\":o+\"px\",pointerEvents:$.value?\"none\":void 0}},\"function\"==typeof(u=c)||\"[object Object]\"===Object.prototype.toString.call(u)&&!i(u)?c:{default:()=>[c],_:2},8,[\"style\"]);var u}}}),H=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,ssrCount:Number,itemProps:Function,keepMounted:Array,cache:Object},emits:[\"scroll\",\"scrollEnd\"],setup(e,{emit:r,expose:o,slots:s}){const l=e.horizontal,c=e=>{r(\"scroll\",e)},a=()=>{r(\"scrollEnd\")},u=t();return o({get cache(){return u.value.cache},get scrollOffset(){return u.value.scrollOffset},get scrollSize(){return u.value.scrollSize},get viewportSize(){return u.value.viewportSize},findItemIndex:(...e)=>u.value.findItemIndex(...e),getItemOffset:(...e)=>u.value.getItemOffset(...e),getItemSize:(...e)=>u.value.getItemSize(...e),scrollToIndex:(...e)=>u.value.scrollToIndex(...e),scrollTo:(...e)=>u.value.scrollTo(...e),scrollBy:(...e)=>u.value.scrollBy(...e)}),()=>{return n(\"div\",{style:{display:l?\"inline-block\":\"block\",[l?\"overflowX\":\"overflowY\"]:\"auto\",contain:\"strict\",width:\"100%\",height:\"100%\"}},[n(C,{ref:u,data:e.data,bufferSize:e.bufferSize,itemSize:e.itemSize,itemProps:e.itemProps,shift:e.shift,ssrCount:e.ssrCount,horizontal:l,keepMounted:e.keepMounted,cache:e.cache,onScroll:c,onScrollEnd:a},(t=s,\"function\"==typeof t||\"[object Object]\"===Object.prototype.toString.call(t)&&!i(t)?s:{default:()=>[s],_:2}),8,[\"data\",\"bufferSize\",\"itemSize\",\"itemProps\",\"shift\",\"ssrCount\",\"horizontal\",\"keepMounted\",\"cache\",\"onScroll\",\"onScrollEnd\"])],4);var t}}}),V=/*#__PURE__*/e({props:{data:{type:Array,required:!0},bufferSize:Number,itemSize:Number,shift:Boolean,horizontal:Boolean,as:{type:String,default:\"div\"},item:{type:String,default:\"div\"},cache:Object},emits:[\"scroll\",\"scrollEnd\"],setup(e,{emit:s,slots:u,expose:f}){const d=e.horizontal,p=t(),m=N(e.data.length,e.itemSize,void 0,e.cache,!e.itemSize),v=((e,t)=>{const r=t?\"width\":\"height\",o=t?\"innerWidth\":\"innerHeight\",n=new WeakMap,s=E((t=>{const o=[];for(const{target:e,contentRect:s}of t){if(!e.offsetParent)continue;const t=n.get(e);t!=a&&o.push([t,s[r]])}o.length&&e.A(3,o)}));let i;return{te(t){const r=O(I(t)),n=()=>{e.A(4,r[o])};r.addEventListener(\"resize\",n),_(n),i=()=>{r.removeEventListener(\"resize\",n)}},re:(e,t)=>(n.set(e,t),s.F(e),()=>{n.delete(e),s.J(e)}),p(){i&&i(),s.H()}}})(m,d),g=((e,t)=>{let r,o,n=b(),s=!1;const i=t?\"left\":\"top\",[l]=M(e,(()=>n[0]),((e,t)=>{e=T(e,s);const o=O(I(r));t?o.scroll({[i]:e,behavior:\"smooth\"}):o.scroll({[i]:e})})),c=(e,t,r,o,n=0)=>{const i=o?\"offsetLeft\":\"offsetTop\",l=n+(o&&s?r.innerWidth-e[i]-e.offsetWidth:e[i]),a=e.offsetParent;return e!==t&&a?c(a,t,r,o,l):l};return{oe(l){r=l;const a=t?\"scrollX\":\"scrollY\",u=I(l),f=O(u);t&&(s=\"rtl\"===getComputedStyle(w(u)).direction),o=q(e,f,t,(()=>T(f[a],s)),((t,r)=>{r?f.scroll({[i]:T(e.N()+t,s)}):f.scrollBy({[i]:T(t,s)})}),(()=>c(l,u.body,f,t))),n[1](!0)},p(){o&&o.H(),r=void 0,n[1](!1),n=b()},ne:()=>s,ce:()=>{o&&o.V()},le(o,{align:n,smooth:s,offset:i=0}={}){if(!r)return;if(o=h(o,0,e.j()-1),\"nearest\"===n){const t=e.O(o),r=e.N();if(tr+e.T()))return;n=\"end\"}}const a=I(r),u=O(a),f=w(a),d=()=>e.T()-(t?f.clientWidth:f.clientHeight);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)}}})(m,d),y=t(m.h());m.R(1,(()=>{y.value=m.h()})),m.R(4,(()=>{s(\"scroll\")})),m.R(8,(()=>{s(\"scrollEnd\")}));const S=r((t=>{y.value;const r=m.v(e.bufferSize);return t&&A(t,r)?t:r})),z=r((()=>y.value&&m.B())),x=r((()=>y.value&&m.M()));return l((()=>{const e=p.value;e&&(v.te(e),g.oe(e))})),c((()=>{m.p(),v.p(),g.p()})),o((()=>e.data.length),(t=>{m.A(5,[t,e.shift])})),o([y],(()=>{g.ce()}),{flush:\"post\"}),f({get cache(){return m.m()},get scrollOffset(){return m.N()},get viewportSize(){return m.T()},findItemIndex:m.S,getItemOffset:m.O,getItemSize:m.k,scrollToIndex:g.le}),()=>{const t=e.as,r=e.item,o=x.value,s=g.ne(),l=!d&&s?\"unshift\":\"push\",c=[];for(let[t,o]=S.value;t<=o;t++){const o=u.default({item:e.data[t],index:t})[0];c[l](n(P,{key:R(o,t),L:y,W:m,Y:v.re,D:t,X:o,U:d,K:s,Z:r},null,8,[\"L\",\"W\",\"Y\",\"D\",\"X\",\"U\",\"K\",\"Z\"]))}return n(t,{ref:p,style:{contain:\"size style\",overflowAnchor:\"none\",flex:\"none\",position:\"relative\",width:d?o+\"px\":\"100%\",height:d?\"100%\":o+\"px\",pointerEvents:z.value?\"none\":void 0}},\"function\"==typeof(a=c)||\"[object Object]\"===Object.prototype.toString.call(a)&&!i(a)?c:{default:()=>[c],_:2},8,[\"style\"]);var a}}});export{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 { 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 */\nexport async function getSuggestions(search) {\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: 'contacts',\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\tconst rawExactSuggestions = Object.values(exact).reduce((arr, elem) => arr.concat(elem), [])\n\tconst rawSuggestions = Object.values(data).reduce((arr, elem) => arr.concat(elem), [])\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 * 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 { showError } 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\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 * 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.26\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.26\n* (c) 2018-present Yuxi (Evan) You and Vue contributors\n* @license MIT\n**/\nimport { registerRuntimeHelpers, createSimpleExpression, createCompilerError, createObjectProperty, createCallExpression, getConstantType, 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 { isHTMLTag, isSVGTag, isMathMLTag, isVoidTag, parseStringStyle, makeMap, capitalize, 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.26\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"}