{"version":3,"file":"helpers.mjs","names":["capitalize","Comment","computed","Fragment","isVNode","reactive","readonly","shallowRef","toRefs","unref","watchEffect","IN_BROWSER","getNestedValue","obj","path","fallback","last","length","undefined","i","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","replace","split","getPropertyFromItem","item","property","value","Array","isArray","createRange","start","arguments","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","convertToUnit","str","unit","isNaN","String","isFinite","Number","isObject","isPlainObject","proto","getPrototypeOf","prototype","refElement","$el","TEXT_NODE","nextElementSibling","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","keyValues","o","has","key","hasOwnProperty","pick","paths","found","Set","pickWithRest","exclude","create","rest","some","RegExp","test","omit","clone","forEach","prop","only","include","onRE","isOn","bubblingEvents","compositionIgnoreKeys","isComposingIgnoreKey","e","isComposing","includes","filterInputAttrs","attrs","events","inputEvents","rootAttrs","inputAttrs","assign","arrayDiff","diff","push","wrapInArray","defaultFilter","search","toString","toLocaleLowerCase","indexOf","debounce","fn","delay","timeoutId","wrap","_len","args","_key","clearTimeout","setTimeout","clear","immediate","throttle","limit","throttling","clamp","min","max","Math","getDecimals","trimmedStr","trim","padEnd","char","repeat","padStart","chunk","size","chunked","substr","chunkArray","array","ceil","slice","humanReadableFileSize","bytes","base","prefix","abs","toFixed","mergeDeep","source","target","arrayFn","out","sourceProperty","targetProperty","flattenFragments","nodes","map","node","type","children","flat","toKebabCase","cache","get","kebab","toLowerCase","set","Map","findChildrenWithProvide","vnode","child","suspense","ssContent","component","getOwnPropertySymbols","provides","subTree","_arr","WeakMap","_pointer","CircularBuffer","constructor","_classPrivateFieldInitSpec","val","_classPrivateFieldGet","_classPrivateFieldSet","values","concat","getEventCoordinates","clientX","touches","clientY","destructComputed","getter","refs","flush","arr","eventName","propName","EventProp","Function","hasEvent","name","callEvent","handler","_len2","_key2","h","focusableChildren","filterByTabIndex","targets","s","join","querySelectorAll","getNextElement","elements","location","condition","_el","idx","document","activeElement","inc","offsetParent","focusChild","focusable","contains","focus","at","isEmpty","noop","matchesSelector","selector","supportsSelector","CSS","supports","matches","err","ensureValidVNode","vnodes","defer","timeout","cb","eagerComputed","options","result","isClickInsideElement","event","targetDiv","mouseX","mouseY","divRect","getBoundingClientRect","divLeft","divTop","top","divRight","divBottom","bottom","templateRef","defineProperty","enumerable","checkPrintable","isPrintableChar","noModifier","ctrlKey","metaKey","altKey"],"sources":["../../src/util/helpers.ts"],"sourcesContent":["// Utilities\nimport { capitalize, Comment, computed, Fragment, isVNode, reactive, readonly, shallowRef, toRefs, unref, watchEffect } from 'vue'\nimport { IN_BROWSER } from '@/util/globals'\n\n// Types\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n ComputedGetter,\n InjectionKey,\n PropType,\n Ref,\n ToRefs,\n VNode,\n VNodeArrayChildren,\n VNodeChild,\n WatchOptions,\n} from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path?: string | null, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey> =\n | boolean | null | undefined // Ignored\n | string // Lookup by key, can use dot notation for nested objects\n | readonly (string | number)[] // Nested lookup by key, each array item is a key in the next level\n | ((item: T, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property === true) return item === undefined ? fallback : item\n\n if (property == null || typeof property === 'boolean') return fallback\n\n if (item !== Object(item)) {\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n }\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is Record {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isPlainObject (obj: any): obj is Record {\n let proto\n return obj !== null && typeof obj === 'object' && (\n (proto = Object.getPrototypeOf(obj)) === Object.prototype ||\n proto === null\n )\n}\n\nexport function refElement (obj?: ComponentPublicInstance | HTMLElement): HTMLElement | undefined {\n if (obj && '$el' in obj) {\n const el = obj.$el as HTMLElement\n if (el?.nodeType === Node.TEXT_NODE) {\n // Multi-root component, use the first element\n return el.nextElementSibling as HTMLElement\n }\n return el\n }\n return obj as HTMLElement\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues: Record = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\nexport function has (obj: object, key: T[]): obj is Record {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract\n> = Record extends T ? Partial> : Pick\n\n// Array of keys\nexport function pick<\n T extends object,\n U extends Extract\n> (obj: T, paths: U[]): MaybePick {\n const found: any = {}\n\n const keys = new Set(Object.keys(obj))\n for (const path of paths) {\n if (keys.has(path)) {\n found[path] = obj[path]\n }\n }\n\n return found\n}\n\n// Array of keys\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: U[], exclude?: E[]): [yes: MaybePick>, no: Omit>]\n// Array of keys or RegExp to test keys against\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial]\nexport function pickWithRest<\n T extends object,\n U extends Extract,\n E extends Extract\n> (obj: T, paths: (U | RegExp)[], exclude?: E[]): [yes: Partial, no: Partial] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n ) && !exclude?.some(path => path === key)\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\nexport function omit<\n T extends object,\n U extends Extract\n> (obj: T, exclude: U[]): Omit {\n const clone = { ...obj }\n\n exclude.forEach(prop => delete clone[prop])\n\n return clone\n}\n\nexport function only<\n T extends object,\n U extends Extract\n> (obj: T, include: U[]): Pick {\n const clone = {} as T\n\n include.forEach(prop => clone[prop] = obj[prop])\n\n return clone\n}\n\nconst onRE = /^on[^a-z]/\nexport const isOn = (key: string) => onRE.test(key)\n\nconst bubblingEvents = [\n 'onAfterscriptexecute',\n 'onAnimationcancel',\n 'onAnimationend',\n 'onAnimationiteration',\n 'onAnimationstart',\n 'onAuxclick',\n 'onBeforeinput',\n 'onBeforescriptexecute',\n 'onChange',\n 'onClick',\n 'onCompositionend',\n 'onCompositionstart',\n 'onCompositionupdate',\n 'onContextmenu',\n 'onCopy',\n 'onCut',\n 'onDblclick',\n 'onFocusin',\n 'onFocusout',\n 'onFullscreenchange',\n 'onFullscreenerror',\n 'onGesturechange',\n 'onGestureend',\n 'onGesturestart',\n 'onGotpointercapture',\n 'onInput',\n 'onKeydown',\n 'onKeypress',\n 'onKeyup',\n 'onLostpointercapture',\n 'onMousedown',\n 'onMousemove',\n 'onMouseout',\n 'onMouseover',\n 'onMouseup',\n 'onMousewheel',\n 'onPaste',\n 'onPointercancel',\n 'onPointerdown',\n 'onPointerenter',\n 'onPointerleave',\n 'onPointermove',\n 'onPointerout',\n 'onPointerover',\n 'onPointerup',\n 'onReset',\n 'onSelect',\n 'onSubmit',\n 'onTouchcancel',\n 'onTouchend',\n 'onTouchmove',\n 'onTouchstart',\n 'onTransitioncancel',\n 'onTransitionend',\n 'onTransitionrun',\n 'onTransitionstart',\n 'onWheel',\n]\n\nconst compositionIgnoreKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowRight',\n 'ArrowLeft',\n 'Enter',\n 'Escape',\n 'Tab',\n ' ',\n]\n\nexport function isComposingIgnoreKey (e: KeyboardEvent): boolean {\n return e.isComposing && compositionIgnoreKeys.includes(e.key)\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of an input component. Remaining\n * attributes should be passed to the element inside.\n */\nexport function filterInputAttrs (attrs: Record) {\n const [events, props] = pickWithRest(attrs, [onRE])\n const inputEvents = omit(events, bubblingEvents)\n const [rootAttrs, inputAttrs] = pickWithRest(props, ['class', 'style', 'id', /^data-/])\n Object.assign(rootAttrs, events)\n Object.assign(inputAttrs, inputEvents)\n return [rootAttrs, inputAttrs]\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ntype IfAny = 0 extends (1 & T) ? Y : N;\nexport function wrapInArray (\n v: T | null | undefined\n): T extends readonly any[]\n ? IfAny\n : NonNullable[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v as any : [v]\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function debounce (fn: Function, delay: MaybeRef) {\n let timeoutId = 0 as any\n const wrap = (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), unref(delay))\n }\n wrap.clear = () => {\n clearTimeout(timeoutId)\n }\n wrap.immediate = fn\n return wrap\n}\n\nexport function throttle any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters): void | ReturnType => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function getDecimals (value: number) {\n const trimmedStr = value.toString().trim()\n return trimmedStr.includes('.')\n ? (trimmedStr.length - trimmedStr.indexOf('.') - 1)\n : 0\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function padStart (str: string, length: number, char = '0') {\n return char.repeat(Math.max(0, length - str.length)) + str\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function chunkArray (array: any[], size = 1) {\n return Array.from({ length: Math.ceil(array.length / size) }, (v, i) =>\n array.slice(i * size, i * size + size)\n )\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function mergeDeep (\n source: Record = {},\n target: Record = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are plain objects\n if (isPlainObject(sourceProperty) && isPlainObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (arrayFn && Array.isArray(sourceProperty) && Array.isArray(targetProperty)) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport function toKebabCase (str = '') {\n if (toKebabCase.cache.has(str)) return toKebabCase.cache.get(str)!\n const kebab = str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n toKebabCase.cache.set(str, kebab)\n return kebab\n}\ntoKebabCase.cache = new Map()\n\nexport type MaybeRef = T | Ref\n\nexport function findChildrenWithProvide (\n key: InjectionKey | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.suspense) {\n return findChildrenWithProvide(key, vnode.ssContent!)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer {\n readonly #arr: Array = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n\n// Only allow a single return type\ntype NotAUnion = [T] extends [infer U] ? _NotAUnion : never\ntype _NotAUnion = U extends any ? [T] extends [U] ? unknown : never : never\n\n/**\n * Convert a computed ref to a record of refs.\n * The getter function must always return an object with the same keys.\n */\nexport function destructComputed (getter: ComputedGetter>): ToRefs\nexport function destructComputed (getter: ComputedGetter) {\n const refs = reactive({}) as T\n const base = computed(getter)\n watchEffect(() => {\n for (const key in base.value) {\n refs[key] = base.value[key]\n }\n }, { flush: 'sync' })\n return toRefs(refs)\n}\n\n/** Array.includes but value can be any type */\nexport function includes (arr: readonly any[], val: any) {\n return arr.includes(val)\n}\n\nexport function eventName (propName: string) {\n return propName[2].toLowerCase() + propName.slice(3)\n}\n\nexport type EventProp void> = F\nexport const EventProp = () => [Function, Array] as PropType>\n\nexport function hasEvent (props: Record, name: string) {\n name = 'on' + capitalize(name)\n return !!(props[name] || props[`${name}Once`] || props[`${name}Capture`] || props[`${name}OnceCapture`] || props[`${name}CaptureOnce`])\n}\n\nexport function callEvent (handler: EventProp | undefined, ...args: T) {\n if (Array.isArray(handler)) {\n for (const h of handler) {\n h(...args)\n }\n } else if (typeof handler === 'function') {\n handler(...args)\n }\n}\n\nexport function focusableChildren (el: Element, filterByTabIndex = true) {\n const targets = ['button', '[href]', 'input:not([type=\"hidden\"])', 'select', 'textarea', '[tabindex]']\n .map(s => `${s}${filterByTabIndex ? ':not([tabindex=\"-1\"])' : ''}:not([disabled])`)\n .join(', ')\n return [...el.querySelectorAll(targets)] as HTMLElement[]\n}\n\nexport function getNextElement (elements: HTMLElement[], location?: 'next' | 'prev', condition?: (el: HTMLElement) => boolean) {\n let _el\n let idx = elements.indexOf(document.activeElement as HTMLElement)\n const inc = location === 'next' ? 1 : -1\n do {\n idx += inc\n _el = elements[idx]\n } while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0)\n return _el\n}\n\nexport function focusChild (el: Element, location?: 'next' | 'prev' | 'first' | 'last' | number) {\n const focusable = focusableChildren(el)\n\n if (!location) {\n if (el === document.activeElement || !el.contains(document.activeElement)) {\n focusable[0]?.focus()\n }\n } else if (location === 'first') {\n focusable[0]?.focus()\n } else if (location === 'last') {\n focusable.at(-1)?.focus()\n } else if (typeof location === 'number') {\n focusable[location]?.focus()\n } else {\n const _el = getNextElement(focusable, location)\n if (_el) _el.focus()\n else focusChild(el, location === 'next' ? 'first' : 'last')\n }\n}\n\nexport function isEmpty (val: any): boolean {\n return val === null || val === undefined || (typeof val === 'string' && val.trim() === '')\n}\n\nexport function noop () {}\n\n/** Returns null if the selector is not supported or we can't check */\nexport function matchesSelector (el: Element | undefined, selector: string): boolean | null {\n const supportsSelector = IN_BROWSER &&\n typeof CSS !== 'undefined' &&\n typeof CSS.supports !== 'undefined' &&\n CSS.supports(`selector(${selector})`)\n\n if (!supportsSelector) return null\n\n try {\n return !!el && el.matches(selector)\n } catch (err) {\n return null\n }\n}\n\nexport function ensureValidVNode (vnodes: VNodeArrayChildren): VNodeArrayChildren | null {\n return vnodes.some(child => {\n if (!isVNode(child)) return true\n if (child.type === Comment) return false\n return child.type !== Fragment ||\n ensureValidVNode(child.children as VNodeArrayChildren)\n })\n ? vnodes\n : null\n}\n\nexport function defer (timeout: number, cb: () => void) {\n if (!IN_BROWSER || timeout === 0) {\n cb()\n\n return () => {}\n }\n\n const timeoutId = window.setTimeout(cb, timeout)\n\n return () => window.clearTimeout(timeoutId)\n}\n\nexport function eagerComputed (fn: () => T, options?: WatchOptions): Readonly> {\n const result = shallowRef()\n\n watchEffect(() => {\n result.value = fn()\n }, {\n flush: 'sync',\n ...options,\n })\n\n return readonly(result)\n}\n\nexport function isClickInsideElement (event: MouseEvent, targetDiv: HTMLElement) {\n const mouseX = event.clientX\n const mouseY = event.clientY\n\n const divRect = targetDiv.getBoundingClientRect()\n const divLeft = divRect.left\n const divTop = divRect.top\n const divRight = divRect.right\n const divBottom = divRect.bottom\n\n return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom\n}\n\nexport type TemplateRef = {\n (target: Element | ComponentPublicInstance | null): void\n value: HTMLElement | ComponentPublicInstance | null | undefined\n readonly el: HTMLElement | undefined\n}\nexport function templateRef () {\n const el = shallowRef()\n const fn = (target: HTMLElement | ComponentPublicInstance | null) => {\n el.value = target\n }\n Object.defineProperty(fn, 'value', {\n enumerable: true,\n get: () => el.value,\n set: val => el.value = val,\n })\n Object.defineProperty(fn, 'el', {\n enumerable: true,\n get: () => refElement(el.value),\n })\n\n return fn as TemplateRef\n}\n\nexport function checkPrintable (e: KeyboardEvent) {\n const isPrintableChar = e.key.length === 1\n const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey\n return isPrintableChar && noModifier\n}\n"],"mappings":"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","ignoreList":[]}