{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-forward-ref/index.ts"],"sourcesContent":["import { provide } from 'vue'\r\n\r\nimport type { InjectionKey, Ref } from 'vue'\r\n\r\ntype ForwardRefSetter = <T>(sg: T) => void\r\n\r\nexport type ForwardRefInjectionContext = {\r\n  setForwardRef: ForwardRefSetter\r\n}\r\n\r\nexport const FORWARD_REF_INJECTION_KEY: InjectionKey<ForwardRefInjectionContext> =\r\n  Symbol('elForwardRef')\r\n\r\nexport const useForwardRef = <T>(forwardRef: Ref<T | null>) => {\r\n  const setForwardRef = ((sg: T) => {\r\n    forwardRef.value = sg\r\n  }) as ForwardRefSetter\r\n\r\n  provide(FORWARD_REF_INJECTION_KEY, {\r\n    setForwardRef,\r\n  })\r\n}\r\n\r\nexport const useForwardRefDirective = (setForwardRef: ForwardRefSetter) => {\r\n  return {\r\n    mounted(sg) {\r\n      setForwardRef(sg)\r\n    },\r\n    updated(sg) {\r\n      setForwardRef(sg)\r\n    },\r\n    unmounted() {\r\n      setForwardRef(null)\r\n    },\r\n  }\r\n}\r\n"],"names":[],"mappings":";;AACY,MAAC,yBAAyB,GAAG,MAAM,CAAC,cAAc,EAAE;AACpD,MAAC,aAAa,GAAG,CAAC,UAAU,KAAK;AAC7C,EAAE,MAAM,aAAa,GAAG,CAAC,EAAE,KAAK;AAChC,IAAI,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC;AAC1B,GAAG,CAAC;AACJ,EAAE,OAAO,CAAC,yBAAyB,EAAE;AACrC,IAAI,aAAa;AACjB,GAAG,CAAC,CAAC;AACL,EAAE;AACU,MAAC,sBAAsB,GAAG,CAAC,aAAa,KAAK;AACzD,EAAE,OAAO;AACT,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,MAAM,aAAa,CAAC,EAAE,CAAC,CAAC;AACxB,KAAK;AACL,IAAI,SAAS,GAAG;AAChB,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;AAC1B,KAAK;AACL,GAAG,CAAC;AACJ;;;;"}