UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 1.54 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":";;AAUa,MAAA,yBAAA,GACX,OAAO,cAAc,EAAA;AAEV,MAAA,aAAA,GAAgB,CAAI,UAA8B,KAAA;AAC7D,EAAM,MAAA,aAAA,GAAiB,CAAC,EAAU,KAAA;AAChC,IAAA,UAAA,CAAW,KAAQ,GAAA,EAAA,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,OAAA,CAAQ,yBAA2B,EAAA;AAAA,IACjC,aAAA;AAAA,GACD,CAAA,CAAA;AACH,EAAA;AAEa,MAAA,sBAAA,GAAyB,CACpC,aACoB,KAAA;AACpB,EAAO,OAAA;AAAA,IACL,QAAQ,EAAI,EAAA;AACV,MAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,KAClB;AAAA,IACA,QAAQ,EAAI,EAAA;AACV,MAAA,aAAA,CAAc,EAAE,CAAA,CAAA;AAAA,KAClB;AAAA,IACA,SAAY,GAAA;AACV,MAAA,aAAA,CAAc,IAAI,CAAA,CAAA;AAAA,KACpB;AAAA,GACF,CAAA;AACF;;;;"}