{"version":3,"file":"dep-f0cc6ef0.mjs","sources":["../../node_modules/@vueuse/shared/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/shared/index.mjs","../../node_modules/@vueuse/core/node_modules/vue-demi/lib/index.mjs","../../node_modules/@vueuse/core/index.mjs","../../node_modules/lodash/_assignMergeValue.js","../../node_modules/lodash/isArrayLikeObject.js","../../node_modules/lodash/_safeGet.js","../../node_modules/lodash/toPlainObject.js","../../node_modules/lodash/_baseMergeDeep.js","../../node_modules/lodash/_baseMerge.js","../../node_modules/lodash/_baseRest.js","../../node_modules/lodash/_isIterateeCall.js","../../node_modules/lodash/_createAssigner.js","../../node_modules/lodash/mergeWith.js","../../node_modules/lodash/isEqual.js","../../node_modules/lodash/_basePullAt.js","../../node_modules/lodash/remove.js","../../src/base-map/useLayerManager/index.ts"],"sourcesContent":["import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n  if (Array.isArray(target)) {\n    target.length = Math.max(target.length, key)\n    target.splice(key, 1, val)\n    return val\n  }\n  target[key] = val\n  return val\n}\n\nexport function del(target, key) {\n  if (Array.isArray(target)) {\n    target.splice(key, 1)\n    return\n  }\n  delete target[key]\n}\n\nexport * from 'vue'\nexport {\n  Vue,\n  Vue2,\n  isVue2,\n  isVue3,\n  install,\n}\n","import { shallowRef, watchEffect, readonly, unref, ref, isVue3, watch, customRef, effectScope, provide, inject, getCurrentScope, onScopeDispose, isRef, computed, reactive, toRefs as toRefs$1, toRef, isVue2, set as set$1, getCurrentInstance, onBeforeMount, nextTick, onBeforeUnmount, onMounted, onUnmounted, isReactive } from 'vue-demi';\n\nvar __defProp$9 = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$b.call(b, prop))\n      __defNormalProp$9(a, prop, b[prop]);\n  if (__getOwnPropSymbols$b)\n    for (var prop of __getOwnPropSymbols$b(b)) {\n      if (__propIsEnum$b.call(b, prop))\n        __defNormalProp$9(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\nfunction computedEager(fn, options) {\n  var _a;\n  const result = shallowRef();\n  watchEffect(() => {\n    result.value = fn();\n  }, __spreadProps$6(__spreadValues$9({}, options), {\n    flush: (_a = options == null ? void 0 : options.flush) != null ? _a : \"sync\"\n  }));\n  return readonly(result);\n}\n\nvar _a;\nconst isClient = typeof window !== \"undefined\";\nconst isDef = (val) => typeof val !== \"undefined\";\nconst assert = (condition, ...infos) => {\n  if (!condition)\n    console.warn(...infos);\n};\nconst toString = Object.prototype.toString;\nconst isBoolean = (val) => typeof val === \"boolean\";\nconst isFunction = (val) => typeof val === \"function\";\nconst isNumber = (val) => typeof val === \"number\";\nconst isString = (val) => typeof val === \"string\";\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst isWindow = (val) => typeof window !== \"undefined\" && toString.call(val) === \"[object Window]\";\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 isIOS = isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && /iP(ad|hone|od)/.test(window.navigator.userAgent);\nconst hasOwn = (val, key) => Object.prototype.hasOwnProperty.call(val, key);\n\nfunction resolveUnref(r) {\n  return typeof r === \"function\" ? r() : unref(r);\n}\n\nfunction createFilterWrapper(filter, fn) {\n  function wrapper(...args) {\n    filter(() => fn.apply(this, args), { fn, thisArg: this, args });\n  }\n  return wrapper;\n}\nconst bypassFilter = (invoke) => {\n  return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n  let timer;\n  let maxTimer;\n  const filter = (invoke) => {\n    const duration = resolveUnref(ms);\n    const maxDuration = resolveUnref(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 invoke();\n    }\n    if (maxDuration && !maxTimer) {\n      maxTimer = setTimeout(() => {\n        if (timer)\n          clearTimeout(timer);\n        maxTimer = null;\n        invoke();\n      }, maxDuration);\n    }\n    timer = setTimeout(() => {\n      if (maxTimer)\n        clearTimeout(maxTimer);\n      maxTimer = null;\n      invoke();\n    }, duration);\n  };\n  return filter;\n}\nfunction throttleFilter(ms, trailing = true, leading = true) {\n  let lastExec = 0;\n  let timer;\n  let isLeading = true;\n  const clear = () => {\n    if (timer) {\n      clearTimeout(timer);\n      timer = void 0;\n    }\n  };\n  const filter = (invoke) => {\n    const duration = resolveUnref(ms);\n    const elapsed = Date.now() - lastExec;\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      timer = setTimeout(() => {\n        lastExec = Date.now();\n        isLeading = true;\n        clear();\n        invoke();\n      }, duration);\n    }\n    if (!leading && !timer)\n      timer = setTimeout(() => isLeading = true, duration);\n    isLeading = false;\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, pause, resume, eventFilter };\n}\n\nfunction __onlyVue3(name = \"this function\") {\n  if (isVue3)\n    return;\n  throw new Error(`[VueUse] ${name} is only works on Vue 3.`);\n}\nconst directiveHooks = {\n  mounted: isVue3 ? \"mounted\" : \"inserted\",\n  updated: isVue3 ? \"updated\" : \"componentUpdated\",\n  unmounted: isVue3 ? \"unmounted\" : \"unbind\"\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(/^-?[0-9]+\\.?[0-9]*/)) == null ? void 0 : _a[0]) || \"\";\n  const unit = target.slice(value.length);\n  const result = 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}\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 = isFunction(fn) ? fn : fn.get;\n  const set = isFunction(fn) ? 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();\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 createEventHook() {\n  const fns = [];\n  const off = (fn) => {\n    const index = fns.indexOf(fn);\n    if (index !== -1)\n      fns.splice(index, 1);\n  };\n  const on = (fn) => {\n    fns.push(fn);\n    return {\n      off: () => off(fn)\n    };\n  };\n  const trigger = (param) => {\n    fns.forEach((fn) => fn(param));\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 () => {\n    if (!initialized) {\n      state = scope.run(stateFactory);\n      initialized = true;\n    }\n    return state;\n  };\n}\n\nfunction createInjectionState(composable) {\n  const key = Symbol(\"InjectionState\");\n  const useProvidingState = (...args) => {\n    provide(key, composable(...args));\n  };\n  const useInjectedState = () => inject(key);\n  return [useProvidingState, useInjectedState];\n}\n\nfunction tryOnScopeDispose(fn) {\n  if (getCurrentScope()) {\n    onScopeDispose(fn);\n    return true;\n  }\n  return false;\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  __onlyVue3();\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\nvar __defProp$8 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$a.call(b, prop))\n      __defNormalProp$8(a, prop, b[prop]);\n  if (__getOwnPropSymbols$a)\n    for (var prop of __getOwnPropSymbols$a(b)) {\n      if (__propIsEnum$a.call(b, prop))\n        __defNormalProp$8(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction makeDestructurable(obj, arr) {\n  if (typeof Symbol !== \"undefined\") {\n    const clone = __spreadValues$8({}, 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 reactify(fn, options) {\n  const unrefFn = (options == null ? void 0 : options.computedGetter) === false ? unref : resolveUnref;\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(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\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  return reactiveComputed(() => Object.fromEntries(Object.entries(toRefs$1(obj)).filter((e) => !flatKeys.includes(e[0]))));\n}\n\nfunction reactivePick(obj, ...keys) {\n  const flatKeys = keys.flat();\n  return reactive(Object.fromEntries(flatKeys.map((k) => [k, toRef(obj, k)])));\n}\n\nfunction refAutoReset(defaultValue, afterMs = 1e4) {\n  return customRef((track, trigger) => {\n    let value = defaultValue;\n    let timer;\n    const resetAfter = () => setTimeout(() => {\n      value = defaultValue;\n      trigger();\n    }, resolveUnref(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(debounceFilter(ms, options), fn);\n}\n\nfunction refDebounced(value, ms = 200, options = {}) {\n  if (ms <= 0)\n    return value;\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) {\n  return createFilterWrapper(throttleFilter(ms, trailing, leading), fn);\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(ref, {\n    get,\n    set,\n    untrackedGet,\n    silentSet,\n    peek,\n    lay\n  }, { enumerable: true });\n}\nconst controlledRef = refWithControl;\n\nfunction resolveRef(r) {\n  return typeof r === \"function\" ? computed(r) : ref(r);\n}\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 syncRef(left, right, options = {}) {\n  var _a, _b;\n  const {\n    flush = \"sync\",\n    deep = false,\n    immediate = true,\n    direction = \"both\",\n    transform = {}\n  } = options;\n  let watchLeft;\n  let watchRight;\n  const transformLTR = (_a = transform.ltr) != null ? _a : (v) => v;\n  const transformRTL = (_b = transform.rtl) != null ? _b : (v) => v;\n  if (direction === \"both\" || direction === \"ltr\") {\n    watchLeft = watch(left, (newValue) => right.value = transformLTR(newValue), { flush, deep, immediate });\n  }\n  if (direction === \"both\" || direction === \"rtl\") {\n    watchRight = watch(right, (newValue) => left.value = transformRTL(newValue), { flush, deep, immediate });\n  }\n  return () => {\n    watchLeft == null ? void 0 : watchLeft();\n    watchRight == null ? void 0 : watchRight();\n  };\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(source, (newValue) => targets.forEach((target) => target.value = newValue), { flush, deep, immediate });\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$9.call(b, prop))\n      __defNormalProp$7(a, prop, b[prop]);\n  if (__getOwnPropSymbols$9)\n    for (var prop of __getOwnPropSymbols$9(b)) {\n      if (__propIsEnum$9.call(b, prop))\n        __defNormalProp$7(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction toRefs(objectRef) {\n  if (!isRef(objectRef))\n    return toRefs$1(objectRef);\n  const result = Array.isArray(objectRef.value) ? new Array(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        if (Array.isArray(objectRef.value)) {\n          const copy = [...objectRef.value];\n          copy[key] = v;\n          objectRef.value = copy;\n        } else {\n          const newObject = __spreadProps$5(__spreadValues$7({}, objectRef.value), { [key]: v });\n          Object.setPrototypeOf(newObject, objectRef.value);\n          objectRef.value = newObject;\n        }\n      }\n    }));\n  }\n  return result;\n}\n\nfunction tryOnBeforeMount(fn, sync = true) {\n  if (getCurrentInstance())\n    onBeforeMount(fn);\n  else if (sync)\n    fn();\n  else\n    nextTick(fn);\n}\n\nfunction tryOnBeforeUnmount(fn) {\n  if (getCurrentInstance())\n    onBeforeUnmount(fn);\n}\n\nfunction tryOnMounted(fn, sync = true) {\n  if (getCurrentInstance())\n    onMounted(fn);\n  else if (sync)\n    fn();\n  else\n    nextTick(fn);\n}\n\nfunction tryOnUnmounted(fn) {\n  if (getCurrentInstance())\n    onUnmounted(fn);\n}\n\nfunction until(r) {\n  let 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(r, (v) => {\n        if (condition(v) !== isNot) {\n          stop == null ? void 0 : stop();\n          resolve(v);\n        }\n      }, {\n        flush,\n        deep,\n        immediate: true\n      });\n    });\n    const promises = [watcher];\n    if (timeout != null) {\n      promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => stop == null ? void 0 : stop()));\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([r, value], ([v1, v2]) => {\n        if (isNot !== (v1 === v2)) {\n          stop == null ? void 0 : stop();\n          resolve(v1);\n        }\n      }, {\n        flush,\n        deep,\n        immediate: true\n      });\n    });\n    const promises = [watcher];\n    if (timeout != null) {\n      promises.push(promiseTimeout(timeout, throwOnTimeout).then(() => resolveUnref(r)).finally(() => {\n        stop == null ? void 0 : stop();\n        return resolveUnref(r);\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(resolveUnref(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(resolveUnref(r))) {\n    const instance = {\n      toMatch,\n      toContains,\n      changed,\n      changedTimes,\n      get not() {\n        isNot = !isNot;\n        return this;\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        isNot = !isNot;\n        return this;\n      }\n    };\n    return instance;\n  }\n}\n\nfunction useArrayEvery(list, fn) {\n  return computed(() => resolveUnref(list).every((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayFilter(list, fn) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).filter(fn));\n}\n\nfunction useArrayFind(list, fn) {\n  return computed(() => resolveUnref(resolveUnref(list).find((element, index, array) => fn(resolveUnref(element), index, array))));\n}\n\nfunction useArrayFindIndex(list, fn) {\n  return computed(() => resolveUnref(list).findIndex((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useArrayJoin(list, separator) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).join(resolveUnref(separator)));\n}\n\nfunction useArrayMap(list, fn) {\n  return computed(() => resolveUnref(list).map((i) => resolveUnref(i)).map(fn));\n}\n\nfunction useArrayReduce(list, reducer, ...args) {\n  const reduceCallback = (sum, value, index) => reducer(resolveUnref(sum), resolveUnref(value), index);\n  return computed(() => {\n    const resolved = resolveUnref(list);\n    return args.length ? resolved.reduce(reduceCallback, resolveUnref(args[0])) : resolved.reduce(reduceCallback);\n  });\n}\n\nfunction useArraySome(list, fn) {\n  return computed(() => resolveUnref(list).some((element, index, array) => fn(resolveUnref(element), index, array)));\n}\n\nfunction useCounter(initialValue = 0, options = {}) {\n  const count = ref(initialValue);\n  const {\n    max = Infinity,\n    min = -Infinity\n  } = options;\n  const inc = (delta = 1) => count.value = Math.min(max, count.value + delta);\n  const dec = (delta = 1) => count.value = Math.max(min, count.value - delta);\n  const get = () => count.value;\n  const set = (val) => count.value = 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})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/;\nconst REGEX_FORMAT = /\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g;\nconst formatDate = (date, formatStr, locales) => {\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 matches = {\n    YY: () => String(years).slice(-2),\n    YYYY: () => years,\n    M: () => month + 1,\n    MM: () => `${month + 1}`.padStart(2, \"0\"),\n    D: () => String(days),\n    DD: () => `${days}`.padStart(2, \"0\"),\n    H: () => String(hours),\n    HH: () => `${hours}`.padStart(2, \"0\"),\n    h: () => `${hours % 12 || 12}`.padStart(1, \"0\"),\n    hh: () => `${hours % 12 || 12}`.padStart(2, \"0\"),\n    m: () => String(minutes),\n    mm: () => `${minutes}`.padStart(2, \"0\"),\n    s: () => String(seconds),\n    ss: () => `${seconds}`.padStart(2, \"0\"),\n    SSS: () => `${milliseconds}`.padStart(3, \"0\"),\n    d: () => day,\n    dd: () => date.toLocaleDateString(locales, { weekday: \"narrow\" }),\n    ddd: () => date.toLocaleDateString(locales, { weekday: \"short\" }),\n    dddd: () => date.toLocaleDateString(locales, { weekday: \"long\" })\n  };\n  return formatStr.replace(REGEX_FORMAT, (match, $1) => $1 || matches[match]());\n};\nconst normalizeDate = (date) => {\n  if (date === null)\n    return new Date(NaN);\n  if (date === void 0)\n    return 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(resolveUnref(date)), resolveUnref(formatStr), options == null ? void 0 : options.locales));\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    if (unref(interval) <= 0)\n      return;\n    isActive.value = true;\n    if (immediateCallback)\n      cb();\n    clean();\n    timer = setInterval(cb, resolveUnref(interval));\n  }\n  if (immediate && isClient)\n    resume();\n  if (isRef(interval)) {\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\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$8.call(b, prop))\n      __defNormalProp$6(a, prop, b[prop]);\n  if (__getOwnPropSymbols$8)\n    for (var prop of __getOwnPropSymbols$8(b)) {\n      if (__propIsEnum$8.call(b, prop))\n        __defNormalProp$6(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useInterval(interval = 1e3, options = {}) {\n  const {\n    controls: exposeControls = false,\n    immediate = true\n  } = options;\n  const counter = ref(0);\n  const controls = useIntervalFn(() => counter.value += 1, interval, { immediate });\n  if (exposeControls) {\n    return __spreadValues$6({\n      counter\n    }, controls);\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(source, () => ms.value = timestamp(), options);\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    }, resolveUnref(interval));\n  }\n  if (immediate) {\n    isPending.value = true;\n    if (isClient)\n      start();\n  }\n  tryOnScopeDispose(stop);\n  return {\n    isPending,\n    start,\n    stop\n  };\n}\n\nvar __defProp$5 = Object.defineProperty;\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$7.call(b, prop))\n      __defNormalProp$5(a, prop, b[prop]);\n  if (__getOwnPropSymbols$7)\n    for (var prop of __getOwnPropSymbols$7(b)) {\n      if (__propIsEnum$7.call(b, prop))\n        __defNormalProp$5(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useTimeout(interval = 1e3, options = {}) {\n  const {\n    controls: exposeControls = false\n  } = options;\n  const controls = useTimeoutFn(noop, interval, options);\n  const ready = computed(() => !controls.isPending.value);\n  if (exposeControls) {\n    return __spreadValues$5({\n      ready\n    }, controls);\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 = resolveUnref(value);\n    if (typeof resolved === \"string\")\n      resolved = Number[method](resolved, radix);\n    if (nanToZero && isNaN(resolved))\n      resolved = 0;\n    return resolved;\n  });\n}\n\nfunction useToString(value) {\n  return computed(() => `${resolveUnref(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 = resolveUnref(truthyValue);\n      _value.value = _value.value === truthy ? resolveUnref(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) ? [] : [\n    ...source instanceof Function ? source() : Array.isArray(source) ? source : unref(source)\n  ];\n  return watch(source, (newList, _, onCleanup) => {\n    const oldListRemains = new Array(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\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __objRest$5 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$6.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$6)\n    for (var prop of __getOwnPropSymbols$6(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$6.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchWithFilter(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter = bypassFilter\n  } = _a, watchOptions = __objRest$5(_a, [\n    \"eventFilter\"\n  ]);\n  return watch(source, createFilterWrapper(eventFilter, cb), watchOptions);\n}\n\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __objRest$4 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$5.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$5)\n    for (var prop of __getOwnPropSymbols$5(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$5.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchAtMost(source, cb, options) {\n  const _a = options, {\n    count\n  } = _a, watchOptions = __objRest$4(_a, [\n    \"count\"\n  ]);\n  const current = ref(0);\n  const stop = watchWithFilter(source, (...args) => {\n    current.value += 1;\n    if (current.value >= resolveUnref(count))\n      nextTick(() => stop());\n    cb(...args);\n  }, watchOptions);\n  return { count: current, stop };\n}\n\nvar __defProp$4 = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$4.call(b, prop))\n      __defNormalProp$4(a, prop, b[prop]);\n  if (__getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(b)) {\n      if (__propIsEnum$4.call(b, prop))\n        __defNormalProp$4(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nvar __objRest$3 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$4.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$4.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchDebounced(source, cb, options = {}) {\n  const _a = options, {\n    debounce = 0,\n    maxWait = void 0\n  } = _a, watchOptions = __objRest$3(_a, [\n    \"debounce\",\n    \"maxWait\"\n  ]);\n  return watchWithFilter(source, cb, __spreadProps$4(__spreadValues$4({}, watchOptions), {\n    eventFilter: debounceFilter(debounce, { maxWait })\n  }));\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$3.call(b, prop))\n      __defNormalProp$3(a, prop, b[prop]);\n  if (__getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(b)) {\n      if (__propIsEnum$3.call(b, prop))\n        __defNormalProp$3(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nvar __objRest$2 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$3.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$3.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchIgnorable(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter = bypassFilter\n  } = _a, watchOptions = __objRest$2(_a, [\n    \"eventFilter\"\n  ]);\n  const filteredCb = createFilterWrapper(eventFilter, cb);\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(source, (...args) => {\n      if (!ignore.value)\n        filteredCb(...args);\n    }, watchOptions);\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(watch(source, () => {\n      syncCounter.value++;\n    }, __spreadProps$3(__spreadValues$3({}, watchOptions), { flush: \"sync\" })));\n    ignoreUpdates = (updater) => {\n      const syncCounterPrev = syncCounter.value;\n      updater();\n      ignoreCounter.value += syncCounter.value - syncCounterPrev;\n    };\n    disposables.push(watch(source, (...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    }, watchOptions));\n    stop = () => {\n      disposables.forEach((fn) => fn());\n    };\n  }\n  return { stop, ignoreUpdates, ignorePrevAsyncUpdates };\n}\n\nfunction watchOnce(source, cb, options) {\n  const stop = watch(source, (...args) => {\n    nextTick(() => stop());\n    return cb(...args);\n  }, options);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$2.call(b, prop))\n      __defNormalProp$2(a, prop, b[prop]);\n  if (__getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(b)) {\n      if (__propIsEnum$2.call(b, prop))\n        __defNormalProp$2(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nvar __objRest$1 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchPausable(source, cb, options = {}) {\n  const _a = options, {\n    eventFilter: filter\n  } = _a, watchOptions = __objRest$1(_a, [\n    \"eventFilter\"\n  ]);\n  const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n  const stop = watchWithFilter(source, cb, __spreadProps$2(__spreadValues$2({}, watchOptions), {\n    eventFilter\n  }));\n  return { stop, pause, resume, isActive };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$1.call(b, prop))\n      __defNormalProp$1(a, prop, b[prop]);\n  if (__getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(b)) {\n      if (__propIsEnum$1.call(b, prop))\n        __defNormalProp$1(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$1.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$1.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction watchThrottled(source, cb, options = {}) {\n  const _a = options, {\n    throttle = 0,\n    trailing = true,\n    leading = true\n  } = _a, watchOptions = __objRest(_a, [\n    \"throttle\",\n    \"trailing\",\n    \"leading\"\n  ]);\n  return watchWithFilter(source, cb, __spreadProps$1(__spreadValues$1({}, watchOptions), {\n    eventFilter: throttleFilter(throttle, trailing, leading)\n  }));\n}\n\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\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 __spreadProps(__spreadValues({}, 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) => getOneWatchSource(item));\n  return getOneWatchSource(sources);\n}\nfunction getOneWatchSource(source) {\n  return typeof source === \"function\" ? source() : unref(source);\n}\nfunction getOldValue(source) {\n  return Array.isArray(source) ? source.map(() => void 0) : void 0;\n}\n\nfunction whenever(source, cb, options) {\n  return watch(source, (v, ov, onInvalidate) => {\n    if (v)\n      cb(v, ov, onInvalidate);\n  }, options);\n}\n\nexport { __onlyVue3, assert, refAutoReset as autoResetRef, bypassFilter, 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, hasOwn, identity, watchIgnorable as ignorableWatch, increaseWithUnit, invoke, isBoolean, isClient, isDef, isDefined, isFunction, isIOS, isNumber, isObject, isString, isWindow, makeDestructurable, noop, normalizeDate, now, objectPick, pausableFilter, watchPausable as pausableWatch, promiseTimeout, 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, toRefs, tryOnBeforeMount, tryOnBeforeUnmount, tryOnMounted, tryOnScopeDispose, tryOnUnmounted, until, useArrayEvery, useArrayFilter, useArrayFind, useArrayFindIndex, useArrayJoin, useArrayMap, useArrayReduce, useArraySome, useCounter, useDateFormat, refDebounced as useDebounce, useDebounceFn, useInterval, useIntervalFn, useLastChanged, refThrottled as useThrottle, useThrottleFn, useTimeout, useTimeoutFn, useToNumber, useToString, useToggle, watchArray, watchAtMost, watchDebounced, watchIgnorable, watchOnce, watchPausable, watchThrottled, watchTriggerable, watchWithFilter, whenever };\n","import * as Vue from 'vue'\n\nvar isVue2 = false\nvar isVue3 = true\nvar Vue2 = undefined\n\nfunction install() {}\n\nexport function set(target, key, val) {\n  if (Array.isArray(target)) {\n    target.length = Math.max(target.length, key)\n    target.splice(key, 1, val)\n    return val\n  }\n  target[key] = val\n  return val\n}\n\nexport function del(target, key) {\n  if (Array.isArray(target)) {\n    target.splice(key, 1)\n    return\n  }\n  delete target[key]\n}\n\nexport * from 'vue'\nexport {\n  Vue,\n  Vue2,\n  isVue2,\n  isVue3,\n  install,\n}\n","import { noop, resolveUnref, isClient, isString, tryOnScopeDispose, tryOnMounted, computedWithControl, promiseTimeout, isFunction, tryOnBeforeMount, increaseWithUnit, useTimeoutFn, pausableWatch, createEventHook, timestamp, pausableFilter, watchIgnorable, debounceFilter, createFilterWrapper, bypassFilter, createSingletonPromise, toRefs, resolveRef, containsProp, until, hasOwn, isDef, throttleFilter, useDebounceFn, useThrottleFn, isObject, isNumber, useIntervalFn, clamp, syncRef, objectPick, tryOnUnmounted, isIOS, watchWithFilter, identity } from '@vueuse/shared';\nexport * from '@vueuse/shared';\nimport { isRef, ref, watchEffect, computed, inject, unref, watch, getCurrentInstance, customRef, onUpdated, reactive, shallowRef, onMounted, markRaw, getCurrentScope, readonly, nextTick, isVue2, set, del, onBeforeUpdate } from 'vue-demi';\n\nfunction computedAsync(evaluationCallback, initialState, optionsOrRef) {\n  let options;\n  if (isRef(optionsOrRef)) {\n    options = {\n      evaluating: optionsOrRef\n    };\n  } else {\n    options = optionsOrRef || {};\n  }\n  const {\n    lazy = false,\n    evaluating = void 0,\n    onError = noop\n  } = options;\n  const started = ref(!lazy);\n  const current = ref(initialState);\n  let counter = 0;\n  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 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 = inject(key);\n  if (defaultSource)\n    source = inject(key, defaultSource);\n  if (treatDefaultAsFactory)\n    source = inject(key, defaultSource, treatDefaultAsFactory);\n  if (typeof options === \"function\") {\n    return computed((ctx) => options(source, ctx));\n  } else {\n    return computed({\n      get: (ctx) => options.get(source, ctx),\n      set: options.set\n    });\n  }\n}\n\nconst createUnrefFn = (fn) => {\n  return function(...args) {\n    return fn.apply(this, args.map((i) => unref(i)));\n  };\n};\n\nfunction unrefElement(elRef) {\n  var _a;\n  const plain = resolveUnref(elRef);\n  return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n\nconst defaultWindow = isClient ? window : void 0;\nconst defaultDocument = isClient ? window.document : void 0;\nconst defaultNavigator = isClient ? window.navigator : void 0;\nconst defaultLocation = isClient ? window.location : void 0;\n\nfunction useEventListener(...args) {\n  let target;\n  let event;\n  let listener;\n  let options;\n  if (isString(args[0])) {\n    [event, listener, options] = args;\n    target = defaultWindow;\n  } else {\n    [target, event, listener, options] = args;\n  }\n  if (!target)\n    return noop;\n  let cleanup = noop;\n  const stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (!el)\n      return;\n    el.addEventListener(event, listener, options);\n    cleanup = () => {\n      el.removeEventListener(event, listener, options);\n      cleanup = noop;\n    };\n  }, { immediate: true, flush: \"post\" });\n  const stop = () => {\n    stopWatch();\n    cleanup();\n  };\n  tryOnScopeDispose(stop);\n  return stop;\n}\n\nfunction onClickOutside(target, handler, options = {}) {\n  const { window = defaultWindow, ignore, capture = true, detectIframe = false } = options;\n  if (!window)\n    return;\n  const shouldListen = ref(true);\n  let fallback;\n  const listener = (event) => {\n    window.clearTimeout(fallback);\n    const el = unrefElement(target);\n    const composedPath = event.composedPath();\n    if (!el || el === event.target || composedPath.includes(el) || !shouldListen.value)\n      return;\n    if (ignore && ignore.length > 0) {\n      if (ignore.some((target2) => {\n        const el2 = unrefElement(target2);\n        return el2 && (event.target === el2 || composedPath.includes(el2));\n      }))\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.value = !!el && !e.composedPath().includes(el);\n    }, { passive: true }),\n    useEventListener(window, \"pointerup\", (e) => {\n      if (e.button === 0) {\n        const path = e.composedPath();\n        e.composedPath = () => path;\n        fallback = window.setTimeout(() => listener(e), 50);\n      }\n    }, { passive: true }),\n    detectIframe && useEventListener(window, \"blur\", (event) => {\n      var _a;\n      const el = unrefElement(target);\n      if (((_a = document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(document.activeElement)))\n        handler(event);\n    })\n  ].filter(Boolean);\n  const stop = () => cleanup.forEach((fn) => fn());\n  return stop;\n}\n\nvar __defProp$m = Object.defineProperty;\nvar __defProps$9 = Object.defineProperties;\nvar __getOwnPropDescs$9 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$o = Object.getOwnPropertySymbols;\nvar __hasOwnProp$o = Object.prototype.hasOwnProperty;\nvar __propIsEnum$o = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$m = (obj, key, value) => key in obj ? __defProp$m(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$m = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$o.call(b, prop))\n      __defNormalProp$m(a, prop, b[prop]);\n  if (__getOwnPropSymbols$o)\n    for (var prop of __getOwnPropSymbols$o(b)) {\n      if (__propIsEnum$o.call(b, prop))\n        __defNormalProp$m(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$9 = (a, b) => __defProps$9(a, __getOwnPropDescs$9(b));\nconst 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  else if (keyFilter)\n    return () => true;\n  else\n    return () => false;\n};\nfunction onKeyStroke(key, handler, options = {}) {\n  const { target = defaultWindow, eventName = \"keydown\", passive = false } = options;\n  const predicate = createKeyPredicate(key);\n  const listener = (e) => {\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, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keydown\" }));\n}\nfunction onKeyPressed(key, handler, options = {}) {\n  return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keypress\" }));\n}\nfunction onKeyUp(key, handler, options = {}) {\n  return onKeyStroke(key, handler, __spreadProps$9(__spreadValues$m({}, options), { eventName: \"keyup\" }));\n}\n\nconst DEFAULT_DELAY = 500;\nfunction onLongPress(target, handler, options) {\n  var _a, _b;\n  const elementRef = computed(() => unrefElement(target));\n  let timeout;\n  function clear() {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = void 0;\n    }\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    timeout = setTimeout(() => handler(ev), (_d = options == null ? void 0 : options.delay) != null ? _d : DEFAULT_DELAY);\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  useEventListener(elementRef, \"pointerdown\", onDown, listenerOptions);\n  useEventListener(elementRef, \"pointerup\", clear, listenerOptions);\n  useEventListener(elementRef, \"pointerleave\", clear, listenerOptions);\n}\n\nconst 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};\nconst isTypedCharValid = ({\n  keyCode,\n  metaKey,\n  ctrlKey,\n  altKey\n}) => {\n  if (metaKey || ctrlKey || altKey)\n    return false;\n  if (keyCode >= 48 && keyCode <= 57 || keyCode >= 96 && keyCode <= 105)\n    return true;\n  if (keyCode >= 65 && keyCode <= 90)\n    return true;\n  return false;\n};\nfunction onStartTyping(callback, options = {}) {\n  const { document: document2 = defaultDocument } = options;\n  const keydown = (event) => {\n    !isFocusedElementEditable() && isTypedCharValid(event) && callback(event);\n  };\n  if (document2)\n    useEventListener(document2, \"keydown\", keydown, { passive: true });\n}\n\nfunction templateRef(key, initialValue = null) {\n  const instance = getCurrentInstance();\n  let _trigger = () => {\n  };\n  const element = 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  tryOnMounted(_trigger);\n  onUpdated(_trigger);\n  return element;\n}\n\nfunction useActiveElement(options = {}) {\n  const { window = defaultWindow } = options;\n  const activeElement = computedWithControl(() => null, () => window == null ? void 0 : window.document.activeElement);\n  if (window) {\n    useEventListener(window, \"blur\", activeElement.trigger, true);\n    useEventListener(window, \"focus\", activeElement.trigger, true);\n  }\n  return activeElement;\n}\n\nfunction useAsyncQueue(tasks, options = {}) {\n  const {\n    interrupt = true,\n    onError = noop,\n    onFinished = noop\n  } = options;\n  const promiseState = {\n    pending: \"pending\",\n    rejected: \"rejected\",\n    fulfilled: \"fulfilled\"\n  };\n  const initialResult = Array.from(new Array(tasks.length), () => ({ state: promiseState.pending, data: null }));\n  const result = reactive(initialResult);\n  const activeIndex = 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 (((_a = result[activeIndex.value]) == null ? void 0 : _a.state) === promiseState.rejected && interrupt) {\n        onFinished();\n        return;\n      }\n      return curr(prevRes).then((currentRes) => {\n        updateResult(promiseState.fulfilled, currentRes);\n        activeIndex.value === tasks.length - 1 && onFinished();\n        return currentRes;\n      });\n    }).catch((e) => {\n      updateResult(promiseState.rejected, e);\n      onError();\n      return e;\n    });\n  }, Promise.resolve());\n  return {\n    activeIndex,\n    result\n  };\n}\n\nfunction useAsyncState(promise, initialState, options) {\n  const {\n    immediate = true,\n    delay = 0,\n    onError = noop,\n    resetOnExecute = true,\n    shallow = true,\n    throwError\n  } = options != null ? options : {};\n  const state = shallow ? shallowRef(initialState) : ref(initialState);\n  const isReady = ref(false);\n  const isLoading = ref(false);\n  const error = ref(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 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    } catch (e) {\n      error.value = e;\n      onError(e);\n      if (throwError)\n        throw error;\n    } finally {\n      isLoading.value = false;\n    }\n    return state.value;\n  }\n  if (immediate)\n    execute(delay);\n  return {\n    state,\n    isReady,\n    isLoading,\n    error,\n    execute\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 = ref(\"\");\n  const promise = ref();\n  function execute() {\n    if (!isClient)\n      return;\n    promise.value = new Promise((resolve, reject) => {\n      try {\n        const _target = resolveUnref(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 (isRef(target) || isFunction(target))\n    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 useSupported(callback, sync = false) {\n  const isSupported = ref();\n  const update = () => isSupported.value = Boolean(callback());\n  update();\n  tryOnMounted(update, sync);\n  return isSupported;\n}\n\nfunction useBattery({ navigator = defaultNavigator } = {}) {\n  const events = [\"chargingchange\", \"chargingtimechange\", \"dischargingtimechange\", \"levelchange\"];\n  const isSupported = useSupported(() => navigator && \"getBattery\" in navigator);\n  const charging = ref(false);\n  const chargingTime = ref(0);\n  const dischargingTime = ref(0);\n  const level = 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      for (const event of events)\n        useEventListener(battery, event, 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 = ref(void 0);\n  const error = ref(null);\n  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 = ref();\n  const isConnected = 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  tryOnMounted(() => {\n    var _a;\n    if (device.value)\n      (_a = device.value.gatt) == null ? void 0 : _a.connect();\n  });\n  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    requestDevice,\n    server,\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 = ref(false);\n  const update = () => {\n    if (!isSupported.value)\n      return;\n    if (!mediaQuery)\n      mediaQuery = window.matchMedia(query);\n    matches.value = mediaQuery.matches;\n  };\n  tryOnBeforeMount(() => {\n    update();\n    if (!mediaQuery)\n      return;\n    if (\"addEventListener\" in mediaQuery)\n      mediaQuery.addEventListener(\"change\", update);\n    else\n      mediaQuery.addListener(update);\n    tryOnScopeDispose(() => {\n      if (\"removeEventListener\" in mediaQuery)\n        mediaQuery.removeEventListener(\"change\", update);\n      else\n        mediaQuery.removeListener(update);\n    });\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  sm: 576,\n  md: 768,\n  lg: 992,\n  xl: 1200,\n  xxl: 1400\n};\nconst breakpointsVuetify = {\n  xs: 600,\n  sm: 960,\n  md: 1264,\n  lg: 1904\n};\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: 600,\n  sm: 1024,\n  md: 1440,\n  lg: 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};\n\nvar __defProp$l = Object.defineProperty;\nvar __getOwnPropSymbols$n = Object.getOwnPropertySymbols;\nvar __hasOwnProp$n = Object.prototype.hasOwnProperty;\nvar __propIsEnum$n = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$l = (obj, key, value) => key in obj ? __defProp$l(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$l = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$n.call(b, prop))\n      __defNormalProp$l(a, prop, b[prop]);\n  if (__getOwnPropSymbols$n)\n    for (var prop of __getOwnPropSymbols$n(b)) {\n      if (__propIsEnum$n.call(b, prop))\n        __defNormalProp$l(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n  function getValue(k, delta) {\n    let v = breakpoints[k];\n    if (delta != null)\n      v = increaseWithUnit(v, delta);\n    if (typeof v === \"number\")\n      v = `${v}px`;\n    return v;\n  }\n  const { window = defaultWindow } = 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 shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n    Object.defineProperty(shortcuts, k, {\n      get: () => greaterOrEqual(k),\n      enumerable: true,\n      configurable: true\n    });\n    return shortcuts;\n  }, {});\n  return __spreadValues$l({\n    greater(k) {\n      return useMediaQuery(`(min-width: ${getValue(k, 0.1)})`, options);\n    },\n    greaterOrEqual,\n    smaller(k) {\n      return useMediaQuery(`(max-width: ${getValue(k, -0.1)})`, options);\n    },\n    smallerOrEqual(k) {\n      return useMediaQuery(`(max-width: ${getValue(k)})`, 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  }, shortcutMethods);\n}\n\nconst useBroadcastChannel = (options) => {\n  const {\n    name,\n    window = defaultWindow\n  } = options;\n  const isSupported = useSupported(() => window && \"BroadcastChannel\" in window);\n  const isClosed = ref(false);\n  const channel = ref();\n  const data = ref();\n  const error = ref(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    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  tryOnScopeDispose(() => {\n    close();\n  });\n  return {\n    isSupported,\n    channel,\n    data,\n    post,\n    close,\n    error,\n    isClosed\n  };\n};\n\nfunction useBrowserLocation({ window = defaultWindow } = {}) {\n  const buildState = (trigger) => {\n    const { state: state2, length } = (window == null ? void 0 : window.history) || {};\n    const { hash, host, hostname, href, origin, pathname, port, protocol, search } = (window == null ? void 0 : window.location) || {};\n    return {\n      trigger,\n      state: state2,\n      length,\n      hash,\n      host,\n      hostname,\n      href,\n      origin,\n      pathname,\n      port,\n      protocol,\n      search\n    };\n  };\n  const state = 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 = ref(refValue.value);\n  watch(() => refValue.value, (value) => {\n    if (!comparator(value, cachedValue.value))\n      cachedValue.value = value;\n  }, watchOptions);\n  return cachedValue;\n}\n\nfunction useClipboard(options = {}) {\n  const {\n    navigator = defaultNavigator,\n    read = false,\n    source,\n    copiedDuring = 1500\n  } = options;\n  const events = [\"copy\", \"cut\"];\n  const isSupported = useSupported(() => navigator && \"clipboard\" in navigator);\n  const text = ref(\"\");\n  const copied = ref(false);\n  const timeout = useTimeoutFn(() => copied.value = false, copiedDuring);\n  function updateText() {\n    navigator.clipboard.readText().then((value) => {\n      text.value = value;\n    });\n  }\n  if (isSupported.value && read) {\n    for (const event of events)\n      useEventListener(event, updateText);\n  }\n  async function copy(value = resolveUnref(source)) {\n    if (isSupported.value && value != null) {\n      await navigator.clipboard.writeText(value);\n      text.value = value;\n      copied.value = true;\n      timeout.start();\n    }\n  }\n  return {\n    isSupported,\n    text,\n    copied,\n    copy\n  };\n}\n\nvar __defProp$k = Object.defineProperty;\nvar __defProps$8 = Object.defineProperties;\nvar __getOwnPropDescs$8 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$m = Object.getOwnPropertySymbols;\nvar __hasOwnProp$m = Object.prototype.hasOwnProperty;\nvar __propIsEnum$m = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$k = (obj, key, value) => key in obj ? __defProp$k(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$k = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$m.call(b, prop))\n      __defNormalProp$k(a, prop, b[prop]);\n  if (__getOwnPropSymbols$m)\n    for (var prop of __getOwnPropSymbols$m(b)) {\n      if (__propIsEnum$m.call(b, prop))\n        __defNormalProp$k(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$8 = (a, b) => __defProps$8(a, __getOwnPropDescs$8(b));\nfunction cloneFnJSON(source) {\n  return JSON.parse(JSON.stringify(source));\n}\nfunction useCloned(source, options = {}) {\n  const cloned = ref({});\n  const {\n    manual,\n    clone = cloneFnJSON,\n    deep = true,\n    immediate = true\n  } = options;\n  function sync() {\n    cloned.value = clone(unref(source));\n  }\n  if (!manual && isRef(source)) {\n    watch(source, sync, __spreadProps$8(__spreadValues$k({}, 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__\";\n_global[globalKey] = _global[globalKey] || {};\nconst handlers = _global[globalKey];\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\" : Array.isArray(rawInit) ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\n\nvar __defProp$j = Object.defineProperty;\nvar __getOwnPropSymbols$l = Object.getOwnPropertySymbols;\nvar __hasOwnProp$l = Object.prototype.hasOwnProperty;\nvar __propIsEnum$l = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$j = (obj, key, value) => key in obj ? __defProp$j(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$j = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$l.call(b, prop))\n      __defNormalProp$j(a, prop, b[prop]);\n  if (__getOwnPropSymbols$l)\n    for (var prop of __getOwnPropSymbols$l(b)) {\n      if (__propIsEnum$l.call(b, prop))\n        __defNormalProp$j(a, prop, b[prop]);\n    }\n  return a;\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};\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  } = options;\n  const data = (shallow ? shallowRef : ref)(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 = resolveUnref(defaults);\n  const type = guessSerializerType(rawInit);\n  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n  const { pause: pauseWatch, resume: resumeWatch } = pausableWatch(data, () => write(data.value), { flush, deep, eventFilter });\n  if (window && listenToStorageChanges)\n    useEventListener(window, \"storage\", update);\n  update();\n  return data;\n  function write(v) {\n    try {\n      if (v == null)\n        storage.removeItem(key);\n      else\n        storage.setItem(key, serializer.write(v));\n    } catch (e) {\n      onError(e);\n    }\n  }\n  function read(event) {\n    if (event && event.key !== key)\n      return;\n    pauseWatch();\n    try {\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 (isFunction(mergeDefaults))\n          return mergeDefaults(value, rawInit);\n        else if (type === \"object\" && !Array.isArray(value))\n          return __spreadValues$j(__spreadValues$j({}, rawInit), value);\n        return value;\n      } else if (typeof rawValue !== \"string\") {\n        return rawValue;\n      } else {\n        return serializer.read(rawValue);\n      }\n    } catch (e) {\n      onError(e);\n    } finally {\n      resumeWatch();\n    }\n  }\n  function update(event) {\n    if (event && event.key !== key)\n      return;\n    data.value = read(event);\n  }\n}\n\nfunction usePreferredDark(options) {\n  return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\n\nvar __defProp$i = Object.defineProperty;\nvar __getOwnPropSymbols$k = Object.getOwnPropertySymbols;\nvar __hasOwnProp$k = Object.prototype.hasOwnProperty;\nvar __propIsEnum$k = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$i = (obj, key, value) => key in obj ? __defProp$i(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$i = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$k.call(b, prop))\n      __defNormalProp$i(a, prop, b[prop]);\n  if (__getOwnPropSymbols$k)\n    for (var prop of __getOwnPropSymbols$k(b)) {\n      if (__propIsEnum$k.call(b, prop))\n        __defNormalProp$i(a, prop, b[prop]);\n    }\n  return a;\n};\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  } = options;\n  const modes = __spreadValues$i({\n    auto: \"\",\n    light: \"light\",\n    dark: \"dark\"\n  }, options.modes || {});\n  const preferredDark = usePreferredDark({ window });\n  const preferredMode = computed(() => preferredDark.value ? \"dark\" : \"light\");\n  const store = storageRef || (storageKey == null ? ref(initialValue) : useStorage(storageKey, initialValue, storage, { window, listenToStorageChanges }));\n  const state = computed({\n    get() {\n      return store.value === \"auto\" && !emitAuto ? preferredMode.value : store.value;\n    },\n    set(v) {\n      store.value = v;\n    }\n  });\n  const updateHTMLAttrs = getSSRHandler(\"updateHTMLAttrs\", (selector2, attribute2, value) => {\n    const el = window == null ? void 0 : window.document.querySelector(selector2);\n    if (!el)\n      return;\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          el.classList.add(v);\n        else\n          el.classList.remove(v);\n      });\n    } else {\n      el.setAttribute(attribute2, value);\n    }\n  });\n  function defaultOnChanged(mode) {\n    var _a;\n    const resolvedMode = mode === \"auto\" ? preferredMode.value : mode;\n    updateHTMLAttrs(selector, attribute, (_a = modes[resolvedMode]) != null ? _a : resolvedMode);\n  }\n  function onChanged(mode) {\n    if (options.onChanged)\n      options.onChanged(mode, defaultOnChanged);\n    else\n      defaultOnChanged(mode);\n  }\n  watch(state, onChanged, { flush: \"post\", immediate: true });\n  if (emitAuto)\n    watch(preferredMode, () => onChanged(state.value), { flush: \"post\" });\n  tryOnMounted(() => onChanged(state.value));\n  return state;\n}\n\nfunction useConfirmDialog(revealed = ref(false)) {\n  const confirmHook = createEventHook();\n  const cancelHook = createEventHook();\n  const revealHook = createEventHook();\n  let _resolve = 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: 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, { window = defaultWindow, initialValue = \"\" } = {}) {\n  const variable = ref(initialValue);\n  const elRef = computed(() => {\n    var _a;\n    return unrefElement(target) || ((_a = window == null ? void 0 : window.document) == null ? void 0 : _a.documentElement);\n  });\n  watch([elRef, () => resolveUnref(prop)], ([el, prop2]) => {\n    var _a;\n    if (el && window) {\n      const value = (_a = window.getComputedStyle(el).getPropertyValue(prop2)) == null ? void 0 : _a.trim();\n      variable.value = value || initialValue;\n    }\n  }, { immediate: true });\n  watch(variable, (val) => {\n    var _a;\n    if ((_a = elRef.value) == null ? void 0 : _a.style)\n      elRef.value.style.setProperty(resolveUnref(prop), val);\n  });\n  return variable;\n}\n\nfunction useCurrentElement() {\n  const vm = getCurrentInstance();\n  const currentElement = computedWithControl(() => null, () => vm.proxy.$el);\n  onUpdated(currentElement.trigger);\n  onMounted(currentElement.trigger);\n  return currentElement;\n}\n\nfunction useCycleList(list, options) {\n  var _a;\n  const state = shallowRef((_a = options == null ? void 0 : options.initialValue) != null ? _a : list[0]);\n  const index = computed({\n    get() {\n      var _a2;\n      let index2 = (options == null ? void 0 : options.getIndexOf) ? options.getIndexOf(state.value, list) : list.indexOf(state.value);\n      if (index2 < 0)\n        index2 = (_a2 = options == null ? void 0 : options.fallbackIndex) != null ? _a2 : 0;\n      return index2;\n    },\n    set(v) {\n      set(v);\n    }\n  });\n  function set(i) {\n    const length = list.length;\n    const index2 = (i % length + length) % length;\n    const value = list[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  return {\n    state,\n    index,\n    next,\n    prev\n  };\n}\n\nvar __defProp$h = Object.defineProperty;\nvar __defProps$7 = Object.defineProperties;\nvar __getOwnPropDescs$7 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$j = Object.getOwnPropertySymbols;\nvar __hasOwnProp$j = Object.prototype.hasOwnProperty;\nvar __propIsEnum$j = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$h = (obj, key, value) => key in obj ? __defProp$h(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$h = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$j.call(b, prop))\n      __defNormalProp$h(a, prop, b[prop]);\n  if (__getOwnPropSymbols$j)\n    for (var prop of __getOwnPropSymbols$j(b)) {\n      if (__propIsEnum$j.call(b, prop))\n        __defNormalProp$h(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$7 = (a, b) => __defProps$7(a, __getOwnPropDescs$7(b));\nfunction useDark(options = {}) {\n  const {\n    valueDark = \"dark\",\n    valueLight = \"\",\n    window = defaultWindow\n  } = options;\n  const mode = useColorMode(__spreadProps$7(__spreadValues$h({}, options), {\n    onChanged: (mode2, defaultHandler) => {\n      var _a;\n      if (options.onChanged)\n        (_a = options.onChanged) == null ? void 0 : _a.call(options, mode2 === \"dark\");\n      else\n        defaultHandler(mode2);\n    },\n    modes: {\n      dark: valueDark,\n      light: valueLight\n    }\n  }));\n  const preferredDark = usePreferredDark({ window });\n  const isDark = computed({\n    get() {\n      return mode.value === \"dark\";\n    },\n    set(v) {\n      if (v === preferredDark.value)\n        mode.value = \"auto\";\n      else\n        mode.value = v ? \"dark\" : \"light\";\n    }\n  });\n  return isDark;\n}\n\nconst fnBypass = (v) => v;\nconst fnSetSource = (source, value) => source.value = value;\nfunction defaultDump(clone) {\n  return clone ? isFunction(clone) ? clone : cloneFnJSON : fnBypass;\n}\nfunction defaultParse(clone) {\n  return clone ? isFunction(clone) ? 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 markRaw({\n      snapshot: dump(source.value),\n      timestamp: timestamp()\n    });\n  }\n  const last = ref(_createHistoryRecord());\n  const undoStack = ref([]);\n  const redoStack = 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, 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 = computed(() => [last.value, ...undoStack.value]);\n  const canUndo = computed(() => undoStack.value.length > 0);\n  const canRedo = 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\nvar __defProp$g = Object.defineProperty;\nvar __defProps$6 = Object.defineProperties;\nvar __getOwnPropDescs$6 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$i = Object.getOwnPropertySymbols;\nvar __hasOwnProp$i = Object.prototype.hasOwnProperty;\nvar __propIsEnum$i = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$g = (obj, key, value) => key in obj ? __defProp$g(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$g = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$i.call(b, prop))\n      __defNormalProp$g(a, prop, b[prop]);\n  if (__getOwnPropSymbols$i)\n    for (var prop of __getOwnPropSymbols$i(b)) {\n      if (__propIsEnum$i.call(b, prop))\n        __defNormalProp$g(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$6 = (a, b) => __defProps$6(a, __getOwnPropDescs$6(b));\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  } = pausableFilter(eventFilter);\n  const {\n    ignoreUpdates,\n    ignorePrevAsyncUpdates,\n    stop\n  } = watchIgnorable(source, commit, { deep, flush, eventFilter: composedFilter });\n  function setSource(source2, value) {\n    ignorePrevAsyncUpdates();\n    ignoreUpdates(() => {\n      source2.value = value;\n    });\n  }\n  const manualHistory = useManualRefHistory(source, __spreadProps$6(__spreadValues$g({}, 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 __spreadProps$6(__spreadValues$g({}, manualHistory), {\n    isTracking,\n    pause,\n    resume,\n    commit,\n    batch,\n    dispose\n  });\n}\n\nvar __defProp$f = Object.defineProperty;\nvar __defProps$5 = Object.defineProperties;\nvar __getOwnPropDescs$5 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$h = Object.getOwnPropertySymbols;\nvar __hasOwnProp$h = Object.prototype.hasOwnProperty;\nvar __propIsEnum$h = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$f = (obj, key, value) => key in obj ? __defProp$f(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$f = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$h.call(b, prop))\n      __defNormalProp$f(a, prop, b[prop]);\n  if (__getOwnPropSymbols$h)\n    for (var prop of __getOwnPropSymbols$h(b)) {\n      if (__propIsEnum$h.call(b, prop))\n        __defNormalProp$f(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$5 = (a, b) => __defProps$5(a, __getOwnPropDescs$5(b));\nfunction useDebouncedRefHistory(source, options = {}) {\n  const filter = options.debounce ? debounceFilter(options.debounce) : void 0;\n  const history = useRefHistory(source, __spreadProps$5(__spreadValues$f({}, options), { eventFilter: filter }));\n  return __spreadValues$f({}, history);\n}\n\nfunction useDeviceMotion(options = {}) {\n  const {\n    window = defaultWindow,\n    eventFilter = bypassFilter\n  } = options;\n  const acceleration = ref({ x: null, y: null, z: null });\n  const rotationRate = ref({ alpha: null, beta: null, gamma: null });\n  const interval = ref(0);\n  const accelerationIncludingGravity = ref({\n    x: null,\n    y: null,\n    z: null\n  });\n  if (window) {\n    const onDeviceMotion = createFilterWrapper(eventFilter, (event) => {\n      acceleration.value = event.acceleration;\n      accelerationIncludingGravity.value = event.accelerationIncludingGravity;\n      rotationRate.value = event.rotationRate;\n      interval.value = event.interval;\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 = ref(false);\n  const alpha = ref(null);\n  const beta = ref(null);\n  const gamma = 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({\n  window = defaultWindow\n} = {}) {\n  if (!window) {\n    return {\n      pixelRatio: ref(1)\n    };\n  }\n  const pixelRatio = ref(1);\n  const cleanups = [];\n  const cleanup = () => {\n    cleanups.map((i) => i());\n    cleanups.length = 0;\n  };\n  const observe = () => {\n    pixelRatio.value = window.devicePixelRatio;\n    cleanup();\n    const media = window.matchMedia(`(resolution: ${pixelRatio.value}dppx)`);\n    media.addEventListener(\"change\", observe, { once: true });\n    cleanups.push(() => {\n      media.removeEventListener(\"change\", observe);\n    });\n  };\n  observe();\n  tryOnScopeDispose(cleanup);\n  return { pixelRatio };\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  let permissionStatus;\n  const desc = typeof permissionDesc === \"string\" ? { name: permissionDesc } : permissionDesc;\n  const state = ref();\n  const onChange = () => {\n    if (permissionStatus)\n      state.value = permissionStatus.state;\n  };\n  const query = createSingletonPromise(async () => {\n    if (!isSupported.value)\n      return;\n    if (!permissionStatus) {\n      try {\n        permissionStatus = await navigator.permissions.query(desc);\n        useEventListener(permissionStatus, \"change\", onChange);\n        onChange();\n      } catch (e) {\n        state.value = \"prompt\";\n      }\n    }\n    return permissionStatus;\n  });\n  query();\n  if (controls) {\n    return {\n      state,\n      isSupported,\n      query\n    };\n  } else {\n    return state;\n  }\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 = ref([]);\n  const videoInputs = computed(() => devices.value.filter((i) => i.kind === \"videoinput\"));\n  const audioInputs = computed(() => devices.value.filter((i) => i.kind === \"audioinput\"));\n  const audioOutputs = computed(() => devices.value.filter((i) => i.kind === \"audiooutput\"));\n  const isSupported = useSupported(() => navigator && navigator.mediaDevices && navigator.mediaDevices.enumerateDevices);\n  const permissionGranted = ref(false);\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  }\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      const stream = await navigator.mediaDevices.getUserMedia(constraints);\n      stream.getTracks().forEach((t) => t.stop());\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 = 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 = shallowRef();\n  async function _start() {\n    if (!isSupported.value || stream.value)\n      return;\n    stream.value = await navigator.mediaDevices.getDisplayMedia(constraint);\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  watch(enabled, (v) => {\n    if (v)\n      _start();\n    else\n      _stop();\n  }, { immediate: true });\n  return {\n    isSupported,\n    stream,\n    start,\n    stop,\n    enabled\n  };\n}\n\nfunction useDocumentVisibility({ document = defaultDocument } = {}) {\n  if (!document)\n    return ref(\"visible\");\n  const visibility = ref(document.visibilityState);\n  useEventListener(document, \"visibilitychange\", () => {\n    visibility.value = document.visibilityState;\n  });\n  return visibility;\n}\n\nvar __defProp$e = Object.defineProperty;\nvar __defProps$4 = Object.defineProperties;\nvar __getOwnPropDescs$4 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$g = Object.getOwnPropertySymbols;\nvar __hasOwnProp$g = Object.prototype.hasOwnProperty;\nvar __propIsEnum$g = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$e = (obj, key, value) => key in obj ? __defProp$e(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$e = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$g.call(b, prop))\n      __defNormalProp$e(a, prop, b[prop]);\n  if (__getOwnPropSymbols$g)\n    for (var prop of __getOwnPropSymbols$g(b)) {\n      if (__propIsEnum$g.call(b, prop))\n        __defNormalProp$e(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$4 = (a, b) => __defProps$4(a, __getOwnPropDescs$4(b));\nfunction useDraggable(target, options = {}) {\n  var _a, _b, _c;\n  const draggingElement = (_a = options.draggingElement) != null ? _a : defaultWindow;\n  const draggingHandle = (_b = options.handle) != null ? _b : target;\n  const position = ref((_c = resolveUnref(options.initialValue)) != null ? _c : { x: 0, y: 0 });\n  const pressedDelta = ref();\n  const filterEvent = (e) => {\n    if (options.pointerTypes)\n      return options.pointerTypes.includes(e.pointerType);\n    return true;\n  };\n  const handleEvent = (e) => {\n    if (resolveUnref(options.preventDefault))\n      e.preventDefault();\n    if (resolveUnref(options.stopPropagation))\n      e.stopPropagation();\n  };\n  const start = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (resolveUnref(options.exact) && e.target !== resolveUnref(target))\n      return;\n    const rect = resolveUnref(target).getBoundingClientRect();\n    const pos = {\n      x: e.pageX - rect.left,\n      y: e.pageY - rect.top\n    };\n    if (((_a2 = options.onStart) == null ? void 0 : _a2.call(options, pos, e)) === false)\n      return;\n    pressedDelta.value = pos;\n    handleEvent(e);\n  };\n  const move = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (!pressedDelta.value)\n      return;\n    position.value = {\n      x: e.pageX - pressedDelta.value.x,\n      y: e.pageY - pressedDelta.value.y\n    };\n    (_a2 = options.onMove) == null ? void 0 : _a2.call(options, position.value, e);\n    handleEvent(e);\n  };\n  const end = (e) => {\n    var _a2;\n    if (!filterEvent(e))\n      return;\n    if (!pressedDelta.value)\n      return;\n    pressedDelta.value = void 0;\n    (_a2 = options.onEnd) == null ? void 0 : _a2.call(options, position.value, e);\n    handleEvent(e);\n  };\n  if (isClient) {\n    useEventListener(draggingHandle, \"pointerdown\", start, true);\n    useEventListener(draggingElement, \"pointermove\", move, true);\n    useEventListener(draggingElement, \"pointerup\", end, true);\n  }\n  return __spreadProps$4(__spreadValues$e({}, toRefs(position)), {\n    position,\n    isDragging: computed(() => !!pressedDelta.value),\n    style: computed(() => `left:${position.value.x}px;top:${position.value.y}px;`)\n  });\n}\n\nfunction useDropZone(target, onDrop) {\n  const isOverDropZone = ref(false);\n  let counter = 0;\n  if (isClient) {\n    useEventListener(target, \"dragenter\", (event) => {\n      event.preventDefault();\n      counter += 1;\n      isOverDropZone.value = true;\n    });\n    useEventListener(target, \"dragover\", (event) => {\n      event.preventDefault();\n    });\n    useEventListener(target, \"dragleave\", (event) => {\n      event.preventDefault();\n      counter -= 1;\n      if (counter === 0)\n        isOverDropZone.value = false;\n    });\n    useEventListener(target, \"drop\", (event) => {\n      var _a, _b;\n      event.preventDefault();\n      counter = 0;\n      isOverDropZone.value = false;\n      const files = Array.from((_b = (_a = event.dataTransfer) == null ? void 0 : _a.files) != null ? _b : []);\n      onDrop == null ? void 0 : onDrop(files.length === 0 ? null : files);\n    });\n  }\n  return {\n    isOverDropZone\n  };\n}\n\nvar __getOwnPropSymbols$f = Object.getOwnPropertySymbols;\nvar __hasOwnProp$f = Object.prototype.hasOwnProperty;\nvar __propIsEnum$f = Object.prototype.propertyIsEnumerable;\nvar __objRest$2 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$f.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$f)\n    for (var prop of __getOwnPropSymbols$f(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$f.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction useResizeObserver(target, callback, options = {}) {\n  const _a = options, { window = defaultWindow } = _a, observerOptions = __objRest$2(_a, [\"window\"]);\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 stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (isSupported.value && window && el) {\n      observer = new ResizeObserver(callback);\n      observer.observe(el, observerOptions);\n    }\n  }, { immediate: true, flush: \"post\" });\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  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  } = options;\n  const height = ref(0);\n  const bottom = ref(0);\n  const left = ref(0);\n  const right = ref(0);\n  const top = ref(0);\n  const width = ref(0);\n  const x = ref(0);\n  const y = ref(0);\n  function update() {\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  useResizeObserver(target, update);\n  watch(() => unrefElement(target), (ele) => !ele && update());\n  if (windowScroll)\n    useEventListener(\"scroll\", update, { passive: true });\n  if (windowResize)\n    useEventListener(\"resize\", update, { passive: true });\n  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 useRafFn(fn, options = {}) {\n  const {\n    immediate = true,\n    window = defaultWindow\n  } = options;\n  const isActive = ref(false);\n  let rafId = null;\n  function loop() {\n    if (!isActive.value || !window)\n      return;\n    fn();\n    rafId = window.requestAnimationFrame(loop);\n  }\n  function resume() {\n    if (!isActive.value && window) {\n      isActive.value = true;\n      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  tryOnScopeDispose(pause);\n  return {\n    isActive,\n    pause,\n    resume\n  };\n}\n\nvar __defProp$d = Object.defineProperty;\nvar __getOwnPropSymbols$e = Object.getOwnPropertySymbols;\nvar __hasOwnProp$e = Object.prototype.hasOwnProperty;\nvar __propIsEnum$e = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$d = (obj, key, value) => key in obj ? __defProp$d(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$d = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$e.call(b, prop))\n      __defNormalProp$d(a, prop, b[prop]);\n  if (__getOwnPropSymbols$e)\n    for (var prop of __getOwnPropSymbols$e(b)) {\n      if (__propIsEnum$e.call(b, prop))\n        __defNormalProp$d(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useElementByPoint(options) {\n  const element = ref(null);\n  const { x, y } = options;\n  const controls = useRafFn(() => {\n    element.value = document.elementFromPoint(resolveUnref(x), resolveUnref(y));\n  });\n  return __spreadValues$d({\n    element\n  }, controls);\n}\n\nfunction useElementHover(el) {\n  const isHovered = ref(false);\n  useEventListener(el, \"mouseenter\", () => isHovered.value = true);\n  useEventListener(el, \"mouseleave\", () => isHovered.value = false);\n  return isHovered;\n}\n\nfunction useElementSize(target, initialSize = { width: 0, height: 0 }, options = {}) {\n  const { box = \"content-box\" } = options;\n  const width = ref(initialSize.width);\n  const height = ref(initialSize.height);\n  useResizeObserver(target, ([entry]) => {\n    const boxSize = box === \"border-box\" ? entry.borderBoxSize : box === \"content-box\" ? entry.contentBoxSize : entry.devicePixelContentBoxSize;\n    if (boxSize) {\n      width.value = boxSize.reduce((acc, { inlineSize }) => acc + inlineSize, 0);\n      height.value = boxSize.reduce((acc, { blockSize }) => acc + blockSize, 0);\n    } else {\n      width.value = entry.contentRect.width;\n      height.value = entry.contentRect.height;\n    }\n  }, options);\n  watch(() => unrefElement(target), (ele) => {\n    width.value = ele ? initialSize.width : 0;\n    height.value = ele ? initialSize.height : 0;\n  });\n  return {\n    width,\n    height\n  };\n}\n\nfunction useElementVisibility(element, { window = defaultWindow, scrollTarget } = {}) {\n  const elementIsVisible = ref(false);\n  const testBounding = () => {\n    if (!window)\n      return;\n    const document = window.document;\n    const el = unrefElement(element);\n    if (!el) {\n      elementIsVisible.value = false;\n    } else {\n      const rect = el.getBoundingClientRect();\n      elementIsVisible.value = rect.top <= (window.innerHeight || document.documentElement.clientHeight) && rect.left <= (window.innerWidth || document.documentElement.clientWidth) && rect.bottom >= 0 && rect.right >= 0;\n    }\n  };\n  watch(() => unrefElement(element), () => testBounding(), { immediate: true, flush: \"post\" });\n  if (window) {\n    useEventListener(scrollTarget || window, \"scroll\", testBounding, {\n      capture: false,\n      passive: true\n    });\n  }\n  return elementIsVisible;\n}\n\nconst events = new Map();\n\nfunction useEventBus(key) {\n  const scope = getCurrentScope();\n  function on(listener) {\n    var _a;\n    const listeners = events.get(key) || [];\n    listeners.push(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    const index = listeners.indexOf(listener);\n    if (index > -1)\n      listeners.splice(index, 1);\n    if (!listeners.length)\n      events.delete(key);\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 useEventSource(url, events = [], options = {}) {\n  const event = ref(null);\n  const data = ref(null);\n  const status = ref(\"CONNECTING\");\n  const eventSource = ref(null);\n  const error = ref(null);\n  const {\n    withCredentials = false\n  } = options;\n  const close = () => {\n    if (eventSource.value) {\n      eventSource.value.close();\n      eventSource.value = null;\n      status.value = \"CLOSED\";\n    }\n  };\n  const es = new EventSource(url, { withCredentials });\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  };\n  es.onmessage = (e) => {\n    event.value = null;\n    data.value = e.data;\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  tryOnScopeDispose(() => {\n    close();\n  });\n  return {\n    eventSource,\n    event,\n    data,\n    status,\n    error,\n    close\n  };\n}\n\nfunction useEyeDropper(options = {}) {\n  const { initialValue = \"\" } = options;\n  const isSupported = useSupported(() => typeof window !== \"undefined\" && \"EyeDropper\" in window);\n  const sRGBHex = 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 = resolveRef(newIcon);\n  const applyIcon = (icon) => {\n    document == null ? void 0 : document.head.querySelectorAll(`link[rel*=\"${rel}\"]`).forEach((el) => el.href = `${baseUrl}${icon}`);\n  };\n  watch(favicon, (i, o) => {\n    if (isString(i) && i !== o)\n      applyIcon(i);\n  }, { immediate: true });\n  return favicon;\n}\n\nvar __defProp$c = Object.defineProperty;\nvar __defProps$3 = Object.defineProperties;\nvar __getOwnPropDescs$3 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$d = Object.getOwnPropertySymbols;\nvar __hasOwnProp$d = Object.prototype.hasOwnProperty;\nvar __propIsEnum$d = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$c = (obj, key, value) => key in obj ? __defProp$c(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$c = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$d.call(b, prop))\n      __defNormalProp$c(a, prop, b[prop]);\n  if (__getOwnPropSymbols$d)\n    for (var prop of __getOwnPropSymbols$d(b)) {\n      if (__propIsEnum$d.call(b, prop))\n        __defNormalProp$c(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$3 = (a, b) => __defProps$3(a, __getOwnPropDescs$3(b));\nconst payloadMapping = {\n  json: \"application/json\",\n  text: \"text/plain\",\n  formData: \"multipart/form-data\"\n};\nfunction isFetchOptions(obj) {\n  return containsProp(obj, \"immediate\", \"refetch\", \"initialData\", \"timeout\", \"beforeFetch\", \"afterFetch\", \"onFetchError\", \"fetch\");\n}\nfunction headersToObject(headers) {\n  if (typeof Headers !== \"undefined\" && headers instanceof Headers)\n    return Object.fromEntries([...headers.entries()]);\n  return headers;\n}\nfunction chainCallbacks(...callbacks) {\n  return (ctx) => {\n    callbacks.forEach(async (callback) => {\n      if (callback)\n        ctx = __spreadValues$c(__spreadValues$c({}, ctx), await callback(ctx));\n    });\n    return ctx;\n  };\n}\nfunction createFetch(config = {}) {\n  const _options = config.options || {};\n  const _fetchOptions = config.fetchOptions || {};\n  function useFactoryFetch(url, ...args) {\n    const computedUrl = computed(() => config.baseUrl ? joinPaths(resolveUnref(config.baseUrl), resolveUnref(url)) : resolveUnref(url));\n    let options = _options;\n    let fetchOptions = _fetchOptions;\n    if (args.length > 0) {\n      if (isFetchOptions(args[0])) {\n        options = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, options), args[0]), {\n          beforeFetch: chainCallbacks(_options.beforeFetch, args[0].beforeFetch),\n          afterFetch: chainCallbacks(_options.afterFetch, args[0].afterFetch),\n          onFetchError: chainCallbacks(_options.onFetchError, args[0].onFetchError)\n        });\n      } else {\n        fetchOptions = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, fetchOptions), args[0]), {\n          headers: __spreadValues$c(__spreadValues$c({}, headersToObject(fetchOptions.headers) || {}), headersToObject(args[0].headers) || {})\n        });\n      }\n    }\n    if (args.length > 1 && isFetchOptions(args[1])) {\n      options = __spreadProps$3(__spreadValues$c(__spreadValues$c({}, options), args[1]), {\n        beforeFetch: chainCallbacks(_options.beforeFetch, args[1].beforeFetch),\n        afterFetch: chainCallbacks(_options.afterFetch, args[1].afterFetch),\n        onFetchError: chainCallbacks(_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 = { immediate: true, refetch: false, timeout: 0 };\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 = __spreadValues$c(__spreadValues$c({}, options), args[0]);\n    else\n      fetchOptions = args[0];\n  }\n  if (args.length > 1) {\n    if (isFetchOptions(args[1]))\n      options = __spreadValues$c(__spreadValues$c({}, options), args[1]);\n  }\n  const {\n    fetch = (_a = defaultWindow) == null ? void 0 : _a.fetch,\n    initialData,\n    timeout\n  } = options;\n  const responseEvent = createEventHook();\n  const errorEvent = createEventHook();\n  const finallyEvent = createEventHook();\n  const isFinished = ref(false);\n  const isFetching = ref(false);\n  const aborted = ref(false);\n  const statusCode = ref(null);\n  const response = shallowRef(null);\n  const error = shallowRef(null);\n  const data = shallowRef(initialData);\n  const canAbort = computed(() => supportsAbort && isFetching.value);\n  let controller;\n  let timer;\n  const abort = () => {\n    if (supportsAbort && controller)\n      controller.abort();\n  };\n  const loading = (isLoading) => {\n    isFetching.value = isLoading;\n    isFinished.value = !isLoading;\n  };\n  if (timeout)\n    timer = useTimeoutFn(abort, timeout, { immediate: false });\n  const execute = async (throwOnFailed = false) => {\n    var _a2;\n    loading(true);\n    error.value = null;\n    statusCode.value = null;\n    aborted.value = false;\n    controller = void 0;\n    if (supportsAbort) {\n      controller = new AbortController();\n      controller.signal.onabort = () => aborted.value = true;\n      fetchOptions = __spreadProps$3(__spreadValues$c({}, fetchOptions), {\n        signal: controller.signal\n      });\n    }\n    const defaultFetchOptions = {\n      method: config.method,\n      headers: {}\n    };\n    if (config.payload) {\n      const headers = headersToObject(defaultFetchOptions.headers);\n      if (config.payloadType)\n        headers[\"Content-Type\"] = (_a2 = payloadMapping[config.payloadType]) != null ? _a2 : config.payloadType;\n      const payload = resolveUnref(config.payload);\n      defaultFetchOptions.body = config.payloadType === \"json\" ? JSON.stringify(payload) : payload;\n    }\n    let isCanceled = false;\n    const context = { url: resolveUnref(url), options: __spreadValues$c(__spreadValues$c({}, defaultFetchOptions), fetchOptions), cancel: () => {\n      isCanceled = true;\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 new Promise((resolve, reject) => {\n      var _a3;\n      fetch(context.url, __spreadProps$3(__spreadValues$c(__spreadValues$c({}, defaultFetchOptions), context.options), {\n        headers: __spreadValues$c(__spreadValues$c({}, headersToObject(defaultFetchOptions.headers)), headersToObject((_a3 = context.options) == null ? void 0 : _a3.headers))\n      })).then(async (fetchResponse) => {\n        response.value = fetchResponse;\n        statusCode.value = fetchResponse.status;\n        responseData = await fetchResponse[config.type]();\n        if (options.afterFetch && statusCode.value >= 200 && statusCode.value < 300)\n          ({ data: responseData } = await options.afterFetch({ data: responseData, response: fetchResponse }));\n        data.value = responseData;\n        if (!fetchResponse.ok)\n          throw new Error(fetchResponse.statusText);\n        responseEvent.trigger(fetchResponse);\n        return resolve(fetchResponse);\n      }).catch(async (fetchError) => {\n        let errorData = fetchError.message || fetchError.name;\n        if (options.onFetchError)\n          ({ data: responseData, error: errorData } = await options.onFetchError({ data: responseData, error: fetchError, response: response.value }));\n        data.value = responseData;\n        error.value = errorData;\n        errorEvent.trigger(fetchError);\n        if (throwOnFailed)\n          return reject(fetchError);\n        return resolve(null);\n      }).finally(() => {\n        loading(false);\n        if (timer)\n          timer.stop();\n        finallyEvent.trigger(null);\n      });\n    });\n  };\n  const refetch = resolveRef(options.refetch);\n  watch([\n    refetch,\n    resolveRef(url)\n  ], ([refetch2]) => refetch2 && execute(), { deep: true });\n  const shell = {\n    isFinished,\n    statusCode,\n    response,\n    error,\n    data,\n    isFetching,\n    canAbort,\n    aborted,\n    abort,\n    execute,\n    onFetchResponse: responseEvent.on,\n    onFetchError: errorEvent.on,\n    onFetchFinally: finallyEvent.on,\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    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 (isRef(config.payload)) {\n          watch([\n            refetch,\n            resolveRef(config.payload)\n          ], ([refetch2]) => refetch2 && execute(), { deep: true });\n        }\n        const rawPayload = resolveUnref(config.payload);\n        if (!payloadType && rawPayload && Object.getPrototypeOf(rawPayload) === Object.prototype)\n          config.payloadType = \"json\";\n        return __spreadProps$3(__spreadValues$c({}, 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      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 __spreadProps$3(__spreadValues$c({}, 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    setTimeout(execute, 0);\n  return __spreadProps$3(__spreadValues$c({}, 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\nvar __defProp$b = Object.defineProperty;\nvar __getOwnPropSymbols$c = Object.getOwnPropertySymbols;\nvar __hasOwnProp$c = Object.prototype.hasOwnProperty;\nvar __propIsEnum$c = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$b = (obj, key, value) => key in obj ? __defProp$b(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$b = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$c.call(b, prop))\n      __defNormalProp$b(a, prop, b[prop]);\n  if (__getOwnPropSymbols$c)\n    for (var prop of __getOwnPropSymbols$c(b)) {\n      if (__propIsEnum$c.call(b, prop))\n        __defNormalProp$b(a, prop, b[prop]);\n    }\n  return a;\n};\nconst DEFAULT_OPTIONS = {\n  multiple: true,\n  accept: \"*\"\n};\nfunction useFileDialog(options = {}) {\n  const {\n    document = defaultDocument\n  } = options;\n  const files = ref(null);\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    };\n  }\n  const open = (localOptions) => {\n    if (!input)\n      return;\n    const _options = __spreadValues$b(__spreadValues$b(__spreadValues$b({}, DEFAULT_OPTIONS), options), localOptions);\n    input.multiple = _options.multiple;\n    input.accept = _options.accept;\n    if (hasOwn(_options, \"capture\"))\n      input.capture = _options.capture;\n    input.click();\n  };\n  const reset = () => {\n    files.value = null;\n    if (input)\n      input.value = \"\";\n  };\n  return {\n    files: readonly(files),\n    open,\n    reset\n  };\n}\n\nvar __defProp$a = Object.defineProperty;\nvar __getOwnPropSymbols$b = Object.getOwnPropertySymbols;\nvar __hasOwnProp$b = Object.prototype.hasOwnProperty;\nvar __propIsEnum$b = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$a = (obj, key, value) => key in obj ? __defProp$a(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$a = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$b.call(b, prop))\n      __defNormalProp$a(a, prop, b[prop]);\n  if (__getOwnPropSymbols$b)\n    for (var prop of __getOwnPropSymbols$b(b)) {\n      if (__propIsEnum$b.call(b, prop))\n        __defNormalProp$a(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useFileSystemAccess(options = {}) {\n  const {\n    window: _window = defaultWindow,\n    dataType = \"Text\"\n  } = unref(options);\n  const window = _window;\n  const isSupported = useSupported(() => window && \"showSaveFilePicker\" in window && \"showOpenFilePicker\" in window);\n  const fileHandle = ref();\n  const data = ref();\n  const file = ref();\n  const fileName = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.name) != null ? _b : \"\";\n  });\n  const fileMIME = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.type) != null ? _b : \"\";\n  });\n  const fileSize = computed(() => {\n    var _a, _b;\n    return (_b = (_a = file.value) == null ? void 0 : _a.size) != null ? _b : 0;\n  });\n  const fileLastModified = 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(__spreadValues$a(__spreadValues$a({}, unref(options)), _options));\n    fileHandle.value = handle;\n    await updateFile();\n    await updateData();\n  }\n  async function create(_options = {}) {\n    if (!isSupported.value)\n      return;\n    fileHandle.value = await window.showSaveFilePicker(__spreadValues$a(__spreadValues$a({}, unref(options)), _options));\n    data.value = void 0;\n    await updateFile();\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(__spreadValues$a(__spreadValues$a({}, unref(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    if (unref(dataType) === \"Text\")\n      data.value = await ((_a = file.value) == null ? void 0 : _a.text());\n    if (unref(dataType) === \"ArrayBuffer\")\n      data.value = await ((_b = file.value) == null ? void 0 : _b.arrayBuffer());\n    if (unref(dataType) === \"Blob\")\n      data.value = file.value;\n  }\n  watch(() => unref(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 } = options;\n  const activeElement = useActiveElement(options);\n  const targetElement = computed(() => unrefElement(target));\n  const focused = computed({\n    get() {\n      return isDef(activeElement.value) && isDef(targetElement.value) && activeElement.value === targetElement.value;\n    },\n    set(value) {\n      var _a, _b;\n      if (!value && focused.value)\n        (_a = targetElement.value) == null ? void 0 : _a.blur();\n      if (value && !focused.value)\n        (_b = targetElement.value) == null ? void 0 : _b.focus();\n    }\n  });\n  watch(targetElement, () => {\n    focused.value = initialValue;\n  }, { immediate: true, flush: \"post\" });\n  return { focused };\n}\n\nfunction useFocusWithin(target, options = {}) {\n  const activeElement = useActiveElement(options);\n  const targetElement = computed(() => unrefElement(target));\n  const focused = 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 = 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 functionsMap = [\n  [\n    \"requestFullscreen\",\n    \"exitFullscreen\",\n    \"fullscreenElement\",\n    \"fullscreenEnabled\",\n    \"fullscreenchange\",\n    \"fullscreenerror\"\n  ],\n  [\n    \"webkitRequestFullscreen\",\n    \"webkitExitFullscreen\",\n    \"webkitFullscreenElement\",\n    \"webkitFullscreenEnabled\",\n    \"webkitfullscreenchange\",\n    \"webkitfullscreenerror\"\n  ],\n  [\n    \"webkitRequestFullScreen\",\n    \"webkitCancelFullScreen\",\n    \"webkitCurrentFullScreenElement\",\n    \"webkitCancelFullScreen\",\n    \"webkitfullscreenchange\",\n    \"webkitfullscreenerror\"\n  ],\n  [\n    \"mozRequestFullScreen\",\n    \"mozCancelFullScreen\",\n    \"mozFullScreenElement\",\n    \"mozFullScreenEnabled\",\n    \"mozfullscreenchange\",\n    \"mozfullscreenerror\"\n  ],\n  [\n    \"msRequestFullscreen\",\n    \"msExitFullscreen\",\n    \"msFullscreenElement\",\n    \"msFullscreenEnabled\",\n    \"MSFullscreenChange\",\n    \"MSFullscreenError\"\n  ]\n];\nfunction useFullscreen(target, options = {}) {\n  const { document = defaultDocument, autoExit = false } = options;\n  const targetRef = target || (document == null ? void 0 : document.querySelector(\"html\"));\n  const isFullscreen = ref(false);\n  let map = functionsMap[0];\n  const isSupported = useSupported(() => {\n    if (!document) {\n      return false;\n    } else {\n      for (const m of functionsMap) {\n        if (m[1] in document) {\n          map = m;\n          return true;\n        }\n      }\n    }\n    return false;\n  });\n  const [REQUEST, EXIT, ELEMENT, , EVENT] = map;\n  async function exit() {\n    if (!isSupported.value)\n      return;\n    if (document == null ? void 0 : document[ELEMENT])\n      await document[EXIT]();\n    isFullscreen.value = false;\n  }\n  async function enter() {\n    if (!isSupported.value)\n      return;\n    await exit();\n    const target2 = unrefElement(targetRef);\n    if (target2) {\n      await target2[REQUEST]();\n      isFullscreen.value = true;\n    }\n  }\n  async function toggle() {\n    if (isFullscreen.value)\n      await exit();\n    else\n      await enter();\n  }\n  if (document) {\n    useEventListener(document, EVENT, () => {\n      isFullscreen.value = !!(document == null ? void 0 : document[ELEMENT]);\n    }, false);\n  }\n  if (autoExit)\n    tryOnScopeDispose(exit);\n  return {\n    isSupported,\n    isFullscreen,\n    enter,\n    exit,\n    toggle\n  };\n}\n\nfunction mapGamepadToXbox360Controller(gamepad) {\n  return 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 = ref([]);\n  const onConnectedHook = createEventHook();\n  const onDisconnectedHook = 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      hapticActuators,\n      index: gamepad.index,\n      mapping: gamepad.mapping,\n      connected: gamepad.connected,\n      timestamp: gamepad.timestamp,\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 (let i = 0; i < _gamepads.length; ++i) {\n      const gamepad = _gamepads[i];\n      if (gamepad) {\n        const index = gamepads.value.findIndex(({ index: index2 }) => index2 === gamepad.index);\n        if (index > -1)\n          gamepads.value[index] = stateFromGamepad(gamepad);\n      }\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  tryOnMounted(() => {\n    const _gamepads = (navigator == null ? void 0 : navigator.getGamepads()) || [];\n    if (_gamepads) {\n      for (let i = 0; i < _gamepads.length; ++i) {\n        const gamepad = _gamepads[i];\n        if (gamepad)\n          onGamepadConnected(gamepad);\n      }\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  } = options;\n  const isSupported = useSupported(() => navigator && \"geolocation\" in navigator);\n  const locatedAt = ref(null);\n  const error = ref(null);\n  const coords = ref({\n    accuracy: 0,\n    latitude: Infinity,\n    longitude: 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  if (isSupported.value) {\n    watcher = navigator.geolocation.watchPosition(updatePosition, (err) => error.value = err, {\n      enableHighAccuracy,\n      maximumAge,\n      timeout\n    });\n  }\n  tryOnScopeDispose(() => {\n    if (watcher && navigator)\n      navigator.geolocation.clearWatch(watcher);\n  });\n  return {\n    isSupported,\n    coords,\n    locatedAt,\n    error\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 = throttleFilter(50)\n  } = options;\n  const idle = ref(initialState);\n  const lastActive = ref(timestamp());\n  let timer;\n  const onEvent = createFilterWrapper(eventFilter, () => {\n    idle.value = false;\n    lastActive.value = timestamp();\n    clearTimeout(timer);\n    timer = setTimeout(() => idle.value = true, timeout);\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  }\n  timer = setTimeout(() => idle.value = true, timeout);\n  return { idle, lastActive };\n}\n\nvar __defProp$9 = Object.defineProperty;\nvar __getOwnPropSymbols$a = Object.getOwnPropertySymbols;\nvar __hasOwnProp$a = Object.prototype.hasOwnProperty;\nvar __propIsEnum$a = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$9 = (obj, key, value) => key in obj ? __defProp$9(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$9 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$a.call(b, prop))\n      __defNormalProp$9(a, prop, b[prop]);\n  if (__getOwnPropSymbols$a)\n    for (var prop of __getOwnPropSymbols$a(b)) {\n      if (__propIsEnum$a.call(b, prop))\n        __defNormalProp$9(a, prop, b[prop]);\n    }\n  return a;\n};\nasync function loadImage(options) {\n  return new Promise((resolve, reject) => {\n    const img = new Image();\n    const { src, srcset, sizes } = options;\n    img.src = src;\n    if (srcset)\n      img.srcset = srcset;\n    if (sizes)\n      img.sizes = sizes;\n    img.onload = () => resolve(img);\n    img.onerror = reject;\n  });\n}\nconst useImage = (options, asyncStateOptions = {}) => {\n  const state = useAsyncState(() => loadImage(resolveUnref(options)), void 0, __spreadValues$9({\n    resetOnExecute: true\n  }, asyncStateOptions));\n  watch(() => resolveUnref(options), () => state.execute(asyncStateOptions.delay), { deep: true });\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 = noop,\n    onScroll = 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  } = options;\n  const x = ref(0);\n  const y = ref(0);\n  const isScrolling = ref(false);\n  const arrivedState = reactive({\n    left: true,\n    right: false,\n    top: true,\n    bottom: false\n  });\n  const directions = reactive({\n    left: false,\n    right: false,\n    top: false,\n    bottom: false\n  });\n  const onScrollEnd = useDebounceFn((e) => {\n    isScrolling.value = false;\n    directions.left = false;\n    directions.right = false;\n    directions.top = false;\n    directions.bottom = false;\n    onStop(e);\n  }, throttle + idle);\n  const onScrollHandler = (e) => {\n    const eventTarget = e.target === document ? e.target.documentElement : e.target;\n    const scrollLeft = eventTarget.scrollLeft;\n    directions.left = scrollLeft < x.value;\n    directions.right = scrollLeft > x.value;\n    arrivedState.left = scrollLeft <= 0 + (offset.left || 0);\n    arrivedState.right = scrollLeft + eventTarget.clientWidth >= eventTarget.scrollWidth - (offset.right || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    x.value = scrollLeft;\n    let scrollTop = eventTarget.scrollTop;\n    if (e.target === document && !scrollTop)\n      scrollTop = document.body.scrollTop;\n    directions.top = scrollTop < y.value;\n    directions.bottom = scrollTop > y.value;\n    arrivedState.top = scrollTop <= 0 + (offset.top || 0);\n    arrivedState.bottom = scrollTop + eventTarget.clientHeight >= eventTarget.scrollHeight - (offset.bottom || 0) - ARRIVED_STATE_THRESHOLD_PIXELS;\n    y.value = scrollTop;\n    isScrolling.value = true;\n    onScrollEnd(e);\n    onScroll(e);\n  };\n  useEventListener(element, \"scroll\", throttle ? useThrottleFn(onScrollHandler, throttle) : onScrollHandler, eventListenerOptions);\n  return {\n    x,\n    y,\n    isScrolling,\n    arrivedState,\n    directions\n  };\n}\n\nvar __defProp$8 = Object.defineProperty;\nvar __defProps$2 = Object.defineProperties;\nvar __getOwnPropDescs$2 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$9 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$9 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$9 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$8 = (obj, key, value) => key in obj ? __defProp$8(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$8 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$9.call(b, prop))\n      __defNormalProp$8(a, prop, b[prop]);\n  if (__getOwnPropSymbols$9)\n    for (var prop of __getOwnPropSymbols$9(b)) {\n      if (__propIsEnum$9.call(b, prop))\n        __defNormalProp$8(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$2 = (a, b) => __defProps$2(a, __getOwnPropDescs$2(b));\nfunction useInfiniteScroll(element, onLoadMore, options = {}) {\n  var _a, _b;\n  const direction = (_a = options.direction) != null ? _a : \"bottom\";\n  const state = reactive(useScroll(element, __spreadProps$2(__spreadValues$8({}, options), {\n    offset: __spreadValues$8({\n      [direction]: (_b = options.distance) != null ? _b : 0\n    }, options.offset)\n  })));\n  watch(() => state.arrivedState[direction], async (v) => {\n    var _a2, _b2;\n    if (v) {\n      const elem = resolveUnref(element);\n      const previous = {\n        height: (_a2 = elem == null ? void 0 : elem.scrollHeight) != null ? _a2 : 0,\n        width: (_b2 = elem == null ? void 0 : elem.scrollWidth) != null ? _b2 : 0\n      };\n      await onLoadMore(state);\n      if (options.preserveScrollPosition && elem) {\n        nextTick(() => {\n          elem.scrollTo({\n            top: elem.scrollHeight - previous.height,\n            left: elem.scrollWidth - previous.width\n          });\n        });\n      }\n    }\n  });\n}\n\nfunction useIntersectionObserver(target, callback, options = {}) {\n  const {\n    root,\n    rootMargin = \"0px\",\n    threshold = 0.1,\n    window = defaultWindow\n  } = options;\n  const isSupported = useSupported(() => window && \"IntersectionObserver\" in window);\n  let cleanup = noop;\n  const stopWatch = isSupported.value ? watch(() => ({\n    el: unrefElement(target),\n    root: unrefElement(root)\n  }), ({ el, root: root2 }) => {\n    cleanup();\n    if (!el)\n      return;\n    const observer = new IntersectionObserver(callback, {\n      root: root2,\n      rootMargin,\n      threshold\n    });\n    observer.observe(el);\n    cleanup = () => {\n      observer.disconnect();\n      cleanup = noop;\n    };\n  }, { immediate: true, flush: \"post\" }) : noop;\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\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 = 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 = noop\n  } = options;\n  const current = reactive(new Set());\n  const obj = { toJSON() {\n    return {};\n  }, current };\n  const refs = useReactive ? reactive(obj) : obj;\n  const metaDeps = new Set();\n  const usedKeys = 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    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(refs, {\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] = computed(() => keys.every((key) => unref(proxy[key])));\n        } else {\n          refs[prop] = ref(false);\n        }\n      }\n      const r = Reflect.get(target2, prop, rec);\n      return useReactive ? unref(r) : r;\n    }\n  });\n  return proxy;\n}\n\nvar __defProp$7 = Object.defineProperty;\nvar __getOwnPropSymbols$8 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$8 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$8 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$7 = (obj, key, value) => key in obj ? __defProp$7(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$7 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$8.call(b, prop))\n      __defNormalProp$7(a, prop, b[prop]);\n  if (__getOwnPropSymbols$8)\n    for (var prop of __getOwnPropSymbols$8(b)) {\n      if (__propIsEnum$8.call(b, prop))\n        __defNormalProp$7(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction usingElRef(source, cb) {\n  if (resolveUnref(source))\n    cb(resolveUnref(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  options = __spreadValues$7(__spreadValues$7({}, defaultOptions), options);\n  const {\n    document = defaultDocument\n  } = options;\n  const currentTime = ref(0);\n  const duration = ref(0);\n  const seeking = ref(false);\n  const volume = ref(1);\n  const waiting = ref(false);\n  const ended = ref(false);\n  const playing = ref(false);\n  const rate = ref(1);\n  const stalled = ref(false);\n  const buffered = ref([]);\n  const tracks = ref([]);\n  const selectedTrack = ref(-1);\n  const isPictureInPicture = ref(false);\n  const muted = ref(false);\n  const supportsPictureInPicture = document && \"pictureInPictureEnabled\" in document;\n  const sourceErrorEvent = createEventHook();\n  const disableTrack = (track) => {\n    usingElRef(target, (el) => {\n      if (track) {\n        const id = isNumber(track) ? 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 = isNumber(track) ? 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  watchEffect(() => {\n    if (!document)\n      return;\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    const src = resolveUnref(options.src);\n    let sources = [];\n    if (!src)\n      return;\n    if (isString(src))\n      sources = [{ src }];\n    else if (Array.isArray(src))\n      sources = src;\n    else if (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  tryOnScopeDispose(() => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.querySelectorAll(\"source\").forEach((e) => e.removeEventListener(\"error\", sourceErrorEvent.trigger));\n  });\n  watch(volume, (vol) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.volume = vol;\n  });\n  watch(muted, (mute) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.muted = mute;\n  });\n  watch(rate, (rate2) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.playbackRate = rate2;\n  });\n  watchEffect(() => {\n    if (!document)\n      return;\n    const textTracks = resolveUnref(options.tracks);\n    const el = resolveUnref(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 } = watchIgnorable(currentTime, (time) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    el.currentTime = time;\n  });\n  const { ignoreUpdates: ignorePlayingUpdates } = watchIgnorable(playing, (isPlaying) => {\n    const el = resolveUnref(target);\n    if (!el)\n      return;\n    isPlaying ? el.play() : el.pause();\n  });\n  useEventListener(target, \"timeupdate\", () => ignoreCurrentTimeUpdates(() => currentTime.value = resolveUnref(target).currentTime));\n  useEventListener(target, \"durationchange\", () => duration.value = resolveUnref(target).duration);\n  useEventListener(target, \"progress\", () => buffered.value = timeRangeToArray(resolveUnref(target).buffered));\n  useEventListener(target, \"seeking\", () => seeking.value = true);\n  useEventListener(target, \"seeked\", () => seeking.value = false);\n  useEventListener(target, \"waiting\", () => waiting.value = true);\n  useEventListener(target, \"playing\", () => waiting.value = false);\n  useEventListener(target, \"ratechange\", () => rate.value = resolveUnref(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 = resolveUnref(target);\n    if (!el)\n      return;\n    volume.value = el.volume;\n    muted.value = el.muted;\n  });\n  const listeners = [];\n  const stop = watch([target], () => {\n    const el = resolveUnref(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  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    muted,\n    tracks,\n    selectedTrack,\n    enableTrack,\n    disableTrack,\n    supportsPictureInPicture,\n    togglePictureInPicture,\n    isPictureInPicture,\n    onSourceError: sourceErrorEvent.on\n  };\n}\n\nconst getMapVue2Compat = () => {\n  const data = reactive({});\n  return {\n    get: (key) => data[key],\n    set: (key, value) => set(data, key, value),\n    has: (key) => hasOwn(data, key),\n    delete: (key) => del(data, key),\n    clear: () => {\n      Object.keys(data).forEach((key) => {\n        del(data, key);\n      });\n    }\n  };\n};\nfunction useMemoize(resolver, options) {\n  const initCache = () => {\n    if (options == null ? void 0 : options.cache)\n      return reactive(options.cache);\n    if (isVue2)\n      return getMapVue2Compat();\n    return reactive(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 = ref();\n  const isSupported = useSupported(() => typeof performance !== \"undefined\" && \"memory\" in performance);\n  if (isSupported.value) {\n    const { interval = 1e3 } = options;\n    useIntervalFn(() => {\n      memory.value = performance.memory;\n    }, interval, { immediate: options.immediate, immediateCallback: options.immediateCallback });\n  }\n  return { isSupported, memory };\n}\n\nfunction useMounted() {\n  const isMounted = ref(false);\n  onMounted(() => {\n    isMounted.value = true;\n  });\n  return isMounted;\n}\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    eventFilter\n  } = options;\n  const x = ref(initialValue.x);\n  const y = ref(initialValue.y);\n  const sourceType = ref(null);\n  const mouseHandler = (event) => {\n    if (type === \"page\") {\n      x.value = event.pageX;\n      y.value = event.pageY;\n    } else if (type === \"client\") {\n      x.value = event.clientX;\n      y.value = event.clientY;\n    }\n    sourceType.value = \"mouse\";\n  };\n  const reset = () => {\n    x.value = initialValue.x;\n    y.value = initialValue.y;\n  };\n  const touchHandler = (event) => {\n    if (event.touches.length > 0) {\n      const touch2 = event.touches[0];\n      if (type === \"page\") {\n        x.value = touch2.pageX;\n        y.value = touch2.pageY;\n      } else if (type === \"client\") {\n        x.value = touch2.clientX;\n        y.value = touch2.clientY;\n      }\n      sourceType.value = \"touch\";\n    }\n  };\n  const mouseHandlerWrapper = (event) => {\n    return eventFilter === void 0 ? mouseHandler(event) : eventFilter(() => mouseHandler(event), {});\n  };\n  const touchHandlerWrapper = (event) => {\n    return eventFilter === void 0 ? touchHandler(event) : eventFilter(() => touchHandler(event), {});\n  };\n  if (window) {\n    useEventListener(window, \"mousemove\", mouseHandlerWrapper, { passive: true });\n    useEventListener(window, \"dragover\", mouseHandlerWrapper, { passive: true });\n    if (touch) {\n      useEventListener(window, \"touchstart\", touchHandlerWrapper, { passive: true });\n      useEventListener(window, \"touchmove\", touchHandlerWrapper, { passive: true });\n      if (resetOnTouchEnds)\n        useEventListener(window, \"touchend\", reset, { passive: true });\n    }\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 { x, y, sourceType } = useMouse(options);\n  const targetRef = ref(target != null ? target : window == null ? void 0 : window.document.body);\n  const elementX = ref(0);\n  const elementY = ref(0);\n  const elementPositionX = ref(0);\n  const elementPositionY = ref(0);\n  const elementHeight = ref(0);\n  const elementWidth = ref(0);\n  const isOutside = ref(true);\n  let stop = () => {\n  };\n  if (window) {\n    stop = watch([targetRef, x, y], () => {\n      const el = unrefElement(targetRef);\n      if (!el)\n        return;\n      const {\n        left,\n        top,\n        width,\n        height\n      } = el.getBoundingClientRect();\n      elementPositionX.value = left + window.pageXOffset;\n      elementPositionY.value = top + window.pageYOffset;\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    }, { immediate: true });\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    initialValue = false,\n    window = defaultWindow\n  } = options;\n  const pressed = ref(initialValue);\n  const sourceType = 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 = computed(() => unrefElement(options.target) || window);\n  useEventListener(target, \"mousedown\", onPressed(\"mouse\"), { passive: true });\n  useEventListener(window, \"mouseleave\", onReleased, { passive: true });\n  useEventListener(window, \"mouseup\", onReleased, { passive: true });\n  if (drag) {\n    useEventListener(target, \"dragstart\", onPressed(\"mouse\"), { passive: true });\n    useEventListener(window, \"drop\", onReleased, { passive: true });\n    useEventListener(window, \"dragend\", onReleased, { passive: true });\n  }\n  if (touch) {\n    useEventListener(target, \"touchstart\", onPressed(\"touch\"), { passive: true });\n    useEventListener(window, \"touchend\", onReleased, { passive: true });\n    useEventListener(window, \"touchcancel\", onReleased, { passive: true });\n  }\n  return {\n    pressed,\n    sourceType\n  };\n}\n\nvar __getOwnPropSymbols$7 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$7 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$7 = Object.prototype.propertyIsEnumerable;\nvar __objRest$1 = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$7.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$7)\n    for (var prop of __getOwnPropSymbols$7(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$7.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nfunction useMutationObserver(target, callback, options = {}) {\n  const _a = options, { window = defaultWindow } = _a, mutationOptions = __objRest$1(_a, [\"window\"]);\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 stopWatch = watch(() => unrefElement(target), (el) => {\n    cleanup();\n    if (isSupported.value && window && el) {\n      observer = new MutationObserver(callback);\n      observer.observe(el, mutationOptions);\n    }\n  }, { immediate: true });\n  const stop = () => {\n    cleanup();\n    stopWatch();\n  };\n  tryOnScopeDispose(stop);\n  return {\n    isSupported,\n    stop\n  };\n}\n\nconst 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 = 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 = ref(true);\n  const saveData = ref(false);\n  const offlineAt = ref(void 0);\n  const onlineAt = ref(void 0);\n  const downlink = ref(void 0);\n  const downlinkMax = ref(void 0);\n  const rtt = ref(void 0);\n  const effectiveType = ref(void 0);\n  const type = 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\nvar __defProp$6 = Object.defineProperty;\nvar __getOwnPropSymbols$6 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$6 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$6 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$6 = (obj, key, value) => key in obj ? __defProp$6(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$6 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$6.call(b, prop))\n      __defNormalProp$6(a, prop, b[prop]);\n  if (__getOwnPropSymbols$6)\n    for (var prop of __getOwnPropSymbols$6(b)) {\n      if (__propIsEnum$6.call(b, prop))\n        __defNormalProp$6(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useNow(options = {}) {\n  const {\n    controls: exposeControls = false,\n    interval = \"requestAnimationFrame\"\n  } = options;\n  const now = ref(new Date());\n  const update = () => now.value = new Date();\n  const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate: true }) : useIntervalFn(update, interval, { immediate: true });\n  if (exposeControls) {\n    return __spreadValues$6({\n      now\n    }, controls);\n  } else {\n    return now;\n  }\n}\n\nfunction useObjectUrl(object) {\n  const url = ref();\n  const release = () => {\n    if (url.value)\n      URL.revokeObjectURL(url.value);\n    url.value = void 0;\n  };\n  watch(() => unref(object), (newObject) => {\n    release();\n    if (newObject)\n      url.value = URL.createObjectURL(newObject);\n  }, { immediate: true });\n  tryOnScopeDispose(release);\n  return readonly(url);\n}\n\nfunction useClamp(value, min, max) {\n  const _value = ref(value);\n  return computed({\n    get() {\n      return _value.value = clamp(_value.value, resolveUnref(min), resolveUnref(max));\n    },\n    set(value2) {\n      _value.value = clamp(value2, resolveUnref(min), resolveUnref(max));\n    }\n  });\n}\n\nfunction useOffsetPagination(options) {\n  const {\n    total = Infinity,\n    pageSize = 10,\n    page = 1,\n    onPageChange = noop,\n    onPageSizeChange = noop,\n    onPageCountChange = noop\n  } = options;\n  const currentPageSize = useClamp(pageSize, 1, Infinity);\n  const pageCount = computed(() => Math.max(1, Math.ceil(unref(total) / unref(currentPageSize))));\n  const currentPage = useClamp(page, 1, pageCount);\n  const isFirstPage = computed(() => currentPage.value === 1);\n  const isLastPage = computed(() => currentPage.value === pageCount.value);\n  if (isRef(page))\n    syncRef(page, currentPage);\n  if (isRef(pageSize))\n    syncRef(pageSize, currentPageSize);\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  watch(currentPage, () => {\n    onPageChange(reactive(returnValue));\n  });\n  watch(currentPageSize, () => {\n    onPageSizeChange(reactive(returnValue));\n  });\n  watch(pageCount, () => {\n    onPageCountChange(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 = 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 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 = reactive(useDeviceOrientation({ window }));\n  const {\n    elementX: x,\n    elementY: y,\n    elementWidth: width,\n    elementHeight: height\n  } = useMouseInElement(target, { handleOutside: false, window });\n  const source = computed(() => {\n    if (orientation.isSupported && (orientation.alpha != null && orientation.alpha !== 0 || orientation.gamma != null && orientation.gamma !== 0))\n      return \"deviceOrientation\";\n    return \"mouse\";\n  });\n  const roll = computed(() => {\n    if (source.value === \"deviceOrientation\") {\n      const value = -orientation.beta / 90;\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 = computed(() => {\n    if (source.value === \"deviceOrientation\") {\n      const value = orientation.gamma / 90;\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\nvar __defProp$5 = Object.defineProperty;\nvar __defProps$1 = Object.defineProperties;\nvar __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$5 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$5 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$5 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$5 = (obj, key, value) => key in obj ? __defProp$5(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$5 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$5.call(b, prop))\n      __defNormalProp$5(a, prop, b[prop]);\n  if (__getOwnPropSymbols$5)\n    for (var prop of __getOwnPropSymbols$5(b)) {\n      if (__propIsEnum$5.call(b, prop))\n        __defNormalProp$5(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));\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 = ref(false);\n  const state = 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 = objectPick(event, keys, false);\n  };\n  if (target) {\n    useEventListener(target, \"pointerdown\", handler, { passive: true });\n    useEventListener(target, \"pointermove\", handler, { passive: true });\n    useEventListener(target, \"pointerleave\", () => isInside.value = false, { passive: true });\n  }\n  return __spreadProps$1(__spreadValues$5({}, toRefs(state)), {\n    isInside\n  });\n}\n\nvar SwipeDirection;\n(function(SwipeDirection2) {\n  SwipeDirection2[\"UP\"] = \"UP\";\n  SwipeDirection2[\"RIGHT\"] = \"RIGHT\";\n  SwipeDirection2[\"DOWN\"] = \"DOWN\";\n  SwipeDirection2[\"LEFT\"] = \"LEFT\";\n  SwipeDirection2[\"NONE\"] = \"NONE\";\n})(SwipeDirection || (SwipeDirection = {}));\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 = reactive({ x: 0, y: 0 });\n  const coordsEnd = reactive({ x: 0, y: 0 });\n  const diffX = computed(() => coordsStart.x - coordsEnd.x);\n  const diffY = computed(() => coordsStart.y - coordsEnd.y);\n  const { max, abs } = Math;\n  const isThresholdExceeded = computed(() => max(abs(diffX.value), abs(diffY.value)) >= threshold);\n  const isSwiping = ref(false);\n  const direction = computed(() => {\n    if (!isThresholdExceeded.value)\n      return SwipeDirection.NONE;\n    if (abs(diffX.value) > abs(diffY.value)) {\n      return diffX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n    } else {\n      return diffY.value > 0 ? SwipeDirection.UP : SwipeDirection.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 (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      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\", onTouchEnd, listenerOptions),\n    useEventListener(target, \"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\", noop, optionsBlock);\n  document.removeEventListener(\"x\", noop);\n  return supportsPassive;\n}\n\nfunction usePointerSwipe(target, options = {}) {\n  const targetRef = resolveRef(target);\n  const {\n    threshold = 50,\n    onSwipe,\n    onSwipeEnd,\n    onSwipeStart\n  } = options;\n  const posStart = reactive({ x: 0, y: 0 });\n  const updatePosStart = (x, y) => {\n    posStart.x = x;\n    posStart.y = y;\n  };\n  const posEnd = reactive({ x: 0, y: 0 });\n  const updatePosEnd = (x, y) => {\n    posEnd.x = x;\n    posEnd.y = y;\n  };\n  const distanceX = computed(() => posStart.x - posEnd.x);\n  const distanceY = computed(() => posStart.y - posEnd.y);\n  const { max, abs } = Math;\n  const isThresholdExceeded = computed(() => max(abs(distanceX.value), abs(distanceY.value)) >= threshold);\n  const isSwiping = ref(false);\n  const isPointerDown = ref(false);\n  const direction = computed(() => {\n    if (!isThresholdExceeded.value)\n      return SwipeDirection.NONE;\n    if (abs(distanceX.value) > abs(distanceY.value)) {\n      return distanceX.value > 0 ? SwipeDirection.LEFT : SwipeDirection.RIGHT;\n    } else {\n      return distanceY.value > 0 ? SwipeDirection.UP : SwipeDirection.DOWN;\n    }\n  });\n  const filterEvent = (e) => {\n    if (options.pointerTypes)\n      return options.pointerTypes.includes(e.pointerType);\n    return true;\n  };\n  const stops = [\n    useEventListener(target, \"pointerdown\", (e) => {\n      var _a, _b;\n      if (!filterEvent(e))\n        return;\n      isPointerDown.value = true;\n      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"none\");\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 (!filterEvent(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      var _a, _b;\n      if (!filterEvent(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      (_b = (_a = targetRef.value) == null ? void 0 : _a.style) == null ? void 0 : _b.setProperty(\"touch-action\", \"initial\");\n    })\n  ];\n  const stop = () => stops.forEach((s) => s());\n  return {\n    isSwiping: readonly(isSwiping),\n    direction: readonly(direction),\n    posStart: readonly(posStart),\n    posEnd: 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 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 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 ref([\"en\"]);\n  const navigator = window.navigator;\n  const value = 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 computed(() => {\n    if (isReduced.value)\n      return \"reduce\";\n    return \"no-preference\";\n  });\n}\n\nconst 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 = ref(screenOrientation.type);\n  const angle = 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)\n      return Promise.reject(new Error(\"Not supported\"));\n    return screenOrientation.lock(type);\n  };\n  const unlockOrientation = () => {\n    if (isSupported.value)\n      screenOrientation.unlock();\n  };\n  return {\n    isSupported,\n    orientation,\n    angle,\n    lockOrientation,\n    unlockOrientation\n  };\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 = ref(\"\");\n  const right = ref(\"\");\n  const bottom = ref(\"\");\n  const left = ref(\"\");\n  if (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\", 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 = 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 = 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=\"${resolveUnref(src)}\"]`);\n    if (!el) {\n      el = document.createElement(\"script\");\n      el.type = type;\n      el.async = async;\n      el.src = resolveUnref(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=\"${resolveUnref(src)}\"]`);\n    if (el)\n      document.head.removeChild(el);\n  };\n  if (immediate && !manual)\n    tryOnMounted(load);\n  if (!manual)\n    tryOnUnmounted(unload);\n  return { scriptTag, load, unload };\n}\n\nfunction preventDefault(rawEvent) {\n  const e = rawEvent || window.event;\n  if (e.touches.length > 1)\n    return true;\n  if (e.preventDefault)\n    e.preventDefault();\n  return false;\n}\nfunction useScrollLock(element, initialState = false) {\n  const isLocked = ref(initialState);\n  let stopTouchMoveListener = null;\n  let initialOverflow;\n  watch(resolveRef(element), (el) => {\n    if (el) {\n      const ele = el;\n      initialOverflow = ele.style.overflow;\n      if (isLocked.value)\n        ele.style.overflow = \"hidden\";\n    }\n  }, {\n    immediate: true\n  });\n  const lock = () => {\n    const ele = resolveUnref(element);\n    if (!ele || isLocked.value)\n      return;\n    if (isIOS) {\n      stopTouchMoveListener = useEventListener(ele, \"touchmove\", preventDefault, { passive: false });\n    }\n    ele.style.overflow = \"hidden\";\n    isLocked.value = true;\n  };\n  const unlock = () => {\n    const ele = resolveUnref(element);\n    if (!ele || !isLocked.value)\n      return;\n    isIOS && (stopTouchMoveListener == null ? void 0 : stopTouchMoveListener());\n    ele.style.overflow = initialOverflow;\n    isLocked.value = false;\n  };\n  tryOnScopeDispose(unlock);\n  return computed({\n    get() {\n      return isLocked.value;\n    },\n    set(v) {\n      if (v)\n        lock();\n      else\n        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\nvar __defProp$4 = Object.defineProperty;\nvar __getOwnPropSymbols$4 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$4 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$4 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$4 = (obj, key, value) => key in obj ? __defProp$4(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$4 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$4.call(b, prop))\n      __defNormalProp$4(a, prop, b[prop]);\n  if (__getOwnPropSymbols$4)\n    for (var prop of __getOwnPropSymbols$4(b)) {\n      if (__propIsEnum$4.call(b, prop))\n        __defNormalProp$4(a, prop, b[prop]);\n    }\n  return a;\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 = __spreadValues$4(__spreadValues$4({}, resolveUnref(shareOptions)), resolveUnref(overrideOptions));\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\nfunction useSpeechRecognition(options = {}) {\n  const {\n    interimResults = true,\n    continuous = true,\n    window = defaultWindow\n  } = options;\n  const lang = resolveRef(options.lang || \"en-US\");\n  const isListening = ref(false);\n  const isFinal = ref(false);\n  const result = ref(\"\");\n  const error = 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 = unref(lang);\n    recognition.onstart = () => {\n      isFinal.value = false;\n    };\n    watch(lang, (lang2) => {\n      if (recognition && !isListening.value)\n        recognition.lang = lang2;\n    });\n    recognition.onresult = (event) => {\n      const transcript = Array.from(event.results).map((result2) => {\n        isFinal.value = result2.isFinal;\n        return result2[0];\n      }).map((result2) => result2.transcript).join(\"\");\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 = unref(lang);\n    };\n    watch(isListening, () => {\n      if (isListening.value)\n        recognition.start();\n      else\n        recognition.stop();\n    });\n  }\n  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 = ref(false);\n  const status = ref(\"init\");\n  const spokenText = resolveRef(text || \"\");\n  const lang = resolveRef(options.lang || \"en-US\");\n  const error = shallowRef(void 0);\n  const toggle = (value = !isPlaying.value) => {\n    isPlaying.value = value;\n  };\n  const bindEventsForUtterance = (utterance2) => {\n    utterance2.lang = unref(lang);\n    utterance2.voice = unref(options.voice) || null;\n    utterance2.pitch = pitch;\n    utterance2.rate = 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 = 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    utterance && synth.speak(utterance.value);\n  };\n  if (isSupported.value) {\n    bindEventsForUtterance(utterance.value);\n    watch(lang, (lang2) => {\n      if (utterance.value && !isPlaying.value)\n        utterance.value.lang = lang2;\n    });\n    if (options.voice) {\n      watch(options.voice, () => {\n        synth.cancel();\n      });\n    }\n    watch(isPlaying, () => {\n      if (isPlaying.value)\n        synth.resume();\n      else\n        synth.pause();\n    });\n  }\n  tryOnScopeDispose(() => {\n    isPlaying.value = false;\n  });\n  return {\n    isSupported,\n    isPlaying,\n    status,\n    utterance,\n    error,\n    toggle,\n    speak\n  };\n}\n\nfunction useStepper(steps, initialStep) {\n  const stepsRef = ref(steps);\n  const stepNames = computed(() => Array.isArray(stepsRef.value) ? stepsRef.value : Object.keys(stepsRef.value));\n  const index = ref(stepNames.value.indexOf(initialStep != null ? initialStep : stepNames.value[0]));\n  const current = computed(() => at(index.value));\n  const isFirst = computed(() => index.value === 0);\n  const isLast = computed(() => index.value === stepNames.value.length - 1);\n  const next = computed(() => stepNames.value[index.value + 1]);\n  const previous = 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    shallow,\n    window = defaultWindow,\n    eventFilter,\n    onError = (e) => {\n      console.error(e);\n    }\n  } = options;\n  const rawInit = resolveUnref(initialValue);\n  const type = guessSerializerType(rawInit);\n  const data = (shallow ? shallowRef : ref)(initialValue);\n  const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\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  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 {\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) => setTimeout(() => read(e), 0));\n  if (storage) {\n    watchWithFilter(data, 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      flush,\n      deep,\n      eventFilter\n    });\n  }\n  return data;\n}\n\nlet _id = 0;\nfunction useStyleTag(css, options = {}) {\n  const isLoaded = ref(false);\n  const {\n    document = defaultDocument,\n    immediate = true,\n    manual = false,\n    id = `vueuse_styletag_${++_id}`\n  } = options;\n  const cssRef = ref(css);\n  let stop = () => {\n  };\n  const load = () => {\n    if (!document)\n      return;\n    const el = document.getElementById(id) || document.createElement(\"style\");\n    el.type = \"text/css\";\n    el.id = id;\n    if (options.media)\n      el.media = options.media;\n    document.head.appendChild(el);\n    if (isLoaded.value)\n      return;\n    stop = watch(cssRef, (value) => {\n      el.innerText = value;\n    }, { immediate: true });\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    tryOnMounted(load);\n  if (!manual)\n    tryOnScopeDispose(unload);\n  return {\n    id,\n    css: cssRef,\n    unload,\n    load,\n    isLoaded: readonly(isLoaded)\n  };\n}\n\nfunction useTemplateRefsList() {\n  const refs = ref([]);\n  refs.value.set = (el) => {\n    if (el)\n      refs.value.push(el);\n  };\n  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 = ref(getValue());\n  tryOnMounted(() => dir.value = getValue());\n  if (observe && document) {\n    useMutationObserver(document.querySelector(selector), () => dir.value = getValue(), { attributes: true });\n  }\n  return 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  const ranges = new Array(rangeCount);\n  for (let i = 0; i < rangeCount; i++) {\n    const range = selection.getRangeAt(i);\n    ranges[i] = range;\n  }\n  return ranges;\n}\nfunction useTextSelection(options = {}) {\n  const {\n    window = defaultWindow\n  } = options;\n  const selection = ref(null);\n  const text = computed(() => {\n    var _a, _b;\n    return (_b = (_a = selection.value) == null ? void 0 : _a.toString()) != null ? _b : \"\";\n  });\n  const ranges = computed(() => selection.value ? getRangesFromSelection(selection.value) : []);\n  const rects = 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  const textarea = ref(options == null ? void 0 : options.element);\n  const input = ref(options == null ? void 0 : options.input);\n  function triggerResize() {\n    var _a, _b;\n    if (!textarea.value)\n      return;\n    textarea.value.style.height = \"1px\";\n    textarea.value.style.height = `${(_a = textarea.value) == null ? void 0 : _a.scrollHeight}px`;\n    (_b = options == null ? void 0 : options.onResize) == null ? void 0 : _b.call(options);\n  }\n  watch([input, textarea], triggerResize, { immediate: true });\n  if (options == null ? void 0 : options.watch)\n    watch(options.watch, triggerResize, { immediate: true, deep: true });\n  return {\n    textarea,\n    input,\n    triggerResize\n  };\n}\n\nvar __defProp$3 = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols$3 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$3 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$3 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$3 = (obj, key, value) => key in obj ? __defProp$3(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$3 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$3.call(b, prop))\n      __defNormalProp$3(a, prop, b[prop]);\n  if (__getOwnPropSymbols$3)\n    for (var prop of __getOwnPropSymbols$3(b)) {\n      if (__propIsEnum$3.call(b, prop))\n        __defNormalProp$3(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nfunction useThrottledRefHistory(source, options = {}) {\n  const { throttle = 200, trailing = true } = options;\n  const filter = throttleFilter(throttle, trailing);\n  const history = useRefHistory(source, __spreadProps(__spreadValues$3({}, options), { eventFilter: filter }));\n  return __spreadValues$3({}, history);\n}\n\nvar __defProp$2 = Object.defineProperty;\nvar __getOwnPropSymbols$2 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$2 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$2 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$2 = (obj, key, value) => key in obj ? __defProp$2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$2 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$2.call(b, prop))\n      __defNormalProp$2(a, prop, b[prop]);\n  if (__getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(b)) {\n      if (__propIsEnum$2.call(b, prop))\n        __defNormalProp$2(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp$2.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols$2)\n    for (var prop of __getOwnPropSymbols$2(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum$2.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\nconst 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: 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};\nconst DEFAULT_FORMATTER = (date) => date.toISOString().slice(0, 10);\nfunction useTimeAgo(time, options = {}) {\n  const {\n    controls: exposeControls = false,\n    max,\n    updateInterval = 3e4,\n    messages = DEFAULT_MESSAGES,\n    fullDateFormatter = DEFAULT_FORMATTER\n  } = options;\n  const { abs, round } = Math;\n  const _a = useNow({ interval: updateInterval, controls: true }), { now } = _a, controls = __objRest(_a, [\"now\"]);\n  function getTimeago(from, now2) {\n    var _a2;\n    const diff = +now2 - +from;\n    const absDiff = abs(diff);\n    if (absDiff < 6e4)\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 = (_a2 = UNITS.find((i) => i.name === max)) == null ? void 0 : _a2.max;\n      if (unitMax && absDiff > unitMax)\n        return fullDateFormatter(new Date(from));\n    }\n    for (const unit of UNITS) {\n      if (absDiff < unit.max)\n        return format(diff, unit);\n    }\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  function format(diff, unit) {\n    const val = round(abs(diff) / unit.value);\n    const past = diff > 0;\n    const str = applyFormat(unit.name, val, past);\n    return applyFormat(past ? \"past\" : \"future\", str, past);\n  }\n  const timeAgo = computed(() => getTimeago(new Date(resolveUnref(time)), unref(now.value)));\n  if (exposeControls) {\n    return __spreadValues$2({\n      timeAgo\n    }, controls);\n  } else {\n    return timeAgo;\n  }\n}\n\nfunction useTimeoutPoll(fn, interval, timeoutPollOptions) {\n  const { start } = useTimeoutFn(loop, interval);\n  const isActive = 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  tryOnScopeDispose(pause);\n  return {\n    isActive,\n    pause,\n    resume\n  };\n}\n\nvar __defProp$1 = Object.defineProperty;\nvar __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;\nvar __hasOwnProp$1 = Object.prototype.hasOwnProperty;\nvar __propIsEnum$1 = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues$1 = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp$1.call(b, prop))\n      __defNormalProp$1(a, prop, b[prop]);\n  if (__getOwnPropSymbols$1)\n    for (var prop of __getOwnPropSymbols$1(b)) {\n      if (__propIsEnum$1.call(b, prop))\n        __defNormalProp$1(a, prop, b[prop]);\n    }\n  return a;\n};\nfunction useTimestamp(options = {}) {\n  const {\n    controls: exposeControls = false,\n    offset = 0,\n    immediate = true,\n    interval = \"requestAnimationFrame\"\n  } = options;\n  const ts = ref(timestamp() + offset);\n  const update = () => ts.value = timestamp() + offset;\n  const controls = interval === \"requestAnimationFrame\" ? useRafFn(update, { immediate }) : useIntervalFn(update, interval, { immediate });\n  if (exposeControls) {\n    return __spreadValues$1({\n      timestamp: ts\n    }, controls);\n  } else {\n    return ts;\n  }\n}\n\nfunction useTitle(newTitle = null, options = {}) {\n  var _a, _b;\n  const {\n    document = defaultDocument,\n    observe = false,\n    titleTemplate = \"%s\"\n  } = options;\n  const title = resolveRef((_a = newTitle != null ? newTitle : document == null ? void 0 : document.title) != null ? _a : null);\n  const isReadonly = newTitle && isFunction(newTitle);\n  function format(t) {\n    return isFunction(titleTemplate) ? titleTemplate(t) : unref(titleTemplate).replace(\"%s\", t);\n  }\n  watch(title, (t, o) => {\n    if (isString(t) && t !== o && document)\n      document.title = format(t);\n  }, { immediate: true });\n  if (observe && document && !isReadonly) {\n    useMutationObserver((_b = document.head) == null ? void 0 : _b.querySelector(\"title\"), () => {\n      if (document && document.title !== title.value)\n        title.value = format(document.title);\n    }, { childList: true });\n  }\n  return title;\n}\n\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\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 = __spreadValues({\n  linear: identity\n}, _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 useTransition(source, options = {}) {\n  const {\n    delay = 0,\n    disabled = false,\n    duration = 1e3,\n    onFinished = noop,\n    onStarted = noop,\n    transition = identity\n  } = options;\n  const currentTransition = computed(() => {\n    const t = unref(transition);\n    return isFunction(t) ? t : createEasingFunction(t);\n  });\n  const sourceValue = computed(() => {\n    const s = unref(source);\n    return isNumber(s) ? s : s.map(unref);\n  });\n  const sourceVector = computed(() => isNumber(sourceValue.value) ? [sourceValue.value] : sourceValue.value);\n  const outputVector = ref(sourceVector.value.slice(0));\n  let currentDuration;\n  let diffVector;\n  let endAt;\n  let startAt;\n  let startVector;\n  const { resume, pause } = useRafFn(() => {\n    const now = Date.now();\n    const progress = clamp(1 - (endAt - now) / currentDuration, 0, 1);\n    outputVector.value = startVector.map((val, i) => {\n      var _a;\n      return val + ((_a = diffVector[i]) != null ? _a : 0) * currentTransition.value(progress);\n    });\n    if (progress >= 1) {\n      pause();\n      onFinished();\n    }\n  }, { immediate: false });\n  const start = () => {\n    pause();\n    currentDuration = unref(duration);\n    diffVector = outputVector.value.map((n, i) => {\n      var _a, _b;\n      return ((_a = sourceVector.value[i]) != null ? _a : 0) - ((_b = outputVector.value[i]) != null ? _b : 0);\n    });\n    startVector = outputVector.value.slice(0);\n    startAt = Date.now();\n    endAt = startAt + currentDuration;\n    resume();\n    onStarted();\n  };\n  const timeout = useTimeoutFn(start, delay, { immediate: false });\n  watch(sourceVector, () => {\n    if (unref(disabled)) {\n      outputVector.value = sourceVector.value.slice(0);\n    } else {\n      if (unref(delay) <= 0)\n        start();\n      else\n        timeout.start();\n    }\n  }, { deep: true });\n  return computed(() => {\n    const targetVector = unref(disabled) ? sourceVector : outputVector;\n    return isNumber(sourceValue.value) ? targetVector.value[0] : targetVector.value;\n  });\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 reactive(initialValue);\n  const state = 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 } = pausableWatch(state, () => {\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  }, { deep: true });\n  function write(params, shouldUpdate) {\n    pause();\n    if (shouldUpdate)\n      updateState(params);\n    window.history.replaceState(window.history.state, window.document.title, window.location.pathname + constructQuery(params));\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 = ref((_a = options.enabled) != null ? _a : false);\n  const autoSwitch = ref((_b = options.autoSwitch) != null ? _b : true);\n  const videoDeviceId = ref(options.videoDeviceId);\n  const audioDeviceId = ref(options.audioDeviceId);\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 = shallowRef();\n  function getDeviceOptions(device) {\n    if (device.value === \"none\" || device.value === false)\n      return false;\n    if (device.value == null)\n      return true;\n    return {\n      deviceId: device.value\n    };\n  }\n  async function _start() {\n    if (!isSupported.value || stream.value)\n      return;\n    stream.value = await navigator.mediaDevices.getUserMedia({\n      video: getDeviceOptions(videoDeviceId),\n      audio: getDeviceOptions(audioDeviceId)\n    });\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  async function restart() {\n    _stop();\n    return await start();\n  }\n  watch(enabled, (v) => {\n    if (v)\n      _start();\n    else\n      _stop();\n  }, { immediate: true });\n  watch([videoDeviceId, audioDeviceId], () => {\n    if (autoSwitch.value && stream.value)\n      restart();\n  }, { immediate: true });\n  return {\n    isSupported,\n    stream,\n    start,\n    stop,\n    restart,\n    videoDeviceId,\n    audioDeviceId,\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  } = options;\n  const vm = 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 (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 = eventName || event || `update:${key.toString()}`;\n  const cloneFn = (val) => !clone ? val : isFunction(clone) ? clone(val) : cloneFnJSON(val);\n  const getValue = () => isDef(props[key]) ? cloneFn(props[key]) : defaultValue;\n  if (passive) {\n    const initialValue = getValue();\n    const proxy = ref(initialValue);\n    watch(() => props[key], (v) => proxy.value = cloneFn(v));\n    watch(proxy, (v) => {\n      if (v !== props[key] || deep)\n        _emit(event, v);\n    }, { deep });\n    return proxy;\n  } else {\n    return computed({\n      get() {\n        return getValue();\n      },\n      set(value) {\n        _emit(event, value);\n      }\n    });\n  }\n}\n\nfunction useVModels(props, emit, options = {}) {\n  const ret = {};\n  for (const key in props)\n    ret[key] = useVModel(props, key, emit, options);\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 = resolveRef(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 = useIntervalFn(vibrate, interval, {\n      immediate: false,\n      immediateCallback: false\n    });\n  }\n  return {\n    isSupported,\n    pattern,\n    intervalControls,\n    vibrate,\n    stop\n  };\n}\n\nfunction useVirtualList(list, options) {\n  const containerRef = ref();\n  const size = useElementSize(containerRef);\n  const currentList = ref([]);\n  const source = shallowRef(list);\n  const state = ref({ start: 0, end: 10 });\n  const { itemHeight, overscan = 5 } = options;\n  const getViewCapacity = (containerHeight) => {\n    if (typeof itemHeight === \"number\")\n      return Math.ceil(containerHeight / itemHeight);\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 height = itemHeight(i);\n      sum += height;\n      if (sum >= containerHeight) {\n        capacity = i;\n        break;\n      }\n    }\n    return capacity - start;\n  };\n  const getOffset = (scrollTop) => {\n    if (typeof itemHeight === \"number\")\n      return Math.floor(scrollTop / itemHeight) + 1;\n    let sum = 0;\n    let offset = 0;\n    for (let i = 0; i < source.value.length; i++) {\n      const height = itemHeight(i);\n      sum += height;\n      if (sum >= scrollTop) {\n        offset = i;\n        break;\n      }\n    }\n    return offset + 1;\n  };\n  const calculateRange = () => {\n    const element = containerRef.value;\n    if (element) {\n      const offset = getOffset(element.scrollTop);\n      const viewCapacity = getViewCapacity(element.clientHeight);\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  watch([size.width, size.height, list], () => {\n    calculateRange();\n  });\n  const totalHeight = computed(() => {\n    if (typeof itemHeight === \"number\")\n      return source.value.length * itemHeight;\n    return source.value.reduce((sum, _, index) => sum + itemHeight(index), 0);\n  });\n  const getDistanceTop = (index) => {\n    if (typeof itemHeight === \"number\") {\n      const height2 = index * itemHeight;\n      return height2;\n    }\n    const height = source.value.slice(0, index).reduce((sum, _, i) => sum + itemHeight(i), 0);\n    return height;\n  };\n  const scrollTo = (index) => {\n    if (containerRef.value) {\n      containerRef.value.scrollTop = getDistanceTop(index);\n      calculateRange();\n    }\n  };\n  const offsetTop = computed(() => getDistanceTop(state.value.start));\n  const wrapperProps = computed(() => {\n    return {\n      style: {\n        width: \"100%\",\n        height: `${totalHeight.value - offsetTop.value}px`,\n        marginTop: `${offsetTop.value}px`\n      }\n    };\n  });\n  const containerStyle = { overflowY: \"auto\" };\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}\n\nconst useWakeLock = (options = {}) => {\n  const {\n    navigator = defaultNavigator,\n    document = defaultDocument\n  } = options;\n  let wakeLock;\n  const isSupported = useSupported(() => navigator && \"wakeLock\" in navigator);\n  const isActive = ref(false);\n  async function onVisibilityChange() {\n    if (!isSupported.value || !wakeLock)\n      return;\n    if (document && document.visibilityState === \"visible\")\n      wakeLock = await navigator.wakeLock.request(\"screen\");\n    isActive.value = !wakeLock.released;\n  }\n  if (document)\n    useEventListener(document, \"visibilitychange\", onVisibilityChange, { passive: true });\n  async function request(type) {\n    if (!isSupported.value)\n      return;\n    wakeLock = await navigator.wakeLock.request(type);\n    isActive.value = !wakeLock.released;\n  }\n  async function release() {\n    if (!isSupported.value || !wakeLock)\n      return;\n    await wakeLock.release();\n    isActive.value = !wakeLock.released;\n    wakeLock = null;\n  }\n  return {\n    isSupported,\n    isActive,\n    request,\n    release\n  };\n};\n\nconst useWebNotification = (defaultOptions = {}) => {\n  const {\n    window = defaultWindow\n  } = defaultOptions;\n  const isSupported = useSupported(() => !!window && \"Notification\" in window);\n  const notification = ref(null);\n  const requestPermission = async () => {\n    if (!isSupported.value)\n      return;\n    if (\"permission\" in Notification && Notification.permission !== \"denied\")\n      await Notification.requestPermission();\n  };\n  const onClick = createEventHook();\n  const onShow = createEventHook();\n  const onError = createEventHook();\n  const onClose = createEventHook();\n  const show = async (overrides) => {\n    if (!isSupported.value)\n      return;\n    await requestPermission();\n    const options = Object.assign({}, defaultOptions, overrides);\n    notification.value = new Notification(options.title || \"\", options);\n    notification.value.onclick = (event) => onClick.trigger(event);\n    notification.value.onshow = (event) => onShow.trigger(event);\n    notification.value.onerror = (event) => onError.trigger(event);\n    notification.value.onclose = (event) => onClose.trigger(event);\n    return notification.value;\n  };\n  const close = () => {\n    if (notification.value)\n      notification.value.close();\n    notification.value = null;\n  };\n  tryOnMounted(async () => {\n    if (isSupported.value)\n      await requestPermission();\n  });\n  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    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 = ref(null);\n  const status = ref(\"CLOSED\");\n  const wsRef = ref();\n  let heartbeatPause;\n  let heartbeatResume;\n  let explicitlyClosed = false;\n  let retried = 0;\n  let bufferedData = [];\n  let pongTimeoutWait;\n  const close = (code = 1e3, reason) => {\n    if (!wsRef.value)\n      return;\n    explicitlyClosed = true;\n    heartbeatPause == null ? void 0 : heartbeatPause();\n    wsRef.value.close(code, reason);\n  };\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  };\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    const ws = new WebSocket(url, protocols);\n    wsRef.value = ws;\n    status.value = \"CONNECTING\";\n    explicitlyClosed = false;\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      wsRef.value = void 0;\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      resetHeartbeat();\n      if (options.heartbeat) {\n        const {\n          message = DEFAULT_PING_MESSAGE\n        } = resolveNestedOptions(options.heartbeat);\n        if (e.data === message)\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 } = useIntervalFn(() => {\n      send(message, false);\n      pongTimeoutWait = setTimeout(() => {\n        close();\n      }, pongTimeout);\n    }, interval, { immediate: false });\n    heartbeatPause = pause;\n    heartbeatResume = resume;\n  }\n  if (immediate)\n    _init();\n  if (autoClose) {\n    useEventListener(window, \"beforeunload\", () => close());\n    tryOnScopeDispose(close);\n  }\n  const open = () => {\n    close();\n    retried = 0;\n    _init();\n  };\n  return {\n    data,\n    status,\n    close,\n    send,\n    open,\n    ws: wsRef\n  };\n}\n\nfunction useWebWorker(url, workerOptions, options = {}) {\n  const {\n    window = defaultWindow\n  } = options;\n  const data = ref(null);\n  const worker = shallowRef();\n  const post = function post2(val) {\n    if (!worker.value)\n      return;\n    worker.value.postMessage(val);\n  };\n  const terminate = function terminate2() {\n    if (!worker.value)\n      return;\n    worker.value.terminate();\n  };\n  if (window) {\n    worker.value = new Worker(url, workerOptions);\n    worker.value.onmessage = (e) => {\n      data.value = e.data;\n    };\n    tryOnScopeDispose(() => {\n      if (worker.value)\n        worker.value.terminate();\n    });\n  }\n  return {\n    data,\n    post,\n    terminate,\n    worker\n  };\n}\n\nconst jobRunner = (userFunc) => (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\nconst depsParser = (deps) => {\n  if (deps.length === 0)\n    return \"\";\n  const depsString = deps.map((dep) => `'${dep}'`).toString();\n  return `importScripts(${depsString})`;\n};\n\nconst createWorkerBlobUrl = (fn, deps) => {\n  const blobCode = `${depsParser(deps)}; onmessage=(${jobRunner})(${fn})`;\n  const blob = new Blob([blobCode], { type: \"text/javascript\" });\n  const url = URL.createObjectURL(blob);\n  return url;\n};\n\nconst useWebWorkerFn = (fn, options = {}) => {\n  const {\n    dependencies = [],\n    timeout,\n    window = defaultWindow\n  } = options;\n  const worker = ref();\n  const workerStatus = ref(\"PENDING\");\n  const promise = ref({});\n  const timeoutId = 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  tryOnScopeDispose(workerTerminate);\n  const generateWorker = () => {\n    const blobUrl = createWorkerBlobUrl(fn, dependencies);\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      reject(e);\n      workerTerminate(\"ERROR\");\n    };\n    if (timeout) {\n      timeoutId.value = setTimeout(() => workerTerminate(\"TIMEOUT_EXPIRED\"), timeout);\n    }\n    return newWorker;\n  };\n  const callWorker = (...fnArgs) => new Promise((resolve, reject) => {\n    promise.value = {\n      resolve,\n      reject\n    };\n    worker.value && worker.value.postMessage([[...fnArgs]]);\n    workerStatus.value = \"RUNNING\";\n  });\n  const workerFn = (...fnArgs) => {\n    if (workerStatus.value === \"RUNNING\") {\n      console.error(\"[useWebWorkerFn] You can only run one instance of the worker at a time.\");\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({ window = defaultWindow } = {}) {\n  if (!window)\n    return ref(false);\n  const focused = 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({ window = defaultWindow } = {}) {\n  if (!window) {\n    return {\n      x: ref(0),\n      y: ref(0)\n    };\n  }\n  const x = ref(window.pageXOffset);\n  const y = ref(window.pageYOffset);\n  useEventListener(\"scroll\", () => {\n    x.value = window.pageXOffset;\n    y.value = window.pageYOffset;\n  }, {\n    capture: false,\n    passive: true\n  });\n  return { x, y };\n}\n\nfunction useWindowSize(options = {}) {\n  const {\n    window = defaultWindow,\n    initialWidth = Infinity,\n    initialHeight = Infinity,\n    listenOrientation = true,\n    includeScrollbar = true\n  } = options;\n  const width = ref(initialWidth);\n  const height = ref(initialHeight);\n  const update = () => {\n    if (window) {\n      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  tryOnMounted(update);\n  useEventListener(\"resize\", update, { passive: true });\n  if (listenOrientation)\n    useEventListener(\"orientationchange\", update, { passive: true });\n  return { width, height };\n}\n\nexport { DefaultMagicKeysAliasMap, StorageSerializers, SwipeDirection, TransitionPresets, computedAsync as asyncComputed, breakpointsAntDesign, breakpointsBootstrapV5, breakpointsQuasar, breakpointsSematic, breakpointsTailwind, breakpointsVuetify, cloneFnJSON, computedAsync, computedInject, createFetch, createUnrefFn, defaultDocument, defaultLocation, defaultNavigator, defaultWindow, getSSRHandler, mapGamepadToXbox360Controller, onClickOutside, onKeyDown, onKeyPressed, onKeyStroke, onKeyUp, onLongPress, onStartTyping, setSSRHandler, templateRef, unrefElement, useActiveElement, useAsyncQueue, useAsyncState, useBase64, useBattery, useBluetooth, useBreakpoints, useBroadcastChannel, useBrowserLocation, useCached, useClipboard, useCloned, useColorMode, useConfirmDialog, useCssVar, useCurrentElement, useCycleList, useDark, useDebouncedRefHistory, useDeviceMotion, useDeviceOrientation, useDevicePixelRatio, useDevicesList, useDisplayMedia, useDocumentVisibility, useDraggable, useDropZone, useElementBounding, useElementByPoint, useElementHover, useElementSize, useElementVisibility, useEventBus, useEventListener, useEventSource, useEyeDropper, useFavicon, useFetch, useFileDialog, useFileSystemAccess, useFocus, useFocusWithin, useFps, useFullscreen, useGamepad, useGeolocation, useIdle, useImage, useInfiniteScroll, useIntersectionObserver, useKeyModifier, useLocalStorage, useMagicKeys, useManualRefHistory, useMediaControls, useMediaQuery, useMemoize, useMemory, useMounted, useMouse, useMouseInElement, useMousePressed, useMutationObserver, useNavigatorLanguage, useNetwork, useNow, useObjectUrl, useOffsetPagination, useOnline, usePageLeave, useParallax, usePermission, usePointer, usePointerSwipe, usePreferredColorScheme, usePreferredContrast, usePreferredDark, usePreferredLanguages, usePreferredReducedMotion, useRafFn, useRefHistory, useResizeObserver, useScreenOrientation, useScreenSafeArea, useScriptTag, useScroll, useScrollLock, useSessionStorage, useShare, useSpeechRecognition, useSpeechSynthesis, useStepper, useStorage, useStorageAsync, useStyleTag, useSupported, useSwipe, useTemplateRefsList, useTextDirection, useTextSelection, useTextareaAutosize, useThrottledRefHistory, useTimeAgo, useTimeoutPoll, useTimestamp, useTitle, useTransition, useUrlSearchParams, useUserMedia, useVModel, useVModels, useVibrate, useVirtualList, useWakeLock, useWebNotification, useWebSocket, useWebWorker, useWebWorkerFn, useWindowFocus, useWindowScroll, useWindowSize };\n","var baseAssignValue = require('./_baseAssignValue'),\n    eq = require('./eq');\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n  if ((value !== undefined && !eq(object[key], value)) ||\n      (value === undefined && !(key in object))) {\n    baseAssignValue(object, key, value);\n  }\n}\n\nmodule.exports = assignMergeValue;\n","var isArrayLike = require('./isArrayLike'),\n    isObjectLike = require('./isObjectLike');\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n *  else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n  return isObjectLike(value) && isArrayLike(value);\n}\n\nmodule.exports = isArrayLikeObject;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n  if (key === 'constructor' && typeof object[key] === 'function') {\n    return;\n  }\n\n  if (key == '__proto__') {\n    return;\n  }\n\n  return object[key];\n}\n\nmodule.exports = safeGet;\n","var copyObject = require('./_copyObject'),\n    keysIn = require('./keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n *   this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n  return copyObject(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var assignMergeValue = require('./_assignMergeValue'),\n    cloneBuffer = require('./_cloneBuffer'),\n    cloneTypedArray = require('./_cloneTypedArray'),\n    copyArray = require('./_copyArray'),\n    initCloneObject = require('./_initCloneObject'),\n    isArguments = require('./isArguments'),\n    isArray = require('./isArray'),\n    isArrayLikeObject = require('./isArrayLikeObject'),\n    isBuffer = require('./isBuffer'),\n    isFunction = require('./isFunction'),\n    isObject = require('./isObject'),\n    isPlainObject = require('./isPlainObject'),\n    isTypedArray = require('./isTypedArray'),\n    safeGet = require('./_safeGet'),\n    toPlainObject = require('./toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n  var objValue = safeGet(object, key),\n      srcValue = safeGet(source, key),\n      stacked = stack.get(srcValue);\n\n  if (stacked) {\n    assignMergeValue(object, key, stacked);\n    return;\n  }\n  var newValue = customizer\n    ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n    : undefined;\n\n  var isCommon = newValue === undefined;\n\n  if (isCommon) {\n    var isArr = isArray(srcValue),\n        isBuff = !isArr && isBuffer(srcValue),\n        isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n    newValue = srcValue;\n    if (isArr || isBuff || isTyped) {\n      if (isArray(objValue)) {\n        newValue = objValue;\n      }\n      else if (isArrayLikeObject(objValue)) {\n        newValue = copyArray(objValue);\n      }\n      else if (isBuff) {\n        isCommon = false;\n        newValue = cloneBuffer(srcValue, true);\n      }\n      else if (isTyped) {\n        isCommon = false;\n        newValue = cloneTypedArray(srcValue, true);\n      }\n      else {\n        newValue = [];\n      }\n    }\n    else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n      newValue = objValue;\n      if (isArguments(objValue)) {\n        newValue = toPlainObject(objValue);\n      }\n      else if (!isObject(objValue) || isFunction(objValue)) {\n        newValue = initCloneObject(srcValue);\n      }\n    }\n    else {\n      isCommon = false;\n    }\n  }\n  if (isCommon) {\n    // Recursively merge objects and arrays (susceptible to call stack limits).\n    stack.set(srcValue, newValue);\n    mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n    stack['delete'](srcValue);\n  }\n  assignMergeValue(object, key, newValue);\n}\n\nmodule.exports = baseMergeDeep;\n","var Stack = require('./_Stack'),\n    assignMergeValue = require('./_assignMergeValue'),\n    baseFor = require('./_baseFor'),\n    baseMergeDeep = require('./_baseMergeDeep'),\n    isObject = require('./isObject'),\n    keysIn = require('./keysIn'),\n    safeGet = require('./_safeGet');\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n *  counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n  if (object === source) {\n    return;\n  }\n  baseFor(source, function(srcValue, key) {\n    stack || (stack = new Stack);\n    if (isObject(srcValue)) {\n      baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n    }\n    else {\n      var newValue = customizer\n        ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n        : undefined;\n\n      if (newValue === undefined) {\n        newValue = srcValue;\n      }\n      assignMergeValue(object, key, newValue);\n    }\n  }, keysIn);\n}\n\nmodule.exports = baseMerge;\n","var identity = require('./identity'),\n    overRest = require('./_overRest'),\n    setToString = require('./_setToString');\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n  return setToString(overRest(func, start, identity), func + '');\n}\n\nmodule.exports = baseRest;\n","var eq = require('./eq'),\n    isArrayLike = require('./isArrayLike'),\n    isIndex = require('./_isIndex'),\n    isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n *  else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n  if (!isObject(object)) {\n    return false;\n  }\n  var type = typeof index;\n  if (type == 'number'\n        ? (isArrayLike(object) && isIndex(index, object.length))\n        : (type == 'string' && index in object)\n      ) {\n    return eq(object[index], value);\n  }\n  return false;\n}\n\nmodule.exports = isIterateeCall;\n","var baseRest = require('./_baseRest'),\n    isIterateeCall = require('./_isIterateeCall');\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n  return baseRest(function(object, sources) {\n    var index = -1,\n        length = sources.length,\n        customizer = length > 1 ? sources[length - 1] : undefined,\n        guard = length > 2 ? sources[2] : undefined;\n\n    customizer = (assigner.length > 3 && typeof customizer == 'function')\n      ? (length--, customizer)\n      : undefined;\n\n    if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n      customizer = length < 3 ? undefined : customizer;\n      length = 1;\n    }\n    object = Object(object);\n    while (++index < length) {\n      var source = sources[index];\n      if (source) {\n        assigner(object, source, index, customizer);\n      }\n    }\n    return object;\n  });\n}\n\nmodule.exports = createAssigner;\n","var baseMerge = require('./_baseMerge'),\n    createAssigner = require('./_createAssigner');\n\n/**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n *   if (_.isArray(objValue)) {\n *     return objValue.concat(srcValue);\n *   }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\nvar mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n  baseMerge(object, source, srcIndex, customizer);\n});\n\nmodule.exports = mergeWith;\n","var baseIsEqual = require('./_baseIsEqual');\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n  return baseIsEqual(value, other);\n}\n\nmodule.exports = isEqual;\n","var baseUnset = require('./_baseUnset'),\n    isIndex = require('./_isIndex');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\nfunction basePullAt(array, indexes) {\n  var length = array ? indexes.length : 0,\n      lastIndex = length - 1;\n\n  while (length--) {\n    var index = indexes[length];\n    if (length == lastIndex || index !== previous) {\n      var previous = index;\n      if (isIndex(index)) {\n        splice.call(array, index, 1);\n      } else {\n        baseUnset(array, index);\n      }\n    }\n  }\n  return array;\n}\n\nmodule.exports = basePullAt;\n","var baseIteratee = require('./_baseIteratee'),\n    basePullAt = require('./_basePullAt');\n\n/**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n *   return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\nfunction remove(array, predicate) {\n  var result = [];\n  if (!(array && array.length)) {\n    return result;\n  }\n  var index = -1,\n      indexes = [],\n      length = array.length;\n\n  predicate = baseIteratee(predicate, 3);\n  while (++index < length) {\n    var value = array[index];\n    if (predicate(value, index, array)) {\n      result.push(value);\n      indexes.push(index);\n    }\n  }\n  basePullAt(array, indexes);\n  return result;\n}\n\nmodule.exports = remove;\n","import { Ref } from 'vue';\nimport { watchArray } from '@vueuse/core';\nimport mergeWith from 'lodash/mergeWith';\nimport isEqual from 'lodash/isEqual';\nimport remove from 'lodash/remove';\nimport useMarkerLayer from './useMarkerLayer';\nimport usePolylineLayer from './usePolylineLayer';\nimport usePolygonLayer from './usePolygonLayer';\nimport useHeatLayer from './useHeatLayer';\nimport useModelLayer from './useModelLayer';\nimport useLabelLayer from './useLabelLayer';\nimport useHDRoadModelLayer from './useHDRoadModelLayer';\nimport useGridLayer from './useGridLayer';\nimport useRadiationLayer from './useRadiationLayer';\nimport useTrackLayer from './useTrackLayer';\nimport useTrafficSignalLayer from './useTrafficSignalLayer';\nimport useTrailLayer from './useTrailLayer';\nimport useBaseMapLayer from './useBaseMapLayer';\nimport useBaseServiceLayer from './useBaseServiceLayer';\nimport useDotLayer from './useDotLayer';\nimport useCircleLayer from './useCircleLayer';\nimport useMoveAlongLayer from './useMoveAlongLayer';\n\nconst LayerTypeHandlerMap = {\n  marker: useMarkerLayer,\n  polyline: usePolylineLayer,\n  polygon: usePolygonLayer,\n  heat: useHeatLayer,\n  model: useModelLayer,\n  label: useLabelLayer,\n  HDRoadModel: useHDRoadModelLayer,\n  radiation: useRadiationLayer,\n  track: useTrackLayer,\n  trail: useTrailLayer,\n  dot: useDotLayer,\n  trafficSignal: useTrafficSignalLayer,\n  baseMap: useBaseMapLayer,\n  baseService: useBaseServiceLayer,\n  circle: useCircleLayer,\n  grid: useGridLayer,\n  moveAlong: useMoveAlongLayer,\n};\n\nexport default function useLayerManager(mapInstance: LooseObject | null, layerList: Ref<MapLayer[]>): {\n  clearAllLayers?: () => void\n} {\n  if (!mapInstance) return {};\n\n  let layerMap = reactive<LooseObject>({});\n  mapInstance.layerInstanceList = mapInstance.layerInstanceList || [];\n  let { layerInstanceList } = mapInstance;\n\n  const clearAllLayers = (): void => {\n    layerInstanceList.forEach((instance: LooseObject) => {\n      instance?.unmount();\n    });\n    layerInstanceList = [];\n    mapInstance?.unWatchArray();\n    mapInstance && (mapInstance.unWatchArray = null);\n    layerMap = {};\n  };\n\n\n  const createLayer = async (layer: MapLayer) => {\n    const { type } = layer;\n    layerMap[layer.id] = layer;\n    const layerInstance = await LayerTypeHandlerMap[type]?.(mapInstance, toRef(layerMap, layer.id));\n    if (!layerInstance || typeof layerInstance !== 'object') return;\n    layerInstance.$id = layer.id;\n    layerInstanceList.push(layerInstance);\n  };\n\n\n  const clearLayersByIds = (ids: string[]): void => {\n    remove(layerInstanceList, (layerInstance: LooseObject) => {\n      if (ids.indexOf(layerInstance.$id) !== -1) {\n        delete layerMap[layerInstance.$id];\n        layerInstance?.unmount();\n        return true;\n      }\n      return false;\n    });\n  };\n\n\n  if (!mapInstance.unWatchArray) {\n    mapInstance.unWatchArray = watchArray(\n      layerList,\n      (newList: MapLayer[], oldList: MapLayer[], added: MapLayer[], removed: MapLayer[]) => {\n        if (added?.length) {\n          added.forEach((layer: MapLayer) => {\n            // 改变图层某个属性值也会变为added，此时需和原列表对比id判断是否新加的，还是仅属性改变的\n            if (oldList.map(item => item.id).indexOf(layer.id) !== -1) {\n              mergeWith(layerMap[layer.id], layer, (objValue, srcValue) => {\n                // 当数据类型为数组且值变化时，直接使用新的数组\n                if (Array.isArray(objValue) && !isEqual(objValue, srcValue)) {\n                  return srcValue;\n                }\n              });\n              return;\n            }\n            createLayer(layer);\n          });\n        }\n        if (removed?.length) {\n          const removeIds: string[] = [];\n          removed.forEach((removeItem) => {\n            if (newList.map(item => item.id).indexOf(removeItem.id) !== -1) return;\n            removeIds.push(removeItem.id);\n          });\n          clearLayersByIds(removeIds);\n        }\n      }, { deep: true },\n    );\n  }\n\n  // 如果新建过图层则不会重复创建图层，有watchArray中逻辑处理图层的变化\n  if (!layerInstanceList.length) {\n    layerList.value.forEach((layer: MapLayer) => {\n      createLayer(layer);\n    });\n  }\n\n  return {\n    clearAllLayers,\n  };\n}\n"],"names":["isVue2","isVue3","Vue2","install","set","del","__defProp$9","__defProps$6","__getOwnPropDescs$6","__getOwnPropSymbols$b","__hasOwnProp$b","__propIsEnum$b","__defNormalProp$9","__spreadValues$9","__spreadProps$6","isFunction","isObject","identity","__defProp$8","__getOwnPropSymbols$a","__hasOwnProp$a","__propIsEnum$a","__defNormalProp$8","__spreadValues$8","set$1","__defProp$7","__defProps$5","__getOwnPropDescs$5","__getOwnPropSymbols$9","__hasOwnProp$9","__propIsEnum$9","__defNormalProp$7","__spreadValues$7","__spreadProps$5","__defProp$6","__getOwnPropSymbols$8","__hasOwnProp$8","__propIsEnum$8","__defNormalProp$6","__spreadValues$6","__defProp$5","__getOwnPropSymbols$7","__hasOwnProp$7","__propIsEnum$7","__defNormalProp$5","__spreadValues$5","__getOwnPropSymbols$6","__hasOwnProp$6","__propIsEnum$6","__getOwnPropSymbols$5","__hasOwnProp$5","__propIsEnum$5","__defProp$4","__defProps$4","__getOwnPropDescs$4","__getOwnPropSymbols$4","__hasOwnProp$4","__propIsEnum$4","__defNormalProp$4","__spreadValues$4","__spreadProps$4","__defProp$3","__defProps$3","__getOwnPropDescs$3","__getOwnPropSymbols$3","__hasOwnProp$3","__propIsEnum$3","__defNormalProp$3","__spreadValues$3","__spreadProps$3","__objRest$2","__defProp$2","__defProps$2","__getOwnPropDescs$2","__getOwnPropSymbols$2","__hasOwnProp$2","__propIsEnum$2","__defNormalProp$2","__spreadValues$2","__spreadProps$2","__objRest$1","__defProp$1","__defProps$1","__getOwnPropDescs$1","__getOwnPropSymbols$1","__hasOwnProp$1","__propIsEnum$1","__defNormalProp$1","__spreadValues$1","__spreadProps$1","__objRest","__defProp","__defProps","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","__spreadValues","__spreadProps","pausableWatch","baseAssignValue","require","eq","assignMergeValue","object","key","value","undefined","module","isArrayLike","isObjectLike","isArrayLikeObject","safeGet","copyObject","keysIn","toPlainObject","cloneBuffer","cloneTypedArray","copyArray","initCloneObject","isArguments","isArray","isBuffer","isPlainObject","isTypedArray","baseMergeDeep","source","srcIndex","mergeFunc","customizer","stack","objValue","srcValue","stacked","get","newValue","isCommon","isArr","isBuff","isTyped","Stack","baseFor","baseMerge","overRest","setToString","baseRest","func","start","isIndex","isIterateeCall","index","type","length","createAssigner","assigner","sources","guard","Object","mergeWith","baseIsEqual","isEqual","other","baseUnset","arrayProto","Array","prototype","splice","basePullAt","array","indexes","lastIndex","previous","call","baseIteratee","remove","predicate","result","push","LayerTypeHandlerMap","marker","useMarkerLayer","polyline","usePolylineLayer","polygon","usePolygonLayer","heat","useHeatLayer","model","useModelLayer","label","useLabelLayer","HDRoadModel","useHDRoadModelLayer","radiation","useRadiationLayer","track","useTrackLayer","trail","useTrailLayer","dot","useDotLayer","trafficSignal","useTrafficSignalLayer","baseMap","useBaseMapLayer","baseService","useBaseServiceLayer","circle","useCircleLayer","grid","useGridLayer","moveAlong","useMoveAlongLayer","useLayerManager","mapInstance","layerList","layerMap","reactive","layerInstanceList","clearAllLayers","forEach","instance","unmount","unWatchArray","createLayer","layer","id","layerInstance","toRef","$id","clearLayersByIds","ids","indexOf","watchArray","newList","oldList","added","removed","map","item","removeIds","removeItem","deep"],"mappings":"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"}