UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.5 kB
{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-forward-ref/index.ts"],"sourcesContent":["import { provide } from 'vue'\n\nimport type { InjectionKey, ObjectDirective, Ref } from 'vue'\n\ntype ForwardRefSetter = <T>(el: T) => void\n\nexport type ForwardRefInjectionContext = {\n setForwardRef: ForwardRefSetter\n}\n\nexport const FORWARD_REF_INJECTION_KEY: InjectionKey<ForwardRefInjectionContext> =\n Symbol('elForwardRef')\n\nexport const useForwardRef = <T>(forwardRef: Ref<T | null>) => {\n const setForwardRef = ((el: T) => {\n forwardRef.value = el\n }) as ForwardRefSetter\n\n provide(FORWARD_REF_INJECTION_KEY, {\n setForwardRef,\n })\n}\n\nexport const useForwardRefDirective = (\n setForwardRef: ForwardRefSetter\n): ObjectDirective => {\n return {\n mounted(el) {\n setForwardRef(el)\n },\n updated(el) {\n setForwardRef(el)\n },\n unmounted() {\n setForwardRef(null)\n },\n }\n}\n"],"names":[],"mappings":";;AAUO,MAAM,yBAAA,0BACJ,cAAc;AAEhB,MAAM,aAAA,GAAgB,CAAI,UAAA,KAA8B;AAC7D,EAAA,MAAM,aAAA,IAAiB,CAAC,EAAA,KAAU;AAChC,IAAA,UAAA,CAAW,KAAA,GAAQ,EAAA;AAAA,EACrB,CAAA,CAAA;AAEA,EAAA,OAAA,CAAQ,yBAAA,EAA2B;AAAA,IACjC;AAAA,GACD,CAAA;AACH;AAEO,MAAM,sBAAA,GAAyB,CACpC,aAAA,KACoB;AACpB,EAAA,OAAO;AAAA,IACL,QAAQ,EAAA,EAAI;AACV,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,QAAQ,EAAA,EAAI;AACV,MAAA,aAAA,CAAc,EAAE,CAAA;AAAA,IAClB,CAAA;AAAA,IACA,SAAA,GAAY;AACV,MAAA,aAAA,CAAc,IAAI,CAAA;AAAA,IACpB;AAAA,GACF;AACF;;;;"}