{"version":3,"file":"k-center-message-86bf7fa3.js","sources":["../../../app/javascript/src/shared/vue_components/common/k-empty.vue","../../../app/javascript/src/shared/vue_components/common/k_image/product-image.vue","../../../app/javascript/src/shared/vue_components/common/k_image/user-avatar.vue","../../../app/javascript/src/shared/vue_components/common/k_image/kol-avatar.vue","../../../app/javascript/src/shared/vue_components/common/k_image/id-photo.vue","../../../app/javascript/src/shared/vue_components/common/k-image.vue","../../../node_modules/vue-demi/lib/index.mjs","../../../node_modules/@vueuse/shared/index.mjs","../../../app/javascript/src/shared/vue_components/common/k_cards_container/kolcenter-product-container.vue","../../../app/javascript/src/shared/vue_components/common/k-cards-container.vue","../../../app/javascript/src/shared/vue_components/common/k_card/kol-card-v1.vue","../../../app/javascript/src/shared/vue_components/common/k-card.vue","../../../node_modules/@chenfengyuan/vue-countdown/dist/vue-countdown.esm.js","../../../app/javascript/src/shared/vue_components/common/k-datetime-range-view.vue","../../../app/javascript/src/shared/vue_components/promoter_campaign_period/common/sales-time-range-view.vue","../../../node_modules/@vueuse/core/index.cjs","../../../app/javascript/src/shared/vue_components/common/k-address-view.vue","../../../app/javascript/src/shared/vue_components/promoter_campaign_sample_shipment/common/item-list.vue","../../../app/javascript/src/shared/vue_components/promoter_campaign/common/registration-time-range-view.vue"],"sourcesContent":["\n.k-empty\n .content.has-text-grey\n .icon\n i.fa.fa-times.fa-2x\n p {{ content || messageLocaleText('there_is_no_data_for_now') }}\n\n\n\n\n\n","\nb-image.k-image-prodct-image(\n :style=\"containerStyle\"\n :src=\"src\"\n :alt=\"alt\"\n :ratio=\"config.ratio\"\n :rounded=\"config.rounded\"\n)\n\n\n\n\n","\nb-image.k-image-user-avatar(\n :style=\"`--dimension: ${dimension}`\"\n :src=\"src\"\n :alt=\"alt\"\n :ratio=\"config.ratio\"\n :rounded=\"config.rounded\"\n)\n\n\n\n\n","\n.k-image-kol-avatar(\n :style=\"`--dimension: ${dimension}; --border-color: ${config.imageBorderColor}; --level-dimension: ${config.levelDimension}`\"\n @click=\"clickHandler\"\n)\n img.avatar-image(\n :src=\"src\"\n :alt=\"alt\"\n )\n .level-image-wrapper(v-if=\"config.levelImageSrc\")\n img.image(:src=\"config.levelImageSrc\")\n\n\n\n\n","\n.k-image-id-photo(\n :style=\"`--dimension: ${dimension};`\"\n @click=\"clickHandler\"\n)\n img.image(:src=\"src\")\n\n\n\n\n","\n.k-image(\n :is=\"component\"\n :dimension=\"dimension\"\n :src=\"src\"\n :alt=\"alt\"\n :options=\"options\"\n @click=\"clickHandler\"\n)\n\n\n","import Vue from 'vue'\nimport { getCurrentInstance } from 'vue'\n\nvar isVue2 = true\nvar isVue3 = false\nvar Vue2 = Vue\nvar warn = Vue.util.warn\n\nfunction install() {}\n\n// createApp polyfill\nexport function createApp(rootComponent, rootProps) {\n var vm\n var provide = {}\n var app = {\n config: Vue.config,\n use: Vue.use.bind(Vue),\n mixin: Vue.mixin.bind(Vue),\n component: Vue.component.bind(Vue),\n provide: function (key, value) {\n provide[key] = value\n return this\n },\n directive: function (name, dir) {\n if (dir) {\n Vue.directive(name, dir)\n return app\n } else {\n return Vue.directive(name)\n }\n },\n mount: function (el, hydrating) {\n if (!vm) {\n vm = new Vue(Object.assign({ propsData: rootProps }, rootComponent, { provide: Object.assign(provide, rootComponent.provide) }))\n vm.$mount(el, hydrating)\n return vm\n } else {\n return vm\n }\n },\n unmount: function () {\n if (vm) {\n vm.$destroy()\n vm = undefined\n }\n },\n }\n return app\n}\n\nexport {\n Vue,\n Vue2,\n isVue2,\n isVue3,\n install,\n warn\n}\n\n// Vue 3 components mock\nfunction createMockComponent(name) {\n return {\n setup() {\n throw new Error('[vue-demi] ' + name + ' is not supported in Vue 2. It\\'s provided to avoid compiler errors.')\n }\n }\n}\nexport var Fragment = /*#__PURE__*/ createMockComponent('Fragment')\nexport var Transition = /*#__PURE__*/ createMockComponent('Transition')\nexport var TransitionGroup = /*#__PURE__*/ createMockComponent('TransitionGroup')\nexport var Teleport = /*#__PURE__*/ createMockComponent('Teleport')\nexport var Suspense = /*#__PURE__*/ createMockComponent('Suspense')\nexport var KeepAlive = /*#__PURE__*/ createMockComponent('KeepAlive')\n\nexport * from 'vue'\n\n// Not implemented https://github.com/vuejs/core/pull/8111, falls back to getCurrentInstance()\nexport function hasInjectionContext() {\n return !!getCurrentInstance()\n}\n","import { shallowRef, watchEffect, readonly, ref, watch, customRef, getCurrentScope, onScopeDispose, effectScope, getCurrentInstance, provide, inject, isVue3, version, isRef, unref, computed, reactive, toRefs as toRefs$1, toRef as toRef$1, isVue2, set as set$1, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nfunction computedEager(fn, options) {\n var _a;\n const result = shallowRef();\n watchEffect(() => {\n result.value = fn();\n }, {\n ...options,\n flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n });\n return readonly(result);\n}\n\nfunction computedWithControl(source, fn) {\n let v = void 0;\n let track;\n let trigger;\n const dirty = ref(true);\n const update = () => {\n dirty.value = true;\n trigger();\n };\n watch(source, update, { flush: \"sync\" });\n const get = typeof fn === \"function\" ? fn : fn.get;\n const set = typeof fn === \"function\" ? void 0 : fn.set;\n const result = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n if (dirty.value) {\n v = get(v);\n dirty.value = false;\n }\n track();\n return v;\n },\n set(v2) {\n set == null ? void 0 : set(v2);\n }\n };\n });\n if (Object.isExtensible(result))\n result.trigger = update;\n return result;\n}\n\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\n\nfunction createEventHook() {\n const fns = /* @__PURE__ */ new Set();\n const off = (fn) => {\n fns.delete(fn);\n };\n const on = (fn) => {\n fns.add(fn);\n const offFn = () => off(fn);\n tryOnScopeDispose(offFn);\n return {\n off: offFn\n };\n };\n const trigger = (...args) => {\n return Promise.all(Array.from(fns).map((fn) => fn(...args)));\n };\n return {\n on,\n off,\n trigger\n };\n}\n\nfunction createGlobalState(stateFactory) {\n let initialized = false;\n let state;\n const scope = effectScope(true);\n return (...args) => {\n if (!initialized) {\n state = scope.run(() => stateFactory(...args));\n initialized = true;\n }\n return state;\n };\n}\n\nconst localProvidedStateMap = /* @__PURE__ */ new WeakMap();\n\nconst provideLocal = (key, value) => {\n var _a;\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"provideLocal must be called in setup\");\n if (!localProvidedStateMap.has(instance))\n localProvidedStateMap.set(instance, /* @__PURE__ */ Object.create(null));\n const localProvidedState = localProvidedStateMap.get(instance);\n localProvidedState[key] = value;\n provide(key, value);\n};\n\nconst injectLocal = (...args) => {\n var _a;\n const key = args[0];\n const instance = (_a = getCurrentInstance()) == null ? void 0 : _a.proxy;\n if (instance == null)\n throw new Error(\"injectLocal must be called in setup\");\n if (localProvidedStateMap.has(instance) && key in localProvidedStateMap.get(instance))\n return localProvidedStateMap.get(instance)[key];\n return inject(...args);\n};\n\nfunction createInjectionState(composable, options) {\n const key = (options == null ? void 0 : options.injectionKey) || Symbol(composable.name || \"InjectionState\");\n const defaultValue = options == null ? void 0 : options.defaultValue;\n const useProvidingState = (...args) => {\n const state = composable(...args);\n provideLocal(key, state);\n return state;\n };\n const useInjectedState = () => injectLocal(key, defaultValue);\n return [useProvidingState, useInjectedState];\n}\n\nfunction createSharedComposable(composable) {\n let subscribers = 0;\n let state;\n let scope;\n const dispose = () => {\n subscribers -= 1;\n if (scope && subscribers <= 0) {\n scope.stop();\n state = void 0;\n scope = void 0;\n }\n };\n return (...args) => {\n subscribers += 1;\n if (!state) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\n\nfunction extendRef(ref, extend, { enumerable = false, unwrap = true } = {}) {\n if (!isVue3 && !version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] extendRef only works in Vue 2.7 or above.\");\n return;\n }\n for (const [key, value] of Object.entries(extend)) {\n if (key === \"value\")\n continue;\n if (isRef(value) && unwrap) {\n Object.defineProperty(ref, key, {\n get() {\n return value.value;\n },\n set(v) {\n value.value = v;\n },\n enumerable\n });\n } else {\n Object.defineProperty(ref, key, { value, enumerable });\n }\n }\n return ref;\n}\n\nfunction get(obj, key) {\n if (key == null)\n return unref(obj);\n return unref(obj)[key];\n}\n\nfunction isDefined(v) {\n return unref(v) != null;\n}\n\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\n\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst resolveUnref = toValue;\n\nfunction reactify(fn, options) {\n const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : toValue;\n return function(...args) {\n return computed(() => fn.apply(this, args.map((i) => unrefFn(i))));\n };\n}\n\nfunction reactifyObject(obj, optionsOrKeys = {}) {\n let keys = [];\n let options;\n if (Array.isArray(optionsOrKeys)) {\n keys = optionsOrKeys;\n } else {\n options = optionsOrKeys;\n const { includeOwnProperties = true } = optionsOrKeys;\n keys.push(...Object.keys(obj));\n if (includeOwnProperties)\n keys.push(...Object.getOwnPropertyNames(obj));\n }\n return Object.fromEntries(\n keys.map((key) => {\n const value = obj[key];\n return [\n key,\n typeof value === \"function\" ? reactify(value.bind(obj), options) : value\n ];\n })\n );\n}\n\nfunction toReactive(objectRef) {\n if (!isRef(objectRef))\n return reactive(objectRef);\n const proxy = new Proxy({}, {\n get(_, p, receiver) {\n return unref(Reflect.get(objectRef.value, p, receiver));\n },\n set(_, p, value) {\n if (isRef(objectRef.value[p]) && !isRef(value))\n objectRef.value[p].value = value;\n else\n objectRef.value[p] = value;\n return true;\n },\n deleteProperty(_, p) {\n return Reflect.deleteProperty(objectRef.value, p);\n },\n has(_, p) {\n return Reflect.has(objectRef.value, p);\n },\n ownKeys() {\n return Object.keys(objectRef.value);\n },\n getOwnPropertyDescriptor() {\n return {\n enumerable: true,\n configurable: true\n };\n }\n });\n return reactive(proxy);\n}\n\nfunction reactiveComputed(fn) {\n return toReactive(computed(fn));\n}\n\nfunction reactiveOmit(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => !predicate(toValue(v), k))) : Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\nconst isWorker = typeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst isDef = (val) => typeof val !== \"undefined\";\nconst notNullish = (val) => val != null;\nconst assert = (condition, ...infos) => {\n if (!condition)\n console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst now = () => Date.now();\nconst timestamp = () => +Date.now();\nconst clamp = (n, min, max) => Math.min(max, Math.max(min, n));\nconst noop = () => {\n};\nconst rand = (min, max) => {\n min = Math.ceil(min);\n max = Math.floor(max);\n return Math.floor(Math.random() * (max - min + 1)) + min;\n};\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\n\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\n\nconst directiveHooks = {\n mounted: isVue3 ? \"mounted\" : \"inserted\",\n updated: isVue3 ? \"updated\" : \"componentUpdated\",\n unmounted: isVue3 ? \"unmounted\" : \"unbind\"\n};\n\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst hyphenateRE = /\\B([A-Z])/g;\nconst hyphenate = cacheStringFunction((str) => str.replace(hyphenateRE, \"-$1\").toLowerCase());\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\n\nfunction promiseTimeout(ms, throwOnTimeout = false, reason = \"Timeout\") {\n return new Promise((resolve, reject) => {\n if (throwOnTimeout)\n setTimeout(() => reject(reason), ms);\n else\n setTimeout(resolve, ms);\n });\n}\nfunction identity(arg) {\n return arg;\n}\nfunction createSingletonPromise(fn) {\n let _promise;\n function wrapper() {\n if (!_promise)\n _promise = fn();\n return _promise;\n }\n wrapper.reset = async () => {\n const _prev = _promise;\n _promise = void 0;\n if (_prev)\n await _prev;\n };\n return wrapper;\n}\nfunction invoke(fn) {\n return fn();\n}\nfunction containsProp(obj, ...props) {\n return props.some((k) => k in obj);\n}\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction objectPick(obj, keys, omitUndefined = false) {\n return keys.reduce((n, k) => {\n if (k in obj) {\n if (!omitUndefined || obj[k] !== void 0)\n n[k] = obj[k];\n }\n return n;\n }, {});\n}\nfunction objectOmit(obj, keys, omitUndefined = false) {\n return Object.fromEntries(Object.entries(obj).filter(([key, value]) => {\n return (!omitUndefined || value !== void 0) && !keys.includes(key);\n }));\n}\nfunction objectEntries(obj) {\n return Object.entries(obj);\n}\nfunction getLifeCycleTarget(target) {\n return target || getCurrentInstance();\n}\n\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nconst resolveRef = toRef;\n\nfunction reactivePick(obj, ...keys) {\n const flatKeys = keys.flat();\n const predicate = flatKeys[0];\n return reactiveComputed(() => typeof predicate === \"function\" ? Object.fromEntries(Object.entries(toRefs$1(obj)).filter(([k, v]) => predicate(toValue(v), k))) : Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n return customRef((track, trigger) => {\n let value = toValue(defaultValue);\n let timer;\n const resetAfter = () => setTimeout(() => {\n value = toValue(defaultValue);\n trigger();\n }, toValue(afterMs));\n tryOnScopeDispose(() => {\n clearTimeout(timer);\n });\n return {\n get() {\n track();\n return value;\n },\n set(newValue) {\n value = newValue;\n trigger();\n clearTimeout(timer);\n timer = resetAfter();\n }\n };\n });\n}\n\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n const debounced = ref(value.value);\n const updater = useDebounceFn(() => {\n debounced.value = value.value;\n }, ms, options);\n watch(value, () => updater());\n return debounced;\n}\n\nfunction refDefault(source, defaultValue) {\n return computed({\n get() {\n var _a;\n return (_a = source.value) != null ? _a : defaultValue;\n },\n set(value) {\n source.value = value;\n }\n });\n}\n\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\n\nfunction refThrottled(value, delay = 200, trailing = true, leading = true) {\n if (delay <= 0)\n return value;\n const throttled = ref(value.value);\n const updater = useThrottleFn(() => {\n throttled.value = value.value;\n }, delay, trailing, leading);\n watch(value, () => updater());\n return throttled;\n}\n\nfunction refWithControl(initial, options = {}) {\n let source = initial;\n let track;\n let trigger;\n const ref = customRef((_track, _trigger) => {\n track = _track;\n trigger = _trigger;\n return {\n get() {\n return get();\n },\n set(v) {\n set(v);\n }\n };\n });\n function get(tracking = true) {\n if (tracking)\n track();\n return source;\n }\n function set(value, triggering = true) {\n var _a, _b;\n if (value === source)\n return;\n const old = source;\n if (((_a = options.onBeforeChange) == null ? void 0 : _a.call(options, value, old)) === false)\n return;\n source = value;\n (_b = options.onChanged) == null ? void 0 : _b.call(options, value, old);\n if (triggering)\n trigger();\n }\n const untrackedGet = () => get(false);\n const silentSet = (v) => set(v, false);\n const peek = () => get(false);\n const lay = (v) => set(v, false);\n return extendRef(\n ref,\n {\n get,\n set,\n untrackedGet,\n silentSet,\n peek,\n lay\n },\n { enumerable: true }\n );\n}\nconst controlledRef = refWithControl;\n\nfunction set(...args) {\n if (args.length === 2) {\n const [ref, value] = args;\n ref.value = value;\n }\n if (args.length === 3) {\n if (isVue2) {\n set$1(...args);\n } else {\n const [target, key, value] = args;\n target[key] = value;\n }\n }\n}\n\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\n\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\n\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\n\nfunction syncRefs(source, targets, options = {}) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true\n } = options;\n if (!Array.isArray(targets))\n targets = [targets];\n return watch(\n source,\n (newValue) => targets.forEach((target) => target.value = newValue),\n { flush, deep, immediate }\n );\n}\n\nfunction toRefs(objectRef, options = {}) {\n if (!isRef(objectRef))\n return toRefs$1(objectRef);\n const result = Array.isArray(objectRef.value) ? Array.from({ length: objectRef.value.length }) : {};\n for (const key in objectRef.value) {\n result[key] = customRef(() => ({\n get() {\n return objectRef.value[key];\n },\n set(v) {\n var _a;\n const replaceRef = (_a = toValue(options.replaceRef)) != null ? _a : true;\n if (replaceRef) {\n if (Array.isArray(objectRef.value)) {\n const copy = [...objectRef.value];\n copy[key] = v;\n objectRef.value = copy;\n } else {\n const newObject = { ...objectRef.value, [key]: v };\n Object.setPrototypeOf(newObject, Object.getPrototypeOf(objectRef.value));\n objectRef.value = newObject;\n }\n } else {\n objectRef.value[key] = v;\n }\n }\n }));\n }\n return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeMount(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onBeforeUnmount(fn, target);\n}\n\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn, target) {\n const instance = getLifeCycleTarget(target);\n if (instance)\n onUnmounted(fn, target);\n}\n\nfunction createUntil(r, isNot = false) {\n function toMatch(condition, { flush = \"sync\", deep = false, timeout, throwOnTimeout } = {}) {\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n r,\n (v) => {\n if (condition(v) !== isNot) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => stop == null ? void 0 : stop())\n );\n }\n return Promise.race(promises);\n }\n function toBe(value, options) {\n if (!isRef(value))\n return toMatch((v) => v === value, options);\n const { flush = \"sync\", deep = false, timeout, throwOnTimeout } = options != null ? options : {};\n let stop = null;\n const watcher = new Promise((resolve) => {\n stop = watch(\n [r, value],\n ([v1, v2]) => {\n if (isNot !== (v1 === v2)) {\n if (stop)\n stop();\n else\n nextTick(() => stop == null ? void 0 : stop());\n resolve(v1);\n }\n },\n {\n flush,\n deep,\n immediate: true\n }\n );\n });\n const promises = [watcher];\n if (timeout != null) {\n promises.push(\n promiseTimeout(timeout, throwOnTimeout).then(() => toValue(r)).finally(() => {\n stop == null ? void 0 : stop();\n return toValue(r);\n })\n );\n }\n return Promise.race(promises);\n }\n function toBeTruthy(options) {\n return toMatch((v) => Boolean(v), options);\n }\n function toBeNull(options) {\n return toBe(null, options);\n }\n function toBeUndefined(options) {\n return toBe(void 0, options);\n }\n function toBeNaN(options) {\n return toMatch(Number.isNaN, options);\n }\n function toContains(value, options) {\n return toMatch((v) => {\n const array = Array.from(v);\n return array.includes(value) || array.includes(toValue(value));\n }, options);\n }\n function changed(options) {\n return changedTimes(1, options);\n }\n function changedTimes(n = 1, options) {\n let count = -1;\n return toMatch(() => {\n count += 1;\n return count >= n;\n }, options);\n }\n if (Array.isArray(toValue(r))) {\n const instance = {\n toMatch,\n toContains,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n } else {\n const instance = {\n toMatch,\n toBe,\n toBeTruthy,\n toBeNull,\n toBeNaN,\n toBeUndefined,\n changed,\n changedTimes,\n get not() {\n return createUntil(r, !isNot);\n }\n };\n return instance;\n }\n}\nfunction until(r) {\n return createUntil(r);\n}\n\nfunction defaultComparator(value, othVal) {\n return value === othVal;\n}\nfunction useArrayDifference(...args) {\n var _a;\n const list = args[0];\n const values = args[1];\n let compareFn = (_a = args[2]) != null ? _a : defaultComparator;\n if (typeof compareFn === \"string\") {\n const key = compareFn;\n compareFn = (value, othVal) => value[key] === othVal[key];\n }\n return computed(() => toValue(list).filter((x) => toValue(values).findIndex((y) => compareFn(x, y)) === -1));\n}\n\nfunction useArrayEvery(list, fn) {\n return computed(() => toValue(list).every((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n return computed(() => toValue(\n toValue(list).find((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction useArrayFindIndex(list, fn) {\n return computed(() => toValue(list).findIndex((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction findLast(arr, cb) {\n let index = arr.length;\n while (index-- > 0) {\n if (cb(arr[index], index, arr))\n return arr[index];\n }\n return void 0;\n}\nfunction useArrayFindLast(list, fn) {\n return computed(() => toValue(\n !Array.prototype.findLast ? findLast(toValue(list), (element, index, array) => fn(toValue(element), index, array)) : toValue(list).findLast((element, index, array) => fn(toValue(element), index, array))\n ));\n}\n\nfunction isArrayIncludesOptions(obj) {\n return isObject(obj) && containsProp(obj, \"formIndex\", \"comparator\");\n}\nfunction useArrayIncludes(...args) {\n var _a;\n const list = args[0];\n const value = args[1];\n let comparator = args[2];\n let formIndex = 0;\n if (isArrayIncludesOptions(comparator)) {\n formIndex = (_a = comparator.fromIndex) != null ? _a : 0;\n comparator = comparator.comparator;\n }\n if (typeof comparator === \"string\") {\n const key = comparator;\n comparator = (element, value2) => element[key] === toValue(value2);\n }\n comparator = comparator != null ? comparator : (element, value2) => element === toValue(value2);\n return computed(() => toValue(list).slice(formIndex).some((element, index, array) => comparator(\n toValue(element),\n toValue(value),\n index,\n toValue(array)\n )));\n}\n\nfunction useArrayJoin(list, separator) {\n return computed(() => toValue(list).map((i) => toValue(i)).join(toValue(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n return computed(() => toValue(list).map((i) => toValue(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n const reduceCallback = (sum, value, index) => reducer(toValue(sum), toValue(value), index);\n return computed(() => {\n const resolved = toValue(list);\n return args.length ? resolved.reduce(reduceCallback, toValue(args[0])) : resolved.reduce(reduceCallback);\n });\n}\n\nfunction useArraySome(list, fn) {\n return computed(() => toValue(list).some((element, index, array) => fn(toValue(element), index, array)));\n}\n\nfunction uniq(array) {\n return Array.from(new Set(array));\n}\nfunction uniqueElementsBy(array, fn) {\n return array.reduce((acc, v) => {\n if (!acc.some((x) => fn(v, x, array)))\n acc.push(v);\n return acc;\n }, []);\n}\nfunction useArrayUnique(list, compareFn) {\n return computed(() => {\n const resolvedList = toValue(list).map((element) => toValue(element));\n return compareFn ? uniqueElementsBy(resolvedList, compareFn) : uniq(resolvedList);\n });\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n let _initialValue = unref(initialValue);\n const count = ref(initialValue);\n const {\n max = Number.POSITIVE_INFINITY,\n min = Number.NEGATIVE_INFINITY\n } = options;\n const inc = (delta = 1) => count.value = Math.max(Math.min(max, count.value + delta), min);\n const dec = (delta = 1) => count.value = Math.min(Math.max(min, count.value - delta), max);\n const get = () => count.value;\n const set = (val) => count.value = Math.max(min, Math.min(max, val));\n const reset = (val = _initialValue) => {\n _initialValue = val;\n return set(val);\n };\n return { count, inc, dec, get, set, reset };\n}\n\nconst REGEX_PARSE = /^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[T\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/i;\nconst REGEX_FORMAT = /[YMDHhms]o|\\[([^\\]]+)\\]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a{1,2}|A{1,2}|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nfunction defaultMeridiem(hours, minutes, isLowercase, hasPeriod) {\n let m = hours < 12 ? \"AM\" : \"PM\";\n if (hasPeriod)\n m = m.split(\"\").reduce((acc, curr) => acc += `${curr}.`, \"\");\n return isLowercase ? m.toLowerCase() : m;\n}\nfunction formatOrdinal(num) {\n const suffixes = [\"th\", \"st\", \"nd\", \"rd\"];\n const v = num % 100;\n return num + (suffixes[(v - 20) % 10] || suffixes[v] || suffixes[0]);\n}\nfunction formatDate(date, formatStr, options = {}) {\n var _a;\n const years = date.getFullYear();\n const month = date.getMonth();\n const days = date.getDate();\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n const day = date.getDay();\n const meridiem = (_a = options.customMeridiem) != null ? _a : defaultMeridiem;\n const matches = {\n Yo: () => formatOrdinal(years),\n YY: () => String(years).slice(-2),\n YYYY: () => years,\n M: () => month + 1,\n Mo: () => formatOrdinal(month + 1),\n MM: () => `${month + 1}`.padStart(2, \"0\"),\n MMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"short\" }),\n MMMM: () => date.toLocaleDateString(toValue(options.locales), { month: \"long\" }),\n D: () => String(days),\n Do: () => formatOrdinal(days),\n DD: () => `${days}`.padStart(2, \"0\"),\n H: () => String(hours),\n Ho: () => formatOrdinal(hours),\n HH: () => `${hours}`.padStart(2, \"0\"),\n h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n ho: () => formatOrdinal(hours % 12 || 12),\n hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n m: () => String(minutes),\n mo: () => formatOrdinal(minutes),\n mm: () => `${minutes}`.padStart(2, \"0\"),\n s: () => String(seconds),\n so: () => formatOrdinal(seconds),\n ss: () => `${seconds}`.padStart(2, \"0\"),\n SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n d: () => day,\n dd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"narrow\" }),\n ddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"short\" }),\n dddd: () => date.toLocaleDateString(toValue(options.locales), { weekday: \"long\" }),\n A: () => meridiem(hours, minutes),\n AA: () => meridiem(hours, minutes, false, true),\n a: () => meridiem(hours, minutes, true),\n aa: () => meridiem(hours, minutes, true, true)\n };\n return formatStr.replace(REGEX_FORMAT, (match, $1) => {\n var _a2, _b;\n return (_b = $1 != null ? $1 : (_a2 = matches[match]) == null ? void 0 : _a2.call(matches)) != null ? _b : match;\n });\n}\nfunction normalizeDate(date) {\n if (date === null)\n return new Date(Number.NaN);\n if (date === void 0)\n return /* @__PURE__ */ new Date();\n if (date instanceof Date)\n return new Date(date);\n if (typeof date === \"string\" && !/Z$/i.test(date)) {\n const d = date.match(REGEX_PARSE);\n if (d) {\n const m = d[2] - 1 || 0;\n const ms = (d[7] || \"0\").substring(0, 3);\n return new Date(d[1], m, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, ms);\n }\n }\n return new Date(date);\n}\nfunction useDateFormat(date, formatStr = \"HH:mm:ss\", options = {}) {\n return computed(() => formatDate(normalizeDate(toValue(date)), toValue(formatStr), options));\n}\n\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useInterval(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n immediate = true,\n callback\n } = options;\n const counter = ref(0);\n const update = () => counter.value += 1;\n const reset = () => {\n counter.value = 0;\n };\n const controls = useIntervalFn(\n callback ? () => {\n update();\n callback(counter.value);\n } : update,\n interval,\n { immediate }\n );\n if (exposeControls) {\n return {\n counter,\n reset,\n ...controls\n };\n } else {\n return counter;\n }\n}\n\nfunction useLastChanged(source, options = {}) {\n var _a;\n const ms = ref((_a = options.initialValue) != null ? _a : null);\n watch(\n source,\n () => ms.value = timestamp(),\n options\n );\n return ms;\n}\n\nfunction useTimeoutFn(cb, interval, options = {}) {\n const {\n immediate = true\n } = options;\n const isPending = ref(false);\n let timer = null;\n function clear() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n }\n function stop() {\n isPending.value = false;\n clear();\n }\n function start(...args) {\n clear();\n isPending.value = true;\n timer = setTimeout(() => {\n isPending.value = false;\n timer = null;\n cb(...args);\n }, toValue(interval));\n }\n if (immediate) {\n isPending.value = true;\n if (isClient)\n start();\n }\n tryOnScopeDispose(stop);\n return {\n isPending: readonly(isPending),\n start,\n stop\n };\n}\n\nfunction useTimeout(interval = 1e3, options = {}) {\n const {\n controls: exposeControls = false,\n callback\n } = options;\n const controls = useTimeoutFn(\n callback != null ? callback : noop,\n interval,\n options\n );\n const ready = computed(() => !controls.isPending.value);\n if (exposeControls) {\n return {\n ready,\n ...controls\n };\n } else {\n return ready;\n }\n}\n\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\n\nfunction useToString(value) {\n return computed(() => `${toValue(value)}`);\n}\n\nfunction useToggle(initialValue = false, options = {}) {\n const {\n truthyValue = true,\n falsyValue = false\n } = options;\n const valueIsRef = isRef(initialValue);\n const _value = ref(initialValue);\n function toggle(value) {\n if (arguments.length) {\n _value.value = value;\n return _value.value;\n } else {\n const truthy = toValue(truthyValue);\n _value.value = _value.value === truthy ? toValue(falsyValue) : truthy;\n return _value.value;\n }\n }\n if (valueIsRef)\n return toggle;\n else\n return [_value, toggle];\n}\n\nfunction watchArray(source, cb, options) {\n let oldList = (options == null ? void 0 : options.immediate) ? [] : [...source instanceof Function ? source() : Array.isArray(source) ? source : toValue(source)];\n return watch(source, (newList, _, onCleanup) => {\n const oldListRemains = Array.from({ length: oldList.length });\n const added = [];\n for (const obj of newList) {\n let found = false;\n for (let i = 0; i < oldList.length; i++) {\n if (!oldListRemains[i] && obj === oldList[i]) {\n oldListRemains[i] = true;\n found = true;\n break;\n }\n }\n if (!found)\n added.push(obj);\n }\n const removed = oldList.filter((_2, i) => !oldListRemains[i]);\n cb(newList, oldList, added, removed, onCleanup);\n oldList = [...newList];\n }, options);\n}\n\nfunction watchAtMost(source, cb, options) {\n const {\n count,\n ...watchOptions\n } = options;\n const current = ref(0);\n const stop = watchWithFilter(\n source,\n (...args) => {\n current.value += 1;\n if (current.value >= toValue(count))\n nextTick(() => stop());\n cb(...args);\n },\n watchOptions\n );\n return { count: current, stop };\n}\n\nfunction watchDebounced(source, cb, options = {}) {\n const {\n debounce = 0,\n maxWait = void 0,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: debounceFilter(debounce, { maxWait })\n }\n );\n}\n\nfunction watchDeep(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n deep: true\n }\n );\n}\n\nfunction watchIgnorable(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n const filteredCb = createFilterWrapper(\n eventFilter,\n cb\n );\n let ignoreUpdates;\n let ignorePrevAsyncUpdates;\n let stop;\n if (watchOptions.flush === \"sync\") {\n const ignore = ref(false);\n ignorePrevAsyncUpdates = () => {\n };\n ignoreUpdates = (updater) => {\n ignore.value = true;\n updater();\n ignore.value = false;\n };\n stop = watch(\n source,\n (...args) => {\n if (!ignore.value)\n filteredCb(...args);\n },\n watchOptions\n );\n } else {\n const disposables = [];\n const ignoreCounter = ref(0);\n const syncCounter = ref(0);\n ignorePrevAsyncUpdates = () => {\n ignoreCounter.value = syncCounter.value;\n };\n disposables.push(\n watch(\n source,\n () => {\n syncCounter.value++;\n },\n { ...watchOptions, flush: \"sync\" }\n )\n );\n ignoreUpdates = (updater) => {\n const syncCounterPrev = syncCounter.value;\n updater();\n ignoreCounter.value += syncCounter.value - syncCounterPrev;\n };\n disposables.push(\n watch(\n source,\n (...args) => {\n const ignore = ignoreCounter.value > 0 && ignoreCounter.value === syncCounter.value;\n ignoreCounter.value = 0;\n syncCounter.value = 0;\n if (ignore)\n return;\n filteredCb(...args);\n },\n watchOptions\n )\n );\n stop = () => {\n disposables.forEach((fn) => fn());\n };\n }\n return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchImmediate(source, cb, options) {\n return watch(\n source,\n cb,\n {\n ...options,\n immediate: true\n }\n );\n}\n\nfunction watchOnce(source, cb, options) {\n const stop = watch(source, (...args) => {\n nextTick(() => stop());\n return cb(...args);\n }, options);\n return stop;\n}\n\nfunction watchThrottled(source, cb, options = {}) {\n const {\n throttle = 0,\n trailing = true,\n leading = true,\n ...watchOptions\n } = options;\n return watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter: throttleFilter(throttle, trailing, leading)\n }\n );\n}\n\nfunction watchTriggerable(source, cb, options = {}) {\n let cleanupFn;\n function onEffect() {\n if (!cleanupFn)\n return;\n const fn = cleanupFn;\n cleanupFn = void 0;\n fn();\n }\n function onCleanup(callback) {\n cleanupFn = callback;\n }\n const _cb = (value, oldValue) => {\n onEffect();\n return cb(value, oldValue, onCleanup);\n };\n const res = watchIgnorable(source, _cb, options);\n const { ignoreUpdates } = res;\n const trigger = () => {\n let res2;\n ignoreUpdates(() => {\n res2 = _cb(getWatchSources(source), getOldValue(source));\n });\n return res2;\n };\n return {\n ...res,\n trigger\n };\n}\nfunction getWatchSources(sources) {\n if (isReactive(sources))\n return sources;\n if (Array.isArray(sources))\n return sources.map((item) => toValue(item));\n return toValue(sources);\n}\nfunction getOldValue(source) {\n return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n const stop = watch(\n source,\n (v, ov, onInvalidate) => {\n if (v) {\n if (options == null ? void 0 : options.once)\n nextTick(() => stop());\n cb(v, ov, onInvalidate);\n }\n },\n {\n ...options,\n once: false\n }\n );\n return stop;\n}\n\nexport { assert, refAutoReset as autoResetRef, bypassFilter, camelize, clamp, computedEager, computedWithControl, containsProp, computedWithControl as controlledComputed, controlledRef, createEventHook, createFilterWrapper, createGlobalState, createInjectionState, reactify as createReactiveFn, createSharedComposable, createSingletonPromise, debounceFilter, refDebounced as debouncedRef, watchDebounced as debouncedWatch, directiveHooks, computedEager as eagerComputed, extendRef, formatDate, get, getLifeCycleTarget, hasOwn, hyphenate, identity, watchIgnorable as ignorableWatch, increaseWithUnit, injectLocal, invoke, isClient, isDef, isDefined, isIOS, isObject, isWorker, makeDestructurable, noop, normalizeDate, notNullish, now, objectEntries, objectOmit, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, provideLocal, rand, reactify, reactifyObject, reactiveComputed, reactiveOmit, reactivePick, refAutoReset, refDebounced, refDefault, refThrottled, refWithControl, resolveRef, resolveUnref, set, syncRef, syncRefs, throttleFilter, refThrottled as throttledRef, watchThrottled as throttledWatch, timestamp, toReactive, toRef, toRefs, toValue, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayDifference, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayFindLast, useArrayIncludes, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useArrayUnique, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchDeep, watchIgnorable, watchImmediate, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","\n.vc-k-cards-container-kolcenter-product-container(\n :style=\"`--max-card-width: ${config.maxCardWidth}`\"\n)\n .header-wrapper(v-if=\"$slots.header\")\n slot(name=\"header\")\n\n .cards-wrapper\n slot(name=\"body\")\n\n slot\n\n\n\n\n\n","\n.k-cards-container(\n :id=\"containerId\"\n :is=\"component\"\n :options=\"options\"\n)\n template(\n v-if=\"$slots.header\"\n #header\n )\n slot(name=\"header\")\n\n template(#body)\n slot(\n name=\"body\"\n :data=\"data\"\n )\n\n .loading-wrapper\n b-loading(\n :active=\"loading\"\n :is-full-page=\"false\"\n )\n\n\n\n\n\n","\n.vc-shared-common-k-card-kol-card-v1(\n :class=\"[options?.imageClickable ? 'image-clickable' : '']\"\n)\n .image-wrapper(@click=\"imageClickHandler\")\n slot(name=\"image-wrapper\")\n img.image(:src=\"DefaultKolnetImage\")\n .overlay\n .overlay-image-wrapper\n slot(name=\"overlay-image-wrapper\")\n img.image(:src=\"DefaultKolnetImage\")\n .image-info-wrapper\n slot(name=\"image-info-wrapper\")\n .info-wrapper\n slot(name=\"info-wrapper\")\n //- Below is example of info\n //- .item\n //- .item-image-wrapper\n //- img.image(:src=\"DefaultKolnetImage\")\n //- .item-info\n //- .title Item Title\n //- .note Item Note\n .footer-wrapper(v-if=\"$slots['footer-wrapper']\")\n slot(name=\"footer-wrapper\")\n\n\n\n\n\n","\n.k-card(\n :is=\"component\"\n :options=\"options\"\n @image-click=\"imageClickHandler\"\n)\n template(\n #header-wrapper\n v-if=\"$slots['header-wrapper']\"\n )\n slot(name=\"header-wrapper\")\n\n template(#image-wrapper)\n slot(name=\"image-wrapper\")\n\n template(\n #image-info-wrapper\n v-if=\"$slots['image-info-wrapper']\"\n )\n slot(name=\"image-info-wrapper\")\n\n template(\n #overlay-image-wrapper\n v-if=\"$slots['overlay-image-wrapper']\"\n )\n slot(name=\"overlay-image-wrapper\")\n\n template(#info-wrapper)\n slot(name=\"info-wrapper\")\n\n template(\n #footer-wrapper\n v-if=\"$slots['footer-wrapper']\"\n )\n slot(name=\"footer-wrapper\")\n\n\n\n","/*!\n * vue-countdown v1.1.5\n * https://fengyuanchen.github.io/vue-countdown\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2020-02-25T01:19:32.769Z\n */\n\nvar MILLISECONDS_SECOND = 1000;\nvar MILLISECONDS_MINUTE = 60 * MILLISECONDS_SECOND;\nvar MILLISECONDS_HOUR = 60 * MILLISECONDS_MINUTE;\nvar MILLISECONDS_DAY = 24 * MILLISECONDS_HOUR;\nvar EVENT_VISIBILITY_CHANGE = 'visibilitychange';\nvar index = {\n name: 'countdown',\n data: function data() {\n return {\n /**\n * It is counting down.\n * @type {boolean}\n */\n counting: false,\n\n /**\n * The absolute end time.\n * @type {number}\n */\n endTime: 0,\n\n /**\n * The remaining milliseconds.\n * @type {number}\n */\n totalMilliseconds: 0\n };\n },\n props: {\n /**\n * Starts the countdown automatically when initialized.\n */\n autoStart: {\n type: Boolean,\n default: true\n },\n\n /**\n * Emits the countdown events.\n */\n emitEvents: {\n type: Boolean,\n default: true\n },\n\n /**\n * The interval time (in milliseconds) of the countdown progress.\n */\n interval: {\n type: Number,\n default: 1000,\n validator: function validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * Generate the current time of a specific time zone.\n */\n now: {\n type: Function,\n default: function _default() {\n return Date.now();\n }\n },\n\n /**\n * The tag name of the component's root element.\n */\n tag: {\n type: String,\n default: 'span'\n },\n\n /**\n * The time (in milliseconds) to count down from.\n */\n time: {\n type: Number,\n default: 0,\n validator: function validator(value) {\n return value >= 0;\n }\n },\n\n /**\n * Transforms the output props before render.\n */\n transform: {\n type: Function,\n default: function _default(props) {\n return props;\n }\n }\n },\n computed: {\n /**\n * Remaining days.\n * @returns {number} The computed value.\n */\n days: function days() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_DAY);\n },\n\n /**\n * Remaining hours.\n * @returns {number} The computed value.\n */\n hours: function hours() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_DAY / MILLISECONDS_HOUR);\n },\n\n /**\n * Remaining minutes.\n * @returns {number} The computed value.\n */\n minutes: function minutes() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_HOUR / MILLISECONDS_MINUTE);\n },\n\n /**\n * Remaining seconds.\n * @returns {number} The computed value.\n */\n seconds: function seconds() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_MINUTE / MILLISECONDS_SECOND);\n },\n\n /**\n * Remaining milliseconds.\n * @returns {number} The computed value.\n */\n milliseconds: function milliseconds() {\n return Math.floor(this.totalMilliseconds % MILLISECONDS_SECOND);\n },\n\n /**\n * Total remaining days.\n * @returns {number} The computed value.\n */\n totalDays: function totalDays() {\n return this.days;\n },\n\n /**\n * Total remaining hours.\n * @returns {number} The computed value.\n */\n totalHours: function totalHours() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_HOUR);\n },\n\n /**\n * Total remaining minutes.\n * @returns {number} The computed value.\n */\n totalMinutes: function totalMinutes() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_MINUTE);\n },\n\n /**\n * Total remaining seconds.\n * @returns {number} The computed value.\n */\n totalSeconds: function totalSeconds() {\n return Math.floor(this.totalMilliseconds / MILLISECONDS_SECOND);\n }\n },\n render: function render(createElement) {\n return createElement(this.tag, this.$scopedSlots.default ? [this.$scopedSlots.default(this.transform({\n days: this.days,\n hours: this.hours,\n minutes: this.minutes,\n seconds: this.seconds,\n milliseconds: this.milliseconds,\n totalDays: this.totalDays,\n totalHours: this.totalHours,\n totalMinutes: this.totalMinutes,\n totalSeconds: this.totalSeconds,\n totalMilliseconds: this.totalMilliseconds\n }))] : this.$slots.default);\n },\n watch: {\n $props: {\n deep: true,\n immediate: true,\n\n /**\n * Update the countdown when props changed.\n */\n handler: function handler() {\n this.totalMilliseconds = this.time;\n this.endTime = this.now() + this.time;\n\n if (this.autoStart) {\n this.start();\n }\n }\n }\n },\n methods: {\n /**\n * Starts to countdown.\n * @public\n * @emits Countdown#start\n */\n start: function start() {\n if (this.counting) {\n return;\n }\n\n this.counting = true;\n\n if (this.emitEvents) {\n /**\n * Countdown start event.\n * @event Countdown#start\n */\n this.$emit('start');\n }\n\n if (document.visibilityState === 'visible') {\n this.continue();\n }\n },\n\n /**\n * Continues the countdown.\n * @private\n */\n continue: function _continue() {\n var _this = this;\n\n if (!this.counting) {\n return;\n }\n\n var delay = Math.min(this.totalMilliseconds, this.interval);\n\n if (delay > 0) {\n if (window.requestAnimationFrame) {\n var init;\n var prev;\n\n var step = function step(now) {\n if (!init) {\n init = now;\n }\n\n if (!prev) {\n prev = now;\n }\n\n var range = now - init;\n\n if (range >= delay // Avoid losing time about one second per minute (now - prev ≈ 16ms) (#43)\n || range + (now - prev) / 2 >= delay) {\n _this.progress();\n } else {\n _this.requestId = requestAnimationFrame(step);\n }\n\n prev = now;\n };\n\n this.requestId = requestAnimationFrame(step);\n } else {\n this.timeoutId = setTimeout(function () {\n _this.progress();\n }, delay);\n }\n } else {\n this.end();\n }\n },\n\n /**\n * Pauses the countdown.\n * @private\n */\n pause: function pause() {\n if (window.requestAnimationFrame) {\n cancelAnimationFrame(this.requestId);\n } else {\n clearTimeout(this.timeoutId);\n }\n },\n\n /**\n * Progresses to countdown.\n * @private\n * @emits Countdown#progress\n */\n progress: function progress() {\n if (!this.counting) {\n return;\n }\n\n this.totalMilliseconds -= this.interval;\n\n if (this.emitEvents && this.totalMilliseconds > 0) {\n /**\n * Countdown progress event.\n * @event Countdown#progress\n */\n this.$emit('progress', {\n days: this.days,\n hours: this.hours,\n minutes: this.minutes,\n seconds: this.seconds,\n milliseconds: this.milliseconds,\n totalDays: this.totalDays,\n totalHours: this.totalHours,\n totalMinutes: this.totalMinutes,\n totalSeconds: this.totalSeconds,\n totalMilliseconds: this.totalMilliseconds\n });\n }\n\n this.continue();\n },\n\n /**\n * Aborts the countdown.\n * @public\n * @emits Countdown#abort\n */\n abort: function abort() {\n if (!this.counting) {\n return;\n }\n\n this.pause();\n this.counting = false;\n\n if (this.emitEvents) {\n /**\n * Countdown abort event.\n * @event Countdown#abort\n */\n this.$emit('abort');\n }\n },\n\n /**\n * Ends the countdown.\n * @public\n * @emits Countdown#end\n */\n end: function end() {\n if (!this.counting) {\n return;\n }\n\n this.pause();\n this.totalMilliseconds = 0;\n this.counting = false;\n\n if (this.emitEvents) {\n /**\n * Countdown end event.\n * @event Countdown#end\n */\n this.$emit('end');\n }\n },\n\n /**\n * Updates the count.\n * @private\n */\n update: function update() {\n if (this.counting) {\n this.totalMilliseconds = Math.max(0, this.endTime - this.now());\n }\n },\n\n /**\n * visibility change event handler.\n * @private\n */\n handleVisibilityChange: function handleVisibilityChange() {\n switch (document.visibilityState) {\n case 'visible':\n this.update();\n this.continue();\n break;\n\n case 'hidden':\n this.pause();\n break;\n }\n }\n },\n mounted: function mounted() {\n document.addEventListener(EVENT_VISIBILITY_CHANGE, this.handleVisibilityChange);\n },\n beforeDestroy: function beforeDestroy() {\n document.removeEventListener(EVENT_VISIBILITY_CHANGE, this.handleVisibilityChange);\n this.pause();\n }\n};\n\nexport default index;\n","\n.vc-k-datetime-range-view\n template(v-if=\"startedTime && endedTime\")\n template(v-if=\"displayType === 'multipleline'\")\n | {{ formattedStartedTime }}\n br\n | {{ formattedEndedTime }}\n template(v-if=\"displayType === 'oneline'\")\n | {{ `${formattedStartedTime} ~ ${formattedEndedTime}` }}\n template(v-else)\n | -\n\n\n\n","\n//- This component will be replaced by m-campaign-period-sales-time-range-view\n.vc-shared-promoter-campaign-period-sales-time-range-view(\n :class=\"{ 'is-ci': nameType === 'is-ci' }\"\n)\n .checkbox-wrapper(v-if=\"includeCheckbox\")\n k-checkbox(\n :value=\"value\"\n :native-value=\"promoterCampaignPeriod.id\"\n @input=\"inputHandler\"\n )\n .selected(v-if=\"checked\")\n .icon\n i.fa.fa-check\n .name(v-if=\"includeName\")\n span {{ promoterCampaignPeriod.name }}\n\n k-datetime-range-view.time-range-view(\n :started-time=\"promoterCampaignPeriod.started_at\"\n :ended-time=\"promoterCampaignPeriod.ended_at\"\n :display-type=\"displayType\"\n :format=\"timeFormat\"\n )\n\n\n\n\n\n","'use strict';\n\nvar shared = require('@vueuse/shared');\nvar vueDemi = require('vue-demi');\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n let options;\n if (vueDemi.isRef(optionsOrRef)) {\n options = {\n evaluating: optionsOrRef\n };\n } else {\n options = optionsOrRef || {};\n }\n const {\n lazy = false,\n evaluating = void 0,\n shallow = true,\n onError = shared.noop\n } = options;\n const started = vueDemi.ref(!lazy);\n const current = shallow ? vueDemi.shallowRef(initialState) : vueDemi.ref(initialState);\n let counter = 0;\n vueDemi.watchEffect(async (onInvalidate) => {\n if (!started.value)\n return;\n counter++;\n const counterAtBeginning = counter;\n let hasFinished = false;\n if (evaluating) {\n Promise.resolve().then(() => {\n evaluating.value = true;\n });\n }\n try {\n const result = await evaluationCallback((cancelCallback) => {\n onInvalidate(() => {\n if (evaluating)\n evaluating.value = false;\n if (!hasFinished)\n cancelCallback();\n });\n });\n if (counterAtBeginning === counter)\n current.value = result;\n } catch (e) {\n onError(e);\n } finally {\n if (evaluating && counterAtBeginning === counter)\n evaluating.value = false;\n hasFinished = true;\n }\n });\n if (lazy) {\n return vueDemi.computed(() => {\n started.value = true;\n return current.value;\n });\n } else {\n return current;\n }\n}\n\nfunction computedInject(key, options, defaultSource, treatDefaultAsFactory) {\n let source = vueDemi.inject(key);\n if (defaultSource)\n source = vueDemi.inject(key, defaultSource);\n if (treatDefaultAsFactory)\n source = vueDemi.inject(key, defaultSource, treatDefaultAsFactory);\n if (typeof options === \"function\") {\n return vueDemi.computed((ctx) => options(source, ctx));\n } else {\n return vueDemi.computed({\n get: (ctx) => options.get(source, ctx),\n set: options.set\n });\n }\n}\n\nfunction createReusableTemplate(options = {}) {\n if (!vueDemi.isVue3 && !vueDemi.version.startsWith(\"2.7.\")) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createReusableTemplate only works in Vue 2.7 or above.\");\n return;\n }\n const {\n inheritAttrs = true\n } = options;\n const render = vueDemi.shallowRef();\n const define = /* #__PURE__ */ vueDemi.defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* #__PURE__ */ vueDemi.defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return shared.makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[shared.camelize(key)] = obj[key];\n return newObj;\n}\n\nfunction createTemplatePromise(options = {}) {\n if (!vueDemi.isVue3) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] createTemplatePromise only works in Vue 3 or above.\");\n return;\n }\n let index = 0;\n const instances = vueDemi.ref([]);\n function create(...args) {\n const props = vueDemi.shallowReactive({\n key: index++,\n args,\n promise: void 0,\n resolve: () => {\n },\n reject: () => {\n },\n isResolving: false,\n options\n });\n instances.value.push(props);\n props.promise = new Promise((_resolve, _reject) => {\n props.resolve = (v) => {\n props.isResolving = true;\n return _resolve(v);\n };\n props.reject = _reject;\n }).finally(() => {\n props.promise = void 0;\n const index2 = instances.value.indexOf(props);\n if (index2 !== -1)\n instances.value.splice(index2, 1);\n });\n return props.promise;\n }\n function start(...args) {\n if (options.singleton && instances.value.length > 0)\n return instances.value[0].promise;\n return create(...args);\n }\n const component = /* #__PURE__ */ vueDemi.defineComponent((_, { slots }) => {\n const renderList = () => instances.value.map((props) => {\n var _a;\n return vueDemi.h(vueDemi.Fragment, { key: props.key }, (_a = slots.default) == null ? void 0 : _a.call(slots, props));\n });\n if (options.transition)\n return () => vueDemi.h(vueDemi.TransitionGroup, options.transition, renderList);\n return renderList;\n });\n component.start = start;\n return component;\n}\n\nfunction createUnrefFn(fn) {\n return function(...args) {\n return fn.apply(this, args.map((i) => shared.toValue(i)));\n };\n}\n\nfunction unrefElement(elRef) {\n var _a;\n const plain = shared.toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = shared.isClient ? window : void 0;\nconst defaultDocument = shared.isClient ? window.document : void 0;\nconst defaultNavigator = shared.isClient ? window.navigator : void 0;\nconst defaultLocation = shared.isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return shared.noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = vueDemi.watch(\n () => [unrefElement(target), shared.toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = shared.isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n shared.tryOnScopeDispose(stop);\n return stop;\n}\n\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window)\n return shared.noop;\n if (shared.isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window.document.body.children).forEach((el) => el.addEventListener(\"click\", shared.noop));\n window.document.documentElement.addEventListener(\"click\", shared.noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return ignore.some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n const listener = (event) => {\n const el = unrefElement(target);\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n const cleanup = [\n useEventListener(window, \"click\", listener, { passive: true, capture }),\n useEventListener(window, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && shared.toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction onKeyDown(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keydown\" });\n}\nfunction onKeyPressed(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keypress\" });\n}\nfunction onKeyUp(key, handler, options = {}) {\n return onKeyStroke(key, handler, { ...options, eventName: \"keyup\" });\n}\n\nconst DEFAULT_DELAY = 500;\nconst DEFAULT_THRESHOLD = 10;\nfunction onLongPress(target, handler, options) {\n var _a, _b;\n const elementRef = vueDemi.computed(() => unrefElement(target));\n let timeout;\n let posStart;\n let startTimestamp;\n let hasLongPressed = false;\n function clear() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = void 0;\n }\n posStart = void 0;\n startTimestamp = void 0;\n hasLongPressed = false;\n }\n function onRelease(ev) {\n var _a2, _b2, _c;\n const [_startTimestamp, _posStart, _hasLongPressed] = [startTimestamp, posStart, hasLongPressed];\n clear();\n if (!(options == null ? void 0 : options.onMouseUp) || !_posStart || !_startTimestamp)\n return;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - _posStart.x;\n const dy = ev.y - _posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n options.onMouseUp(ev.timeStamp - _startTimestamp, distance, _hasLongPressed);\n }\n function onDown(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n clear();\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n posStart = {\n x: ev.x,\n y: ev.y\n };\n startTimestamp = ev.timeStamp;\n timeout = setTimeout(\n () => {\n hasLongPressed = true;\n handler(ev);\n },\n (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY\n );\n }\n function onMove(ev) {\n var _a2, _b2, _c, _d;\n if (((_a2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _a2.self) && ev.target !== elementRef.value)\n return;\n if (!posStart || (options == null ? void 0 : options.distanceThreshold) === false)\n return;\n if ((_b2 = options == null ? void 0 : options.modifiers) == null ? void 0 : _b2.prevent)\n ev.preventDefault();\n if ((_c = options == null ? void 0 : options.modifiers) == null ? void 0 : _c.stop)\n ev.stopPropagation();\n const dx = ev.x - posStart.x;\n const dy = ev.y - posStart.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n if (distance >= ((_d = options == null ? void 0 : options.distanceThreshold) != null ? _d : DEFAULT_THRESHOLD))\n clear();\n }\n const listenerOptions = {\n capture: (_a = options == null ? void 0 : options.modifiers) == null ? void 0 : _a.capture,\n once: (_b = options == null ? void 0 : options.modifiers) == null ? void 0 : _b.once\n };\n const cleanup = [\n useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions),\n useEventListener(elementRef, \"pointermove\", onMove, listenerOptions),\n useEventListener(elementRef, [\"pointerup\", \"pointerleave\"], onRelease, listenerOptions)\n ];\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\n\nfunction isFocusedElementEditable() {\n const { activeElement, body } = document;\n if (!activeElement)\n return false;\n if (activeElement === body)\n return false;\n switch (activeElement.tagName) {\n case \"INPUT\":\n case \"TEXTAREA\":\n return true;\n }\n return activeElement.hasAttribute(\"contenteditable\");\n}\nfunction isTypedCharValid({\n keyCode,\n metaKey,\n ctrlKey,\n altKey\n}) {\n if (metaKey || ctrlKey || altKey)\n return false;\n if (keyCode >= 48 && keyCode <= 57)\n return true;\n if (keyCode >= 65 && keyCode <= 90)\n return true;\n if (keyCode >= 97 && keyCode <= 122)\n return true;\n return false;\n}\nfunction onStartTyping(callback, options = {}) {\n const { document: document2 = defaultDocument } = options;\n const keydown = (event) => {\n if (!isFocusedElementEditable() && isTypedCharValid(event)) {\n callback(event);\n }\n };\n if (document2)\n useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n const instance = vueDemi.getCurrentInstance();\n let _trigger = () => {\n };\n const element = vueDemi.customRef((track, trigger) => {\n _trigger = trigger;\n return {\n get() {\n var _a, _b;\n track();\n return (_b = (_a = instance == null ? void 0 : instance.proxy) == null ? void 0 : _a.$refs[key]) != null ? _b : initialValue;\n },\n set() {\n }\n };\n });\n shared.tryOnMounted(_trigger);\n vueDemi.onUpdated(_trigger);\n return element;\n}\n\nfunction useMounted() {\n const isMounted = vueDemi.ref(false);\n const instance = vueDemi.getCurrentInstance();\n if (instance) {\n vueDemi.onMounted(() => {\n isMounted.value = true;\n }, vueDemi.isVue2 ? void 0 : instance);\n }\n return isMounted;\n}\n\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return vueDemi.computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\n\nfunction useMutationObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"MutationObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = vueDemi.computed(() => {\n const value = shared.toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(shared.notNullish);\n return new Set(items);\n });\n const stopWatch = vueDemi.watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\n\nfunction useActiveElement(options = {}) {\n var _a;\n const {\n window = defaultWindow,\n deep = true,\n triggerOnRemoval = false\n } = options;\n const document = (_a = options.document) != null ? _a : window == null ? void 0 : window.document;\n const getDeepActiveElement = () => {\n var _a2;\n let element = document == null ? void 0 : document.activeElement;\n if (deep) {\n while (element == null ? void 0 : element.shadowRoot)\n element = (_a2 = element == null ? void 0 : element.shadowRoot) == null ? void 0 : _a2.activeElement;\n }\n return element;\n };\n const activeElement = vueDemi.ref();\n const trigger = () => {\n activeElement.value = getDeepActiveElement();\n };\n if (window) {\n useEventListener(window, \"blur\", (event) => {\n if (event.relatedTarget !== null)\n return;\n trigger();\n }, true);\n useEventListener(window, \"focus\", trigger, true);\n }\n if (triggerOnRemoval) {\n useMutationObserver(document, (mutations) => {\n mutations.filter((m) => m.removedNodes.length).map((n) => Array.from(n.removedNodes)).flat().forEach((node) => {\n if (node === activeElement.value)\n trigger();\n });\n }, {\n childList: true,\n subtree: true\n });\n }\n trigger();\n return activeElement;\n}\n\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window = defaultWindow\n } = options;\n const isActive = vueDemi.ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp) {\n if (!isActive.value || !window)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp;\n const delta = timestamp - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp;\n fn({ delta, timestamp });\n rafId = window.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window) {\n window.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n shared.tryOnScopeDispose(pause);\n return {\n isActive: vueDemi.readonly(isActive),\n pause,\n resume\n };\n}\n\nfunction useAnimate(target, keyframes, options) {\n let config;\n let animateOptions;\n if (shared.isObject(options)) {\n config = options;\n animateOptions = shared.objectOmit(options, [\"window\", \"immediate\", \"commitStyles\", \"persist\", \"onReady\", \"onError\"]);\n } else {\n config = { duration: options };\n animateOptions = options;\n }\n const {\n window = defaultWindow,\n immediate = true,\n commitStyles,\n persist,\n playbackRate: _playbackRate = 1,\n onReady,\n onError = (e) => {\n console.error(e);\n }\n } = config;\n const isSupported = useSupported(() => window && HTMLElement && \"animate\" in HTMLElement.prototype);\n const animate = vueDemi.shallowRef(void 0);\n const store = vueDemi.shallowReactive({\n startTime: null,\n currentTime: null,\n timeline: null,\n playbackRate: _playbackRate,\n pending: false,\n playState: immediate ? \"idle\" : \"paused\",\n replaceState: \"active\"\n });\n const pending = vueDemi.computed(() => store.pending);\n const playState = vueDemi.computed(() => store.playState);\n const replaceState = vueDemi.computed(() => store.replaceState);\n const startTime = vueDemi.computed({\n get() {\n return store.startTime;\n },\n set(value) {\n store.startTime = value;\n if (animate.value)\n animate.value.startTime = value;\n }\n });\n const currentTime = vueDemi.computed({\n get() {\n return store.currentTime;\n },\n set(value) {\n store.currentTime = value;\n if (animate.value) {\n animate.value.currentTime = value;\n syncResume();\n }\n }\n });\n const timeline = vueDemi.computed({\n get() {\n return store.timeline;\n },\n set(value) {\n store.timeline = value;\n if (animate.value)\n animate.value.timeline = value;\n }\n });\n const playbackRate = vueDemi.computed({\n get() {\n return store.playbackRate;\n },\n set(value) {\n store.playbackRate = value;\n if (animate.value)\n animate.value.playbackRate = value;\n }\n });\n const play = () => {\n if (animate.value) {\n try {\n animate.value.play();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n } else {\n update();\n }\n };\n const pause = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.pause();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const reverse = () => {\n var _a;\n if (!animate.value)\n update();\n try {\n (_a = animate.value) == null ? void 0 : _a.reverse();\n syncResume();\n } catch (e) {\n syncPause();\n onError(e);\n }\n };\n const finish = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.finish();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n const cancel = () => {\n var _a;\n try {\n (_a = animate.value) == null ? void 0 : _a.cancel();\n syncPause();\n } catch (e) {\n onError(e);\n }\n };\n vueDemi.watch(() => unrefElement(target), (el) => {\n if (el)\n update();\n });\n vueDemi.watch(() => keyframes, (value) => {\n if (animate.value)\n update();\n if (!unrefElement(target) && animate.value) {\n animate.value.effect = new KeyframeEffect(\n unrefElement(target),\n shared.toValue(value),\n animateOptions\n );\n }\n }, { deep: true });\n shared.tryOnMounted(() => update(true), false);\n shared.tryOnScopeDispose(cancel);\n function update(init) {\n const el = unrefElement(target);\n if (!isSupported.value || !el)\n return;\n if (!animate.value)\n animate.value = el.animate(shared.toValue(keyframes), animateOptions);\n if (persist)\n animate.value.persist();\n if (_playbackRate !== 1)\n animate.value.playbackRate = _playbackRate;\n if (init && !immediate)\n animate.value.pause();\n else\n syncResume();\n onReady == null ? void 0 : onReady(animate.value);\n }\n useEventListener(animate, [\"cancel\", \"finish\", \"remove\"], syncPause);\n useEventListener(animate, \"finish\", () => {\n var _a;\n if (commitStyles)\n (_a = animate.value) == null ? void 0 : _a.commitStyles();\n });\n const { resume: resumeRef, pause: pauseRef } = useRafFn(() => {\n if (!animate.value)\n return;\n store.pending = animate.value.pending;\n store.playState = animate.value.playState;\n store.replaceState = animate.value.replaceState;\n store.startTime = animate.value.startTime;\n store.currentTime = animate.value.currentTime;\n store.timeline = animate.value.timeline;\n store.playbackRate = animate.value.playbackRate;\n }, { immediate: false });\n function syncResume() {\n if (isSupported.value)\n resumeRef();\n }\n function syncPause() {\n if (isSupported.value && window)\n window.requestAnimationFrame(pauseRef);\n }\n return {\n isSupported,\n animate,\n // actions\n play,\n pause,\n reverse,\n finish,\n cancel,\n // state\n pending,\n playState,\n replaceState,\n startTime,\n currentTime,\n timeline,\n playbackRate\n };\n}\n\nfunction useAsyncQueue(tasks, options) {\n const {\n interrupt = true,\n onError = shared.noop,\n onFinished = shared.noop,\n signal\n } = options || {};\n const promiseState = {\n aborted: \"aborted\",\n fulfilled: \"fulfilled\",\n pending: \"pending\",\n rejected: \"rejected\"\n };\n const initialResult = Array.from(Array.from({ length: tasks.length }), () => ({ state: promiseState.pending, data: null }));\n const result = vueDemi.reactive(initialResult);\n const activeIndex = vueDemi.ref(-1);\n if (!tasks || tasks.length === 0) {\n onFinished();\n return {\n activeIndex,\n result\n };\n }\n function updateResult(state, res) {\n activeIndex.value++;\n result[activeIndex.value].data = res;\n result[activeIndex.value].state = state;\n }\n tasks.reduce((prev, curr) => {\n return prev.then((prevRes) => {\n var _a;\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, new Error(\"aborted\"));\n return;\n }\n if (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n onFinished();\n return;\n }\n const done = curr(prevRes).then((currentRes) => {\n updateResult(promiseState.fulfilled, currentRes);\n if (activeIndex.value === tasks.length - 1)\n onFinished();\n return currentRes;\n });\n if (!signal)\n return done;\n return Promise.race([done, whenAborted(signal)]);\n }).catch((e) => {\n if (signal == null ? void 0 : signal.aborted) {\n updateResult(promiseState.aborted, e);\n return e;\n }\n updateResult(promiseState.rejected, e);\n onError();\n return e;\n });\n }, Promise.resolve());\n return {\n activeIndex,\n result\n };\n}\nfunction whenAborted(signal) {\n return new Promise((resolve, reject) => {\n const error = new Error(\"aborted\");\n if (signal.aborted)\n reject(error);\n else\n signal.addEventListener(\"abort\", () => reject(error), { once: true });\n });\n}\n\nfunction useAsyncState(promise, initialState, options) {\n const {\n immediate = true,\n delay = 0,\n onError = shared.noop,\n onSuccess = shared.noop,\n resetOnExecute = true,\n shallow = true,\n throwError\n } = options != null ? options : {};\n const state = shallow ? vueDemi.shallowRef(initialState) : vueDemi.ref(initialState);\n const isReady = vueDemi.ref(false);\n const isLoading = vueDemi.ref(false);\n const error = vueDemi.shallowRef(void 0);\n async function execute(delay2 = 0, ...args) {\n if (resetOnExecute)\n state.value = initialState;\n error.value = void 0;\n isReady.value = false;\n isLoading.value = true;\n if (delay2 > 0)\n await shared.promiseTimeout(delay2);\n const _promise = typeof promise === \"function\" ? promise(...args) : promise;\n try {\n const data = await _promise;\n state.value = data;\n isReady.value = true;\n onSuccess(data);\n } catch (e) {\n error.value = e;\n onError(e);\n if (throwError)\n throw e;\n } finally {\n isLoading.value = false;\n }\n return state.value;\n }\n if (immediate)\n execute(delay);\n const shell = {\n state,\n isReady,\n isLoading,\n error,\n execute\n };\n function waitUntilIsLoaded() {\n return new Promise((resolve, reject) => {\n shared.until(isLoading).toBe(false).then(() => resolve(shell)).catch(reject);\n });\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilIsLoaded().then(onFulfilled, onRejected);\n }\n };\n}\n\nconst defaults = {\n array: (v) => JSON.stringify(v),\n object: (v) => JSON.stringify(v),\n set: (v) => JSON.stringify(Array.from(v)),\n map: (v) => JSON.stringify(Object.fromEntries(v)),\n null: () => \"\"\n};\nfunction getDefaultSerialization(target) {\n if (!target)\n return defaults.null;\n if (target instanceof Map)\n return defaults.map;\n else if (target instanceof Set)\n return defaults.set;\n else if (Array.isArray(target))\n return defaults.array;\n else\n return defaults.object;\n}\n\nfunction useBase64(target, options) {\n const base64 = vueDemi.ref(\"\");\n const promise = vueDemi.ref();\n function execute() {\n if (!shared.isClient)\n return;\n promise.value = new Promise((resolve, reject) => {\n try {\n const _target = shared.toValue(target);\n if (_target == null) {\n resolve(\"\");\n } else if (typeof _target === \"string\") {\n resolve(blobToBase64(new Blob([_target], { type: \"text/plain\" })));\n } else if (_target instanceof Blob) {\n resolve(blobToBase64(_target));\n } else if (_target instanceof ArrayBuffer) {\n resolve(window.btoa(String.fromCharCode(...new Uint8Array(_target))));\n } else if (_target instanceof HTMLCanvasElement) {\n resolve(_target.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n } else if (_target instanceof HTMLImageElement) {\n const img = _target.cloneNode(false);\n img.crossOrigin = \"Anonymous\";\n imgLoaded(img).then(() => {\n const canvas = document.createElement(\"canvas\");\n const ctx = canvas.getContext(\"2d\");\n canvas.width = img.width;\n canvas.height = img.height;\n ctx.drawImage(img, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(options == null ? void 0 : options.type, options == null ? void 0 : options.quality));\n }).catch(reject);\n } else if (typeof _target === \"object\") {\n const _serializeFn = (options == null ? void 0 : options.serializer) || getDefaultSerialization(_target);\n const serialized = _serializeFn(_target);\n return resolve(blobToBase64(new Blob([serialized], { type: \"application/json\" })));\n } else {\n reject(new Error(\"target is unsupported types\"));\n }\n } catch (error) {\n reject(error);\n }\n });\n promise.value.then((res) => base64.value = res);\n return promise.value;\n }\n if (vueDemi.isRef(target) || typeof target === \"function\")\n vueDemi.watch(target, execute, { immediate: true });\n else\n execute();\n return {\n base64,\n promise,\n execute\n };\n}\nfunction imgLoaded(img) {\n return new Promise((resolve, reject) => {\n if (!img.complete) {\n img.onload = () => {\n resolve();\n };\n img.onerror = reject;\n } else {\n resolve();\n }\n });\n}\nfunction blobToBase64(blob) {\n return new Promise((resolve, reject) => {\n const fr = new FileReader();\n fr.onload = (e) => {\n resolve(e.target.result);\n };\n fr.onerror = reject;\n fr.readAsDataURL(blob);\n });\n}\n\nfunction useBattery(options = {}) {\n const { navigator = defaultNavigator } = options;\n const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n const isSupported = useSupported(() => navigator && \"getBattery\" in navigator && typeof navigator.getBattery === \"function\");\n const charging = vueDemi.ref(false);\n const chargingTime = vueDemi.ref(0);\n const dischargingTime = vueDemi.ref(0);\n const level = vueDemi.ref(1);\n let battery;\n function updateBatteryInfo() {\n charging.value = this.charging;\n chargingTime.value = this.chargingTime || 0;\n dischargingTime.value = this.dischargingTime || 0;\n level.value = this.level;\n }\n if (isSupported.value) {\n navigator.getBattery().then((_battery) => {\n battery = _battery;\n updateBatteryInfo.call(battery);\n useEventListener(battery, events, updateBatteryInfo, { passive: true });\n });\n }\n return {\n isSupported,\n charging,\n chargingTime,\n dischargingTime,\n level\n };\n}\n\nfunction useBluetooth(options) {\n let {\n acceptAllDevices = false\n } = options || {};\n const {\n filters = void 0,\n optionalServices = void 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => navigator && \"bluetooth\" in navigator);\n const device = vueDemi.shallowRef(void 0);\n const error = vueDemi.shallowRef(null);\n vueDemi.watch(device, () => {\n connectToBluetoothGATTServer();\n });\n async function requestDevice() {\n if (!isSupported.value)\n return;\n error.value = null;\n if (filters && filters.length > 0)\n acceptAllDevices = false;\n try {\n device.value = await (navigator == null ? void 0 : navigator.bluetooth.requestDevice({\n acceptAllDevices,\n filters,\n optionalServices\n }));\n } catch (err) {\n error.value = err;\n }\n }\n const server = vueDemi.ref();\n const isConnected = vueDemi.computed(() => {\n var _a;\n return ((_a = server.value) == null ? void 0 : _a.connected) || false;\n });\n async function connectToBluetoothGATTServer() {\n error.value = null;\n if (device.value && device.value.gatt) {\n device.value.addEventListener(\"gattserverdisconnected\", () => {\n });\n try {\n server.value = await device.value.gatt.connect();\n } catch (err) {\n error.value = err;\n }\n }\n }\n shared.tryOnMounted(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.connect();\n });\n shared.tryOnScopeDispose(() => {\n var _a;\n if (device.value)\n (_a = device.value.gatt) == null ? void 0 : _a.disconnect();\n });\n return {\n isSupported,\n isConnected,\n // Device:\n device,\n requestDevice,\n // Server:\n server,\n // Errors:\n error\n };\n}\n\nfunction useMediaQuery(query, options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"matchMedia\" in window && typeof window.matchMedia === \"function\");\n let mediaQuery;\n const matches = vueDemi.ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = vueDemi.watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window.matchMedia(shared.toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n shared.tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\n\nconst breakpointsTailwind = {\n \"sm\": 640,\n \"md\": 768,\n \"lg\": 1024,\n \"xl\": 1280,\n \"2xl\": 1536\n};\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nconst breakpointsVuetifyV2 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1264,\n xl: 1904\n};\nconst breakpointsVuetifyV3 = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560\n};\nconst breakpointsVuetify = breakpointsVuetifyV2;\nconst breakpointsAntDesign = {\n xs: 480,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1600\n};\nconst breakpointsQuasar = {\n xs: 0,\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n};\nconst breakpointsSematic = {\n mobileS: 320,\n mobileM: 375,\n mobileL: 425,\n tablet: 768,\n laptop: 1024,\n laptopL: 1440,\n desktop4K: 2560\n};\nconst breakpointsMasterCss = {\n \"3xs\": 360,\n \"2xs\": 480,\n \"xs\": 600,\n \"sm\": 768,\n \"md\": 1024,\n \"lg\": 1280,\n \"xl\": 1440,\n \"2xl\": 1600,\n \"3xl\": 1920,\n \"4xl\": 2560\n};\nconst breakpointsPrimeFlex = {\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200\n};\n\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = shared.toValue(breakpoints[shared.toValue(k)]);\n if (delta != null)\n v = shared.increaseWithUnit(v, delta);\n if (typeof v === \"number\")\n v = `${v}px`;\n return v;\n }\n const { window = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window)\n return false;\n return window.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return vueDemi.computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return vueDemi.computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\n\nfunction useBroadcastChannel(options) {\n const {\n name,\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n const isClosed = vueDemi.ref(false);\n const channel = vueDemi.ref();\n const data = vueDemi.ref();\n const error = vueDemi.shallowRef(null);\n const post = (data2) => {\n if (channel.value)\n channel.value.postMessage(data2);\n };\n const close = () => {\n if (channel.value)\n channel.value.close();\n isClosed.value = true;\n };\n if (isSupported.value) {\n shared.tryOnMounted(() => {\n error.value = null;\n channel.value = new BroadcastChannel(name);\n channel.value.addEventListener(\"message\", (e) => {\n data.value = e.data;\n }, { passive: true });\n channel.value.addEventListener(\"messageerror\", (e) => {\n error.value = e;\n }, { passive: true });\n channel.value.addEventListener(\"close\", () => {\n isClosed.value = true;\n });\n });\n }\n shared.tryOnScopeDispose(() => {\n close();\n });\n return {\n isSupported,\n channel,\n data,\n post,\n close,\n error,\n isClosed\n };\n}\n\nconst WRITABLE_PROPERTIES = [\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"search\"\n];\nfunction useBrowserLocation(options = {}) {\n const { window = defaultWindow } = options;\n const refs = Object.fromEntries(\n WRITABLE_PROPERTIES.map((key) => [key, vueDemi.ref()])\n );\n for (const [key, ref2] of shared.objectEntries(refs)) {\n vueDemi.watch(ref2, (value) => {\n if (!(window == null ? void 0 : window.location) || window.location[key] === value)\n return;\n window.location[key] = value;\n });\n }\n const buildState = (trigger) => {\n var _a;\n const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n const { origin } = (window == null ? void 0 : window.location) || {};\n for (const key of WRITABLE_PROPERTIES)\n refs[key].value = (_a = window == null ? void 0 : window.location) == null ? void 0 : _a[key];\n return vueDemi.reactive({\n trigger,\n state: state2,\n length,\n origin,\n ...refs\n });\n };\n const state = vueDemi.ref(buildState(\"load\"));\n if (window) {\n useEventListener(window, \"popstate\", () => state.value = buildState(\"popstate\"), { passive: true });\n useEventListener(window, \"hashchange\", () => state.value = buildState(\"hashchange\"), { passive: true });\n }\n return state;\n}\n\nfunction useCached(refValue, comparator = (a, b) => a === b, watchOptions) {\n const cachedValue = vueDemi.ref(refValue.value);\n vueDemi.watch(() => refValue.value, (value) => {\n if (!comparator(value, cachedValue.value))\n cachedValue.value = value;\n }, watchOptions);\n return cachedValue;\n}\n\nfunction usePermission(permissionDesc, options = {}) {\n const {\n controls = false,\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"permissions\" in navigator);\n const permissionStatus = vueDemi.shallowRef();\n const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n const state = vueDemi.shallowRef();\n const onChange = () => {\n if (permissionStatus.value)\n state.value = permissionStatus.value.state;\n };\n useEventListener(permissionStatus, \"change\", onChange);\n const query = shared.createSingletonPromise(async () => {\n if (!isSupported.value)\n return;\n if (!permissionStatus.value) {\n try {\n permissionStatus.value = await navigator.permissions.query(desc);\n onChange();\n } catch (e) {\n state.value = \"prompt\";\n }\n }\n if (controls)\n return vueDemi.toRaw(permissionStatus.value);\n });\n query();\n if (controls) {\n return {\n state,\n isSupported,\n query\n };\n } else {\n return state;\n }\n}\n\nfunction useClipboard(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500,\n legacy = false\n } = options;\n const isClipboardApiSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const permissionRead = usePermission(\"clipboard-read\");\n const permissionWrite = usePermission(\"clipboard-write\");\n const isSupported = vueDemi.computed(() => isClipboardApiSupported.value || legacy);\n const text = vueDemi.ref(\"\");\n const copied = vueDemi.ref(false);\n const timeout = shared.useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateText() {\n if (isClipboardApiSupported.value && isAllowed(permissionRead.value)) {\n navigator.clipboard.readText().then((value) => {\n text.value = value;\n });\n } else {\n text.value = legacyRead();\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateText);\n async function copy(value = shared.toValue(source)) {\n if (isSupported.value && value != null) {\n if (isClipboardApiSupported.value && isAllowed(permissionWrite.value))\n await navigator.clipboard.writeText(value);\n else\n legacyCopy(value);\n text.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n function legacyCopy(value) {\n const ta = document.createElement(\"textarea\");\n ta.value = value != null ? value : \"\";\n ta.style.position = \"absolute\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n document.execCommand(\"copy\");\n ta.remove();\n }\n function legacyRead() {\n var _a, _b, _c;\n return (_c = (_b = (_a = document == null ? void 0 : document.getSelection) == null ? void 0 : _a.call(document)) == null ? void 0 : _b.toString()) != null ? _c : \"\";\n }\n function isAllowed(status) {\n return status === \"granted\" || status === \"prompt\";\n }\n return {\n isSupported,\n text,\n copied,\n copy\n };\n}\n\nfunction useClipboardItems(options = {}) {\n const {\n navigator = defaultNavigator,\n read = false,\n source,\n copiedDuring = 1500\n } = options;\n const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n const content = vueDemi.ref([]);\n const copied = vueDemi.ref(false);\n const timeout = shared.useTimeoutFn(() => copied.value = false, copiedDuring);\n function updateContent() {\n if (isSupported.value) {\n navigator.clipboard.read().then((items) => {\n content.value = items;\n });\n }\n }\n if (isSupported.value && read)\n useEventListener([\"copy\", \"cut\"], updateContent);\n async function copy(value = shared.toValue(source)) {\n if (isSupported.value && value != null) {\n await navigator.clipboard.write(value);\n content.value = value;\n copied.value = true;\n timeout.start();\n }\n }\n return {\n isSupported,\n content,\n copied,\n copy\n };\n}\n\nfunction cloneFnJSON(source) {\n return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n const cloned = vueDemi.ref({});\n const {\n manual,\n clone = cloneFnJSON,\n // watch options\n deep = true,\n immediate = true\n } = options;\n function sync() {\n cloned.value = clone(shared.toValue(source));\n }\n if (!manual && (vueDemi.isRef(source) || typeof source === \"function\")) {\n vueDemi.watch(source, sync, {\n ...options,\n deep,\n immediate\n });\n } else {\n sync();\n }\n return { cloned, sync };\n}\n\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction setSSRHandler(key, fn) {\n handlers[key] = fn;\n}\n\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = shared.toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = shared.pausableWatch(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window && listenToStorageChanges) {\n shared.tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window, \"storage\", update);\n else\n useEventListener(window, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window) {\n const payload = {\n key,\n oldValue,\n newValue,\n storageArea: storage\n };\n window.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, {\n detail: payload\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n vueDemi.nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\n\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window });\n const system = vueDemi.computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? shared.toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n const state = vueDemi.computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window == null ? void 0 : window.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n vueDemi.watch(state, onChanged, { flush: \"post\", immediate: true });\n shared.tryOnMounted(() => onChanged(state.value));\n const auto = vueDemi.computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n try {\n return Object.assign(auto, { store, system, state });\n } catch (e) {\n return auto;\n }\n}\n\nfunction useConfirmDialog(revealed = vueDemi.ref(false)) {\n const confirmHook = shared.createEventHook();\n const cancelHook = shared.createEventHook();\n const revealHook = shared.createEventHook();\n let _resolve = shared.noop;\n const reveal = (data) => {\n revealHook.trigger(data);\n revealed.value = true;\n return new Promise((resolve) => {\n _resolve = resolve;\n });\n };\n const confirm = (data) => {\n revealed.value = false;\n confirmHook.trigger(data);\n _resolve({ data, isCanceled: false });\n };\n const cancel = (data) => {\n revealed.value = false;\n cancelHook.trigger(data);\n _resolve({ data, isCanceled: true });\n };\n return {\n isRevealed: vueDemi.computed(() => revealed.value),\n reveal,\n confirm,\n cancel,\n onReveal: revealHook.on,\n onConfirm: confirmHook.on,\n onCancel: cancelHook.on\n };\n}\n\nfunction useCssVar(prop, target, options = {}) {\n const { window = defaultWindow, initialValue, observe = false } = options;\n const variable = vueDemi.ref(initialValue);\n const elRef = vueDemi.computed(() => {\n var _a;\n return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n });\n function updateCssVar() {\n var _a;\n const key = shared.toValue(prop);\n const el = shared.toValue(elRef);\n if (el && window && key) {\n const value = (_a = window.getComputedStyle(el).getPropertyValue(key)) == null ? void 0 : _a.trim();\n variable.value = value || initialValue;\n }\n }\n if (observe) {\n useMutationObserver(elRef, updateCssVar, {\n attributeFilter: [\"style\", \"class\"],\n window\n });\n }\n vueDemi.watch(\n [elRef, () => shared.toValue(prop)],\n (_, old) => {\n if (old[0] && old[1] && window)\n window.getComputedStyle(old[0]).removeProperty(old[1]);\n updateCssVar();\n },\n { immediate: true }\n );\n vueDemi.watch(\n variable,\n (val) => {\n var _a;\n const raw_prop = shared.toValue(prop);\n if (((_a = elRef.value) == null ? void 0 : _a.style) && raw_prop) {\n if (val == null)\n elRef.value.style.removeProperty(raw_prop);\n else\n elRef.value.style.setProperty(raw_prop, val);\n }\n }\n );\n return variable;\n}\n\nfunction useCurrentElement(rootComponent) {\n const vm = vueDemi.getCurrentInstance();\n const currentElement = shared.computedWithControl(\n () => null,\n () => rootComponent ? unrefElement(rootComponent) : vm.proxy.$el\n );\n vueDemi.onUpdated(currentElement.trigger);\n vueDemi.onMounted(currentElement.trigger);\n return currentElement;\n}\n\nfunction useCycleList(list, options) {\n const state = vueDemi.shallowRef(getInitialValue());\n const listRef = shared.toRef(list);\n const index = vueDemi.computed({\n get() {\n var _a;\n const targetList = listRef.value;\n let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, targetList) : targetList.indexOf(state.value);\n if (index2 < 0)\n index2 = (_a = options == null ? void 0 : options.fallbackIndex) != null ? _a : 0;\n return index2;\n },\n set(v) {\n set(v);\n }\n });\n function set(i) {\n const targetList = listRef.value;\n const length = targetList.length;\n const index2 = (i % length + length) % length;\n const value = targetList[index2];\n state.value = value;\n return value;\n }\n function shift(delta = 1) {\n return set(index.value + delta);\n }\n function next(n = 1) {\n return shift(n);\n }\n function prev(n = 1) {\n return shift(-n);\n }\n function getInitialValue() {\n var _a, _b;\n return (_b = shared.toValue((_a = options == null ? void 0 : options.initialValue) != null ? _a : shared.toValue(list)[0])) != null ? _b : void 0;\n }\n vueDemi.watch(listRef, () => set(index.value));\n return {\n state,\n index,\n next,\n prev,\n go: set\n };\n}\n\nfunction useDark(options = {}) {\n const {\n valueDark = \"dark\",\n valueLight = \"\",\n window = defaultWindow\n } = options;\n const mode = useColorMode({\n ...options,\n onChanged: (mode2, defaultHandler) => {\n var _a;\n if (options.onChanged)\n (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\", defaultHandler, mode2);\n else\n defaultHandler(mode2);\n },\n modes: {\n dark: valueDark,\n light: valueLight\n }\n });\n const system = vueDemi.computed(() => {\n if (mode.system) {\n return mode.system.value;\n } else {\n const preferredDark = usePreferredDark({ window });\n return preferredDark.value ? \"dark\" : \"light\";\n }\n });\n const isDark = vueDemi.computed({\n get() {\n return mode.value === \"dark\";\n },\n set(v) {\n const modeVal = v ? \"dark\" : \"light\";\n if (system.value === modeVal)\n mode.value = \"auto\";\n else\n mode.value = modeVal;\n }\n });\n return isDark;\n}\n\nfunction fnBypass(v) {\n return v;\n}\nfunction fnSetSource(source, value) {\n return source.value = value;\n}\nfunction defaultDump(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n return clone ? typeof clone === \"function\" ? clone : cloneFnJSON : fnBypass;\n}\nfunction useManualRefHistory(source, options = {}) {\n const {\n clone = false,\n dump = defaultDump(clone),\n parse = defaultParse(clone),\n setSource = fnSetSource\n } = options;\n function _createHistoryRecord() {\n return vueDemi.markRaw({\n snapshot: dump(source.value),\n timestamp: shared.timestamp()\n });\n }\n const last = vueDemi.ref(_createHistoryRecord());\n const undoStack = vueDemi.ref([]);\n const redoStack = vueDemi.ref([]);\n const _setSource = (record) => {\n setSource(source, parse(record.snapshot));\n last.value = record;\n };\n const commit = () => {\n undoStack.value.unshift(last.value);\n last.value = _createHistoryRecord();\n if (options.capacity && undoStack.value.length > options.capacity)\n undoStack.value.splice(options.capacity, Number.POSITIVE_INFINITY);\n if (redoStack.value.length)\n redoStack.value.splice(0, redoStack.value.length);\n };\n const clear = () => {\n undoStack.value.splice(0, undoStack.value.length);\n redoStack.value.splice(0, redoStack.value.length);\n };\n const undo = () => {\n const state = undoStack.value.shift();\n if (state) {\n redoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const redo = () => {\n const state = redoStack.value.shift();\n if (state) {\n undoStack.value.unshift(last.value);\n _setSource(state);\n }\n };\n const reset = () => {\n _setSource(last.value);\n };\n const history = vueDemi.computed(() => [last.value, ...undoStack.value]);\n const canUndo = vueDemi.computed(() => undoStack.value.length > 0);\n const canRedo = vueDemi.computed(() => redoStack.value.length > 0);\n return {\n source,\n undoStack,\n redoStack,\n last,\n history,\n canUndo,\n canRedo,\n clear,\n commit,\n reset,\n undo,\n redo\n };\n}\n\nfunction useRefHistory(source, options = {}) {\n const {\n deep = false,\n flush = \"pre\",\n eventFilter\n } = options;\n const {\n eventFilter: composedFilter,\n pause,\n resume: resumeTracking,\n isActive: isTracking\n } = shared.pausableFilter(eventFilter);\n const {\n ignoreUpdates,\n ignorePrevAsyncUpdates,\n stop\n } = shared.watchIgnorable(\n source,\n commit,\n { deep, flush, eventFilter: composedFilter }\n );\n function setSource(source2, value) {\n ignorePrevAsyncUpdates();\n ignoreUpdates(() => {\n source2.value = value;\n });\n }\n const manualHistory = useManualRefHistory(source, { ...options, clone: options.clone || deep, setSource });\n const { clear, commit: manualCommit } = manualHistory;\n function commit() {\n ignorePrevAsyncUpdates();\n manualCommit();\n }\n function resume(commitNow) {\n resumeTracking();\n if (commitNow)\n commit();\n }\n function batch(fn) {\n let canceled = false;\n const cancel = () => canceled = true;\n ignoreUpdates(() => {\n fn(cancel);\n });\n if (!canceled)\n commit();\n }\n function dispose() {\n stop();\n clear();\n }\n return {\n ...manualHistory,\n isTracking,\n pause,\n resume,\n commit,\n batch,\n dispose\n };\n}\n\nfunction useDebouncedRefHistory(source, options = {}) {\n const filter = options.debounce ? shared.debounceFilter(options.debounce) : void 0;\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nfunction useDeviceMotion(options = {}) {\n const {\n window = defaultWindow,\n eventFilter = shared.bypassFilter\n } = options;\n const acceleration = vueDemi.ref({ x: null, y: null, z: null });\n const rotationRate = vueDemi.ref({ alpha: null, beta: null, gamma: null });\n const interval = vueDemi.ref(0);\n const accelerationIncludingGravity = vueDemi.ref({\n x: null,\n y: null,\n z: null\n });\n if (window) {\n const onDeviceMotion = shared.createFilterWrapper(\n eventFilter,\n (event) => {\n acceleration.value = event.acceleration;\n accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n rotationRate.value = event.rotationRate;\n interval.value = event.interval;\n }\n );\n useEventListener(window, \"devicemotion\", onDeviceMotion);\n }\n return {\n acceleration,\n accelerationIncludingGravity,\n rotationRate,\n interval\n };\n}\n\nfunction useDeviceOrientation(options = {}) {\n const { window = defaultWindow } = options;\n const isSupported = useSupported(() => window && \"DeviceOrientationEvent\" in window);\n const isAbsolute = vueDemi.ref(false);\n const alpha = vueDemi.ref(null);\n const beta = vueDemi.ref(null);\n const gamma = vueDemi.ref(null);\n if (window && isSupported.value) {\n useEventListener(window, \"deviceorientation\", (event) => {\n isAbsolute.value = event.absolute;\n alpha.value = event.alpha;\n beta.value = event.beta;\n gamma.value = event.gamma;\n });\n }\n return {\n isSupported,\n isAbsolute,\n alpha,\n beta,\n gamma\n };\n}\n\nfunction useDevicePixelRatio(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const pixelRatio = vueDemi.ref(1);\n if (window) {\n let observe2 = function() {\n pixelRatio.value = window.devicePixelRatio;\n cleanup2();\n media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n media.addEventListener(\"change\", observe2, { once: true });\n }, cleanup2 = function() {\n media == null ? void 0 : media.removeEventListener(\"change\", observe2);\n };\n let media;\n observe2();\n shared.tryOnScopeDispose(cleanup2);\n }\n return { pixelRatio };\n}\n\nfunction useDevicesList(options = {}) {\n const {\n navigator = defaultNavigator,\n requestPermissions = false,\n constraints = { audio: true, video: true },\n onUpdated\n } = options;\n const devices = vueDemi.ref([]);\n const videoInputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n const audioInputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n const audioOutputs = vueDemi.computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n const permissionGranted = vueDemi.ref(false);\n let stream;\n async function update() {\n if (!isSupported.value)\n return;\n devices.value = await navigator.mediaDevices.enumerateDevices();\n onUpdated == null ? void 0 : onUpdated(devices.value);\n if (stream) {\n stream.getTracks().forEach((t) => t.stop());\n stream = null;\n }\n }\n async function ensurePermissions() {\n if (!isSupported.value)\n return false;\n if (permissionGranted.value)\n return true;\n const { state, query } = usePermission(\"camera\", { controls: true });\n await query();\n if (state.value !== \"granted\") {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n update();\n permissionGranted.value = true;\n } else {\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n }\n if (isSupported.value) {\n if (requestPermissions)\n ensurePermissions();\n useEventListener(navigator.mediaDevices, \"devicechange\", update);\n update();\n }\n return {\n devices,\n ensurePermissions,\n permissionGranted,\n videoInputs,\n audioInputs,\n audioOutputs,\n isSupported\n };\n}\n\nfunction useDisplayMedia(options = {}) {\n var _a;\n const enabled = vueDemi.ref((_a = options.enabled) != null ? _a : false);\n const video = options.video;\n const audio = options.audio;\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getDisplayMedia;\n });\n const constraint = { audio, video };\n const stream = vueDemi.shallowRef();\n async function _start() {\n var _a2;\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.addEventListener(\"ended\", stop));\n return stream.value;\n }\n async function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n vueDemi.watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else\n _stop();\n },\n { immediate: true }\n );\n return {\n isSupported,\n stream,\n start,\n stop,\n enabled\n };\n}\n\nfunction useDocumentVisibility(options = {}) {\n const { document = defaultDocument } = options;\n if (!document)\n return vueDemi.ref(\"visible\");\n const visibility = vueDemi.ref(document.visibilityState);\n useEventListener(document, \"visibilitychange\", () => {\n visibility.value = document.visibilityState;\n });\n return visibility;\n}\n\nfunction useDraggable(target, options = {}) {\n var _a, _b;\n const {\n pointerTypes,\n preventDefault,\n stopPropagation,\n exact,\n onMove,\n onEnd,\n onStart,\n initialValue,\n axis = \"both\",\n draggingElement = defaultWindow,\n containerElement,\n handle: draggingHandle = target,\n buttons = [0]\n } = options;\n const position = vueDemi.ref(\n (_a = shared.toValue(initialValue)) != null ? _a : { x: 0, y: 0 }\n );\n const pressedDelta = vueDemi.ref();\n const filterEvent = (e) => {\n if (pointerTypes)\n return pointerTypes.includes(e.pointerType);\n return true;\n };\n const handleEvent = (e) => {\n if (shared.toValue(preventDefault))\n e.preventDefault();\n if (shared.toValue(stopPropagation))\n e.stopPropagation();\n };\n const start = (e) => {\n var _a2;\n if (!shared.toValue(buttons).includes(e.button))\n return;\n if (shared.toValue(options.disabled) || !filterEvent(e))\n return;\n if (shared.toValue(exact) && e.target !== shared.toValue(target))\n return;\n const container = shared.toValue(containerElement);\n const containerRect = (_a2 = container == null ? void 0 : container.getBoundingClientRect) == null ? void 0 : _a2.call(container);\n const targetRect = shared.toValue(target).getBoundingClientRect();\n const pos = {\n x: e.clientX - (container ? targetRect.left - containerRect.left + container.scrollLeft : targetRect.left),\n y: e.clientY - (container ? targetRect.top - containerRect.top + container.scrollTop : targetRect.top)\n };\n if ((onStart == null ? void 0 : onStart(pos, e)) === false)\n return;\n pressedDelta.value = pos;\n handleEvent(e);\n };\n const move = (e) => {\n if (shared.toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n const container = shared.toValue(containerElement);\n const targetRect = shared.toValue(target).getBoundingClientRect();\n let { x, y } = position.value;\n if (axis === \"x\" || axis === \"both\") {\n x = e.clientX - pressedDelta.value.x;\n if (container)\n x = Math.min(Math.max(0, x), container.scrollWidth - targetRect.width);\n }\n if (axis === \"y\" || axis === \"both\") {\n y = e.clientY - pressedDelta.value.y;\n if (container)\n y = Math.min(Math.max(0, y), container.scrollHeight - targetRect.height);\n }\n position.value = {\n x,\n y\n };\n onMove == null ? void 0 : onMove(position.value, e);\n handleEvent(e);\n };\n const end = (e) => {\n if (shared.toValue(options.disabled) || !filterEvent(e))\n return;\n if (!pressedDelta.value)\n return;\n pressedDelta.value = void 0;\n onEnd == null ? void 0 : onEnd(position.value, e);\n handleEvent(e);\n };\n if (shared.isClient) {\n const config = { capture: (_b = options.capture) != null ? _b : true };\n useEventListener(draggingHandle, \"pointerdown\", start, config);\n useEventListener(draggingElement, \"pointermove\", move, config);\n useEventListener(draggingElement, \"pointerup\", end, config);\n }\n return {\n ...shared.toRefs(position),\n position,\n isDragging: vueDemi.computed(() => !!pressedDelta.value),\n style: vueDemi.computed(\n () => `left:${position.value.x}px;top:${position.value.y}px;`\n )\n };\n}\n\nfunction useDropZone(target, options = {}) {\n const isOverDropZone = vueDemi.ref(false);\n const files = vueDemi.shallowRef(null);\n let counter = 0;\n let isDataTypeIncluded = true;\n if (shared.isClient) {\n const _options = typeof options === \"function\" ? { onDrop: options } : options;\n const getFiles = (event) => {\n var _a, _b;\n const list = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n return files.value = list.length === 0 ? null : list;\n };\n useEventListener(target, \"dragenter\", (event) => {\n var _a, _b;\n const types = Array.from(((_a = event == null ? void 0 : event.dataTransfer) == null ? void 0 : _a.items) || []).map((i) => i.kind === \"file\" ? i.type : null).filter(shared.notNullish);\n if (_options.dataTypes && event.dataTransfer) {\n const dataTypes = vueDemi.unref(_options.dataTypes);\n isDataTypeIncluded = typeof dataTypes === \"function\" ? dataTypes(types) : dataTypes ? dataTypes.some((item) => types.includes(item)) : true;\n if (!isDataTypeIncluded)\n return;\n }\n event.preventDefault();\n counter += 1;\n isOverDropZone.value = true;\n (_b = _options.onEnter) == null ? void 0 : _b.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragover\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n (_a = _options.onOver) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"dragleave\", (event) => {\n var _a;\n if (!isDataTypeIncluded)\n return;\n event.preventDefault();\n counter -= 1;\n if (counter === 0)\n isOverDropZone.value = false;\n (_a = _options.onLeave) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n useEventListener(target, \"drop\", (event) => {\n var _a;\n event.preventDefault();\n counter = 0;\n isOverDropZone.value = false;\n (_a = _options.onDrop) == null ? void 0 : _a.call(_options, getFiles(event), event);\n });\n }\n return {\n files,\n isOverDropZone\n };\n}\n\nfunction useResizeObserver(target, callback, options = {}) {\n const { window = defaultWindow, ...observerOptions } = options;\n let observer;\n const isSupported = useSupported(() => window && \"ResizeObserver\" in window);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = vueDemi.computed(() => {\n const _targets = shared.toValue(target);\n return Array.isArray(_targets) ? _targets.map((el) => unrefElement(el)) : [unrefElement(_targets)];\n });\n const stopWatch = vueDemi.watch(\n targets,\n (els) => {\n cleanup();\n if (isSupported.value && window) {\n observer = new ResizeObserver(callback);\n for (const _el of els) {\n if (_el)\n observer.observe(_el, observerOptions);\n }\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n cleanup();\n stopWatch();\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n stop\n };\n}\n\nfunction useElementBounding(target, options = {}) {\n const {\n reset = true,\n windowResize = true,\n windowScroll = true,\n immediate = true,\n updateTiming = \"sync\"\n } = options;\n const height = vueDemi.ref(0);\n const bottom = vueDemi.ref(0);\n const left = vueDemi.ref(0);\n const right = vueDemi.ref(0);\n const top = vueDemi.ref(0);\n const width = vueDemi.ref(0);\n const x = vueDemi.ref(0);\n const y = vueDemi.ref(0);\n function recalculate() {\n const el = unrefElement(target);\n if (!el) {\n if (reset) {\n height.value = 0;\n bottom.value = 0;\n left.value = 0;\n right.value = 0;\n top.value = 0;\n width.value = 0;\n x.value = 0;\n y.value = 0;\n }\n return;\n }\n const rect = el.getBoundingClientRect();\n height.value = rect.height;\n bottom.value = rect.bottom;\n left.value = rect.left;\n right.value = rect.right;\n top.value = rect.top;\n width.value = rect.width;\n x.value = rect.x;\n y.value = rect.y;\n }\n function update() {\n if (updateTiming === \"sync\")\n recalculate();\n else if (updateTiming === \"next-frame\")\n requestAnimationFrame(() => recalculate());\n }\n useResizeObserver(target, update);\n vueDemi.watch(() => unrefElement(target), (ele) => !ele && update());\n useMutationObserver(target, update, {\n attributeFilter: [\"style\", \"class\"]\n });\n if (windowScroll)\n useEventListener(\"scroll\", update, { capture: true, passive: true });\n if (windowResize)\n useEventListener(\"resize\", update, { passive: true });\n shared.tryOnMounted(() => {\n if (immediate)\n update();\n });\n return {\n height,\n bottom,\n left,\n right,\n top,\n width,\n x,\n y,\n update\n };\n}\n\nfunction useElementByPoint(options) {\n const {\n x,\n y,\n document = defaultDocument,\n multiple,\n interval = \"requestAnimationFrame\",\n immediate = true\n } = options;\n const isSupported = useSupported(() => {\n if (shared.toValue(multiple))\n return document && \"elementsFromPoint\" in document;\n return document && \"elementFromPoint\" in document;\n });\n const element = vueDemi.ref(null);\n const cb = () => {\n var _a, _b;\n element.value = shared.toValue(multiple) ? (_a = document == null ? void 0 : document.elementsFromPoint(shared.toValue(x), shared.toValue(y))) != null ? _a : [] : (_b = document == null ? void 0 : document.elementFromPoint(shared.toValue(x), shared.toValue(y))) != null ? _b : null;\n };\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : shared.useIntervalFn(cb, interval, { immediate });\n return {\n isSupported,\n element,\n ...controls\n };\n}\n\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window = defaultWindow\n } = options;\n const isHovered = vueDemi.ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n const { window = defaultWindow, box = \"content-box\" } = options;\n const isSVG = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = unrefElement(target)) == null ? void 0 : _a.namespaceURI) == null ? void 0 : _b.includes(\"svg\");\n });\n const width = vueDemi.ref(initialSize.width);\n const height = vueDemi.ref(initialSize.height);\n const { stop: stop1 } = useResizeObserver(\n target,\n ([entry]) => {\n const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n if (window && isSVG.value) {\n const $elem = unrefElement(target);\n if ($elem) {\n const rect = $elem.getBoundingClientRect();\n width.value = rect.width;\n height.value = rect.height;\n }\n } else {\n if (boxSize) {\n const formatBoxSize = Array.isArray(boxSize) ? boxSize : [boxSize];\n width.value = formatBoxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n height.value = formatBoxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n } else {\n width.value = entry.contentRect.width;\n height.value = entry.contentRect.height;\n }\n }\n },\n options\n );\n shared.tryOnMounted(() => {\n const ele = unrefElement(target);\n if (ele) {\n width.value = \"offsetWidth\" in ele ? ele.offsetWidth : initialSize.width;\n height.value = \"offsetHeight\" in ele ? ele.offsetHeight : initialSize.height;\n }\n });\n const stop2 = vueDemi.watch(\n () => unrefElement(target),\n (ele) => {\n width.value = ele ? initialSize.width : 0;\n height.value = ele ? initialSize.height : 0;\n }\n );\n function stop() {\n stop1();\n stop2();\n }\n return {\n width,\n height,\n stop\n };\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n const targets = vueDemi.computed(() => {\n const _target = shared.toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(shared.notNullish);\n });\n let cleanup = shared.noop;\n const isActive = vueDemi.ref(immediate);\n const stopWatch = isSupported.value ? vueDemi.watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = shared.noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : shared.noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n shared.tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\n\nfunction useElementVisibility(element, options = {}) {\n const { window = defaultWindow, scrollTarget, threshold = 0 } = options;\n const elementIsVisible = vueDemi.ref(false);\n useIntersectionObserver(\n element,\n (intersectionObserverEntries) => {\n let isIntersecting = elementIsVisible.value;\n let latestTime = 0;\n for (const entry of intersectionObserverEntries) {\n if (entry.time >= latestTime) {\n latestTime = entry.time;\n isIntersecting = entry.isIntersecting;\n }\n }\n elementIsVisible.value = isIntersecting;\n },\n {\n root: scrollTarget,\n window,\n threshold\n }\n );\n return elementIsVisible;\n}\n\nconst events = /* @__PURE__ */ new Map();\n\nfunction useEventBus(key) {\n const scope = vueDemi.getCurrentScope();\n function on(listener) {\n var _a;\n const listeners = events.get(key) || /* @__PURE__ */ new Set();\n listeners.add(listener);\n events.set(key, listeners);\n const _off = () => off(listener);\n (_a = scope == null ? void 0 : scope.cleanups) == null ? void 0 : _a.push(_off);\n return _off;\n }\n function once(listener) {\n function _listener(...args) {\n off(_listener);\n listener(...args);\n }\n return on(_listener);\n }\n function off(listener) {\n const listeners = events.get(key);\n if (!listeners)\n return;\n listeners.delete(listener);\n if (!listeners.size)\n reset();\n }\n function reset() {\n events.delete(key);\n }\n function emit(event, payload) {\n var _a;\n (_a = events.get(key)) == null ? void 0 : _a.forEach((v) => v(event, payload));\n }\n return { on, once, off, emit, reset };\n}\n\nfunction resolveNestedOptions$1(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useEventSource(url, events = [], options = {}) {\n const event = vueDemi.ref(null);\n const data = vueDemi.ref(null);\n const status = vueDemi.ref(\"CONNECTING\");\n const eventSource = vueDemi.ref(null);\n const error = vueDemi.shallowRef(null);\n const urlRef = shared.toRef(url);\n const lastEventId = vueDemi.shallowRef(null);\n let explicitlyClosed = false;\n let retried = 0;\n const {\n withCredentials = false,\n immediate = true\n } = options;\n const close = () => {\n if (shared.isClient && eventSource.value) {\n eventSource.value.close();\n eventSource.value = null;\n status.value = \"CLOSED\";\n explicitlyClosed = true;\n }\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const es = new EventSource(urlRef.value, { withCredentials });\n status.value = \"CONNECTING\";\n eventSource.value = es;\n es.onopen = () => {\n status.value = \"OPEN\";\n error.value = null;\n };\n es.onerror = (e) => {\n status.value = \"CLOSED\";\n error.value = e;\n if (es.readyState === 2 && !explicitlyClosed && options.autoReconnect) {\n es.close();\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions$1(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n es.onmessage = (e) => {\n event.value = null;\n data.value = e.data;\n lastEventId.value = e.lastEventId;\n };\n for (const event_name of events) {\n useEventListener(es, event_name, (e) => {\n event.value = event_name;\n data.value = e.data || null;\n });\n }\n };\n const open = () => {\n if (!shared.isClient)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n vueDemi.watch(urlRef, open, { immediate: true });\n shared.tryOnScopeDispose(close);\n return {\n eventSource,\n event,\n data,\n status,\n error,\n open,\n close,\n lastEventId\n };\n}\n\nfunction useEyeDropper(options = {}) {\n const { initialValue = \"\" } = options;\n const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n const sRGBHex = vueDemi.ref(initialValue);\n async function open(openOptions) {\n if (!isSupported.value)\n return;\n const eyeDropper = new window.EyeDropper();\n const result = await eyeDropper.open(openOptions);\n sRGBHex.value = result.sRGBHex;\n return result;\n }\n return { isSupported, sRGBHex, open };\n}\n\nfunction useFavicon(newIcon = null, options = {}) {\n const {\n baseUrl = \"\",\n rel = \"icon\",\n document = defaultDocument\n } = options;\n const favicon = shared.toRef(newIcon);\n const applyIcon = (icon) => {\n const elements = document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`);\n if (!elements || elements.length === 0) {\n const link = document == null ? void 0 : document.createElement(\"link\");\n if (link) {\n link.rel = rel;\n link.href = `${baseUrl}${icon}`;\n link.type = `image/${icon.split(\".\").pop()}`;\n document == null ? void 0 : document.head.append(link);\n }\n return;\n }\n elements == null ? void 0 : elements.forEach((el) => el.href = `${baseUrl}${icon}`);\n };\n vueDemi.watch(\n favicon,\n (i, o) => {\n if (typeof i === \"string\" && i !== o)\n applyIcon(i);\n },\n { immediate: true }\n );\n return favicon;\n}\n\nconst payloadMapping = {\n json: \"application/json\",\n text: \"text/plain\"\n};\nfunction isFetchOptions(obj) {\n return obj && shared.containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\", \"updateDataOnError\");\n}\nconst reAbsolute = /^(?:[a-z][a-z\\d+\\-.]*:)?\\/\\//i;\nfunction isAbsoluteURL(url) {\n return reAbsolute.test(url);\n}\nfunction headersToObject(headers) {\n if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n return Object.fromEntries(headers.entries());\n return headers;\n}\nfunction combineCallbacks(combination, ...callbacks) {\n if (combination === \"overwrite\") {\n return async (ctx) => {\n const callback = callbacks[callbacks.length - 1];\n if (callback)\n return { ...ctx, ...await callback(ctx) };\n return ctx;\n };\n } else {\n return async (ctx) => {\n for (const callback of callbacks) {\n if (callback)\n ctx = { ...ctx, ...await callback(ctx) };\n }\n return ctx;\n };\n }\n}\nfunction createFetch(config = {}) {\n const _combination = config.combination || \"chain\";\n const _options = config.options || {};\n const _fetchOptions = config.fetchOptions || {};\n function useFactoryFetch(url, ...args) {\n const computedUrl = vueDemi.computed(() => {\n const baseUrl = shared.toValue(config.baseUrl);\n const targetUrl = shared.toValue(url);\n return baseUrl && !isAbsoluteURL(targetUrl) ? joinPaths(baseUrl, targetUrl) : targetUrl;\n });\n let options = _options;\n let fetchOptions = _fetchOptions;\n if (args.length > 0) {\n if (isFetchOptions(args[0])) {\n options = {\n ...options,\n ...args[0],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[0].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[0].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[0].onFetchError)\n };\n } else {\n fetchOptions = {\n ...fetchOptions,\n ...args[0],\n headers: {\n ...headersToObject(fetchOptions.headers) || {},\n ...headersToObject(args[0].headers) || {}\n }\n };\n }\n }\n if (args.length > 1 && isFetchOptions(args[1])) {\n options = {\n ...options,\n ...args[1],\n beforeFetch: combineCallbacks(_combination, _options.beforeFetch, args[1].beforeFetch),\n afterFetch: combineCallbacks(_combination, _options.afterFetch, args[1].afterFetch),\n onFetchError: combineCallbacks(_combination, _options.onFetchError, args[1].onFetchError)\n };\n }\n return useFetch(computedUrl, fetchOptions, options);\n }\n return useFactoryFetch;\n}\nfunction useFetch(url, ...args) {\n var _a;\n const supportsAbort = typeof AbortController === \"function\";\n let fetchOptions = {};\n let options = {\n immediate: true,\n refetch: false,\n timeout: 0,\n updateDataOnError: false\n };\n const config = {\n method: \"GET\",\n type: \"text\",\n payload: void 0\n };\n if (args.length > 0) {\n if (isFetchOptions(args[0]))\n options = { ...options, ...args[0] };\n else\n fetchOptions = args[0];\n }\n if (args.length > 1) {\n if (isFetchOptions(args[1]))\n options = { ...options, ...args[1] };\n }\n const {\n fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n initialData,\n timeout\n } = options;\n const responseEvent = shared.createEventHook();\n const errorEvent = shared.createEventHook();\n const finallyEvent = shared.createEventHook();\n const isFinished = vueDemi.ref(false);\n const isFetching = vueDemi.ref(false);\n const aborted = vueDemi.ref(false);\n const statusCode = vueDemi.ref(null);\n const response = vueDemi.shallowRef(null);\n const error = vueDemi.shallowRef(null);\n const data = vueDemi.shallowRef(initialData || null);\n const canAbort = vueDemi.computed(() => supportsAbort && isFetching.value);\n let controller;\n let timer;\n const abort = () => {\n if (supportsAbort) {\n controller == null ? void 0 : controller.abort();\n controller = new AbortController();\n controller.signal.onabort = () => aborted.value = true;\n fetchOptions = {\n ...fetchOptions,\n signal: controller.signal\n };\n }\n };\n const loading = (isLoading) => {\n isFetching.value = isLoading;\n isFinished.value = !isLoading;\n };\n if (timeout)\n timer = shared.useTimeoutFn(abort, timeout, { immediate: false });\n let executeCounter = 0;\n const execute = async (throwOnFailed = false) => {\n var _a2, _b;\n abort();\n loading(true);\n error.value = null;\n statusCode.value = null;\n aborted.value = false;\n executeCounter += 1;\n const currentExecuteCounter = executeCounter;\n const defaultFetchOptions = {\n method: config.method,\n headers: {}\n };\n if (config.payload) {\n const headers = headersToObject(defaultFetchOptions.headers);\n const payload = shared.toValue(config.payload);\n if (!config.payloadType && payload && Object.getPrototypeOf(payload) === Object.prototype && !(payload instanceof FormData))\n config.payloadType = \"json\";\n if (config.payloadType)\n headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n }\n let isCanceled = false;\n const context = {\n url: shared.toValue(url),\n options: {\n ...defaultFetchOptions,\n ...fetchOptions\n },\n cancel: () => {\n isCanceled = true;\n }\n };\n if (options.beforeFetch)\n Object.assign(context, await options.beforeFetch(context));\n if (isCanceled || !fetch) {\n loading(false);\n return Promise.resolve(null);\n }\n let responseData = null;\n if (timer)\n timer.start();\n return fetch(\n context.url,\n {\n ...defaultFetchOptions,\n ...context.options,\n headers: {\n ...headersToObject(defaultFetchOptions.headers),\n ...headersToObject((_b = context.options) == null ? void 0 : _b.headers)\n }\n }\n ).then(async (fetchResponse) => {\n response.value = fetchResponse;\n statusCode.value = fetchResponse.status;\n responseData = await fetchResponse.clone()[config.type]();\n if (!fetchResponse.ok) {\n data.value = initialData || null;\n throw new Error(fetchResponse.statusText);\n }\n if (options.afterFetch) {\n ({ data: responseData } = await options.afterFetch({\n data: responseData,\n response: fetchResponse\n }));\n }\n data.value = responseData;\n responseEvent.trigger(fetchResponse);\n return fetchResponse;\n }).catch(async (fetchError) => {\n let errorData = fetchError.message || fetchError.name;\n if (options.onFetchError) {\n ({ error: errorData, data: responseData } = await options.onFetchError({\n data: responseData,\n error: fetchError,\n response: response.value\n }));\n }\n error.value = errorData;\n if (options.updateDataOnError)\n data.value = responseData;\n errorEvent.trigger(fetchError);\n if (throwOnFailed)\n throw fetchError;\n return null;\n }).finally(() => {\n if (currentExecuteCounter === executeCounter)\n loading(false);\n if (timer)\n timer.stop();\n finallyEvent.trigger(null);\n });\n };\n const refetch = shared.toRef(options.refetch);\n vueDemi.watch(\n [\n refetch,\n shared.toRef(url)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n const shell = {\n isFinished: vueDemi.readonly(isFinished),\n isFetching: vueDemi.readonly(isFetching),\n statusCode,\n response,\n error,\n data,\n canAbort,\n aborted,\n abort,\n execute,\n onFetchResponse: responseEvent.on,\n onFetchError: errorEvent.on,\n onFetchFinally: finallyEvent.on,\n // method\n get: setMethod(\"GET\"),\n put: setMethod(\"PUT\"),\n post: setMethod(\"POST\"),\n delete: setMethod(\"DELETE\"),\n patch: setMethod(\"PATCH\"),\n head: setMethod(\"HEAD\"),\n options: setMethod(\"OPTIONS\"),\n // type\n json: setType(\"json\"),\n text: setType(\"text\"),\n blob: setType(\"blob\"),\n arrayBuffer: setType(\"arrayBuffer\"),\n formData: setType(\"formData\")\n };\n function setMethod(method) {\n return (payload, payloadType) => {\n if (!isFetching.value) {\n config.method = method;\n config.payload = payload;\n config.payloadType = payloadType;\n if (vueDemi.isRef(config.payload)) {\n vueDemi.watch(\n [\n refetch,\n shared.toRef(config.payload)\n ],\n ([refetch2]) => refetch2 && execute(),\n { deep: true }\n );\n }\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n function waitUntilFinished() {\n return new Promise((resolve, reject) => {\n shared.until(isFinished).toBe(true).then(() => resolve(shell)).catch((error2) => reject(error2));\n });\n }\n function setType(type) {\n return () => {\n if (!isFetching.value) {\n config.type = type;\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n }\n return void 0;\n };\n }\n if (options.immediate)\n Promise.resolve().then(() => execute());\n return {\n ...shell,\n then(onFulfilled, onRejected) {\n return waitUntilFinished().then(onFulfilled, onRejected);\n }\n };\n}\nfunction joinPaths(start, end) {\n if (!start.endsWith(\"/\") && !end.startsWith(\"/\"))\n return `${start}/${end}`;\n return `${start}${end}`;\n}\n\nconst DEFAULT_OPTIONS = {\n multiple: true,\n accept: \"*\",\n reset: false,\n directory: false\n};\nfunction useFileDialog(options = {}) {\n const {\n document = defaultDocument\n } = options;\n const files = vueDemi.ref(null);\n const { on: onChange, trigger } = shared.createEventHook();\n let input;\n if (document) {\n input = document.createElement(\"input\");\n input.type = \"file\";\n input.onchange = (event) => {\n const result = event.target;\n files.value = result.files;\n trigger(files.value);\n };\n }\n const reset = () => {\n files.value = null;\n if (input && input.value) {\n input.value = \"\";\n trigger(null);\n }\n };\n const open = (localOptions) => {\n if (!input)\n return;\n const _options = {\n ...DEFAULT_OPTIONS,\n ...options,\n ...localOptions\n };\n input.multiple = _options.multiple;\n input.accept = _options.accept;\n input.webkitdirectory = _options.directory;\n if (shared.hasOwn(_options, \"capture\"))\n input.capture = _options.capture;\n if (_options.reset)\n reset();\n input.click();\n };\n return {\n files: vueDemi.readonly(files),\n open,\n reset,\n onChange\n };\n}\n\nfunction useFileSystemAccess(options = {}) {\n const {\n window: _window = defaultWindow,\n dataType = \"Text\"\n } = options;\n const window = _window;\n const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n const fileHandle = vueDemi.ref();\n const data = vueDemi.ref();\n const file = vueDemi.ref();\n const fileName = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n });\n const fileMIME = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n });\n const fileSize = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n });\n const fileLastModified = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = file.value) == null ? void 0 : _a.lastModified) != null ? _b : 0;\n });\n async function open(_options = {}) {\n if (!isSupported.value)\n return;\n const [handle] = await window.showOpenFilePicker({ ...shared.toValue(options), ..._options });\n fileHandle.value = handle;\n await updateData();\n }\n async function create(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n data.value = void 0;\n await updateData();\n }\n async function save(_options = {}) {\n if (!isSupported.value)\n return;\n if (!fileHandle.value)\n return saveAs(_options);\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function saveAs(_options = {}) {\n if (!isSupported.value)\n return;\n fileHandle.value = await window.showSaveFilePicker({ ...options, ..._options });\n if (data.value) {\n const writableStream = await fileHandle.value.createWritable();\n await writableStream.write(data.value);\n await writableStream.close();\n }\n await updateFile();\n }\n async function updateFile() {\n var _a;\n file.value = await ((_a = fileHandle.value) == null ? void 0 : _a.getFile());\n }\n async function updateData() {\n var _a, _b;\n await updateFile();\n const type = shared.toValue(dataType);\n if (type === \"Text\")\n data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n else if (type === \"ArrayBuffer\")\n data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n else if (type === \"Blob\")\n data.value = file.value;\n }\n vueDemi.watch(() => shared.toValue(dataType), updateData);\n return {\n isSupported,\n data,\n file,\n fileName,\n fileMIME,\n fileSize,\n fileLastModified,\n open,\n create,\n save,\n saveAs,\n updateData\n };\n}\n\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = vueDemi.ref(false);\n const targetElement = vueDemi.computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = vueDemi.computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n vueDemi.watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n const activeElement = useActiveElement(options);\n const targetElement = vueDemi.computed(() => unrefElement(target));\n const focused = vueDemi.computed(() => targetElement.value && activeElement.value ? targetElement.value.contains(activeElement.value) : false);\n return { focused };\n}\n\nfunction useFps(options) {\n var _a;\n const fps = vueDemi.ref(0);\n if (typeof performance === \"undefined\")\n return fps;\n const every = (_a = options == null ? void 0 : options.every) != null ? _a : 10;\n let last = performance.now();\n let ticks = 0;\n useRafFn(() => {\n ticks += 1;\n if (ticks >= every) {\n const now = performance.now();\n const diff = now - last;\n fps.value = Math.round(1e3 / (diff / ticks));\n last = now;\n ticks = 0;\n }\n });\n return fps;\n}\n\nconst eventHandlers = [\n \"fullscreenchange\",\n \"webkitfullscreenchange\",\n \"webkitendfullscreen\",\n \"mozfullscreenchange\",\n \"MSFullscreenChange\"\n];\nfunction useFullscreen(target, options = {}) {\n const {\n document = defaultDocument,\n autoExit = false\n } = options;\n const targetRef = vueDemi.computed(() => {\n var _a;\n return (_a = unrefElement(target)) != null ? _a : document == null ? void 0 : document.querySelector(\"html\");\n });\n const isFullscreen = vueDemi.ref(false);\n const requestMethod = vueDemi.computed(() => {\n return [\n \"requestFullscreen\",\n \"webkitRequestFullscreen\",\n \"webkitEnterFullscreen\",\n \"webkitEnterFullScreen\",\n \"webkitRequestFullScreen\",\n \"mozRequestFullScreen\",\n \"msRequestFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const exitMethod = vueDemi.computed(() => {\n return [\n \"exitFullscreen\",\n \"webkitExitFullscreen\",\n \"webkitExitFullScreen\",\n \"webkitCancelFullScreen\",\n \"mozCancelFullScreen\",\n \"msExitFullscreen\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenEnabled = vueDemi.computed(() => {\n return [\n \"fullScreen\",\n \"webkitIsFullScreen\",\n \"webkitDisplayingFullscreen\",\n \"mozFullScreen\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document || targetRef.value && m in targetRef.value);\n });\n const fullscreenElementMethod = [\n \"fullscreenElement\",\n \"webkitFullscreenElement\",\n \"mozFullScreenElement\",\n \"msFullscreenElement\"\n ].find((m) => document && m in document);\n const isSupported = useSupported(() => targetRef.value && document && requestMethod.value !== void 0 && exitMethod.value !== void 0 && fullscreenEnabled.value !== void 0);\n const isCurrentElementFullScreen = () => {\n if (fullscreenElementMethod)\n return (document == null ? void 0 : document[fullscreenElementMethod]) === targetRef.value;\n return false;\n };\n const isElementFullScreen = () => {\n if (fullscreenEnabled.value) {\n if (document && document[fullscreenEnabled.value] != null) {\n return document[fullscreenEnabled.value];\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[fullscreenEnabled.value]) != null) {\n return Boolean(target2[fullscreenEnabled.value]);\n }\n }\n }\n return false;\n };\n async function exit() {\n if (!isSupported.value || !isFullscreen.value)\n return;\n if (exitMethod.value) {\n if ((document == null ? void 0 : document[exitMethod.value]) != null) {\n await document[exitMethod.value]();\n } else {\n const target2 = targetRef.value;\n if ((target2 == null ? void 0 : target2[exitMethod.value]) != null)\n await target2[exitMethod.value]();\n }\n }\n isFullscreen.value = false;\n }\n async function enter() {\n if (!isSupported.value || isFullscreen.value)\n return;\n if (isElementFullScreen())\n await exit();\n const target2 = targetRef.value;\n if (requestMethod.value && (target2 == null ? void 0 : target2[requestMethod.value]) != null) {\n await target2[requestMethod.value]();\n isFullscreen.value = true;\n }\n }\n async function toggle() {\n await (isFullscreen.value ? exit() : enter());\n }\n const handlerCallback = () => {\n const isElementFullScreenValue = isElementFullScreen();\n if (!isElementFullScreenValue || isElementFullScreenValue && isCurrentElementFullScreen())\n isFullscreen.value = isElementFullScreenValue;\n };\n useEventListener(document, eventHandlers, handlerCallback, false);\n useEventListener(() => unrefElement(targetRef), eventHandlers, handlerCallback, false);\n if (autoExit)\n shared.tryOnScopeDispose(exit);\n return {\n isSupported,\n isFullscreen,\n enter,\n exit,\n toggle\n };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n return vueDemi.computed(() => {\n if (gamepad.value) {\n return {\n buttons: {\n a: gamepad.value.buttons[0],\n b: gamepad.value.buttons[1],\n x: gamepad.value.buttons[2],\n y: gamepad.value.buttons[3]\n },\n bumper: {\n left: gamepad.value.buttons[4],\n right: gamepad.value.buttons[5]\n },\n triggers: {\n left: gamepad.value.buttons[6],\n right: gamepad.value.buttons[7]\n },\n stick: {\n left: {\n horizontal: gamepad.value.axes[0],\n vertical: gamepad.value.axes[1],\n button: gamepad.value.buttons[10]\n },\n right: {\n horizontal: gamepad.value.axes[2],\n vertical: gamepad.value.axes[3],\n button: gamepad.value.buttons[11]\n }\n },\n dpad: {\n up: gamepad.value.buttons[12],\n down: gamepad.value.buttons[13],\n left: gamepad.value.buttons[14],\n right: gamepad.value.buttons[15]\n },\n back: gamepad.value.buttons[8],\n start: gamepad.value.buttons[9]\n };\n }\n return null;\n });\n}\nfunction useGamepad(options = {}) {\n const {\n navigator = defaultNavigator\n } = options;\n const isSupported = useSupported(() => navigator && \"getGamepads\" in navigator);\n const gamepads = vueDemi.ref([]);\n const onConnectedHook = shared.createEventHook();\n const onDisconnectedHook = shared.createEventHook();\n const stateFromGamepad = (gamepad) => {\n const hapticActuators = [];\n const vibrationActuator = \"vibrationActuator\" in gamepad ? gamepad.vibrationActuator : null;\n if (vibrationActuator)\n hapticActuators.push(vibrationActuator);\n if (gamepad.hapticActuators)\n hapticActuators.push(...gamepad.hapticActuators);\n return {\n id: gamepad.id,\n index: gamepad.index,\n connected: gamepad.connected,\n mapping: gamepad.mapping,\n timestamp: gamepad.timestamp,\n vibrationActuator: gamepad.vibrationActuator,\n hapticActuators,\n axes: gamepad.axes.map((axes) => axes),\n buttons: gamepad.buttons.map((button) => ({ pressed: button.pressed, touched: button.touched, value: button.value }))\n };\n };\n const updateGamepadState = () => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n gamepads.value[gamepad.index] = stateFromGamepad(gamepad);\n }\n };\n const { isActive, pause, resume } = useRafFn(updateGamepadState);\n const onGamepadConnected = (gamepad) => {\n if (!gamepads.value.some(({ index }) => index === gamepad.index)) {\n gamepads.value.push(stateFromGamepad(gamepad));\n onConnectedHook.trigger(gamepad.index);\n }\n resume();\n };\n const onGamepadDisconnected = (gamepad) => {\n gamepads.value = gamepads.value.filter((x) => x.index !== gamepad.index);\n onDisconnectedHook.trigger(gamepad.index);\n };\n useEventListener(\"gamepadconnected\", (e) => onGamepadConnected(e.gamepad));\n useEventListener(\"gamepaddisconnected\", (e) => onGamepadDisconnected(e.gamepad));\n shared.tryOnMounted(() => {\n const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n for (const gamepad of _gamepads) {\n if (gamepad && gamepads.value[gamepad.index])\n onGamepadConnected(gamepad);\n }\n });\n pause();\n return {\n isSupported,\n onConnected: onConnectedHook.on,\n onDisconnected: onDisconnectedHook.on,\n gamepads,\n pause,\n resume,\n isActive\n };\n}\n\nfunction useGeolocation(options = {}) {\n const {\n enableHighAccuracy = true,\n maximumAge = 3e4,\n timeout = 27e3,\n navigator = defaultNavigator,\n immediate = true\n } = options;\n const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n const locatedAt = vueDemi.ref(null);\n const error = vueDemi.shallowRef(null);\n const coords = vueDemi.ref({\n accuracy: 0,\n latitude: Number.POSITIVE_INFINITY,\n longitude: Number.POSITIVE_INFINITY,\n altitude: null,\n altitudeAccuracy: null,\n heading: null,\n speed: null\n });\n function updatePosition(position) {\n locatedAt.value = position.timestamp;\n coords.value = position.coords;\n error.value = null;\n }\n let watcher;\n function resume() {\n if (isSupported.value) {\n watcher = navigator.geolocation.watchPosition(\n updatePosition,\n (err) => error.value = err,\n {\n enableHighAccuracy,\n maximumAge,\n timeout\n }\n );\n }\n }\n if (immediate)\n resume();\n function pause() {\n if (watcher && navigator)\n navigator.geolocation.clearWatch(watcher);\n }\n shared.tryOnScopeDispose(() => {\n pause();\n });\n return {\n isSupported,\n coords,\n locatedAt,\n error,\n resume,\n pause\n };\n}\n\nconst defaultEvents$1 = [\"mousemove\", \"mousedown\", \"resize\", \"keydown\", \"touchstart\", \"wheel\"];\nconst oneMinute = 6e4;\nfunction useIdle(timeout = oneMinute, options = {}) {\n const {\n initialState = false,\n listenForVisibilityChange = true,\n events = defaultEvents$1,\n window = defaultWindow,\n eventFilter = shared.throttleFilter(50)\n } = options;\n const idle = vueDemi.ref(initialState);\n const lastActive = vueDemi.ref(shared.timestamp());\n let timer;\n const reset = () => {\n idle.value = false;\n clearTimeout(timer);\n timer = setTimeout(() => idle.value = true, timeout);\n };\n const onEvent = shared.createFilterWrapper(\n eventFilter,\n () => {\n lastActive.value = shared.timestamp();\n reset();\n }\n );\n if (window) {\n const document = window.document;\n for (const event of events)\n useEventListener(window, event, onEvent, { passive: true });\n if (listenForVisibilityChange) {\n useEventListener(document, \"visibilitychange\", () => {\n if (!document.hidden)\n onEvent();\n });\n }\n reset();\n }\n return {\n idle,\n lastActive,\n reset\n };\n}\n\nasync function loadImage(options) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n const { src, srcset, sizes, class: clazz, loading, crossorigin, referrerPolicy } = options;\n img.src = src;\n if (srcset)\n img.srcset = srcset;\n if (sizes)\n img.sizes = sizes;\n if (clazz)\n img.className = clazz;\n if (loading)\n img.loading = loading;\n if (crossorigin)\n img.crossOrigin = crossorigin;\n if (referrerPolicy)\n img.referrerPolicy = referrerPolicy;\n img.onload = () => resolve(img);\n img.onerror = reject;\n });\n}\nfunction useImage(options, asyncStateOptions = {}) {\n const state = useAsyncState(\n () => loadImage(shared.toValue(options)),\n void 0,\n {\n resetOnExecute: true,\n ...asyncStateOptions\n }\n );\n vueDemi.watch(\n () => shared.toValue(options),\n () => state.execute(asyncStateOptions.delay),\n { deep: true }\n );\n return state;\n}\n\nconst ARRIVED_STATE_THRESHOLD_PIXELS = 1;\nfunction useScroll(element, options = {}) {\n const {\n throttle = 0,\n idle = 200,\n onStop = shared.noop,\n onScroll = shared.noop,\n offset = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n },\n eventListenerOptions = {\n capture: false,\n passive: true\n },\n behavior = \"auto\",\n window = defaultWindow,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const internalX = vueDemi.ref(0);\n const internalY = vueDemi.ref(0);\n const x = vueDemi.computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo(x2, void 0);\n }\n });\n const y = vueDemi.computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo(void 0, y2);\n }\n });\n function scrollTo(_x, _y) {\n var _a, _b, _c, _d;\n if (!window)\n return;\n const _element = shared.toValue(element);\n if (!_element)\n return;\n (_c = _element instanceof Document ? window.document.body : _element) == null ? void 0 : _c.scrollTo({\n top: (_a = shared.toValue(_y)) != null ? _a : y.value,\n left: (_b = shared.toValue(_x)) != null ? _b : x.value,\n behavior: shared.toValue(behavior)\n });\n const scrollContainer = ((_d = _element == null ? void 0 : _element.document) == null ? void 0 : _d.documentElement) || (_element == null ? void 0 : _element.documentElement) || _element;\n if (x != null)\n internalX.value = scrollContainer.scrollLeft;\n if (y != null)\n internalY.value = scrollContainer.scrollTop;\n }\n const isScrolling = vueDemi.ref(false);\n const arrivedState = vueDemi.reactive({\n left: true,\n right: false,\n top: true,\n bottom: false\n });\n const directions = vueDemi.reactive({\n left: false,\n right: false,\n top: false,\n bottom: false\n });\n const onScrollEnd = (e) => {\n if (!isScrolling.value)\n return;\n isScrolling.value = false;\n directions.left = false;\n directions.right = false;\n directions.top = false;\n directions.bottom = false;\n onStop(e);\n };\n const onScrollEndDebounced = shared.useDebounceFn(onScrollEnd, throttle + idle);\n const setArrivedState = (target) => {\n var _a;\n if (!window)\n return;\n const el = ((_a = target == null ? void 0 : target.document) == null ? void 0 : _a.documentElement) || (target == null ? void 0 : target.documentElement) || unrefElement(target);\n const { display, flexDirection } = getComputedStyle(el);\n const scrollLeft = el.scrollLeft;\n directions.left = scrollLeft < internalX.value;\n directions.right = scrollLeft > internalX.value;\n const left = Math.abs(scrollLeft) <= (offset.left || 0);\n const right = Math.abs(scrollLeft) + el.clientWidth >= el.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"row-reverse\") {\n arrivedState.left = right;\n arrivedState.right = left;\n } else {\n arrivedState.left = left;\n arrivedState.right = right;\n }\n internalX.value = scrollLeft;\n let scrollTop = el.scrollTop;\n if (target === window.document && !scrollTop)\n scrollTop = window.document.body.scrollTop;\n directions.top = scrollTop < internalY.value;\n directions.bottom = scrollTop > internalY.value;\n const top = Math.abs(scrollTop) <= (offset.top || 0);\n const bottom = Math.abs(scrollTop) + el.clientHeight >= el.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n if (display === \"flex\" && flexDirection === \"column-reverse\") {\n arrivedState.top = bottom;\n arrivedState.bottom = top;\n } else {\n arrivedState.top = top;\n arrivedState.bottom = bottom;\n }\n internalY.value = scrollTop;\n };\n const onScrollHandler = (e) => {\n var _a;\n if (!window)\n return;\n const eventTarget = (_a = e.target.documentElement) != null ? _a : e.target;\n setArrivedState(eventTarget);\n isScrolling.value = true;\n onScrollEndDebounced(e);\n onScroll(e);\n };\n useEventListener(\n element,\n \"scroll\",\n throttle ? shared.useThrottleFn(onScrollHandler, throttle, true, false) : onScrollHandler,\n eventListenerOptions\n );\n shared.tryOnMounted(() => {\n try {\n const _element = shared.toValue(element);\n if (!_element)\n return;\n setArrivedState(_element);\n } catch (e) {\n onError(e);\n }\n });\n useEventListener(\n element,\n \"scrollend\",\n onScrollEnd,\n eventListenerOptions\n );\n return {\n x,\n y,\n isScrolling,\n arrivedState,\n directions,\n measure() {\n const _element = shared.toValue(element);\n if (window && _element)\n setArrivedState(_element);\n }\n };\n}\n\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\n\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n var _a;\n const {\n direction = \"bottom\",\n interval = 100,\n canLoadMore = () => true\n } = options;\n const state = vueDemi.reactive(useScroll(\n element,\n {\n ...options,\n offset: {\n [direction]: (_a = options.distance) != null ? _a : 0,\n ...options.offset\n }\n }\n ));\n const promise = vueDemi.ref();\n const isLoading = vueDemi.computed(() => !!promise.value);\n const observedElement = vueDemi.computed(() => {\n return resolveElement(shared.toValue(element));\n });\n const isElementVisible = useElementVisibility(observedElement);\n function checkAndLoad() {\n state.measure();\n if (!observedElement.value || !isElementVisible.value || !canLoadMore(observedElement.value))\n return;\n const { scrollHeight, clientHeight, scrollWidth, clientWidth } = observedElement.value;\n const isNarrower = direction === \"bottom\" || direction === \"top\" ? scrollHeight <= clientHeight : scrollWidth <= clientWidth;\n if (state.arrivedState[direction] || isNarrower) {\n if (!promise.value) {\n promise.value = Promise.all([\n onLoadMore(state),\n new Promise((resolve) => setTimeout(resolve, interval))\n ]).finally(() => {\n promise.value = null;\n vueDemi.nextTick(() => checkAndLoad());\n });\n }\n }\n }\n vueDemi.watch(\n () => [state.arrivedState[direction], isElementVisible.value],\n checkAndLoad,\n { immediate: true }\n );\n return {\n isLoading,\n reset() {\n vueDemi.nextTick(() => checkAndLoad());\n }\n };\n}\n\nconst defaultEvents = [\"mousedown\", \"mouseup\", \"keydown\", \"keyup\"];\nfunction useKeyModifier(modifier, options = {}) {\n const {\n events = defaultEvents,\n document = defaultDocument,\n initial = null\n } = options;\n const state = vueDemi.ref(initial);\n if (document) {\n events.forEach((listenerEvent) => {\n useEventListener(document, listenerEvent, (evt) => {\n if (typeof evt.getModifierState === \"function\")\n state.value = evt.getModifierState(modifier);\n });\n });\n }\n return state;\n}\n\nfunction useLocalStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.localStorage, options);\n}\n\nconst DefaultMagicKeysAliasMap = {\n ctrl: \"control\",\n command: \"meta\",\n cmd: \"meta\",\n option: \"alt\",\n up: \"arrowup\",\n down: \"arrowdown\",\n left: \"arrowleft\",\n right: \"arrowright\"\n};\n\nfunction useMagicKeys(options = {}) {\n const {\n reactive: useReactive = false,\n target = defaultWindow,\n aliasMap = DefaultMagicKeysAliasMap,\n passive = true,\n onEventFired = shared.noop\n } = options;\n const current = vueDemi.reactive(/* @__PURE__ */ new Set());\n const obj = {\n toJSON() {\n return {};\n },\n current\n };\n const refs = useReactive ? vueDemi.reactive(obj) : obj;\n const metaDeps = /* @__PURE__ */ new Set();\n const usedKeys = /* @__PURE__ */ new Set();\n function setRefs(key, value) {\n if (key in refs) {\n if (useReactive)\n refs[key] = value;\n else\n refs[key].value = value;\n }\n }\n function reset() {\n current.clear();\n for (const key of usedKeys)\n setRefs(key, false);\n }\n function updateRefs(e, value) {\n var _a, _b;\n const key = (_a = e.key) == null ? void 0 : _a.toLowerCase();\n const code = (_b = e.code) == null ? void 0 : _b.toLowerCase();\n const values = [code, key].filter(Boolean);\n if (key) {\n if (value)\n current.add(key);\n else\n current.delete(key);\n }\n for (const key2 of values) {\n usedKeys.add(key2);\n setRefs(key2, value);\n }\n if (key === \"meta\" && !value) {\n metaDeps.forEach((key2) => {\n current.delete(key2);\n setRefs(key2, false);\n });\n metaDeps.clear();\n } else if (typeof e.getModifierState === \"function\" && e.getModifierState(\"Meta\") && value) {\n [...current, ...values].forEach((key2) => metaDeps.add(key2));\n }\n }\n useEventListener(target, \"keydown\", (e) => {\n updateRefs(e, true);\n return onEventFired(e);\n }, { passive });\n useEventListener(target, \"keyup\", (e) => {\n updateRefs(e, false);\n return onEventFired(e);\n }, { passive });\n useEventListener(\"blur\", reset, { passive: true });\n useEventListener(\"focus\", reset, { passive: true });\n const proxy = new Proxy(\n refs,\n {\n get(target2, prop, rec) {\n if (typeof prop !== \"string\")\n return Reflect.get(target2, prop, rec);\n prop = prop.toLowerCase();\n if (prop in aliasMap)\n prop = aliasMap[prop];\n if (!(prop in refs)) {\n if (/[+_-]/.test(prop)) {\n const keys = prop.split(/[+_-]/g).map((i) => i.trim());\n refs[prop] = vueDemi.computed(() => keys.every((key) => shared.toValue(proxy[key])));\n } else {\n refs[prop] = vueDemi.ref(false);\n }\n }\n const r = Reflect.get(target2, prop, rec);\n return useReactive ? shared.toValue(r) : r;\n }\n }\n );\n return proxy;\n}\n\nfunction usingElRef(source, cb) {\n if (shared.toValue(source))\n cb(shared.toValue(source));\n}\nfunction timeRangeToArray(timeRanges) {\n let ranges = [];\n for (let i = 0; i < timeRanges.length; ++i)\n ranges = [...ranges, [timeRanges.start(i), timeRanges.end(i)]];\n return ranges;\n}\nfunction tracksToArray(tracks) {\n return Array.from(tracks).map(({ label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }, id) => ({ id, label, kind, language, mode, activeCues, cues, inBandMetadataTrackDispatchType }));\n}\nconst defaultOptions = {\n src: \"\",\n tracks: []\n};\nfunction useMediaControls(target, options = {}) {\n target = shared.toRef(target);\n options = {\n ...defaultOptions,\n ...options\n };\n const {\n document = defaultDocument\n } = options;\n const currentTime = vueDemi.ref(0);\n const duration = vueDemi.ref(0);\n const seeking = vueDemi.ref(false);\n const volume = vueDemi.ref(1);\n const waiting = vueDemi.ref(false);\n const ended = vueDemi.ref(false);\n const playing = vueDemi.ref(false);\n const rate = vueDemi.ref(1);\n const stalled = vueDemi.ref(false);\n const buffered = vueDemi.ref([]);\n const tracks = vueDemi.ref([]);\n const selectedTrack = vueDemi.ref(-1);\n const isPictureInPicture = vueDemi.ref(false);\n const muted = vueDemi.ref(false);\n const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n const sourceErrorEvent = shared.createEventHook();\n const disableTrack = (track) => {\n usingElRef(target, (el) => {\n if (track) {\n const id = typeof track === \"number\" ? track : track.id;\n el.textTracks[id].mode = \"disabled\";\n } else {\n for (let i = 0; i < el.textTracks.length; ++i)\n el.textTracks[i].mode = \"disabled\";\n }\n selectedTrack.value = -1;\n });\n };\n const enableTrack = (track, disableTracks = true) => {\n usingElRef(target, (el) => {\n const id = typeof track === \"number\" ? track : track.id;\n if (disableTracks)\n disableTrack();\n el.textTracks[id].mode = \"showing\";\n selectedTrack.value = id;\n });\n };\n const togglePictureInPicture = () => {\n return new Promise((resolve, reject) => {\n usingElRef(target, async (el) => {\n if (supportsPictureInPicture) {\n if (!isPictureInPicture.value) {\n el.requestPictureInPicture().then(resolve).catch(reject);\n } else {\n document.exitPictureInPicture().then(resolve).catch(reject);\n }\n }\n });\n });\n };\n vueDemi.watchEffect(() => {\n if (!document)\n return;\n const el = shared.toValue(target);\n if (!el)\n return;\n const src = shared.toValue(options.src);\n let sources = [];\n if (!src)\n return;\n if (typeof src === \"string\")\n sources = [{ src }];\n else if (Array.isArray(src))\n sources = src;\n else if (shared.isObject(src))\n sources = [src];\n el.querySelectorAll(\"source\").forEach((e) => {\n e.removeEventListener(\"error\", sourceErrorEvent.trigger);\n e.remove();\n });\n sources.forEach(({ src: src2, type }) => {\n const source = document.createElement(\"source\");\n source.setAttribute(\"src\", src2);\n source.setAttribute(\"type\", type || \"\");\n source.addEventListener(\"error\", sourceErrorEvent.trigger);\n el.appendChild(source);\n });\n el.load();\n });\n shared.tryOnScopeDispose(() => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n });\n vueDemi.watch([target, volume], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.volume = volume.value;\n });\n vueDemi.watch([target, muted], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.muted = muted.value;\n });\n vueDemi.watch([target, rate], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.playbackRate = rate.value;\n });\n vueDemi.watchEffect(() => {\n if (!document)\n return;\n const textTracks = shared.toValue(options.tracks);\n const el = shared.toValue(target);\n if (!textTracks || !textTracks.length || !el)\n return;\n el.querySelectorAll(\"track\").forEach((e) => e.remove());\n textTracks.forEach(({ default: isDefault, kind, label, src, srcLang }, i) => {\n const track = document.createElement(\"track\");\n track.default = isDefault || false;\n track.kind = kind;\n track.label = label;\n track.src = src;\n track.srclang = srcLang;\n if (track.default)\n selectedTrack.value = i;\n el.appendChild(track);\n });\n });\n const { ignoreUpdates: ignoreCurrentTimeUpdates } = shared.watchIgnorable(currentTime, (time) => {\n const el = shared.toValue(target);\n if (!el)\n return;\n el.currentTime = time;\n });\n const { ignoreUpdates: ignorePlayingUpdates } = shared.watchIgnorable(playing, (isPlaying) => {\n const el = shared.toValue(target);\n if (!el)\n return;\n if (isPlaying)\n el.play();\n else\n el.pause();\n });\n useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = shared.toValue(target).currentTime));\n useEventListener(target, \"durationchange\", () => duration.value = shared.toValue(target).duration);\n useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(shared.toValue(target).buffered));\n useEventListener(target, \"seeking\", () => seeking.value = true);\n useEventListener(target, \"seeked\", () => seeking.value = false);\n useEventListener(target, [\"waiting\", \"loadstart\"], () => {\n waiting.value = true;\n ignorePlayingUpdates(() => playing.value = false);\n });\n useEventListener(target, \"loadeddata\", () => waiting.value = false);\n useEventListener(target, \"playing\", () => {\n waiting.value = false;\n ended.value = false;\n ignorePlayingUpdates(() => playing.value = true);\n });\n useEventListener(target, \"ratechange\", () => rate.value = shared.toValue(target).playbackRate);\n useEventListener(target, \"stalled\", () => stalled.value = true);\n useEventListener(target, \"ended\", () => ended.value = true);\n useEventListener(target, \"pause\", () => ignorePlayingUpdates(() => playing.value = false));\n useEventListener(target, \"play\", () => ignorePlayingUpdates(() => playing.value = true));\n useEventListener(target, \"enterpictureinpicture\", () => isPictureInPicture.value = true);\n useEventListener(target, \"leavepictureinpicture\", () => isPictureInPicture.value = false);\n useEventListener(target, \"volumechange\", () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n volume.value = el.volume;\n muted.value = el.muted;\n });\n const listeners = [];\n const stop = vueDemi.watch([target], () => {\n const el = shared.toValue(target);\n if (!el)\n return;\n stop();\n listeners[0] = useEventListener(el.textTracks, \"addtrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[1] = useEventListener(el.textTracks, \"removetrack\", () => tracks.value = tracksToArray(el.textTracks));\n listeners[2] = useEventListener(el.textTracks, \"change\", () => tracks.value = tracksToArray(el.textTracks));\n });\n shared.tryOnScopeDispose(() => listeners.forEach((listener) => listener()));\n return {\n currentTime,\n duration,\n waiting,\n seeking,\n ended,\n stalled,\n buffered,\n playing,\n rate,\n // Volume\n volume,\n muted,\n // Tracks\n tracks,\n selectedTrack,\n enableTrack,\n disableTrack,\n // Picture in Picture\n supportsPictureInPicture,\n togglePictureInPicture,\n isPictureInPicture,\n // Events\n onSourceError: sourceErrorEvent.on\n };\n}\n\nfunction getMapVue2Compat() {\n const data = vueDemi.shallowReactive({});\n return {\n get: (key) => data[key],\n set: (key, value) => vueDemi.set(data, key, value),\n has: (key) => shared.hasOwn(data, key),\n delete: (key) => vueDemi.del(data, key),\n clear: () => {\n Object.keys(data).forEach((key) => {\n vueDemi.del(data, key);\n });\n }\n };\n}\nfunction useMemoize(resolver, options) {\n const initCache = () => {\n if (options == null ? void 0 : options.cache)\n return vueDemi.shallowReactive(options.cache);\n if (vueDemi.isVue2)\n return getMapVue2Compat();\n return vueDemi.shallowReactive(/* @__PURE__ */ new Map());\n };\n const cache = initCache();\n const generateKey = (...args) => (options == null ? void 0 : options.getKey) ? options.getKey(...args) : JSON.stringify(args);\n const _loadData = (key, ...args) => {\n cache.set(key, resolver(...args));\n return cache.get(key);\n };\n const loadData = (...args) => _loadData(generateKey(...args), ...args);\n const deleteData = (...args) => {\n cache.delete(generateKey(...args));\n };\n const clearData = () => {\n cache.clear();\n };\n const memoized = (...args) => {\n const key = generateKey(...args);\n if (cache.has(key))\n return cache.get(key);\n return _loadData(key, ...args);\n };\n memoized.load = loadData;\n memoized.delete = deleteData;\n memoized.clear = clearData;\n memoized.generateKey = generateKey;\n memoized.cache = cache;\n return memoized;\n}\n\nfunction useMemory(options = {}) {\n const memory = vueDemi.ref();\n const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n if (isSupported.value) {\n const { interval = 1e3 } = options;\n shared.useIntervalFn(() => {\n memory.value = performance.memory;\n }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n }\n return { isSupported, memory };\n}\n\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window = defaultWindow,\n target = window,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n const x = vueDemi.ref(initialValue.x);\n const y = vueDemi.ref(initialValue.y);\n const sourceType = vueDemi.ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window.scrollX;\n y.value = pos[1] + window.scrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\n\nfunction useMouseInElement(target, options = {}) {\n const {\n handleOutside = true,\n window = defaultWindow\n } = options;\n const type = options.type || \"page\";\n const { x, y, sourceType } = useMouse(options);\n const targetRef = vueDemi.ref(target != null ? target : window == null ? void 0 : window.document.body);\n const elementX = vueDemi.ref(0);\n const elementY = vueDemi.ref(0);\n const elementPositionX = vueDemi.ref(0);\n const elementPositionY = vueDemi.ref(0);\n const elementHeight = vueDemi.ref(0);\n const elementWidth = vueDemi.ref(0);\n const isOutside = vueDemi.ref(true);\n let stop = () => {\n };\n if (window) {\n stop = vueDemi.watch(\n [targetRef, x, y],\n () => {\n const el = unrefElement(targetRef);\n if (!el || !(el instanceof HTMLElement))\n return;\n const {\n left,\n top,\n width,\n height\n } = el.getBoundingClientRect();\n elementPositionX.value = left + (type === \"page\" ? window.pageXOffset : 0);\n elementPositionY.value = top + (type === \"page\" ? window.pageYOffset : 0);\n elementHeight.value = height;\n elementWidth.value = width;\n const elX = x.value - elementPositionX.value;\n const elY = y.value - elementPositionY.value;\n isOutside.value = width === 0 || height === 0 || elX < 0 || elY < 0 || elX > width || elY > height;\n if (handleOutside || !isOutside.value) {\n elementX.value = elX;\n elementY.value = elY;\n }\n },\n { immediate: true }\n );\n useEventListener(document, \"mouseleave\", () => {\n isOutside.value = true;\n });\n }\n return {\n x,\n y,\n sourceType,\n elementX,\n elementY,\n elementPositionX,\n elementPositionY,\n elementHeight,\n elementWidth,\n isOutside,\n stop\n };\n}\n\nfunction useMousePressed(options = {}) {\n const {\n touch = true,\n drag = true,\n capture = false,\n initialValue = false,\n window = defaultWindow\n } = options;\n const pressed = vueDemi.ref(initialValue);\n const sourceType = vueDemi.ref(null);\n if (!window) {\n return {\n pressed,\n sourceType\n };\n }\n const onPressed = (srcType) => () => {\n pressed.value = true;\n sourceType.value = srcType;\n };\n const onReleased = () => {\n pressed.value = false;\n sourceType.value = null;\n };\n const target = vueDemi.computed(() => unrefElement(options.target) || window);\n useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"mouseleave\", onReleased, { passive: true, capture });\n useEventListener(window, \"mouseup\", onReleased, { passive: true, capture });\n if (drag) {\n useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true, capture });\n useEventListener(window, \"drop\", onReleased, { passive: true, capture });\n useEventListener(window, \"dragend\", onReleased, { passive: true, capture });\n }\n if (touch) {\n useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true, capture });\n useEventListener(window, \"touchend\", onReleased, { passive: true, capture });\n useEventListener(window, \"touchcancel\", onReleased, { passive: true, capture });\n }\n return {\n pressed,\n sourceType\n };\n}\n\nfunction useNavigatorLanguage(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"language\" in navigator);\n const language = vueDemi.ref(navigator == null ? void 0 : navigator.language);\n useEventListener(window, \"languagechange\", () => {\n if (navigator)\n language.value = navigator.language;\n });\n return {\n isSupported,\n language\n };\n}\n\nfunction useNetwork(options = {}) {\n const { window = defaultWindow } = options;\n const navigator = window == null ? void 0 : window.navigator;\n const isSupported = useSupported(() => navigator && \"connection\" in navigator);\n const isOnline = vueDemi.ref(true);\n const saveData = vueDemi.ref(false);\n const offlineAt = vueDemi.ref(void 0);\n const onlineAt = vueDemi.ref(void 0);\n const downlink = vueDemi.ref(void 0);\n const downlinkMax = vueDemi.ref(void 0);\n const rtt = vueDemi.ref(void 0);\n const effectiveType = vueDemi.ref(void 0);\n const type = vueDemi.ref(\"unknown\");\n const connection = isSupported.value && navigator.connection;\n function updateNetworkInformation() {\n if (!navigator)\n return;\n isOnline.value = navigator.onLine;\n offlineAt.value = isOnline.value ? void 0 : Date.now();\n onlineAt.value = isOnline.value ? Date.now() : void 0;\n if (connection) {\n downlink.value = connection.downlink;\n downlinkMax.value = connection.downlinkMax;\n effectiveType.value = connection.effectiveType;\n rtt.value = connection.rtt;\n saveData.value = connection.saveData;\n type.value = connection.type;\n }\n }\n if (window) {\n useEventListener(window, \"offline\", () => {\n isOnline.value = false;\n offlineAt.value = Date.now();\n });\n useEventListener(window, \"online\", () => {\n isOnline.value = true;\n onlineAt.value = Date.now();\n });\n }\n if (connection)\n useEventListener(connection, \"change\", updateNetworkInformation, false);\n updateNetworkInformation();\n return {\n isSupported,\n isOnline,\n saveData,\n offlineAt,\n onlineAt,\n downlink,\n downlinkMax,\n effectiveType,\n rtt,\n type\n };\n}\n\nfunction useNow(options = {}) {\n const {\n controls: exposeControls = false,\n interval = \"requestAnimationFrame\"\n } = options;\n const now = vueDemi.ref(/* @__PURE__ */ new Date());\n const update = () => now.value = /* @__PURE__ */ new Date();\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : shared.useIntervalFn(update, interval, { immediate: true });\n if (exposeControls) {\n return {\n now,\n ...controls\n };\n } else {\n return now;\n }\n}\n\nfunction useObjectUrl(object) {\n const url = vueDemi.ref();\n const release = () => {\n if (url.value)\n URL.revokeObjectURL(url.value);\n url.value = void 0;\n };\n vueDemi.watch(\n () => shared.toValue(object),\n (newObject) => {\n release();\n if (newObject)\n url.value = URL.createObjectURL(newObject);\n },\n { immediate: true }\n );\n shared.tryOnScopeDispose(release);\n return vueDemi.readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n if (typeof value === \"function\" || vueDemi.isReadonly(value))\n return vueDemi.computed(() => shared.clamp(shared.toValue(value), shared.toValue(min), shared.toValue(max)));\n const _value = vueDemi.ref(value);\n return vueDemi.computed({\n get() {\n return _value.value = shared.clamp(_value.value, shared.toValue(min), shared.toValue(max));\n },\n set(value2) {\n _value.value = shared.clamp(value2, shared.toValue(min), shared.toValue(max));\n }\n });\n}\n\nfunction useOffsetPagination(options) {\n const {\n total = Number.POSITIVE_INFINITY,\n pageSize = 10,\n page = 1,\n onPageChange = shared.noop,\n onPageSizeChange = shared.noop,\n onPageCountChange = shared.noop\n } = options;\n const currentPageSize = useClamp(pageSize, 1, Number.POSITIVE_INFINITY);\n const pageCount = vueDemi.computed(() => Math.max(\n 1,\n Math.ceil(shared.toValue(total) / shared.toValue(currentPageSize))\n ));\n const currentPage = useClamp(page, 1, pageCount);\n const isFirstPage = vueDemi.computed(() => currentPage.value === 1);\n const isLastPage = vueDemi.computed(() => currentPage.value === pageCount.value);\n if (vueDemi.isRef(page)) {\n shared.syncRef(page, currentPage, {\n direction: vueDemi.isReadonly(page) ? \"ltr\" : \"both\"\n });\n }\n if (vueDemi.isRef(pageSize)) {\n shared.syncRef(pageSize, currentPageSize, {\n direction: vueDemi.isReadonly(pageSize) ? \"ltr\" : \"both\"\n });\n }\n function prev() {\n currentPage.value--;\n }\n function next() {\n currentPage.value++;\n }\n const returnValue = {\n currentPage,\n currentPageSize,\n pageCount,\n isFirstPage,\n isLastPage,\n prev,\n next\n };\n vueDemi.watch(currentPage, () => {\n onPageChange(vueDemi.reactive(returnValue));\n });\n vueDemi.watch(currentPageSize, () => {\n onPageSizeChange(vueDemi.reactive(returnValue));\n });\n vueDemi.watch(pageCount, () => {\n onPageCountChange(vueDemi.reactive(returnValue));\n });\n return returnValue;\n}\n\nfunction useOnline(options = {}) {\n const { isOnline } = useNetwork(options);\n return isOnline;\n}\n\nfunction usePageLeave(options = {}) {\n const { window = defaultWindow } = options;\n const isLeft = vueDemi.ref(false);\n const handler = (event) => {\n if (!window)\n return;\n event = event || window.event;\n const from = event.relatedTarget || event.toElement;\n isLeft.value = !from;\n };\n if (window) {\n useEventListener(window, \"mouseout\", handler, { passive: true });\n useEventListener(window.document, \"mouseleave\", handler, { passive: true });\n useEventListener(window.document, \"mouseenter\", handler, { passive: true });\n }\n return isLeft;\n}\n\nfunction useScreenOrientation(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const isSupported = useSupported(() => window && \"screen\" in window && \"orientation\" in window.screen);\n const screenOrientation = isSupported.value ? window.screen.orientation : {};\n const orientation = vueDemi.ref(screenOrientation.type);\n const angle = vueDemi.ref(screenOrientation.angle || 0);\n if (isSupported.value) {\n useEventListener(window, \"orientationchange\", () => {\n orientation.value = screenOrientation.type;\n angle.value = screenOrientation.angle;\n });\n }\n const lockOrientation = (type) => {\n if (isSupported.value && typeof screenOrientation.lock === \"function\")\n return screenOrientation.lock(type);\n return Promise.reject(new Error(\"Not supported\"));\n };\n const unlockOrientation = () => {\n if (isSupported.value && typeof screenOrientation.unlock === \"function\")\n screenOrientation.unlock();\n };\n return {\n isSupported,\n orientation,\n angle,\n lockOrientation,\n unlockOrientation\n };\n}\n\nfunction useParallax(target, options = {}) {\n const {\n deviceOrientationTiltAdjust = (i) => i,\n deviceOrientationRollAdjust = (i) => i,\n mouseTiltAdjust = (i) => i,\n mouseRollAdjust = (i) => i,\n window = defaultWindow\n } = options;\n const orientation = vueDemi.reactive(useDeviceOrientation({ window }));\n const screenOrientation = vueDemi.reactive(useScreenOrientation({ window }));\n const {\n elementX: x,\n elementY: y,\n elementWidth: width,\n elementHeight: height\n } = useMouseInElement(target, { handleOutside: false, window });\n const source = vueDemi.computed(() => {\n if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0)) {\n return \"deviceOrientation\";\n }\n return \"mouse\";\n });\n const roll = vueDemi.computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.gamma / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.gamma / 90;\n break;\n case \"portrait-primary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-secondary\":\n value = orientation.beta / 90;\n break;\n default:\n value = -orientation.beta / 90;\n }\n return deviceOrientationRollAdjust(value);\n } else {\n const value = -(y.value - height.value / 2) / height.value;\n return mouseRollAdjust(value);\n }\n });\n const tilt = vueDemi.computed(() => {\n if (source.value === \"deviceOrientation\") {\n let value;\n switch (screenOrientation.orientation) {\n case \"landscape-primary\":\n value = orientation.beta / 90;\n break;\n case \"landscape-secondary\":\n value = -orientation.beta / 90;\n break;\n case \"portrait-primary\":\n value = orientation.gamma / 90;\n break;\n case \"portrait-secondary\":\n value = -orientation.gamma / 90;\n break;\n default:\n value = orientation.gamma / 90;\n }\n return deviceOrientationTiltAdjust(value);\n } else {\n const value = (x.value - width.value / 2) / width.value;\n return mouseTiltAdjust(value);\n }\n });\n return { roll, tilt, source };\n}\n\nfunction useParentElement(element = useCurrentElement()) {\n const parentElement = vueDemi.shallowRef();\n const update = () => {\n const el = unrefElement(element);\n if (el)\n parentElement.value = el.parentElement;\n };\n shared.tryOnMounted(update);\n vueDemi.watch(() => shared.toValue(element), update);\n return parentElement;\n}\n\nfunction usePerformanceObserver(options, callback) {\n const {\n window = defaultWindow,\n immediate = true,\n ...performanceOptions\n } = options;\n const isSupported = useSupported(() => window && \"PerformanceObserver\" in window);\n let observer;\n const stop = () => {\n observer == null ? void 0 : observer.disconnect();\n };\n const start = () => {\n if (isSupported.value) {\n stop();\n observer = new PerformanceObserver(callback);\n observer.observe(performanceOptions);\n }\n };\n shared.tryOnScopeDispose(stop);\n if (immediate)\n start();\n return {\n isSupported,\n start,\n stop\n };\n}\n\nconst defaultState = {\n x: 0,\n y: 0,\n pointerId: 0,\n pressure: 0,\n tiltX: 0,\n tiltY: 0,\n width: 0,\n height: 0,\n twist: 0,\n pointerType: null\n};\nconst keys = /* @__PURE__ */ Object.keys(defaultState);\nfunction usePointer(options = {}) {\n const {\n target = defaultWindow\n } = options;\n const isInside = vueDemi.ref(false);\n const state = vueDemi.ref(options.initialValue || {});\n Object.assign(state.value, defaultState, state.value);\n const handler = (event) => {\n isInside.value = true;\n if (options.pointerTypes && !options.pointerTypes.includes(event.pointerType))\n return;\n state.value = shared.objectPick(event, keys, false);\n };\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"pointerdown\", \"pointermove\", \"pointerup\"], handler, listenerOptions);\n useEventListener(target, \"pointerleave\", () => isInside.value = false, listenerOptions);\n }\n return {\n ...shared.toRefs(state),\n isInside\n };\n}\n\nfunction usePointerLock(target, options = {}) {\n const { document = defaultDocument } = options;\n const isSupported = useSupported(() => document && \"pointerLockElement\" in document);\n const element = vueDemi.ref();\n const triggerElement = vueDemi.ref();\n let targetElement;\n if (isSupported.value) {\n useEventListener(document, \"pointerlockchange\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n element.value = document.pointerLockElement;\n if (!element.value)\n targetElement = triggerElement.value = null;\n }\n });\n useEventListener(document, \"pointerlockerror\", () => {\n var _a;\n const currentElement = (_a = document.pointerLockElement) != null ? _a : element.value;\n if (targetElement && currentElement === targetElement) {\n const action = document.pointerLockElement ? \"release\" : \"acquire\";\n throw new Error(`Failed to ${action} pointer lock.`);\n }\n });\n }\n async function lock(e) {\n var _a;\n if (!isSupported.value)\n throw new Error(\"Pointer Lock API is not supported by your browser.\");\n triggerElement.value = e instanceof Event ? e.currentTarget : null;\n targetElement = e instanceof Event ? (_a = unrefElement(target)) != null ? _a : triggerElement.value : unrefElement(e);\n if (!targetElement)\n throw new Error(\"Target element undefined.\");\n targetElement.requestPointerLock();\n return await shared.until(element).toBe(targetElement);\n }\n async function unlock() {\n if (!element.value)\n return false;\n document.exitPointerLock();\n await shared.until(element).toBeNull();\n return true;\n }\n return {\n isSupported,\n element,\n triggerElement,\n lock,\n unlock\n };\n}\n\nfunction usePointerSwipe(target, options = {}) {\n const targetRef = shared.toRef(target);\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n disableTextSelect = false\n } = options;\n const posStart = vueDemi.reactive({ x: 0, y: 0 });\n const updatePosStart = (x, y) => {\n posStart.x = x;\n posStart.y = y;\n };\n const posEnd = vueDemi.reactive({ x: 0, y: 0 });\n const updatePosEnd = (x, y) => {\n posEnd.x = x;\n posEnd.y = y;\n };\n const distanceX = vueDemi.computed(() => posStart.x - posEnd.x);\n const distanceY = vueDemi.computed(() => posStart.y - posEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = vueDemi.computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n const isSwiping = vueDemi.ref(false);\n const isPointerDown = vueDemi.ref(false);\n const direction = vueDemi.computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(distanceX.value) > abs(distanceY.value)) {\n return distanceX.value > 0 ? \"left\" : \"right\";\n } else {\n return distanceY.value > 0 ? \"up\" : \"down\";\n }\n });\n const eventIsAllowed = (e) => {\n var _a, _b, _c;\n const isReleasingButton = e.buttons === 0;\n const isPrimaryButton = e.buttons === 1;\n return (_c = (_b = (_a = options.pointerTypes) == null ? void 0 : _a.includes(e.pointerType)) != null ? _b : isReleasingButton || isPrimaryButton) != null ? _c : true;\n };\n const stops = [\n useEventListener(target, \"pointerdown\", (e) => {\n if (!eventIsAllowed(e))\n return;\n isPointerDown.value = true;\n const eventTarget = e.target;\n eventTarget == null ? void 0 : eventTarget.setPointerCapture(e.pointerId);\n const { clientX: x, clientY: y } = e;\n updatePosStart(x, y);\n updatePosEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }),\n useEventListener(target, \"pointermove\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (!isPointerDown.value)\n return;\n const { clientX: x, clientY: y } = e;\n updatePosEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }),\n useEventListener(target, \"pointerup\", (e) => {\n if (!eventIsAllowed(e))\n return;\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isPointerDown.value = false;\n isSwiping.value = false;\n })\n ];\n shared.tryOnMounted(() => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\n if (disableTextSelect) {\n (_d = (_c = targetRef.value) == null ? void 0 : _c.style) == null ? void 0 : _d.setProperty(\"-webkit-user-select\", \"none\");\n (_f = (_e = targetRef.value) == null ? void 0 : _e.style) == null ? void 0 : _f.setProperty(\"-ms-user-select\", \"none\");\n (_h = (_g = targetRef.value) == null ? void 0 : _g.style) == null ? void 0 : _h.setProperty(\"user-select\", \"none\");\n }\n });\n const stop = () => stops.forEach((s) => s());\n return {\n isSwiping: vueDemi.readonly(isSwiping),\n direction: vueDemi.readonly(direction),\n posStart: vueDemi.readonly(posStart),\n posEnd: vueDemi.readonly(posEnd),\n distanceX,\n distanceY,\n stop\n };\n}\n\nfunction usePreferredColorScheme(options) {\n const isLight = useMediaQuery(\"(prefers-color-scheme: light)\", options);\n const isDark = useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n return vueDemi.computed(() => {\n if (isDark.value)\n return \"dark\";\n if (isLight.value)\n return \"light\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredContrast(options) {\n const isMore = useMediaQuery(\"(prefers-contrast: more)\", options);\n const isLess = useMediaQuery(\"(prefers-contrast: less)\", options);\n const isCustom = useMediaQuery(\"(prefers-contrast: custom)\", options);\n return vueDemi.computed(() => {\n if (isMore.value)\n return \"more\";\n if (isLess.value)\n return \"less\";\n if (isCustom.value)\n return \"custom\";\n return \"no-preference\";\n });\n}\n\nfunction usePreferredLanguages(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return vueDemi.ref([\"en\"]);\n const navigator = window.navigator;\n const value = vueDemi.ref(navigator.languages);\n useEventListener(window, \"languagechange\", () => {\n value.value = navigator.languages;\n });\n return value;\n}\n\nfunction usePreferredReducedMotion(options) {\n const isReduced = useMediaQuery(\"(prefers-reduced-motion: reduce)\", options);\n return vueDemi.computed(() => {\n if (isReduced.value)\n return \"reduce\";\n return \"no-preference\";\n });\n}\n\nfunction usePrevious(value, initialValue) {\n const previous = vueDemi.shallowRef(initialValue);\n vueDemi.watch(\n shared.toRef(value),\n (_, oldValue) => {\n previous.value = oldValue;\n },\n { flush: \"sync\" }\n );\n return vueDemi.readonly(previous);\n}\n\nconst topVarName = \"--vueuse-safe-area-top\";\nconst rightVarName = \"--vueuse-safe-area-right\";\nconst bottomVarName = \"--vueuse-safe-area-bottom\";\nconst leftVarName = \"--vueuse-safe-area-left\";\nfunction useScreenSafeArea() {\n const top = vueDemi.ref(\"\");\n const right = vueDemi.ref(\"\");\n const bottom = vueDemi.ref(\"\");\n const left = vueDemi.ref(\"\");\n if (shared.isClient) {\n const topCssVar = useCssVar(topVarName);\n const rightCssVar = useCssVar(rightVarName);\n const bottomCssVar = useCssVar(bottomVarName);\n const leftCssVar = useCssVar(leftVarName);\n topCssVar.value = \"env(safe-area-inset-top, 0px)\";\n rightCssVar.value = \"env(safe-area-inset-right, 0px)\";\n bottomCssVar.value = \"env(safe-area-inset-bottom, 0px)\";\n leftCssVar.value = \"env(safe-area-inset-left, 0px)\";\n update();\n useEventListener(\"resize\", shared.useDebounceFn(update));\n }\n function update() {\n top.value = getValue(topVarName);\n right.value = getValue(rightVarName);\n bottom.value = getValue(bottomVarName);\n left.value = getValue(leftVarName);\n }\n return {\n top,\n right,\n bottom,\n left,\n update\n };\n}\nfunction getValue(position) {\n return getComputedStyle(document.documentElement).getPropertyValue(position);\n}\n\nfunction useScriptTag(src, onLoaded = shared.noop, options = {}) {\n const {\n immediate = true,\n manual = false,\n type = \"text/javascript\",\n async = true,\n crossOrigin,\n referrerPolicy,\n noModule,\n defer,\n document = defaultDocument,\n attrs = {}\n } = options;\n const scriptTag = vueDemi.ref(null);\n let _promise = null;\n const loadScript = (waitForScriptLoad) => new Promise((resolve, reject) => {\n const resolveWithElement = (el2) => {\n scriptTag.value = el2;\n resolve(el2);\n return el2;\n };\n if (!document) {\n resolve(false);\n return;\n }\n let shouldAppend = false;\n let el = document.querySelector(`script[src=\"${shared.toValue(src)}\"]`);\n if (!el) {\n el = document.createElement(\"script\");\n el.type = type;\n el.async = async;\n el.src = shared.toValue(src);\n if (defer)\n el.defer = defer;\n if (crossOrigin)\n el.crossOrigin = crossOrigin;\n if (noModule)\n el.noModule = noModule;\n if (referrerPolicy)\n el.referrerPolicy = referrerPolicy;\n Object.entries(attrs).forEach(([name, value]) => el == null ? void 0 : el.setAttribute(name, value));\n shouldAppend = true;\n } else if (el.hasAttribute(\"data-loaded\")) {\n resolveWithElement(el);\n }\n el.addEventListener(\"error\", (event) => reject(event));\n el.addEventListener(\"abort\", (event) => reject(event));\n el.addEventListener(\"load\", () => {\n el.setAttribute(\"data-loaded\", \"true\");\n onLoaded(el);\n resolveWithElement(el);\n });\n if (shouldAppend)\n el = document.head.appendChild(el);\n if (!waitForScriptLoad)\n resolveWithElement(el);\n });\n const load = (waitForScriptLoad = true) => {\n if (!_promise)\n _promise = loadScript(waitForScriptLoad);\n return _promise;\n };\n const unload = () => {\n if (!document)\n return;\n _promise = null;\n if (scriptTag.value)\n scriptTag.value = null;\n const el = document.querySelector(`script[src=\"${shared.toValue(src)}\"]`);\n if (el)\n document.head.removeChild(el);\n };\n if (immediate && !manual)\n shared.tryOnMounted(load);\n if (!manual)\n shared.tryOnUnmounted(unload);\n return { scriptTag, load, unload };\n}\n\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = vueDemi.ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n vueDemi.watch(shared.toRef(element), (el) => {\n const target = resolveElement(shared.toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || isLocked.value)\n return;\n if (shared.isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(shared.toValue(element));\n if (!el || !isLocked.value)\n return;\n if (shared.isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\n isLocked.value = false;\n };\n shared.tryOnScopeDispose(unlock);\n return vueDemi.computed({\n get() {\n return isLocked.value;\n },\n set(v) {\n if (v)\n lock();\n else unlock();\n }\n });\n}\n\nfunction useSessionStorage(key, initialValue, options = {}) {\n const { window = defaultWindow } = options;\n return useStorage(key, initialValue, window == null ? void 0 : window.sessionStorage, options);\n}\n\nfunction useShare(shareOptions = {}, options = {}) {\n const { navigator = defaultNavigator } = options;\n const _navigator = navigator;\n const isSupported = useSupported(() => _navigator && \"canShare\" in _navigator);\n const share = async (overrideOptions = {}) => {\n if (isSupported.value) {\n const data = {\n ...shared.toValue(shareOptions),\n ...shared.toValue(overrideOptions)\n };\n let granted = true;\n if (data.files && _navigator.canShare)\n granted = _navigator.canShare({ files: data.files });\n if (granted)\n return _navigator.share(data);\n }\n };\n return {\n isSupported,\n share\n };\n}\n\nconst defaultSortFn = (source, compareFn) => source.sort(compareFn);\nconst defaultCompare = (a, b) => a - b;\nfunction useSorted(...args) {\n var _a, _b, _c, _d;\n const [source] = args;\n let compareFn = defaultCompare;\n let options = {};\n if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n options = args[1];\n compareFn = (_a = options.compareFn) != null ? _a : defaultCompare;\n } else {\n compareFn = (_b = args[1]) != null ? _b : defaultCompare;\n }\n } else if (args.length > 2) {\n compareFn = (_c = args[1]) != null ? _c : defaultCompare;\n options = (_d = args[2]) != null ? _d : {};\n }\n const {\n dirty = false,\n sortFn = defaultSortFn\n } = options;\n if (!dirty)\n return vueDemi.computed(() => sortFn([...shared.toValue(source)], compareFn));\n vueDemi.watchEffect(() => {\n const result = sortFn(shared.toValue(source), compareFn);\n if (vueDemi.isRef(source))\n source.value = result;\n else\n source.splice(0, source.length, ...result);\n });\n return source;\n}\n\nfunction useSpeechRecognition(options = {}) {\n const {\n interimResults = true,\n continuous = true,\n maxAlternatives = 1,\n window = defaultWindow\n } = options;\n const lang = shared.toRef(options.lang || \"en-US\");\n const isListening = vueDemi.ref(false);\n const isFinal = vueDemi.ref(false);\n const result = vueDemi.ref(\"\");\n const error = vueDemi.shallowRef(void 0);\n const toggle = (value = !isListening.value) => {\n isListening.value = value;\n };\n const start = () => {\n isListening.value = true;\n };\n const stop = () => {\n isListening.value = false;\n };\n const SpeechRecognition = window && (window.SpeechRecognition || window.webkitSpeechRecognition);\n const isSupported = useSupported(() => SpeechRecognition);\n let recognition;\n if (isSupported.value) {\n recognition = new SpeechRecognition();\n recognition.continuous = continuous;\n recognition.interimResults = interimResults;\n recognition.lang = shared.toValue(lang);\n recognition.maxAlternatives = maxAlternatives;\n recognition.onstart = () => {\n isFinal.value = false;\n };\n vueDemi.watch(lang, (lang2) => {\n if (recognition && !isListening.value)\n recognition.lang = lang2;\n });\n recognition.onresult = (event) => {\n const currentResult = event.results[event.resultIndex];\n const { transcript } = currentResult[0];\n isFinal.value = currentResult.isFinal;\n result.value = transcript;\n error.value = void 0;\n };\n recognition.onerror = (event) => {\n error.value = event;\n };\n recognition.onend = () => {\n isListening.value = false;\n recognition.lang = shared.toValue(lang);\n };\n vueDemi.watch(isListening, () => {\n if (isListening.value)\n recognition.start();\n else\n recognition.stop();\n });\n }\n shared.tryOnScopeDispose(() => {\n isListening.value = false;\n });\n return {\n isSupported,\n isListening,\n isFinal,\n recognition,\n result,\n error,\n toggle,\n start,\n stop\n };\n}\n\nfunction useSpeechSynthesis(text, options = {}) {\n const {\n pitch = 1,\n rate = 1,\n volume = 1,\n window = defaultWindow\n } = options;\n const synth = window && window.speechSynthesis;\n const isSupported = useSupported(() => synth);\n const isPlaying = vueDemi.ref(false);\n const status = vueDemi.ref(\"init\");\n const spokenText = shared.toRef(text || \"\");\n const lang = shared.toRef(options.lang || \"en-US\");\n const error = vueDemi.shallowRef(void 0);\n const toggle = (value = !isPlaying.value) => {\n isPlaying.value = value;\n };\n const bindEventsForUtterance = (utterance2) => {\n utterance2.lang = shared.toValue(lang);\n utterance2.voice = shared.toValue(options.voice) || null;\n utterance2.pitch = shared.toValue(pitch);\n utterance2.rate = shared.toValue(rate);\n utterance2.volume = volume;\n utterance2.onstart = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onpause = () => {\n isPlaying.value = false;\n status.value = \"pause\";\n };\n utterance2.onresume = () => {\n isPlaying.value = true;\n status.value = \"play\";\n };\n utterance2.onend = () => {\n isPlaying.value = false;\n status.value = \"end\";\n };\n utterance2.onerror = (event) => {\n error.value = event;\n };\n };\n const utterance = vueDemi.computed(() => {\n isPlaying.value = false;\n status.value = \"init\";\n const newUtterance = new SpeechSynthesisUtterance(spokenText.value);\n bindEventsForUtterance(newUtterance);\n return newUtterance;\n });\n const speak = () => {\n synth.cancel();\n if (utterance)\n synth.speak(utterance.value);\n };\n const stop = () => {\n synth.cancel();\n isPlaying.value = false;\n };\n if (isSupported.value) {\n bindEventsForUtterance(utterance.value);\n vueDemi.watch(lang, (lang2) => {\n if (utterance.value && !isPlaying.value)\n utterance.value.lang = lang2;\n });\n if (options.voice) {\n vueDemi.watch(options.voice, () => {\n synth.cancel();\n });\n }\n vueDemi.watch(isPlaying, () => {\n if (isPlaying.value)\n synth.resume();\n else\n synth.pause();\n });\n }\n shared.tryOnScopeDispose(() => {\n isPlaying.value = false;\n });\n return {\n isSupported,\n isPlaying,\n status,\n utterance,\n error,\n stop,\n toggle,\n speak\n };\n}\n\nfunction useStepper(steps, initialStep) {\n const stepsRef = vueDemi.ref(steps);\n const stepNames = vueDemi.computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n const index = vueDemi.ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n const current = vueDemi.computed(() => at(index.value));\n const isFirst = vueDemi.computed(() => index.value === 0);\n const isLast = vueDemi.computed(() => index.value === stepNames.value.length - 1);\n const next = vueDemi.computed(() => stepNames.value[index.value + 1]);\n const previous = vueDemi.computed(() => stepNames.value[index.value - 1]);\n function at(index2) {\n if (Array.isArray(stepsRef.value))\n return stepsRef.value[index2];\n return stepsRef.value[stepNames.value[index2]];\n }\n function get(step) {\n if (!stepNames.value.includes(step))\n return;\n return at(stepNames.value.indexOf(step));\n }\n function goTo(step) {\n if (stepNames.value.includes(step))\n index.value = stepNames.value.indexOf(step);\n }\n function goToNext() {\n if (isLast.value)\n return;\n index.value++;\n }\n function goToPrevious() {\n if (isFirst.value)\n return;\n index.value--;\n }\n function goBackTo(step) {\n if (isAfter(step))\n goTo(step);\n }\n function isNext(step) {\n return stepNames.value.indexOf(step) === index.value + 1;\n }\n function isPrevious(step) {\n return stepNames.value.indexOf(step) === index.value - 1;\n }\n function isCurrent(step) {\n return stepNames.value.indexOf(step) === index.value;\n }\n function isBefore(step) {\n return index.value < stepNames.value.indexOf(step);\n }\n function isAfter(step) {\n return index.value > stepNames.value.indexOf(step);\n }\n return {\n steps: stepsRef,\n stepNames,\n index,\n current,\n next,\n previous,\n isFirst,\n isLast,\n at,\n get,\n goTo,\n goToNext,\n goToPrevious,\n goBackTo,\n isNext,\n isPrevious,\n isCurrent,\n isBefore,\n isAfter\n };\n}\n\nfunction useStorageAsync(key, initialValue, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n }\n } = options;\n const rawInit = shared.toValue(initialValue);\n const type = guessSerializerType(rawInit);\n const data = (shallow ? vueDemi.shallowRef : vueDemi.ref)(initialValue);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorageAsync\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n async function read(event) {\n if (!storage || event && event.key !== key)\n return;\n try {\n const rawValue = event ? event.newValue : await storage.getItem(key);\n if (rawValue == null) {\n data.value = rawInit;\n if (writeDefaults && rawInit !== null)\n await storage.setItem(key, await serializer.write(rawInit));\n } else if (mergeDefaults) {\n const value = await serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n data.value = mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n data.value = { ...rawInit, ...value };\n else data.value = value;\n } else {\n data.value = await serializer.read(rawValue);\n }\n } catch (e) {\n onError(e);\n }\n }\n read();\n if (window && listenToStorageChanges)\n useEventListener(window, \"storage\", (e) => Promise.resolve().then(() => read(e)));\n if (storage) {\n shared.watchWithFilter(\n data,\n async () => {\n try {\n if (data.value == null)\n await storage.removeItem(key);\n else\n await storage.setItem(key, await serializer.write(data.value));\n } catch (e) {\n onError(e);\n }\n },\n {\n flush,\n deep,\n eventFilter\n }\n );\n }\n return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n const isLoaded = vueDemi.ref(false);\n const {\n document = defaultDocument,\n immediate = true,\n manual = false,\n id = `vueuse_styletag_${++_id}`\n } = options;\n const cssRef = vueDemi.ref(css);\n let stop = () => {\n };\n const load = () => {\n if (!document)\n return;\n const el = document.getElementById(id) || document.createElement(\"style\");\n if (!el.isConnected) {\n el.id = id;\n if (options.media)\n el.media = options.media;\n document.head.appendChild(el);\n }\n if (isLoaded.value)\n return;\n stop = vueDemi.watch(\n cssRef,\n (value) => {\n el.textContent = value;\n },\n { immediate: true }\n );\n isLoaded.value = true;\n };\n const unload = () => {\n if (!document || !isLoaded.value)\n return;\n stop();\n document.head.removeChild(document.getElementById(id));\n isLoaded.value = false;\n };\n if (immediate && !manual)\n shared.tryOnMounted(load);\n if (!manual)\n shared.tryOnScopeDispose(unload);\n return {\n id,\n css: cssRef,\n unload,\n load,\n isLoaded: vueDemi.readonly(isLoaded)\n };\n}\n\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window = defaultWindow\n } = options;\n const coordsStart = vueDemi.reactive({ x: 0, y: 0 });\n const coordsEnd = vueDemi.reactive({ x: 0, y: 0 });\n const diffX = vueDemi.computed(() => coordsStart.x - coordsEnd.x);\n const diffY = vueDemi.computed(() => coordsStart.y - coordsEnd.y);\n const { max, abs } = Math;\n const isThresholdExceeded = vueDemi.computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n const isSwiping = vueDemi.ref(false);\n const direction = vueDemi.computed(() => {\n if (!isThresholdExceeded.value)\n return \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window == null ? void 0 : window.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n if (listenerOptions.capture && !listenerOptions.passive)\n e.preventDefault();\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document) {\n if (!document)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document.addEventListener(\"x\", shared.noop, optionsBlock);\n document.removeEventListener(\"x\", shared.noop);\n return supportsPassive;\n}\n\nfunction useTemplateRefsList() {\n const refs = vueDemi.ref([]);\n refs.value.set = (el) => {\n if (el)\n refs.value.push(el);\n };\n vueDemi.onBeforeUpdate(() => {\n refs.value.length = 0;\n });\n return refs;\n}\n\nfunction useTextDirection(options = {}) {\n const {\n document = defaultDocument,\n selector = \"html\",\n observe = false,\n initialValue = \"ltr\"\n } = options;\n function getValue() {\n var _a, _b;\n return (_b = (_a = document == null ? void 0 : document.querySelector(selector)) == null ? void 0 : _a.getAttribute(\"dir\")) != null ? _b : initialValue;\n }\n const dir = vueDemi.ref(getValue());\n shared.tryOnMounted(() => dir.value = getValue());\n if (observe && document) {\n useMutationObserver(\n document.querySelector(selector),\n () => dir.value = getValue(),\n { attributes: true }\n );\n }\n return vueDemi.computed({\n get() {\n return dir.value;\n },\n set(v) {\n var _a, _b;\n dir.value = v;\n if (!document)\n return;\n if (dir.value)\n (_a = document.querySelector(selector)) == null ? void 0 : _a.setAttribute(\"dir\", dir.value);\n else\n (_b = document.querySelector(selector)) == null ? void 0 : _b.removeAttribute(\"dir\");\n }\n });\n}\n\nfunction getRangesFromSelection(selection) {\n var _a;\n const rangeCount = (_a = selection.rangeCount) != null ? _a : 0;\n return Array.from({ length: rangeCount }, (_, i) => selection.getRangeAt(i));\n}\nfunction useTextSelection(options = {}) {\n const {\n window = defaultWindow\n } = options;\n const selection = vueDemi.ref(null);\n const text = vueDemi.computed(() => {\n var _a, _b;\n return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n });\n const ranges = vueDemi.computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n const rects = vueDemi.computed(() => ranges.value.map((range) => range.getBoundingClientRect()));\n function onSelectionChange() {\n selection.value = null;\n if (window)\n selection.value = window.getSelection();\n }\n if (window)\n useEventListener(window.document, \"selectionchange\", onSelectionChange);\n return {\n text,\n rects,\n ranges,\n selection\n };\n}\n\nfunction useTextareaAutosize(options) {\n var _a;\n const textarea = vueDemi.ref(options == null ? void 0 : options.element);\n const input = vueDemi.ref(options == null ? void 0 : options.input);\n const styleProp = (_a = options == null ? void 0 : options.styleProp) != null ? _a : \"height\";\n const textareaScrollHeight = vueDemi.ref(1);\n const textareaOldWidth = vueDemi.ref(0);\n function triggerResize() {\n var _a2;\n if (!textarea.value)\n return;\n let height = \"\";\n textarea.value.style[styleProp] = \"1px\";\n textareaScrollHeight.value = (_a2 = textarea.value) == null ? void 0 : _a2.scrollHeight;\n const _styleTarget = shared.toValue(options == null ? void 0 : options.styleTarget);\n if (_styleTarget)\n _styleTarget.style[styleProp] = `${textareaScrollHeight.value}px`;\n else\n height = `${textareaScrollHeight.value}px`;\n textarea.value.style[styleProp] = height;\n }\n vueDemi.watch([input, textarea], () => vueDemi.nextTick(triggerResize), { immediate: true });\n vueDemi.watch(textareaScrollHeight, () => {\n var _a2;\n return (_a2 = options == null ? void 0 : options.onResize) == null ? void 0 : _a2.call(options);\n });\n useResizeObserver(textarea, ([{ contentRect }]) => {\n if (textareaOldWidth.value === contentRect.width)\n return;\n textareaOldWidth.value = contentRect.width;\n triggerResize();\n });\n if (options == null ? void 0 : options.watch)\n vueDemi.watch(options.watch, triggerResize, { immediate: true, deep: true });\n return {\n textarea,\n input,\n triggerResize\n };\n}\n\nfunction useThrottledRefHistory(source, options = {}) {\n const { throttle = 200, trailing = true } = options;\n const filter = shared.throttleFilter(throttle, trailing);\n const history = useRefHistory(source, { ...options, eventFilter: filter });\n return {\n ...history\n };\n}\n\nconst DEFAULT_UNITS = [\n { max: 6e4, value: 1e3, name: \"second\" },\n { max: 276e4, value: 6e4, name: \"minute\" },\n { max: 72e6, value: 36e5, name: \"hour\" },\n { max: 5184e5, value: 864e5, name: \"day\" },\n { max: 24192e5, value: 6048e5, name: \"week\" },\n { max: 28512e6, value: 2592e6, name: \"month\" },\n { max: Number.POSITIVE_INFINITY, value: 31536e6, name: \"year\" }\n];\nconst DEFAULT_MESSAGES = {\n justNow: \"just now\",\n past: (n) => n.match(/\\d/) ? `${n} ago` : n,\n future: (n) => n.match(/\\d/) ? `in ${n}` : n,\n month: (n, past) => n === 1 ? past ? \"last month\" : \"next month\" : `${n} month${n > 1 ? \"s\" : \"\"}`,\n year: (n, past) => n === 1 ? past ? \"last year\" : \"next year\" : `${n} year${n > 1 ? \"s\" : \"\"}`,\n day: (n, past) => n === 1 ? past ? \"yesterday\" : \"tomorrow\" : `${n} day${n > 1 ? \"s\" : \"\"}`,\n week: (n, past) => n === 1 ? past ? \"last week\" : \"next week\" : `${n} week${n > 1 ? \"s\" : \"\"}`,\n hour: (n) => `${n} hour${n > 1 ? \"s\" : \"\"}`,\n minute: (n) => `${n} minute${n > 1 ? \"s\" : \"\"}`,\n second: (n) => `${n} second${n > 1 ? \"s\" : \"\"}`,\n invalid: \"\"\n};\nfunction DEFAULT_FORMATTER(date) {\n return date.toISOString().slice(0, 10);\n}\nfunction useTimeAgo(time, options = {}) {\n const {\n controls: exposeControls = false,\n updateInterval = 3e4\n } = options;\n const { now, ...controls } = useNow({ interval: updateInterval, controls: true });\n const timeAgo = vueDemi.computed(() => formatTimeAgo(new Date(shared.toValue(time)), options, shared.toValue(now)));\n if (exposeControls) {\n return {\n timeAgo,\n ...controls\n };\n } else {\n return timeAgo;\n }\n}\nfunction formatTimeAgo(from, options = {}, now = Date.now()) {\n var _a;\n const {\n max,\n messages = DEFAULT_MESSAGES,\n fullDateFormatter = DEFAULT_FORMATTER,\n units = DEFAULT_UNITS,\n showSecond = false,\n rounding = \"round\"\n } = options;\n const roundFn = typeof rounding === \"number\" ? (n) => +n.toFixed(rounding) : Math[rounding];\n const diff = +now - +from;\n const absDiff = Math.abs(diff);\n function getValue(diff2, unit) {\n return roundFn(Math.abs(diff2) / unit.value);\n }\n function format(diff2, unit) {\n const val = getValue(diff2, unit);\n const past = diff2 > 0;\n const str = applyFormat(unit.name, val, past);\n return applyFormat(past ? \"past\" : \"future\", str, past);\n }\n function applyFormat(name, val, isPast) {\n const formatter = messages[name];\n if (typeof formatter === \"function\")\n return formatter(val, isPast);\n return formatter.replace(\"{0}\", val.toString());\n }\n if (absDiff < 6e4 && !showSecond)\n return messages.justNow;\n if (typeof max === \"number\" && absDiff > max)\n return fullDateFormatter(new Date(from));\n if (typeof max === \"string\") {\n const unitMax = (_a = units.find((i) => i.name === max)) == null ? void 0 : _a.max;\n if (unitMax && absDiff > unitMax)\n return fullDateFormatter(new Date(from));\n }\n for (const [idx, unit] of units.entries()) {\n const val = getValue(diff, unit);\n if (val <= 0 && units[idx - 1])\n return format(diff, units[idx - 1]);\n if (absDiff < unit.max)\n return format(diff, unit);\n }\n return messages.invalid;\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n const { start } = shared.useTimeoutFn(loop, interval, { immediate: false });\n const isActive = vueDemi.ref(false);\n async function loop() {\n if (!isActive.value)\n return;\n await fn();\n start();\n }\n function resume() {\n if (!isActive.value) {\n isActive.value = true;\n loop();\n }\n }\n function pause() {\n isActive.value = false;\n }\n if (timeoutPollOptions == null ? void 0 : timeoutPollOptions.immediate)\n resume();\n shared.tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\n\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = vueDemi.ref(shared.timestamp() + offset);\n const update = () => ts.value = shared.timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : shared.useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n var _a, _b, _c;\n const {\n document = defaultDocument,\n restoreOnUnmount = (t) => t\n } = options;\n const originalTitle = (_a = document == null ? void 0 : document.title) != null ? _a : \"\";\n const title = shared.toRef((_b = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _b : null);\n const isReadonly = newTitle && typeof newTitle === \"function\";\n function format(t) {\n if (!(\"titleTemplate\" in options))\n return t;\n const template = options.titleTemplate || \"%s\";\n return typeof template === \"function\" ? template(t) : shared.toValue(template).replace(/%s/g, t);\n }\n vueDemi.watch(\n title,\n (t, o) => {\n if (t !== o && document)\n document.title = format(typeof t === \"string\" ? t : \"\");\n },\n { immediate: true }\n );\n if (options.observe && !options.titleTemplate && document && !isReadonly) {\n useMutationObserver(\n (_c = document.head) == null ? void 0 : _c.querySelector(\"title\"),\n () => {\n if (document && document.title !== title.value)\n title.value = format(document.title);\n },\n { childList: true }\n );\n }\n shared.tryOnBeforeUnmount(() => {\n if (restoreOnUnmount) {\n const restoredTitle = restoreOnUnmount(originalTitle, title.value || \"\");\n if (restoredTitle != null && document)\n document.title = restoredTitle;\n }\n });\n return title;\n}\n\nconst _TransitionPresets = {\n easeInSine: [0.12, 0, 0.39, 0],\n easeOutSine: [0.61, 1, 0.88, 1],\n easeInOutSine: [0.37, 0, 0.63, 1],\n easeInQuad: [0.11, 0, 0.5, 0],\n easeOutQuad: [0.5, 1, 0.89, 1],\n easeInOutQuad: [0.45, 0, 0.55, 1],\n easeInCubic: [0.32, 0, 0.67, 0],\n easeOutCubic: [0.33, 1, 0.68, 1],\n easeInOutCubic: [0.65, 0, 0.35, 1],\n easeInQuart: [0.5, 0, 0.75, 0],\n easeOutQuart: [0.25, 1, 0.5, 1],\n easeInOutQuart: [0.76, 0, 0.24, 1],\n easeInQuint: [0.64, 0, 0.78, 0],\n easeOutQuint: [0.22, 1, 0.36, 1],\n easeInOutQuint: [0.83, 0, 0.17, 1],\n easeInExpo: [0.7, 0, 0.84, 0],\n easeOutExpo: [0.16, 1, 0.3, 1],\n easeInOutExpo: [0.87, 0, 0.13, 1],\n easeInCirc: [0.55, 0, 1, 0.45],\n easeOutCirc: [0, 0.55, 0.45, 1],\n easeInOutCirc: [0.85, 0, 0.15, 1],\n easeInBack: [0.36, 0, 0.66, -0.56],\n easeOutBack: [0.34, 1.56, 0.64, 1],\n easeInOutBack: [0.68, -0.6, 0.32, 1.6]\n};\nconst TransitionPresets = /* @__PURE__ */ Object.assign({}, { linear: shared.identity }, _TransitionPresets);\nfunction createEasingFunction([p0, p1, p2, p3]) {\n const a = (a1, a2) => 1 - 3 * a2 + 3 * a1;\n const b = (a1, a2) => 3 * a2 - 6 * a1;\n const c = (a1) => 3 * a1;\n const calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\n const getSlope = (t, a1, a2) => 3 * a(a1, a2) * t * t + 2 * b(a1, a2) * t + c(a1);\n const getTforX = (x) => {\n let aGuessT = x;\n for (let i = 0; i < 4; ++i) {\n const currentSlope = getSlope(aGuessT, p0, p2);\n if (currentSlope === 0)\n return aGuessT;\n const currentX = calcBezier(aGuessT, p0, p2) - x;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n };\n return (x) => p0 === p1 && p2 === p3 ? x : calcBezier(getTforX(x), p1, p3);\n}\nfunction lerp(a, b, alpha) {\n return a + alpha * (b - a);\n}\nfunction toVec(t) {\n return (typeof t === \"number\" ? [t] : t) || [];\n}\nfunction executeTransition(source, from, to, options = {}) {\n var _a, _b;\n const fromVal = shared.toValue(from);\n const toVal = shared.toValue(to);\n const v1 = toVec(fromVal);\n const v2 = toVec(toVal);\n const duration = (_a = shared.toValue(options.duration)) != null ? _a : 1e3;\n const startedAt = Date.now();\n const endAt = Date.now() + duration;\n const trans = typeof options.transition === \"function\" ? options.transition : (_b = shared.toValue(options.transition)) != null ? _b : shared.identity;\n const ease = typeof trans === \"function\" ? trans : createEasingFunction(trans);\n return new Promise((resolve) => {\n source.value = fromVal;\n const tick = () => {\n var _a2;\n if ((_a2 = options.abort) == null ? void 0 : _a2.call(options)) {\n resolve();\n return;\n }\n const now = Date.now();\n const alpha = ease((now - startedAt) / duration);\n const arr = toVec(source.value).map((n, i) => lerp(v1[i], v2[i], alpha));\n if (Array.isArray(source.value))\n source.value = arr.map((n, i) => {\n var _a3, _b2;\n return lerp((_a3 = v1[i]) != null ? _a3 : 0, (_b2 = v2[i]) != null ? _b2 : 0, alpha);\n });\n else if (typeof source.value === \"number\")\n source.value = arr[0];\n if (now < endAt) {\n requestAnimationFrame(tick);\n } else {\n source.value = toVal;\n resolve();\n }\n };\n tick();\n });\n}\nfunction useTransition(source, options = {}) {\n let currentId = 0;\n const sourceVal = () => {\n const v = shared.toValue(source);\n return typeof v === \"number\" ? v : v.map(shared.toValue);\n };\n const outputRef = vueDemi.ref(sourceVal());\n vueDemi.watch(sourceVal, async (to) => {\n var _a, _b;\n if (shared.toValue(options.disabled))\n return;\n const id = ++currentId;\n if (options.delay)\n await shared.promiseTimeout(shared.toValue(options.delay));\n if (id !== currentId)\n return;\n const toVal = Array.isArray(to) ? to.map(shared.toValue) : shared.toValue(to);\n (_a = options.onStarted) == null ? void 0 : _a.call(options);\n await executeTransition(outputRef, outputRef.value, toVal, {\n ...options,\n abort: () => {\n var _a2;\n return id !== currentId || ((_a2 = options.abort) == null ? void 0 : _a2.call(options));\n }\n });\n (_b = options.onFinished) == null ? void 0 : _b.call(options);\n }, { deep: true });\n vueDemi.watch(() => shared.toValue(options.disabled), (disabled) => {\n if (disabled) {\n currentId++;\n outputRef.value = sourceVal();\n }\n });\n shared.tryOnScopeDispose(() => {\n currentId++;\n });\n return vueDemi.computed(() => shared.toValue(options.disabled) ? sourceVal() : outputRef.value);\n}\n\nfunction useUrlSearchParams(mode = \"history\", options = {}) {\n const {\n initialValue = {},\n removeNullishValues = true,\n removeFalsyValues = false,\n write: enableWrite = true,\n window = defaultWindow\n } = options;\n if (!window)\n return vueDemi.reactive(initialValue);\n const state = vueDemi.reactive({});\n function getRawParams() {\n if (mode === \"history\") {\n return window.location.search || \"\";\n } else if (mode === \"hash\") {\n const hash = window.location.hash || \"\";\n const index = hash.indexOf(\"?\");\n return index > 0 ? hash.slice(index) : \"\";\n } else {\n return (window.location.hash || \"\").replace(/^#/, \"\");\n }\n }\n function constructQuery(params) {\n const stringified = params.toString();\n if (mode === \"history\")\n return `${stringified ? `?${stringified}` : \"\"}${window.location.hash || \"\"}`;\n if (mode === \"hash-params\")\n return `${window.location.search || \"\"}${stringified ? `#${stringified}` : \"\"}`;\n const hash = window.location.hash || \"#\";\n const index = hash.indexOf(\"?\");\n if (index > 0)\n return `${hash.slice(0, index)}${stringified ? `?${stringified}` : \"\"}`;\n return `${hash}${stringified ? `?${stringified}` : \"\"}`;\n }\n function read() {\n return new URLSearchParams(getRawParams());\n }\n function updateState(params) {\n const unusedKeys = new Set(Object.keys(state));\n for (const key of params.keys()) {\n const paramsForKey = params.getAll(key);\n state[key] = paramsForKey.length > 1 ? paramsForKey : params.get(key) || \"\";\n unusedKeys.delete(key);\n }\n Array.from(unusedKeys).forEach((key) => delete state[key]);\n }\n const { pause, resume } = shared.pausableWatch(\n state,\n () => {\n const params = new URLSearchParams(\"\");\n Object.keys(state).forEach((key) => {\n const mapEntry = state[key];\n if (Array.isArray(mapEntry))\n mapEntry.forEach((value) => params.append(key, value));\n else if (removeNullishValues && mapEntry == null)\n params.delete(key);\n else if (removeFalsyValues && !mapEntry)\n params.delete(key);\n else\n params.set(key, mapEntry);\n });\n write(params);\n },\n { deep: true }\n );\n function write(params, shouldUpdate) {\n pause();\n if (shouldUpdate)\n updateState(params);\n window.history.replaceState(\n window.history.state,\n window.document.title,\n window.location.pathname + constructQuery(params)\n );\n resume();\n }\n function onChanged() {\n if (!enableWrite)\n return;\n write(read(), true);\n }\n useEventListener(window, \"popstate\", onChanged, false);\n if (mode !== \"history\")\n useEventListener(window, \"hashchange\", onChanged, false);\n const initial = read();\n if (initial.keys().next().value)\n updateState(initial);\n else\n Object.assign(state, initialValue);\n return state;\n}\n\nfunction useUserMedia(options = {}) {\n var _a, _b;\n const enabled = vueDemi.ref((_a = options.enabled) != null ? _a : false);\n const autoSwitch = vueDemi.ref((_b = options.autoSwitch) != null ? _b : true);\n const constraints = vueDemi.ref(options.constraints);\n const { navigator = defaultNavigator } = options;\n const isSupported = useSupported(() => {\n var _a2;\n return (_a2 = navigator == null ? void 0 : navigator.mediaDevices) == null ? void 0 : _a2.getUserMedia;\n });\n const stream = vueDemi.shallowRef();\n function getDeviceOptions(type) {\n switch (type) {\n case \"video\": {\n if (constraints.value)\n return constraints.value.video || false;\n break;\n }\n case \"audio\": {\n if (constraints.value)\n return constraints.value.audio || false;\n break;\n }\n }\n }\n async function _start() {\n if (!isSupported.value || stream.value)\n return;\n stream.value = await navigator.mediaDevices.getUserMedia({\n video: getDeviceOptions(\"video\"),\n audio: getDeviceOptions(\"audio\")\n });\n return stream.value;\n }\n function _stop() {\n var _a2;\n (_a2 = stream.value) == null ? void 0 : _a2.getTracks().forEach((t) => t.stop());\n stream.value = void 0;\n }\n function stop() {\n _stop();\n enabled.value = false;\n }\n async function start() {\n await _start();\n if (stream.value)\n enabled.value = true;\n return stream.value;\n }\n async function restart() {\n _stop();\n return await start();\n }\n vueDemi.watch(\n enabled,\n (v) => {\n if (v)\n _start();\n else _stop();\n },\n { immediate: true }\n );\n vueDemi.watch(\n constraints,\n () => {\n if (autoSwitch.value && stream.value)\n restart();\n },\n { immediate: true }\n );\n shared.tryOnScopeDispose(() => {\n stop();\n });\n return {\n isSupported,\n stream,\n start,\n stop,\n restart,\n constraints,\n enabled,\n autoSwitch\n };\n}\n\nfunction useVModel(props, key, emit, options = {}) {\n var _a, _b, _c, _d, _e;\n const {\n clone = false,\n passive = false,\n eventName,\n deep = false,\n defaultValue,\n shouldEmit\n } = options;\n const vm = vueDemi.getCurrentInstance();\n const _emit = emit || (vm == null ? void 0 : vm.emit) || ((_a = vm == null ? void 0 : vm.$emit) == null ? void 0 : _a.bind(vm)) || ((_c = (_b = vm == null ? void 0 : vm.proxy) == null ? void 0 : _b.$emit) == null ? void 0 : _c.bind(vm == null ? void 0 : vm.proxy));\n let event = eventName;\n if (!key) {\n if (vueDemi.isVue2) {\n const modelOptions = (_e = (_d = vm == null ? void 0 : vm.proxy) == null ? void 0 : _d.$options) == null ? void 0 : _e.model;\n key = (modelOptions == null ? void 0 : modelOptions.value) || \"value\";\n if (!eventName)\n event = (modelOptions == null ? void 0 : modelOptions.event) || \"input\";\n } else {\n key = \"modelValue\";\n }\n }\n event = event || `update:${key.toString()}`;\n const cloneFn = (val) => !clone ? val : typeof clone === \"function\" ? clone(val) : cloneFnJSON(val);\n const getValue = () => shared.isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n const triggerEmit = (value) => {\n if (shouldEmit) {\n if (shouldEmit(value))\n _emit(event, value);\n } else {\n _emit(event, value);\n }\n };\n if (passive) {\n const initialValue = getValue();\n const proxy = vueDemi.ref(initialValue);\n let isUpdating = false;\n vueDemi.watch(\n () => props[key],\n (v) => {\n if (!isUpdating) {\n isUpdating = true;\n proxy.value = cloneFn(v);\n vueDemi.nextTick(() => isUpdating = false);\n }\n }\n );\n vueDemi.watch(\n proxy,\n (v) => {\n if (!isUpdating && (v !== props[key] || deep))\n triggerEmit(v);\n },\n { deep }\n );\n return proxy;\n } else {\n return vueDemi.computed({\n get() {\n return getValue();\n },\n set(value) {\n triggerEmit(value);\n }\n });\n }\n}\n\nfunction useVModels(props, emit, options = {}) {\n const ret = {};\n for (const key in props) {\n ret[key] = useVModel(\n props,\n key,\n emit,\n options\n );\n }\n return ret;\n}\n\nfunction useVibrate(options) {\n const {\n pattern = [],\n interval = 0,\n navigator = defaultNavigator\n } = options || {};\n const isSupported = useSupported(() => typeof navigator !== \"undefined\" && \"vibrate\" in navigator);\n const patternRef = shared.toRef(pattern);\n let intervalControls;\n const vibrate = (pattern2 = patternRef.value) => {\n if (isSupported.value)\n navigator.vibrate(pattern2);\n };\n const stop = () => {\n if (isSupported.value)\n navigator.vibrate(0);\n intervalControls == null ? void 0 : intervalControls.pause();\n };\n if (interval > 0) {\n intervalControls = shared.useIntervalFn(\n vibrate,\n interval,\n {\n immediate: false,\n immediateCallback: false\n }\n );\n }\n return {\n isSupported,\n pattern,\n intervalControls,\n vibrate,\n stop\n };\n}\n\nfunction useVirtualList(list, options) {\n const { containerStyle, wrapperProps, scrollTo, calculateRange, currentList, containerRef } = \"itemHeight\" in options ? useVerticalVirtualList(options, list) : useHorizontalVirtualList(options, list);\n return {\n list: currentList,\n scrollTo,\n containerProps: {\n ref: containerRef,\n onScroll: () => {\n calculateRange();\n },\n style: containerStyle\n },\n wrapperProps\n };\n}\nfunction useVirtualListResources(list) {\n const containerRef = vueDemi.ref(null);\n const size = useElementSize(containerRef);\n const currentList = vueDemi.ref([]);\n const source = vueDemi.shallowRef(list);\n const state = vueDemi.ref({ start: 0, end: 10 });\n return { state, source, currentList, size, containerRef };\n}\nfunction createGetViewCapacity(state, source, itemSize) {\n return (containerSize) => {\n if (typeof itemSize === \"number\")\n return Math.ceil(containerSize / itemSize);\n const { start = 0 } = state.value;\n let sum = 0;\n let capacity = 0;\n for (let i = start; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n capacity = i;\n if (sum > containerSize)\n break;\n }\n return capacity - start;\n };\n}\nfunction createGetOffset(source, itemSize) {\n return (scrollDirection) => {\n if (typeof itemSize === \"number\")\n return Math.floor(scrollDirection / itemSize) + 1;\n let sum = 0;\n let offset = 0;\n for (let i = 0; i < source.value.length; i++) {\n const size = itemSize(i);\n sum += size;\n if (sum >= scrollDirection) {\n offset = i;\n break;\n }\n }\n return offset + 1;\n };\n}\nfunction createCalculateRange(type, overscan, getOffset, getViewCapacity, { containerRef, state, currentList, source }) {\n return () => {\n const element = containerRef.value;\n if (element) {\n const offset = getOffset(type === \"vertical\" ? element.scrollTop : element.scrollLeft);\n const viewCapacity = getViewCapacity(type === \"vertical\" ? element.clientHeight : element.clientWidth);\n const from = offset - overscan;\n const to = offset + viewCapacity + overscan;\n state.value = {\n start: from < 0 ? 0 : from,\n end: to > source.value.length ? source.value.length : to\n };\n currentList.value = source.value.slice(state.value.start, state.value.end).map((ele, index) => ({\n data: ele,\n index: index + state.value.start\n }));\n }\n };\n}\nfunction createGetDistance(itemSize, source) {\n return (index) => {\n if (typeof itemSize === \"number\") {\n const size2 = index * itemSize;\n return size2;\n }\n const size = source.value.slice(0, index).reduce((sum, _, i) => sum + itemSize(i), 0);\n return size;\n };\n}\nfunction useWatchForSizes(size, list, containerRef, calculateRange) {\n vueDemi.watch([size.width, size.height, list, containerRef], () => {\n calculateRange();\n });\n}\nfunction createComputedTotalSize(itemSize, source) {\n return vueDemi.computed(() => {\n if (typeof itemSize === \"number\")\n return source.value.length * itemSize;\n return source.value.reduce((sum, _, index) => sum + itemSize(index), 0);\n });\n}\nconst scrollToDictionaryForElementScrollKey = {\n horizontal: \"scrollLeft\",\n vertical: \"scrollTop\"\n};\nfunction createScrollTo(type, calculateRange, getDistance, containerRef) {\n return (index) => {\n if (containerRef.value) {\n containerRef.value[scrollToDictionaryForElementScrollKey[type]] = getDistance(index);\n calculateRange();\n }\n };\n}\nfunction useHorizontalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowX: \"auto\" };\n const { itemWidth, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemWidth);\n const getOffset = createGetOffset(source, itemWidth);\n const calculateRange = createCalculateRange(\"horizontal\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceLeft = createGetDistance(itemWidth, source);\n const offsetLeft = vueDemi.computed(() => getDistanceLeft(state.value.start));\n const totalWidth = createComputedTotalSize(itemWidth, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"horizontal\", calculateRange, getDistanceLeft, containerRef);\n const wrapperProps = vueDemi.computed(() => {\n return {\n style: {\n height: \"100%\",\n width: `${totalWidth.value - offsetLeft.value}px`,\n marginLeft: `${offsetLeft.value}px`,\n display: \"flex\"\n }\n };\n });\n return {\n scrollTo,\n calculateRange,\n wrapperProps,\n containerStyle,\n currentList,\n containerRef\n };\n}\nfunction useVerticalVirtualList(options, list) {\n const resources = useVirtualListResources(list);\n const { state, source, currentList, size, containerRef } = resources;\n const containerStyle = { overflowY: \"auto\" };\n const { itemHeight, overscan = 5 } = options;\n const getViewCapacity = createGetViewCapacity(state, source, itemHeight);\n const getOffset = createGetOffset(source, itemHeight);\n const calculateRange = createCalculateRange(\"vertical\", overscan, getOffset, getViewCapacity, resources);\n const getDistanceTop = createGetDistance(itemHeight, source);\n const offsetTop = vueDemi.computed(() => getDistanceTop(state.value.start));\n const totalHeight = createComputedTotalSize(itemHeight, source);\n useWatchForSizes(size, list, containerRef, calculateRange);\n const scrollTo = createScrollTo(\"vertical\", calculateRange, getDistanceTop, containerRef);\n const wrapperProps = vueDemi.computed(() => {\n return {\n style: {\n width: \"100%\",\n height: `${totalHeight.value - offsetTop.value}px`,\n marginTop: `${offsetTop.value}px`\n }\n };\n });\n return {\n calculateRange,\n scrollTo,\n containerStyle,\n wrapperProps,\n currentList,\n containerRef\n };\n}\n\nfunction useWakeLock(options = {}) {\n const {\n navigator = defaultNavigator,\n document = defaultDocument\n } = options;\n const requestedType = vueDemi.ref(false);\n const sentinel = vueDemi.shallowRef(null);\n const documentVisibility = useDocumentVisibility({ document });\n const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n const isActive = vueDemi.computed(() => !!sentinel.value && documentVisibility.value === \"visible\");\n if (isSupported.value) {\n useEventListener(sentinel, \"release\", () => {\n var _a, _b;\n requestedType.value = (_b = (_a = sentinel.value) == null ? void 0 : _a.type) != null ? _b : false;\n });\n shared.whenever(\n () => documentVisibility.value === \"visible\" && (document == null ? void 0 : document.visibilityState) === \"visible\" && requestedType.value,\n (type) => {\n requestedType.value = false;\n forceRequest(type);\n }\n );\n }\n async function forceRequest(type) {\n var _a;\n await ((_a = sentinel.value) == null ? void 0 : _a.release());\n sentinel.value = isSupported.value ? await navigator.wakeLock.request(type) : null;\n }\n async function request(type) {\n if (documentVisibility.value === \"visible\")\n await forceRequest(type);\n else\n requestedType.value = type;\n }\n async function release() {\n requestedType.value = false;\n const s = sentinel.value;\n sentinel.value = null;\n await (s == null ? void 0 : s.release());\n }\n return {\n sentinel,\n isSupported,\n isActive,\n request,\n forceRequest,\n release\n };\n}\n\nfunction useWebNotification(options = {}) {\n const {\n window = defaultWindow,\n requestPermissions: _requestForPermissions = true\n } = options;\n const defaultWebNotificationOptions = options;\n const isSupported = useSupported(() => {\n if (!window || !(\"Notification\" in window))\n return false;\n try {\n new Notification(\"\");\n } catch (e) {\n return false;\n }\n return true;\n });\n const permissionGranted = vueDemi.ref(isSupported.value && \"permission\" in Notification && Notification.permission === \"granted\");\n const notification = vueDemi.ref(null);\n const ensurePermissions = async () => {\n if (!isSupported.value)\n return;\n if (!permissionGranted.value && Notification.permission !== \"denied\") {\n const result = await Notification.requestPermission();\n if (result === \"granted\")\n permissionGranted.value = true;\n }\n return permissionGranted.value;\n };\n const { on: onClick, trigger: clickTrigger } = shared.createEventHook();\n const { on: onShow, trigger: showTrigger } = shared.createEventHook();\n const { on: onError, trigger: errorTrigger } = shared.createEventHook();\n const { on: onClose, trigger: closeTrigger } = shared.createEventHook();\n const show = async (overrides) => {\n if (!isSupported.value || !permissionGranted.value)\n return;\n const options2 = Object.assign({}, defaultWebNotificationOptions, overrides);\n notification.value = new Notification(options2.title || \"\", options2);\n notification.value.onclick = clickTrigger;\n notification.value.onshow = showTrigger;\n notification.value.onerror = errorTrigger;\n notification.value.onclose = closeTrigger;\n return notification.value;\n };\n const close = () => {\n if (notification.value)\n notification.value.close();\n notification.value = null;\n };\n if (_requestForPermissions)\n shared.tryOnMounted(ensurePermissions);\n shared.tryOnScopeDispose(close);\n if (isSupported.value && window) {\n const document = window.document;\n useEventListener(document, \"visibilitychange\", (e) => {\n e.preventDefault();\n if (document.visibilityState === \"visible\") {\n close();\n }\n });\n }\n return {\n isSupported,\n notification,\n ensurePermissions,\n permissionGranted,\n show,\n close,\n onClick,\n onShow,\n onError,\n onClose\n };\n}\n\nconst DEFAULT_PING_MESSAGE = \"ping\";\nfunction resolveNestedOptions(options) {\n if (options === true)\n return {};\n return options;\n}\nfunction useWebSocket(url, options = {}) {\n const {\n onConnected,\n onDisconnected,\n onError,\n onMessage,\n immediate = true,\n autoClose = true,\n protocols = []\n } = options;\n const data = vueDemi.ref(null);\n const status = vueDemi.ref(\"CLOSED\");\n const wsRef = vueDemi.ref();\n const urlRef = shared.toRef(url);\n let heartbeatPause;\n let heartbeatResume;\n let explicitlyClosed = false;\n let retried = 0;\n let bufferedData = [];\n let pongTimeoutWait;\n const _sendBuffer = () => {\n if (bufferedData.length && wsRef.value && status.value === \"OPEN\") {\n for (const buffer of bufferedData)\n wsRef.value.send(buffer);\n bufferedData = [];\n }\n };\n const resetHeartbeat = () => {\n clearTimeout(pongTimeoutWait);\n pongTimeoutWait = void 0;\n };\n const close = (code = 1e3, reason) => {\n if (!shared.isClient || !wsRef.value)\n return;\n explicitlyClosed = true;\n resetHeartbeat();\n heartbeatPause == null ? void 0 : heartbeatPause();\n wsRef.value.close(code, reason);\n wsRef.value = void 0;\n };\n const send = (data2, useBuffer = true) => {\n if (!wsRef.value || status.value !== \"OPEN\") {\n if (useBuffer)\n bufferedData.push(data2);\n return false;\n }\n _sendBuffer();\n wsRef.value.send(data2);\n return true;\n };\n const _init = () => {\n if (explicitlyClosed || typeof urlRef.value === \"undefined\")\n return;\n const ws = new WebSocket(urlRef.value, protocols);\n wsRef.value = ws;\n status.value = \"CONNECTING\";\n ws.onopen = () => {\n status.value = \"OPEN\";\n onConnected == null ? void 0 : onConnected(ws);\n heartbeatResume == null ? void 0 : heartbeatResume();\n _sendBuffer();\n };\n ws.onclose = (ev) => {\n status.value = \"CLOSED\";\n onDisconnected == null ? void 0 : onDisconnected(ws, ev);\n if (!explicitlyClosed && options.autoReconnect) {\n const {\n retries = -1,\n delay = 1e3,\n onFailed\n } = resolveNestedOptions(options.autoReconnect);\n retried += 1;\n if (typeof retries === \"number\" && (retries < 0 || retried < retries))\n setTimeout(_init, delay);\n else if (typeof retries === \"function\" && retries())\n setTimeout(_init, delay);\n else\n onFailed == null ? void 0 : onFailed();\n }\n };\n ws.onerror = (e) => {\n onError == null ? void 0 : onError(ws, e);\n };\n ws.onmessage = (e) => {\n if (options.heartbeat) {\n resetHeartbeat();\n const {\n message = DEFAULT_PING_MESSAGE,\n responseMessage = message\n } = resolveNestedOptions(options.heartbeat);\n if (e.data === responseMessage)\n return;\n }\n data.value = e.data;\n onMessage == null ? void 0 : onMessage(ws, e);\n };\n };\n if (options.heartbeat) {\n const {\n message = DEFAULT_PING_MESSAGE,\n interval = 1e3,\n pongTimeout = 1e3\n } = resolveNestedOptions(options.heartbeat);\n const { pause, resume } = shared.useIntervalFn(\n () => {\n send(message, false);\n if (pongTimeoutWait != null)\n return;\n pongTimeoutWait = setTimeout(() => {\n close();\n explicitlyClosed = false;\n }, pongTimeout);\n },\n interval,\n { immediate: false }\n );\n heartbeatPause = pause;\n heartbeatResume = resume;\n }\n if (autoClose) {\n if (shared.isClient)\n useEventListener(\"beforeunload\", () => close());\n shared.tryOnScopeDispose(close);\n }\n const open = () => {\n if (!shared.isClient && !shared.isWorker)\n return;\n close();\n explicitlyClosed = false;\n retried = 0;\n _init();\n };\n if (immediate)\n open();\n vueDemi.watch(urlRef, open);\n return {\n data,\n status,\n close,\n send,\n open,\n ws: wsRef\n };\n}\n\nfunction useWebWorker(arg0, workerOptions, options) {\n const {\n window = defaultWindow\n } = options != null ? options : {};\n const data = vueDemi.ref(null);\n const worker = vueDemi.shallowRef();\n const post = (...args) => {\n if (!worker.value)\n return;\n worker.value.postMessage(...args);\n };\n const terminate = function terminate2() {\n if (!worker.value)\n return;\n worker.value.terminate();\n };\n if (window) {\n if (typeof arg0 === \"string\")\n worker.value = new Worker(arg0, workerOptions);\n else if (typeof arg0 === \"function\")\n worker.value = arg0();\n else\n worker.value = arg0;\n worker.value.onmessage = (e) => {\n data.value = e.data;\n };\n shared.tryOnScopeDispose(() => {\n if (worker.value)\n worker.value.terminate();\n });\n }\n return {\n data,\n post,\n terminate,\n worker\n };\n}\n\nfunction jobRunner(userFunc) {\n return (e) => {\n const userFuncArgs = e.data[0];\n return Promise.resolve(userFunc.apply(void 0, userFuncArgs)).then((result) => {\n postMessage([\"SUCCESS\", result]);\n }).catch((error) => {\n postMessage([\"ERROR\", error]);\n });\n };\n}\n\nfunction depsParser(deps, localDeps) {\n if (deps.length === 0 && localDeps.length === 0)\n return \"\";\n const depsString = deps.map((dep) => `'${dep}'`).toString();\n const depsFunctionString = localDeps.filter((dep) => typeof dep === \"function\").map((fn) => {\n const str = fn.toString();\n if (str.trim().startsWith(\"function\")) {\n return str;\n } else {\n const name = fn.name;\n return `const ${name} = ${str}`;\n }\n }).join(\";\");\n const importString = `importScripts(${depsString});`;\n return `${depsString.trim() === \"\" ? \"\" : importString} ${depsFunctionString}`;\n}\n\nfunction createWorkerBlobUrl(fn, deps, localDeps) {\n const blobCode = `${depsParser(deps, localDeps)}; onmessage=(${jobRunner})(${fn})`;\n const blob = new Blob([blobCode], { type: \"text/javascript\" });\n const url = URL.createObjectURL(blob);\n return url;\n}\n\nfunction useWebWorkerFn(fn, options = {}) {\n const {\n dependencies = [],\n localDependencies = [],\n timeout,\n window = defaultWindow\n } = options;\n const worker = vueDemi.ref();\n const workerStatus = vueDemi.ref(\"PENDING\");\n const promise = vueDemi.ref({});\n const timeoutId = vueDemi.ref();\n const workerTerminate = (status = \"PENDING\") => {\n if (worker.value && worker.value._url && window) {\n worker.value.terminate();\n URL.revokeObjectURL(worker.value._url);\n promise.value = {};\n worker.value = void 0;\n window.clearTimeout(timeoutId.value);\n workerStatus.value = status;\n }\n };\n workerTerminate();\n shared.tryOnScopeDispose(workerTerminate);\n const generateWorker = () => {\n const blobUrl = createWorkerBlobUrl(fn, dependencies, localDependencies);\n const newWorker = new Worker(blobUrl);\n newWorker._url = blobUrl;\n newWorker.onmessage = (e) => {\n const { resolve = () => {\n }, reject = () => {\n } } = promise.value;\n const [status, result] = e.data;\n switch (status) {\n case \"SUCCESS\":\n resolve(result);\n workerTerminate(status);\n break;\n default:\n reject(result);\n workerTerminate(\"ERROR\");\n break;\n }\n };\n newWorker.onerror = (e) => {\n const { reject = () => {\n } } = promise.value;\n e.preventDefault();\n reject(e);\n workerTerminate(\"ERROR\");\n };\n if (timeout) {\n timeoutId.value = setTimeout(\n () => workerTerminate(\"TIMEOUT_EXPIRED\"),\n timeout\n );\n }\n return newWorker;\n };\n const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n var _a;\n promise.value = {\n resolve,\n reject\n };\n (_a = worker.value) == null ? void 0 : _a.postMessage([[...fnArgs]]);\n workerStatus.value = \"RUNNING\";\n });\n const workerFn = (...fnArgs) => {\n if (workerStatus.value === \"RUNNING\") {\n console.error(\n \"[useWebWorkerFn] You can only run one instance of the worker at a time.\"\n );\n return Promise.reject();\n }\n worker.value = generateWorker();\n return callWorker(...fnArgs);\n };\n return {\n workerFn,\n workerStatus,\n workerTerminate\n };\n}\n\nfunction useWindowFocus(options = {}) {\n const { window = defaultWindow } = options;\n if (!window)\n return vueDemi.ref(false);\n const focused = vueDemi.ref(window.document.hasFocus());\n useEventListener(window, \"blur\", () => {\n focused.value = false;\n });\n useEventListener(window, \"focus\", () => {\n focused.value = true;\n });\n return focused;\n}\n\nfunction useWindowScroll(options = {}) {\n const { window = defaultWindow, behavior = \"auto\" } = options;\n if (!window) {\n return {\n x: vueDemi.ref(0),\n y: vueDemi.ref(0)\n };\n }\n const internalX = vueDemi.ref(window.scrollX);\n const internalY = vueDemi.ref(window.scrollY);\n const x = vueDemi.computed({\n get() {\n return internalX.value;\n },\n set(x2) {\n scrollTo({ left: x2, behavior });\n }\n });\n const y = vueDemi.computed({\n get() {\n return internalY.value;\n },\n set(y2) {\n scrollTo({ top: y2, behavior });\n }\n });\n useEventListener(\n window,\n \"scroll\",\n () => {\n internalX.value = window.scrollX;\n internalY.value = window.scrollY;\n },\n {\n capture: false,\n passive: true\n }\n );\n return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n const {\n window = defaultWindow,\n initialWidth = Number.POSITIVE_INFINITY,\n initialHeight = Number.POSITIVE_INFINITY,\n listenOrientation = true,\n includeScrollbar = true,\n type = \"inner\"\n } = options;\n const width = vueDemi.ref(initialWidth);\n const height = vueDemi.ref(initialHeight);\n const update = () => {\n if (window) {\n if (type === \"outer\") {\n width.value = window.outerWidth;\n height.value = window.outerHeight;\n } else if (includeScrollbar) {\n width.value = window.innerWidth;\n height.value = window.innerHeight;\n } else {\n width.value = window.document.documentElement.clientWidth;\n height.value = window.document.documentElement.clientHeight;\n }\n }\n };\n update();\n shared.tryOnMounted(update);\n useEventListener(\"resize\", update, { passive: true });\n if (listenOrientation) {\n const matches = useMediaQuery(\"(orientation: portrait)\");\n vueDemi.watch(matches, () => update());\n }\n return { width, height };\n}\n\nexports.DefaultMagicKeysAliasMap = DefaultMagicKeysAliasMap;\nexports.StorageSerializers = StorageSerializers;\nexports.TransitionPresets = TransitionPresets;\nexports.asyncComputed = computedAsync;\nexports.breakpointsAntDesign = breakpointsAntDesign;\nexports.breakpointsBootstrapV5 = breakpointsBootstrapV5;\nexports.breakpointsMasterCss = breakpointsMasterCss;\nexports.breakpointsPrimeFlex = breakpointsPrimeFlex;\nexports.breakpointsQuasar = breakpointsQuasar;\nexports.breakpointsSematic = breakpointsSematic;\nexports.breakpointsTailwind = breakpointsTailwind;\nexports.breakpointsVuetify = breakpointsVuetify;\nexports.breakpointsVuetifyV2 = breakpointsVuetifyV2;\nexports.breakpointsVuetifyV3 = breakpointsVuetifyV3;\nexports.cloneFnJSON = cloneFnJSON;\nexports.computedAsync = computedAsync;\nexports.computedInject = computedInject;\nexports.createFetch = createFetch;\nexports.createReusableTemplate = createReusableTemplate;\nexports.createTemplatePromise = createTemplatePromise;\nexports.createUnrefFn = createUnrefFn;\nexports.customStorageEventName = customStorageEventName;\nexports.defaultDocument = defaultDocument;\nexports.defaultLocation = defaultLocation;\nexports.defaultNavigator = defaultNavigator;\nexports.defaultWindow = defaultWindow;\nexports.executeTransition = executeTransition;\nexports.formatTimeAgo = formatTimeAgo;\nexports.getSSRHandler = getSSRHandler;\nexports.mapGamepadToXbox360Controller = mapGamepadToXbox360Controller;\nexports.onClickOutside = onClickOutside;\nexports.onKeyDown = onKeyDown;\nexports.onKeyPressed = onKeyPressed;\nexports.onKeyStroke = onKeyStroke;\nexports.onKeyUp = onKeyUp;\nexports.onLongPress = onLongPress;\nexports.onStartTyping = onStartTyping;\nexports.setSSRHandler = setSSRHandler;\nexports.templateRef = templateRef;\nexports.unrefElement = unrefElement;\nexports.useActiveElement = useActiveElement;\nexports.useAnimate = useAnimate;\nexports.useAsyncQueue = useAsyncQueue;\nexports.useAsyncState = useAsyncState;\nexports.useBase64 = useBase64;\nexports.useBattery = useBattery;\nexports.useBluetooth = useBluetooth;\nexports.useBreakpoints = useBreakpoints;\nexports.useBroadcastChannel = useBroadcastChannel;\nexports.useBrowserLocation = useBrowserLocation;\nexports.useCached = useCached;\nexports.useClipboard = useClipboard;\nexports.useClipboardItems = useClipboardItems;\nexports.useCloned = useCloned;\nexports.useColorMode = useColorMode;\nexports.useConfirmDialog = useConfirmDialog;\nexports.useCssVar = useCssVar;\nexports.useCurrentElement = useCurrentElement;\nexports.useCycleList = useCycleList;\nexports.useDark = useDark;\nexports.useDebouncedRefHistory = useDebouncedRefHistory;\nexports.useDeviceMotion = useDeviceMotion;\nexports.useDeviceOrientation = useDeviceOrientation;\nexports.useDevicePixelRatio = useDevicePixelRatio;\nexports.useDevicesList = useDevicesList;\nexports.useDisplayMedia = useDisplayMedia;\nexports.useDocumentVisibility = useDocumentVisibility;\nexports.useDraggable = useDraggable;\nexports.useDropZone = useDropZone;\nexports.useElementBounding = useElementBounding;\nexports.useElementByPoint = useElementByPoint;\nexports.useElementHover = useElementHover;\nexports.useElementSize = useElementSize;\nexports.useElementVisibility = useElementVisibility;\nexports.useEventBus = useEventBus;\nexports.useEventListener = useEventListener;\nexports.useEventSource = useEventSource;\nexports.useEyeDropper = useEyeDropper;\nexports.useFavicon = useFavicon;\nexports.useFetch = useFetch;\nexports.useFileDialog = useFileDialog;\nexports.useFileSystemAccess = useFileSystemAccess;\nexports.useFocus = useFocus;\nexports.useFocusWithin = useFocusWithin;\nexports.useFps = useFps;\nexports.useFullscreen = useFullscreen;\nexports.useGamepad = useGamepad;\nexports.useGeolocation = useGeolocation;\nexports.useIdle = useIdle;\nexports.useImage = useImage;\nexports.useInfiniteScroll = useInfiniteScroll;\nexports.useIntersectionObserver = useIntersectionObserver;\nexports.useKeyModifier = useKeyModifier;\nexports.useLocalStorage = useLocalStorage;\nexports.useMagicKeys = useMagicKeys;\nexports.useManualRefHistory = useManualRefHistory;\nexports.useMediaControls = useMediaControls;\nexports.useMediaQuery = useMediaQuery;\nexports.useMemoize = useMemoize;\nexports.useMemory = useMemory;\nexports.useMounted = useMounted;\nexports.useMouse = useMouse;\nexports.useMouseInElement = useMouseInElement;\nexports.useMousePressed = useMousePressed;\nexports.useMutationObserver = useMutationObserver;\nexports.useNavigatorLanguage = useNavigatorLanguage;\nexports.useNetwork = useNetwork;\nexports.useNow = useNow;\nexports.useObjectUrl = useObjectUrl;\nexports.useOffsetPagination = useOffsetPagination;\nexports.useOnline = useOnline;\nexports.usePageLeave = usePageLeave;\nexports.useParallax = useParallax;\nexports.useParentElement = useParentElement;\nexports.usePerformanceObserver = usePerformanceObserver;\nexports.usePermission = usePermission;\nexports.usePointer = usePointer;\nexports.usePointerLock = usePointerLock;\nexports.usePointerSwipe = usePointerSwipe;\nexports.usePreferredColorScheme = usePreferredColorScheme;\nexports.usePreferredContrast = usePreferredContrast;\nexports.usePreferredDark = usePreferredDark;\nexports.usePreferredLanguages = usePreferredLanguages;\nexports.usePreferredReducedMotion = usePreferredReducedMotion;\nexports.usePrevious = usePrevious;\nexports.useRafFn = useRafFn;\nexports.useRefHistory = useRefHistory;\nexports.useResizeObserver = useResizeObserver;\nexports.useScreenOrientation = useScreenOrientation;\nexports.useScreenSafeArea = useScreenSafeArea;\nexports.useScriptTag = useScriptTag;\nexports.useScroll = useScroll;\nexports.useScrollLock = useScrollLock;\nexports.useSessionStorage = useSessionStorage;\nexports.useShare = useShare;\nexports.useSorted = useSorted;\nexports.useSpeechRecognition = useSpeechRecognition;\nexports.useSpeechSynthesis = useSpeechSynthesis;\nexports.useStepper = useStepper;\nexports.useStorage = useStorage;\nexports.useStorageAsync = useStorageAsync;\nexports.useStyleTag = useStyleTag;\nexports.useSupported = useSupported;\nexports.useSwipe = useSwipe;\nexports.useTemplateRefsList = useTemplateRefsList;\nexports.useTextDirection = useTextDirection;\nexports.useTextSelection = useTextSelection;\nexports.useTextareaAutosize = useTextareaAutosize;\nexports.useThrottledRefHistory = useThrottledRefHistory;\nexports.useTimeAgo = useTimeAgo;\nexports.useTimeoutPoll = useTimeoutPoll;\nexports.useTimestamp = useTimestamp;\nexports.useTitle = useTitle;\nexports.useTransition = useTransition;\nexports.useUrlSearchParams = useUrlSearchParams;\nexports.useUserMedia = useUserMedia;\nexports.useVModel = useVModel;\nexports.useVModels = useVModels;\nexports.useVibrate = useVibrate;\nexports.useVirtualList = useVirtualList;\nexports.useWakeLock = useWakeLock;\nexports.useWebNotification = useWebNotification;\nexports.useWebSocket = useWebSocket;\nexports.useWebWorker = useWebWorker;\nexports.useWebWorkerFn = useWebWorkerFn;\nexports.useWindowFocus = useWindowFocus;\nexports.useWindowScroll = useWindowScroll;\nexports.useWindowSize = useWindowSize;\nObject.keys(shared).forEach(function (k) {\n if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {\n enumerable: true,\n get: function () { return shared[k]; }\n });\n});\n","\n.k-address-view\n span {{ addressValue }}\n\n\n\n","\n.vc-promoter-campaign-sample-shipment-item-list\n k-list-item(\n v-for=\"(shipmentItem, index) in promoterCampaignSampleShipment.shipment_items\"\n :key=\"index\"\n :image-url=\"sampleDetailFor(shipmentItem).imageUrl\"\n )\n template(#info)\n .sku {{ sampleDetailFor(shipmentItem).sku }}\n .product-name {{ sampleDetailFor(shipmentItem).productName }}\n .variant-name {{ sampleDetailFor(shipmentItem).variantName }}\n .stock(v-if=\"showStock\")\n | 樣品庫存:\n | {{ sampleDetailFor(shipmentItem).stock }}\n template(#action)\n span.quantity\n | x 1\n\n\n\n","\n.vc-shared-promoter-campaign-registration-time-range-view\n k-datetime-range-view(\n :started-time=\"promoterCampaign.registration_started_at\"\n :ended-time=\"promoterCampaign.registration_ended_at\"\n :display-type=\"displayType\"\n :format=\"timeFormat\"\n )\n\n\n\n"],"names":["_sfc_main","defineComponent","config","computed","props","containerStyle","clickHandler","emit","STYLE_TYPE_MAP","ProductImage","UserAvatar","KolAvatar","IdPhoto","component","isVue2","isVue3","Vue2","Vue","warn","install","createApp","rootComponent","rootProps","vm","provide","app","key","value","name","dir","el","hydrating","createMockComponent","Fragment","Transition","TransitionGroup","Teleport","Suspense","KeepAlive","hasInjectionContext","getCurrentInstance","computedEager","fn","options","_a","result","shallowRef","watchEffect","readonly","computedWithControl","source","v","track","trigger","dirty","ref","update","watch","get","set","customRef","_track","_trigger","v2","tryOnScopeDispose","getCurrentScope","onScopeDispose","createEventHook","fns","off","offFn","args","createGlobalState","stateFactory","initialized","state","scope","effectScope","localProvidedStateMap","provideLocal","instance","localProvidedState","injectLocal","inject","createInjectionState","composable","defaultValue","createSharedComposable","subscribers","dispose","extendRef","extend","enumerable","unwrap","version","isRef","obj","unref","isDefined","makeDestructurable","arr","clone","index","toValue","r","resolveUnref","reactify","unrefFn","i","reactifyObject","optionsOrKeys","keys","includeOwnProperties","toReactive","objectRef","reactive","proxy","_","receiver","reactiveComputed","reactiveOmit","flatKeys","predicate","toRefs$1","k","e","isClient","isWorker","isDef","val","notNullish","assert","condition","infos","toString","isObject","now","timestamp","clamp","n","min","max","noop","rand","hasOwn","isIOS","getIsIOS","_b","createFilterWrapper","filter","wrapper","resolve","reject","bypassFilter","invoke","debounceFilter","ms","timer","maxTimer","lastRejector","_clearTimeout","timer2","duration","maxDuration","throttleFilter","lastExec","isLeading","lastValue","trailing","leading","rejectOnCancel","clear","_invoke","elapsed","pausableFilter","extendFilter","isActive","pause","resume","eventFilter","directiveHooks","cacheStringFunction","cache","str","hyphenateRE","hyphenate","camelizeRE","camelize","c","promiseTimeout","throwOnTimeout","reason","identity","arg","createSingletonPromise","_promise","_prev","containsProp","increaseWithUnit","target","delta","unit","objectPick","omitUndefined","objectOmit","objectEntries","getLifeCycleTarget","toRef","toRef$1","resolveRef","reactivePick","refAutoReset","afterMs","resetAfter","newValue","useDebounceFn","refDebounced","debounced","updater","refDefault","useThrottleFn","refThrottled","delay","throttled","refWithControl","initial","tracking","triggering","old","controlledRef","set$1","watchWithFilter","cb","watchOptions","watchPausable","syncRef","left","right","flush","deep","immediate","direction","transform","watchers","transformLTR","transformRTL","w","syncRefs","targets","toRefs","copy","newObject","tryOnBeforeMount","sync","onBeforeMount","nextTick","tryOnBeforeUnmount","onBeforeUnmount","tryOnMounted","onMounted","tryOnUnmounted","onUnmounted","createUntil","isNot","toMatch","timeout","stop","promises","toBe","v1","toBeTruthy","toBeNull","toBeUndefined","toBeNaN","toContains","array","changed","changedTimes","count","until","defaultComparator","othVal","useArrayDifference","list","values","compareFn","x","y","useArrayEvery","element","useArrayFilter","useArrayFind","useArrayFindIndex","findLast","useArrayFindLast","isArrayIncludesOptions","useArrayIncludes","comparator","formIndex","value2","useArrayJoin","separator","useArrayMap","useArrayReduce","reducer","reduceCallback","sum","resolved","useArraySome","uniq","uniqueElementsBy","acc","useArrayUnique","resolvedList","useCounter","initialValue","_initialValue","inc","dec","REGEX_PARSE","REGEX_FORMAT","defaultMeridiem","hours","minutes","isLowercase","hasPeriod","m","curr","formatOrdinal","num","suffixes","formatDate","date","formatStr","years","month","days","seconds","milliseconds","day","meridiem","matches","match","$1","_a2","normalizeDate","d","useDateFormat","useIntervalFn","interval","immediateCallback","clean","intervalValue","stopWatch","useInterval","exposeControls","callback","counter","reset","controls","useLastChanged","useTimeoutFn","isPending","start","useTimeout","ready","useToNumber","method","radix","nanToZero","useToString","useToggle","truthyValue","falsyValue","valueIsRef","_value","toggle","truthy","watchArray","oldList","newList","onCleanup","oldListRemains","added","found","removed","_2","watchAtMost","current","watchDebounced","debounce","maxWait","watchDeep","watchIgnorable","filteredCb","ignoreUpdates","ignorePrevAsyncUpdates","ignore","disposables","ignoreCounter","syncCounter","syncCounterPrev","watchImmediate","watchOnce","watchThrottled","throttle","watchTriggerable","cleanupFn","onEffect","_cb","oldValue","res","res2","getWatchSources","getOldValue","sources","isReactive","item","whenever","ov","onInvalidate","KolcenterProductContainer","containerId","listenScrollDown","ensureContainerHeight","event","detectToScrollBottom","isLastPage","totalPage","container","goButtonHandler","windowHeight","scrollY","bodyHeight","buffer","imageClickHandler","CampaignCardV1","CampaignCardV2","campaignNewCardV1","KolCardV1","MILLISECONDS_SECOND","MILLISECONDS_MINUTE","MILLISECONDS_HOUR","MILLISECONDS_DAY","EVENT_VISIBILITY_CHANGE","createElement","_this","init","prev","step","range","formattedStartedTime","moment","formattedEndedTime","store","useStore","inputHandler","promoterCampaign","timeFormat","shared","require$$0","vueDemi","require$$1","computedAsync","evaluationCallback","initialState","optionsOrRef","lazy","evaluating","shallow","onError","started","counterAtBeginning","hasFinished","cancelCallback","computedInject","defaultSource","treatDefaultAsFactory","ctx","createReusableTemplate","inheritAttrs","render","define","slots","reuse","attrs","vnode","keysToCamelKebabCase","newObj","createTemplatePromise","instances","create","_resolve","_reject","index2","renderList","createUnrefFn","unrefElement","elRef","plain","defaultWindow","defaultDocument","defaultNavigator","defaultLocation","useEventListener","events","listeners","cleanups","cleanup","register","listener","options2","optionsClone","_iOSWorkaround","onClickOutside","handler","window","capture","detectIframe","shouldListen","shouldIgnore","target2","createKeyPredicate","keyFilter","onKeyStroke","eventName","passive","dedupe","onKeyDown","onKeyPressed","onKeyUp","DEFAULT_DELAY","DEFAULT_THRESHOLD","onLongPress","elementRef","posStart","startTimestamp","hasLongPressed","onRelease","ev","_b2","_c","_startTimestamp","_posStart","_hasLongPressed","dx","dy","distance","onDown","_d","onMove","listenerOptions","isFocusedElementEditable","activeElement","body","isTypedCharValid","keyCode","metaKey","ctrlKey","altKey","onStartTyping","document2","templateRef","useMounted","isMounted","useSupported","useMutationObserver","mutationOptions","observer","isSupported","items","targets2","takeRecords","useActiveElement","triggerOnRemoval","document","getDeepActiveElement","mutations","node","useRafFn","fpsLimit","intervalLimit","previousFrameTimestamp","rafId","loop","useAnimate","keyframes","animateOptions","commitStyles","persist","_playbackRate","onReady","animate","pending","playState","replaceState","startTime","currentTime","syncResume","timeline","playbackRate","play","syncPause","reverse","finish","cancel","resumeRef","pauseRef","useAsyncQueue","tasks","interrupt","onFinished","signal","promiseState","initialResult","activeIndex","updateResult","prevRes","done","currentRes","whenAborted","error","useAsyncState","promise","onSuccess","resetOnExecute","throwError","isReady","isLoading","execute","delay2","data","shell","waitUntilIsLoaded","onFulfilled","onRejected","defaults","getDefaultSerialization","useBase64","base64","_target","blobToBase64","img","imgLoaded","canvas","serialized","blob","fr","useBattery","navigator","charging","chargingTime","dischargingTime","level","battery","updateBatteryInfo","_battery","useBluetooth","acceptAllDevices","filters","optionalServices","device","connectToBluetoothGATTServer","requestDevice","err","server","isConnected","useMediaQuery","query","mediaQuery","breakpointsTailwind","breakpointsBootstrapV5","breakpointsVuetifyV2","breakpointsVuetifyV3","breakpointsVuetify","breakpointsAntDesign","breakpointsQuasar","breakpointsSematic","breakpointsMasterCss","breakpointsPrimeFlex","useBreakpoints","breakpoints","getValue","strategy","greaterOrEqual","smallerOrEqual","shortcutMethods","shortcuts","points","a","b","bps","useBroadcastChannel","isClosed","channel","post","data2","close","WRITABLE_PROPERTIES","useBrowserLocation","refs","ref2","buildState","state2","length","origin","useCached","refValue","cachedValue","usePermission","permissionDesc","permissionStatus","desc","onChange","useClipboard","read","copiedDuring","legacy","isClipboardApiSupported","permissionRead","permissionWrite","text","copied","updateText","isAllowed","legacyRead","legacyCopy","ta","status","useClipboardItems","content","updateContent","cloneFnJSON","useCloned","cloned","manual","_global","global","globalKey","handlers","getHandlers","getSSRHandler","fallback","setSSRHandler","guessSerializerType","rawInit","StorageSerializers","customStorageEventName","useStorage","storage","listenToStorageChanges","writeDefaults","mergeDefaults","initOnMounted","type","serializer","pauseWatch","resumeWatch","write","updateFromCustomEvent","dispatchWriteEvent","payload","rawValue","usePreferredDark","CSS_DISABLE_TRANS","useColorMode","selector","attribute","storageKey","storageRef","emitAuto","disableTransition","modes","preferredDark","system","updateHTMLAttrs","selector2","attribute2","classesToAdd","classesToRemove","attributeToChange","style","defaultOnChanged","mode","onChanged","auto","useConfirmDialog","revealed","confirmHook","cancelHook","revealHook","reveal","confirm","useCssVar","prop","observe","variable","updateCssVar","raw_prop","useCurrentElement","currentElement","useCycleList","getInitialValue","listRef","targetList","shift","next","useDark","valueDark","valueLight","mode2","defaultHandler","modeVal","fnBypass","fnSetSource","defaultDump","defaultParse","useManualRefHistory","dump","parse","setSource","_createHistoryRecord","last","undoStack","redoStack","_setSource","record","commit","undo","redo","history","canUndo","canRedo","useRefHistory","composedFilter","resumeTracking","isTracking","source2","manualHistory","manualCommit","commitNow","batch","canceled","useDebouncedRefHistory","useDeviceMotion","acceleration","rotationRate","accelerationIncludingGravity","onDeviceMotion","useDeviceOrientation","isAbsolute","alpha","beta","gamma","useDevicePixelRatio","pixelRatio","observe2","cleanup2","media","useDevicesList","requestPermissions","constraints","onUpdated","devices","videoInputs","audioInputs","audioOutputs","permissionGranted","stream","t","ensurePermissions","useDisplayMedia","enabled","video","audio","constraint","_start","_stop","useDocumentVisibility","visibility","useDraggable","pointerTypes","preventDefault","stopPropagation","exact","onEnd","onStart","axis","draggingElement","containerElement","draggingHandle","buttons","position","pressedDelta","filterEvent","handleEvent","containerRect","targetRect","pos","move","end","useDropZone","isOverDropZone","files","isDataTypeIncluded","_options","getFiles","types","dataTypes","useResizeObserver","observerOptions","_targets","els","_el","useElementBounding","windowResize","windowScroll","updateTiming","height","bottom","top","width","recalculate","rect","ele","useElementByPoint","multiple","useElementHover","delayEnter","delayLeave","isHovered","entering","useElementSize","initialSize","box","isSVG","stop1","entry","boxSize","$elem","formatBoxSize","inlineSize","blockSize","stop2","useIntersectionObserver","root","rootMargin","threshold","root2","useElementVisibility","scrollTarget","elementIsVisible","intersectionObserverEntries","isIntersecting","latestTime","useEventBus","on","_off","once","_listener","resolveNestedOptions$1","useEventSource","url","eventSource","urlRef","lastEventId","explicitlyClosed","retried","withCredentials","_init","es","retries","onFailed","event_name","open","useEyeDropper","sRGBHex","openOptions","useFavicon","newIcon","baseUrl","rel","favicon","applyIcon","icon","elements","link","o","payloadMapping","isFetchOptions","reAbsolute","isAbsoluteURL","headersToObject","headers","combineCallbacks","combination","callbacks","createFetch","_combination","_fetchOptions","useFactoryFetch","computedUrl","targetUrl","joinPaths","fetchOptions","useFetch","supportsAbort","fetch","initialData","responseEvent","errorEvent","finallyEvent","isFinished","isFetching","aborted","statusCode","response","canAbort","controller","abort","loading","executeCounter","throwOnFailed","currentExecuteCounter","defaultFetchOptions","isCanceled","context","responseData","fetchResponse","fetchError","errorData","refetch","refetch2","setMethod","setType","payloadType","waitUntilFinished","error2","DEFAULT_OPTIONS","useFileDialog","input","localOptions","useFileSystemAccess","_window","dataType","fileHandle","file","fileName","fileMIME","fileSize","fileLastModified","handle","updateData","save","saveAs","writableStream","updateFile","useFocus","focusVisible","preventScroll","innerFocused","targetElement","focused","useFocusWithin","useFps","fps","every","ticks","diff","eventHandlers","useFullscreen","autoExit","targetRef","isFullscreen","requestMethod","exitMethod","fullscreenEnabled","fullscreenElementMethod","isCurrentElementFullScreen","isElementFullScreen","exit","enter","handlerCallback","isElementFullScreenValue","mapGamepadToXbox360Controller","gamepad","useGamepad","gamepads","onConnectedHook","onDisconnectedHook","stateFromGamepad","hapticActuators","vibrationActuator","axes","button","updateGamepadState","_gamepads","onGamepadConnected","onGamepadDisconnected","useGeolocation","enableHighAccuracy","maximumAge","locatedAt","coords","updatePosition","watcher","defaultEvents$1","oneMinute","useIdle","listenForVisibilityChange","idle","lastActive","onEvent","loadImage","src","srcset","sizes","clazz","crossorigin","referrerPolicy","useImage","asyncStateOptions","ARRIVED_STATE_THRESHOLD_PIXELS","useScroll","onStop","onScroll","offset","eventListenerOptions","behavior","internalX","internalY","x2","scrollTo","y2","_x","_y","_element","scrollContainer","isScrolling","arrivedState","directions","onScrollEnd","onScrollEndDebounced","setArrivedState","display","flexDirection","scrollLeft","scrollTop","onScrollHandler","eventTarget","resolveElement","useInfiniteScroll","onLoadMore","canLoadMore","observedElement","isElementVisible","checkAndLoad","scrollHeight","clientHeight","scrollWidth","clientWidth","isNarrower","defaultEvents","useKeyModifier","modifier","listenerEvent","evt","useLocalStorage","DefaultMagicKeysAliasMap","useMagicKeys","useReactive","aliasMap","onEventFired","metaDeps","usedKeys","setRefs","updateRefs","key2","rec","usingElRef","timeRangeToArray","timeRanges","ranges","tracksToArray","tracks","label","kind","language","activeCues","cues","inBandMetadataTrackDispatchType","id","defaultOptions","useMediaControls","seeking","volume","waiting","ended","playing","rate","stalled","buffered","selectedTrack","isPictureInPicture","muted","supportsPictureInPicture","sourceErrorEvent","disableTrack","enableTrack","disableTracks","togglePictureInPicture","src2","textTracks","isDefault","srcLang","ignoreCurrentTimeUpdates","time","ignorePlayingUpdates","isPlaying","getMapVue2Compat","useMemoize","resolver","generateKey","_loadData","loadData","deleteData","clearData","memoized","useMemory","memory","UseMouseBuiltinExtractors","useMouse","touch","resetOnTouchEnds","scroll","_prevMouseEvent","sourceType","extractor","mouseHandler","touchHandler","scrollHandler","mouseHandlerWrapper","touchHandlerWrapper","scrollHandlerWrapper","useMouseInElement","handleOutside","elementX","elementY","elementPositionX","elementPositionY","elementHeight","elementWidth","isOutside","elX","elY","useMousePressed","drag","pressed","onPressed","srcType","onReleased","useNavigatorLanguage","useNetwork","isOnline","saveData","offlineAt","onlineAt","downlink","downlinkMax","rtt","effectiveType","connection","updateNetworkInformation","useNow","useObjectUrl","object","release","useClamp","useOffsetPagination","total","pageSize","page","onPageChange","onPageSizeChange","onPageCountChange","currentPageSize","pageCount","currentPage","isFirstPage","returnValue","useOnline","usePageLeave","isLeft","from","useScreenOrientation","screenOrientation","orientation","angle","useParallax","deviceOrientationTiltAdjust","deviceOrientationRollAdjust","mouseTiltAdjust","mouseRollAdjust","roll","tilt","useParentElement","parentElement","usePerformanceObserver","performanceOptions","defaultState","usePointer","isInside","usePointerLock","triggerElement","action","lock","unlock","usePointerSwipe","onSwipe","onSwipeEnd","onSwipeStart","disableTextSelect","updatePosStart","posEnd","updatePosEnd","distanceX","distanceY","abs","isThresholdExceeded","isSwiping","isPointerDown","eventIsAllowed","isReleasingButton","isPrimaryButton","stops","_e","_f","_g","_h","s","usePreferredColorScheme","isLight","isDark","usePreferredContrast","isMore","isLess","isCustom","usePreferredLanguages","usePreferredReducedMotion","isReduced","usePrevious","previous","topVarName","rightVarName","bottomVarName","leftVarName","useScreenSafeArea","topCssVar","rightCssVar","bottomCssVar","leftCssVar","useScriptTag","onLoaded","async","crossOrigin","noModule","defer","scriptTag","loadScript","waitForScriptLoad","resolveWithElement","el2","shouldAppend","load","unload","checkOverflowScroll","parent","rawEvent","elInitialOverflow","useScrollLock","isLocked","stopTouchMoveListener","initialOverflow","useSessionStorage","useShare","shareOptions","_navigator","overrideOptions","granted","defaultSortFn","defaultCompare","useSorted","sortFn","useSpeechRecognition","interimResults","continuous","maxAlternatives","lang","isListening","isFinal","SpeechRecognition","recognition","lang2","currentResult","transcript","useSpeechSynthesis","pitch","synth","spokenText","bindEventsForUtterance","utterance2","utterance","newUtterance","speak","useStepper","steps","initialStep","stepsRef","stepNames","at","isFirst","isLast","goTo","goToNext","goToPrevious","goBackTo","isAfter","isNext","isPrevious","isCurrent","isBefore","useStorageAsync","_id","useStyleTag","css","isLoaded","cssRef","useSwipe","coordsStart","coordsEnd","diffX","diffY","getTouchEventCoords","updateCoordsStart","updateCoordsEnd","isPassiveEventSupported","checkPassiveEventSupport","onTouchEnd","supportsPassive","optionsBlock","useTemplateRefsList","useTextDirection","getRangesFromSelection","selection","rangeCount","useTextSelection","rects","onSelectionChange","useTextareaAutosize","textarea","styleProp","textareaScrollHeight","textareaOldWidth","triggerResize","_styleTarget","contentRect","useThrottledRefHistory","DEFAULT_UNITS","DEFAULT_MESSAGES","past","DEFAULT_FORMATTER","useTimeAgo","updateInterval","timeAgo","formatTimeAgo","messages","fullDateFormatter","units","showSecond","rounding","roundFn","absDiff","diff2","format","applyFormat","isPast","formatter","unitMax","idx","useTimeoutPoll","timeoutPollOptions","useTimestamp","ts","useTitle","newTitle","restoreOnUnmount","originalTitle","title","isReadonly","template","restoredTitle","_TransitionPresets","TransitionPresets","createEasingFunction","p0","p1","p2","p3","a1","a2","calcBezier","getSlope","getTforX","aGuessT","currentSlope","currentX","lerp","toVec","executeTransition","to","fromVal","toVal","startedAt","endAt","trans","ease","tick","_a3","useTransition","currentId","sourceVal","outputRef","disabled","useUrlSearchParams","removeNullishValues","removeFalsyValues","enableWrite","getRawParams","hash","constructQuery","params","stringified","updateState","unusedKeys","paramsForKey","mapEntry","shouldUpdate","useUserMedia","autoSwitch","getDeviceOptions","restart","useVModel","shouldEmit","_emit","modelOptions","cloneFn","triggerEmit","isUpdating","useVModels","ret","useVibrate","pattern","patternRef","intervalControls","vibrate","pattern2","useVirtualList","wrapperProps","calculateRange","currentList","containerRef","useVerticalVirtualList","useHorizontalVirtualList","useVirtualListResources","size","createGetViewCapacity","itemSize","containerSize","capacity","createGetOffset","scrollDirection","createCalculateRange","overscan","getOffset","getViewCapacity","viewCapacity","createGetDistance","useWatchForSizes","createComputedTotalSize","scrollToDictionaryForElementScrollKey","createScrollTo","getDistance","resources","itemWidth","getDistanceLeft","offsetLeft","totalWidth","itemHeight","getDistanceTop","offsetTop","totalHeight","useWakeLock","requestedType","sentinel","documentVisibility","forceRequest","request","useWebNotification","_requestForPermissions","defaultWebNotificationOptions","notification","onClick","clickTrigger","onShow","showTrigger","errorTrigger","onClose","closeTrigger","show","overrides","DEFAULT_PING_MESSAGE","resolveNestedOptions","useWebSocket","onConnected","onDisconnected","onMessage","autoClose","protocols","wsRef","heartbeatPause","heartbeatResume","bufferedData","pongTimeoutWait","_sendBuffer","resetHeartbeat","code","send","useBuffer","ws","message","responseMessage","pongTimeout","useWebWorker","arg0","workerOptions","worker","terminate","jobRunner","userFunc","userFuncArgs","depsParser","deps","localDeps","depsString","dep","depsFunctionString","importString","createWorkerBlobUrl","blobCode","useWebWorkerFn","dependencies","localDependencies","workerStatus","timeoutId","workerTerminate","generateWorker","blobUrl","newWorker","callWorker","fnArgs","useWindowFocus","useWindowScroll","useWindowSize","initialWidth","initialHeight","listenOrientation","includeScrollbar","exports","address","KListItem","promoterCampaignSampleShipment","promoterCampaignSampleVariant","productVariant"],"mappings":"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","x_google_ignoreList":[6,7,12,15]}