mirror of
https://github.com/nextcloud/server.git
synced 2026-10-02 15:58:39 +02:00
1 line
125 KiB
Plaintext
1 line
125 KiB
Plaintext
{"version":3,"mappings":"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","names":["_sfc_main","ActionTextMixin","NC_ACTIONS_IS_SEMANTIC_MENU","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","openBlock","createElementBlock","createElementVNode","args","renderSlot","normalizeClass","normalizeStyle","createCommentVNode","toDisplayString","NcActionText","_export_sfc","INJECTION_KEY_THEME","useIsDarkThemeElement","el","element","computed","toValue","isDarkTheme","ref","checkIfDarkTheme","isDarkSystemTheme","usePreferredDark","updateIsDarkTheme","useMutationObserver","watch","readonly","useInternalIsDarkTheme","createSharedComposable","useIsDarkTheme","enforcedTheme","inject","stopClickOutsideMap","vOnClickOutside","binding","capture","stop","onClickOutside","handler","options","vElementVisibility","createDisposableDirective","useElementVisibility","v","state","getEnabledContactsMenuActions","entry","action","c","i","t","e","s","r","n","o","_","hashCode","str","hash","Md5","finalInt","usernameToColor","username","finalPalette","generatePalette","global","Symbol","name","STATE_PLAINTEXT","STATE_HTML","STATE_COMMENT","ALLOWED_TAGS_REGEX","NORMALIZE_TAG_REGEX","striptags","html","allowable_tags","tag_replacement","context","init_context","striptags_internal","init_striptags_stream","parse_allowable_tags","tag_buffer","depth","in_quote_char","output","idx","length","char","normalize_tag","tag_set","match","module","this","getAvatarUrl","user","generateAvatarUrl","register","t11","userStatus","userId","capabilities","getCapabilities","getCurrentUser","data","axios","generateOcsUrl","logger","status","message","icon","browserStorage","getBuilder","SMALL_VARIANT_UPSCALE","density","value","getUserHasAvatar","flag","setUserHasAvatar","IconDotsHorizontal","NcActions","NcButton","NcIconSvgWrapper","NcLoadingIcon","NcPopover","defineAsyncComponent","__vitePreload","NcUserStatusIcon","isLegacy35","getUserStatusText","g","b","initials","filteredChars","filtered","actions","item","route","getRoute","error","NcActionRouter","NcActionLink","NcActionButton","escape","text","p","emojiIcon","shown","debounce","subscribe","unsubscribe","event","generateUrl","avatarUrl","srcset","size","version","url","userHasAvatar","img","_component_NcLoadingIcon","resolveComponent","_component_IconDotsHorizontal","_component_NcButton","_component_NcIconSvgWrapper","_component_NcActions","_component_NcProfileHoverCard","_component_NcPopover","_component_NcUserStatusIcon","_directive_click_outside","resolveDirective","withDirectives","Fragment","createBlock","withCtx","$event","createSlots","renderList","key","resolveDynamicComponent","mergeProps","createTextVNode","createVNode","attrs","NcAvatar"],"ignoreList":[0,1,2,3,4,5,6,7,8,9],"sources":["../node_modules/@nextcloud/vue/dist/chunks/NcActionText.mjs","../node_modules/@nextcloud/vue/dist/chunks/constants.mjs","../node_modules/@nextcloud/vue/dist/composables/useIsDarkTheme/index.mjs","../node_modules/@vueuse/components/dist/index.js","../node_modules/@nextcloud/vue/dist/functions/contactsMenu/index.mjs","../node_modules/ts-md5/dist/index.es.js","../node_modules/@nextcloud/vue/dist/functions/usernameToColor/index.mjs","../node_modules/striptags/src/striptags.js","../node_modules/@nextcloud/vue/dist/chunks/NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs","../node_modules/@nextcloud/vue/dist/chunks/NcAvatar.mjs"],"sourcesContent":["import '../assets/NcActionText.css';\nimport { A as ActionTextMixin } from \"./actionText.mjs\";\nimport { a as NC_ACTIONS_IS_SEMANTIC_MENU } from \"./useNcActions.mjs\";\nimport { openBlock, createElementBlock, createElementVNode, renderSlot, normalizeStyle, normalizeClass, createCommentVNode, toDisplayString } from \"vue\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nconst _sfc_main = {\n name: \"NcActionText\",\n mixins: [ActionTextMixin],\n inject: {\n isInSemanticMenu: {\n from: NC_ACTIONS_IS_SEMANTIC_MENU,\n default: false\n }\n }\n};\nconst _hoisted_1 = [\"role\"];\nconst _hoisted_2 = {\n key: 0,\n class: \"action-text__longtext-wrapper\"\n};\nconst _hoisted_3 = { class: \"action-text__name\" };\nconst _hoisted_4 = [\"textContent\"];\nconst _hoisted_5 = [\"textContent\"];\nconst _hoisted_6 = {\n key: 2,\n class: \"action-text__text\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n return openBlock(), createElementBlock(\"li\", {\n class: \"action\",\n role: $options.isInSemanticMenu && \"presentation\"\n }, [\n createElementVNode(\"span\", {\n class: \"action-text\",\n onClick: _cache[0] || (_cache[0] = (...args) => _ctx.onClick && _ctx.onClick(...args))\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n _ctx.icon !== \"\" ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n \"aria-hidden\": \"true\",\n class: normalizeClass([\"action-text__icon\", [_ctx.isIconUrl ? \"action-text__icon--url\" : _ctx.icon]]),\n style: normalizeStyle({ backgroundImage: _ctx.isIconUrl ? `url(${_ctx.icon})` : null })\n }, null, 6)) : createCommentVNode(\"\", true)\n ], true),\n _ctx.name ? (openBlock(), createElementBlock(\"span\", _hoisted_2, [\n createElementVNode(\"strong\", _hoisted_3, toDisplayString(_ctx.name), 1),\n createElementVNode(\"span\", {\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_4)\n ])) : _ctx.isLongText ? (openBlock(), createElementBlock(\"span\", {\n key: 1,\n class: \"action-text__longtext\",\n textContent: toDisplayString(_ctx.text)\n }, null, 8, _hoisted_5)) : (openBlock(), createElementBlock(\"span\", _hoisted_6, toDisplayString(_ctx.text), 1)),\n createCommentVNode(\"\", true)\n ])\n ], 8, _hoisted_1);\n}\nconst NcActionText = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-fa684b48\"]]);\nexport {\n NcActionText as N\n};\n//# sourceMappingURL=NcActionText.mjs.map\n","/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nconst INJECTION_KEY_THEME = /* @__PURE__ */ Symbol.for(\"nc:theme:enforced\");\nexport {\n INJECTION_KEY_THEME as I\n};\n//# sourceMappingURL=constants.mjs.map\n","import { createSharedComposable, usePreferredDark, useMutationObserver } from \"@vueuse/core\";\nimport { computed, toValue, ref, watch, readonly, inject } from \"vue\";\nimport { checkIfDarkTheme } from \"../../functions/isDarkTheme/index.mjs\";\nimport { I as INJECTION_KEY_THEME } from \"../../chunks/constants.mjs\";\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nfunction useIsDarkThemeElement(el) {\n const element = computed(() => toValue(el) ?? document.body);\n const isDarkTheme = ref(checkIfDarkTheme(element.value));\n const isDarkSystemTheme = usePreferredDark();\n function updateIsDarkTheme() {\n isDarkTheme.value = checkIfDarkTheme(element.value);\n }\n useMutationObserver(element, updateIsDarkTheme, { attributes: true });\n watch(element, updateIsDarkTheme);\n watch(isDarkSystemTheme, updateIsDarkTheme, { immediate: true });\n return readonly(isDarkTheme);\n}\nconst useInternalIsDarkTheme = createSharedComposable(() => useIsDarkThemeElement());\nfunction useIsDarkTheme() {\n const isDarkTheme = useInternalIsDarkTheme();\n const enforcedTheme = inject(INJECTION_KEY_THEME, void 0);\n return computed(() => {\n if (enforcedTheme?.value) {\n return enforcedTheme.value === \"dark\";\n }\n return isDarkTheme.value;\n });\n}\nexport {\n useIsDarkTheme,\n useIsDarkThemeElement\n};\n//# sourceMappingURL=index.mjs.map\n","import { defaultWindow, isClient, onClickOutside, onKeyStroke, onLongPress, useActiveElement, useBattery, useBrowserLocation, useClipboard, useColorMode, useDark, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDocumentVisibility, useDraggable, useElementBounding, useElementHover, useElementOverflow, useElementSize, useElementVisibility, useEyeDropper, useFullscreen, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useMouse, useMouseInElement, useMousePressed, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, usePointer, usePointerLock, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, usePreferredReducedTransparency, useResizeObserver, useScreenSafeArea, useScroll, useScrollLock, useStorage, useTimeAgo, useTimestamp, useVirtualList, useWindowFocus, useWindowSize } from \"@vueuse/core\";\nimport { computed, defineComponent, getCurrentInstance, h, onMounted, reactive, shallowReadonly, shallowRef, toRefs, toValue, watch } from \"vue\";\nimport { createDisposableDirective, isClient as isClient$1, notNullish, reactiveOmit, toArray, toRefs as toRefs$1, tryOnScopeDispose, useToggle } from \"@vueuse/shared\";\n//#region ../core/onClickOutside/component.ts\nconst OnClickOutside = /* #__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tonClickOutside(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default());\n\t};\n}, {\n\tname: \"OnClickOutside\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onClickOutside/directive.ts\nconst stopClickOutsideMap = /* @__PURE__ */ new WeakMap();\nconst vOnClickOutside = {\n\tmounted(el, binding) {\n\t\tconst capture = !binding.modifiers.bubble;\n\t\tlet stop;\n\t\tif (typeof binding.value === \"function\") stop = onClickOutside(el, binding.value, { capture });\n\t\telse {\n\t\t\tconst [handler, options] = binding.value;\n\t\t\tstop = onClickOutside(el, handler, Object.assign({ capture }, options));\n\t\t}\n\t\tstopClickOutsideMap.set(el, stop);\n\t},\n\tunmounted(el) {\n\t\tconst stop = stopClickOutsideMap.get(el);\n\t\tif (stop && typeof stop === \"function\") stop();\n\t\telse stop === null || stop === void 0 || stop.stop();\n\t\tstopClickOutsideMap.delete(el);\n\t}\n};\n/** @deprecated use `vOnClickOutside` instead */\nconst VOnClickOutside = vOnClickOutside;\n//#endregion\n//#region ../core/onKeyStroke/directive.ts\nconst vOnKeyStroke = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$arg$split, _binding$arg;\n\tconst keys = (_binding$arg$split = (_binding$arg = binding.arg) === null || _binding$arg === void 0 ? void 0 : _binding$arg.split(\",\")) !== null && _binding$arg$split !== void 0 ? _binding$arg$split : true;\n\tif (typeof binding.value === \"function\") onKeyStroke(keys, binding.value, { target: el });\n\telse {\n\t\tconst [handler, options] = binding.value;\n\t\tonKeyStroke(keys, handler, {\n\t\t\ttarget: el,\n\t\t\t...options\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/onLongPress/component.ts\nconst OnLongPress = /* #__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst target = shallowRef();\n\tconst data = onLongPress(target, (e) => {\n\t\temit(\"trigger\", e);\n\t}, props.options);\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"OnLongPress\",\n\tprops: [\"as\", \"options\"],\n\temits: [\"trigger\"]\n});\n//#endregion\n//#region ../core/onLongPress/directive.ts\nconst vOnLongPress = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") onLongPress(el, binding.value, { modifiers: binding.modifiers });\n\telse onLongPress(el, ...binding.value);\n} });\n/** @deprecated use `vOnLongPress` instead */\nconst VOnLongPress = vOnLongPress;\n//#endregion\n//#region ../core/useActiveElement/component.ts\nconst UseActiveElement = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ element: useActiveElement(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseActiveElement\",\n\tprops: [\n\t\t\"deep\",\n\t\t\"triggerOnRemoval\",\n\t\t\"window\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useBattery/component.ts\nconst UseBattery = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBattery(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBattery\",\n\tprops: [\"navigator\"]\n});\n//#endregion\n//#region ../core/useBrowserLocation/component.ts\nconst UseBrowserLocation = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useBrowserLocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseBrowserLocation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useClipboard/component.ts\nconst UseClipboard = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useClipboard(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseClipboard\",\n\tprops: [\n\t\t\"source\",\n\t\t\"read\",\n\t\t\"navigator\",\n\t\t\"copiedDuring\",\n\t\t\"legacy\"\n\t]\n});\n//#endregion\n//#region ../core/useColorMode/component.ts\nconst UseColorMode = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst mode = useColorMode(props);\n\tconst data = reactive({\n\t\tmode,\n\t\tsystem: mode.system,\n\t\tstore: mode.store\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseColorMode\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"modes\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDark/component.ts\nconst UseDark = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst isDark = useDark(props);\n\tconst data = reactive({\n\t\tisDark,\n\t\ttoggleDark: useToggle(isDark)\n\t});\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDark\",\n\tprops: [\n\t\t\"attribute\",\n\t\t\"deep\",\n\t\t\"disableTransition\",\n\t\t\"emitAuto\",\n\t\t\"eventFilter\",\n\t\t\"flush\",\n\t\t\"initOnMounted\",\n\t\t\"initialValue\",\n\t\t\"listenToStorageChanges\",\n\t\t\"mergeDefaults\",\n\t\t\"onChanged\",\n\t\t\"onError\",\n\t\t\"selector\",\n\t\t\"serializer\",\n\t\t\"shallow\",\n\t\t\"storage\",\n\t\t\"storageKey\",\n\t\t\"storageRef\",\n\t\t\"valueDark\",\n\t\t\"valueLight\",\n\t\t\"window\",\n\t\t\"writeDefaults\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceMotion/component.ts\nconst UseDeviceMotion = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = useDeviceMotion(props);\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceMotion\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"requestPermissions\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useDeviceOrientation/component.ts\nconst UseDeviceOrientation = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDeviceOrientation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDeviceOrientation\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicePixelRatio/component.ts\nconst UseDevicePixelRatio = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicePixelRatio(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicePixelRatio\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useDevicesList/component.ts\nconst UseDevicesList = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useDevicesList(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDevicesList\",\n\tprops: [\n\t\t\"constraints\",\n\t\t\"navigator\",\n\t\t\"onUpdated\",\n\t\t\"requestPermissions\"\n\t]\n});\n//#endregion\n//#region ../core/useDocumentVisibility/component.ts\nconst UseDocumentVisibility = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ visibility: useDocumentVisibility(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseDocumentVisibility\",\n\tprops: [\"document\"]\n});\n//#endregion\n//#region ../core/useDraggable/component.ts\nconst UseDraggable = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst handle = computed(() => {\n\t\tvar _toValue;\n\t\treturn (_toValue = toValue(props.handle)) !== null && _toValue !== void 0 ? _toValue : target.value;\n\t});\n\tconst containerElement = computed(() => {\n\t\tvar _ref;\n\t\treturn (_ref = props.containerElement) !== null && _ref !== void 0 ? _ref : void 0;\n\t});\n\tconst disabled = computed(() => !!props.disabled);\n\tconst storageValue = props.storageKey && useStorage(props.storageKey, toValue(props.initialValue) || {\n\t\tx: 0,\n\t\ty: 0\n\t}, isClient ? props.storageType === \"session\" ? sessionStorage : localStorage : void 0);\n\tconst initialValue = storageValue || props.initialValue || {\n\t\tx: 0,\n\t\ty: 0\n\t};\n\tconst onEnd = (position, event) => {\n\t\tvar _props$onEnd;\n\t\t(_props$onEnd = props.onEnd) === null || _props$onEnd === void 0 || _props$onEnd.call(props, position, event);\n\t\tif (!storageValue) return;\n\t\tstorageValue.value.x = position.x;\n\t\tstorageValue.value.y = position.y;\n\t};\n\tconst data = reactive(useDraggable(target, {\n\t\t...props,\n\t\thandle,\n\t\tinitialValue,\n\t\tonEnd,\n\t\tdisabled,\n\t\tcontainerElement\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\tref: target,\n\t\t\tstyle: `touch-action:none;${data.style}`\n\t\t}, slots.default(data));\n\t};\n}, {\n\tname: \"UseDraggable\",\n\tprops: [\n\t\t\"storageKey\",\n\t\t\"storageType\",\n\t\t\"initialValue\",\n\t\t\"exact\",\n\t\t\"preventDefault\",\n\t\t\"stopPropagation\",\n\t\t\"pointerTypes\",\n\t\t\"as\",\n\t\t\"handle\",\n\t\t\"axis\",\n\t\t\"onStart\",\n\t\t\"onMove\",\n\t\t\"onEnd\",\n\t\t\"disabled\",\n\t\t\"buttons\",\n\t\t\"containerElement\",\n\t\t\"capture\",\n\t\t\"draggingElement\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/component.ts\nconst UseElementBounding = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementBounding(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementBounding\",\n\tprops: [\n\t\t\"as\",\n\t\t\"immediate\",\n\t\t\"reset\",\n\t\t\"updateTiming\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useElementBounding/directive.ts\nconst vElementBounding = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\tconst { height, bottom, left, right, top, width, x, y } = useElementBounding(el, options);\n\twatch([\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t], () => handler({\n\t\theight,\n\t\tbottom,\n\t\tleft,\n\t\tright,\n\t\ttop,\n\t\twidth,\n\t\tx,\n\t\ty\n\t}));\n} });\n//#endregion\n//#region ../core/useElementHover/directive.ts\nconst vElementHover = createDisposableDirective({ mounted(el, binding) {\n\tconst value = binding.value;\n\tif (typeof value === \"function\") watch(useElementHover(el), (v) => value(v));\n\telse {\n\t\tconst [handler, options] = value;\n\t\twatch(useElementHover(el, options), (v) => handler(v));\n\t}\n} });\n//#endregion\n//#region ../core/useElementOverflow/component.ts\nconst UseElementOverflow = /* #__PURE__ */ defineComponent({\n\tname: \"UseElementOverflow\",\n\tprops: [\"observeMutation\", \"as\"],\n\temits: [\"update\"],\n\tsetup(props, { slots, attrs, emit }) {\n\t\tconst target = shallowRef();\n\t\tconst info = reactive(useElementOverflow(target, {\n\t\t\tobserveMutation: props.observeMutation,\n\t\t\tonUpdated: (...args) => {\n\t\t\t\temit(\"update\", ...args);\n\t\t\t}\n\t\t}));\n\t\treturn () => {\n\t\t\tif (slots.default) return h(props.as || \"div\", {\n\t\t\t\tref: target,\n\t\t\t\t...attrs\n\t\t\t}, slots.default(info));\n\t\t};\n\t}\n});\n//#endregion\n//#region ../core/_configurable.ts\nconst defaultWindow$1 = isClient$1 ? window : void 0;\nisClient$1 && window.document;\nisClient$1 && window.navigator;\nisClient$1 && window.location;\n//#endregion\n//#region ../core/unrefElement/index.ts\n/**\n* Get the dom element of a ref of element or Vue component instance\n*\n* @param elRef\n*/\nfunction unrefElement(elRef) {\n\tvar _$el;\n\tconst plain = toValue(elRef);\n\treturn (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;\n}\n//#endregion\n//#region ../core/useMounted/index.ts\n/**\n* Mounted state in ref.\n*\n* @see https://vueuse.org/useMounted\n*\n* @__NO_SIDE_EFFECTS__\n*/\nfunction useMounted() {\n\tconst isMounted = shallowRef(false);\n\tconst instance = getCurrentInstance();\n\tif (instance) onMounted(() => {\n\t\tisMounted.value = true;\n\t}, instance);\n\treturn isMounted;\n}\n//#endregion\n//#region ../core/useSupported/index.ts\n/* @__NO_SIDE_EFFECTS__ */\nfunction useSupported(callback) {\n\tconst isMounted = useMounted();\n\treturn computed(() => {\n\t\tisMounted.value;\n\t\treturn Boolean(callback());\n\t});\n}\n//#endregion\n//#region ../core/useMutationObserver/index.ts\n/**\n* Watch for changes being made to the DOM tree.\n*\n* @see https://vueuse.org/useMutationObserver\n* @see https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver MutationObserver MDN\n* @param target\n* @param callback\n* @param options\n*/\nfunction useMutationObserver(target, callback, options = {}) {\n\tconst { window = defaultWindow$1, ...mutationOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"MutationObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst items = toArray(toValue(target)).map(unrefElement).filter(notNullish);\n\t\treturn new Set(items);\n\t}), (newTargets) => {\n\t\tcleanup();\n\t\tif (isSupported.value && newTargets.size) {\n\t\t\tobserver = new MutationObserver(callback);\n\t\t\tnewTargets.forEach((el) => observer.observe(el, mutationOptions));\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst takeRecords = () => {\n\t\treturn observer === null || observer === void 0 ? void 0 : observer.takeRecords();\n\t};\n\tconst stop = () => {\n\t\tstopWatch();\n\t\tcleanup();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop,\n\t\ttakeRecords\n\t};\n}\n//#endregion\n//#region ../core/useResizeObserver/index.ts\n/**\n* Reports changes to the dimensions of an Element's content or the border-box\n*\n* @see https://vueuse.org/useResizeObserver\n* @param target\n* @param callback\n* @param options\n*/\nfunction useResizeObserver$1(target, callback, options = {}) {\n\tconst { window = defaultWindow$1, ...observerOptions } = options;\n\tlet observer;\n\tconst isSupported = /* @__PURE__ */ useSupported(() => window && \"ResizeObserver\" in window);\n\tconst cleanup = () => {\n\t\tif (observer) {\n\t\t\tobserver.disconnect();\n\t\t\tobserver = void 0;\n\t\t}\n\t};\n\tconst stopWatch = watch(computed(() => {\n\t\tconst _targets = toValue(target);\n\t\treturn Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n\t}), (els) => {\n\t\tcleanup();\n\t\tif (isSupported.value && window) {\n\t\t\tobserver = new ResizeObserver(callback);\n\t\t\tfor (const _el of els) if (_el) observer.observe(_el, observerOptions);\n\t\t}\n\t}, {\n\t\timmediate: true,\n\t\tflush: \"post\"\n\t});\n\tconst stop = () => {\n\t\tcleanup();\n\t\tstopWatch();\n\t};\n\ttryOnScopeDispose(stop);\n\treturn {\n\t\tisSupported,\n\t\tstop\n\t};\n}\n//#endregion\n//#region ../core/useElementOverflow/index.ts\n/**\n* react a dom's overflow state\n* @see https://vueuse.org/useElementOverflow\n* @param target\n* @param option\n*/\nfunction useElementOverflow$1(target, option = {}) {\n\tconst { observeMutation = false, onUpdated, window = defaultWindow$1 } = option;\n\tconst isXOverflowed = shallowRef(false);\n\tconst isYOverflowed = shallowRef(false);\n\tfunction update(htmlEl) {\n\t\tisXOverflowed.value = htmlEl.scrollWidth > htmlEl.offsetWidth;\n\t\tisYOverflowed.value = htmlEl.scrollHeight > htmlEl.offsetHeight;\n\t}\n\tconst onResizeUpdated = onUpdated;\n\tconst targetEl = computed(() => {\n\t\tconst el = unrefElement(target);\n\t\tif (!el || el instanceof SVGElement) return void 0;\n\t\treturn el;\n\t});\n\tconst targets = () => {\n\t\tconst el = targetEl.value;\n\t\tif (!el || el instanceof SVGElement) return [];\n\t\treturn [el, ...Array.from(el.children).filter((i) => i instanceof HTMLElement)];\n\t};\n\tuseResizeObserver$1(targets, (entries, observer) => {\n\t\tconst el = targetEl.value;\n\t\tif (el) update(el);\n\t\tonResizeUpdated === null || onResizeUpdated === void 0 || onResizeUpdated(entries, observer);\n\t}, { window });\n\tif (observeMutation) {\n\t\tconst onMutationUpdated = onUpdated;\n\t\tuseMutationObserver(targets, (entries, observer) => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el) update(el);\n\t\t\tonMutationUpdated === null || onMutationUpdated === void 0 || onMutationUpdated(entries, observer);\n\t\t}, {\n\t\t\twindow,\n\t\t\t...typeof observeMutation === \"object\" ? observeMutation : {\n\t\t\t\tchildList: true,\n\t\t\t\tsubtree: true,\n\t\t\t\tcharacterData: true\n\t\t\t}\n\t\t});\n\t}\n\treturn {\n\t\tisXOverflowed: shallowReadonly(isXOverflowed),\n\t\tisYOverflowed: shallowReadonly(isYOverflowed),\n\t\tstop,\n\t\tupdate: () => {\n\t\t\tconst el = targetEl.value;\n\t\t\tif (el && window) update(el);\n\t\t}\n\t};\n}\n//#endregion\n//#region ../core/useElementOverflow/directive.ts\nconst vElementOverflow = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value] : binding.value;\n\tconst info = useElementOverflow$1(el, options);\n\tconst { isXOverflowed, isYOverflowed } = info;\n\twatch([isXOverflowed, isYOverflowed], () => handler(info), { immediate: true });\n} });\n//#endregion\n//#region ../core/useElementSize/component.ts\nconst UseElementSize = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tvar _toValue, _toValue2;\n\tconst target = shallowRef();\n\tconst { width, height } = toRefs(props);\n\tconst data = reactive(useElementSize(target, {\n\t\twidth: (_toValue = toValue(width)) !== null && _toValue !== void 0 ? _toValue : 0,\n\t\theight: (_toValue2 = toValue(height)) !== null && _toValue2 !== void 0 ? _toValue2 : 0\n\t}, {\n\t\tbox: props.box,\n\t\twindow: props.window\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementSize\",\n\tprops: [\n\t\t\"as\",\n\t\t\"box\",\n\t\t\"height\",\n\t\t\"width\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementSize/directive.ts\nconst vElementSize = createDisposableDirective({ mounted(el, binding) {\n\tvar _binding$value;\n\tconst handler = typeof binding.value === \"function\" ? binding.value : (_binding$value = binding.value) === null || _binding$value === void 0 ? void 0 : _binding$value[0];\n\tconst { width, height } = useElementSize(el, ...typeof binding.value === \"function\" ? [] : binding.value.slice(1));\n\twatch([width, height], ([width, height]) => handler({\n\t\twidth,\n\t\theight\n\t}), { immediate: true });\n} });\n//#endregion\n//#region ../core/useElementVisibility/component.ts\nconst UseElementVisibility = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useElementVisibility(target, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseElementVisibility\",\n\tprops: [\n\t\t\"as\",\n\t\t\"once\",\n\t\t\"rootMargin\",\n\t\t\"scrollTarget\",\n\t\t\"threshold\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useElementVisibility/directive.ts\nconst vElementVisibility = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\twatch(useElementVisibility(el), (v) => handler(v), { immediate: true });\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tif (options === null || options === void 0 ? void 0 : options.controls) {\n\t\t\tconst state = useElementVisibility(el, options);\n\t\t\twatch(state.isVisible, () => handler(state), { immediate: true });\n\t\t} else watch(useElementVisibility(el, options), (v) => handler(v), { immediate: true });\n\t}\n} });\n//#endregion\n//#region ../core/useEyeDropper/component.ts\nconst UseEyeDropper = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useEyeDropper(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseEyeDropper\",\n\tprops: [\"initialValue\"]\n});\n//#endregion\n//#region ../core/useFullscreen/component.ts\nconst UseFullscreen = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useFullscreen(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseFullscreen\",\n\tprops: [\n\t\t\"as\",\n\t\t\"autoExit\",\n\t\t\"document\"\n\t]\n});\n//#endregion\n//#region ../core/useGeolocation/component.ts\nconst UseGeolocation = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useGeolocation(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseGeolocation\",\n\tprops: [\n\t\t\"enableHighAccuracy\",\n\t\t\"immediate\",\n\t\t\"maximumAge\",\n\t\t\"navigator\",\n\t\t\"timeout\"\n\t]\n});\n//#endregion\n//#region ../core/useIdle/component.ts\nconst UseIdle = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useIdle(props.timeout, props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseIdle\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"events\",\n\t\t\"initialState\",\n\t\t\"listenForVisibilityChange\",\n\t\t\"timeout\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useImage/component.ts\nconst UseImage = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useImage(props));\n\treturn () => {\n\t\tif (data.isLoading && slots.loading) return slots.loading(data);\n\t\telse if (data.error && slots.error) return slots.error(data.error);\n\t\tif (slots.default) return slots.default(data);\n\t\treturn h(props.as || \"img\", props);\n\t};\n}, {\n\tname: \"UseImage\",\n\tprops: [\n\t\t\"alt\",\n\t\t\"as\",\n\t\t\"class\",\n\t\t\"crossorigin\",\n\t\t\"decoding\",\n\t\t\"fetchPriority\",\n\t\t\"height\",\n\t\t\"ismap\",\n\t\t\"loading\",\n\t\t\"referrerPolicy\",\n\t\t\"sizes\",\n\t\t\"src\",\n\t\t\"srcset\",\n\t\t\"usemap\",\n\t\t\"width\"\n\t]\n});\n//#endregion\n//#region ../core/useInfiniteScroll/directive.ts\nconst vInfiniteScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useInfiniteScroll(el, binding.value);\n\telse useInfiniteScroll(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useIntersectionObserver/directive.ts\nconst vIntersectionObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useIntersectionObserver(el, binding.value);\n\telse useIntersectionObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useMouse/component.ts\nconst UseMouse = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useMouse(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseMouse\",\n\tprops: [\n\t\t\"eventFilter\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/component.ts\nconst UseMouseInElement = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMouseInElement(target, props));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMouseInElement\",\n\tprops: [\n\t\t\"as\",\n\t\t\"eventFilter\",\n\t\t\"handleOutside\",\n\t\t\"initialValue\",\n\t\t\"resetOnTouchEnds\",\n\t\t\"scroll\",\n\t\t\"target\",\n\t\t\"touch\",\n\t\t\"type\",\n\t\t\"window\",\n\t\t\"windowResize\",\n\t\t\"windowScroll\"\n\t]\n});\n//#endregion\n//#region ../core/useMouseInElement/directive.ts\nconst vMouseInElement = createDisposableDirective({ mounted(el, binding) {\n\tconst [handler, options] = typeof binding.value === \"function\" ? [binding.value, {}] : binding.value;\n\twatch(reactiveOmit(reactive(useMouseInElement(el, options)), \"stop\"), (val) => handler(val));\n} });\n//#endregion\n//#region ../core/useMousePressed/component.ts\nconst UseMousePressed = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(useMousePressed({\n\t\t...props,\n\t\ttarget\n\t}));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UseMousePressed\",\n\tprops: [\n\t\t\"as\",\n\t\t\"capture\",\n\t\t\"drag\",\n\t\t\"initialValue\",\n\t\t\"onPressed\",\n\t\t\"onReleased\",\n\t\t\"touch\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/useNetwork/component.ts\nconst UseNetwork = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNetwork(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNetwork\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useNow/component.ts\nconst UseNow = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useNow({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseNow\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"immediate\",\n\t\t\"interval\"\n\t]\n});\n//#endregion\n//#region ../core/useObjectUrl/component.ts\nconst UseObjectUrl = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst { object } = toRefs$1(props);\n\tconst url = useObjectUrl(object);\n\treturn () => {\n\t\tif (slots.default && url.value) return slots.default(url.value);\n\t};\n}, {\n\tname: \"UseObjectUrl\",\n\tprops: [\"object\"]\n});\n//#endregion\n//#region ../core/useOffsetPagination/component.ts\nconst UseOffsetPagination = /* #__PURE__ */ defineComponent((props, { slots, emit }) => {\n\tconst data = reactive(useOffsetPagination({\n\t\t...props,\n\t\ttotal: toValue(props.total) || void 0,\n\t\tonPageChange(...args) {\n\t\t\tvar _props$onPageChange;\n\t\t\t(_props$onPageChange = props.onPageChange) === null || _props$onPageChange === void 0 || _props$onPageChange.call(props, ...args);\n\t\t\temit(\"page-change\", ...args);\n\t\t},\n\t\tonPageSizeChange(...args) {\n\t\t\tvar _props$onPageSizeChan;\n\t\t\t(_props$onPageSizeChan = props.onPageSizeChange) === null || _props$onPageSizeChan === void 0 || _props$onPageSizeChan.call(props, ...args);\n\t\t\temit(\"page-size-change\", ...args);\n\t\t},\n\t\tonPageCountChange(...args) {\n\t\t\tvar _props$onPageCountCha;\n\t\t\t(_props$onPageCountCha = props.onPageCountChange) === null || _props$onPageCountCha === void 0 || _props$onPageCountCha.call(props, ...args);\n\t\t\temit(\"page-count-change\", ...args);\n\t\t}\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOffsetPagination\",\n\tprops: [\n\t\t\"onPageChange\",\n\t\t\"onPageCountChange\",\n\t\t\"onPageSizeChange\",\n\t\t\"page\",\n\t\t\"pageSize\",\n\t\t\"total\"\n\t]\n});\n//#endregion\n//#region ../core/useOnline/component.ts\nconst UseOnline = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isOnline: useOnline(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseOnline\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePageLeave/component.ts\nconst UsePageLeave = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ isLeft: usePageLeave(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePageLeave\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePointer/component.ts\nconst UsePointer = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst el = shallowRef(null);\n\tconst data = reactive(usePointer({\n\t\t...props,\n\t\ttarget: props.target === \"self\" ? el : defaultWindow\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePointer\",\n\tprops: [\n\t\t\"initialValue\",\n\t\t\"pointerTypes\",\n\t\t\"target\",\n\t\t\"window\"\n\t]\n});\n//#endregion\n//#region ../core/usePointerLock/component.ts\nconst UsePointerLock = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst target = shallowRef();\n\tconst data = reactive(usePointerLock(target));\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { ref: target }, slots.default(data));\n\t};\n}, {\n\tname: \"UsePointerLock\",\n\tprops: [\"as\", \"document\"]\n});\n//#endregion\n//#region ../core/usePreferredColorScheme/component.ts\nconst UsePreferredColorScheme = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ colorScheme: usePreferredColorScheme(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredColorScheme\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredContrast/component.ts\nconst UsePreferredContrast = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ contrast: usePreferredContrast(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredContrast\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredDark/component.ts\nconst UsePreferredDark = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ prefersDark: usePreferredDark(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredDark\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredLanguages/component.ts\nconst UsePreferredLanguages = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ languages: usePreferredLanguages(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredLanguages\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedMotion/component.ts\nconst UsePreferredReducedMotion = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ motion: usePreferredReducedMotion(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UsePreferredReducedMotion\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/usePreferredReducedTransparency/component.ts\nconst UsePreferredReducedTransparency = /* #__PURE__ */ defineComponent({\n\tname: \"UsePreferredReducedTransparency\",\n\tsetup(props, { slots }) {\n\t\tconst data = reactive({ transparency: usePreferredReducedTransparency() });\n\t\treturn () => {\n\t\t\tif (slots.default) return slots.default(data);\n\t\t};\n\t}\n});\n//#endregion\n//#region ../core/useResizeObserver/directive.ts\nconst vResizeObserver = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") useResizeObserver(el, binding.value);\n\telse useResizeObserver(el, ...binding.value);\n} });\n//#endregion\n//#region ../core/useScreenSafeArea/component.ts\nconst UseScreenSafeArea = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useScreenSafeArea());\n\treturn () => {\n\t\tif (slots.default) return h(props.as || \"div\", { style: {\n\t\t\tpaddingTop: props.top ? data.top : \"\",\n\t\t\tpaddingRight: props.right ? data.right : \"\",\n\t\t\tpaddingBottom: props.bottom ? data.bottom : \"\",\n\t\t\tpaddingLeft: props.left ? data.left : \"\",\n\t\t\tboxSizing: \"border-box\",\n\t\t\tmaxHeight: \"100vh\",\n\t\t\tmaxWidth: \"100vw\",\n\t\t\toverflow: \"auto\"\n\t\t} }, slots.default(data));\n\t};\n}, {\n\tname: \"UseScreenSafeArea\",\n\tprops: [\n\t\t\"top\",\n\t\t\"right\",\n\t\t\"bottom\",\n\t\t\"left\"\n\t]\n});\n//#endregion\n//#region ../core/useScroll/directive.ts\nconst vScroll = createDisposableDirective({ mounted(el, binding) {\n\tif (typeof binding.value === \"function\") {\n\t\tconst handler = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\tonScroll() {\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop() {\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tconst [handler, options] = binding.value;\n\t\tconst state = useScroll(el, {\n\t\t\t...options,\n\t\t\tonScroll(e) {\n\t\t\t\tvar _options$onScroll;\n\t\t\t\t(_options$onScroll = options.onScroll) === null || _options$onScroll === void 0 || _options$onScroll.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t},\n\t\t\tonStop(e) {\n\t\t\t\tvar _options$onStop;\n\t\t\t\t(_options$onStop = options.onStop) === null || _options$onStop === void 0 || _options$onStop.call(options, e);\n\t\t\t\thandler(state);\n\t\t\t}\n\t\t});\n\t}\n} });\n//#endregion\n//#region ../core/useScrollLock/directive.ts\nfunction onScrollLock() {\n\tlet isMounted = false;\n\tconst state = shallowRef(false);\n\treturn createDisposableDirective((el, binding) => {\n\t\tstate.value = binding.value;\n\t\tif (isMounted) return;\n\t\tisMounted = true;\n\t\tconst isLocked = useScrollLock(el, binding.value);\n\t\twatch(state, (v) => isLocked.value = v);\n\t});\n}\nconst vScrollLock = onScrollLock();\n//#endregion\n//#region ../core/useTimeAgo/component.ts\nconst UseTimeAgo = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimeAgo(() => props.time, {\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimeAgo\",\n\tprops: [\n\t\t\"fullDateFormatter\",\n\t\t\"max\",\n\t\t\"messages\",\n\t\t\"rounding\",\n\t\t\"showSecond\",\n\t\t\"time\",\n\t\t\"units\",\n\t\t\"updateInterval\"\n\t]\n});\n//#endregion\n//#region ../core/useTimestamp/component.ts\nconst UseTimestamp = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useTimestamp({\n\t\t...props,\n\t\tcontrols: true\n\t}));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseTimestamp\",\n\tprops: [\n\t\t\"scheduler\",\n\t\t\"callback\",\n\t\t\"immediate\",\n\t\t\"interval\",\n\t\t\"offset\"\n\t]\n});\n//#endregion\n//#region ../core/useVirtualList/component.ts\nconst UseVirtualList = /* #__PURE__ */ defineComponent((props, { slots, expose }) => {\n\tconst { list: listRef } = toRefs(props);\n\tconst { list, containerProps, wrapperProps, scrollTo } = useVirtualList(listRef, props.options);\n\texpose({ scrollTo });\n\tif (containerProps.style && typeof containerProps.style === \"object\" && !Array.isArray(containerProps.style)) containerProps.style.height = props.height || \"300px\";\n\treturn () => h(\"div\", { ...containerProps }, [h(\"div\", { ...wrapperProps.value }, list.value.map((item) => h(\"div\", { style: {\n\t\toverflow: \"hidden\",\n\t\theight: item.height\n\t} }, slots.default ? slots.default(item) : \"Please set content!\")))]);\n}, {\n\tname: \"UseVirtualList\",\n\tprops: [\n\t\t\"height\",\n\t\t\"list\",\n\t\t\"options\"\n\t]\n});\n//#endregion\n//#region ../core/useWindowFocus/component.ts\nconst UseWindowFocus = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive({ focused: useWindowFocus(props) });\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowFocus\",\n\tprops: [\"window\"]\n});\n//#endregion\n//#region ../core/useWindowSize/component.ts\nconst UseWindowSize = /* #__PURE__ */ defineComponent((props, { slots }) => {\n\tconst data = reactive(useWindowSize(props));\n\treturn () => {\n\t\tif (slots.default) return slots.default(data);\n\t};\n}, {\n\tname: \"UseWindowSize\",\n\tprops: [\n\t\t\"includeScrollbar\",\n\t\t\"initialHeight\",\n\t\t\"initialWidth\",\n\t\t\"listenOrientation\",\n\t\t\"type\",\n\t\t\"window\"\n\t]\n});\n//#endregion\nexport { OnClickOutside, OnLongPress, UseActiveElement, UseBattery, UseBrowserLocation, UseClipboard, UseColorMode, UseDark, UseDeviceMotion, UseDeviceOrientation, UseDevicePixelRatio, UseDevicesList, UseDocumentVisibility, UseDraggable, UseElementBounding, UseElementOverflow, UseElementSize, UseElementVisibility, UseEyeDropper, UseFullscreen, UseGeolocation, UseIdle, UseImage, UseMouse, UseMouseInElement, UseMousePressed, UseNetwork, UseNow, UseObjectUrl, UseOffsetPagination, UseOnline, UsePageLeave, UsePointer, UsePointerLock, UsePreferredColorScheme, UsePreferredContrast, UsePreferredDark, UsePreferredLanguages, UsePreferredReducedMotion, UsePreferredReducedTransparency, UseScreenSafeArea, UseTimeAgo, UseTimestamp, UseVirtualList, UseWindowFocus, UseWindowSize, VOnClickOutside, VOnLongPress, vElementBounding, vElementHover, vElementOverflow, vElementSize, vElementVisibility, vInfiniteScroll, vIntersectionObserver, vMouseInElement, vOnClickOutside, vOnKeyStroke, vOnLongPress, vResizeObserver, vScroll, vScrollLock };\n","import { l as logger } from \"../../chunks/logger.mjs\";\nfunction registerContactsMenuAction(action) {\n window._nc_contacts_menu_hooks ??= {};\n if (window._nc_contacts_menu_hooks[action.id]) {\n logger.error(`ContactsMenu action for id ${action.id} has already been registered`, {\n action\n });\n return;\n }\n window._nc_contacts_menu_hooks[action.id] = action;\n}\nfunction getEnabledContactsMenuActions(entry) {\n if (!window._nc_contacts_menu_hooks) {\n return [];\n }\n return Object.values(window._nc_contacts_menu_hooks).filter((action) => action.enabled(entry));\n}\nexport {\n getEnabledContactsMenuActions,\n registerContactsMenuAction\n};\n//# sourceMappingURL=index.mjs.map\n","const c = new Int32Array(4);\nclass h {\n static hashStr(i, a = !1) {\n return this.onePassHasher.start().appendStr(i).end(a);\n }\n static hashAsciiStr(i, a = !1) {\n return this.onePassHasher.start().appendAsciiStr(i).end(a);\n }\n // Private Static Variables\n static stateIdentity = new Int32Array([\n 1732584193,\n -271733879,\n -1732584194,\n 271733878\n ]);\n static buffer32Identity = new Int32Array([\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0,\n 0\n ]);\n static hexChars = \"0123456789abcdef\";\n static hexOut = [];\n // Permanent instance is to use for one-call hashing\n static onePassHasher = new h();\n static _hex(i) {\n const a = h.hexChars, t = h.hexOut;\n let e, s, r, n;\n for (n = 0; n < 4; n += 1)\n for (s = n * 8, e = i[n], r = 0; r < 8; r += 2)\n t[s + 1 + r] = a.charAt(e & 15), e >>>= 4, t[s + 0 + r] = a.charAt(e & 15), e >>>= 4;\n return t.join(\"\");\n }\n static _md5cycle(i, a) {\n let t = i[0], e = i[1], s = i[2], r = i[3];\n t += (e & s | ~e & r) + a[0] - 680876936 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[1] - 389564586 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[2] + 606105819 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[3] - 1044525330 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[4] - 176418897 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[5] + 1200080426 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[6] - 1473231341 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[7] - 45705983 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[8] + 1770035416 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[9] - 1958414417 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[10] - 42063 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[11] - 1990404162 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & s | ~e & r) + a[12] + 1804603682 | 0, t = (t << 7 | t >>> 25) + e | 0, r += (t & e | ~t & s) + a[13] - 40341101 | 0, r = (r << 12 | r >>> 20) + t | 0, s += (r & t | ~r & e) + a[14] - 1502002290 | 0, s = (s << 17 | s >>> 15) + r | 0, e += (s & r | ~s & t) + a[15] + 1236535329 | 0, e = (e << 22 | e >>> 10) + s | 0, t += (e & r | s & ~r) + a[1] - 165796510 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[6] - 1069501632 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[11] + 643717713 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[0] - 373897302 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[5] - 701558691 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[10] + 38016083 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[15] - 660478335 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[4] - 405537848 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[9] + 568446438 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[14] - 1019803690 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[3] - 187363961 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[8] + 1163531501 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e & r | s & ~r) + a[13] - 1444681467 | 0, t = (t << 5 | t >>> 27) + e | 0, r += (t & s | e & ~s) + a[2] - 51403784 | 0, r = (r << 9 | r >>> 23) + t | 0, s += (r & e | t & ~e) + a[7] + 1735328473 | 0, s = (s << 14 | s >>> 18) + r | 0, e += (s & t | r & ~t) + a[12] - 1926607734 | 0, e = (e << 20 | e >>> 12) + s | 0, t += (e ^ s ^ r) + a[5] - 378558 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[8] - 2022574463 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[11] + 1839030562 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[14] - 35309556 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[1] - 1530992060 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[4] + 1272893353 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[7] - 155497632 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[10] - 1094730640 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[13] + 681279174 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[0] - 358537222 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[3] - 722521979 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[6] + 76029189 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (e ^ s ^ r) + a[9] - 640364487 | 0, t = (t << 4 | t >>> 28) + e | 0, r += (t ^ e ^ s) + a[12] - 421815835 | 0, r = (r << 11 | r >>> 21) + t | 0, s += (r ^ t ^ e) + a[15] + 530742520 | 0, s = (s << 16 | s >>> 16) + r | 0, e += (s ^ r ^ t) + a[2] - 995338651 | 0, e = (e << 23 | e >>> 9) + s | 0, t += (s ^ (e | ~r)) + a[0] - 198630844 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[7] + 1126891415 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[14] - 1416354905 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[5] - 57434055 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[12] + 1700485571 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[3] - 1894986606 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[10] - 1051523 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[1] - 2054922799 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[8] + 1873313359 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[15] - 30611744 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[6] - 1560198380 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[13] + 1309151649 | 0, e = (e << 21 | e >>> 11) + s | 0, t += (s ^ (e | ~r)) + a[4] - 145523070 | 0, t = (t << 6 | t >>> 26) + e | 0, r += (e ^ (t | ~s)) + a[11] - 1120210379 | 0, r = (r << 10 | r >>> 22) + t | 0, s += (t ^ (r | ~e)) + a[2] + 718787259 | 0, s = (s << 15 | s >>> 17) + r | 0, e += (r ^ (s | ~t)) + a[9] - 343485551 | 0, e = (e << 21 | e >>> 11) + s | 0, i[0] = t + i[0] | 0, i[1] = e + i[1] | 0, i[2] = s + i[2] | 0, i[3] = r + i[3] | 0;\n }\n _dataLength = 0;\n _bufferLength = 0;\n _state = new Int32Array(4);\n _buffer = new ArrayBuffer(68);\n _buffer8;\n _buffer32;\n constructor() {\n this._buffer8 = new Uint8Array(this._buffer, 0, 68), this._buffer32 = new Uint32Array(this._buffer, 0, 17), this.start();\n }\n /**\n * Initialise buffer to be hashed\n */\n start() {\n return this._dataLength = 0, this._bufferLength = 0, this._state.set(h.stateIdentity), this;\n }\n // Char to code point to to array conversion:\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n // #Example.3A_Fixing_charCodeAt_to_handle_non-Basic-Multilingual-Plane_characters_if_their_presence_earlier_in_the_string_is_unknown\n /**\n * Append a UTF-8 string to the hash buffer\n * @param str String to append\n */\n appendStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r;\n for (r = 0; r < i.length; r += 1) {\n if (s = i.charCodeAt(r), s < 128)\n a[e++] = s;\n else if (s < 2048)\n a[e++] = (s >>> 6) + 192, a[e++] = s & 63 | 128;\n else if (s < 55296 || s > 56319)\n a[e++] = (s >>> 12) + 224, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n else {\n if (s = (s - 55296) * 1024 + (i.charCodeAt(++r) - 56320) + 65536, s > 1114111)\n throw new Error(\n \"Unicode standard supports code points up to U+10FFFF\"\n );\n a[e++] = (s >>> 18) + 240, a[e++] = s >>> 12 & 63 | 128, a[e++] = s >>> 6 & 63 | 128, a[e++] = s & 63 | 128;\n }\n e >= 64 && (this._dataLength += 64, h._md5cycle(this._state, t), e -= 64, t[0] = t[16]);\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append an ASCII string to the hash buffer\n * @param str String to append\n */\n appendAsciiStr(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i.charCodeAt(r++);\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Append a byte array to the hash buffer\n * @param input array to append\n */\n appendByteArray(i) {\n const a = this._buffer8, t = this._buffer32;\n let e = this._bufferLength, s, r = 0;\n for (; ; ) {\n for (s = Math.min(i.length - r, 64 - e); s--; )\n a[e++] = i[r++];\n if (e < 64)\n break;\n this._dataLength += 64, h._md5cycle(this._state, t), e = 0;\n }\n return this._bufferLength = e, this;\n }\n /**\n * Get the state of the hash buffer\n */\n getState() {\n const i = this._state;\n return {\n buffer: String.fromCharCode.apply(null, Array.from(this._buffer8)),\n buflen: this._bufferLength,\n length: this._dataLength,\n state: [i[0], i[1], i[2], i[3]]\n };\n }\n /**\n * Override the current state of the hash buffer\n * @param state New hash buffer state\n */\n setState(i) {\n const a = i.buffer, t = i.state, e = this._state;\n let s;\n for (this._dataLength = i.length, this._bufferLength = i.buflen, e[0] = t[0], e[1] = t[1], e[2] = t[2], e[3] = t[3], s = 0; s < a.length; s += 1)\n this._buffer8[s] = a.charCodeAt(s);\n }\n /**\n * Hash the current state of the hash buffer and return the result\n * @param raw Whether to return the value as an `Int32Array`\n */\n end(i = !1) {\n const a = this._bufferLength, t = this._buffer8, e = this._buffer32, s = (a >> 2) + 1;\n this._dataLength += a;\n const r = this._dataLength * 8;\n if (t[a] = 128, t[a + 1] = t[a + 2] = t[a + 3] = 0, e.set(h.buffer32Identity.subarray(s), s), a > 55 && (h._md5cycle(this._state, e), e.set(h.buffer32Identity)), r <= 4294967295)\n e[14] = r;\n else {\n const n = r.toString(16).match(/(.*?)(.{0,8})$/);\n if (n === null) return i ? c : \"\";\n const o = parseInt(n[2], 16), _ = parseInt(n[1], 16) || 0;\n e[14] = o, e[15] = _;\n }\n return h._md5cycle(this._state, e), i ? this._state : h._hex(this._state);\n }\n}\nif (h.hashStr(\"hello\") !== \"5d41402abc4b2a76b9719d911017c592\")\n throw new Error(\"Md5 self test failed.\");\nclass l {\n constructor(i, a = !0, t = 1048576) {\n this._callback = i, this._async = a, this._partSize = t, this._configureReader();\n }\n _reader;\n _md5;\n _part;\n // private _length!: number;\n _blob;\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n */\n hash(i) {\n const a = this;\n a._blob = i, a._part = 0, a._md5 = new h(), a._processPart();\n }\n _fail() {\n this._callback({\n success: !1,\n result: \"data read failed\"\n });\n }\n _hashData(i) {\n let a = this;\n a._md5.appendByteArray(new Uint8Array(i.target.result)), a._part * a._partSize >= a._blob.size ? a._callback({\n success: !0,\n result: a._md5.end()\n }) : a._processPart();\n }\n _processPart() {\n const i = this;\n let a = 0, t;\n i._part += 1, i._blob.size > i._partSize ? (a = i._part * i._partSize, a > i._blob.size && (a = i._blob.size), t = i._blob.slice(\n (i._part - 1) * i._partSize,\n a\n )) : t = i._blob, i._async ? i._reader.readAsArrayBuffer(t) : setTimeout(() => {\n try {\n i._hashData({\n target: {\n result: i._reader.readAsArrayBuffer(\n t\n )\n }\n });\n } catch {\n i._fail();\n }\n }, 0);\n }\n _configureReader() {\n const i = this;\n i._async ? (i._reader = new FileReader(), i._reader.onload = i._hashData.bind(i), i._reader.onerror = i._fail.bind(i), i._reader.onabort = i._fail.bind(i)) : i._reader = new FileReaderSync();\n }\n}\nclass u {\n _queue = [];\n _hashWorker;\n _processing;\n _ready = !0;\n constructor(i, a) {\n const t = this;\n Worker ? (t._hashWorker = new Worker(i, a), t._hashWorker.onmessage = t._recievedMessage.bind(t), t._hashWorker.onerror = (e) => {\n t._ready = !1, console.error(\"Hash worker failure\", e);\n }) : (t._ready = !1, console.error(\"Web Workers are not supported in this browser\"));\n }\n /**\n * Hash a blob of data in the worker\n * @param blob Data to hash\n * @returns Promise of the Hashed result\n */\n hash(i) {\n const a = this;\n let t;\n return t = new Promise((e, s) => {\n a._queue.push({\n blob: i,\n resolve: e,\n reject: s\n }), a._processNext();\n }), t;\n }\n /** Terminate any existing hash requests */\n terminate() {\n this._ready = !1, this._hashWorker.terminate();\n }\n // Processes the next item in the queue\n _processNext() {\n this._ready && !this._processing && this._queue.length > 0 && (this._processing = this._queue.pop(), this._hashWorker.postMessage(this._processing.blob));\n }\n // Hash result is returned from the worker\n _recievedMessage(i) {\n const a = i.data;\n a.success ? this._processing?.resolve(a.result) : this._processing?.reject(a.result), this._processing = void 0, this._processNext();\n }\n}\nexport {\n h as Md5,\n l as Md5FileHasher,\n u as ParallelHasher\n};\n//# sourceMappingURL=index.es.js.map\n","import { Md5 } from \"ts-md5\";\nimport { g as generatePalette } from \"../../chunks/colors.mjs\";\nfunction hashCode(str) {\n let hash = str;\n if (str.match(/^([0-9a-f]{4}-?){8}$/) === null) {\n hash = Md5.hashStr(str);\n }\n hash = hash.replace(/[^0-9a-f]/g, \"\");\n let finalInt = 0;\n for (let i = 0; i < hash.length; i++) {\n finalInt += parseInt(hash.charAt(i), 16);\n }\n return finalInt;\n}\nfunction usernameToColor(username) {\n const steps = 6;\n const finalPalette = generatePalette(steps);\n const hash = hashCode(username.toLocaleLowerCase());\n return finalPalette[hash % finalPalette.length];\n}\nexport {\n usernameToColor\n};\n//# sourceMappingURL=index.mjs.map\n","'use strict';\n\n(function (global) {\n\n // minimal symbol polyfill for IE11 and others\n if (typeof Symbol !== 'function') {\n var Symbol = function(name) {\n return name;\n }\n\n Symbol.nonNative = true;\n }\n\n const STATE_PLAINTEXT = Symbol('plaintext');\n const STATE_HTML = Symbol('html');\n const STATE_COMMENT = Symbol('comment');\n\n const ALLOWED_TAGS_REGEX = /<(\\w*)>/g;\n const NORMALIZE_TAG_REGEX = /<\\/?([^\\s\\/>]+)/;\n\n function striptags(html, allowable_tags, tag_replacement) {\n html = html || '';\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return striptags_internal(html, context);\n }\n\n function init_striptags_stream(allowable_tags, tag_replacement) {\n allowable_tags = allowable_tags || [];\n tag_replacement = tag_replacement || '';\n\n let context = init_context(allowable_tags, tag_replacement);\n\n return function striptags_stream(html) {\n return striptags_internal(html || '', context);\n };\n }\n\n striptags.init_streaming_mode = init_striptags_stream;\n\n function init_context(allowable_tags, tag_replacement) {\n allowable_tags = parse_allowable_tags(allowable_tags);\n\n return {\n allowable_tags : allowable_tags,\n tag_replacement: tag_replacement,\n\n state : STATE_PLAINTEXT,\n tag_buffer : '',\n depth : 0,\n in_quote_char : ''\n };\n }\n\n function striptags_internal(html, context) {\n if (typeof html != \"string\") {\n throw new TypeError(\"'html' parameter must be a string\");\n }\n\n let allowable_tags = context.allowable_tags;\n let tag_replacement = context.tag_replacement;\n\n let state = context.state;\n let tag_buffer = context.tag_buffer;\n let depth = context.depth;\n let in_quote_char = context.in_quote_char;\n let output = '';\n\n for (let idx = 0, length = html.length; idx < length; idx++) {\n let char = html[idx];\n\n if (state === STATE_PLAINTEXT) {\n switch (char) {\n case '<':\n state = STATE_HTML;\n tag_buffer += char;\n break;\n\n default:\n output += char;\n break;\n }\n }\n\n else if (state === STATE_HTML) {\n switch (char) {\n case '<':\n // ignore '<' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // we're seeing a nested '<'\n depth++;\n break;\n\n case '>':\n // ignore '>' if inside a quote\n if (in_quote_char) {\n break;\n }\n\n // something like this is happening: '<<>>'\n if (depth) {\n depth--;\n\n break;\n }\n\n // this is closing the tag in tag_buffer\n in_quote_char = '';\n state = STATE_PLAINTEXT;\n tag_buffer += '>';\n\n if (allowable_tags.has(normalize_tag(tag_buffer))) {\n output += tag_buffer;\n } else {\n output += tag_replacement;\n }\n\n tag_buffer = '';\n break;\n\n case '\"':\n case '\\'':\n // catch both single and double quotes\n\n if (char === in_quote_char) {\n in_quote_char = '';\n } else {\n in_quote_char = in_quote_char || char;\n }\n\n tag_buffer += char;\n break;\n\n case '-':\n if (tag_buffer === '<!-') {\n state = STATE_COMMENT;\n }\n\n tag_buffer += char;\n break;\n\n case ' ':\n case '\\n':\n if (tag_buffer === '<') {\n state = STATE_PLAINTEXT;\n output += '< ';\n tag_buffer = '';\n\n break;\n }\n\n tag_buffer += char;\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n\n else if (state === STATE_COMMENT) {\n switch (char) {\n case '>':\n if (tag_buffer.slice(-2) == '--') {\n // close the comment\n state = STATE_PLAINTEXT;\n }\n\n tag_buffer = '';\n break;\n\n default:\n tag_buffer += char;\n break;\n }\n }\n }\n\n // save the context for future iterations\n context.state = state;\n context.tag_buffer = tag_buffer;\n context.depth = depth;\n context.in_quote_char = in_quote_char;\n\n return output;\n }\n\n function parse_allowable_tags(allowable_tags) {\n let tag_set = new Set();\n\n if (typeof allowable_tags === 'string') {\n let match;\n\n while ((match = ALLOWED_TAGS_REGEX.exec(allowable_tags))) {\n tag_set.add(match[1]);\n }\n }\n\n else if (!Symbol.nonNative &&\n typeof allowable_tags[Symbol.iterator] === 'function') {\n\n tag_set = new Set(allowable_tags);\n }\n\n else if (typeof allowable_tags.forEach === 'function') {\n // IE11 compatible\n allowable_tags.forEach(tag_set.add, tag_set);\n }\n\n return tag_set;\n }\n\n function normalize_tag(tag_buffer) {\n let match = NORMALIZE_TAG_REGEX.exec(tag_buffer);\n\n return match ? match[1].toLowerCase() : null;\n }\n\n if (typeof define === 'function' && define.amd) {\n // AMD\n define(function module_factory() { return striptags; });\n }\n\n else if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = striptags;\n }\n\n else {\n // Browser\n global.striptags = striptags;\n }\n}(this));\n","import '../assets/NcMentionBubble.css';\nimport { generateAvatarUrl } from \"@nextcloud/router\";\nimport { checkIfDarkTheme } from \"../functions/isDarkTheme/index.mjs\";\nfunction getAvatarUrl(user, options) {\n return generateAvatarUrl(user, {\n size: options?.size,\n isGuestUser: options?.isGuest,\n isDarkTheme: options?.isDarkTheme ?? checkIfDarkTheme(document.body),\n guestFallback: true,\n version: options?.version\n });\n}\nexport {\n getAvatarUrl as g\n};\n//# sourceMappingURL=NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs.map\n","import '../assets/NcAvatar.css';\nimport { getCurrentUser } from \"@nextcloud/auth\";\nimport axios from \"@nextcloud/axios\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nimport { unsubscribe, subscribe } from \"@nextcloud/event-bus\";\nimport { generateOcsUrl, generateUrl } from \"@nextcloud/router\";\nimport { vOnClickOutside } from \"@vueuse/components\";\nimport debounce from \"debounce\";\nimport { defineAsyncComponent, resolveComponent, resolveDirective, withDirectives, openBlock, createElementBlock, normalizeStyle, normalizeClass, renderSlot, createCommentVNode, Fragment, createBlock, withCtx, createSlots, renderList, resolveDynamicComponent, mergeProps, createTextVNode, toDisplayString, createVNode, createElementVNode } from \"vue\";\nimport { N as NcActions, I as IconDotsHorizontal } from \"./NcActions.mjs\";\nimport { g as getRoute } from \"./autolink.mjs\";\nimport \"../composables/useFormatDateTime/index.mjs\";\nimport \"../composables/useHotKey/index.mjs\";\nimport { useIsDarkTheme } from \"../composables/useIsDarkTheme/index.mjs\";\nimport \"../composables/useIsFullscreen/index.mjs\";\nimport \"../composables/useIsMobile/index.mjs\";\nimport { getEnabledContactsMenuActions } from \"../functions/contactsMenu/index.mjs\";\nimport { usernameToColor } from \"../functions/usernameToColor/index.mjs\";\nimport { r as register, n as t11, a as t } from \"./_l10n.mjs\";\nimport \"escape-html\";\nimport \"striptags\";\nimport { g as getAvatarUrl } from \"./NcMentionBubble.vue_vue_type_style_index_0_scoped_3c4a673d_lang.mjs\";\nimport { _ as _export_sfc } from \"./_plugin-vue_export-helper.mjs\";\nimport { getCapabilities } from \"@nextcloud/capabilities\";\nimport { l as logger } from \"./logger.mjs\";\nimport { b as isLegacy35 } from \"./legacy.mjs\";\nimport { N as NcUserStatusIcon, g as getUserStatusText } from \"./NcUserStatusIcon.mjs\";\nimport { N as NcActionButton } from \"./NcActionButton.mjs\";\nimport { N as NcActionLink } from \"./NcActionLink.mjs\";\nimport { N as NcActionRouter } from \"./NcActionRouter.mjs\";\nimport { N as NcActionText } from \"./NcActionText.mjs\";\nimport { N as NcButton } from \"./NcButton.mjs\";\nimport { N as NcIconSvgWrapper } from \"./NcIconSvgWrapper.mjs\";\nimport { N as NcLoadingIcon } from \"./NcLoadingIcon.mjs\";\nimport { N as NcPopover } from \"./NcPopover.mjs\";\nregister(t11);\nconst userStatus = {\n data() {\n return {\n hasStatus: false,\n userStatus: {\n status: null,\n message: null,\n icon: null\n }\n };\n },\n methods: {\n /**\n * Fetches the user-status from the server\n *\n * @param {string} userId UserId of the user to fetch the status for\n *\n * @return {Promise<void>}\n */\n async fetchUserStatus(userId) {\n if (!userId) {\n return;\n }\n const capabilities = getCapabilities();\n if (!Object.hasOwn(capabilities, \"user_status\") || !capabilities.user_status.enabled) {\n return;\n }\n if (!getCurrentUser()) {\n return;\n }\n try {\n const { data } = await axios.get(generateOcsUrl(\"apps/user_status/api/v1/statuses/{userId}\", { userId }));\n this.setUserStatus(data.ocs.data);\n } catch (e) {\n if (e.response.status === 404 && e.response.data.ocs?.data?.length === 0) {\n return;\n }\n logger.error(\"Failed to fetch user status\", { error: e });\n }\n },\n /**\n * Sets the user status\n *\n * @param {Record<string, string>} options - Options for setting the user status\n * @param {string} options.status user's status\n * @param {string} options.message user's message\n * @param {string} options.icon user's icon\n */\n setUserStatus({ status, message, icon }) {\n this.userStatus.status = status || \"\";\n this.userStatus.message = message || \"\";\n this.userStatus.icon = icon || \"\";\n this.hasStatus = !!status;\n }\n }\n};\nconst browserStorage = getBuilder(\"nextcloud\").persist().build();\nconst SMALL_VARIANT_UPSCALE = 1.5;\nfunction density(value) {\n return Number(value.toFixed(3));\n}\nfunction getUserHasAvatar(userId) {\n const flag = browserStorage.getItem(\"user-has-avatar.\" + userId);\n if (typeof flag === \"string\") {\n return Boolean(flag);\n }\n return null;\n}\nfunction setUserHasAvatar(userId, flag) {\n if (userId) {\n browserStorage.setItem(\"user-has-avatar.\" + userId, flag);\n }\n}\nconst _sfc_main = {\n name: \"NcAvatar\",\n directives: {\n /** @type {import('vue').ObjectDirective} */\n ClickOutside: vOnClickOutside\n },\n components: {\n IconDotsHorizontal,\n NcActions,\n NcButton,\n NcIconSvgWrapper,\n NcLoadingIcon,\n NcPopover,\n NcProfileHoverCard: defineAsyncComponent(() => import(\"./NcProfileHoverCard.mjs\")),\n NcUserStatusIcon\n },\n mixins: [userStatus],\n props: {\n /**\n * Set a custom url to the avatar image\n * either the url, user or displayName property must be defined\n */\n url: {\n type: String,\n default: void 0\n },\n /**\n * Set a css icon-class for an icon to be used instead of the avatar.\n */\n iconClass: {\n type: String,\n default: void 0\n },\n /**\n * Set the user id to fetch the avatar\n * either the url, user or displayName property must be defined\n */\n user: {\n type: String,\n default: void 0\n },\n /**\n * Do not show the user status on the avatar.\n */\n hideStatus: {\n type: Boolean,\n default: false\n },\n /**\n * Show the verbose user status (e.g. \"online\" / \"away\") instead of just the status icon.\n */\n verboseStatus: {\n type: Boolean,\n default: false\n },\n /**\n * When the user status was preloaded via another source it can be handed in with this property to save the request.\n * If this property is not set the status will be fetched automatically.\n * If a preloaded no-status is available provide this object with properties \"status\", \"icon\" and \"message\" set to null.\n */\n preloadedUserStatus: {\n type: Object,\n default: void 0\n },\n /**\n * Is the user a guest user (then we have to user a different endpoint)\n */\n isGuest: {\n type: Boolean,\n default: false\n },\n /**\n * The user's avatar version, as returned alongside user lists.\n * Passing it earns the avatar a much longer cache lifetime.\n */\n version: {\n type: [String, Number],\n default: void 0\n },\n /**\n * Set a display name that will be rendered as a tooltip\n * either the url, user or displayName property must be defined\n * specify just the displayname to generate a placeholder avatar without\n * trying to fetch the avatar based on the user id\n */\n displayName: {\n type: String,\n default: void 0\n },\n /**\n * Set a size in px for the rendered avatar\n */\n size: {\n type: Number,\n default: 32\n },\n /**\n * Do not automatically generate a placeholder avatars if there is no real avatar is available.\n */\n noPlaceholder: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the tooltip\n */\n disableTooltip: {\n type: Boolean,\n default: false\n },\n /**\n * Disable the menu\n */\n disableMenu: {\n type: Boolean,\n default: false\n },\n /**\n * Declares a custom tooltip when not null\n * Fallback will be the displayName\n *\n * requires disableTooltip not to be set to true\n */\n tooltipMessage: {\n type: String,\n default: null\n },\n /**\n * Declares username is not a user's name, when true.\n * Prevents loading user's avatar from server and forces generating colored initials,\n * i.e. if the user is a group\n */\n isNoUser: {\n type: Boolean,\n default: false\n },\n /**\n * Selector for the popover menu container\n */\n menuContainer: {\n type: [Boolean, String],\n default: \"body\"\n }\n },\n setup() {\n const isDarkTheme = useIsDarkTheme();\n return {\n isDarkTheme,\n isLegacy35\n };\n },\n data() {\n return {\n avatarUrlLoaded: null,\n avatarSrcSetLoaded: null,\n userDoesNotExist: false,\n isAvatarLoaded: false,\n isMenuLoaded: false,\n contactsMenuLoading: false,\n contactsMenuData: {},\n contactsMenuActions: [],\n contactsMenuOpenState: false\n };\n },\n computed: {\n avatarAriaLabel() {\n if (!this.hasMenu) {\n return;\n }\n if (this.canDisplayUserStatus || this.showUserStatusIconOnAvatar) {\n return t(\"Avatar of {displayName}, {status}\", { displayName: this.displayName ?? this.user, status: getUserStatusText(this.userStatus.status) });\n }\n return t(\"Avatar of {displayName}\", { displayName: this.displayName ?? this.user });\n },\n canDisplayUserStatus() {\n return !this.hideStatus && this.hasStatus && [\"online\", \"away\", \"busy\", \"dnd\"].includes(this.userStatus.status);\n },\n showUserStatusIconOnAvatar() {\n return !this.hideStatus && !this.verboseStatus && this.hasStatus && this.userStatus.status !== \"dnd\" && this.userStatus.icon;\n },\n /**\n * The user identifier, either the display name if set or the user property\n * If both properties are not set an empty string is returned\n */\n userIdentifier() {\n if (this.isDisplayNameDefined) {\n return this.displayName;\n }\n if (this.isUserDefined) {\n return this.user;\n }\n return \"\";\n },\n isUserDefined() {\n return typeof this.user !== \"undefined\";\n },\n isDisplayNameDefined() {\n return typeof this.displayName !== \"undefined\";\n },\n isUrlDefined() {\n return typeof this.url !== \"undefined\";\n },\n hasMenu() {\n if (this.disableMenu) {\n return false;\n }\n if (this.isLegacy35) {\n if (this.isMenuLoaded) {\n return this.menu.length > 0;\n }\n return !(this.user === getCurrentUser()?.uid || this.userDoesNotExist || this.url);\n }\n return Boolean(this.user) && !this.isNoUser && !this.url && !this.userDoesNotExist;\n },\n /**\n * True if initials should be shown as the user icon fallback\n */\n showInitials() {\n return !this.noPlaceholder && this.userDoesNotExist && !(this.iconClass || this.$slots.icon);\n },\n avatarStyle() {\n return {\n \"--avatar-size\": this.size + \"px\",\n lineHeight: this.showInitials ? this.size + \"px\" : 0,\n fontSize: Math.round(this.size * 0.45) + \"px\"\n };\n },\n initialsWrapperStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n backgroundColor: `rgba(${r}, ${g}, ${b}, 0.1)`\n };\n },\n initialsStyle() {\n const { r, g, b } = usernameToColor(this.userIdentifier);\n return {\n color: `rgb(${r}, ${g}, ${b})`\n };\n },\n tooltip() {\n if (this.disableTooltip) {\n return null;\n }\n if (this.tooltipMessage) {\n return this.tooltipMessage;\n }\n return this.displayName;\n },\n /**\n * Get the (max. two) initials of the user as uppcase string\n */\n initials() {\n let initials = \"?\";\n if (this.showInitials) {\n const user = this.userIdentifier.trim();\n if (user === \"\") {\n return initials;\n }\n const filteredChars = user.match(/[\\p{L}\\p{N}\\s]/gu);\n if (!filteredChars) {\n return initials;\n }\n const filtered = filteredChars.join(\"\").trim();\n const idx = filtered.lastIndexOf(\" \");\n initials = String.fromCodePoint(filtered.codePointAt(0));\n if (idx !== -1) {\n initials = initials.concat(String.fromCodePoint(filtered.codePointAt(idx + 1)));\n }\n }\n return initials.toLocaleUpperCase();\n },\n /**\n * Contacts menu actions for the hover card.\n * `null` until actions are loaded so the card can fall back to profile API actions.\n *\n * @return {Array|null}\n */\n hoverCardActions() {\n if (this.isLegacy35 || !this.isMenuLoaded) {\n return null;\n }\n return this.menu.length > 0 ? this.menu : null;\n },\n /**\n * Best available display name for the hover card (prop or contacts menu).\n *\n * @return {string|undefined}\n */\n hoverCardDisplayName() {\n return this.displayName || this.contactsMenuData?.fullName || void 0;\n },\n /**\n * Status already known by this avatar so the hover card does not fetch it again.\n * Omitted while status is still the empty default (fetch in progress).\n *\n * @return {object|undefined}\n */\n hoverCardPreloadedUserStatus() {\n if (this.preloadedUserStatus) {\n return this.userStatus;\n }\n if (this.userStatus.status || this.userStatus.icon || this.userStatus.message) {\n return this.userStatus;\n }\n return void 0;\n },\n menu() {\n if (this.isLegacy35) {\n return this.legacyMenu;\n }\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n id: item.id,\n appId: item.appId,\n text: item.title,\n href: route ? void 0 : item.hyperlink,\n to: route || void 0,\n icon: item.icon\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n id: action.id,\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData),\n onClick: () => action.callback(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n return actions;\n },\n /**\n * Legacy NcActions menu entries for Nextcloud 32–34.\n *\n * @return {Array}\n */\n legacyMenu() {\n const actions = this.contactsMenuActions.map((item) => {\n const route = getRoute(this.$router, item.hyperlink);\n return {\n ncActionComponent: route ? NcActionRouter : NcActionLink,\n ncActionComponentProps: route ? {\n to: route,\n icon: item.icon\n } : {\n href: item.hyperlink,\n icon: item.icon\n },\n text: item.title\n };\n });\n for (const action of getEnabledContactsMenuActions(this.contactsMenuData)) {\n try {\n actions.push({\n ncActionComponent: NcActionButton,\n ncActionComponentProps: {\n onClick: () => action.callback(this.contactsMenuData)\n },\n text: action.displayName(this.contactsMenuData),\n iconSvg: action.iconSvg(this.contactsMenuData)\n });\n } catch (error) {\n logger.error(`Failed to render ContactsMenu action ${action.id}`, {\n error,\n action\n });\n }\n }\n function escape(html) {\n const text = document.createTextNode(html);\n const p = document.createElement(\"p\");\n p.appendChild(text);\n return p.innerHTML;\n }\n if (!this.hideStatus && (this.userStatus.icon || this.userStatus.message)) {\n const emojiIcon = `<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\">\n\t\t\t\t\t<text x=\"50%\" y=\"50%\" text-anchor=\"middle\" style=\"dominant-baseline: central; font-size: 85%\">${escape(this.userStatus.icon)}</text>\n\t\t\t\t</svg>`;\n return [{\n ncActionComponent: NcActionText,\n ncActionComponentProps: {},\n iconSvg: this.userStatus.icon ? emojiIcon : void 0,\n text: `${this.userStatus.message}`\n }].concat(actions);\n }\n return actions;\n }\n },\n watch: {\n url() {\n this.userDoesNotExist = false;\n this.loadAvatarUrl();\n },\n user() {\n this.userDoesNotExist = false;\n this.isMenuLoaded = false;\n this.loadAvatarUrl();\n },\n version: \"loadAvatarUrl\",\n preloadedUserStatus(status) {\n if (status) {\n this.setUserStatus(status);\n }\n },\n contactsMenuOpenState(shown) {\n if (this.isLegacy35) {\n return;\n }\n if (shown) {\n this.debouncedFetchContactsMenu();\n } else {\n this.debouncedFetchContactsMenu.clear();\n }\n }\n },\n created() {\n this.debouncedFetchContactsMenu = debounce(this.fetchContactsMenu, 300);\n },\n mounted() {\n this.loadAvatarUrl();\n subscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n subscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n if (!this.hideStatus && this.user && !this.isNoUser) {\n if (!this.preloadedUserStatus) {\n this.fetchUserStatus(this.user);\n } else {\n this.setUserStatus(this.preloadedUserStatus);\n }\n subscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n } else if (!this.hideStatus && this.preloadedUserStatus) {\n this.setUserStatus(this.preloadedUserStatus);\n }\n },\n beforeUnmount() {\n this.debouncedFetchContactsMenu.clear();\n unsubscribe(\"settings:avatar:updated\", this.loadAvatarUrl);\n unsubscribe(\"settings:display-name:updated\", this.loadAvatarUrl);\n unsubscribe(\"user_status:status.updated\", this.handleUserStatusUpdated);\n },\n methods: {\n t,\n handleUserStatusUpdated(state) {\n if (this.user === state.userId) {\n this.userStatus = {\n status: state.status,\n icon: state.icon,\n message: state.message\n };\n this.hasStatus = state.status !== null;\n }\n },\n /**\n * Toggle the legacy popover menu on click or enter\n *\n * @param {KeyboardEvent|MouseEvent} event the UI event\n */\n async toggleMenu(event) {\n if (event.type === \"keydown\" && event.key !== \"Enter\") {\n return;\n }\n if (!this.contactsMenuOpenState) {\n await this.fetchContactsMenu();\n }\n this.contactsMenuOpenState = !this.contactsMenuOpenState;\n },\n closeMenu() {\n if (!this.isLegacy35) {\n return;\n }\n this.contactsMenuOpenState = false;\n },\n async fetchContactsMenu() {\n this.contactsMenuLoading = true;\n try {\n const user = encodeURIComponent(this.user);\n const { data } = await axios.post(generateUrl(\"contactsmenu/findOne\"), `shareType=0&shareWith=${user}`);\n this.contactsMenuData = data;\n this.contactsMenuActions = data.topAction ? [data.topAction].concat(data.actions) : data.actions;\n } catch {\n this.contactsMenuData = {};\n this.contactsMenuActions = [];\n if (this.isLegacy35) {\n this.contactsMenuOpenState = false;\n }\n }\n this.contactsMenuLoading = false;\n this.isMenuLoaded = true;\n },\n /**\n * Handle avatar loading if user or url defined\n */\n loadAvatarUrl() {\n this.isAvatarLoaded = false;\n if (!this.isUrlDefined && (!this.isUserDefined || this.isNoUser || this.iconClass || this.$slots.icon)) {\n this.isAvatarLoaded = true;\n this.userDoesNotExist = true;\n return;\n }\n if (this.isUrlDefined) {\n this.updateImageIfValid(this.url);\n return;\n }\n if (this.size <= 64) {\n const avatarUrl = this.avatarUrlGenerator(this.user, 64);\n const srcset = [\n `${avatarUrl} ${density(64 * SMALL_VARIANT_UPSCALE / this.size)}x`,\n `${this.avatarUrlGenerator(this.user, 512)} ${density(512 / this.size)}x`\n ].join(\", \");\n this.updateImageIfValid(avatarUrl, srcset);\n } else {\n const avatarUrl = this.avatarUrlGenerator(this.user, 512);\n this.updateImageIfValid(avatarUrl);\n }\n },\n /**\n * Generate an avatar url from the server's avatar endpoint\n *\n * @param {string} user the user id\n * @param {number} size the desired size\n * @return {string}\n */\n avatarUrlGenerator(user, size) {\n const version = this.version ?? (user === getCurrentUser()?.uid ? window.oc_userconfig?.avatar?.version : void 0);\n return getAvatarUrl(user, {\n size,\n isDarkTheme: this.isDarkTheme,\n isGuest: this.isGuest,\n version\n });\n },\n /**\n * Check if the provided url is valid and update Avatar if so\n *\n * @param {string} url the avatar url\n * @param {Array} srcset the avatar srcset\n */\n updateImageIfValid(url, srcset = null) {\n const userHasAvatar = getUserHasAvatar(this.user);\n if (this.isUserDefined && typeof userHasAvatar === \"boolean\") {\n this.isAvatarLoaded = true;\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n if (userHasAvatar === false) {\n this.userDoesNotExist = true;\n }\n return;\n }\n const img = new Image();\n img.onload = () => {\n this.avatarUrlLoaded = url;\n if (srcset) {\n this.avatarSrcSetLoaded = srcset;\n }\n this.isAvatarLoaded = true;\n setUserHasAvatar(this.user, true);\n };\n img.onerror = (error) => {\n logger.debug(\"[NcAvatar] Invalid avatar url\", { error, url });\n this.avatarUrlLoaded = null;\n this.avatarSrcSetLoaded = null;\n this.userDoesNotExist = true;\n this.isAvatarLoaded = false;\n setUserHasAvatar(this.user, false);\n };\n if (srcset) {\n img.srcset = srcset;\n }\n img.src = url;\n }\n }\n};\nconst _hoisted_1 = [\"title\"];\nconst _hoisted_2 = [\"src\", \"srcset\"];\nconst _hoisted_3 = [\"aria-label\"];\nconst _hoisted_4 = {\n key: 2,\n class: \"avatardiv__user-status avatardiv__user-status--icon\"\n};\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_NcLoadingIcon = resolveComponent(\"NcLoadingIcon\");\n const _component_IconDotsHorizontal = resolveComponent(\"IconDotsHorizontal\");\n const _component_NcButton = resolveComponent(\"NcButton\");\n const _component_NcIconSvgWrapper = resolveComponent(\"NcIconSvgWrapper\");\n const _component_NcActions = resolveComponent(\"NcActions\");\n const _component_NcProfileHoverCard = resolveComponent(\"NcProfileHoverCard\");\n const _component_NcPopover = resolveComponent(\"NcPopover\");\n const _component_NcUserStatusIcon = resolveComponent(\"NcUserStatusIcon\");\n const _directive_click_outside = resolveDirective(\"click-outside\");\n return withDirectives((openBlock(), createElementBlock(\"span\", {\n class: normalizeClass([\"avatardiv popovermenu-wrapper\", {\n \"avatardiv--unknown\": $data.userDoesNotExist,\n \"avatardiv--with-menu\": $options.hasMenu,\n \"avatardiv--with-legacy-menu\": $options.hasMenu && $setup.isLegacy35,\n \"avatardiv--with-menu-loading\": $data.contactsMenuLoading\n }]),\n style: normalizeStyle($options.avatarStyle),\n title: $options.tooltip\n }, [\n renderSlot(_ctx.$slots, \"icon\", {}, () => [\n $props.iconClass ? (openBlock(), createElementBlock(\"span\", {\n key: 0,\n class: normalizeClass([$props.iconClass, \"avatar-class-icon\"])\n }, null, 2)) : $data.isAvatarLoaded && !$data.userDoesNotExist ? (openBlock(), createElementBlock(\"img\", {\n key: 1,\n src: $data.avatarUrlLoaded,\n srcset: $data.avatarSrcSetLoaded,\n alt: \"\"\n }, null, 8, _hoisted_2)) : createCommentVNode(\"\", true)\n ], true),\n $setup.isLegacy35 && $options.hasMenu ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n $options.menu.length === 0 ? (openBlock(), createBlock(_component_NcButton, {\n key: 0,\n \"aria-label\": $options.avatarAriaLabel,\n class: \"action-item action-item__menutoggle\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, {\n icon: withCtx(() => [\n $data.contactsMenuLoading ? (openBlock(), createBlock(_component_NcLoadingIcon, { key: 0 })) : (openBlock(), createBlock(_component_IconDotsHorizontal, {\n key: 1,\n size: 20\n }))\n ]),\n _: 1\n }, 8, [\"aria-label\", \"onClick\"])) : (openBlock(), createBlock(_component_NcActions, {\n key: 1,\n open: $data.contactsMenuOpenState,\n \"onUpdate:open\": _cache[0] || (_cache[0] = ($event) => $data.contactsMenuOpenState = $event),\n \"aria-label\": $options.avatarAriaLabel,\n container: $props.menuContainer,\n forceMenu: \"\",\n manualOpen: \"\",\n variant: \"tertiary-no-background\",\n onClick: $options.toggleMenu\n }, createSlots({\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList($options.menu, (item, key) => {\n return openBlock(), createBlock(resolveDynamicComponent(item.ncActionComponent), mergeProps({ key }, { ref_for: true }, item.ncActionComponentProps), createSlots({\n default: withCtx(() => [\n createTextVNode(\" \" + toDisplayString(item.text), 1)\n ]),\n _: 2\n }, [\n item.iconSvg ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcIconSvgWrapper, {\n svg: item.iconSvg\n }, null, 8, [\"svg\"])\n ]),\n key: \"0\"\n } : void 0\n ]), 1040);\n }), 128))\n ]),\n _: 2\n }, [\n $data.contactsMenuLoading ? {\n name: \"icon\",\n fn: withCtx(() => [\n createVNode(_component_NcLoadingIcon)\n ]),\n key: \"0\"\n } : void 0\n ]), 1032, [\"open\", \"aria-label\", \"container\", \"onClick\"]))\n ], 64)) : $options.hasMenu ? (openBlock(), createBlock(_component_NcPopover, {\n key: 1,\n shown: $data.contactsMenuOpenState,\n \"onUpdate:shown\": _cache[1] || (_cache[1] = ($event) => $data.contactsMenuOpenState = $event),\n class: \"avatar-profile-popover\",\n container: $props.menuContainer,\n delay: { show: 400, hide: 0 },\n popoverTriggers: [\"hover\"],\n triggers: [\"hover\", \"focus\", \"click\"],\n noFocusTrap: \"\",\n popupRole: \"dialog\"\n }, {\n trigger: withCtx(({ attrs }) => [\n createElementVNode(\"span\", mergeProps({ class: \"avatar-profile-popover__trigger\" }, attrs, {\n role: \"button\",\n tabindex: \"0\",\n \"aria-label\": $options.avatarAriaLabel\n }), null, 16, _hoisted_3)\n ]),\n default: withCtx(() => [\n createVNode(_component_NcProfileHoverCard, {\n user: $props.user,\n displayName: $options.hoverCardDisplayName,\n open: $data.contactsMenuOpenState,\n actions: $options.hoverCardActions,\n actionsLoading: $data.contactsMenuLoading,\n preloadedUserStatus: $options.hoverCardPreloadedUserStatus\n }, null, 8, [\"user\", \"displayName\", \"open\", \"actions\", \"actionsLoading\", \"preloadedUserStatus\"])\n ]),\n _: 1\n }, 8, [\"shown\", \"container\"])) : createCommentVNode(\"\", true),\n $options.showUserStatusIconOnAvatar ? (openBlock(), createElementBlock(\"span\", _hoisted_4, toDisplayString(_ctx.userStatus.icon), 1)) : $options.canDisplayUserStatus ? (openBlock(), createBlock(_component_NcUserStatusIcon, {\n key: 3,\n class: \"avatardiv__user-status\",\n status: _ctx.userStatus.status,\n \"aria-hidden\": String($options.hasMenu)\n }, null, 8, [\"status\", \"aria-hidden\"])) : createCommentVNode(\"\", true),\n $options.showInitials ? (openBlock(), createElementBlock(\"span\", {\n key: 4,\n style: normalizeStyle($options.initialsWrapperStyle),\n class: \"avatardiv__initials-wrapper\"\n }, [\n createElementVNode(\"span\", {\n style: normalizeStyle($options.initialsStyle),\n class: \"avatardiv__initials\"\n }, toDisplayString($options.initials), 5)\n ], 4)) : createCommentVNode(\"\", true)\n ], 14, _hoisted_1)), [\n [_directive_click_outside, $options.closeMenu]\n ]);\n}\nconst NcAvatar = /* @__PURE__ */ _export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__scopeId\", \"data-v-b005f1da\"]]);\nexport {\n NcAvatar as N,\n userStatus as u\n};\n//# sourceMappingURL=NcAvatar.mjs.map\n"],"file":"NcAvatar-CTVtF9rr.chunk.mjs"} |