{"version":3,"file":"hooks.mjs","sources":["../../../../../../packages/components/array-base/src/hooks.ts"],"sourcesContent":["import { inject, onBeforeUnmount, ref, toRefs } from 'vue'\nimport { formContextKey, formItemContextKey } from 'element-plus'\nimport { uid } from '@element-plus/utils/uid'\nimport { isUndefined } from '@element-plus/utils'\nimport { ArrayBaseSymbol, ItemSymbol } from './constant'\nimport type { IFieldContext, IFormContext } from './array-base'\n\nexport const useArray = () => {\n  return inject(ArrayBaseSymbol, {} as any)\n}\n\nexport const useIndex = (idx?: number) => {\n  return isUndefined(idx) ? toRefs(inject(ItemSymbol) as any).index : ref(idx)\n}\n\nexport const useRecord = (item?: any) => {\n  return isUndefined(item)\n    ? toRefs(inject(ItemSymbol) as any).record\n    : ref(item)\n}\n\nexport const useField = (): IFieldContext =>\n  inject(formItemContextKey, undefined)\n\nexport const useForm = (): IFormContext => inject(formContextKey, undefined)\n\nexport type keyMapType = string[]\n\nexport const useKey = () => {\n  let keyMap: keyMapType = []\n\n  onBeforeUnmount(() => {\n    keyMap = []\n  })\n\n  return {\n    keyMap,\n    getKey: (index: number) => {\n      if (!keyMap[index]) {\n        keyMap[index] = uid()\n      }\n      // return `${keyMap[index]}-${index}`\n      return `${keyMap[index]}`\n    },\n  }\n}\n"],"names":[],"mappings":";;;;;;AAOO,MAAM,WAAW,MAAM;AAC5B,EAAO,OAAA,MAAA,CAAO,eAAiB,EAAA,EAAS,CAAA,CAAA;AAC1C,EAAA;AAEa,MAAA,QAAA,GAAW,CAAC,GAAiB,KAAA;AACxC,EAAO,OAAA,WAAA,CAAY,GAAG,CAAA,GAAI,MAAO,CAAA,MAAA,CAAO,UAAU,CAAQ,CAAA,CAAE,KAAQ,GAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC7E,EAAA;AAEa,MAAA,SAAA,GAAY,CAAC,IAAe,KAAA;AACvC,EAAO,OAAA,WAAA,CAAY,IAAI,CAAA,GACnB,MAAO,CAAA,MAAA,CAAO,UAAU,CAAQ,CAAA,CAAE,MAClC,GAAA,GAAA,CAAI,IAAI,CAAA,CAAA;AACd,EAAA;AAEO,MAAM,QAAW,GAAA,MACtB,MAAO,CAAA,kBAAA,EAAoB,KAAS,CAAA,EAAA;AAE/B,MAAM,OAAU,GAAA,MAAoB,MAAO,CAAA,cAAA,EAAgB,KAAS,CAAA,EAAA;AAIpE,MAAM,SAAS,MAAM;AAC1B,EAAA,IAAI,SAAqB,EAAC,CAAA;AAE1B,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,MAAA,GAAS,EAAC,CAAA;AAAA,GACX,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,MAAA;AAAA,IACA,MAAA,EAAQ,CAAC,KAAkB,KAAA;AACzB,MAAI,IAAA,CAAC,OAAO,KAAQ,CAAA,EAAA;AAClB,QAAA,MAAA,CAAO,SAAS,GAAI,EAAA,CAAA;AAAA,OACtB;AAEA,MAAA,OAAO,GAAG,MAAO,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA;AAAA,KACnB;AAAA,GACF,CAAA;AACF;;;;"}