UNPKG

vuestic-ui

Version:
1 lines 1.06 kB
{"version":3,"file":"useElementRef.mjs","sources":["../../../../src/composables/useElementRef.ts"],"sourcesContent":["import { ComponentPublicInstance, computed, shallowRef, unref, Ref } from 'vue'\nimport { unwrapEl } from '../utils/unwrapEl'\n\ntype Maybe<T> = T | undefined\nexport type MaybeElement<T extends Maybe<HTMLElement>> = T | ComponentPublicInstance\n\nconst unrefElement = <T extends Maybe<HTMLElement>>(el: Ref<MaybeElement<T>>): T => {\n const e = unref(el)\n return unwrapEl(e) as T\n}\n\nexport const useElementRef = <T extends Maybe<HTMLElement>>() => {\n const el = shallowRef<MaybeElement<T>>()\n\n return computed({\n get () {\n return unrefElement(el) as T\n },\n set (node: MaybeElement<T>) {\n el.value = node\n },\n }) as Ref<T>\n}\n"],"names":[],"mappings":";;AAMA,MAAM,eAAe,CAA+B,OAAgC;AAC5E,QAAA,IAAI,MAAM,EAAE;AAClB,SAAO,SAAS,CAAC;AACnB;AAEO,MAAM,gBAAgB,MAAoC;AAC/D,QAAM,KAAK;AAEX,SAAO,SAAS;AAAA,IACd,MAAO;AACL,aAAO,aAAa,EAAE;AAAA,IACxB;AAAA,IACA,IAAK,MAAuB;AAC1B,SAAG,QAAQ;AAAA,IACb;AAAA,EAAA,CACD;AACH;"}