ose-app 0.2.5__py3-none-any.whl → 0.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ose_app/static/js/admin.js +0 -1
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js +0 -1
- ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js +0 -1
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js +0 -1
- ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
- ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js +0 -1
- ose_app/static/js/chunks/constants-CzBHF1EN.js +0 -1
- ose_app/static/js/chunks/filter-CiYqP1_r.js +0 -1
- ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js +0 -1
- ose_app/static/js/editor.js +0 -1
- ose_app/static/js/release.js +0 -1
- ose_app/static/js/settings.js +0 -1
- ose_app/static/js/visualise.js +2 -3
- {ose_app-0.2.5.dist-info → ose_app-0.3.0.dist-info}/METADATA +2 -2
- {ose_app-0.2.5.dist-info → ose_app-0.3.0.dist-info}/RECORD +17 -57
- ose_app/static/excel-bootstrap-table-filter-bundle.js.map +0 -1
- ose_app/static/excel-bootstrap-table-filter-bundle.min.js.map +0 -1
- ose_app/static/js/admin.js.map +0 -1
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-BDr_frBe.js.map +0 -1
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js +0 -2
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-CgGO-ddH-MonxH8xj.js.map +0 -1
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js +0 -2
- ose_app/static/js/chunks/BToastOrchestrator.vue_vue_type_style_index_0_lang-DKAZyKKr-DTksKjtf.js.map +0 -1
- ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js +0 -2
- ose_app/static/js/chunks/CollapsibleCard-BQR8R54V.js.map +0 -1
- ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js +0 -2
- ose_app/static/js/chunks/CollapsibleCard-DgwkQKDg.js.map +0 -1
- ose_app/static/js/chunks/CollapsibleCard-DoX0kPCZ.js.map +0 -1
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-CBzsmnqW.js.map +0 -1
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js +0 -43
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-EcINi797.js.map +0 -1
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js +0 -43
- ose_app/static/js/chunks/Diagnostic.vue_vue_type_script_setup_true_lang-bumDOBqD.js.map +0 -1
- ose_app/static/js/chunks/_plugin-vue_export-helper-DlAUqK2U.js.map +0 -1
- ose_app/static/js/chunks/bootbox-D3SJ_Fwv.js.map +0 -1
- ose_app/static/js/chunks/constants-CzBHF1EN.js.map +0 -1
- ose_app/static/js/chunks/constants-DL6Hx3V0.js +0 -2
- ose_app/static/js/chunks/constants-DL6Hx3V0.js.map +0 -1
- ose_app/static/js/chunks/constants-DPgwRV4l.js +0 -2
- ose_app/static/js/chunks/constants-DPgwRV4l.js.map +0 -1
- ose_app/static/js/chunks/filter-Bx-PU1OL.js +0 -18
- ose_app/static/js/chunks/filter-Bx-PU1OL.js.map +0 -1
- ose_app/static/js/chunks/filter-CdAXK93b.js +0 -18
- ose_app/static/js/chunks/filter-CdAXK93b.js.map +0 -1
- ose_app/static/js/chunks/filter-CiYqP1_r.js.map +0 -1
- ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js +0 -2
- ose_app/static/js/chunks/index-sLCKmIWG-B5BYNF2N.js.map +0 -1
- ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js +0 -9
- ose_app/static/js/chunks/index-sLCKmIWG-Cb9lQq-c.js.map +0 -1
- ose_app/static/js/chunks/index-sLCKmIWG-umQeu_-w.js.map +0 -1
- ose_app/static/js/editor.js.map +0 -1
- ose_app/static/js/release.js.map +0 -1
- ose_app/static/js/settings.js.map +0 -1
- ose_app/static/js/visualise.js.map +0 -1
- ose_app/static/main.css.map +0 -7
- {ose_app-0.2.5.dist-info → ose_app-0.3.0.dist-info}/WHEEL +0 -0
- {ose_app-0.2.5.dist-info → ose_app-0.3.0.dist-info}/top_level.txt +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-sLCKmIWG-umQeu_-w.js","sources":["../../../../../../../node_modules/bootstrap-vue-next/dist/keys-41Cw9q6f.mjs","../../../../../../../node_modules/bootstrap-vue-next/dist/index-D3jGjWWk.mjs","../../../../../../../node_modules/bootstrap-vue-next/dist/index-Bkyn4R9C.mjs","../../../../../../../node_modules/bootstrap-vue-next/dist/useSafeScrollLock-DjG0jeMK.mjs","../../../../../../../node_modules/bootstrap-vue-next/dist/BTable.vue_vue_type_script_setup_true_lang-CiThwOJO.mjs","../../../../../../../node_modules/bootstrap-vue-next/dist/index-sLCKmIWG.mjs"],"sourcesContent":["const withBvnPrefix = (value, suffix = \"\") => {\n const suffixWithTrail = `${suffix}___`;\n return `___BVN__ID__${value}__${suffix ? suffixWithTrail : \"\"}`;\n};\nconst createBvnInjectionKey = (name) => withBvnPrefix(name);\nconst createBvnPluginInjectionKey = (name) => withBvnPrefix(`${name}__plugin`);\nconst carouselInjectionKey = createBvnInjectionKey(\"carousel\");\nconst tabsInjectionKey = createBvnInjectionKey(\"tabs\");\nconst progressInjectionKey = createBvnInjectionKey(\"progress\");\nconst listGroupInjectionKey = createBvnInjectionKey(\"listGroup\");\nconst avatarGroupInjectionKey = createBvnInjectionKey(\"avatarGroup\");\nconst accordionInjectionKey = createBvnInjectionKey(\"accordion\");\nconst checkboxGroupKey = createBvnInjectionKey(\"checkboxGroup\");\nconst radioGroupKey = createBvnInjectionKey(\"radioGroup\");\nconst collapseInjectionKey = createBvnInjectionKey(\"collapse\");\nconst globalShowHideStorageInjectionKey = createBvnPluginInjectionKey(\"globalShowHideStorage\");\nconst dropdownInjectionKey = createBvnInjectionKey(\"dropdown\");\nconst navbarInjectionKey = createBvnInjectionKey(\"navbar\");\nconst rtlPluginKey = createBvnPluginInjectionKey(\"rtl\");\nconst breadcrumbPluginKey = createBvnPluginInjectionKey(\"breadcrumbPlugin\");\nconst modalManagerPluginKey = createBvnPluginInjectionKey(\"modalManager\");\nconst defaultsKey = createBvnPluginInjectionKey(\"defaults\");\nconst inputGroupKey = createBvnInjectionKey(\"inputGroup\");\nconst buttonGroupKey = createBvnInjectionKey(\"buttonGroup\");\nconst toastPluginKey = createBvnPluginInjectionKey(\"toast\");\nconst modalControllerPluginKey = createBvnPluginInjectionKey(\"modalController\");\nconst popoverPluginKey = createBvnPluginInjectionKey(\"popover\");\nconst formGroupPluginKey = createBvnInjectionKey(\"formGroupPlugin\");\nexport {\n modalManagerPluginKey as a,\n breadcrumbPluginKey as b,\n collapseInjectionKey as c,\n defaultsKey as d,\n accordionInjectionKey as e,\n avatarGroupInjectionKey as f,\n globalShowHideStorageInjectionKey as g,\n buttonGroupKey as h,\n checkboxGroupKey as i,\n formGroupPluginKey as j,\n radioGroupKey as k,\n inputGroupKey as l,\n modalControllerPluginKey as m,\n listGroupInjectionKey as n,\n progressInjectionKey as o,\n popoverPluginKey as p,\n tabsInjectionKey as q,\n rtlPluginKey as r,\n carouselInjectionKey as s,\n toastPluginKey as t,\n dropdownInjectionKey as u,\n navbarInjectionKey as v,\n withBvnPrefix as w\n};\n//# sourceMappingURL=keys-41Cw9q6f.mjs.map\n","import { ref, isRef, watch, computed, getCurrentScope, onScopeDispose, effectScope, unref, readonly, toRef as toRef$1, customRef, onMounted, nextTick, getCurrentInstance } from \"vue\";\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\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 (!scope) {\n scope = effectScope(true);\n state = scope.run(() => composable(...args));\n }\n tryOnScopeDispose(dispose);\n return state;\n };\n}\nfunction makeDestructurable(obj, arr) {\n if (typeof Symbol !== \"undefined\") {\n const clone = { ...obj };\n Object.defineProperty(clone, Symbol.iterator, {\n enumerable: false,\n value() {\n let index = 0;\n return {\n next: () => ({\n value: arr[index++],\n done: index > arr.length\n })\n };\n }\n });\n return clone;\n } else {\n return Object.assign([...arr], obj);\n }\n}\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\nconst isClient = typeof window !== \"undefined\" && typeof document !== \"undefined\";\ntypeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst notNullish = (val) => val != null;\nconst toString = Object.prototype.toString;\nconst isObject = (val) => toString.call(val) === \"[object Object]\";\nconst timestamp = () => +Date.now();\nconst noop = () => {\n};\nconst isIOS = /* @__PURE__ */ getIsIOS();\nfunction getIsIOS() {\n var _a, _b;\n return isClient && ((_a = window == null ? void 0 : window.navigator) == null ? void 0 : _a.userAgent) && (/iP(?:ad|hone|od)/.test(window.navigator.userAgent) || ((_b = window == null ? void 0 : window.navigator) == null ? void 0 : _b.maxTouchPoints) > 2 && /iPad|Macintosh/.test(window == null ? void 0 : window.navigator.userAgent));\n}\nfunction createFilterWrapper(filter, fn) {\n function wrapper(...args) {\n return new Promise((resolve, reject) => {\n Promise.resolve(filter(() => fn.apply(this, args), { fn, thisArg: this, args })).then(resolve).catch(reject);\n });\n }\n return wrapper;\n}\nconst bypassFilter = (invoke) => {\n return invoke();\n};\nfunction debounceFilter(ms, options = {}) {\n let timer;\n let maxTimer;\n let lastRejector = noop;\n const _clearTimeout = (timer2) => {\n clearTimeout(timer2);\n lastRejector();\n lastRejector = noop;\n };\n const filter = (invoke) => {\n const duration = toValue(ms);\n const maxDuration = toValue(options.maxWait);\n if (timer)\n _clearTimeout(timer);\n if (duration <= 0 || maxDuration !== void 0 && maxDuration <= 0) {\n if (maxTimer) {\n _clearTimeout(maxTimer);\n maxTimer = null;\n }\n return Promise.resolve(invoke());\n }\n return new Promise((resolve, reject) => {\n lastRejector = options.rejectOnCancel ? reject : resolve;\n if (maxDuration && !maxTimer) {\n maxTimer = setTimeout(() => {\n if (timer)\n _clearTimeout(timer);\n maxTimer = null;\n resolve(invoke());\n }, maxDuration);\n }\n timer = setTimeout(() => {\n if (maxTimer)\n _clearTimeout(maxTimer);\n maxTimer = null;\n resolve(invoke());\n }, duration);\n });\n };\n return filter;\n}\nfunction throttleFilter(...args) {\n let lastExec = 0;\n let timer;\n let isLeading = true;\n let lastRejector = noop;\n let lastValue;\n let ms;\n let trailing;\n let leading;\n let rejectOnCancel;\n if (!isRef(args[0]) && typeof args[0] === \"object\")\n ({ delay: ms, trailing = true, leading = true, rejectOnCancel = false } = args[0]);\n else\n [ms, trailing = true, leading = true, rejectOnCancel = false] = args;\n const clear = () => {\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n lastRejector();\n lastRejector = noop;\n }\n };\n const filter = (_invoke) => {\n const duration = toValue(ms);\n const elapsed = Date.now() - lastExec;\n const invoke = () => {\n return lastValue = _invoke();\n };\n clear();\n if (duration <= 0) {\n lastExec = Date.now();\n return invoke();\n }\n if (elapsed > duration && (leading || !isLeading)) {\n lastExec = Date.now();\n invoke();\n } else if (trailing) {\n lastValue = new Promise((resolve, reject) => {\n lastRejector = rejectOnCancel ? reject : resolve;\n timer = setTimeout(() => {\n lastExec = Date.now();\n isLeading = true;\n resolve(invoke());\n clear();\n }, Math.max(0, duration - elapsed));\n });\n }\n if (!leading && !timer)\n timer = setTimeout(() => isLeading = true, duration);\n isLeading = false;\n return lastValue;\n };\n return filter;\n}\nfunction pausableFilter(extendFilter = bypassFilter) {\n const isActive = ref(true);\n function pause() {\n isActive.value = false;\n }\n function resume() {\n isActive.value = true;\n }\n const eventFilter = (...args) => {\n if (isActive.value)\n extendFilter(...args);\n };\n return { isActive: readonly(isActive), pause, resume, eventFilter };\n}\nfunction cacheStringFunction(fn) {\n const cache = /* @__PURE__ */ Object.create(null);\n return (str) => {\n const hit = cache[str];\n return hit || (cache[str] = fn(str));\n };\n}\nconst camelizeRE = /-(\\w)/g;\nconst camelize = cacheStringFunction((str) => {\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : \"\");\n});\nfunction increaseWithUnit(target, delta) {\n var _a;\n if (typeof target === \"number\")\n return target + delta;\n const value = ((_a = target.match(/^-?\\d+\\.?\\d*/)) == null ? void 0 : _a[0]) || \"\";\n const unit = target.slice(value.length);\n const result = Number.parseFloat(value) + delta;\n if (Number.isNaN(result))\n return target;\n return result + unit;\n}\nfunction getLifeCycleTarget(target) {\n return getCurrentInstance();\n}\nfunction toRef(...args) {\n if (args.length !== 1)\n return toRef$1(...args);\n const r = args[0];\n return typeof r === \"function\" ? readonly(customRef(() => ({ get: r, set: noop }))) : ref(r);\n}\nfunction useDebounceFn(fn, ms = 200, options = {}) {\n return createFilterWrapper(\n debounceFilter(ms, options),\n fn\n );\n}\nfunction useThrottleFn(fn, ms = 200, trailing = false, leading = true, rejectOnCancel = false) {\n return createFilterWrapper(\n throttleFilter(ms, trailing, leading, rejectOnCancel),\n fn\n );\n}\nfunction watchWithFilter(source, cb, options = {}) {\n const {\n eventFilter = bypassFilter,\n ...watchOptions\n } = options;\n return watch(\n source,\n createFilterWrapper(\n eventFilter,\n cb\n ),\n watchOptions\n );\n}\nfunction watchPausable(source, cb, options = {}) {\n const {\n eventFilter: filter,\n ...watchOptions\n } = options;\n const { eventFilter, pause, resume, isActive } = pausableFilter(filter);\n const stop = watchWithFilter(\n source,\n cb,\n {\n ...watchOptions,\n eventFilter\n }\n );\n return { stop, pause, resume, isActive };\n}\nfunction syncRef(left, right, ...[options]) {\n const {\n flush = \"sync\",\n deep = false,\n immediate = true,\n direction = \"both\",\n transform = {}\n } = options || {};\n const watchers = [];\n const transformLTR = \"ltr\" in transform && transform.ltr || ((v) => v);\n const transformRTL = \"rtl\" in transform && transform.rtl || ((v) => v);\n if (direction === \"both\" || direction === \"ltr\") {\n watchers.push(watchPausable(\n left,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n right.value = transformLTR(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n if (direction === \"both\" || direction === \"rtl\") {\n watchers.push(watchPausable(\n right,\n (newValue) => {\n watchers.forEach((w) => w.pause());\n left.value = transformRTL(newValue);\n watchers.forEach((w) => w.resume());\n },\n { flush, deep, immediate }\n ));\n }\n const stop = () => {\n watchers.forEach((w) => w.stop());\n };\n return stop;\n}\nfunction tryOnMounted(fn, sync = true, target) {\n const instance = getLifeCycleTarget();\n if (instance)\n onMounted(fn, target);\n else if (sync)\n fn();\n else\n nextTick(fn);\n}\nfunction useIntervalFn(cb, interval = 1e3, options = {}) {\n const {\n immediate = true,\n immediateCallback = false\n } = options;\n let timer = null;\n const isActive = ref(false);\n function clean() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n }\n function pause() {\n isActive.value = false;\n clean();\n }\n function resume() {\n const intervalValue = toValue(interval);\n if (intervalValue <= 0)\n return;\n isActive.value = true;\n if (immediateCallback)\n cb();\n clean();\n if (isActive.value)\n timer = setInterval(cb, intervalValue);\n }\n if (immediate && isClient)\n resume();\n if (isRef(interval) || typeof interval === \"function\") {\n const stopWatch = watch(interval, () => {\n if (isActive.value && isClient)\n resume();\n });\n tryOnScopeDispose(stopWatch);\n }\n tryOnScopeDispose(pause);\n return {\n isActive,\n pause,\n resume\n };\n}\nfunction useToNumber(value, options = {}) {\n const {\n method = \"parseFloat\",\n radix,\n nanToZero\n } = options;\n return computed(() => {\n let resolved = toValue(value);\n if (typeof resolved === \"string\")\n resolved = Number[method](resolved, radix);\n if (nanToZero && Number.isNaN(resolved))\n resolved = 0;\n return resolved;\n });\n}\nexport {\n isObject as a,\n tryOnScopeDispose as b,\n notNullish as c,\n increaseWithUnit as d,\n toRef as e,\n tryOnMounted as f,\n timestamp as g,\n useIntervalFn as h,\n isIOS as i,\n camelize as j,\n isClient as k,\n useThrottleFn as l,\n makeDestructurable as m,\n noop as n,\n useDebounceFn as o,\n createSharedComposable as p,\n syncRef as s,\n toValue as t,\n useToNumber as u,\n watchPausable as w\n};\n//# sourceMappingURL=index-D3jGjWWk.mjs.map\n","import { m as makeDestructurable, n as noop, i as isIOS, t as toValue, a as isObject, b as tryOnScopeDispose, c as notNullish, d as increaseWithUnit, e as toRef, f as tryOnMounted, g as timestamp, h as useIntervalFn, j as camelize, k as isClient, w as watchPausable } from \"./index-D3jGjWWk.mjs\";\nimport { shallowRef, computed, ref, watch, reactive, watchEffect, defineComponent, readonly, nextTick, getCurrentInstance, onMounted } from \"vue\";\nfunction createReusableTemplate(options = {}) {\n const {\n inheritAttrs = true\n } = options;\n const render = shallowRef();\n const define = /* @__PURE__ */ defineComponent({\n setup(_, { slots }) {\n return () => {\n render.value = slots.default;\n };\n }\n });\n const reuse = /* @__PURE__ */ defineComponent({\n inheritAttrs,\n setup(_, { attrs, slots }) {\n return () => {\n var _a;\n if (!render.value && process.env.NODE_ENV !== \"production\")\n throw new Error(\"[VueUse] Failed to find the definition of reusable template\");\n const vnode = (_a = render.value) == null ? void 0 : _a.call(render, { ...keysToCamelKebabCase(attrs), $slots: slots });\n return inheritAttrs && (vnode == null ? void 0 : vnode.length) === 1 ? vnode[0] : vnode;\n };\n }\n });\n return makeDestructurable(\n { define, reuse },\n [define, reuse]\n );\n}\nfunction keysToCamelKebabCase(obj) {\n const newObj = {};\n for (const key in obj)\n newObj[camelize(key)] = obj[key];\n return newObj;\n}\nconst defaultWindow = isClient ? window : void 0;\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\nfunction useEventListener(...args) {\n let target;\n let events;\n let listeners;\n let options;\n if (typeof args[0] === \"string\" || Array.isArray(args[0])) {\n [events, listeners, options] = args;\n target = defaultWindow;\n } else {\n [target, events, listeners, options] = args;\n }\n if (!target)\n return noop;\n if (!Array.isArray(events))\n events = [events];\n if (!Array.isArray(listeners))\n listeners = [listeners];\n const cleanups = [];\n const cleanup = () => {\n cleanups.forEach((fn) => fn());\n cleanups.length = 0;\n };\n const register = (el, event, listener, options2) => {\n el.addEventListener(event, listener, options2);\n return () => el.removeEventListener(event, listener, options2);\n };\n const stopWatch = watch(\n () => [unrefElement(target), toValue(options)],\n ([el, options2]) => {\n cleanup();\n if (!el)\n return;\n const optionsClone = isObject(options2) ? { ...options2 } : options2;\n cleanups.push(\n ...events.flatMap((event) => {\n return listeners.map((listener) => register(el, event, listener, optionsClone));\n })\n );\n },\n { immediate: true, flush: \"post\" }\n );\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return stop;\n}\nlet _iOSWorkaround = false;\nfunction onClickOutside(target, handler, options = {}) {\n const { window: window2 = defaultWindow, ignore = [], capture = true, detectIframe = false } = options;\n if (!window2)\n return noop;\n if (isIOS && !_iOSWorkaround) {\n _iOSWorkaround = true;\n Array.from(window2.document.body.children).forEach((el) => el.addEventListener(\"click\", noop));\n window2.document.documentElement.addEventListener(\"click\", noop);\n }\n let shouldListen = true;\n const shouldIgnore = (event) => {\n return toValue(ignore).some((target2) => {\n if (typeof target2 === \"string\") {\n return Array.from(window2.document.querySelectorAll(target2)).some((el) => el === event.target || event.composedPath().includes(el));\n } else {\n const el = unrefElement(target2);\n return el && (event.target === el || event.composedPath().includes(el));\n }\n });\n };\n function hasMultipleRoots(target2) {\n const vm = toValue(target2);\n return vm && vm.$.subTree.shapeFlag === 16;\n }\n function checkMultipleRoots(target2, event) {\n const vm = toValue(target2);\n const children = vm.$.subTree && vm.$.subTree.children;\n if (children == null || !Array.isArray(children))\n return false;\n return children.some((child) => child.el === event.target || event.composedPath().includes(child.el));\n }\n const listener = (event) => {\n const el = unrefElement(target);\n if (event.target == null)\n return;\n if (!(el instanceof Element) && hasMultipleRoots(target) && checkMultipleRoots(target, event))\n return;\n if (!el || el === event.target || event.composedPath().includes(el))\n return;\n if (event.detail === 0)\n shouldListen = !shouldIgnore(event);\n if (!shouldListen) {\n shouldListen = true;\n return;\n }\n handler(event);\n };\n let isProcessingClick = false;\n const cleanup = [\n useEventListener(window2, \"click\", (event) => {\n if (!isProcessingClick) {\n isProcessingClick = true;\n setTimeout(() => {\n isProcessingClick = false;\n }, 0);\n listener(event);\n }\n }, { passive: true, capture }),\n useEventListener(window2, \"pointerdown\", (e) => {\n const el = unrefElement(target);\n shouldListen = !shouldIgnore(e) && !!(el && !e.composedPath().includes(el));\n }, { passive: true }),\n detectIframe && useEventListener(window2, \"blur\", (event) => {\n setTimeout(() => {\n var _a;\n const el = unrefElement(target);\n if (((_a = window2.document.activeElement) == null ? void 0 : _a.tagName) === \"IFRAME\" && !(el == null ? void 0 : el.contains(window2.document.activeElement))) {\n handler(event);\n }\n }, 0);\n })\n ].filter(Boolean);\n const stop = () => cleanup.forEach((fn) => fn());\n return stop;\n}\nfunction createKeyPredicate(keyFilter) {\n if (typeof keyFilter === \"function\")\n return keyFilter;\n else if (typeof keyFilter === \"string\")\n return (event) => event.key === keyFilter;\n else if (Array.isArray(keyFilter))\n return (event) => keyFilter.includes(event.key);\n return () => true;\n}\nfunction onKeyStroke(...args) {\n let key;\n let handler;\n let options = {};\n if (args.length === 3) {\n key = args[0];\n handler = args[1];\n options = args[2];\n } else if (args.length === 2) {\n if (typeof args[1] === \"object\") {\n key = true;\n handler = args[0];\n options = args[1];\n } else {\n key = args[0];\n handler = args[1];\n }\n } else {\n key = true;\n handler = args[0];\n }\n const {\n target = defaultWindow,\n eventName = \"keydown\",\n passive = false,\n dedupe = false\n } = options;\n const predicate = createKeyPredicate(key);\n const listener = (e) => {\n if (e.repeat && toValue(dedupe))\n return;\n if (predicate(e))\n handler(e);\n };\n return useEventListener(target, eventName, listener, passive);\n}\nfunction useMounted() {\n const isMounted = ref(false);\n const instance = getCurrentInstance();\n if (instance) {\n onMounted(() => {\n isMounted.value = true;\n }, instance);\n }\n return isMounted;\n}\nfunction useSupported(callback) {\n const isMounted = useMounted();\n return computed(() => {\n isMounted.value;\n return Boolean(callback());\n });\n}\nfunction useMutationObserver(target, callback, options = {}) {\n const { window: window2 = defaultWindow, ...mutationOptions } = options;\n let observer;\n const isSupported = useSupported(() => window2 && \"MutationObserver\" in window2);\n const cleanup = () => {\n if (observer) {\n observer.disconnect();\n observer = void 0;\n }\n };\n const targets = computed(() => {\n const value = toValue(target);\n const items = (Array.isArray(value) ? value : [value]).map(unrefElement).filter(notNullish);\n return new Set(items);\n });\n const stopWatch = watch(\n () => targets.value,\n (targets2) => {\n cleanup();\n if (isSupported.value && targets2.size) {\n observer = new MutationObserver(callback);\n targets2.forEach((el) => observer.observe(el, mutationOptions));\n }\n },\n { immediate: true, flush: \"post\" }\n );\n const takeRecords = () => {\n return observer == null ? void 0 : observer.takeRecords();\n };\n const stop = () => {\n stopWatch();\n cleanup();\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n stop,\n takeRecords\n };\n}\nfunction useRafFn(fn, options = {}) {\n const {\n immediate = true,\n fpsLimit = void 0,\n window: window2 = defaultWindow\n } = options;\n const isActive = ref(false);\n const intervalLimit = fpsLimit ? 1e3 / fpsLimit : null;\n let previousFrameTimestamp = 0;\n let rafId = null;\n function loop(timestamp2) {\n if (!isActive.value || !window2)\n return;\n if (!previousFrameTimestamp)\n previousFrameTimestamp = timestamp2;\n const delta = timestamp2 - previousFrameTimestamp;\n if (intervalLimit && delta < intervalLimit) {\n rafId = window2.requestAnimationFrame(loop);\n return;\n }\n previousFrameTimestamp = timestamp2;\n fn({ delta, timestamp: timestamp2 });\n rafId = window2.requestAnimationFrame(loop);\n }\n function resume() {\n if (!isActive.value && window2) {\n isActive.value = true;\n previousFrameTimestamp = 0;\n rafId = window2.requestAnimationFrame(loop);\n }\n }\n function pause() {\n isActive.value = false;\n if (rafId != null && window2) {\n window2.cancelAnimationFrame(rafId);\n rafId = null;\n }\n }\n if (immediate)\n resume();\n tryOnScopeDispose(pause);\n return {\n isActive: readonly(isActive),\n pause,\n resume\n };\n}\nfunction useMediaQuery(query, options = {}) {\n const { window: window2 = defaultWindow } = options;\n const isSupported = useSupported(() => window2 && \"matchMedia\" in window2 && typeof window2.matchMedia === \"function\");\n let mediaQuery;\n const matches = ref(false);\n const handler = (event) => {\n matches.value = event.matches;\n };\n const cleanup = () => {\n if (!mediaQuery)\n return;\n if (\"removeEventListener\" in mediaQuery)\n mediaQuery.removeEventListener(\"change\", handler);\n else\n mediaQuery.removeListener(handler);\n };\n const stopWatch = watchEffect(() => {\n if (!isSupported.value)\n return;\n cleanup();\n mediaQuery = window2.matchMedia(toValue(query));\n if (\"addEventListener\" in mediaQuery)\n mediaQuery.addEventListener(\"change\", handler);\n else\n mediaQuery.addListener(handler);\n matches.value = mediaQuery.matches;\n });\n tryOnScopeDispose(() => {\n stopWatch();\n cleanup();\n mediaQuery = void 0;\n });\n return matches;\n}\nconst breakpointsBootstrapV5 = {\n xs: 0,\n sm: 576,\n md: 768,\n lg: 992,\n xl: 1200,\n xxl: 1400\n};\nfunction useBreakpoints(breakpoints, options = {}) {\n function getValue(k, delta) {\n let v = toValue(breakpoints[toValue(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: window2 = defaultWindow, strategy = \"min-width\" } = options;\n function match(query) {\n if (!window2)\n return false;\n return window2.matchMedia(query).matches;\n }\n const greaterOrEqual = (k) => {\n return useMediaQuery(() => `(min-width: ${getValue(k)})`, options);\n };\n const smallerOrEqual = (k) => {\n return useMediaQuery(() => `(max-width: ${getValue(k)})`, options);\n };\n const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {\n Object.defineProperty(shortcuts, k, {\n get: () => strategy === \"min-width\" ? greaterOrEqual(k) : smallerOrEqual(k),\n enumerable: true,\n configurable: true\n });\n return shortcuts;\n }, {});\n function current() {\n const points = Object.keys(breakpoints).map((i) => [i, greaterOrEqual(i)]);\n return computed(() => points.filter(([, v]) => v.value).map(([k]) => k));\n }\n return Object.assign(shortcutMethods, {\n greaterOrEqual,\n smallerOrEqual,\n greater(k) {\n return useMediaQuery(() => `(min-width: ${getValue(k, 0.1)})`, options);\n },\n smaller(k) {\n return useMediaQuery(() => `(max-width: ${getValue(k, -0.1)})`, options);\n },\n between(a, b) {\n return useMediaQuery(() => `(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`, options);\n },\n isGreater(k) {\n return match(`(min-width: ${getValue(k, 0.1)})`);\n },\n isGreaterOrEqual(k) {\n return match(`(min-width: ${getValue(k)})`);\n },\n isSmaller(k) {\n return match(`(max-width: ${getValue(k, -0.1)})`);\n },\n isSmallerOrEqual(k) {\n return match(`(max-width: ${getValue(k)})`);\n },\n isInBetween(a, b) {\n return match(`(min-width: ${getValue(a)}) and (max-width: ${getValue(b, -0.1)})`);\n },\n current,\n active() {\n const bps = current();\n return computed(() => bps.value.length === 0 ? \"\" : bps.value.at(-1));\n }\n });\n}\nconst _global = typeof globalThis !== \"undefined\" ? globalThis : typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : {};\nconst globalKey = \"__vueuse_ssr_handlers__\";\nconst handlers = /* @__PURE__ */ getHandlers();\nfunction getHandlers() {\n if (!(globalKey in _global))\n _global[globalKey] = _global[globalKey] || {};\n return _global[globalKey];\n}\nfunction getSSRHandler(key, fallback) {\n return handlers[key] || fallback;\n}\nfunction usePreferredDark(options) {\n return useMediaQuery(\"(prefers-color-scheme: dark)\", options);\n}\nfunction guessSerializerType(rawInit) {\n return rawInit == null ? \"any\" : rawInit instanceof Set ? \"set\" : rawInit instanceof Map ? \"map\" : rawInit instanceof Date ? \"date\" : typeof rawInit === \"boolean\" ? \"boolean\" : typeof rawInit === \"string\" ? \"string\" : typeof rawInit === \"object\" ? \"object\" : !Number.isNaN(rawInit) ? \"number\" : \"any\";\n}\nconst StorageSerializers = {\n boolean: {\n read: (v) => v === \"true\",\n write: (v) => String(v)\n },\n object: {\n read: (v) => JSON.parse(v),\n write: (v) => JSON.stringify(v)\n },\n number: {\n read: (v) => Number.parseFloat(v),\n write: (v) => String(v)\n },\n any: {\n read: (v) => v,\n write: (v) => String(v)\n },\n string: {\n read: (v) => v,\n write: (v) => String(v)\n },\n map: {\n read: (v) => new Map(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v.entries()))\n },\n set: {\n read: (v) => new Set(JSON.parse(v)),\n write: (v) => JSON.stringify(Array.from(v))\n },\n date: {\n read: (v) => new Date(v),\n write: (v) => v.toISOString()\n }\n};\nconst customStorageEventName = \"vueuse-storage\";\nfunction useStorage(key, defaults, storage, options = {}) {\n var _a;\n const {\n flush = \"pre\",\n deep = true,\n listenToStorageChanges = true,\n writeDefaults = true,\n mergeDefaults = false,\n shallow,\n window: window2 = defaultWindow,\n eventFilter,\n onError = (e) => {\n console.error(e);\n },\n initOnMounted\n } = options;\n const data = (shallow ? shallowRef : ref)(typeof defaults === \"function\" ? defaults() : defaults);\n if (!storage) {\n try {\n storage = getSSRHandler(\"getDefaultStorage\", () => {\n var _a2;\n return (_a2 = defaultWindow) == null ? void 0 : _a2.localStorage;\n })();\n } catch (e) {\n onError(e);\n }\n }\n if (!storage)\n return data;\n const rawInit = toValue(defaults);\n const type = guessSerializerType(rawInit);\n const serializer = (_a = options.serializer) != null ? _a : StorageSerializers[type];\n const { pause: pauseWatch, resume: resumeWatch } = watchPausable(\n data,\n () => write(data.value),\n { flush, deep, eventFilter }\n );\n if (window2 && listenToStorageChanges) {\n tryOnMounted(() => {\n if (storage instanceof Storage)\n useEventListener(window2, \"storage\", update);\n else\n useEventListener(window2, customStorageEventName, updateFromCustomEvent);\n if (initOnMounted)\n update();\n });\n }\n if (!initOnMounted)\n update();\n function dispatchWriteEvent(oldValue, newValue) {\n if (window2) {\n const payload = {\n key,\n oldValue,\n newValue,\n storageArea: storage\n };\n window2.dispatchEvent(storage instanceof Storage ? new StorageEvent(\"storage\", payload) : new CustomEvent(customStorageEventName, {\n detail: payload\n }));\n }\n }\n function write(v) {\n try {\n const oldValue = storage.getItem(key);\n if (v == null) {\n dispatchWriteEvent(oldValue, null);\n storage.removeItem(key);\n } else {\n const serialized = serializer.write(v);\n if (oldValue !== serialized) {\n storage.setItem(key, serialized);\n dispatchWriteEvent(oldValue, serialized);\n }\n }\n } catch (e) {\n onError(e);\n }\n }\n function read(event) {\n const rawValue = event ? event.newValue : storage.getItem(key);\n if (rawValue == null) {\n if (writeDefaults && rawInit != null)\n storage.setItem(key, serializer.write(rawInit));\n return rawInit;\n } else if (!event && mergeDefaults) {\n const value = serializer.read(rawValue);\n if (typeof mergeDefaults === \"function\")\n return mergeDefaults(value, rawInit);\n else if (type === \"object\" && !Array.isArray(value))\n return { ...rawInit, ...value };\n return value;\n } else if (typeof rawValue !== \"string\") {\n return rawValue;\n } else {\n return serializer.read(rawValue);\n }\n }\n function update(event) {\n if (event && event.storageArea !== storage)\n return;\n if (event && event.key == null) {\n data.value = rawInit;\n return;\n }\n if (event && event.key !== key)\n return;\n pauseWatch();\n try {\n if ((event == null ? void 0 : event.newValue) !== serializer.write(data.value))\n data.value = read(event);\n } catch (e) {\n onError(e);\n } finally {\n if (event)\n nextTick(resumeWatch);\n else\n resumeWatch();\n }\n }\n function updateFromCustomEvent(event) {\n update(event.detail);\n }\n return data;\n}\nconst CSS_DISABLE_TRANS = \"*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\";\nfunction useColorMode(options = {}) {\n const {\n selector = \"html\",\n attribute = \"class\",\n initialValue = \"auto\",\n window: window2 = defaultWindow,\n storage,\n storageKey = \"vueuse-color-scheme\",\n listenToStorageChanges = true,\n storageRef,\n emitAuto,\n disableTransition = true\n } = options;\n const modes = {\n auto: \"\",\n light: \"light\",\n dark: \"dark\",\n ...options.modes || {}\n };\n const preferredDark = usePreferredDark({ window: window2 });\n const system = computed(() => preferredDark.value ? \"dark\" : \"light\");\n const store = storageRef || (storageKey == null ? toRef(initialValue) : useStorage(storageKey, initialValue, storage, { window: window2, listenToStorageChanges }));\n const state = computed(() => store.value === \"auto\" ? system.value : store.value);\n const updateHTMLAttrs = getSSRHandler(\n \"updateHTMLAttrs\",\n (selector2, attribute2, value) => {\n const el = typeof selector2 === \"string\" ? window2 == null ? void 0 : window2.document.querySelector(selector2) : unrefElement(selector2);\n if (!el)\n return;\n const classesToAdd = /* @__PURE__ */ new Set();\n const classesToRemove = /* @__PURE__ */ new Set();\n let attributeToChange = null;\n if (attribute2 === \"class\") {\n const current = value.split(/\\s/g);\n Object.values(modes).flatMap((i) => (i || \"\").split(/\\s/g)).filter(Boolean).forEach((v) => {\n if (current.includes(v))\n classesToAdd.add(v);\n else\n classesToRemove.add(v);\n });\n } else {\n attributeToChange = { key: attribute2, value };\n }\n if (classesToAdd.size === 0 && classesToRemove.size === 0 && attributeToChange === null)\n return;\n let style;\n if (disableTransition) {\n style = window2.document.createElement(\"style\");\n style.appendChild(document.createTextNode(CSS_DISABLE_TRANS));\n window2.document.head.appendChild(style);\n }\n for (const c of classesToAdd) {\n el.classList.add(c);\n }\n for (const c of classesToRemove) {\n el.classList.remove(c);\n }\n if (attributeToChange) {\n el.setAttribute(attributeToChange.key, attributeToChange.value);\n }\n if (disableTransition) {\n window2.getComputedStyle(style).opacity;\n document.head.removeChild(style);\n }\n }\n );\n function defaultOnChanged(mode) {\n var _a;\n updateHTMLAttrs(selector, attribute, (_a = modes[mode]) != null ? _a : mode);\n }\n function onChanged(mode) {\n if (options.onChanged)\n options.onChanged(mode, defaultOnChanged);\n else\n defaultOnChanged(mode);\n }\n watch(state, onChanged, { flush: \"post\", immediate: true });\n tryOnMounted(() => onChanged(state.value));\n const auto = computed({\n get() {\n return emitAuto ? store.value : state.value;\n },\n set(v) {\n store.value = v;\n }\n });\n return Object.assign(auto, { store, system, state });\n}\nfunction useElementHover(el, options = {}) {\n const {\n delayEnter = 0,\n delayLeave = 0,\n window: window2 = defaultWindow\n } = options;\n const isHovered = ref(false);\n let timer;\n const toggle = (entering) => {\n const delay = entering ? delayEnter : delayLeave;\n if (timer) {\n clearTimeout(timer);\n timer = void 0;\n }\n if (delay)\n timer = setTimeout(() => isHovered.value = entering, delay);\n else\n isHovered.value = entering;\n };\n if (!window2)\n return isHovered;\n useEventListener(el, \"mouseenter\", () => toggle(true), { passive: true });\n useEventListener(el, \"mouseleave\", () => toggle(false), { passive: true });\n return isHovered;\n}\nfunction useIntersectionObserver(target, callback, options = {}) {\n const {\n root,\n rootMargin = \"0px\",\n threshold = 0,\n window: window2 = defaultWindow,\n immediate = true\n } = options;\n const isSupported = useSupported(() => window2 && \"IntersectionObserver\" in window2);\n const targets = computed(() => {\n const _target = toValue(target);\n return (Array.isArray(_target) ? _target : [_target]).map(unrefElement).filter(notNullish);\n });\n let cleanup = noop;\n const isActive = ref(immediate);\n const stopWatch = isSupported.value ? watch(\n () => [targets.value, unrefElement(root), isActive.value],\n ([targets2, root2]) => {\n cleanup();\n if (!isActive.value)\n return;\n if (!targets2.length)\n return;\n const observer = new IntersectionObserver(\n callback,\n {\n root: unrefElement(root2),\n rootMargin,\n threshold\n }\n );\n targets2.forEach((el) => el && observer.observe(el));\n cleanup = () => {\n observer.disconnect();\n cleanup = noop;\n };\n },\n { immediate, flush: \"post\" }\n ) : noop;\n const stop = () => {\n cleanup();\n stopWatch();\n isActive.value = false;\n };\n tryOnScopeDispose(stop);\n return {\n isSupported,\n isActive,\n pause() {\n cleanup();\n isActive.value = false;\n },\n resume() {\n isActive.value = true;\n },\n stop\n };\n}\nfunction useFocus(target, options = {}) {\n const { initialValue = false, focusVisible = false, preventScroll = false } = options;\n const innerFocused = ref(false);\n const targetElement = computed(() => unrefElement(target));\n useEventListener(targetElement, \"focus\", (event) => {\n var _a, _b;\n if (!focusVisible || ((_b = (_a = event.target).matches) == null ? void 0 : _b.call(_a, \":focus-visible\")))\n innerFocused.value = true;\n });\n useEventListener(targetElement, \"blur\", () => innerFocused.value = false);\n const focused = computed({\n get: () => innerFocused.value,\n set(value) {\n var _a, _b;\n if (!value && innerFocused.value)\n (_a = targetElement.value) == null ? void 0 : _a.blur();\n else if (value && !innerFocused.value)\n (_b = targetElement.value) == null ? void 0 : _b.focus({ preventScroll });\n }\n });\n watch(\n targetElement,\n () => {\n focused.value = initialValue;\n },\n { immediate: true, flush: \"post\" }\n );\n return { focused };\n}\nfunction resolveElement(el) {\n if (typeof Window !== \"undefined\" && el instanceof Window)\n return el.document.documentElement;\n if (typeof Document !== \"undefined\" && el instanceof Document)\n return el.documentElement;\n return el;\n}\nconst UseMouseBuiltinExtractors = {\n page: (event) => [event.pageX, event.pageY],\n client: (event) => [event.clientX, event.clientY],\n screen: (event) => [event.screenX, event.screenY],\n movement: (event) => event instanceof Touch ? null : [event.movementX, event.movementY]\n};\nfunction useMouse(options = {}) {\n const {\n type = \"page\",\n touch = true,\n resetOnTouchEnds = false,\n initialValue = { x: 0, y: 0 },\n window: window2 = defaultWindow,\n target = window2,\n scroll = true,\n eventFilter\n } = options;\n let _prevMouseEvent = null;\n let _prevScrollX = 0;\n let _prevScrollY = 0;\n const x = ref(initialValue.x);\n const y = ref(initialValue.y);\n const sourceType = ref(null);\n const extractor = typeof type === \"function\" ? type : UseMouseBuiltinExtractors[type];\n const mouseHandler = (event) => {\n const result = extractor(event);\n _prevMouseEvent = event;\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"mouse\";\n }\n if (window2) {\n _prevScrollX = window2.scrollX;\n _prevScrollY = window2.scrollY;\n }\n };\n const touchHandler = (event) => {\n if (event.touches.length > 0) {\n const result = extractor(event.touches[0]);\n if (result) {\n [x.value, y.value] = result;\n sourceType.value = \"touch\";\n }\n }\n };\n const scrollHandler = () => {\n if (!_prevMouseEvent || !window2)\n return;\n const pos = extractor(_prevMouseEvent);\n if (_prevMouseEvent instanceof MouseEvent && pos) {\n x.value = pos[0] + window2.scrollX - _prevScrollX;\n y.value = pos[1] + window2.scrollY - _prevScrollY;\n }\n };\n const reset = () => {\n x.value = initialValue.x;\n y.value = initialValue.y;\n };\n const mouseHandlerWrapper = eventFilter ? (event) => eventFilter(() => mouseHandler(event), {}) : (event) => mouseHandler(event);\n const touchHandlerWrapper = eventFilter ? (event) => eventFilter(() => touchHandler(event), {}) : (event) => touchHandler(event);\n const scrollHandlerWrapper = eventFilter ? () => eventFilter(() => scrollHandler(), {}) : () => scrollHandler();\n if (target) {\n const listenerOptions = { passive: true };\n useEventListener(target, [\"mousemove\", \"dragover\"], mouseHandlerWrapper, listenerOptions);\n if (touch && type !== \"movement\") {\n useEventListener(target, [\"touchstart\", \"touchmove\"], touchHandlerWrapper, listenerOptions);\n if (resetOnTouchEnds)\n useEventListener(target, \"touchend\", reset, listenerOptions);\n }\n if (scroll && type === \"page\")\n useEventListener(window2, \"scroll\", scrollHandlerWrapper, { passive: true });\n }\n return {\n x,\n y,\n sourceType\n };\n}\nfunction checkOverflowScroll(ele) {\n const style = window.getComputedStyle(ele);\n if (style.overflowX === \"scroll\" || style.overflowY === \"scroll\" || style.overflowX === \"auto\" && ele.clientWidth < ele.scrollWidth || style.overflowY === \"auto\" && ele.clientHeight < ele.scrollHeight) {\n return true;\n } else {\n const parent = ele.parentNode;\n if (!parent || parent.tagName === \"BODY\")\n return false;\n return checkOverflowScroll(parent);\n }\n}\nfunction preventDefault(rawEvent) {\n const e = rawEvent || window.event;\n const _target = e.target;\n if (checkOverflowScroll(_target))\n return false;\n if (e.touches.length > 1)\n return true;\n if (e.preventDefault)\n e.preventDefault();\n return false;\n}\nconst elInitialOverflow = /* @__PURE__ */ new WeakMap();\nfunction useScrollLock(element, initialState = false) {\n const isLocked = ref(initialState);\n let stopTouchMoveListener = null;\n let initialOverflow = \"\";\n watch(toRef(element), (el) => {\n const target = resolveElement(toValue(el));\n if (target) {\n const ele = target;\n if (!elInitialOverflow.get(ele))\n elInitialOverflow.set(ele, ele.style.overflow);\n if (ele.style.overflow !== \"hidden\")\n initialOverflow = ele.style.overflow;\n if (ele.style.overflow === \"hidden\")\n return isLocked.value = true;\n if (isLocked.value)\n return ele.style.overflow = \"hidden\";\n }\n }, {\n immediate: true\n });\n const lock = () => {\n const el = resolveElement(toValue(element));\n if (!el || isLocked.value)\n return;\n if (isIOS) {\n stopTouchMoveListener = useEventListener(\n el,\n \"touchmove\",\n (e) => {\n preventDefault(e);\n },\n { passive: false }\n );\n }\n el.style.overflow = \"hidden\";\n isLocked.value = true;\n };\n const unlock = () => {\n const el = resolveElement(toValue(element));\n if (!el || !isLocked.value)\n return;\n if (isIOS)\n stopTouchMoveListener == null ? void 0 : stopTouchMoveListener();\n el.style.overflow = initialOverflow;\n elInitialOverflow.delete(el);\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 unlock();\n }\n });\n}\nfunction useSwipe(target, options = {}) {\n const {\n threshold = 50,\n onSwipe,\n onSwipeEnd,\n onSwipeStart,\n passive = true,\n window: window2 = 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 \"none\";\n if (abs(diffX.value) > abs(diffY.value)) {\n return diffX.value > 0 ? \"left\" : \"right\";\n } else {\n return diffY.value > 0 ? \"up\" : \"down\";\n }\n });\n const getTouchEventCoords = (e) => [e.touches[0].clientX, e.touches[0].clientY];\n const updateCoordsStart = (x, y) => {\n coordsStart.x = x;\n coordsStart.y = y;\n };\n const updateCoordsEnd = (x, y) => {\n coordsEnd.x = x;\n coordsEnd.y = y;\n };\n let listenerOptions;\n const isPassiveEventSupported = checkPassiveEventSupport(window2 == null ? void 0 : window2.document);\n if (!passive)\n listenerOptions = isPassiveEventSupported ? { passive: false, capture: true } : { capture: true };\n else\n listenerOptions = isPassiveEventSupported ? { passive: true } : { capture: false };\n const onTouchEnd = (e) => {\n if (isSwiping.value)\n onSwipeEnd == null ? void 0 : onSwipeEnd(e, direction.value);\n isSwiping.value = false;\n };\n const stops = [\n useEventListener(target, \"touchstart\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsStart(x, y);\n updateCoordsEnd(x, y);\n onSwipeStart == null ? void 0 : onSwipeStart(e);\n }, listenerOptions),\n useEventListener(target, \"touchmove\", (e) => {\n if (e.touches.length !== 1)\n return;\n const [x, y] = getTouchEventCoords(e);\n updateCoordsEnd(x, y);\n if (listenerOptions.capture && !listenerOptions.passive && Math.abs(diffX.value) > Math.abs(diffY.value))\n e.preventDefault();\n if (!isSwiping.value && isThresholdExceeded.value)\n isSwiping.value = true;\n if (isSwiping.value)\n onSwipe == null ? void 0 : onSwipe(e);\n }, listenerOptions),\n useEventListener(target, [\"touchend\", \"touchcancel\"], onTouchEnd, listenerOptions)\n ];\n const stop = () => stops.forEach((s) => s());\n return {\n isPassiveEventSupported,\n isSwiping,\n direction,\n coordsStart,\n coordsEnd,\n lengthX: diffX,\n lengthY: diffY,\n stop\n };\n}\nfunction checkPassiveEventSupport(document2) {\n if (!document2)\n return false;\n let supportsPassive = false;\n const optionsBlock = {\n get passive() {\n supportsPassive = true;\n return false;\n }\n };\n document2.addEventListener(\"x\", noop, optionsBlock);\n document2.removeEventListener(\"x\", noop);\n return supportsPassive;\n}\nfunction useTimestamp(options = {}) {\n const {\n controls: exposeControls = false,\n offset = 0,\n immediate = true,\n interval = \"requestAnimationFrame\",\n callback\n } = options;\n const ts = ref(timestamp() + offset);\n const update = () => ts.value = timestamp() + offset;\n const cb = callback ? () => {\n update();\n callback(ts.value);\n } : update;\n const controls = interval === \"requestAnimationFrame\" ? useRafFn(cb, { immediate }) : useIntervalFn(cb, interval, { immediate });\n if (exposeControls) {\n return {\n timestamp: ts,\n ...controls\n };\n } else {\n return ts;\n }\n}\nexport {\n useIntersectionObserver as a,\n useMutationObserver as b,\n useFocus as c,\n unrefElement as d,\n useEventListener as e,\n createReusableTemplate as f,\n getSSRHandler as g,\n useTimestamp as h,\n useElementHover as i,\n useSwipe as j,\n onClickOutside as k,\n useBreakpoints as l,\n breakpointsBootstrapV5 as m,\n useScrollLock as n,\n onKeyStroke as o,\n useMouse as p,\n useColorMode as u\n};\n//# sourceMappingURL=index-Bkyn4R9C.mjs.map\n","import { getCurrentScope, onScopeDispose, unref, ref, computed, watch, readonly, toRef, onMounted, nextTick, useId, toValue as toValue$1, onUnmounted } from \"vue\";\nimport { b as useMutationObserver, n as useScrollLock$1 } from \"./index-Bkyn4R9C.mjs\";\nimport { p as createSharedComposable } from \"./index-D3jGjWWk.mjs\";\nfunction tryOnScopeDispose(fn) {\n if (getCurrentScope()) {\n onScopeDispose(fn);\n return true;\n }\n return false;\n}\nfunction toValue(r) {\n return typeof r === \"function\" ? r() : unref(r);\n}\ntypeof WorkerGlobalScope !== \"undefined\" && globalThis instanceof WorkerGlobalScope;\nconst notNullish = (val) => val != null;\nfunction unrefElement(elRef) {\n var _a;\n const plain = toValue(elRef);\n return (_a = plain == null ? void 0 : plain.$el) != null ? _a : plain;\n}\n/*!\n* tabbable 6.2.0\n* @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE\n*/\nvar candidateSelectors = [\"input:not([inert])\", \"select:not([inert])\", \"textarea:not([inert])\", \"a[href]:not([inert])\", \"button:not([inert])\", \"[tabindex]:not(slot):not([inert])\", \"audio[controls]:not([inert])\", \"video[controls]:not([inert])\", '[contenteditable]:not([contenteditable=\"false\"]):not([inert])', \"details>summary:first-of-type:not([inert])\", \"details:not([inert])\"];\nvar candidateSelector = /* @__PURE__ */ candidateSelectors.join(\",\");\nvar NoElement = typeof Element === \"undefined\";\nvar matches = NoElement ? function() {\n} : Element.prototype.matches || Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;\nvar getRootNode = !NoElement && Element.prototype.getRootNode ? function(element) {\n var _element$getRootNode;\n return element === null || element === void 0 ? void 0 : (_element$getRootNode = element.getRootNode) === null || _element$getRootNode === void 0 ? void 0 : _element$getRootNode.call(element);\n} : function(element) {\n return element === null || element === void 0 ? void 0 : element.ownerDocument;\n};\nvar isInert = function isInert2(node, lookUp) {\n var _node$getAttribute;\n if (lookUp === void 0) {\n lookUp = true;\n }\n var inertAtt = node === null || node === void 0 ? void 0 : (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, \"inert\");\n var inert = inertAtt === \"\" || inertAtt === \"true\";\n var result = inert || lookUp && node && isInert2(node.parentNode);\n return result;\n};\nvar isContentEditable = function isContentEditable2(node) {\n var _node$getAttribute2;\n var attValue = node === null || node === void 0 ? void 0 : (_node$getAttribute2 = node.getAttribute) === null || _node$getAttribute2 === void 0 ? void 0 : _node$getAttribute2.call(node, \"contenteditable\");\n return attValue === \"\" || attValue === \"true\";\n};\nvar getCandidates = function getCandidates2(el, includeContainer, filter) {\n if (isInert(el)) {\n return [];\n }\n var candidates = Array.prototype.slice.apply(el.querySelectorAll(candidateSelector));\n if (includeContainer && matches.call(el, candidateSelector)) {\n candidates.unshift(el);\n }\n candidates = candidates.filter(filter);\n return candidates;\n};\nvar getCandidatesIteratively = function getCandidatesIteratively2(elements, includeContainer, options) {\n var candidates = [];\n var elementsToCheck = Array.from(elements);\n while (elementsToCheck.length) {\n var element = elementsToCheck.shift();\n if (isInert(element, false)) {\n continue;\n }\n if (element.tagName === \"SLOT\") {\n var assigned = element.assignedElements();\n var content = assigned.length ? assigned : element.children;\n var nestedCandidates = getCandidatesIteratively2(content, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: nestedCandidates\n });\n }\n } else {\n var validCandidate = matches.call(element, candidateSelector);\n if (validCandidate && options.filter(element) && (includeContainer || !elements.includes(element))) {\n candidates.push(element);\n }\n var shadowRoot = element.shadowRoot || // check for an undisclosed shadow\n typeof options.getShadowRoot === \"function\" && options.getShadowRoot(element);\n var validShadowRoot = !isInert(shadowRoot, false) && (!options.shadowRootFilter || options.shadowRootFilter(element));\n if (shadowRoot && validShadowRoot) {\n var _nestedCandidates = getCandidatesIteratively2(shadowRoot === true ? element.children : shadowRoot.children, true, options);\n if (options.flatten) {\n candidates.push.apply(candidates, _nestedCandidates);\n } else {\n candidates.push({\n scopeParent: element,\n candidates: _nestedCandidates\n });\n }\n } else {\n elementsToCheck.unshift.apply(elementsToCheck, element.children);\n }\n }\n }\n return candidates;\n};\nvar hasTabIndex = function hasTabIndex2(node) {\n return !isNaN(parseInt(node.getAttribute(\"tabindex\"), 10));\n};\nvar getTabIndex = function getTabIndex2(node) {\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (node.tabIndex < 0) {\n if ((/^(AUDIO|VIDEO|DETAILS)$/.test(node.tagName) || isContentEditable(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n};\nvar getSortOrderTabIndex = function getSortOrderTabIndex2(node, isScope) {\n var tabIndex = getTabIndex(node);\n if (tabIndex < 0 && isScope && !hasTabIndex(node)) {\n return 0;\n }\n return tabIndex;\n};\nvar sortOrderedTabbables = function sortOrderedTabbables2(a, b) {\n return a.tabIndex === b.tabIndex ? a.documentOrder - b.documentOrder : a.tabIndex - b.tabIndex;\n};\nvar isInput = function isInput2(node) {\n return node.tagName === \"INPUT\";\n};\nvar isHiddenInput = function isHiddenInput2(node) {\n return isInput(node) && node.type === \"hidden\";\n};\nvar isDetailsWithSummary = function isDetailsWithSummary2(node) {\n var r = node.tagName === \"DETAILS\" && Array.prototype.slice.apply(node.children).some(function(child) {\n return child.tagName === \"SUMMARY\";\n });\n return r;\n};\nvar getCheckedRadio = function getCheckedRadio2(nodes, form) {\n for (var i = 0; i < nodes.length; i++) {\n if (nodes[i].checked && nodes[i].form === form) {\n return nodes[i];\n }\n }\n};\nvar isTabbableRadio = function isTabbableRadio2(node) {\n if (!node.name) {\n return true;\n }\n var radioScope = node.form || getRootNode(node);\n var queryRadios = function queryRadios2(name) {\n return radioScope.querySelectorAll('input[type=\"radio\"][name=\"' + name + '\"]');\n };\n var radioSet;\n if (typeof window !== \"undefined\" && typeof window.CSS !== \"undefined\" && typeof window.CSS.escape === \"function\") {\n radioSet = queryRadios(window.CSS.escape(node.name));\n } else {\n try {\n radioSet = queryRadios(node.name);\n } catch (err) {\n console.error(\"Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s\", err.message);\n return false;\n }\n }\n var checked = getCheckedRadio(radioSet, node.form);\n return !checked || checked === node;\n};\nvar isRadio = function isRadio2(node) {\n return isInput(node) && node.type === \"radio\";\n};\nvar isNonTabbableRadio = function isNonTabbableRadio2(node) {\n return isRadio(node) && !isTabbableRadio(node);\n};\nvar isNodeAttached = function isNodeAttached2(node) {\n var _nodeRoot;\n var nodeRoot = node && getRootNode(node);\n var nodeRootHost = (_nodeRoot = nodeRoot) === null || _nodeRoot === void 0 ? void 0 : _nodeRoot.host;\n var attached = false;\n if (nodeRoot && nodeRoot !== node) {\n var _nodeRootHost, _nodeRootHost$ownerDo, _node$ownerDocument;\n attached = !!((_nodeRootHost = nodeRootHost) !== null && _nodeRootHost !== void 0 && (_nodeRootHost$ownerDo = _nodeRootHost.ownerDocument) !== null && _nodeRootHost$ownerDo !== void 0 && _nodeRootHost$ownerDo.contains(nodeRootHost) || node !== null && node !== void 0 && (_node$ownerDocument = node.ownerDocument) !== null && _node$ownerDocument !== void 0 && _node$ownerDocument.contains(node));\n while (!attached && nodeRootHost) {\n var _nodeRoot2, _nodeRootHost2, _nodeRootHost2$ownerD;\n nodeRoot = getRootNode(nodeRootHost);\n nodeRootHost = (_nodeRoot2 = nodeRoot) === null || _nodeRoot2 === void 0 ? void 0 : _nodeRoot2.host;\n attached = !!((_nodeRootHost2 = nodeRootHost) !== null && _nodeRootHost2 !== void 0 && (_nodeRootHost2$ownerD = _nodeRootHost2.ownerDocument) !== null && _nodeRootHost2$ownerD !== void 0 && _nodeRootHost2$ownerD.contains(nodeRootHost));\n }\n }\n return attached;\n};\nvar isZeroArea = function isZeroArea2(node) {\n var _node$getBoundingClie = node.getBoundingClientRect(), width = _node$getBoundingClie.width, height = _node$getBoundingClie.height;\n return width === 0 && height === 0;\n};\nvar isHidden = function isHidden2(node, _ref) {\n var displayCheck = _ref.displayCheck, getShadowRoot = _ref.getShadowRoot;\n if (getComputedStyle(node).visibility === \"hidden\") {\n return true;\n }\n var isDirectSummary = matches.call(node, \"details>summary:first-of-type\");\n var nodeUnderDetails = isDirectSummary ? node.parentElement : node;\n if (matches.call(nodeUnderDetails, \"details:not([open]) *\")) {\n return true;\n }\n if (!displayCheck || displayCheck === \"full\" || displayCheck === \"legacy-full\") {\n if (typeof getShadowRoot === \"function\") {\n var originalNode = node;\n while (node) {\n var parentElement = node.parentElement;\n var rootNode = getRootNode(node);\n if (parentElement && !parentElement.shadowRoot && getShadowRoot(parentElement) === true) {\n return isZeroArea(node);\n } else if (node.assignedSlot) {\n node = node.assignedSlot;\n } else if (!parentElement && rootNode !== node.ownerDocument) {\n node = rootNode.host;\n } else {\n node = parentElement;\n }\n }\n node = originalNode;\n }\n if (isNodeAttached(node)) {\n return !node.getClientRects().length;\n }\n if (displayCheck !== \"legacy-full\") {\n return true;\n }\n } else if (displayCheck === \"non-zero-area\") {\n return isZeroArea(node);\n }\n return false;\n};\nvar isDisabledFromFieldset = function isDisabledFromFieldset2(node) {\n if (/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(node.tagName)) {\n var parentNode = node.parentElement;\n while (parentNode) {\n if (parentNode.tagName === \"FIELDSET\" && parentNode.disabled) {\n for (var i = 0; i < parentNode.children.length; i++) {\n var child = parentNode.children.item(i);\n if (child.tagName === \"LEGEND\") {\n return matches.call(parentNode, \"fieldset[disabled] *\") ? true : !child.contains(node);\n }\n }\n return true;\n }\n parentNode = parentNode.parentElement;\n }\n }\n return false;\n};\nvar isNodeMatchingSelectorFocusable = function isNodeMatchingSelectorFocusable2(options, node) {\n if (node.disabled || // we must do an inert look up to filter out any elements inside an inert ancestor\n // because we're limited in the type of selectors we can use in JSDom (see related\n // note related to `candidateSelectors`)\n isInert(node) || isHiddenInput(node) || isHidden(node, options) || // For a details element with a summary, the summary element gets the focus\n isDetailsWithSummary(node) || isDisabledFromFieldset(node)) {\n return false;\n }\n return true;\n};\nvar isNodeMatchingSelectorTabbable = function isNodeMatchingSelectorTabbable2(options, node) {\n if (isNonTabbableRadio(node) || getTabIndex(node) < 0 || !isNodeMatchingSelectorFocusable(options, node)) {\n return false;\n }\n return true;\n};\nvar isValidShadowRootTabbable = function isValidShadowRootTabbable2(shadowHostNode) {\n var tabIndex = parseInt(shadowHostNode.getAttribute(\"tabindex\"), 10);\n if (isNaN(tabIndex) || tabIndex >= 0) {\n return true;\n }\n return false;\n};\nvar sortByOrder = function sortByOrder2(candidates) {\n var regularTabbables = [];\n var orderedTabbables = [];\n candidates.forEach(function(item, i) {\n var isScope = !!item.scopeParent;\n var element = isScope ? item.scopeParent : item;\n var candidateTabindex = getSortOrderTabIndex(element, isScope);\n var elements = isScope ? sortByOrder2(item.candidates) : element;\n if (candidateTabindex === 0) {\n isScope ? regularTabbables.push.apply(regularTabbables, elements) : regularTabbables.push(element);\n } else {\n orderedTabbables.push({\n documentOrder: i,\n tabIndex: candidateTabindex,\n item,\n isScope,\n content: elements\n });\n }\n });\n return orderedTabbables.sort(sortOrderedTabbables).reduce(function(acc, sortable) {\n sortable.isScope ? acc.push.apply(acc, sortable.content) : acc.push(sortable.content);\n return acc;\n }, []).concat(regularTabbables);\n};\nvar tabbable = function tabbable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorTabbable.bind(null, options),\n flatten: false,\n getShadowRoot: options.getShadowRoot,\n shadowRootFilter: isValidShadowRootTabbable\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorTabbable.bind(null, options));\n }\n return sortByOrder(candidates);\n};\nvar focusable = function focusable2(container, options) {\n options = options || {};\n var candidates;\n if (options.getShadowRoot) {\n candidates = getCandidatesIteratively([container], options.includeContainer, {\n filter: isNodeMatchingSelectorFocusable.bind(null, options),\n flatten: true,\n getShadowRoot: options.getShadowRoot\n });\n } else {\n candidates = getCandidates(container, options.includeContainer, isNodeMatchingSelectorFocusable.bind(null, options));\n }\n return candidates;\n};\nvar isTabbable = function isTabbable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, candidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorTabbable(options, node);\n};\nvar focusableCandidateSelector = /* @__PURE__ */ candidateSelectors.concat(\"iframe\").join(\",\");\nvar isFocusable = function isFocusable2(node, options) {\n options = options || {};\n if (!node) {\n throw new Error(\"No node provided\");\n }\n if (matches.call(node, focusableCandidateSelector) === false) {\n return false;\n }\n return isNodeMatchingSelectorFocusable(options, node);\n};\n/*!\n* focus-trap 7.6.2\n* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE\n*/\nfunction _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: true,\n configurable: true,\n writable: true\n }) : e[r] = t, e;\n}\nfunction _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function(r2) {\n return Object.getOwnPropertyDescriptor(e, r2).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), true).forEach(function(r2) {\n _defineProperty(e, r2, t[r2]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function(r2) {\n Object.defineProperty(e, r2, Object.getOwnPropertyDescriptor(t, r2));\n });\n }\n return e;\n}\nfunction _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n}\nvar activeFocusTraps = {\n activateTrap: function activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n var activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap: function deactivateTrap(trapStack, trap) {\n var trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar isSelectableInput = function isSelectableInput2(node) {\n return node.tagName && node.tagName.toLowerCase() === \"input\" && typeof node.select === \"function\";\n};\nvar isEscapeEvent = function isEscapeEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Escape\" || (e === null || e === void 0 ? void 0 : e.key) === \"Esc\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 27;\n};\nvar isTabEvent = function isTabEvent2(e) {\n return (e === null || e === void 0 ? void 0 : e.key) === \"Tab\" || (e === null || e === void 0 ? void 0 : e.keyCode) === 9;\n};\nvar isKeyForward = function isKeyForward2(e) {\n return isTabEvent(e) && !e.shiftKey;\n};\nvar isKeyBackward = function isKeyBackward2(e) {\n return isTabEvent(e) && e.shiftKey;\n};\nvar delay = function delay2(fn) {\n return setTimeout(fn, 0);\n};\nvar valueOrHandler = function valueOrHandler2(value) {\n for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n params[_key - 1] = arguments[_key];\n }\n return typeof value === \"function\" ? value.apply(void 0, params) : value;\n};\nvar getActualTarget = function getActualTarget2(event) {\n return event.target.shadowRoot && typeof event.composedPath === \"function\" ? event.composedPath()[0] : event.target;\n};\nvar internalTrapStack = [];\nvar createFocusTrap = function createFocusTrap2(elements, userOptions) {\n var doc = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.document) || document;\n var trapStack = (userOptions === null || userOptions === void 0 ? void 0 : userOptions.trapStack) || internalTrapStack;\n var config = _objectSpread2({\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward,\n isKeyBackward\n }, userOptions);\n var state = {\n // containers given to createFocusTrap()\n // @type {Array<HTMLElement>}\n containers: [],\n // list of objects identifying tabbable nodes in `containers` in the trap\n // NOTE: it's possible that a group has no tabbable nodes if nodes get removed while the trap\n // is active, but the trap should never get to a state where there isn't at least one group\n // with at least one tabbable node in it (that would lead to an error condition that would\n // result in an error being thrown)\n // @type {Array<{\n // container: HTMLElement,\n // tabbableNodes: Array<HTMLElement>, // empty if none\n // focusableNodes: Array<HTMLElement>, // empty if none\n // posTabIndexesFound: boolean,\n // firstTabbableNode: HTMLElement|undefined,\n // lastTabbableNode: HTMLElement|undefined,\n // firstDomTabbableNode: HTMLElement|undefined,\n // lastDomTabbableNode: HTMLElement|undefined,\n // nextTabbableNode: (node: HTMLElement, forward: boolean) => HTMLElement|undefined\n // }>}\n containerGroups: [],\n // same order/length as `containers` list\n // references to objects in `containerGroups`, but only those that actually have\n // tabbable nodes in them\n // NOTE: same order as `containers` and `containerGroups`, but __not necessarily__\n // the same length\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n // timer ID for when delayInitialFocus is true and initial focus in this trap\n // has been delayed during activation\n delayInitialFocusTimer: void 0,\n // the most recent KeyboardEvent for the configured nav key (typically [SHIFT+]TAB), if any\n recentNavEvent: void 0\n };\n var trap;\n var getOption = function getOption2(configOverrideOptions, optionName, configOptionName) {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : config[configOptionName || optionName];\n };\n var findContainerIndex = function findContainerIndex2(element, event) {\n var composedPath = typeof (event === null || event === void 0 ? void 0 : event.composedPath) === \"function\" ? event.composedPath() : void 0;\n return state.containerGroups.findIndex(function(_ref) {\n var container = _ref.container, tabbableNodes = _ref.tabbableNodes;\n return container.contains(element) || // fall back to explicit tabbable search which will take into consideration any\n // web components if the `tabbableOptions.getShadowRoot` option was used for\n // the trap, enabling shadow DOM support in tabbable (`Node.contains()` doesn't\n // look inside web components even if open)\n (composedPath === null || composedPath === void 0 ? void 0 : composedPath.includes(container)) || tabbableNodes.find(function(node) {\n return node === element;\n });\n });\n };\n var getNodeForOption = function getNodeForOption2(optionName) {\n var _ref2 = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {}, _ref2$hasFallback = _ref2.hasFallback, hasFallback = _ref2$hasFallback === void 0 ? false : _ref2$hasFallback, _ref2$params = _ref2.params, params = _ref2$params === void 0 ? [] : _ref2$params;\n var optionValue = config[optionName];\n if (typeof optionValue === \"function\") {\n optionValue = optionValue.apply(void 0, _toConsumableArray(params));\n }\n if (optionValue === true) {\n optionValue = void 0;\n }\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(\"`\".concat(optionName, \"` was specified but was not a node, or did not return a node\"));\n }\n var node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(\"`\".concat(optionName, '` appears to be an invalid selector; error=\"').concat(err.message, '\"'));\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(\"`\".concat(optionName, \"` as selector refers to no known node\"));\n }\n }\n }\n return node;\n };\n var getInitialFocusNode = function getInitialFocusNode2() {\n var node = getNodeForOption(\"initialFocus\", {\n hasFallback: true\n });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node, config.tabbableOptions)) {\n if (findContainerIndex(doc.activeElement) >= 0) {\n node = doc.activeElement;\n } else {\n var firstTabbableGroup = state.tabbableGroups[0];\n var firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n return node;\n };\n var updateTabbableNodes = function updateTabbableNodes2() {\n state.containerGroups = state.containers.map(function(container) {\n var tabbableNodes = tabbable(container, config.tabbableOptions);\n var focusableNodes = focusable(container, config.tabbableOptions);\n var firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n var lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n var firstDomTabbableNode = focusableNodes.find(function(node) {\n return isTabbable(node);\n });\n var lastDomTabbableNode = focusableNodes.slice().reverse().find(function(node) {\n return isTabbable(node);\n });\n var posTabIndexesFound = !!tabbableNodes.find(function(node) {\n return getTabIndex(node) > 0;\n });\n return {\n container,\n tabbableNodes,\n focusableNodes,\n /** True if at least one node with positive `tabindex` was found in this container. */\n posTabIndexesFound,\n /** First tabbable node in container, __tabindex__ order; `undefined` if none. */\n firstTabbableNode,\n /** Last tabbable node in container, __tabindex__ order; `undefined` if none. */\n lastTabbableNode,\n // NOTE: DOM order is NOT NECESSARILY \"document position\" order, but figuring that out\n // would require more than just https://developer.mozilla.org/en-US/docs/Web/API/Node/compareDocumentPosition\n // because that API doesn't work with Shadow DOM as well as it should (@see\n // https://github.com/whatwg/dom/issues/320) and since this first/last is only needed, so far,\n // to address an edge case related to positive tabindex support, this seems like a much easier,\n // \"close enough most of the time\" alternative for positive tabindexes which should generally\n // be avoided anyway...\n /** First tabbable node in container, __DOM__ order; `undefined` if none. */\n firstDomTabbableNode,\n /** Last tabbable node in container, __DOM__ order; `undefined` if none. */\n lastDomTabbableNode,\n /**\n * Finds the __tabbable__ node that follows the given node in the specified direction,\n * in this container, if any.\n * @param {HTMLElement} node\n * @param {boolean} [forward] True if going in forward tab order; false if going\n * in reverse.\n * @returns {HTMLElement|undefined} The next tabbable node, if any.\n */\n nextTabbableNode: function nextTabbableNode(node) {\n var forward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : true;\n var nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find(function(el) {\n return isTabbable(el);\n });\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find(function(el) {\n return isTabbable(el);\n });\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n };\n });\n state.tabbableGroups = state.containerGroups.filter(function(group) {\n return group.tabbableNodes.length > 0;\n });\n if (state.tabbableGroups.length <= 0 && !getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\"Your focus-trap must have at least one container with at least one tabbable node in it at all times\");\n }\n if (state.containerGroups.find(function(g) {\n return g.posTabIndexesFound;\n }) && state.containerGroups.length > 1) {\n throw new Error(\"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\");\n }\n };\n var _getActiveElement = function getActiveElement(el) {\n var activeElement = el.activeElement;\n if (!activeElement) {\n return;\n }\n if (activeElement.shadowRoot && activeElement.shadowRoot.activeElement !== null) {\n return _getActiveElement(activeElement.shadowRoot);\n }\n return activeElement;\n };\n var _tryFocus = function tryFocus(node) {\n if (node === false) {\n return;\n }\n if (node === _getActiveElement(document)) {\n return;\n }\n if (!node || !node.focus) {\n _tryFocus(getInitialFocusNode());\n return;\n }\n node.focus({\n preventScroll: !!config.preventScroll\n });\n state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n };\n var getReturnFocusNode = function getReturnFocusNode2(previousActiveElement) {\n var node = getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n };\n var findNextNavNode = function findNextNavNode2(_ref3) {\n var target = _ref3.target, event = _ref3.event, _ref3$isBackward = _ref3.isBackward, isBackward = _ref3$isBackward === void 0 ? false : _ref3$isBackward;\n target = target || getActualTarget(event);\n updateTabbableNodes();\n var destinationNode = null;\n if (state.tabbableGroups.length > 0) {\n var containerIndex = findContainerIndex(target, event);\n var containerGroup = containerIndex >= 0 ? state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = state.tabbableGroups[state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n var startOfGroupIndex = state.tabbableGroups.findIndex(function(_ref4) {\n var firstTabbableNode = _ref4.firstTabbableNode;\n return target === firstTabbableNode;\n });\n if (startOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n var destinationGroupIndex = startOfGroupIndex === 0 ? state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n var destinationGroup = state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target, false);\n }\n } else {\n var lastOfGroupIndex = state.tabbableGroups.findIndex(function(_ref5) {\n var lastTabbableNode = _ref5.lastTabbableNode;\n return target === lastTabbableNode;\n });\n if (lastOfGroupIndex < 0 && (containerGroup.container === target || isFocusable(target, config.tabbableOptions) && !isTabbable(target, config.tabbableOptions) && !containerGroup.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n var _destinationGroupIndex = lastOfGroupIndex === state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n var _destinationGroup = state.tabbableGroups[_destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? _destinationGroup.firstTabbableNode : _destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n };\n var checkPointerDown = function checkPointerDown2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n trap.deactivate({\n // NOTE: by setting `returnFocus: false`, deactivate() will do nothing,\n // which will result in the outside click setting focus to the node\n // that was clicked (and if not focusable, to \"nothing\"); by setting\n // `returnFocus: true`, we'll attempt to re-focus the node originally-focused\n // on activation (or the configured `setReturnFocus` node), whether the\n // outside click was on a focusable node or not\n returnFocus: config.returnFocusOnDeactivate\n });\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n };\n var checkFocusIn = function checkFocusIn2(event) {\n var target = getActualTarget(event);\n var targetContained = findContainerIndex(target, event) >= 0;\n if (targetContained || target instanceof Document) {\n if (targetContained) {\n state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n var nextNode;\n var navAcrossContainers = true;\n if (state.mostRecentlyFocusedNode) {\n if (getTabIndex(state.mostRecentlyFocusedNode) > 0) {\n var mruContainerIdx = findContainerIndex(state.mostRecentlyFocusedNode);\n var tabbableNodes = state.containerGroups[mruContainerIdx].tabbableNodes;\n if (tabbableNodes.length > 0) {\n var mruTabIdx = tabbableNodes.findIndex(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n if (mruTabIdx >= 0) {\n if (config.isKeyForward(state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!state.containerGroups.some(function(g) {\n return g.tabbableNodes.some(function(n) {\n return getTabIndex(n) > 0;\n });\n })) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: state.mostRecentlyFocusedNode,\n isBackward: config.isKeyBackward(state.recentNavEvent)\n });\n }\n if (nextNode) {\n _tryFocus(nextNode);\n } else {\n _tryFocus(state.mostRecentlyFocusedNode || getInitialFocusNode());\n }\n }\n state.recentNavEvent = void 0;\n };\n var checkKeyNav = function checkKeyNav2(event) {\n var isBackward = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;\n state.recentNavEvent = event;\n var destinationNode = findNextNavNode({\n event,\n isBackward\n });\n if (destinationNode) {\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n _tryFocus(destinationNode);\n }\n };\n var checkTabKey = function checkTabKey2(event) {\n if (config.isKeyForward(event) || config.isKeyBackward(event)) {\n checkKeyNav(event, config.isKeyBackward(event));\n }\n };\n var checkEscapeKey = function checkEscapeKey2(event) {\n if (isEscapeEvent(event) && valueOrHandler(config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n trap.deactivate();\n }\n };\n var checkClick = function checkClick2(e) {\n var target = getActualTarget(e);\n if (findContainerIndex(target, e) >= 0) {\n return;\n }\n if (valueOrHandler(config.clickOutsideDeactivates, e)) {\n return;\n }\n if (valueOrHandler(config.allowOutsideClick, e)) {\n return;\n }\n e.preventDefault();\n e.stopImmediatePropagation();\n };\n var addListeners = function addListeners2() {\n if (!state.active) {\n return;\n }\n activeFocusTraps.activateTrap(trapStack, trap);\n state.delayInitialFocusTimer = config.delayInitialFocus ? delay(function() {\n _tryFocus(getInitialFocusNode());\n }) : _tryFocus(getInitialFocusNode());\n doc.addEventListener(\"focusin\", checkFocusIn, true);\n doc.addEventListener(\"mousedown\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"touchstart\", checkPointerDown, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"click\", checkClick, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkTabKey, {\n capture: true,\n passive: false\n });\n doc.addEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var removeListeners = function removeListeners2() {\n if (!state.active) {\n return;\n }\n doc.removeEventListener(\"focusin\", checkFocusIn, true);\n doc.removeEventListener(\"mousedown\", checkPointerDown, true);\n doc.removeEventListener(\"touchstart\", checkPointerDown, true);\n doc.removeEventListener(\"click\", checkClick, true);\n doc.removeEventListener(\"keydown\", checkTabKey, true);\n doc.removeEventListener(\"keydown\", checkEscapeKey);\n return trap;\n };\n var checkDomRemoval = function checkDomRemoval2(mutations) {\n var isFocusedNodeRemoved = mutations.some(function(mutation) {\n var removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some(function(node) {\n return node === state.mostRecentlyFocusedNode;\n });\n });\n if (isFocusedNodeRemoved) {\n _tryFocus(getInitialFocusNode());\n }\n };\n var mutationObserver = typeof window !== \"undefined\" && \"MutationObserver\" in window ? new MutationObserver(checkDomRemoval) : void 0;\n var updateObservedNodes = function updateObservedNodes2() {\n if (!mutationObserver) {\n return;\n }\n mutationObserver.disconnect();\n if (state.active && !state.paused) {\n state.containers.map(function(container) {\n mutationObserver.observe(container, {\n subtree: true,\n childList: true\n });\n });\n }\n };\n trap = {\n get active() {\n return state.active;\n },\n get paused() {\n return state.paused;\n },\n activate: function activate(activateOptions) {\n if (state.active) {\n return this;\n }\n var onActivate = getOption(activateOptions, \"onActivate\");\n var onPostActivate = getOption(activateOptions, \"onPostActivate\");\n var checkCanFocusTrap = getOption(activateOptions, \"checkCanFocusTrap\");\n if (!checkCanFocusTrap) {\n updateTabbableNodes();\n }\n state.active = true;\n state.paused = false;\n state.nodeFocusedBeforeActivation = doc.activeElement;\n onActivate === null || onActivate === void 0 || onActivate();\n var finishActivation = function finishActivation2() {\n if (checkCanFocusTrap) {\n updateTabbableNodes();\n }\n addListeners();\n updateObservedNodes();\n onPostActivate === null || onPostActivate === void 0 || onPostActivate();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n },\n deactivate: function deactivate(deactivateOptions) {\n if (!state.active) {\n return this;\n }\n var options = _objectSpread2({\n onDeactivate: config.onDeactivate,\n onPostDeactivate: config.onPostDeactivate,\n checkCanReturnFocus: config.checkCanReturnFocus\n }, deactivateOptions);\n clearTimeout(state.delayInitialFocusTimer);\n state.delayInitialFocusTimer = void 0;\n removeListeners();\n state.active = false;\n state.paused = false;\n updateObservedNodes();\n activeFocusTraps.deactivateTrap(trapStack, trap);\n var onDeactivate = getOption(options, \"onDeactivate\");\n var onPostDeactivate = getOption(options, \"onPostDeactivate\");\n var checkCanReturnFocus = getOption(options, \"checkCanReturnFocus\");\n var returnFocus = getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate === null || onDeactivate === void 0 || onDeactivate();\n var finishDeactivation = function finishDeactivation2() {\n delay(function() {\n if (returnFocus) {\n _tryFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation));\n }\n onPostDeactivate === null || onPostDeactivate === void 0 || onPostDeactivate();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n checkCanReturnFocus(getReturnFocusNode(state.nodeFocusedBeforeActivation)).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n },\n pause: function pause(pauseOptions) {\n if (state.paused || !state.active) {\n return this;\n }\n var onPause = getOption(pauseOptions, \"onPause\");\n var onPostPause = getOption(pauseOptions, \"onPostPause\");\n state.paused = true;\n onPause === null || onPause === void 0 || onPause();\n removeListeners();\n updateObservedNodes();\n onPostPause === null || onPostPause === void 0 || onPostPause();\n return this;\n },\n unpause: function unpause(unpauseOptions) {\n if (!state.paused || !state.active) {\n return this;\n }\n var onUnpause = getOption(unpauseOptions, \"onUnpause\");\n var onPostUnpause = getOption(unpauseOptions, \"onPostUnpause\");\n state.paused = false;\n onUnpause === null || onUnpause === void 0 || onUnpause();\n updateTabbableNodes();\n addListeners();\n updateObservedNodes();\n onPostUnpause === null || onPostUnpause === void 0 || onPostUnpause();\n return this;\n },\n updateContainerElements: function updateContainerElements(containerElements) {\n var elementsAsArray = [].concat(containerElements).filter(Boolean);\n state.containers = elementsAsArray.map(function(element) {\n return typeof element === \"string\" ? doc.querySelector(element) : element;\n });\n if (state.active) {\n updateTabbableNodes();\n }\n updateObservedNodes();\n return this;\n }\n };\n trap.updateContainerElements(elements);\n return trap;\n};\nfunction useFocusTrap(target, options = {}) {\n let trap;\n const { immediate, ...focusTrapOptions } = options;\n const hasFocus = ref(false);\n const isPaused = ref(false);\n const activate = (opts) => trap && trap.activate(opts);\n const deactivate = (opts) => trap && trap.deactivate(opts);\n const pause = () => {\n if (trap) {\n trap.pause();\n isPaused.value = true;\n }\n };\n const unpause = () => {\n if (trap) {\n trap.unpause();\n isPaused.value = false;\n }\n };\n const targets = computed(() => {\n const _targets = toValue(target);\n return (Array.isArray(_targets) ? _targets : [_targets]).map((el) => {\n const _el = toValue(el);\n return typeof _el === \"string\" ? _el : unrefElement(_el);\n }).filter(notNullish);\n });\n watch(\n targets,\n (els) => {\n if (!els.length)\n return;\n trap = createFocusTrap(els, {\n ...focusTrapOptions,\n onActivate() {\n hasFocus.value = true;\n if (options.onActivate)\n options.onActivate();\n },\n onDeactivate() {\n hasFocus.value = false;\n if (options.onDeactivate)\n options.onDeactivate();\n }\n });\n if (immediate)\n activate();\n },\n { flush: \"post\" }\n );\n tryOnScopeDispose(() => deactivate());\n return {\n hasFocus,\n isPaused,\n activate,\n deactivate,\n pause,\n unpause\n };\n}\nconst useActivatedFocusTrap = ({\n element,\n isActive,\n noTrap,\n fallbackFocus\n}, focusTrapOpts = {\n allowOutsideClick: true,\n fallbackFocus: fallbackFocus.ref.value ?? void 0,\n escapeDeactivates: false\n}) => {\n const resolvedIsActive = readonly(toRef(isActive));\n const resolvedNoTrap = readonly(toRef(noTrap));\n const checkNeedsFocus = () => {\n var _a;\n const tabbableElements = (_a = element.value) == null ? void 0 : _a.querySelectorAll(\n `a, button, input, select, textarea, [tabindex]:not([tabindex=\"-1\"]):not(.${fallbackFocus.classSelector})`\n );\n return !tabbableElements || tabbableElements.length === 0;\n };\n const needsFallback = ref(checkNeedsFocus());\n onMounted(() => {\n useMutationObserver(\n element,\n () => {\n needsFallback.value = checkNeedsFocus();\n },\n { childList: true, subtree: true }\n );\n });\n const trap = useFocusTrap(element, focusTrapOpts);\n watch(resolvedIsActive, async (newValue) => {\n await nextTick();\n if (newValue && resolvedNoTrap.value === false) {\n trap.activate();\n } else {\n trap.deactivate();\n }\n });\n watch(resolvedNoTrap, (newValue) => {\n if (newValue === true) {\n trap.deactivate();\n }\n });\n return {\n needsFallback: readonly(needsFallback)\n };\n};\nconst useScrollLock = createSharedComposable(useScrollLock$1);\nlet prevousRightPadding = \"\";\nconst lockRegistry = /* @__PURE__ */ new Map();\nconst useSafeScrollLock = (isOpen, bodyScroll) => {\n const resolvedIsOpen = readonly(toRef(isOpen));\n const id = useId();\n const inverseBodyScrollingValue = computed(() => !toValue$1(bodyScroll));\n const isLocked = useScrollLock(\n typeof document !== \"undefined\" ? document.body : null,\n resolvedIsOpen.value && inverseBodyScrollingValue.value\n );\n onMounted(() => {\n if (typeof document === \"undefined\") return;\n lockRegistry.set(id, false);\n watch(\n [resolvedIsOpen, inverseBodyScrollingValue],\n ([modelVal, bodyVal]) => {\n const scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n const hasLocked = Array.from(lockRegistry.values()).some((val) => val === true);\n const myLocked = modelVal && bodyVal;\n lockRegistry.set(id, myLocked);\n if (myLocked && !hasLocked && !isLocked.value) {\n isLocked.value = true;\n if (scrollBarGap > 0) {\n prevousRightPadding = document.body.style.paddingRight;\n document.body.style.paddingRight = `${scrollBarGap + prevousRightPadding}px`;\n }\n }\n const hasLockedAfter = Array.from(lockRegistry.values()).some((val) => val === true);\n if (hasLocked && !hasLockedAfter) {\n lockRegistry.set(id, false);\n isLocked.value = false;\n document.body.style.paddingRight = prevousRightPadding;\n }\n },\n { immediate: true }\n );\n });\n onUnmounted(() => {\n lockRegistry.delete(id);\n const hasLockedAfter = Array.from(lockRegistry.values()).some((val) => val === true);\n if (!hasLockedAfter) {\n document.body.style.paddingRight = prevousRightPadding;\n isLocked.value = false;\n }\n });\n};\nexport {\n useActivatedFocusTrap as a,\n useSafeScrollLock as u\n};\n//# sourceMappingURL=useSafeScrollLock-DjG0jeMK.mjs.map\n","import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, renderSlot, unref, useSlots, ref, watch, createBlock, normalizeProps, guardReactiveProps, withCtx, withDirectives, createVNode, Fragment, renderList, mergeProps, createTextVNode, toDisplayString, createCommentVNode, vShow, createElementVNode, mergeModels, useModel, onMounted, createSlots } from \"vue\";\nimport { g as get, p as pick, s as set } from \"./object-DIbMZaP9.mjs\";\nimport { _ as _sfc_main$8 } from \"./BTableSimple.vue_vue_type_script_setup_true_lang-Dbrg2rgZ.mjs\";\nimport { u as useDefaults } from \"./useDefaults-BTLXvYhO.mjs\";\nimport { a as titleCase, s as startCase } from \"./stringUtils-DNoLRB2A.mjs\";\nimport { u as useId } from \"./useId-c2wnQbyL.mjs\";\nimport { u as useToNumber } from \"./index-D3jGjWWk.mjs\";\nconst formatItem = (item, fieldKey, formatter) => {\n const val = get(item, fieldKey);\n return formatter && typeof formatter === \"function\" ? formatter(val, fieldKey, item) : val;\n};\nconst isTableItem = (value) => typeof value === \"object\" && value !== null;\nconst isTableField = (value) => typeof value === \"object\" && value !== null && \"key\" in value;\nconst _sfc_main$7 = /* @__PURE__ */ defineComponent({\n __name: \"BTbody\",\n props: {\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BTbody\");\n const computedClasses = computed(() => ({\n [`thead-${props.variant}`]: props.variant !== null\n }));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tbody\", {\n class: normalizeClass(computedClasses.value)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst _hoisted_1$3 = [\"scope\", \"colspan\", \"rowspan\", \"data-label\"];\nconst _hoisted_2$3 = { key: 0 };\nconst _sfc_main$6 = /* @__PURE__ */ defineComponent({\n __name: \"BTd\",\n props: {\n colspan: { default: void 0 },\n rowspan: { default: void 0 },\n stackedHeading: { default: void 0 },\n stickyColumn: { type: Boolean, default: false },\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BTd\");\n const computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n \"b-table-sticky-column\": props.stickyColumn,\n \"table-b-table-default\": props.stickyColumn && props.variant === null\n }));\n const scope = computed(() => props.colspan ? \"colspan\" : props.rowspan ? \"rowspan\" : \"col\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"td\", {\n scope: scope.value,\n class: normalizeClass(computedClasses.value),\n colspan: unref(props).colspan,\n rowspan: unref(props).rowspan,\n \"data-label\": unref(props).stackedHeading\n }, [\n unref(props).stackedHeading ? (openBlock(), createElementBlock(\"div\", _hoisted_2$3, [\n renderSlot(_ctx.$slots, \"default\")\n ])) : renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 10, _hoisted_1$3);\n };\n }\n});\nconst _sfc_main$5 = /* @__PURE__ */ defineComponent({\n __name: \"BTfoot\",\n props: {\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BTfoot\");\n const computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null\n }));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tfoot\", {\n class: normalizeClass(computedClasses.value)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst _hoisted_1$2 = [\"scope\", \"colspan\", \"rowspan\", \"data-label\"];\nconst _hoisted_2$2 = { key: 0 };\nconst _sfc_main$4 = /* @__PURE__ */ defineComponent({\n __name: \"BTh\",\n props: {\n colspan: { default: void 0 },\n rowspan: { default: void 0 },\n stackedHeading: { default: void 0 },\n stickyColumn: { type: Boolean, default: false },\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BTh\");\n const computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n \"b-table-sticky-column\": props.stickyColumn,\n \"table-b-table-default\": props.stickyColumn && props.variant === null\n }));\n const scope = computed(() => props.colspan ? \"colspan\" : props.rowspan ? \"rowspan\" : \"col\");\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"th\", {\n scope: scope.value,\n class: normalizeClass(computedClasses.value),\n colspan: unref(props).colspan,\n rowspan: unref(props).rowspan,\n \"data-label\": unref(props).stackedHeading\n }, [\n unref(props).stackedHeading !== void 0 ? (openBlock(), createElementBlock(\"div\", _hoisted_2$2, [\n renderSlot(_ctx.$slots, \"default\")\n ])) : renderSlot(_ctx.$slots, \"default\", { key: 1 })\n ], 10, _hoisted_1$2);\n };\n }\n});\nconst _sfc_main$3 = /* @__PURE__ */ defineComponent({\n __name: \"BThead\",\n props: {\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BThead\");\n const computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null\n }));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"thead\", {\n class: normalizeClass(computedClasses.value)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst _sfc_main$2 = /* @__PURE__ */ defineComponent({\n __name: \"BTr\",\n props: {\n variant: { default: null }\n },\n setup(__props) {\n const _props = __props;\n const props = useDefaults(_props, \"BTr\");\n const computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null\n }));\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"tr\", {\n class: normalizeClass(computedClasses.value)\n }, [\n renderSlot(_ctx.$slots, \"default\")\n ], 2);\n };\n }\n});\nconst getTableFieldHeadLabel = (field) => typeof field === \"string\" ? titleCase(field) : field.label !== void 0 ? field.label : typeof field.key === \"string\" ? titleCase(field.key) : field.key;\nconst btableSimpleProps = Object.freeze(\n Object.keys({\n bordered: 0,\n borderless: 0,\n borderVariant: 0,\n captionTop: 0,\n dark: 0,\n fixed: 0,\n hover: 0,\n id: 0,\n noBorderCollapse: 0,\n outlined: 0,\n responsive: 0,\n small: 0,\n stacked: 0,\n stickyHeader: 0,\n striped: 0,\n stripedColumns: 0,\n variant: 0,\n tableAttrs: 0,\n tableClass: 0\n })\n);\nconst btableLiteProps = Object.freeze(\n Object.keys({\n align: 0,\n caption: 0,\n detailsTdClass: 0,\n fieldColumnClass: 0,\n fields: 0,\n footClone: 0,\n footRowVariant: 0,\n footVariant: 0,\n headRowVariant: 0,\n headVariant: 0,\n items: 0,\n labelStacked: 0,\n modelValue: 0,\n primaryKey: 0,\n tbodyClass: 0,\n tbodyTrAttrs: 0,\n tbodyTrClass: 0,\n tfootClass: 0,\n tfootTrClass: 0,\n theadClass: 0,\n theadTrClass: 0\n })\n);\nconst TABLE_TAG_NAMES = [\"TD\", \"TH\", \"TR\"];\nconst eventFilter = [\n \"a\",\n \"a *\",\n // Include content inside links\n \"button\",\n \"button *\",\n // Include content inside buttons\n \"input:not(.disabled):not([disabled])\",\n \"select:not(.disabled):not([disabled])\",\n \"textarea:not(.disabled):not([disabled])\",\n '[role=\"link\"]',\n '[role=\"link\"] *',\n '[role=\"button\"]',\n '[role=\"button\"] *',\n \"[tabindex]:not(.disabled):not([disabled])\"\n].join(\",\");\nconst filterEvent = (event) => {\n if (!event || !event.target) {\n return false;\n }\n const el = event.target;\n if (\"disabled\" in el && el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n }\n if (el.closest(\".dropdown-menu\")) return true;\n const label = el.tagName === \"LABEL\" ? el : el.closest(\"label\");\n if (label) {\n const labelFor = label.getAttribute(\"for\");\n const input = labelFor ? document.getElementById(labelFor) : label.querySelector(\"input, select, textarea\");\n if (input && !input.disabled) {\n return true;\n }\n }\n return el.matches(eventFilter);\n};\nconst _hoisted_1$1 = {\n key: 0,\n class: \"b-table-stacked-label\"\n};\nconst _hoisted_2$1 = { class: \"d-inline-flex flex-nowrap align-items-center gap-1\" };\nconst _hoisted_3$1 = { key: 2 };\nconst _sfc_main$1 = /* @__PURE__ */ defineComponent({\n __name: \"BTableLite\",\n props: {\n align: { default: void 0 },\n caption: { default: void 0 },\n detailsTdClass: { default: void 0 },\n fieldColumnClass: { type: [Function, String, Object, Array], default: void 0 },\n fields: { default: () => [] },\n footClone: { type: Boolean, default: false },\n footRowVariant: { default: void 0 },\n footVariant: { default: void 0 },\n headRowVariant: { default: void 0 },\n headVariant: { default: void 0 },\n items: { default: () => [] },\n labelStacked: { type: Boolean, default: false },\n modelValue: { default: void 0 },\n primaryKey: { default: void 0 },\n tbodyClass: { default: void 0 },\n tbodyTrAttrs: { type: [Function, Object], default: void 0 },\n tbodyTrClass: { type: [Function, String, Array, Object], default: void 0 },\n tfootClass: { default: void 0 },\n tfootTrClass: { default: void 0 },\n theadClass: { default: void 0 },\n theadTrClass: { default: void 0 },\n bordered: { type: Boolean, default: void 0 },\n borderless: { type: Boolean, default: void 0 },\n borderVariant: { default: void 0 },\n captionTop: { type: Boolean, default: void 0 },\n dark: { type: Boolean, default: void 0 },\n fixed: { type: Boolean, default: void 0 },\n hover: { type: Boolean, default: void 0 },\n id: { default: void 0 },\n noBorderCollapse: { type: Boolean, default: void 0 },\n outlined: { type: Boolean, default: void 0 },\n responsive: { type: [Boolean, String], default: void 0 },\n small: { type: Boolean, default: void 0 },\n stacked: { type: [Boolean, String], default: void 0 },\n stickyHeader: { type: [Boolean, String, Number], default: void 0 },\n striped: { type: Boolean, default: void 0 },\n stripedColumns: { type: Boolean, default: void 0 },\n variant: { default: void 0 },\n tableAttrs: {},\n tableClass: { default: void 0 }\n },\n emits: [\"head-clicked\", \"row-clicked\", \"row-dblclicked\", \"row-contextmenu\", \"row-hovered\", \"row-unhovered\", \"row-middle-clicked\"],\n setup(__props, { emit: __emit }) {\n const _props = __props;\n const props = useDefaults(_props, \"BTableLite\");\n const emit = __emit;\n const slots = useSlots();\n const computedId = useId(() => props.id);\n const generateDetailsItem = (item) => [\n item,\n item._showDetails\n ];\n const detailsMap = ref(/* @__PURE__ */ new WeakMap());\n watch(\n () => props.items,\n (items) => {\n items.forEach((item) => {\n if (!isTableItem(item)) return;\n detailsMap.value.set(...generateDetailsItem(item));\n });\n },\n { deep: true, immediate: true }\n );\n const computedTableClasses = computed(() => [\n props.tableClass,\n {\n [`align-${props.align}`]: props.align !== void 0\n }\n ]);\n const computedFields = computed(() => {\n if (!props.fields.length && props.items.length) {\n const [firstItem] = props.items;\n if (isTableItem(firstItem) || Array.isArray(firstItem)) {\n return Object.keys(firstItem).map((k) => {\n const label = startCase(k);\n return {\n key: k,\n label,\n tdAttr: props.stacked === true ? { \"data-label\": label } : void 0\n };\n });\n }\n return [{ key: \"\", _noHeader: true }];\n }\n return props.fields.map((f) => {\n if (isTableField(f)) {\n return {\n ...f,\n tdAttr: props.stacked === true ? { \"data-label\": startCase(f.key), ...f.tdAttr } : f.tdAttr\n };\n }\n const label = startCase(f);\n return {\n key: f,\n label,\n tdAttr: props.stacked === true ? { \"data-label\": label } : void 0\n };\n });\n });\n const computedFieldsTotal = computed(() => computedFields.value.length);\n const showComputedHeaders = computed(() => {\n if (computedFieldsTotal.value > 0 && computedFields.value.every((el) => el._noHeader === true))\n return false;\n return true;\n });\n const footerProps = computed(() => ({\n variant: props.footVariant,\n class: props.tfootClass\n }));\n const itemAttributes = (item, fieldKey, attr) => {\n const val = get(item, fieldKey);\n return attr && typeof attr === \"function\" ? attr(val, fieldKey, item) : attr;\n };\n const callThAttr = (item, field, type) => {\n const fieldKey = String(field.key);\n const val = get(item, fieldKey);\n return field.thAttr && typeof field.thAttr === \"function\" ? field.thAttr(val, fieldKey, item, type) : field.thAttr;\n };\n const headerClicked = (field, event, isFooter = false) => {\n emit(\"head-clicked\", field.key, field, event, isFooter);\n };\n const toggleRowDetails = (tr) => {\n if (isTableItem(tr)) {\n const prevValue = detailsMap.value.get(tr);\n detailsMap.value.set(tr, !prevValue);\n tr._showDetails = !prevValue;\n }\n };\n const getFieldColumnClasses = (field) => [\n field.class,\n field.thClass,\n {\n \"b-table-sticky-column\": field.stickyColumn\n },\n props.fieldColumnClass ? typeof props.fieldColumnClass === \"function\" ? props.fieldColumnClass(field) : props.fieldColumnClass : null\n ];\n const getFieldRowClasses = (field, tr) => {\n var _a, _b;\n const val = get(tr, String(field.key));\n return [\n field.class,\n typeof field.tdClass === \"function\" ? field.tdClass(val, String(field.key), tr) : field.tdClass,\n (isTableItem(tr) ? (_a = tr._cellVariants) == null ? void 0 : _a[field.key] : false) ? `table-${(_b = tr._cellVariants) == null ? void 0 : _b[field.key]}` : null,\n {\n \"b-table-sticky-column\": field.stickyColumn\n }\n ];\n };\n const handleMiddleClick = (item, itemIndex, event) => {\n if (event.button === 1 && !filterEvent(event)) {\n emit(\"row-middle-clicked\", item, itemIndex, event);\n }\n };\n const callTbodyTrAttrs = (item, type) => props.tbodyTrAttrs ? typeof props.tbodyTrAttrs === \"function\" ? props.tbodyTrAttrs(item, type) : props.tbodyTrAttrs : null;\n const getRowClasses = (item, type) => props.tbodyTrClass ? typeof props.tbodyTrClass === \"function\" ? props.tbodyTrClass(item, type) : props.tbodyTrClass : null;\n const generateTableRowId = (primaryKeyValue) => `${computedId.value}__row_${primaryKeyValue}`;\n const computedSimpleProps = computed(() => ({\n ...pick(props, btableSimpleProps),\n tableClass: computedTableClasses.value,\n id: computedId.value\n }));\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$8, normalizeProps(guardReactiveProps(computedSimpleProps.value)), {\n default: withCtx(() => [\n withDirectives(createVNode(_sfc_main$3, {\n variant: unref(props).headVariant,\n class: normalizeClass(unref(props).theadClass)\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"thead-top\", {\n columns: computedFieldsTotal.value,\n fields: computedFields.value\n }),\n createVNode(_sfc_main$2, {\n variant: unref(props).headRowVariant,\n class: normalizeClass(unref(props).theadTrClass)\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(computedFields.value, (field) => {\n return openBlock(), createBlock(_sfc_main$4, mergeProps({\n key: field.key,\n scope: \"col\",\n class: getFieldColumnClasses(field),\n title: field.headerTitle,\n variant: field.variant,\n abbr: field.headerAbbr,\n style: field.thStyle,\n ref_for: true\n }, callThAttr(null, field, \"top\"), {\n onClick: ($event) => headerClicked(field, $event)\n }), {\n default: withCtx(() => [\n renderSlot(\n _ctx.$slots,\n slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : \"head()\",\n {\n label: field.label,\n column: field.key,\n field,\n isFoot: false\n },\n () => [\n createTextVNode(toDisplayString(unref(getTableFieldHeadLabel)(field)), 1)\n ]\n )\n ]),\n _: 2\n }, 1040, [\"class\", \"title\", \"variant\", \"abbr\", \"style\", \"onClick\"]);\n }), 128))\n ]),\n _: 3\n }, 8, [\"variant\", \"class\"]),\n slots[\"thead-sub\"] ? (openBlock(), createBlock(_sfc_main$2, { key: 0 }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(computedFields.value, (field) => {\n return openBlock(), createBlock(_sfc_main$6, {\n key: field.key,\n scope: \"col\",\n variant: field.variant,\n class: normalizeClass([field.class, field.thClass])\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"thead-sub\", {\n items: unref(props).items,\n fields: computedFields.value,\n field\n }, () => [\n createTextVNode(toDisplayString(field.label), 1)\n ])\n ]),\n _: 2\n }, 1032, [\"variant\", \"class\"]);\n }), 128))\n ]),\n _: 3\n })) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 8, [\"variant\", \"class\"]), [\n [vShow, showComputedHeaders.value]\n ]),\n createVNode(_sfc_main$7, {\n class: normalizeClass(unref(props).tbodyClass)\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"custom-body\", {\n fields: computedFields.value,\n items: unref(props).items,\n columns: computedFieldsTotal.value\n }, () => [\n !unref(props).stacked && slots[\"top-row\"] ? (openBlock(), createBlock(_sfc_main$2, mergeProps({\n key: 0,\n class: getRowClasses(null, \"row-top\")\n }, callTbodyTrAttrs(null, \"row-top\")), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"top-row\", {\n columns: computedFieldsTotal.value,\n fields: computedFields.value\n })\n ]),\n _: 3\n }, 16, [\"class\"])) : createCommentVNode(\"\", true),\n (openBlock(true), createElementBlock(Fragment, null, renderList(unref(props).items, (item, itemIndex) => {\n return openBlock(), createElementBlock(Fragment, {\n key: unref(props).primaryKey && unref(get)(item, unref(props).primaryKey) ? unref(get)(item, unref(props).primaryKey) : itemIndex\n }, [\n createVNode(_sfc_main$2, mergeProps({\n id: unref(props).primaryKey && unref(get)(item, unref(props).primaryKey) ? generateTableRowId(unref(get)(item, unref(props).primaryKey)) : void 0,\n class: getRowClasses(item, \"row\"),\n variant: unref(isTableItem)(item) ? item._rowVariant : void 0,\n ref_for: true\n }, callTbodyTrAttrs(item, \"row\"), {\n onClick: ($event) => !unref(filterEvent)($event) && emit(\"row-clicked\", item, itemIndex, $event),\n onDblclick: ($event) => !unref(filterEvent)($event) && emit(\"row-dblclicked\", item, itemIndex, $event),\n onContextmenu: ($event) => !unref(filterEvent)($event) && emit(\"row-contextmenu\", item, itemIndex, $event),\n onMouseenter: ($event) => !unref(filterEvent)($event) && emit(\"row-hovered\", item, itemIndex, $event),\n onMouseleave: ($event) => !unref(filterEvent)($event) && emit(\"row-unhovered\", item, itemIndex, $event),\n onMousedown: ($event) => handleMiddleClick(item, itemIndex, $event)\n }), {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(computedFields.value, (field) => {\n var _a;\n return openBlock(), createBlock(_sfc_main$6, mergeProps({\n key: field.key,\n variant: (unref(isTableItem)(item) ? (_a = item._cellVariants) == null ? void 0 : _a[field.key] : false) ? null : field.variant,\n class: getFieldRowClasses(field, item),\n ref_for: true\n }, itemAttributes(item, String(field.key), field.tdAttr)), {\n default: withCtx(() => [\n unref(props).stacked && unref(props).labelStacked ? (openBlock(), createElementBlock(\"label\", _hoisted_1$1, toDisplayString(unref(getTableFieldHeadLabel)(field)), 1)) : createCommentVNode(\"\", true),\n renderSlot(\n _ctx.$slots,\n slots[`cell(${String(field.key)})`] ? `cell(${String(field.key)})` : \"cell()\",\n {\n value: unref(formatItem)(item, String(field.key), field.formatter),\n unformatted: unref(get)(item, String(field.key)),\n index: itemIndex,\n item,\n field,\n items: _ctx.items,\n toggleDetails: () => toggleRowDetails(item),\n detailsShowing: unref(isTableItem)(item) ? detailsMap.value.get(item) ?? false : false\n },\n () => [\n !slots[`cell(${String(field.key)})`] && !slots[\"cell()\"] ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createTextVNode(toDisplayString(unref(formatItem)(item, String(field.key), field.formatter)), 1)\n ], 64)) : createCommentVNode(\"\", true)\n ]\n )\n ]),\n _: 2\n }, 1040, [\"variant\", \"class\"]);\n }), 128))\n ]),\n _: 2\n }, 1040, [\"id\", \"class\", \"variant\", \"onClick\", \"onDblclick\", \"onContextmenu\", \"onMouseenter\", \"onMouseleave\", \"onMousedown\"]),\n unref(isTableItem)(item) && detailsMap.value.get(item) === true && slots[\"row-details\"] ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n createVNode(_sfc_main$2, {\n \"aria-hidden\": \"true\",\n role: \"presentation\",\n class: \"d-none\"\n }),\n createVNode(_sfc_main$2, mergeProps({\n class: getRowClasses(item, \"row-details\"),\n variant: item._rowVariant,\n ref_for: true\n }, callTbodyTrAttrs(item, \"row-details\")), {\n default: withCtx(() => [\n createVNode(_sfc_main$6, {\n colspan: computedFieldsTotal.value,\n class: normalizeClass(_ctx.detailsTdClass)\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"row-details\", {\n item,\n toggleDetails: () => toggleRowDetails(item),\n fields: computedFields.value,\n index: itemIndex\n })\n ]),\n _: 2\n }, 1032, [\"colspan\", \"class\"])\n ]),\n _: 2\n }, 1040, [\"class\", \"variant\"])\n ], 64)) : createCommentVNode(\"\", true)\n ], 64);\n }), 128)),\n !unref(props).stacked && slots[\"bottom-row\"] ? (openBlock(), createBlock(_sfc_main$2, mergeProps({\n key: 1,\n class: [\"bottom-row\", getRowClasses(null, \"row-bottom\")]\n }, callTbodyTrAttrs(null, \"row-bottom\")), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"bottom-row\", {\n columns: computedFieldsTotal.value,\n fields: computedFields.value\n })\n ]),\n _: 3\n }, 16, [\"class\"])) : createCommentVNode(\"\", true)\n ])\n ]),\n _: 3\n }, 8, [\"class\"]),\n unref(props).footClone ? (openBlock(), createBlock(_sfc_main$5, normalizeProps(mergeProps({ key: 0 }, footerProps.value)), {\n default: withCtx(() => [\n createVNode(_sfc_main$2, {\n variant: unref(props).footRowVariant,\n class: normalizeClass(unref(props).tfootTrClass)\n }, {\n default: withCtx(() => [\n (openBlock(true), createElementBlock(Fragment, null, renderList(computedFields.value, (field) => {\n return openBlock(), createBlock(_sfc_main$4, mergeProps({\n key: field.key,\n scope: \"col\",\n class: getFieldColumnClasses(field),\n title: field.headerTitle,\n abbr: field.headerAbbr,\n style: field.thStyle,\n variant: field.variant,\n ref_for: true\n }, callThAttr(null, field, \"bottom\"), {\n onClick: ($event) => headerClicked(field, $event, true)\n }), {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2$1, [\n createElementVNode(\"div\", null, [\n renderSlot(\n _ctx.$slots,\n slots[`foot(${String(field.key)})`] ? `foot(${String(field.key)})` : \"foot()\",\n {\n label: field.label,\n column: field.key,\n field,\n isFoot: true\n },\n () => [\n createTextVNode(toDisplayString(unref(getTableFieldHeadLabel)(field)), 1)\n ]\n )\n ])\n ])\n ]),\n _: 2\n }, 1040, [\"class\", \"title\", \"abbr\", \"style\", \"variant\", \"onClick\"]);\n }), 128))\n ]),\n _: 3\n }, 8, [\"variant\", \"class\"])\n ]),\n _: 3\n }, 16)) : slots[\"custom-foot\"] ? (openBlock(), createBlock(_sfc_main$5, normalizeProps(mergeProps({ key: 1 }, footerProps.value)), {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"custom-foot\", {\n fields: computedFields.value,\n items: unref(props).items,\n columns: computedFieldsTotal.value\n })\n ]),\n _: 3\n }, 16)) : createCommentVNode(\"\", true),\n slots[\"table-caption\"] || unref(props).caption ? (openBlock(), createElementBlock(\"caption\", _hoisted_3$1, [\n renderSlot(_ctx.$slots, \"table-caption\", {}, () => [\n createTextVNode(toDisplayString(unref(props).caption), 1)\n ])\n ])) : createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 16);\n };\n }\n});\nconst _hoisted_1 = {\n style: { opacity: 0.4 },\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\",\n class: \"bi bi-arrow-up-short\",\n viewBox: \"0 0 16 16\",\n \"aria-hidden\": \"\"\n};\nconst _hoisted_2 = {\n role: \"alert\",\n \"aria-live\": \"polite\"\n};\nconst _hoisted_3 = { class: \"text-center my-2\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"BTable\",\n props: /* @__PURE__ */ mergeModels({\n provider: { default: void 0 },\n noProvider: { default: void 0 },\n noProviderPaging: { type: Boolean, default: false },\n noProviderSorting: { type: Boolean, default: false },\n noProviderFiltering: { type: Boolean, default: false },\n mustSort: { type: [Boolean, Array], default: false },\n selectable: { type: Boolean, default: false },\n multisort: { type: Boolean, default: false },\n stickySelect: { type: Boolean, default: false },\n selectHead: { type: [Boolean, String], default: true },\n selectMode: { default: \"multi\" },\n selectionVariant: { default: \"primary\" },\n busyLoadingText: { default: \"Loading...\" },\n perPage: { default: Number.POSITIVE_INFINITY },\n currentPage: { default: 1 },\n filter: { default: void 0 },\n filterFunction: { type: Function, default: void 0 },\n filterable: { default: void 0 },\n noLocalSorting: { type: Boolean, default: false },\n noSelectOnClick: { type: Boolean, default: false },\n noSortableIcon: { type: Boolean, default: false },\n emptyFilteredText: { default: \"There are no records matching your request\" },\n emptyText: { default: \"There are no records to show\" },\n showEmpty: { type: Boolean, default: false },\n align: { default: void 0 },\n caption: { default: void 0 },\n detailsTdClass: { default: void 0 },\n fieldColumnClass: { type: [Function, String, Object, Array], default: void 0 },\n fields: { default: () => [] },\n footClone: { type: Boolean, default: void 0 },\n footRowVariant: { default: void 0 },\n footVariant: { default: void 0 },\n headRowVariant: { default: void 0 },\n headVariant: { default: void 0 },\n items: { default: () => [] },\n labelStacked: { type: Boolean, default: void 0 },\n modelValue: { default: void 0 },\n primaryKey: { default: void 0 },\n tbodyClass: { default: void 0 },\n tbodyTrAttrs: {},\n tbodyTrClass: { type: [Function, String, Array, Object], default: void 0 },\n tfootClass: { default: void 0 },\n tfootTrClass: { default: void 0 },\n theadClass: { default: void 0 },\n theadTrClass: { default: void 0 },\n bordered: { type: Boolean, default: void 0 },\n borderless: { type: Boolean, default: void 0 },\n borderVariant: { default: void 0 },\n captionTop: { type: Boolean, default: void 0 },\n dark: { type: Boolean, default: void 0 },\n fixed: { type: Boolean, default: void 0 },\n hover: { type: Boolean, default: void 0 },\n id: { default: void 0 },\n noBorderCollapse: { type: Boolean, default: void 0 },\n outlined: { type: Boolean, default: void 0 },\n responsive: { type: [Boolean, String], default: void 0 },\n small: { type: Boolean, default: void 0 },\n stacked: { type: [Boolean, String], default: void 0 },\n stickyHeader: { type: [Boolean, String, Number], default: void 0 },\n striped: { type: Boolean, default: void 0 },\n stripedColumns: { type: Boolean, default: void 0 },\n variant: { default: void 0 },\n tableAttrs: {}\n }, {\n \"sortBy\": {\n default: void 0\n },\n \"sortByModifiers\": {},\n \"busy\": { type: Boolean, ...{\n default: false\n } },\n \"busyModifiers\": {},\n \"selectedItems\": {\n default: () => []\n },\n \"selectedItemsModifiers\": {}\n }),\n emits: /* @__PURE__ */ mergeModels([\"filtered\", \"head-clicked\", \"row-clicked\", \"row-dblclicked\", \"row-contextmenu\", \"row-hovered\", \"row-unhovered\", \"row-middle-clicked\", \"row-selected\", \"row-unselected\", \"sorted\", \"change\"], [\"update:sortBy\", \"update:busy\", \"update:selectedItems\"]),\n setup(__props, { expose: __expose, emit: __emit }) {\n const _props = __props;\n const props = useDefaults(_props, \"BTable\");\n const emit = __emit;\n const slots = useSlots();\n const dynamicCellSlots = computed(\n () => Object.keys(slots).filter((key) => key.startsWith(\"cell(\"))\n );\n const dynamicFootSlots = computed(\n () => Object.keys(slots).filter((key) => key.startsWith(\"foot(\"))\n );\n const sortByModel = useModel(__props, \"sortBy\");\n const busyModel = useModel(__props, \"busy\");\n const selectedItemsModel = useModel(\n __props,\n \"selectedItems\"\n );\n const computedId = useId(() => props.id);\n const selectedItemsToSet = computed({\n get: () => /* @__PURE__ */ new Set([...selectedItemsModel.value]),\n set: (val) => {\n selectedItemsModel.value = [...val];\n }\n });\n watch(selectedItemsToSet, (newValue, oldValue) => {\n Array.from(oldValue).filter((item) => !newValue.has(item)).forEach((item) => {\n emit(\"row-unselected\", item);\n });\n Array.from(newValue).filter((item) => !oldValue.has(item)).forEach((item) => {\n emit(\"row-selected\", item);\n });\n });\n const selectedItemsSetUtilities = {\n add: (item) => {\n const value = new Set(selectedItemsToSet.value);\n value.add(item);\n selectedItemsToSet.value = value;\n },\n clear: () => {\n selectedItemsToSet.value.forEach((item) => {\n selectedItemsSetUtilities.delete(item);\n });\n },\n delete: (item) => {\n const value = new Set(selectedItemsToSet.value);\n if (props.primaryKey) {\n const pkey = props.primaryKey;\n selectedItemsModel.value.forEach((v, i) => {\n const selectedKey = get(v, pkey);\n const itemKey = get(item, pkey);\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) {\n value.delete(selectedItemsModel.value[i]);\n }\n });\n } else {\n value.delete(item);\n }\n selectedItemsToSet.value = value;\n },\n set: (items) => {\n selectedItemsToSet.value = new Set(items);\n },\n has: (item) => {\n if (!props.primaryKey) return selectedItemsToSet.value.has(item);\n const pkey = props.primaryKey;\n for (const selected of selectedItemsToSet.value) {\n const selectedKey = get(selected, pkey);\n const itemKey = get(item, pkey);\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) return true;\n }\n return false;\n }\n };\n const internalItems = ref([]);\n const perPageNumber = useToNumber(() => props.perPage, { method: \"parseInt\" });\n const currentPageNumber = useToNumber(() => props.currentPage, { method: \"parseInt\" });\n const isFilterableTable = computed(() => !!props.filter);\n const usesProvider = computed(() => props.provider !== void 0);\n const isSelecting = computed(() => selectedItemsToSet.value.size > 0);\n const isSortable = computed(\n () => sortByModel.value !== void 0 || props.fields.some(\n (field) => typeof field === \"object\" && field !== null && field.sortable === true\n )\n );\n const computedFields = computed(\n () => props.fields.map((el) => {\n var _a;\n if (!isTableField(el)) {\n const label = startCase(el);\n return {\n key: el,\n label,\n tdAttr: props.stacked === true ? { \"data-label\": label } : void 0\n };\n }\n const value = (_a = sortByModel.value) == null ? void 0 : _a.find((sb) => el.key === sb.key);\n const sortValue = isSortable.value === false ? void 0 : value === void 0 ? \"none\" : value.order === \"desc\" ? \"descending\" : value.order === \"asc\" ? \"ascending\" : \"none\";\n return {\n ...el,\n thAttr: {\n \"aria-sort\": sortValue,\n ...el.thAttr\n }\n };\n })\n );\n const tableClasses = computed(() => ({\n \"b-table-busy\": busyModel.value,\n \"b-table-selectable\": props.selectable,\n \"user-select-none\": props.selectable && isSelecting.value\n }));\n const getBusyRowClasses = computed(() => [\n props.tbodyTrClass ? typeof props.tbodyTrClass === \"function\" ? props.tbodyTrClass(null, \"table-busy\") : props.tbodyTrClass : null\n ]);\n const getFieldColumnClasses = (field) => [\n {\n \"b-table-sortable-column\": isSortable.value && field.sortable\n }\n ];\n const getRowClasses = (item, type) => [\n {\n [`selected table-${props.selectionVariant}`]: props.selectable && !!item && selectedItemsSetUtilities.has(item)\n },\n props.tbodyTrClass ? typeof props.tbodyTrClass === \"function\" ? props.tbodyTrClass(item, type) : props.tbodyTrClass : null\n ];\n const getFormatter = (value) => typeof value.sortByFormatted === \"function\" ? value.sortByFormatted : value.formatter;\n const computedItems = computed(() => {\n var _a;\n const sortByItems = (_a = sortByModel.value) == null ? void 0 : _a.filter((el) => !!el.order);\n const mapItem = (item) => {\n if (typeof item === \"object\" && item !== null && Object.keys(item).some((key) => key.includes(\".\"))) {\n let newItem = {};\n for (const key in item) {\n if (key.includes(\".\")) {\n newItem = set(newItem, key, item[key]);\n } else {\n newItem[key] = item[key];\n }\n }\n return newItem;\n }\n return item;\n };\n const filterItem = (item) => {\n if (!isTableItem(item)) return true;\n return Object.entries(item).some(([key, val]) => {\n var _a2, _b, _c;\n if (val === null || val === void 0 || key[0] === \"_\" || !((_a2 = props.filterable) == null ? void 0 : _a2.includes(key)) && !!((_b = props.filterable) == null ? void 0 : _b.length))\n return false;\n if (props.filterFunction && typeof props.filterFunction === \"function\") {\n return props.filterFunction(item, props.filter);\n }\n const realVal = () => {\n const filterField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === key;\n return false;\n });\n if (isTableField(filterField) && !!filterField.filterByFormatted) {\n const formatter = getFormatter(filterField);\n if (formatter) {\n return String(formatter(val, String(filterField.key), item));\n }\n }\n return typeof val === \"object\" ? JSON.stringify(Object.values(val)) : val.toString();\n };\n const itemValue = realVal();\n return itemValue.toLowerCase().includes(((_c = props.filter) == null ? void 0 : _c.toLowerCase()) ?? \"\");\n });\n };\n const mappedItems = (usesProvider.value ? internalItems.value : props.items).reduce(\n (acc, val) => {\n const item = mapItem(val);\n const shouldFilter = isFilterableTable.value && (!usesProvider.value || props.noProviderFiltering);\n if (!shouldFilter || filterItem(item)) acc.push(item);\n return acc;\n },\n []\n );\n if ((sortByItems == null ? void 0 : sortByItems.length) && (isSortable.value === true && !usesProvider.value && !props.noLocalSorting || isSortable.value === true && usesProvider.value && props.noProviderSorting)) {\n return mappedItems.sort((a, b) => {\n for (let i = 0; i < sortByItems.length; i++) {\n const sortOption = sortByItems[i];\n const realVal = (ob) => {\n if (!isTableItem(ob)) return String(ob);\n const sortField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === sortOption.key;\n return false;\n });\n const val = get(ob, sortOption.key);\n if (isTableField(sortField) && !!sortField.sortByFormatted) {\n const formatter = getFormatter(sortField);\n if (formatter) {\n return String(formatItem(ob, String(sortField.key), formatter));\n }\n }\n return typeof val === \"object\" && val !== null ? JSON.stringify(val) : (val == null ? void 0 : val.toString()) ?? \"\";\n };\n const aValue = realVal(a);\n const bValue = realVal(b);\n const comparison = sortOption.comparer ? sortOption.comparer(aValue, bValue) : aValue.localeCompare(bValue, void 0, { numeric: true });\n if (comparison !== 0) {\n return sortOption.order === \"asc\" ? comparison : -comparison;\n }\n }\n return 0;\n });\n }\n return mappedItems;\n });\n const emptySlotScope = computed(() => ({\n emptyFilteredText: props.emptyFilteredText,\n emptyText: props.emptyText,\n fields: computedFields.value,\n items: computedItems.value\n }));\n const computedDisplayItems = computed(() => {\n if (Number.isNaN(perPageNumber.value) || usesProvider.value && !props.noProviderPaging) {\n return computedItems.value;\n }\n return computedItems.value.slice(\n (currentPageNumber.value - 1) * (perPageNumber.value || Number.POSITIVE_INFINITY),\n currentPageNumber.value * (perPageNumber.value || Number.POSITIVE_INFINITY)\n );\n });\n watch(computedDisplayItems, (v) => {\n emit(\"change\", v);\n });\n const handleRowSelection = (row, index, shiftClicked = false, ctrlClicked = false, metaClicked = false) => {\n if (!props.selectable) return;\n if (props.selectMode === \"single\" || props.selectMode === \"multi\") {\n if (shiftClicked || ctrlClicked) return;\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row);\n } else {\n if (props.selectMode === \"single\") {\n selectedItemsSetUtilities.set([row]);\n } else {\n selectedItemsSetUtilities.add(row);\n }\n }\n } else {\n if (ctrlClicked || metaClicked) {\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row);\n } else {\n selectedItemsSetUtilities.add(row);\n }\n } else if (shiftClicked) {\n const lastSelectedItem = [...selectedItemsToSet.value].pop();\n const lastSelectedIndex = computedItems.value.findIndex((i) => i === lastSelectedItem);\n const selectStartIndex = Math.min(lastSelectedIndex, index);\n const selectEndIndex = Math.max(lastSelectedIndex, index);\n const items = computedItems.value.slice(selectStartIndex, selectEndIndex + 1);\n selectedItemsSetUtilities.set(items);\n } else {\n selectedItemsSetUtilities.set([row]);\n }\n }\n };\n const onRowClick = (row, index, e) => {\n if (props.noSelectOnClick === false) {\n handleRowSelection(row, index, e.shiftKey, e.ctrlKey, e.metaKey);\n }\n emit(\"row-clicked\", row, index, e);\n };\n const handleFieldSorting = (field) => {\n var _a, _b;\n if (!isSortable.value) return;\n const fieldKey = typeof field === \"object\" && field !== null ? field.key : field;\n const fieldSortable = typeof field === \"object\" && field !== null ? field.sortable : false;\n if (!(isSortable.value === true && fieldSortable === true)) return;\n const resolveOrder = (val) => {\n if (val === \"asc\") return \"desc\";\n if (val === void 0) return \"asc\";\n if (props.mustSort === true || Array.isArray(props.mustSort) && props.mustSort.includes(fieldKey))\n return \"asc\";\n return void 0;\n };\n const index = ((_a = sortByModel.value) == null ? void 0 : _a.findIndex((el) => el.key === fieldKey)) ?? -1;\n const originalValue = (_b = sortByModel.value) == null ? void 0 : _b[index];\n const updatedValue = (\n // If value is new, we default to ascending\n // Otherwise we make a temp copy of the value\n index === -1 || !originalValue ? { key: fieldKey, order: \"asc\" } : { ...originalValue }\n );\n const handleMultiSort = () => {\n sortByModel.value = sortByModel.value ?? [];\n const val = updatedValue;\n if (index === -1) {\n sortByModel.value.push(val);\n } else {\n val.order = resolveOrder(val.order);\n sortByModel.value.splice(index, 1, val);\n }\n return val;\n };\n const handleSingleSort = () => {\n const val = {\n ...updatedValue,\n order: index === -1 ? updatedValue.order : resolveOrder(updatedValue.order)\n };\n const tmp = (sortByModel.value || []).map((e) => ({\n ...e,\n order: void 0\n }));\n if (index === -1) {\n tmp.push(val);\n } else {\n tmp[index] = val;\n }\n sortByModel.value = tmp;\n return val;\n };\n emit(\"sorted\", props.multisort === true ? handleMultiSort() : handleSingleSort());\n };\n const onFieldHeadClick = (fieldKey, field, event, isFooter = false) => {\n emit(\"head-clicked\", fieldKey, field, event, isFooter);\n handleFieldSorting(field);\n };\n const callItemsProvider = async () => {\n if (!usesProvider.value || props.provider === void 0 || busyModel.value) return;\n busyModel.value = true;\n const response = props.provider({\n currentPage: currentPageNumber.value,\n filter: props.filter,\n sortBy: sortByModel.value,\n perPage: perPageNumber.value\n });\n try {\n const items = response instanceof Promise ? await response : response;\n if (items === void 0) return;\n internalItems.value = items;\n } finally {\n busyModel.value = false;\n }\n };\n const providerPropsWatch = async (prop, val, oldVal) => {\n if (val === oldVal) return;\n const inNoProvider = (key) => {\n var _a;\n return ((_a = props.noProvider) == null ? void 0 : _a.includes(key)) === true;\n };\n const noProvideWhenPaging = (prop === \"currentPage\" || prop === \"perPage\") && (inNoProvider(\"paging\") || props.noProviderPaging === true);\n const noProvideWhenFiltering = prop === \"filter\" && (inNoProvider(\"filtering\") || props.noProviderFiltering === true);\n const noProvideWhenSorting = (prop === \"sortBy\" || prop === \"sortDesc\") && (inNoProvider(\"sorting\") || props.noProviderSorting === true);\n if (noProvideWhenPaging || noProvideWhenFiltering || noProvideWhenSorting) return;\n if (usesProvider.value === true) {\n await callItemsProvider();\n }\n if (!(prop === \"currentPage\" || prop === \"perPage\")) {\n emit(\"filtered\", [...computedItems.value]);\n }\n };\n watch(\n () => props.filter,\n (filter, oldFilter) => {\n providerPropsWatch(\"filter\", filter, oldFilter);\n if (filter === oldFilter || usesProvider.value) return;\n if (!filter) {\n emit(\"filtered\", [...computedItems.value]);\n }\n }\n );\n watch(currentPageNumber, (val, oldVal) => {\n providerPropsWatch(\"currentPage\", val, oldVal);\n });\n watch(perPageNumber, (val, oldVal) => {\n providerPropsWatch(\"perPage\", val, oldVal);\n });\n watch(\n sortByModel,\n (val, oldVal) => {\n providerPropsWatch(\"sortBy\", val, oldVal);\n },\n { deep: true }\n );\n watch(\n () => props.provider,\n (newValue) => {\n if (newValue === void 0) {\n internalItems.value = [];\n return;\n }\n callItemsProvider();\n }\n );\n onMounted(callItemsProvider);\n const exposedSelectableUtilities = {\n clearSelected: () => {\n if (!props.selectable) return;\n selectedItemsSetUtilities.clear();\n },\n selectAllRows: () => {\n if (!props.selectable || props.selectMode === \"single\") return;\n selectedItemsToSet.value = /* @__PURE__ */ new Set([...computedItems.value]);\n },\n selectRow: (index) => {\n if (!props.selectable) return;\n const item = computedItems.value[index];\n if (!item || selectedItemsSetUtilities.has(item)) return;\n if (props.selectMode === \"single\") {\n selectedItemsSetUtilities.set([item]);\n } else {\n selectedItemsSetUtilities.add(item);\n }\n },\n unselectRow: (index) => {\n if (!props.selectable) return;\n const item = computedItems.value[index];\n if (!item || !selectedItemsSetUtilities.has(item)) return;\n selectedItemsSetUtilities.delete(item);\n },\n isRowSelected: (index) => {\n if (!props.selectable) return false;\n const item = computedItems.value[index];\n return selectedItemsSetUtilities.has(item);\n }\n };\n const computedLiteProps = computed(() => ({\n ...pick(props, [...btableLiteProps, ...btableSimpleProps]),\n tableAttrs: {\n ariaBusy: busyModel.value\n },\n items: computedDisplayItems.value,\n fields: computedFields.value,\n tableClass: tableClasses.value,\n tbodyTrClass: getRowClasses,\n fieldColumnClass: getFieldColumnClasses,\n id: computedId.value\n }));\n __expose({\n // The row selection methods are really for compat. Users should probably use the v-model though\n ...exposedSelectableUtilities,\n items: computedItems,\n refresh: callItemsProvider\n });\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$1, mergeProps(computedLiteProps.value, {\n onHeadClicked: onFieldHeadClick,\n onRowClicked: onRowClick,\n onRowDblclicked: _cache[0] || (_cache[0] = (row, index, e) => {\n emit(\"row-dblclicked\", row, index, e);\n }),\n onRowContextmenu: _cache[1] || (_cache[1] = (row, index, e) => {\n emit(\"row-contextmenu\", row, index, e);\n }),\n onRowHovered: _cache[2] || (_cache[2] = (row, index, e) => {\n emit(\"row-hovered\", row, index, e);\n }),\n onRowUnhovered: _cache[3] || (_cache[3] = (row, index, e) => {\n emit(\"row-unhovered\", row, index, e);\n }),\n onRowMiddleClicked: _cache[4] || (_cache[4] = (row, index, e) => {\n emit(\"row-middle-clicked\", row, index, e);\n })\n }), createSlots({\n \"custom-body\": withCtx((scope) => [\n busyModel.value && slots[\"table-busy\"] ? (openBlock(), createBlock(_sfc_main$2, {\n key: 0,\n class: normalizeClass([\"b-table-busy-slot\", getBusyRowClasses.value])\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$6, {\n colspan: scope.fields.length\n }, {\n default: withCtx(() => [\n renderSlot(_ctx.$slots, \"table-busy\")\n ]),\n _: 2\n }, 1032, [\"colspan\"])\n ]),\n _: 2\n }, 1032, [\"class\"])) : unref(props).showEmpty === true && computedItems.value.length === 0 ? (openBlock(), createBlock(_sfc_main$2, {\n key: 1,\n class: \"b-table-empty-row\"\n }, {\n default: withCtx(() => [\n createVNode(_sfc_main$6, {\n colspan: computedFields.value.length\n }, {\n default: withCtx(() => [\n createElementVNode(\"div\", _hoisted_2, [\n createElementVNode(\"div\", _hoisted_3, [\n isFilterableTable.value ? renderSlot(_ctx.$slots, \"empty-filtered\", normalizeProps(mergeProps({ key: 0 }, emptySlotScope.value)), () => [\n createTextVNode(toDisplayString(unref(props).emptyFilteredText), 1)\n ]) : renderSlot(_ctx.$slots, \"empty\", normalizeProps(mergeProps({ key: 1 }, emptySlotScope.value)), () => [\n createTextVNode(toDisplayString(unref(props).emptyText), 1)\n ])\n ])\n ])\n ]),\n _: 3\n }, 8, [\"colspan\"])\n ]),\n _: 3\n })) : createCommentVNode(\"\", true)\n ]),\n _: 2\n }, [\n slots[\"thead-top\"] ? {\n name: \"thead-top\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"thead-top\", mergeProps(scope, {\n clearSelected: exposedSelectableUtilities.clearSelected,\n selectAllRows: exposedSelectableUtilities.selectAllRows,\n fields: computedFields.value\n }))\n ]),\n key: \"0\"\n } : void 0,\n slots[\"thead-sub\"] ? {\n name: \"thead-sub\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"thead-sub\", mergeProps(scope, { fields: computedFields.value }))\n ]),\n key: \"1\"\n } : void 0,\n slots[\"top-row\"] ? {\n name: \"top-row\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"top-row\", mergeProps(scope, { fields: computedFields.value }))\n ]),\n key: \"2\"\n } : void 0,\n slots[\"row-details\"] ? {\n name: \"row-details\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"row-details\", mergeProps(scope, {\n fields: computedFields.value,\n selectRow: (index = scope.index) => exposedSelectableUtilities.selectRow(index),\n unselectRow: (index = scope.index) => exposedSelectableUtilities.unselectRow(index),\n rowSelected: exposedSelectableUtilities.isRowSelected(scope.index)\n }))\n ]),\n key: \"3\"\n } : void 0,\n slots[\"bottom-row\"] ? {\n name: \"bottom-row\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"bottom-row\", mergeProps(scope, { fields: computedFields.value }))\n ]),\n key: \"4\"\n } : void 0,\n slots[\"custom-foot\"] ? {\n name: \"custom-foot\",\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, \"custom-foot\", mergeProps(scope, { fields: computedFields.value }))\n ]),\n key: \"5\"\n } : void 0,\n slots[\"table-caption\"] ? {\n name: \"table-caption\",\n fn: withCtx(() => [\n renderSlot(_ctx.$slots, \"table-caption\")\n ]),\n key: \"6\"\n } : void 0,\n renderList(dynamicCellSlots.value, (name) => {\n return {\n name,\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, name, mergeProps(scope, {\n selectRow: (index = scope.index) => exposedSelectableUtilities.selectRow(index),\n unselectRow: (index = scope.index) => exposedSelectableUtilities.unselectRow(index),\n rowSelected: exposedSelectableUtilities.isRowSelected(scope.index)\n }))\n ])\n };\n }),\n renderList(dynamicFootSlots.value, (name) => {\n return {\n name,\n fn: withCtx((scope) => [\n renderSlot(_ctx.$slots, name, mergeProps(scope, {\n selectAllRows: exposedSelectableUtilities.selectAllRows,\n clearSelected: exposedSelectableUtilities.clearSelected\n }))\n ])\n };\n }),\n renderList(computedFields.value, (field) => {\n return {\n name: `head(${String(field.key)})`,\n fn: withCtx((scope) => {\n var _a, _b, _c, _d;\n return [\n renderSlot(\n _ctx.$slots,\n slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : \"head()\",\n mergeProps(scope, {\n selectAllRows: exposedSelectableUtilities.selectAllRows,\n clearSelected: exposedSelectableUtilities.clearSelected\n }),\n () => [\n createTextVNode(toDisplayString(unref(getTableFieldHeadLabel)(field)), 1)\n ]\n ),\n isSortable.value && !!scope.field.sortable && unref(props).noSortableIcon === false ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [\n ((_b = (_a = sortByModel.value) == null ? void 0 : _a.find((el) => el.key === scope.field.key)) == null ? void 0 : _b.order) === \"asc\" ? renderSlot(\n _ctx.$slots,\n slots[`sortAsc(${String(scope.field.key)})`] ? `sortAsc(${String(scope.field.key)})` : \"sortAsc()\",\n normalizeProps(mergeProps({ key: 0 }, scope)),\n () => [\n _cache[5] || (_cache[5] = createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\",\n class: \"bi bi-arrow-up-short\",\n viewBox: \"0 0 16 16\",\n \"aria-hidden\": \"\"\n }, [\n createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n })\n ], -1))\n ]\n ) : ((_d = (_c = sortByModel.value) == null ? void 0 : _c.find((el) => el.key === scope.field.key)) == null ? void 0 : _d.order) === \"desc\" ? renderSlot(\n _ctx.$slots,\n slots[`sortDesc(${String(scope.field.key)})`] ? `sortDesc(${String(scope.field.key)})` : \"sortDesc()\",\n normalizeProps(mergeProps({ key: 1 }, scope)),\n () => [\n _cache[6] || (_cache[6] = createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentColor\",\n class: \"bi bi-arrow-down-short\",\n viewBox: \"0 0 16 16\",\n \"aria-hidden\": \"\"\n }, [\n createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z\"\n })\n ], -1))\n ]\n ) : renderSlot(\n _ctx.$slots,\n slots[`sortDefault(${String(scope.field.key)})`] ? `sortDefault(${String(scope.field.key)})` : \"sortDefault()\",\n normalizeProps(mergeProps({ key: 2 }, scope)),\n () => [\n (openBlock(), createElementBlock(\"svg\", _hoisted_1, _cache[7] || (_cache[7] = [\n createElementVNode(\"path\", {\n \"fill-rule\": \"evenodd\",\n d: \"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n }, null, -1)\n ])))\n ]\n )\n ], 64)) : createCommentVNode(\"\", true)\n ];\n })\n };\n })\n ]), 1040);\n };\n }\n});\nexport {\n _sfc_main as _,\n _sfc_main$1 as a,\n _sfc_main$7 as b,\n _sfc_main$6 as c,\n _sfc_main$5 as d,\n _sfc_main$4 as e,\n _sfc_main$3 as f,\n _sfc_main$2 as g\n};\n//# sourceMappingURL=BTable.vue_vue_type_script_setup_true_lang-CiThwOJO.mjs.map\n","const componentsWithExternalPath = {\n BAccordion: \"/components/BAccordion\",\n BAccordionItem: \"/components/BAccordion\",\n BAlert: \"/components/BAlert\",\n BAvatar: \"/components/BAvatar\",\n BAvatarGroup: \"/components/BAvatar\",\n BBadge: \"/components/BBadge\",\n BBreadcrumb: \"/components/BBreadcrumb\",\n BBreadcrumbItem: \"/components/BBreadcrumb\",\n BButton: \"/components/BButton\",\n BButtonGroup: \"/components/BButton\",\n BButtonToolbar: \"/components/BButton\",\n BCloseButton: \"/components/BButton\",\n BCard: \"/components/BCard\",\n BCardBody: \"/components/BCard\",\n BCardFooter: \"/components/BCard\",\n BCardGroup: \"/components/BCard\",\n BCardHeader: \"/components/BCard\",\n BCardImg: \"/components/BCard\",\n BCardSubtitle: \"/components/BCard\",\n BCardText: \"/components/BCard\",\n BCardTitle: \"/components/BCard\",\n BCarousel: \"/components/BCarousel\",\n BCarouselSlide: \"/components/BCarousel\",\n BCol: \"/components/BContainer\",\n BCollapse: \"/components/BCollapse\",\n BContainer: \"/components/BContainer\",\n BDropdown: \"/components/BDropdown\",\n BDropdownDivider: \"/components/BDropdown\",\n BDropdownForm: \"/components/BDropdown\",\n BDropdownGroup: \"/components/BDropdown\",\n BDropdownHeader: \"/components/BDropdown\",\n BDropdownItem: \"/components/BDropdown\",\n BDropdownItemButton: \"/components/BDropdown\",\n BDropdownText: \"/components/BDropdown\",\n BForm: \"/components/BForm\",\n BFormCheckbox: \"/components/BFormCheckbox\",\n BFormCheckboxGroup: \"/components/BFormCheckbox\",\n BFormDatalist: \"/components/BForm\",\n BFormFile: \"/components/BFormFile\",\n BFormFloatingLabel: \"/components/BForm\",\n BFormGroup: \"/components/BFormGroup\",\n BFormInput: \"/components/BFormInput\",\n BFormInvalidFeedback: \"/components/BForm\",\n BFormRadio: \"/components/BFormRadio\",\n BFormRadioGroup: \"/components/BFormRadio\",\n BFormRow: \"/components/BForm\",\n BFormSelect: \"/components/BFormSelect\",\n BFormSelectOption: \"/components/BFormSelect\",\n BFormSelectOptionGroup: \"/components/BFormSelect\",\n BFormSpinbutton: \"/components/BFormSpinbutton\",\n BFormTag: \"/components/BFormTags\",\n BFormTags: \"/components/BFormTags\",\n BFormText: \"/components/BForm\",\n BFormTextarea: \"/components/BFormTextarea\",\n BFormValidFeedback: \"/components/BForm\",\n BImg: \"/components/BImg\",\n BInput: \"/components/BFormInput\",\n BInputGroup: \"/components/BInputGroup\",\n BInputGroupText: \"/components/BInputGroup\",\n BListGroup: \"/components/BListGroup\",\n BListGroupItem: \"/components/BListGroup\",\n BModal: \"/components/BModal\",\n BModalOrchestrator: \"/components/BModal\",\n BNav: \"/components/BNav\",\n BNavForm: \"/components/BNav\",\n BNavItem: \"/components/BNav\",\n BNavItemDropdown: \"/components/BNav\",\n BNavText: \"/components/BNav\",\n BNavbar: \"/components/BNavbar\",\n BNavbarBrand: \"/components/BNavbar\",\n BNavbarNav: \"/components/BNavbar\",\n BNavbarToggle: \"/components/BNavbar\",\n BOffcanvas: \"/components/BOffcanvas\",\n BOverlay: \"/components/BOverlay\",\n BPagination: \"/components/BPagination\",\n BPlaceholder: \"/components/BPlaceholder\",\n BPlaceholderButton: \"/components/BPlaceholder\",\n BPlaceholderCard: \"/components/BPlaceholder\",\n BPlaceholderTable: \"/components/BPlaceholder\",\n BPlaceholderWrapper: \"/components/BPlaceholder\",\n BPopover: \"/components/BPopover\",\n BProgress: \"/components/BProgress\",\n BRow: \"/components/BContainer\",\n BSpinner: \"/components/BSpinner\",\n BTab: \"/components/BTabs\",\n BTabs: \"/components/BTabs\",\n BToast: \"/components/BToast\",\n BToastOrchestrator: \"/components/BToast\",\n BTooltip: \"/components/BTooltip\",\n BLink: \"/components/BLink\",\n BProgressBar: \"/components/BProgress\",\n BTableSimple: \"/components/BTable\",\n BTableLite: \"/components/BTable\",\n BTable: \"/components/BTable\",\n BTbody: \"/components/BTable\",\n BTd: \"/components/BTable\",\n BTh: \"/components/BTable\",\n BThead: \"/components/BTable\",\n BTfoot: \"/components/BTable\",\n BTr: \"/components/BTable\",\n BPopoverOrchestrator: \"/components/BPopover\"\n};\nconst componentNames = Object.freeze(\n Object.keys(componentsWithExternalPath)\n);\nconst directivesWithExternalPath = {\n vBColorMode: \"/directives/BColorMode\",\n vBModal: \"/directives/BModal\",\n vBPopover: \"/directives/BPopover\",\n vBScrollspy: \"/directives/BScrollspy\",\n vBToggle: \"/directives/BToggle\",\n vBTooltip: \"/directives/BTooltip\"\n};\nconst directiveNames = Object.freeze(\n Object.keys(directivesWithExternalPath)\n);\nconst composablesWithExternalPath = {\n useBreadcrumb: \"/composables/useBreadcrumb\",\n useColorMode: \"/composables/useColorMode\",\n useModal: \"/composables/useModal\",\n useModalController: \"/composables/useModalController\",\n useScrollspy: \"/composables/useScrollspy\",\n useToastController: \"/composables/useToastController\",\n usePopoverController: \"/composables/usePopoverController\"\n};\nconst composableNames = Object.freeze(\n Object.keys(composablesWithExternalPath)\n);\nconst bvKey = \"bootstrap-vue-next\";\nconst parseActiveImports = (options, values) => {\n const { all, ...others } = options;\n const valuesCopy = {};\n if (all) {\n values.forEach((el) => {\n valuesCopy[el] = all;\n });\n }\n const merge = { ...valuesCopy, ...others };\n return Object.entries(merge).filter(([name, value]) => !!value && values.includes(name)).map(([name]) => name);\n};\nconst usedComponents = /* @__PURE__ */ new Set();\nconst usedDirectives = /* @__PURE__ */ new Set();\nconst BootstrapVueNextResolver = Object.assign(\n ({\n aliases = {},\n directives = true,\n components = true\n } = {}) => {\n const selectedComponents = typeof components === \"boolean\" ? { all: components } : components;\n const compImports = parseActiveImports(selectedComponents, componentNames).reduce(\n (map, name) => {\n map.set(name, `${bvKey}${componentsWithExternalPath[name]}`);\n return map;\n },\n /* @__PURE__ */ new Map()\n );\n const selectedDirectives = typeof directives === \"boolean\" ? { all: directives } : directives;\n const dirImports = parseActiveImports(selectedDirectives, directiveNames).reduce(\n (map, directive) => {\n const key = directive.toLowerCase().startsWith(\"v\") ? directive : `v${directive}`;\n map.set(key, `${bvKey}${directivesWithExternalPath[key]}`);\n return map;\n },\n /* @__PURE__ */ new Map()\n );\n const resolvers = [\n {\n type: \"component\",\n resolve(name) {\n const destination = compImports.get(name);\n const aliasDestination = compImports.get(aliases[name]);\n if (aliasDestination) {\n const val = aliases[name];\n usedComponents.add(val);\n return {\n name: val,\n from: aliasDestination\n };\n }\n if (destination) {\n usedComponents.add(name);\n return {\n name,\n from: destination\n };\n }\n }\n },\n {\n type: \"directive\",\n resolve(name) {\n const prefixedName = `v${name}`;\n const destination = dirImports.get(prefixedName);\n if (destination) {\n usedDirectives.add(prefixedName);\n return {\n name: prefixedName,\n from: destination\n };\n }\n }\n }\n ];\n return resolvers;\n },\n {\n __usedComponents: usedComponents,\n __usedDirectives: usedDirectives\n }\n);\nconst index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n BootstrapVueNextResolver\n}, Symbol.toStringTag, { value: \"Module\" }));\nexport {\n BootstrapVueNextResolver as B,\n componentsWithExternalPath as a,\n composableNames as b,\n componentNames as c,\n composablesWithExternalPath as d,\n directiveNames as e,\n directivesWithExternalPath as f,\n index as i\n};\n//# sourceMappingURL=index-sLCKmIWG.mjs.map\n"],"names":["withBvnPrefix","value","suffix","suffixWithTrail","createBvnInjectionKey","name","createBvnPluginInjectionKey","progressInjectionKey","collapseInjectionKey","globalShowHideStorageInjectionKey","navbarInjectionKey","rtlPluginKey","breadcrumbPluginKey","modalManagerPluginKey","defaultsKey","toastPluginKey","modalControllerPluginKey","popoverPluginKey","tryOnScopeDispose","fn","getCurrentScope","onScopeDispose","createSharedComposable","composable","subscribers","state","scope","dispose","args","effectScope","toValue","r","unref","isClient","notNullish","val","toString","isObject","timestamp","noop","isIOS","getIsIOS","_a","_b","createFilterWrapper","filter","wrapper","resolve","reject","throttleFilter","lastExec","timer","isLeading","lastRejector","lastValue","ms","trailing","leading","rejectOnCancel","isRef","clear","_invoke","duration","elapsed","invoke","toRef","toRef$1","readonly","customRef","ref","useThrottleFn","useIntervalFn","cb","interval","options","immediate","immediateCallback","isActive","clean","pause","resume","intervalValue","stopWatch","watch","useToNumber","method","radix","nanToZero","computed","resolved","defaultWindow","unrefElement","elRef","plain","useEventListener","target","events","listeners","cleanups","cleanup","register","el","event","listener","options2","optionsClone","stop","createKeyPredicate","keyFilter","onKeyStroke","key","handler","eventName","passive","dedupe","predicate","e","useMounted","isMounted","instance","getCurrentInstance","onMounted","useSupported","callback","useMutationObserver","window2","mutationOptions","observer","isSupported","targets","items","targets2","takeRecords","useRafFn","fpsLimit","intervalLimit","previousFrameTimestamp","rafId","loop","timestamp2","delta","_global","globalKey","handlers","getHandlers","getSSRHandler","fallback","useElementHover","delayEnter","delayLeave","isHovered","toggle","entering","delay","useFocus","initialValue","focusVisible","preventScroll","innerFocused","targetElement","focused","resolveElement","checkOverflowScroll","ele","style","parent","preventDefault","rawEvent","_target","elInitialOverflow","useScrollLock","element","initialState","isLocked","stopTouchMoveListener","initialOverflow","lock","unlock","v","useTimestamp","exposeControls","offset","ts","update","controls","candidateSelectors","candidateSelector","NoElement","matches","getRootNode","_element$getRootNode","isInert","isInert2","node","lookUp","_node$getAttribute","inertAtt","inert","result","isContentEditable","_node$getAttribute2","attValue","getCandidates","includeContainer","candidates","getCandidatesIteratively","getCandidatesIteratively2","elements","elementsToCheck","assigned","content","nestedCandidates","validCandidate","shadowRoot","validShadowRoot","_nestedCandidates","hasTabIndex","getTabIndex","getSortOrderTabIndex","isScope","tabIndex","sortOrderedTabbables","a","b","isInput","isHiddenInput","isDetailsWithSummary","child","getCheckedRadio","nodes","form","i","isTabbableRadio","radioScope","queryRadios","radioSet","err","checked","isRadio","isNonTabbableRadio","isNodeAttached","_nodeRoot","nodeRoot","nodeRootHost","attached","_nodeRootHost","_nodeRootHost$ownerDo","_node$ownerDocument","_nodeRoot2","_nodeRootHost2","_nodeRootHost2$ownerD","isZeroArea","_node$getBoundingClie","width","height","isHidden","_ref","displayCheck","getShadowRoot","isDirectSummary","nodeUnderDetails","originalNode","parentElement","rootNode","isDisabledFromFieldset","parentNode","isNodeMatchingSelectorFocusable","isNodeMatchingSelectorTabbable","isValidShadowRootTabbable","shadowHostNode","sortByOrder","sortByOrder2","regularTabbables","orderedTabbables","item","candidateTabindex","acc","sortable","tabbable","container","focusable","isTabbable","focusableCandidateSelector","isFocusable","_arrayLikeToArray","n","_arrayWithoutHoles","_defineProperty","_toPropertyKey","_iterableToArray","_nonIterableSpread","ownKeys","r2","_objectSpread2","_toConsumableArray","_unsupportedIterableToArray","_toPrimitive","t","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","isSelectableInput","isEscapeEvent","isTabEvent","isKeyForward","isKeyBackward","valueOrHandler","_len","params","_key","getActualTarget","internalTrapStack","createFocusTrap","userOptions","doc","config","getOption","configOverrideOptions","optionName","configOptionName","findContainerIndex","composedPath","tabbableNodes","getNodeForOption","_ref2","_ref2$hasFallback","hasFallback","_ref2$params","optionValue","getInitialFocusNode","firstTabbableGroup","firstTabbableNode","updateTabbableNodes","focusableNodes","lastTabbableNode","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","forward","nodeIdx","group","g","_getActiveElement","activeElement","_tryFocus","getReturnFocusNode","previousActiveElement","findNextNavNode","_ref3","_ref3$isBackward","isBackward","destinationNode","containerIndex","containerGroup","startOfGroupIndex","_ref4","destinationGroupIndex","destinationGroup","lastOfGroupIndex","_ref5","_destinationGroupIndex","_destinationGroup","checkPointerDown","checkFocusIn","targetContained","nextNode","navAcrossContainers","mruContainerIdx","mruTabIdx","checkKeyNav","checkTabKey","checkEscapeKey","checkClick","addListeners","removeListeners","checkDomRemoval","mutations","isFocusedNodeRemoved","mutation","removedNodes","mutationObserver","updateObservedNodes","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","elementsAsArray","useFocusTrap","focusTrapOptions","hasFocus","isPaused","activate","opts","deactivate","unpause","_targets","_el","els","useActivatedFocusTrap","noTrap","fallbackFocus","focusTrapOpts","resolvedIsActive","resolvedNoTrap","checkNeedsFocus","tabbableElements","needsFallback","newValue","nextTick","useScrollLock$1","prevousRightPadding","lockRegistry","useSafeScrollLock","isOpen","bodyScroll","resolvedIsOpen","id","useId","inverseBodyScrollingValue","toValue$1","modelVal","bodyVal","scrollBarGap","hasLocked","myLocked","hasLockedAfter","onUnmounted","componentsWithExternalPath","componentNames","directivesWithExternalPath","directiveNames","composablesWithExternalPath","bvKey","parseActiveImports","values","all","others","valuesCopy","merge","usedComponents","usedDirectives","aliases","directives","components","compImports","map","dirImports","directive","destination","aliasDestination","prefixedName"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|