{"version":3,"sources":["../../src/rhf/index.ts","../../src/rhf/useFieldArray.ts"],"sourcesContent":["export * from './useFieldArray';\n","import { useMemo } from 'react';\nimport {\n  type FieldArray,\n  type FieldArrayPath,\n  type FieldArrayWithId,\n  type FieldValues,\n  useFieldArray as useFieldArrayOriginal,\n  type UseFieldArrayProps as UseFieldArrayPropsOriginal,\n  type UseFieldArrayReturn,\n} from 'react-hook-form';\n\nexport interface UseFieldArrayProps<\n  TFieldValues extends FieldValues = FieldValues,\n  TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,\n  TKeyName extends string = 'id',\n> extends UseFieldArrayPropsOriginal<TFieldValues, TFieldArrayName, TKeyName> {\n  getTransformer?: <R extends TFieldValues, N extends FieldArrayPath<R>>(\n    value: FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>,\n  ) => FieldArrayWithId<R, N, TKeyName>;\n\n  setTransformer?: <R extends FieldValues, N extends FieldArrayPath<R>>(\n    value: FieldArray<R, N>,\n  ) => FieldArrayWithId<TFieldValues, TFieldArrayName, TKeyName>;\n}\n\nexport function useFieldArray<\n  TFieldValues extends FieldValues = FieldValues,\n  TFieldArrayName extends FieldArrayPath<TFieldValues> = FieldArrayPath<TFieldValues>,\n  TKeyName extends string = 'id',\n>(props: UseFieldArrayProps<TFieldValues, TFieldArrayName, TKeyName>): UseFieldArrayReturn<TFieldValues, TFieldArrayName, TKeyName> {\n  const original = useFieldArrayOriginal(props);\n  const newFields = useMemo(() => {\n    if (!props.getTransformer) {\n      return original.fields;\n    }\n\n    return original.fields.map(props.getTransformer);\n  }, [original.fields, props.getTransformer]);\n\n  return {\n    fields: newFields,\n    move: original.move,\n    remove: original.remove,\n    swap: original.swap,\n    prepend: (value, options) => {\n      if (!props.setTransformer) {\n        return original.prepend(value, options);\n      }\n\n      const newValue = Array.isArray(value) ? value.map(props.setTransformer) : props.setTransformer(value);\n      original.prepend(newValue, options);\n    },\n    append: (value, options) => {\n      if (!props.setTransformer) {\n        return original.append(value, options);\n      }\n\n      const newValue = Array.isArray(value) ? value.map(props.setTransformer) : props.setTransformer(value);\n      original.append(newValue, options);\n    },\n    insert: (index, value, options) => {\n      if (!props.setTransformer) {\n        return original.insert(index, value, options);\n      }\n\n      const newValue = Array.isArray(value) ? value.map(props.setTransformer) : props.setTransformer(value);\n      original.insert(index, newValue, options);\n    },\n    update: (index, value) => {\n      if (!props.setTransformer) {\n        return original.update(index, value);\n      }\n\n      const newValue = props.setTransformer(value);\n      original.update(index, newValue);\n    },\n    replace: (value) => {\n      if (!props.setTransformer) {\n        return original.replace(value);\n      }\n\n      const newValue = props.setTransformer(value);\n      original.replace(newValue);\n    },\n  };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAwB;AACxB,6BAQO;AAgBA,SAAS,cAId,OAAkI;AAClI,QAAM,eAAW,uBAAAA,eAAsB,KAAK;AAC5C,QAAM,gBAAY,sBAAQ,MAAM;AAC9B,QAAI,CAAC,MAAM,gBAAgB;AACzB,aAAO,SAAS;AAAA,IAClB;AAEA,WAAO,SAAS,OAAO,IAAI,MAAM,cAAc;AAAA,EACjD,GAAG,CAAC,SAAS,QAAQ,MAAM,cAAc,CAAC;AAE1C,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM,SAAS;AAAA,IACf,QAAQ,SAAS;AAAA,IACjB,MAAM,SAAS;AAAA,IACf,SAAS,CAAC,OAAO,YAAY;AAC3B,UAAI,CAAC,MAAM,gBAAgB;AACzB,eAAO,SAAS,QAAQ,OAAO,OAAO;AAAA,MACxC;AAEA,YAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,MAAM,cAAc,IAAI,MAAM,eAAe,KAAK;AACpG,eAAS,QAAQ,UAAU,OAAO;AAAA,IACpC;AAAA,IACA,QAAQ,CAAC,OAAO,YAAY;AAC1B,UAAI,CAAC,MAAM,gBAAgB;AACzB,eAAO,SAAS,OAAO,OAAO,OAAO;AAAA,MACvC;AAEA,YAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,MAAM,cAAc,IAAI,MAAM,eAAe,KAAK;AACpG,eAAS,OAAO,UAAU,OAAO;AAAA,IACnC;AAAA,IACA,QAAQ,CAAC,OAAO,OAAO,YAAY;AACjC,UAAI,CAAC,MAAM,gBAAgB;AACzB,eAAO,SAAS,OAAO,OAAO,OAAO,OAAO;AAAA,MAC9C;AAEA,YAAM,WAAW,MAAM,QAAQ,KAAK,IAAI,MAAM,IAAI,MAAM,cAAc,IAAI,MAAM,eAAe,KAAK;AACpG,eAAS,OAAO,OAAO,UAAU,OAAO;AAAA,IAC1C;AAAA,IACA,QAAQ,CAAC,OAAO,UAAU;AACxB,UAAI,CAAC,MAAM,gBAAgB;AACzB,eAAO,SAAS,OAAO,OAAO,KAAK;AAAA,MACrC;AAEA,YAAM,WAAW,MAAM,eAAe,KAAK;AAC3C,eAAS,OAAO,OAAO,QAAQ;AAAA,IACjC;AAAA,IACA,SAAS,CAAC,UAAU;AAClB,UAAI,CAAC,MAAM,gBAAgB;AACzB,eAAO,SAAS,QAAQ,KAAK;AAAA,MAC/B;AAEA,YAAM,WAAW,MAAM,eAAe,KAAK;AAC3C,eAAS,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACF;AACF;","names":["useFieldArrayOriginal"]}