@jcoreio/zod-forms 2.0.0-beta.2 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/FormContext.d.ts CHANGED
@@ -27,7 +27,7 @@ export type FormContextProps<T extends z.ZodTypeAny> = {
27
27
  setParsedValue: typeof setParsedValue;
28
28
  submit: typeof submit;
29
29
  setSubmitStatus: typeof setSubmitStatus<T>;
30
- arrayActions: typeof arrayActions;
30
+ arrayActions: arrayActions;
31
31
  selectFormStatus: SelectFormStatus;
32
32
  selectFieldErrorMap: SelectFieldErrorMap;
33
33
  selectFormValues: SelectFormValues<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["src/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,eAAO,MAAM,WAAW,sDAC0C,CAAA;AAElE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,YAAY,EAAE,OAAO,YAAY,CAAA;IACjC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACpD,sBAAsB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACrD,gBAAgB,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,SAAS,EAAE,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAA;CACvE,CAAA"}
1
+ {"version":3,"file":"FormContext.d.ts","sourceRoot":"","sources":["src/FormContext.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,eAAO,MAAM,WAAW,sDAC0C,CAAA;AAElE,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,IAAI;IACrD,MAAM,EAAE,CAAC,CAAA;IACT,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACtD,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAA;IAClB,UAAU,EAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAA;IAChC,WAAW,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;IAClC,cAAc,EAAE,OAAO,cAAc,CAAC,CAAC,CAAC,CAAA;IACxC,OAAO,EAAE,OAAO,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,QAAQ,CAAA;IACzB,cAAc,EAAE,OAAO,cAAc,CAAA;IACrC,MAAM,EAAE,OAAO,MAAM,CAAA;IACrB,eAAe,EAAE,OAAO,eAAe,CAAC,CAAC,CAAC,CAAA;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,eAAe,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC9C,SAAS,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACpD,sBAAsB,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IACrD,gBAAgB,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAA;IAC3D,SAAS,EAAE,MAAM,UAAU,CAAC,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC,CAAA;CACvE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.js","names":["_react","_interopRequireDefault","require","FormContext","exports","React","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAoBO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBACtBE,iBAAK,CAACC,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FormContext.js","names":["_react","_interopRequireDefault","require","FormContext","exports","React","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAoBO,IAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,gBACtBE,iBAAK,CAACC,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"FormContext.mjs","names":["React","FormContext","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: typeof arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,WAAW,gBACtBD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"FormContext.mjs","names":["React","FormContext","createContext"],"sources":["src/FormContext.ts"],"sourcesContent":["import React from 'react'\nimport z from 'zod'\nimport { FieldPath } from './FieldPath'\nimport { initialize } from './actions/initialize'\nimport { setValue } from './actions/setValue'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { submit } from './actions/submit'\nimport { setSubmitStatus } from './actions/setSubmitStatus'\nimport { SelectFormValues } from './createSelectFormValues'\nimport { SelectFieldErrorMap } from './createSelectFieldErrorMap'\nimport {\n createSelectFormStatus,\n SelectFormStatus,\n} from './createSelectFormStatus'\nimport { setMeta } from './actions/setMeta'\nimport { addHandlers } from './actions/addHandlers'\nimport { removeHandlers } from './actions/removeHandlers'\nimport { arrayActions } from './actions/arrayActions'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport const FormContext =\n React.createContext<FormContextProps<z.ZodTypeAny> | null>(null)\n\nexport type FormContextProps<T extends z.ZodTypeAny> = {\n schema: T\n inverseSchema: z.ZodType<z.input<T>, any, z.output<T>>\n root: FieldPath<T>\n initialize: typeof initialize<T>\n addHandlers: typeof addHandlers<T>\n removeHandlers: typeof removeHandlers<T>\n setMeta: typeof setMeta\n setValue: typeof setValue\n setParsedValue: typeof setParsedValue\n submit: typeof submit\n setSubmitStatus: typeof setSubmitStatus<T>\n arrayActions: arrayActions\n selectFormStatus: SelectFormStatus\n selectFieldErrorMap: SelectFieldErrorMap\n selectFormValues: SelectFormValues<T>\n getParsedValues: () => z.output<T> | undefined\n getValues: () => DeepPartial<z.input<T>> | undefined\n getInitialParsedValues: () => z.output<T> | undefined\n getInitialValues: () => DeepPartial<z.input<T>> | undefined\n getStatus: () => ReturnType<ReturnType<typeof createSelectFormStatus>>\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAoBzB,OAAO,MAAMC,WAAW,gBACtBD,KAAK,CAACE,aAAa,CAAwC,IAAI,CAAC","ignoreList":[]}
@@ -94,6 +94,22 @@ export declare function arrayUnshift<Field extends ArrayFieldPath>(field: Field,
94
94
  readonly value: DeepPartial<NonNullable<z.input<Field["schema"]>>[number]>;
95
95
  };
96
96
  export type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> = ArrayInsertParsedAction<Field> | ArrayInsertAction<Field> | ArrayMoveAction | ArrayPopAction | ArrayPushParsedAction<Field> | ArrayPushAction<Field> | ArrayRemoveAction | ArrayRemoveAllAction | ArrayShiftAction | ArraySpliceParsedAction<Field> | ArraySpliceAction<Field> | ArraySwapAction | ArrayUnshiftParsedAction<Field> | ArrayUnshiftAction<Field>;
97
+ export type arrayActions<Field extends ArrayFieldPath = ArrayFieldPath> = {
98
+ insertParsed: typeof arrayInsertParsed<Field>;
99
+ insert: typeof arrayInsert<Field>;
100
+ move: typeof arrayMove;
101
+ pop: typeof arrayPop;
102
+ pushParsed: typeof arrayPushParsed<Field>;
103
+ push: typeof arrayPush<Field>;
104
+ remove: typeof arrayRemove;
105
+ removeAll: typeof arrayRemoveAll;
106
+ shift: typeof arrayShift;
107
+ spliceParsed: typeof arraySpliceParsed<Field>;
108
+ splice: typeof arraySplice<Field>;
109
+ swap: typeof arraySwap;
110
+ unshiftParsed: typeof arrayUnshiftParsed<Field>;
111
+ unshift: typeof arrayUnshift<Field>;
112
+ };
97
113
  export declare const arrayActions: {
98
114
  insertParsed: typeof arrayInsertParsed;
99
115
  insert: typeof arrayInsert;
@@ -1 +1 @@
1
- {"version":3,"file":"arrayActions.d.ts","sourceRoot":"","sources":["../../src/actions/arrayActions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arrayActions.d.ts","sourceRoot":"","sources":["../../src/actions/arrayActions.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"arrayActions.js","names":["arrayInsertParsed","field","index","parsedValue","type","arrayInsert","value","arrayMove","from","to","arrayPop","arrayPushParsed","arrayPush","arrayRemove","arrayRemoveAll","arrayShift","arraySpliceParsed","deleteCount","_len","arguments","length","parsedValues","Array","_key","arraySplice","_len2","values","_key2","arraySwap","indexA","indexB","arrayUnshiftParsed","arrayUnshift","arrayActions","exports","insertParsed","insert","move","pop","pushParsed","push","remove","removeAll","shift","spliceParsed","splice","swap","unshiftParsed","unshift"],"sources":["../../src/actions/arrayActions.ts"],"sourcesContent":["import { FieldPathForParsedValue } from '../FieldPath'\nimport z from 'zod'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type ArrayFieldPath<V = any, R = any> = FieldPathForParsedValue<\n V[] | null | undefined,\n R[] | null | undefined\n>\n\ntype ParsedValueFor<Field extends ArrayFieldPath> = NonNullable<\n z.output<Field['schema']>\n>[number]\n\ntype ValueFor<Field extends ArrayFieldPath> = DeepPartial<\n NonNullable<z.input<Field['schema']>>[number]\n>\n\nexport type ArrayInsertParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayInsertParsed<Field>>\n\nexport function arrayInsertParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayInsertParsed', field, index, parsedValue } as const\n}\n\nexport type ArrayInsertAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayInsert<Field>>\n\nexport function arrayInsert<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n value: ValueFor<Field>\n) {\n return { type: 'arrayInsert', field, index, value } as const\n}\n\nexport type ArrayMoveAction = ReturnType<typeof arrayMove>\n\nexport function arrayMove(field: ArrayFieldPath, from: number, to: number) {\n return { type: 'arrayMove', field, from, to } as const\n}\n\nexport type ArrayPopAction = ReturnType<typeof arrayPop>\n\nexport function arrayPop(field: ArrayFieldPath) {\n return { type: 'arrayPop', field } as const\n}\n\nexport type ArrayPushParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayPushParsed<Field>>\n\nexport function arrayPushParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayPushParsed', field, parsedValue } as const\n}\n\nexport type ArrayPushAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayPush<Field>>\n\nexport function arrayPush<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayPush', field, value } as const\n}\n\nexport type ArrayRemoveAction = ReturnType<typeof arrayRemove>\n\nexport function arrayRemove(field: ArrayFieldPath, index: number) {\n return { type: 'arrayRemove', field, index } as const\n}\n\nexport type ArrayRemoveAllAction = ReturnType<typeof arrayRemoveAll>\n\nexport function arrayRemoveAll(field: ArrayFieldPath) {\n return { type: 'arrayRemoveAll', field } as const\n}\n\nexport type ArrayShiftAction = ReturnType<typeof arrayShift>\n\nexport function arrayShift(field: ArrayFieldPath) {\n return { type: 'arrayShift', field } as const\n}\n\nexport type ArraySpliceParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arraySpliceParsed<Field>>\n\nexport function arraySpliceParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...parsedValues: ParsedValueFor<Field>[]\n) {\n return {\n type: 'arraySpliceParsed',\n field,\n index,\n deleteCount,\n parsedValues,\n } as const\n}\n\nexport type ArraySpliceAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arraySplice<Field>>\n\nexport function arraySplice<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...values: ValueFor<Field>[]\n) {\n return {\n type: 'arraySplice',\n field,\n index,\n deleteCount,\n values,\n } as const\n}\n\nexport type ArraySwapAction = ReturnType<typeof arraySwap>\n\nexport function arraySwap(\n field: ArrayFieldPath,\n indexA: number,\n indexB: number\n) {\n return { type: 'arraySwap', field, indexA, indexB } as const\n}\n\nexport type ArrayUnshiftParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayUnshiftParsed<Field>>\n\nexport function arrayUnshiftParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayUnshiftParsed', field, parsedValue } as const\n}\n\nexport type ArrayUnshiftAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayUnshift<Field>>\n\nexport function arrayUnshift<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayUnshift', field, value } as const\n}\n\nexport type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n | ArrayInsertParsedAction<Field>\n | ArrayInsertAction<Field>\n | ArrayMoveAction\n | ArrayPopAction\n | ArrayPushParsedAction<Field>\n | ArrayPushAction<Field>\n | ArrayRemoveAction\n | ArrayRemoveAllAction\n | ArrayShiftAction\n | ArraySpliceParsedAction<Field>\n | ArraySpliceAction<Field>\n | ArraySwapAction\n | ArrayUnshiftParsedAction<Field>\n | ArrayUnshiftAction<Field>\n\nexport const arrayActions = {\n insertParsed: arrayInsertParsed,\n insert: arrayInsert,\n move: arrayMove,\n pop: arrayPop,\n pushParsed: arrayPushParsed,\n push: arrayPush,\n remove: arrayRemove,\n removeAll: arrayRemoveAll,\n shift: arrayShift,\n spliceParsed: arraySpliceParsed,\n splice: arraySplice,\n swap: arraySwap,\n unshiftParsed: arrayUnshiftParsed,\n unshift: arrayUnshift,\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAqBO,SAASA,iBAAiBA,CAC/BC,KAAY,EACZC,KAAa,EACbC,WAAkC,EAClC;EACA,OAAO;IAAEC,IAAI,EAAE,mBAAmB;IAAEH,KAAK,EAALA,KAAK;IAAEC,KAAK,EAALA,KAAK;IAAEC,WAAW,EAAXA;EAAY,CAAC;AACjE;AAKO,SAASE,WAAWA,CACzBJ,KAAY,EACZC,KAAa,EACbI,KAAsB,EACtB;EACA,OAAO;IAAEF,IAAI,EAAE,aAAa;IAAEH,KAAK,EAALA,KAAK;IAAEC,KAAK,EAALA,KAAK;IAAEI,KAAK,EAALA;EAAM,CAAC;AACrD;AAIO,SAASC,SAASA,CAACN,KAAqB,EAAEO,IAAY,EAAEC,EAAU,EAAE;EACzE,OAAO;IAAEL,IAAI,EAAE,WAAW;IAAEH,KAAK,EAALA,KAAK;IAAEO,IAAI,EAAJA,IAAI;IAAEC,EAAE,EAAFA;EAAG,CAAC;AAC/C;AAIO,SAASC,QAAQA,CAACT,KAAqB,EAAE;EAC9C,OAAO;IAAEG,IAAI,EAAE,UAAU;IAAEH,KAAK,EAALA;EAAM,CAAC;AACpC;AAMO,SAASU,eAAeA,CAC7BV,KAAY,EACZE,WAAkC,EAClC;EACA,OAAO;IAAEC,IAAI,EAAE,iBAAiB;IAAEH,KAAK,EAALA,KAAK;IAAEE,WAAW,EAAXA;EAAY,CAAC;AACxD;AAKO,SAASS,SAASA,CACvBX,KAAY,EACZK,KAAsB,EACtB;EACA,OAAO;IAAEF,IAAI,EAAE,WAAW;IAAEH,KAAK,EAALA,KAAK;IAAEK,KAAK,EAALA;EAAM,CAAC;AAC5C;AAIO,SAASO,WAAWA,CAACZ,KAAqB,EAAEC,KAAa,EAAE;EAChE,OAAO;IAAEE,IAAI,EAAE,aAAa;IAAEH,KAAK,EAALA,KAAK;IAAEC,KAAK,EAALA;EAAM,CAAC;AAC9C;AAIO,SAASY,cAAcA,CAACb,KAAqB,EAAE;EACpD,OAAO;IAAEG,IAAI,EAAE,gBAAgB;IAAEH,KAAK,EAALA;EAAM,CAAC;AAC1C;AAIO,SAASc,UAAUA,CAACd,KAAqB,EAAE;EAChD,OAAO;IAAEG,IAAI,EAAE,YAAY;IAAEH,KAAK,EAALA;EAAM,CAAC;AACtC;AAMO,SAASe,iBAAiBA,CAC/Bf,KAAY,EACZC,KAAa,EACbe,WAAmB,EAEnB;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EADGC,YAAY,OAAAC,KAAA,CAAAJ,IAAA,OAAAA,IAAA,WAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAZF,YAAY,CAAAE,IAAA,QAAAJ,SAAA,CAAAI,IAAA;EAAA;EAEf,OAAO;IACLnB,IAAI,EAAE,mBAAmB;IACzBH,KAAK,EAALA,KAAK;IACLC,KAAK,EAALA,KAAK;IACLe,WAAW,EAAXA,WAAW;IACXI,YAAY,EAAZA;EACF,CAAC;AACH;AAKO,SAASG,WAAWA,CACzBvB,KAAY,EACZC,KAAa,EACbe,WAAmB,EAEnB;EAAA,SAAAQ,KAAA,GAAAN,SAAA,CAAAC,MAAA,EADGM,MAAM,OAAAJ,KAAA,CAAAG,KAAA,OAAAA,KAAA,WAAAE,KAAA,MAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA;IAAND,MAAM,CAAAC,KAAA,QAAAR,SAAA,CAAAQ,KAAA;EAAA;EAET,OAAO;IACLvB,IAAI,EAAE,aAAa;IACnBH,KAAK,EAALA,KAAK;IACLC,KAAK,EAALA,KAAK;IACLe,WAAW,EAAXA,WAAW;IACXS,MAAM,EAANA;EACF,CAAC;AACH;AAIO,SAASE,SAASA,CACvB3B,KAAqB,EACrB4B,MAAc,EACdC,MAAc,EACd;EACA,OAAO;IAAE1B,IAAI,EAAE,WAAW;IAAEH,KAAK,EAALA,KAAK;IAAE4B,MAAM,EAANA,MAAM;IAAEC,MAAM,EAANA;EAAO,CAAC;AACrD;AAMO,SAASC,kBAAkBA,CAChC9B,KAAY,EACZE,WAAkC,EAClC;EACA,OAAO;IAAEC,IAAI,EAAE,oBAAoB;IAAEH,KAAK,EAALA,KAAK;IAAEE,WAAW,EAAXA;EAAY,CAAC;AAC3D;AAKO,SAAS6B,YAAYA,CAC1B/B,KAAY,EACZK,KAAsB,EACtB;EACA,OAAO;IAAEF,IAAI,EAAE,cAAc;IAAEH,KAAK,EAALA,KAAK;IAAEK,KAAK,EAALA;EAAM,CAAC;AAC/C;AAkBO,IAAM2B,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG;EAC1BE,YAAY,EAAEnC,iBAAiB;EAC/BoC,MAAM,EAAE/B,WAAW;EACnBgC,IAAI,EAAE9B,SAAS;EACf+B,GAAG,EAAE5B,QAAQ;EACb6B,UAAU,EAAE5B,eAAe;EAC3B6B,IAAI,EAAE5B,SAAS;EACf6B,MAAM,EAAE5B,WAAW;EACnB6B,SAAS,EAAE5B,cAAc;EACzB6B,KAAK,EAAE5B,UAAU;EACjB6B,YAAY,EAAE5B,iBAAiB;EAC/B6B,MAAM,EAAErB,WAAW;EACnBsB,IAAI,EAAElB,SAAS;EACfmB,aAAa,EAAEhB,kBAAkB;EACjCiB,OAAO,EAAEhB;AACX,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"arrayActions.js","names":["arrayInsertParsed","field","index","parsedValue","type","arrayInsert","value","arrayMove","from","to","arrayPop","arrayPushParsed","arrayPush","arrayRemove","arrayRemoveAll","arrayShift","arraySpliceParsed","deleteCount","_len","arguments","length","parsedValues","Array","_key","arraySplice","_len2","values","_key2","arraySwap","indexA","indexB","arrayUnshiftParsed","arrayUnshift","arrayActions","exports","insertParsed","insert","move","pop","pushParsed","push","remove","removeAll","shift","spliceParsed","splice","swap","unshiftParsed","unshift"],"sources":["../../src/actions/arrayActions.ts"],"sourcesContent":["import { FieldPathForParsedValue } from '../FieldPath'\nimport z from 'zod'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type ArrayFieldPath<V = any, R = any> = FieldPathForParsedValue<\n V[] | null | undefined,\n R[] | null | undefined\n>\n\ntype ParsedValueFor<Field extends ArrayFieldPath> = NonNullable<\n z.output<Field['schema']>\n>[number]\n\ntype ValueFor<Field extends ArrayFieldPath> = DeepPartial<\n NonNullable<z.input<Field['schema']>>[number]\n>\n\nexport type ArrayInsertParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayInsertParsed<Field>>\n\nexport function arrayInsertParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayInsertParsed', field, index, parsedValue } as const\n}\n\nexport type ArrayInsertAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayInsert<Field>>\n\nexport function arrayInsert<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n value: ValueFor<Field>\n) {\n return { type: 'arrayInsert', field, index, value } as const\n}\n\nexport type ArrayMoveAction = ReturnType<typeof arrayMove>\n\nexport function arrayMove(field: ArrayFieldPath, from: number, to: number) {\n return { type: 'arrayMove', field, from, to } as const\n}\n\nexport type ArrayPopAction = ReturnType<typeof arrayPop>\n\nexport function arrayPop(field: ArrayFieldPath) {\n return { type: 'arrayPop', field } as const\n}\n\nexport type ArrayPushParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayPushParsed<Field>>\n\nexport function arrayPushParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayPushParsed', field, parsedValue } as const\n}\n\nexport type ArrayPushAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayPush<Field>>\n\nexport function arrayPush<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayPush', field, value } as const\n}\n\nexport type ArrayRemoveAction = ReturnType<typeof arrayRemove>\n\nexport function arrayRemove(field: ArrayFieldPath, index: number) {\n return { type: 'arrayRemove', field, index } as const\n}\n\nexport type ArrayRemoveAllAction = ReturnType<typeof arrayRemoveAll>\n\nexport function arrayRemoveAll(field: ArrayFieldPath) {\n return { type: 'arrayRemoveAll', field } as const\n}\n\nexport type ArrayShiftAction = ReturnType<typeof arrayShift>\n\nexport function arrayShift(field: ArrayFieldPath) {\n return { type: 'arrayShift', field } as const\n}\n\nexport type ArraySpliceParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arraySpliceParsed<Field>>\n\nexport function arraySpliceParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...parsedValues: ParsedValueFor<Field>[]\n) {\n return {\n type: 'arraySpliceParsed',\n field,\n index,\n deleteCount,\n parsedValues,\n } as const\n}\n\nexport type ArraySpliceAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arraySplice<Field>>\n\nexport function arraySplice<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...values: ValueFor<Field>[]\n) {\n return {\n type: 'arraySplice',\n field,\n index,\n deleteCount,\n values,\n } as const\n}\n\nexport type ArraySwapAction = ReturnType<typeof arraySwap>\n\nexport function arraySwap(\n field: ArrayFieldPath,\n indexA: number,\n indexB: number\n) {\n return { type: 'arraySwap', field, indexA, indexB } as const\n}\n\nexport type ArrayUnshiftParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayUnshiftParsed<Field>>\n\nexport function arrayUnshiftParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayUnshiftParsed', field, parsedValue } as const\n}\n\nexport type ArrayUnshiftAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayUnshift<Field>>\n\nexport function arrayUnshift<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayUnshift', field, value } as const\n}\n\nexport type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n | ArrayInsertParsedAction<Field>\n | ArrayInsertAction<Field>\n | ArrayMoveAction\n | ArrayPopAction\n | ArrayPushParsedAction<Field>\n | ArrayPushAction<Field>\n | ArrayRemoveAction\n | ArrayRemoveAllAction\n | ArrayShiftAction\n | ArraySpliceParsedAction<Field>\n | ArraySpliceAction<Field>\n | ArraySwapAction\n | ArrayUnshiftParsedAction<Field>\n | ArrayUnshiftAction<Field>\n\nexport type arrayActions<Field extends ArrayFieldPath = ArrayFieldPath> = {\n insertParsed: typeof arrayInsertParsed<Field>\n insert: typeof arrayInsert<Field>\n move: typeof arrayMove\n pop: typeof arrayPop\n pushParsed: typeof arrayPushParsed<Field>\n push: typeof arrayPush<Field>\n remove: typeof arrayRemove\n removeAll: typeof arrayRemoveAll\n shift: typeof arrayShift\n spliceParsed: typeof arraySpliceParsed<Field>\n splice: typeof arraySplice<Field>\n swap: typeof arraySwap\n unshiftParsed: typeof arrayUnshiftParsed<Field>\n unshift: typeof arrayUnshift<Field>\n}\n\nexport const arrayActions = {\n insertParsed: arrayInsertParsed,\n insert: arrayInsert,\n move: arrayMove,\n pop: arrayPop,\n pushParsed: arrayPushParsed,\n push: arrayPush,\n remove: arrayRemove,\n removeAll: arrayRemoveAll,\n shift: arrayShift,\n spliceParsed: arraySpliceParsed,\n splice: arraySplice,\n swap: arraySwap,\n unshiftParsed: arrayUnshiftParsed,\n unshift: arrayUnshift,\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"arrayActions.mjs","names":["arrayInsertParsed","field","index","parsedValue","type","arrayInsert","value","arrayMove","from","to","arrayPop","arrayPushParsed","arrayPush","arrayRemove","arrayRemoveAll","arrayShift","arraySpliceParsed","deleteCount","parsedValues","arraySplice","values","arraySwap","indexA","indexB","arrayUnshiftParsed","arrayUnshift","arrayActions","insertParsed","insert","move","pop","pushParsed","push","remove","removeAll","shift","spliceParsed","splice","swap","unshiftParsed","unshift"],"sources":["../../src/actions/arrayActions.ts"],"sourcesContent":["import { FieldPathForParsedValue } from '../FieldPath'\nimport z from 'zod'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type ArrayFieldPath<V = any, R = any> = FieldPathForParsedValue<\n V[] | null | undefined,\n R[] | null | undefined\n>\n\ntype ParsedValueFor<Field extends ArrayFieldPath> = NonNullable<\n z.output<Field['schema']>\n>[number]\n\ntype ValueFor<Field extends ArrayFieldPath> = DeepPartial<\n NonNullable<z.input<Field['schema']>>[number]\n>\n\nexport type ArrayInsertParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayInsertParsed<Field>>\n\nexport function arrayInsertParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayInsertParsed', field, index, parsedValue } as const\n}\n\nexport type ArrayInsertAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayInsert<Field>>\n\nexport function arrayInsert<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n value: ValueFor<Field>\n) {\n return { type: 'arrayInsert', field, index, value } as const\n}\n\nexport type ArrayMoveAction = ReturnType<typeof arrayMove>\n\nexport function arrayMove(field: ArrayFieldPath, from: number, to: number) {\n return { type: 'arrayMove', field, from, to } as const\n}\n\nexport type ArrayPopAction = ReturnType<typeof arrayPop>\n\nexport function arrayPop(field: ArrayFieldPath) {\n return { type: 'arrayPop', field } as const\n}\n\nexport type ArrayPushParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayPushParsed<Field>>\n\nexport function arrayPushParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayPushParsed', field, parsedValue } as const\n}\n\nexport type ArrayPushAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayPush<Field>>\n\nexport function arrayPush<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayPush', field, value } as const\n}\n\nexport type ArrayRemoveAction = ReturnType<typeof arrayRemove>\n\nexport function arrayRemove(field: ArrayFieldPath, index: number) {\n return { type: 'arrayRemove', field, index } as const\n}\n\nexport type ArrayRemoveAllAction = ReturnType<typeof arrayRemoveAll>\n\nexport function arrayRemoveAll(field: ArrayFieldPath) {\n return { type: 'arrayRemoveAll', field } as const\n}\n\nexport type ArrayShiftAction = ReturnType<typeof arrayShift>\n\nexport function arrayShift(field: ArrayFieldPath) {\n return { type: 'arrayShift', field } as const\n}\n\nexport type ArraySpliceParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arraySpliceParsed<Field>>\n\nexport function arraySpliceParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...parsedValues: ParsedValueFor<Field>[]\n) {\n return {\n type: 'arraySpliceParsed',\n field,\n index,\n deleteCount,\n parsedValues,\n } as const\n}\n\nexport type ArraySpliceAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arraySplice<Field>>\n\nexport function arraySplice<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...values: ValueFor<Field>[]\n) {\n return {\n type: 'arraySplice',\n field,\n index,\n deleteCount,\n values,\n } as const\n}\n\nexport type ArraySwapAction = ReturnType<typeof arraySwap>\n\nexport function arraySwap(\n field: ArrayFieldPath,\n indexA: number,\n indexB: number\n) {\n return { type: 'arraySwap', field, indexA, indexB } as const\n}\n\nexport type ArrayUnshiftParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayUnshiftParsed<Field>>\n\nexport function arrayUnshiftParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayUnshiftParsed', field, parsedValue } as const\n}\n\nexport type ArrayUnshiftAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayUnshift<Field>>\n\nexport function arrayUnshift<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayUnshift', field, value } as const\n}\n\nexport type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n | ArrayInsertParsedAction<Field>\n | ArrayInsertAction<Field>\n | ArrayMoveAction\n | ArrayPopAction\n | ArrayPushParsedAction<Field>\n | ArrayPushAction<Field>\n | ArrayRemoveAction\n | ArrayRemoveAllAction\n | ArrayShiftAction\n | ArraySpliceParsedAction<Field>\n | ArraySpliceAction<Field>\n | ArraySwapAction\n | ArrayUnshiftParsedAction<Field>\n | ArrayUnshiftAction<Field>\n\nexport const arrayActions = {\n insertParsed: arrayInsertParsed,\n insert: arrayInsert,\n move: arrayMove,\n pop: arrayPop,\n pushParsed: arrayPushParsed,\n push: arrayPush,\n remove: arrayRemove,\n removeAll: arrayRemoveAll,\n shift: arrayShift,\n spliceParsed: arraySpliceParsed,\n splice: arraySplice,\n swap: arraySwap,\n unshiftParsed: arrayUnshiftParsed,\n unshift: arrayUnshift,\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"arrayActions.mjs","names":["arrayInsertParsed","field","index","parsedValue","type","arrayInsert","value","arrayMove","from","to","arrayPop","arrayPushParsed","arrayPush","arrayRemove","arrayRemoveAll","arrayShift","arraySpliceParsed","deleteCount","parsedValues","arraySplice","values","arraySwap","indexA","indexB","arrayUnshiftParsed","arrayUnshift","arrayActions","insertParsed","insert","move","pop","pushParsed","push","remove","removeAll","shift","spliceParsed","splice","swap","unshiftParsed","unshift"],"sources":["../../src/actions/arrayActions.ts"],"sourcesContent":["import { FieldPathForParsedValue } from '../FieldPath'\nimport z from 'zod'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type ArrayFieldPath<V = any, R = any> = FieldPathForParsedValue<\n V[] | null | undefined,\n R[] | null | undefined\n>\n\ntype ParsedValueFor<Field extends ArrayFieldPath> = NonNullable<\n z.output<Field['schema']>\n>[number]\n\ntype ValueFor<Field extends ArrayFieldPath> = DeepPartial<\n NonNullable<z.input<Field['schema']>>[number]\n>\n\nexport type ArrayInsertParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayInsertParsed<Field>>\n\nexport function arrayInsertParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayInsertParsed', field, index, parsedValue } as const\n}\n\nexport type ArrayInsertAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayInsert<Field>>\n\nexport function arrayInsert<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n value: ValueFor<Field>\n) {\n return { type: 'arrayInsert', field, index, value } as const\n}\n\nexport type ArrayMoveAction = ReturnType<typeof arrayMove>\n\nexport function arrayMove(field: ArrayFieldPath, from: number, to: number) {\n return { type: 'arrayMove', field, from, to } as const\n}\n\nexport type ArrayPopAction = ReturnType<typeof arrayPop>\n\nexport function arrayPop(field: ArrayFieldPath) {\n return { type: 'arrayPop', field } as const\n}\n\nexport type ArrayPushParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayPushParsed<Field>>\n\nexport function arrayPushParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayPushParsed', field, parsedValue } as const\n}\n\nexport type ArrayPushAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayPush<Field>>\n\nexport function arrayPush<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayPush', field, value } as const\n}\n\nexport type ArrayRemoveAction = ReturnType<typeof arrayRemove>\n\nexport function arrayRemove(field: ArrayFieldPath, index: number) {\n return { type: 'arrayRemove', field, index } as const\n}\n\nexport type ArrayRemoveAllAction = ReturnType<typeof arrayRemoveAll>\n\nexport function arrayRemoveAll(field: ArrayFieldPath) {\n return { type: 'arrayRemoveAll', field } as const\n}\n\nexport type ArrayShiftAction = ReturnType<typeof arrayShift>\n\nexport function arrayShift(field: ArrayFieldPath) {\n return { type: 'arrayShift', field } as const\n}\n\nexport type ArraySpliceParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arraySpliceParsed<Field>>\n\nexport function arraySpliceParsed<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...parsedValues: ParsedValueFor<Field>[]\n) {\n return {\n type: 'arraySpliceParsed',\n field,\n index,\n deleteCount,\n parsedValues,\n } as const\n}\n\nexport type ArraySpliceAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arraySplice<Field>>\n\nexport function arraySplice<Field extends ArrayFieldPath>(\n field: Field,\n index: number,\n deleteCount: number,\n ...values: ValueFor<Field>[]\n) {\n return {\n type: 'arraySplice',\n field,\n index,\n deleteCount,\n values,\n } as const\n}\n\nexport type ArraySwapAction = ReturnType<typeof arraySwap>\n\nexport function arraySwap(\n field: ArrayFieldPath,\n indexA: number,\n indexB: number\n) {\n return { type: 'arraySwap', field, indexA, indexB } as const\n}\n\nexport type ArrayUnshiftParsedAction<\n Field extends ArrayFieldPath = ArrayFieldPath\n> = ReturnType<typeof arrayUnshiftParsed<Field>>\n\nexport function arrayUnshiftParsed<Field extends ArrayFieldPath>(\n field: Field,\n parsedValue: ParsedValueFor<Field>\n) {\n return { type: 'arrayUnshiftParsed', field, parsedValue } as const\n}\n\nexport type ArrayUnshiftAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n ReturnType<typeof arrayUnshift<Field>>\n\nexport function arrayUnshift<Field extends ArrayFieldPath>(\n field: Field,\n value: ValueFor<Field>\n) {\n return { type: 'arrayUnshift', field, value } as const\n}\n\nexport type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> =\n | ArrayInsertParsedAction<Field>\n | ArrayInsertAction<Field>\n | ArrayMoveAction\n | ArrayPopAction\n | ArrayPushParsedAction<Field>\n | ArrayPushAction<Field>\n | ArrayRemoveAction\n | ArrayRemoveAllAction\n | ArrayShiftAction\n | ArraySpliceParsedAction<Field>\n | ArraySpliceAction<Field>\n | ArraySwapAction\n | ArrayUnshiftParsedAction<Field>\n | ArrayUnshiftAction<Field>\n\nexport type arrayActions<Field extends ArrayFieldPath = ArrayFieldPath> = {\n insertParsed: typeof arrayInsertParsed<Field>\n insert: typeof arrayInsert<Field>\n move: typeof arrayMove\n pop: typeof arrayPop\n pushParsed: typeof arrayPushParsed<Field>\n push: typeof arrayPush<Field>\n remove: typeof arrayRemove\n removeAll: typeof arrayRemoveAll\n shift: typeof arrayShift\n spliceParsed: typeof arraySpliceParsed<Field>\n splice: typeof arraySplice<Field>\n swap: typeof arraySwap\n unshiftParsed: typeof arrayUnshiftParsed<Field>\n unshift: typeof arrayUnshift<Field>\n}\n\nexport const arrayActions = {\n insertParsed: arrayInsertParsed,\n insert: arrayInsert,\n move: arrayMove,\n pop: arrayPop,\n pushParsed: arrayPushParsed,\n push: arrayPush,\n remove: arrayRemove,\n removeAll: arrayRemoveAll,\n shift: arrayShift,\n spliceParsed: arraySpliceParsed,\n splice: arraySplice,\n swap: arraySwap,\n unshiftParsed: arrayUnshiftParsed,\n unshift: arrayUnshift,\n}\n"],"mappings":"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","ignoreList":[]}
@@ -2,9 +2,9 @@ import z from 'zod';
2
2
  import { FieldPath } from '../FieldPath';
3
3
  import { DeepPartial } from '../util/DeepPartial';
4
4
  export type SetValueAction<Field extends FieldPath> = ReturnType<typeof setValue<Field>>;
5
- export declare function setValue<Field extends FieldPath>(field: Field, value: DeepPartial<z.input<Field['schema']>>): {
5
+ export declare function setValue<Field extends FieldPath>(field: Field, value: DeepPartial<z.input<Field['schema']>> | undefined): {
6
6
  readonly type: "setValue";
7
7
  readonly field: Field;
8
- readonly value: DeepPartial<z.input<Field["schema"]>>;
8
+ readonly value: DeepPartial<z.input<Field["schema"]>> | undefined;
9
9
  };
10
10
  //# sourceMappingURL=setValue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"setValue.d.ts","sourceRoot":"","sources":["../../src/actions/setValue.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,SAAS,IAAI,UAAU,CAC9D,OAAO,QAAQ,CAAC,KAAK,CAAC,CACvB,CAAA;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAS,SAAS,EAC9C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;;;;EAO7C"}
1
+ {"version":3,"file":"setValue.d.ts","sourceRoot":"","sources":["../../src/actions/setValue.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEjD,MAAM,MAAM,cAAc,CAAC,KAAK,SAAS,SAAS,IAAI,UAAU,CAC9D,OAAO,QAAQ,CAAC,KAAK,CAAC,CACvB,CAAA;AAED,wBAAgB,QAAQ,CAAC,KAAK,SAAS,SAAS,EAC9C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS;;;;EAOzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"setValue.js","names":["setValue","field","value","type"],"sources":["../../src/actions/setValue.ts"],"sourcesContent":["import z from 'zod'\nimport { FieldPath } from '../FieldPath'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type SetValueAction<Field extends FieldPath> = ReturnType<\n typeof setValue<Field>\n>\n\nexport function setValue<Field extends FieldPath>(\n field: Field,\n value: DeepPartial<z.input<Field['schema']>>\n) {\n return {\n type: 'setValue',\n field,\n value,\n } as const\n}\n"],"mappings":";;;;;;AAQO,SAASA,QAAQA,CACtBC,KAAY,EACZC,KAA4C,EAC5C;EACA,OAAO;IACLC,IAAI,EAAE,UAAU;IAChBF,KAAK,EAALA,KAAK;IACLC,KAAK,EAALA;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"setValue.js","names":["setValue","field","value","type"],"sources":["../../src/actions/setValue.ts"],"sourcesContent":["import z from 'zod'\nimport { FieldPath } from '../FieldPath'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type SetValueAction<Field extends FieldPath> = ReturnType<\n typeof setValue<Field>\n>\n\nexport function setValue<Field extends FieldPath>(\n field: Field,\n value: DeepPartial<z.input<Field['schema']>> | undefined\n) {\n return {\n type: 'setValue',\n field,\n value,\n } as const\n}\n"],"mappings":";;;;;;AAQO,SAASA,QAAQA,CACtBC,KAAY,EACZC,KAAwD,EACxD;EACA,OAAO;IACLC,IAAI,EAAE,UAAU;IAChBF,KAAK,EAALA,KAAK;IACLC,KAAK,EAALA;EACF,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"setValue.mjs","names":["setValue","field","value","type"],"sources":["../../src/actions/setValue.ts"],"sourcesContent":["import z from 'zod'\nimport { FieldPath } from '../FieldPath'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type SetValueAction<Field extends FieldPath> = ReturnType<\n typeof setValue<Field>\n>\n\nexport function setValue<Field extends FieldPath>(\n field: Field,\n value: DeepPartial<z.input<Field['schema']>>\n) {\n return {\n type: 'setValue',\n field,\n value,\n } as const\n}\n"],"mappings":"AAQA,OAAO,SAASA,QAAQA,CACtBC,KAAY,EACZC,KAA4C,EAC5C;EACA,OAAO;IACLC,IAAI,EAAE,UAAU;IAChBF,KAAK;IACLC;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"setValue.mjs","names":["setValue","field","value","type"],"sources":["../../src/actions/setValue.ts"],"sourcesContent":["import z from 'zod'\nimport { FieldPath } from '../FieldPath'\nimport { DeepPartial } from '../util/DeepPartial'\n\nexport type SetValueAction<Field extends FieldPath> = ReturnType<\n typeof setValue<Field>\n>\n\nexport function setValue<Field extends FieldPath>(\n field: Field,\n value: DeepPartial<z.input<Field['schema']>> | undefined\n) {\n return {\n type: 'setValue',\n field,\n value,\n } as const\n}\n"],"mappings":"AAQA,OAAO,SAASA,QAAQA,CACtBC,KAAY,EACZC,KAAwD,EACxD;EACA,OAAO;IACLC,IAAI,EAAE,UAAU;IAChBF,KAAK;IACLC;EACF,CAAC;AACH","ignoreList":[]}
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "peerDependencies": {
31
31
  "react": "^18.0.0"
32
32
  },
33
- "version": "2.0.0-beta.2",
33
+ "version": "2.0.0-beta.4",
34
34
  "sideEffects": false,
35
35
  "engines": {
36
36
  "node": ">=16"
@@ -33,7 +33,7 @@ export type FormContextProps<T extends z.ZodTypeAny> = {
33
33
  setParsedValue: typeof setParsedValue
34
34
  submit: typeof submit
35
35
  setSubmitStatus: typeof setSubmitStatus<T>
36
- arrayActions: typeof arrayActions
36
+ arrayActions: arrayActions
37
37
  selectFormStatus: SelectFormStatus
38
38
  selectFieldErrorMap: SelectFieldErrorMap
39
39
  selectFormValues: SelectFormValues<T>
@@ -173,6 +173,23 @@ export type ArrayAction<Field extends ArrayFieldPath = ArrayFieldPath> =
173
173
  | ArrayUnshiftParsedAction<Field>
174
174
  | ArrayUnshiftAction<Field>
175
175
 
176
+ export type arrayActions<Field extends ArrayFieldPath = ArrayFieldPath> = {
177
+ insertParsed: typeof arrayInsertParsed<Field>
178
+ insert: typeof arrayInsert<Field>
179
+ move: typeof arrayMove
180
+ pop: typeof arrayPop
181
+ pushParsed: typeof arrayPushParsed<Field>
182
+ push: typeof arrayPush<Field>
183
+ remove: typeof arrayRemove
184
+ removeAll: typeof arrayRemoveAll
185
+ shift: typeof arrayShift
186
+ spliceParsed: typeof arraySpliceParsed<Field>
187
+ splice: typeof arraySplice<Field>
188
+ swap: typeof arraySwap
189
+ unshiftParsed: typeof arrayUnshiftParsed<Field>
190
+ unshift: typeof arrayUnshift<Field>
191
+ }
192
+
176
193
  export const arrayActions = {
177
194
  insertParsed: arrayInsertParsed,
178
195
  insert: arrayInsert,
@@ -8,7 +8,7 @@ export type SetValueAction<Field extends FieldPath> = ReturnType<
8
8
 
9
9
  export function setValue<Field extends FieldPath>(
10
10
  field: Field,
11
- value: DeepPartial<z.input<Field['schema']>>
11
+ value: DeepPartial<z.input<Field['schema']>> | undefined
12
12
  ) {
13
13
  return {
14
14
  type: 'setValue',
@@ -6,7 +6,7 @@ import { PathInSchema, PathstringInSchema } from './util/PathInSchema'
6
6
  import { parsePathstring } from './util/parsePathstring'
7
7
  import { SchemaAt } from './util/SchemaAt'
8
8
  import { bindActionsToField } from './util/bindActionsToField'
9
- import { arrayActions } from './actions/arrayActions'
9
+ import { arrayActions, ArrayFieldPath } from './actions/arrayActions'
10
10
  import { createSelector, createStructuredSelector } from 'reselect'
11
11
  import { get } from './util/get'
12
12
  import isEqual from 'fast-deep-equal'
@@ -21,27 +21,27 @@ import { setMeta } from './actions/setMeta'
21
21
  import { FieldMeta } from './FormState'
22
22
  import { DeepPartial } from './util/DeepPartial'
23
23
 
24
- export type UseArrayFieldProps<Field extends FieldPath> = NonNullable<
25
- z.input<Field['schema']>
26
- > extends any[]
27
- ? FieldMeta &
28
- ReturnType<
29
- typeof bindActionsToField<
30
- typeof arrayActions & {
31
- setParsedValue: typeof setParsedValue
32
- setValue: typeof setValue
33
- setMeta: typeof setMeta
34
- }
35
- >
36
- > & {
37
- elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]
38
- error?: string
39
- dirty: boolean
40
- pristine: boolean
41
- valid: boolean
42
- invalid: boolean
43
- }
44
- : { ERROR: 'not an array field' }
24
+ export type UseArrayFieldProps<Field extends ArrayFieldPath = ArrayFieldPath> =
25
+ NonNullable<z.input<Field['schema']>> extends any[]
26
+ ? FieldMeta &
27
+ ReturnType<
28
+ typeof bindActionsToField<
29
+ Field,
30
+ arrayActions<Field> & {
31
+ setParsedValue: typeof setParsedValue<Field>
32
+ setValue: typeof setValue<Field>
33
+ setMeta: typeof setMeta<Field>
34
+ }
35
+ >
36
+ > & {
37
+ elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]
38
+ error?: string
39
+ dirty: boolean
40
+ pristine: boolean
41
+ valid: boolean
42
+ invalid: boolean
43
+ }
44
+ : { ERROR: 'not an array field' }
45
45
 
46
46
  export interface TypedUseArrayField<T extends z.ZodTypeAny> {
47
47
  <Field extends FieldPathForValue<any[] | null | undefined>>(
@@ -55,7 +55,7 @@ export interface TypedUseArrayField<T extends z.ZodTypeAny> {
55
55
  ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>
56
56
  }
57
57
 
58
- function useArrayFieldBase<Field extends FieldPath>(
58
+ function useArrayFieldBase<Field extends ArrayFieldPath>(
59
59
  field: Field
60
60
  ): UseArrayFieldProps<Field> {
61
61
  type T = Field['schema']
@@ -120,7 +120,13 @@ function useArrayFieldBase<Field extends FieldPath>(
120
120
  [field.pathstring]
121
121
  )
122
122
  const elements = React.useMemo(
123
- () => [...new Array(length).keys()].map((index) => field.subfield(index)),
123
+ () =>
124
+ [...new Array(length).keys()].map((index) =>
125
+ field.subfield(
126
+ // @ts-expect-error doesn't work on this type parameter
127
+ index
128
+ )
129
+ ),
124
130
  [length]
125
131
  )
126
132
 
package/src/useField.ts CHANGED
@@ -23,11 +23,14 @@ import { DeepPartial } from './util/DeepPartial'
23
23
 
24
24
  export type UseFieldProps<Field extends FieldPath> = FieldMeta &
25
25
  ReturnType<
26
- typeof bindActionsToField<{
27
- setParsedValue: typeof setParsedValue
28
- setValue: typeof setValue
29
- setMeta: typeof setMeta
30
- }>
26
+ typeof bindActionsToField<
27
+ Field,
28
+ {
29
+ setParsedValue: typeof setParsedValue<Field>
30
+ setValue: typeof setValue<Field>
31
+ setMeta: typeof setMeta<Field>
32
+ }
33
+ >
31
34
  > & {
32
35
  parsedValue?: z.output<Field['schema']>
33
36
  value?: DeepPartial<z.input<Field['schema']>>
@@ -9,6 +9,7 @@ import { acceptsBigint } from './util/acceptsBigint'
9
9
  import { PathInSchema, PathstringInSchema } from './util/PathInSchema'
10
10
  import { parsePathstring } from './util/parsePathstring'
11
11
  import { SchemaAt } from './util/SchemaAt'
12
+ import { DeepPartial } from './util/DeepPartial'
12
13
 
13
14
  export type HtmlFieldInputProps = {
14
15
  name: string
@@ -185,29 +186,29 @@ function safeBigInt(value: string): bigint | undefined {
185
186
  }
186
187
  }
187
188
 
188
- function normalizeValue(
189
+ function normalizeValue<T extends z.ZodTypeAny>(
189
190
  value: string | boolean,
190
191
  {
191
192
  schema,
192
193
  tryNumber,
193
194
  tryBigint,
194
- }: { schema: z.ZodTypeAny; tryNumber: boolean; tryBigint: boolean }
195
- ): string | boolean | number | bigint | null | undefined {
196
- if (typeof value === 'boolean') return value
195
+ }: { schema: T; tryNumber: boolean; tryBigint: boolean }
196
+ ): DeepPartial<z.input<T>> | undefined {
197
+ if (typeof value === 'boolean') return value as any
197
198
  if (typeof value === 'string' && !/\S/.test(value)) {
198
199
  return normalizeBlank(schema)
199
200
  }
200
201
  if (typeof value === 'string' && !schema.safeParse(value).success) {
201
202
  if (tryNumber) {
202
203
  const num = Number(value)
203
- if (!isNaN(num)) return num
204
+ if (!isNaN(num)) return num as any
204
205
  }
205
206
  if (tryBigint) {
206
207
  const bigint = safeBigInt(value)
207
- if (bigint != null) return bigint
208
+ if (bigint != null) return bigint as any
208
209
  }
209
210
  }
210
- return value
211
+ return value as any
211
212
  }
212
213
 
213
214
  export function useHtmlField<Field extends FieldPath>(
@@ -1,13 +1,16 @@
1
1
  import { FieldPath } from '../FieldPath'
2
2
 
3
3
  export function bindActionsToField<
4
- Actions extends { [K in string]: (field: FieldPath, ...rest: any[]) => any }
4
+ Field extends FieldPath,
5
+ Actions extends {
6
+ [K in string]: (field: Field, ...rest: any[]) => any
7
+ }
5
8
  >(
6
9
  actions: Actions,
7
- field: FieldPath
10
+ field: Field
8
11
  ): {
9
12
  [K in keyof Actions]: Actions[K] extends (
10
- field: FieldPath,
13
+ field: Field,
11
14
  ...rest: infer Rest
12
15
  ) => infer Return
13
16
  ? (...rest: Rest) => Return
@@ -4,15 +4,15 @@ import { PathInSchema, PathstringInSchema } from './util/PathInSchema';
4
4
  import { parsePathstring } from './util/parsePathstring';
5
5
  import { SchemaAt } from './util/SchemaAt';
6
6
  import { bindActionsToField } from './util/bindActionsToField';
7
- import { arrayActions } from './actions/arrayActions';
7
+ import { arrayActions, ArrayFieldPath } from './actions/arrayActions';
8
8
  import { setParsedValue } from './actions/setParsedValue';
9
9
  import { setValue } from './actions/setValue';
10
10
  import { setMeta } from './actions/setMeta';
11
11
  import { FieldMeta } from './FormState';
12
- export type UseArrayFieldProps<Field extends FieldPath> = NonNullable<z.input<Field['schema']>> extends any[] ? FieldMeta & ReturnType<typeof bindActionsToField<typeof arrayActions & {
13
- setParsedValue: typeof setParsedValue;
14
- setValue: typeof setValue;
15
- setMeta: typeof setMeta;
12
+ export type UseArrayFieldProps<Field extends ArrayFieldPath = ArrayFieldPath> = NonNullable<z.input<Field['schema']>> extends any[] ? FieldMeta & ReturnType<typeof bindActionsToField<Field, arrayActions<Field> & {
13
+ setParsedValue: typeof setParsedValue<Field>;
14
+ setValue: typeof setValue<Field>;
15
+ setMeta: typeof setMeta<Field>;
16
16
  }>> & {
17
17
  elements: FieldPath<SchemaAt<Field['schema'], [number]>>[];
18
18
  error?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.d.ts","sourceRoot":"","sources":["src/useArrayField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useArrayField.d.ts","sourceRoot":"","sources":["src/useArrayField.ts"],"names":[],"mappings":"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"}
package/useArrayField.js CHANGED
@@ -71,7 +71,9 @@ function useArrayFieldBase(field) {
71
71
  }, [field.pathstring]);
72
72
  var elements = _react["default"].useMemo(function () {
73
73
  return (0, _toConsumableArray2["default"])(new Array(length).keys()).map(function (index) {
74
- return field.subfield(index);
74
+ return field.subfield(
75
+ // @ts-expect-error doesn't work on this type parameter
76
+ index);
75
77
  });
76
78
  }, [length]);
77
79
  return _react["default"].useMemo(function () {
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.js","names":["_FieldPath","require","_react","_interopRequireDefault","_useFormContext3","_bindActionsToField","_reselect","_get","_fastDeepEqual","_useFormSelector2","_reactRedux","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useArrayFieldBase","field","_useFormContext","useFormContext","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","value","_ref","values","get","path","initialValue","_ref2","initialValues","_ref3","dirty","isEqual","pristine","Array","isArray","pathstring","_useFormSelector","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","elements","_toConsumableArray2","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","_useFormContext2","root","FieldPath"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useArrayField.js","names":["_FieldPath","require","_react","_interopRequireDefault","_useFormContext3","_bindActionsToField","_reselect","_get","_fastDeepEqual","_useFormSelector2","_reactRedux","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useArrayFieldBase","field","_useFormContext","useFormContext","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","value","_ref","values","get","path","initialValue","_ref2","initialValues","_ref3","dirty","isEqual","pristine","Array","isArray","pathstring","_useFormSelector","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","elements","_toConsumableArray2","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","_useFormContext2","root","FieldPath"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions, ArrayFieldPath } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends ArrayFieldPath = ArrayFieldPath> =\n NonNullable<z.input<Field['schema']>> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n Field,\n arrayActions<Field> & {\n setParsedValue: typeof setParsedValue<Field>\n setValue: typeof setValue<Field>\n setMeta: typeof setMeta<Field>\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends ArrayFieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () =>\n [...new Array(length).keys()].map((index) =>\n field.subfield(\n // @ts-expect-error doesn't work on this type parameter\n index\n )\n ),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/useArrayField.mjs CHANGED
@@ -50,7 +50,9 @@ function useArrayFieldBase(field) {
50
50
  setValue,
51
51
  setMeta
52
52
  }, field), [field.pathstring]);
53
- const elements = React.useMemo(() => [...new Array(length).keys()].map(index => field.subfield(index)), [length]);
53
+ const elements = React.useMemo(() => [...new Array(length).keys()].map(index => field.subfield(
54
+ // @ts-expect-error doesn't work on this type parameter
55
+ index)), [length]);
54
56
  return React.useMemo(() => ({
55
57
  ...boundActions,
56
58
  visited: (meta === null || meta === void 0 ? void 0 : meta.visited) || false,
@@ -1 +1 @@
1
- {"version":3,"file":"useArrayField.mjs","names":["FieldPath","React","useFormContext","bindActionsToField","createSelector","createStructuredSelector","get","isEqual","useFormSelector","untypedUseFormSelector","shallowEqual","useArrayFieldBase","field","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","value","values","path","initialValue","initialValues","dirty","pristine","length","Array","isArray","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","elements","keys","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","root"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends FieldPath> = NonNullable<\n z.input<Field['schema']>\n> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n typeof arrayActions & {\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () => [...new Array(length).keys()].map((index) => field.subfield(index)),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useArrayField.mjs","names":["FieldPath","React","useFormContext","bindActionsToField","createSelector","createStructuredSelector","get","isEqual","useFormSelector","untypedUseFormSelector","shallowEqual","useArrayFieldBase","field","arrayActions","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","value","values","path","initialValue","initialValues","dirty","pristine","length","Array","isArray","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","elements","keys","map","index","subfield","visited","touched","valid","invalid","Boolean","useArrayField","root"],"sources":["src/useArrayField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath, FieldPathForValue } from './FieldPath'\nimport React from 'react'\nimport { useFormContext } from './useFormContext'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { arrayActions, ArrayFieldPath } from './actions/arrayActions'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { get } from './util/get'\nimport isEqual from 'fast-deep-equal'\nimport {\n TypedUseFormSelector,\n useFormSelector as untypedUseFormSelector,\n} from './useFormSelector'\nimport { shallowEqual } from 'react-redux'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport { FieldMeta } from './FormState'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseArrayFieldProps<Field extends ArrayFieldPath = ArrayFieldPath> =\n NonNullable<z.input<Field['schema']>> extends any[]\n ? FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n Field,\n arrayActions<Field> & {\n setParsedValue: typeof setParsedValue<Field>\n setValue: typeof setValue<Field>\n setMeta: typeof setMeta<Field>\n }\n >\n > & {\n elements: FieldPath<SchemaAt<Field['schema'], [number]>>[]\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n : { ERROR: 'not an array field' }\n\nexport interface TypedUseArrayField<T extends z.ZodTypeAny> {\n <Field extends FieldPathForValue<any[] | null | undefined>>(\n field: Field\n ): UseArrayFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseArrayFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(\n path: Pathstring\n ): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\n}\n\nfunction useArrayFieldBase<Field extends ArrayFieldPath>(\n field: Field\n): UseArrayFieldProps<Field> {\n type T = Field['schema']\n\n const {\n arrayActions,\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n value: ({ values }) =>\n get(values, field.path) as DeepPartial<z.input<T>> | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as\n | DeepPartial<z.input<T>>\n | undefined,\n }),\n ],\n ({ value, initialValue }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n dirty,\n pristine,\n length: Array.isArray(value) ? value.length : 0,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const { dirty, pristine, length } = useFormSelector(\n valuesSelector,\n shallowEqual\n )\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () =>\n bindActionsToField(\n { ...arrayActions, setParsedValue, setValue, setMeta },\n field\n ),\n [field.pathstring]\n )\n const elements = React.useMemo(\n () =>\n [...new Array(length).keys()].map((index) =>\n field.subfield(\n // @ts-expect-error doesn't work on this type parameter\n index\n )\n ),\n [length]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n elements,\n dirty,\n pristine,\n valid: !error,\n invalid: Boolean(error),\n }),\n [dirty, boundActions, elements, meta, submitFailed, error]\n ) as any\n}\n\nexport function useArrayField<Field extends FieldPath>(\n field: Field\n): UseArrayFieldProps<Field>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseArrayFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useArrayField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArrayField<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseArrayFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useArrayField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseArrayFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useArrayFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/useField.d.ts CHANGED
@@ -9,10 +9,10 @@ import { parsePathstring } from './util/parsePathstring';
9
9
  import { SchemaAt } from './util/SchemaAt';
10
10
  import { bindActionsToField } from './util/bindActionsToField';
11
11
  import { DeepPartial } from './util/DeepPartial';
12
- export type UseFieldProps<Field extends FieldPath> = FieldMeta & ReturnType<typeof bindActionsToField<{
13
- setParsedValue: typeof setParsedValue;
14
- setValue: typeof setValue;
15
- setMeta: typeof setMeta;
12
+ export type UseFieldProps<Field extends FieldPath> = FieldMeta & ReturnType<typeof bindActionsToField<Field, {
13
+ setParsedValue: typeof setParsedValue<Field>;
14
+ setValue: typeof setValue<Field>;
15
+ setMeta: typeof setMeta<Field>;
16
16
  }>> & {
17
17
  parsedValue?: z.output<Field['schema']>;
18
18
  value?: DeepPartial<z.input<Field['schema']>>;
package/useField.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["src/useField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useField.d.ts","sourceRoot":"","sources":["src/useField.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,CAAA;AACnB,OAAO,EAAY,SAAS,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAS3C,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAEhD,MAAM,MAAM,aAAa,CAAC,KAAK,SAAS,SAAS,IAAI,SAAS,GAC5D,UAAU,CACR,OAAO,kBAAkB,CACvB,KAAK,EACL;IACE,cAAc,EAAE,OAAO,cAAc,CAAC,KAAK,CAAC,CAAA;IAC5C,QAAQ,EAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAA;IAChC,OAAO,EAAE,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;CAC/B,CACF,CACF,GAAG;IACF,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvC,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IAC7C,kBAAkB,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC9C,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;IACpD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,OAAO,CAAA;IACd,QAAQ,EAAE,OAAO,CAAA;IACjB,KAAK,EAAE,OAAO,CAAA;IACd,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAEH,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU;IACnD,CAAC,KAAK,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAA;IAC7D,CAAC,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,aAAa,CACvD,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAC7B,CAAA;IACD,CAAC,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,GAAG,aAAa,CACzE,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CACpD,CAAA;CACF;AAoFD,wBAAgB,QAAQ,CAAC,KAAK,SAAS,SAAS,EAC9C,KAAK,EAAE,KAAK,GACX,aAAa,CAAC,KAAK,CAAC,CAAA;AACvB,wBAAgB,QAAQ,CACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,+CAA+C,CAChD,EACD,IAAI,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,GAAG,EAClC,KAAK,EAAE,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3D,wBAAgB,QAAQ,CACtB,CAAC,SAAS,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CACnC,CAAC,CAAC,QAAQ,EACV,+CAA+C,CAChD,EACD,UAAU,SAAS,kBAAkB,CAAC,CAAC,CAAC,GAAG,GAAG,EAE9C,KAAK,EAAE,UAAU,GAChB,aAAa,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA"}
package/useField.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.js","names":["_FieldPath","require","_get","_react","_interopRequireDefault","_useFormSelector","_useFormContext3","_reselect","_reactRedux","_fastDeepEqual","_maybeParse","_bindActionsToField","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFieldBase","field","_useFormContext","useFormContext","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","parsedValue","_ref","parsedValues","get","path","value","_ref2","values","initialParsedValue","_ref3","initialParsedValues","initialValue","_ref4","initialValues","_ref5","_ref5$parsedValue","maybeParse","schema","_ref5$initialParsedVa","dirty","isEqual","pristine","pathstring","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","visited","touched","valid","invalid","Boolean","useField","_useFormContext2","root","FieldPath"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useField.js","names":["_FieldPath","require","_get","_react","_interopRequireDefault","_useFormSelector","_useFormContext3","_reselect","_reactRedux","_fastDeepEqual","_maybeParse","_bindActionsToField","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFieldBase","field","_useFormContext","useFormContext","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","useFormSelector","untypedUseFormSelector","valuesSelector","React","useMemo","createSelector","createStructuredSelector","parsedValue","_ref","parsedValues","get","path","value","_ref2","values","initialParsedValue","_ref3","initialParsedValues","initialValue","_ref4","initialValues","_ref5","_ref5$parsedValue","maybeParse","schema","_ref5$initialParsedVa","dirty","isEqual","pristine","pathstring","shallowEqual","error","state","meta","fieldMeta","submitFailed","boundActions","bindActionsToField","visited","touched","valid","invalid","Boolean","useField","_useFormContext2","root","FieldPath"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n Field,\n {\n setParsedValue: typeof setParsedValue<Field>\n setValue: typeof setValue<Field>\n setMeta: typeof setMeta<Field>\n }\n >\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAIA,IAAAI,gBAAA,GAAAJ,OAAA;AAIA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,cAAA,GAAAL,sBAAA,CAAAH,OAAA;AAIA,IAAAS,WAAA,GAAAT,OAAA;AACA,IAAAU,mBAAA,GAAAV,OAAA;AAA8D,SAAAW,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAmC9D,SAASoB,YAAYA,CACnBC,KAAY,EACU;EAGtB,IAAAC,eAAA,GAMI,IAAAC,+BAAc,EAAI,CAAC;IALrBC,cAAc,GAAAF,eAAA,CAAdE,cAAc;IACdC,QAAQ,GAAAH,eAAA,CAARG,QAAQ;IACRC,OAAO,GAAAJ,eAAA,CAAPI,OAAO;IACPC,gBAAgB,GAAAL,eAAA,CAAhBK,gBAAgB;IAChBC,mBAAmB,GAAAN,eAAA,CAAnBM,mBAAmB;EAGrB,IAAMC,eAAe,GAAGC,gCAAiD;EAEzE,IAAMC,cAAc,GAAGC,iBAAK,CAACC,OAAO,CAClC;IAAA,OACE,IAAAC,wBAAc,EACZ,CAACP,gBAAgB,CAAC,EAClB,IAAAO,wBAAc,EACZ,CACE,IAAAC,kCAAwB,EAAC;MACvBC,WAAW,EAAE,SAAAA,YAAAC,IAAA;QAAA,IAAGC,YAAY,GAAAD,IAAA,CAAZC,YAAY;QAAA,OAC1B,IAAAC,QAAG,EAACD,YAAY,EAAEjB,KAAK,CAACmB,IAAI,CAAC;MAAA,CAAgC;MAC/DC,KAAK,EAAE,SAAAA,MAAAC,KAAA;QAAA,IAAGC,MAAM,GAAAD,KAAA,CAANC,MAAM;QAAA,OAAO,IAAAJ,QAAG,EAACI,MAAM,EAAEtB,KAAK,CAACmB,IAAI,CAAC;MAAA,CAAW;MACzDI,kBAAkB,EAAE,SAAAA,mBAAAC,KAAA;QAAA,IAAGC,mBAAmB,GAAAD,KAAA,CAAnBC,mBAAmB;QAAA,OACxC,IAAAP,QAAG,EAACO,mBAAmB,EAAEzB,KAAK,CAACmB,IAAI,CAAC;MAAA,CAEvB;MACfO,YAAY,EAAE,SAAAA,aAAAC,KAAA;QAAA,IAAGC,aAAa,GAAAD,KAAA,CAAbC,aAAa;QAAA,OAC5B,IAAAV,QAAG,EAACU,aAAa,EAAE5B,KAAK,CAACmB,IAAI,CAAC;MAAA;IAClC,CAAC,CAAC,CACH,EACD,UAAAU,KAAA,EAKM;MAAA,IAJJT,KAAK,GAAAS,KAAA,CAALT,KAAK;QAAAU,iBAAA,GAAAD,KAAA,CACLd,WAAW;QAAXA,WAAW,GAAAe,iBAAA,cAAG,IAAAC,sBAAU,EAAC/B,KAAK,CAACgC,MAAM,EAAEZ,KAAK,CAAC,GAAAU,iBAAA;QAC7CJ,YAAY,GAAAG,KAAA,CAAZH,YAAY;QAAAO,qBAAA,GAAAJ,KAAA,CACZN,kBAAkB;QAAlBA,kBAAkB,GAAAU,qBAAA,cAAG,IAAAF,sBAAU,EAAC/B,KAAK,CAACgC,MAAM,EAAEN,YAAY,CAAC,GAAAO,qBAAA;MAE3D,IAAMC,KAAK,GAAG,CAAC,IAAAC,yBAAO,EAACf,KAAK,EAAEM,YAAY,CAAC;MAC3C,IAAMU,QAAQ,GAAG,CAACF,KAAK;MACvB,OAAO;QACLnB,WAAW,EAAXA,WAAW;QACXK,KAAK,EAALA,KAAK;QACLG,kBAAkB,EAAlBA,kBAAkB;QAClBG,YAAY,EAAZA,YAAY;QACZQ,KAAK,EAALA,KAAK;QACLE,QAAQ,EAARA;MACF,CAAC;IACH,CACF,CACF,CAAC;EAAA,GACH,CAACpC,KAAK,CAACqC,UAAU,CACnB,CAAC;EAED,IAAMpB,YAAY,GAAGT,eAAe,CAACE,cAAc,EAAE4B,wBAAY,CAAC;EAElE,IAAMC,KAAK,GAAG/B,eAAe,CAC3B,UAACgC,KAAK;IAAA,OAAKjC,mBAAmB,CAACiC,KAAK,CAAC,CAACxC,KAAK,CAACqC,UAAU,CAAC;EAAA,CACzD,CAAC;EACD,IAAMI,IAAI,GAAGjC,eAAe,CAAC,UAACgC,KAAK;IAAA,OAAKA,KAAK,CAACE,SAAS,CAAC1C,KAAK,CAACqC,UAAU,CAAC;EAAA,EAAC;EAC1E,IAAMM,YAAY,GAAGnC,eAAe,CAAC,UAACgC,KAAK;IAAA,OAAKA,KAAK,CAACG,YAAY;EAAA,EAAC;EAEnE,IAAMC,YAAY,GAAGjC,iBAAK,CAACC,OAAO,CAChC;IAAA,OAAM,IAAAiC,sCAAkB,EAAC;MAAE1C,cAAc,EAAdA,cAAc;MAAEC,QAAQ,EAARA,QAAQ;MAAEC,OAAO,EAAPA;IAAQ,CAAC,EAAEL,KAAK,CAAC;EAAA,GACtE,CAACA,KAAK,CAACqC,UAAU,CACnB,CAAC;EAED,OAAO1B,iBAAK,CAACC,OAAO,CAClB;IAAA,OAAArB,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACKqD,YAAY,GACZ3B,YAAY;MACf6B,OAAO,EAAE,CAAAL,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEK,OAAO,KAAI,KAAK;MAC/BC,OAAO,EAAE,CAAAN,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEM,OAAO,KAAIJ,YAAY;MACtCJ,KAAK,EAALA,KAAK;MACLS,KAAK,EAAE,CAACT,KAAK;MACbU,OAAO,EAAEC,OAAO,CAACX,KAAK;IAAC;EAAA,CACvB,EACF,CAACvC,KAAK,CAACqC,UAAU,EAAEpB,YAAY,EAAEwB,IAAI,EAAEF,KAAK,EAAEI,YAAY,CAC5D,CAAC;AACH;AAqBO,SAASQ,QAAQA,CACtBnD,KAAoC,EACI;EACxC,IAAAoD,gBAAA,GAAiB,IAAAlD,+BAAc,EAAI,CAAC;IAA5BmD,IAAI,GAAAD,gBAAA,CAAJC,IAAI;EACZ,OAAOtD,YAAY,CACjBC,KAAK,YAAYsD,oBAAS,GAAGtD,KAAK,GAAGqD,IAAI,CAACnC,GAAG,CAAClB,KAAY,CAC5D,CAAC;AACH","ignoreList":[]}
package/useField.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"useField.mjs","names":["FieldPath","get","React","useFormSelector","untypedUseFormSelector","useFormContext","createSelector","createStructuredSelector","shallowEqual","isEqual","maybeParse","bindActionsToField","useFieldBase","field","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","parsedValue","parsedValues","path","value","values","initialParsedValue","initialParsedValues","initialValue","initialValues","schema","dirty","pristine","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","visited","touched","valid","invalid","Boolean","useField","root"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<{\n setParsedValue: typeof setParsedValue\n setValue: typeof setValue\n setMeta: typeof setMeta\n }>\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useField.mjs","names":["FieldPath","get","React","useFormSelector","untypedUseFormSelector","useFormContext","createSelector","createStructuredSelector","shallowEqual","isEqual","maybeParse","bindActionsToField","useFieldBase","field","setParsedValue","setValue","setMeta","selectFormValues","selectFieldErrorMap","valuesSelector","useMemo","parsedValue","parsedValues","path","value","values","initialParsedValue","initialParsedValues","initialValue","initialValues","schema","dirty","pristine","pathstring","error","state","meta","fieldMeta","submitFailed","boundActions","visited","touched","valid","invalid","Boolean","useField","root"],"sources":["src/useField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { FieldMeta } from './FormState'\nimport { get } from './util/get'\nimport React from 'react'\nimport { setParsedValue } from './actions/setParsedValue'\nimport { setValue } from './actions/setValue'\nimport { setMeta } from './actions/setMeta'\nimport {\n useFormSelector as untypedUseFormSelector,\n TypedUseFormSelector,\n} from './useFormSelector'\nimport { useFormContext } from './useFormContext'\nimport { createSelector, createStructuredSelector } from 'reselect'\nimport { shallowEqual } from 'react-redux'\nimport isEqual from 'fast-deep-equal'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { maybeParse } from './util/maybeParse'\nimport { bindActionsToField } from './util/bindActionsToField'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type UseFieldProps<Field extends FieldPath> = FieldMeta &\n ReturnType<\n typeof bindActionsToField<\n Field,\n {\n setParsedValue: typeof setParsedValue<Field>\n setValue: typeof setValue<Field>\n setMeta: typeof setMeta<Field>\n }\n >\n > & {\n parsedValue?: z.output<Field['schema']>\n value?: DeepPartial<z.input<Field['schema']>>\n initialParsedValue?: z.output<Field['schema']>\n initialValue?: DeepPartial<z.input<Field['schema']>>\n error?: string\n dirty: boolean\n pristine: boolean\n valid: boolean\n invalid: boolean\n }\n\nexport interface TypedUseField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(field: Field): UseFieldProps<Field>\n <Path extends PathInSchema<T>>(path: Path): UseFieldProps<\n FieldPath<SchemaAt<T, Path>>\n >\n <Pathstring extends PathstringInSchema<T>>(path: Pathstring): UseFieldProps<\n FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>\n >\n}\n\nfunction useFieldBase<T extends z.ZodTypeAny, Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field> {\n type Schema = Field['schema']\n\n const {\n setParsedValue,\n setValue,\n setMeta,\n selectFormValues,\n selectFieldErrorMap,\n } = useFormContext<T>()\n\n const useFormSelector = untypedUseFormSelector as TypedUseFormSelector<T>\n\n const valuesSelector = React.useMemo(\n () =>\n createSelector(\n [selectFormValues],\n createSelector(\n [\n createStructuredSelector({\n parsedValue: ({ parsedValues }) =>\n get(parsedValues, field.path) as z.output<Schema> | undefined,\n value: ({ values }) => get(values, field.path) as unknown,\n initialParsedValue: ({ initialParsedValues }) =>\n get(initialParsedValues, field.path) as\n | z.output<Schema>\n | undefined,\n initialValue: ({ initialValues }) =>\n get(initialValues, field.path) as unknown,\n }),\n ],\n ({\n value,\n parsedValue = maybeParse(field.schema, value),\n initialValue,\n initialParsedValue = maybeParse(field.schema, initialValue),\n }) => {\n const dirty = !isEqual(value, initialValue)\n const pristine = !dirty\n return {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n dirty,\n pristine,\n }\n }\n )\n ),\n [field.pathstring]\n )\n\n const parsedValues = useFormSelector(valuesSelector, shallowEqual)\n\n const error = useFormSelector(\n (state) => selectFieldErrorMap(state)[field.pathstring]\n )\n const meta = useFormSelector((state) => state.fieldMeta[field.pathstring])\n const submitFailed = useFormSelector((state) => state.submitFailed)\n\n const boundActions = React.useMemo(\n () => bindActionsToField({ setParsedValue, setValue, setMeta }, field),\n [field.pathstring]\n )\n\n return React.useMemo(\n () => ({\n ...boundActions,\n ...parsedValues,\n visited: meta?.visited || false,\n touched: meta?.touched || submitFailed,\n error,\n valid: !error,\n invalid: Boolean(error),\n }),\n [field.pathstring, parsedValues, meta, error, submitFailed]\n ) as any\n}\n\nexport function useField<Field extends FieldPath>(\n field: Field\n): UseFieldProps<Field>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(field: Path): UseFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseArray<T> to pass a pathstring'\n >,\n Pathstring extends PathstringInSchema<T> = any\n>(\n field: Pathstring\n): UseFieldProps<FieldPath<SchemaAt<T, parsePathstring<Pathstring>>>>\nexport function useField<T extends z.ZodTypeAny>(\n field: FieldPath | BasePath | string\n): UseFieldProps<any> | { ERROR: string } {\n const { root } = useFormContext<T>()\n return useFieldBase(\n field instanceof FieldPath ? field : root.get(field as any)\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHtmlField.d.ts","sourceRoot":"","sources":["src/useHtmlField.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useHtmlField.d.ts","sourceRoot":"","sources":["src/useHtmlField.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useHtmlField.js","names":["_FieldPath","require","_useField","_react","_interopRequireDefault","_zodInvertible","_useFormContext2","_acceptsNumber","_acceptsBigint","_excluded","_excluded2","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useHtmlFieldBase","options","field","type","_options$normalizeOnB","normalizeOnBlur","props","useField","parsedValue","value","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","_objectWithoutProperties2","schema","_React$useState","React","useState","_React$useState2","_slicedToArray2","tempValue","setTempValue","tryNumber","useMemo","acceptsNumber","tryBigint","acceptsBigint","onChange","useCallback","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","safeParse","formatted","success","invert","data","undefined","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","error","_ref","test","num","Number","isNaN","bigint","useHtmlField","_ref2","rest","_useFormContext","useFormContext","root","FieldPath","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> = z.input<\n Field['schema']\n> extends string | number | bigint | boolean | null | undefined\n ? {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S>\n ? S\n : z.ZodTypeAny\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined\n ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnBlur = true } = options\n const props = useField(field)\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n const { schema } = field\n\n // tempValue is used for storing blank text when we've coerced the\n // value to null or undefined, or storing numeric text when we've\n // coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const [tempValue, setTempValue] = React.useState(\n value as string | null | undefined\n )\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setTempValue(value)\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n let value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n if (normalizeOnBlur) {\n const parsed = field.schema.safeParse(value)\n const formatted = parsed.success\n ? invert(field.schema).safeParse(parsed.data)\n : undefined\n if (formatted?.success) value = formatted.data\n setValue(value)\n }\n setTempValue(undefined)\n setMeta({ visited: true, touched: true })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean'\n ? String(value)\n : typeof value === 'string'\n ? value || tempValue || ''\n : tempValue || (value == null ? '' : String(value) || ''),\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, tempValue, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch (error) {\n return undefined\n }\n}\n\nfunction normalizeValue(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: z.ZodTypeAny; tryNumber: boolean; tryBigint: boolean }\n): string | boolean | number | bigint | null | undefined {\n if (typeof value === 'boolean') return value\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint\n }\n }\n return value\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useHtmlField.js","names":["_FieldPath","require","_useField","_react","_interopRequireDefault","_zodInvertible","_useFormContext2","_acceptsNumber","_acceptsBigint","_excluded","_excluded2","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useHtmlFieldBase","options","field","type","_options$normalizeOnB","normalizeOnBlur","props","useField","parsedValue","value","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","_objectWithoutProperties2","schema","_React$useState","React","useState","_React$useState2","_slicedToArray2","tempValue","setTempValue","tryNumber","useMemo","acceptsNumber","tryBigint","acceptsBigint","onChange","useCallback","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","safeParse","formatted","success","invert","data","undefined","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","error","_ref","test","num","Number","isNaN","bigint","useHtmlField","_ref2","rest","_useFormContext","useFormContext","root","FieldPath","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> = z.input<\n Field['schema']\n> extends string | number | bigint | boolean | null | undefined\n ? {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S>\n ? S\n : z.ZodTypeAny\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined\n ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnBlur = true } = options\n const props = useField(field)\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n const { schema } = field\n\n // tempValue is used for storing blank text when we've coerced the\n // value to null or undefined, or storing numeric text when we've\n // coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const [tempValue, setTempValue] = React.useState(\n value as string | null | undefined\n )\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setTempValue(value)\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n let value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n if (normalizeOnBlur) {\n const parsed = field.schema.safeParse(value)\n const formatted = parsed.success\n ? invert(field.schema).safeParse(parsed.data)\n : undefined\n if (formatted?.success) value = formatted.data\n setValue(value)\n }\n setTempValue(undefined)\n setMeta({ visited: true, touched: true })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean'\n ? String(value)\n : typeof value === 'string'\n ? value || tempValue || ''\n : tempValue || (value == null ? '' : String(value) || ''),\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, tempValue, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch (error) {\n return undefined\n }\n}\n\nfunction normalizeValue<T extends z.ZodTypeAny>(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: T; tryNumber: boolean; tryBigint: boolean }\n): DeepPartial<z.input<T>> | undefined {\n if (typeof value === 'boolean') return value as any\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num as any\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint as any\n }\n }\n return value as any\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"useHtmlField.mjs","names":["FieldPath","useField","React","invert","useFormContext","acceptsNumber","acceptsBigint","useHtmlFieldBase","options","field","type","normalizeOnBlur","props","parsedValue","value","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","schema","tempValue","setTempValue","useState","tryNumber","useMemo","tryBigint","onChange","useCallback","e","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","safeParse","formatted","success","data","undefined","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","error","test","num","Number","isNaN","bigint","useHtmlField","rest","root","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> = z.input<\n Field['schema']\n> extends string | number | bigint | boolean | null | undefined\n ? {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S>\n ? S\n : z.ZodTypeAny\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined\n ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnBlur = true } = options\n const props = useField(field)\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n const { schema } = field\n\n // tempValue is used for storing blank text when we've coerced the\n // value to null or undefined, or storing numeric text when we've\n // coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const [tempValue, setTempValue] = React.useState(\n value as string | null | undefined\n )\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setTempValue(value)\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n let value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n if (normalizeOnBlur) {\n const parsed = field.schema.safeParse(value)\n const formatted = parsed.success\n ? invert(field.schema).safeParse(parsed.data)\n : undefined\n if (formatted?.success) value = formatted.data\n setValue(value)\n }\n setTempValue(undefined)\n setMeta({ visited: true, touched: true })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean'\n ? String(value)\n : typeof value === 'string'\n ? value || tempValue || ''\n : tempValue || (value == null ? '' : String(value) || ''),\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, tempValue, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch (error) {\n return undefined\n }\n}\n\nfunction normalizeValue(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: z.ZodTypeAny; tryNumber: boolean; tryBigint: boolean }\n): string | boolean | number | bigint | null | undefined {\n if (typeof value === 'boolean') return value\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint\n }\n }\n return value\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"AACA,SAAmBA,SAAS;AAC5B,SAASC,QAAQ;AACjB,OAAOC,KAAK,MAA+C,OAAO;AAClE,SAASC,MAAM,QAAQ,gBAAgB;AACvC,SAASC,cAAc;AACvB,SAASC,aAAa;AACtB,SAASC,aAAa;AAwDtB,SAASC,gBAAgBA,CACvBC,OAAoD,EAC1B;EAC1B,MAAM;IAAEC,KAAK;IAAEC,IAAI;IAAEC,eAAe,GAAG;EAAK,CAAC,GAAGH,OAAO;EACvD,MAAMI,KAAK,GAAGX,QAAQ,CAACQ,KAAK,CAAC;EAC7B,MAAM;IACJI,WAAW;IACXC,KAAK;IACLC,kBAAkB;IAClBC,YAAY;IACZC,cAAc;IACdC,QAAQ;IACRC,OAAO;IACP,GAAGC;EACL,CAAC,GAAGR,KAAK;EAET,MAAM;IAAES;EAAO,CAAC,GAAGZ,KAAK;;EAExB;EACA;EACA;EACA;EACA;EACA,MAAM,CAACa,SAAS,EAAEC,YAAY,CAAC,GAAGrB,KAAK,CAACsB,QAAQ,CAC9CV,KACF,CAAC;EAED,MAAMW,SAAS,GAAGvB,KAAK,CAACwB,OAAO,CAAC,MAAMrB,aAAa,CAACgB,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EACtE,MAAMM,SAAS,GAAGzB,KAAK,CAACwB,OAAO,CAAC,MAAMpB,aAAa,CAACe,MAAM,CAAC,EAAE,CAACA,MAAM,CAAC,CAAC;EAEtE,MAAMO,QAAQ,GAAG1B,KAAK,CAAC2B,WAAW,CAC/BC,CAAoB,IAAK;IACxB,MAAMhB,KAAK,GAAGiB,QAAQ,CAACD,CAAC,CAAC;IACzB,MAAME,UAAU,GAAGC,cAAc,CAACnB,KAAK,EAAE;MACvCO,MAAM;MACNI,SAAS;MACTE;IACF,CAAC,CAAC;IACF,IAAI,OAAOb,KAAK,KAAK,QAAQ,IAAI,OAAOkB,UAAU,KAAK,QAAQ,EAAE;MAC/DT,YAAY,CAACT,KAAK,CAAC;IACrB;IACAI,QAAQ,CAACc,UAAU,CAAC;EACtB,CAAC,EACD,CAACD,QAAQ,EAAEb,QAAQ,EAAEG,MAAM,CAC7B,CAAC;EAED,MAAMa,OAAO,GAAGhC,KAAK,CAAC2B,WAAW,CAAC,MAAM;IACtCV,OAAO,CAAC;MAAEgB,OAAO,EAAE;IAAK,CAAC,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,MAAM,GAAGlC,KAAK,CAAC2B,WAAW,CAC7BC,CAAmB,IAAK;IACvB,IAAIhB,KAAK,GAAGmB,cAAc,CAACF,QAAQ,CAACD,CAAC,CAAC,EAAE;MACtCT,MAAM;MACNI,SAAS;MACTE;IACF,CAAC,CAAC;IACF,IAAIhB,eAAe,EAAE;MACnB,MAAM0B,MAAM,GAAG5B,KAAK,CAACY,MAAM,CAACiB,SAAS,CAACxB,KAAK,CAAC;MAC5C,MAAMyB,SAAS,GAAGF,MAAM,CAACG,OAAO,GAC5BrC,MAAM,CAACM,KAAK,CAACY,MAAM,CAAC,CAACiB,SAAS,CAACD,MAAM,CAACI,IAAI,CAAC,GAC3CC,SAAS;MACb,IAAIH,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEC,OAAO,EAAE1B,KAAK,GAAGyB,SAAS,CAACE,IAAI;MAC9CvB,QAAQ,CAACJ,KAAK,CAAC;IACjB;IACAS,YAAY,CAACmB,SAAS,CAAC;IACvBvB,OAAO,CAAC;MAAEgB,OAAO,EAAE,IAAI;MAAEQ,OAAO,EAAE;IAAK,CAAC,CAAC;EAC3C,CAAC,EACD,CAACZ,QAAQ,EAAEb,QAAQ,EAAEG,MAAM,CAC7B,CAAC;EAED,OAAOnB,KAAK,CAACwB,OAAO,CAClB,OAAsC;IACpCkB,KAAK,EAAE;MACLC,IAAI,EAAEpC,KAAK,CAACqC,UAAU;MACtBpC,IAAI;MACJI,KAAK,EACH,OAAOA,KAAK,KAAK,SAAS,GACtBiC,MAAM,CAACjC,KAAK,CAAC,GACb,OAAOA,KAAK,KAAK,QAAQ,GACzBA,KAAK,IAAIQ,SAAS,IAAI,EAAE,GACxBA,SAAS,KAAKR,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGiC,MAAM,CAACjC,KAAK,CAAC,IAAI,EAAE,CAAC;MAC7D,IAAIJ,IAAI,KAAK,UAAU,IAAI;QAAEsC,OAAO,EAAEC,OAAO,CAACnC,KAAK;MAAE,CAAC,CAAC;MACvDc,QAAQ;MACRM,OAAO;MACPE;IACF,CAAC;IACDhB,IAAI,EAAE;MACJ,GAAGA,IAAI;MACPP,WAAW;MACXC,KAAK;MACLC,kBAAkB;MAClBC,YAAY;MACZC,cAAc;MACdC,QAAQ;MACRC;IACF;EACF,CAAC,CAAC,EACF,CAACP,KAAK,EAAEU,SAAS,EAAEM,QAAQ,CAC7B,CAAC;AACH;AAEA,SAASG,QAAQA,CAACD,CAAc,EAAE;EAChC,MAAM;IAAEoB;EAAO,CAAC,GAAGpB,CAAC;EACpB,IAAIoB,MAAM,YAAYC,gBAAgB,EAAE;IACtC,OAAOD,MAAM,CAACxC,IAAI,KAAK,UAAU,GAAGwC,MAAM,CAACF,OAAO,GAAGE,MAAM,CAACpC,KAAK;EACnE;EACA,OAAQoC,MAAM,CAASpC,KAAK;AAC9B;AAEA,SAASsC,cAAcA,CAAC/B,MAAoB,EAAO;EACjD,IAAIA,MAAM,CAACiB,SAAS,CAACI,SAAS,CAAC,CAACF,OAAO,EAAE,OAAOE,SAAS;EACzD,IAAIrB,MAAM,CAACiB,SAAS,CAAC,IAAI,CAAC,CAACE,OAAO,EAAE,OAAO,IAAI;EAC/C,OAAOE,SAAS;AAClB;AAEA,SAASW,UAAUA,CAACvC,KAAa,EAAsB;EACrD,IAAI;IACF,OAAOwC,MAAM,CAACxC,KAAK,CAAC;EACtB,CAAC,CAAC,OAAOyC,KAAK,EAAE;IACd,OAAOb,SAAS;EAClB;AACF;AAEA,SAAST,cAAcA,CACrBnB,KAAuB,EACvB;EACEO,MAAM;EACNI,SAAS;EACTE;AACgE,CAAC,EACZ;EACvD,IAAI,OAAOb,KAAK,KAAK,SAAS,EAAE,OAAOA,KAAK;EAC5C,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC0C,IAAI,CAAC1C,KAAK,CAAC,EAAE;IAClD,OAAOsC,cAAc,CAAC/B,MAAM,CAAC;EAC/B;EACA,IAAI,OAAOP,KAAK,KAAK,QAAQ,IAAI,CAACO,MAAM,CAACiB,SAAS,CAACxB,KAAK,CAAC,CAAC0B,OAAO,EAAE;IACjE,IAAIf,SAAS,EAAE;MACb,MAAMgC,GAAG,GAAGC,MAAM,CAAC5C,KAAK,CAAC;MACzB,IAAI,CAAC6C,KAAK,CAACF,GAAG,CAAC,EAAE,OAAOA,GAAG;IAC7B;IACA,IAAI9B,SAAS,EAAE;MACb,MAAMiC,MAAM,GAAGP,UAAU,CAACvC,KAAK,CAAC;MAChC,IAAI8C,MAAM,IAAI,IAAI,EAAE,OAAOA,MAAM;IACnC;EACF;EACA,OAAO9C,KAAK;AACd;AAuBA,OAAO,SAAS+C,YAAYA,CAAyB;EACnDpD,KAAK;EACL,GAAGqD;AACyC,CAAC,EAA0B;EACvE,MAAM;IAAEC;EAAK,CAAC,GAAG3D,cAAc,CAAI,CAAC;EACpC,OAAOG,gBAAgB,CAAC;IACtBE,KAAK,EAAEA,KAAK,YAAYT,SAAS,GAAGS,KAAK,GAAGsD,IAAI,CAACC,GAAG,CAACvD,KAAY,CAAC;IAClE,GAAGqD;EACL,CAAC,CAAC;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"useHtmlField.mjs","names":["FieldPath","useField","React","invert","useFormContext","acceptsNumber","acceptsBigint","useHtmlFieldBase","options","field","type","normalizeOnBlur","props","parsedValue","value","initialParsedValue","initialValue","setParsedValue","setValue","setMeta","meta","schema","tempValue","setTempValue","useState","tryNumber","useMemo","tryBigint","onChange","useCallback","e","getValue","normalized","normalizeValue","onFocus","visited","onBlur","parsed","safeParse","formatted","success","data","undefined","touched","input","name","pathstring","String","checked","Boolean","target","HTMLInputElement","normalizeBlank","safeBigInt","BigInt","error","test","num","Number","isNaN","bigint","useHtmlField","rest","root","get"],"sources":["src/useHtmlField.ts"],"sourcesContent":["import z from 'zod'\nimport { BasePath, FieldPath } from './FieldPath'\nimport { useField, UseFieldProps } from './useField'\nimport React, { ChangeEvent, HTMLInputTypeAttribute } from 'react'\nimport { invert } from 'zod-invertible'\nimport { useFormContext } from './useFormContext'\nimport { acceptsNumber } from './util/acceptsNumber'\nimport { acceptsBigint } from './util/acceptsBigint'\nimport { PathInSchema, PathstringInSchema } from './util/PathInSchema'\nimport { parsePathstring } from './util/parsePathstring'\nimport { SchemaAt } from './util/SchemaAt'\nimport { DeepPartial } from './util/DeepPartial'\n\nexport type HtmlFieldInputProps = {\n name: string\n type: HTMLInputTypeAttribute\n value: string\n checked?: boolean\n onChange: React.ChangeEventHandler\n onFocus: React.FocusEventHandler\n onBlur: React.FocusEventHandler\n}\n\nexport type ValidUseHtmlFieldProps<Field extends FieldPath> = {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n}\n\nexport type UseHtmlFieldProps<Field extends FieldPath> = z.input<\n Field['schema']\n> extends string | number | bigint | boolean | null | undefined\n ? {\n input: HtmlFieldInputProps\n meta: UseFieldProps<Field>\n }\n : {\n ERROR: 'field schema input must be a nullish string, number, boolean or bigint'\n }\n\nexport type UseHtmlFieldOptions<\n Field,\n Schema extends z.ZodTypeAny = Field extends FieldPath<infer S>\n ? S\n : z.ZodTypeAny\n> = {\n field: Field\n type: z.input<Schema> extends boolean | null | undefined\n ? 'checkbox'\n : Exclude<HTMLInputTypeAttribute, 'checkbox'>\n normalizeOnBlur?: boolean\n}\n\nexport interface TypedUseHtmlField<T extends z.ZodTypeAny> {\n <Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n ): UseHtmlFieldProps<Field>\n <Path extends PathInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\n <Path extends PathstringInSchema<T>>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n ): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\n}\n\nfunction useHtmlFieldBase<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field> {\n const { field, type, normalizeOnBlur = true } = options\n const props = useField(field)\n const {\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n ...meta\n } = props\n\n const { schema } = field\n\n // tempValue is used for storing blank text when we've coerced the\n // value to null or undefined, or storing numeric text when we've\n // coerced the value to a number or bigint.\n // This way we can set a value that will parse better in the form\n // state without interfering with the text the user is typing.\n const [tempValue, setTempValue] = React.useState(\n value as string | null | undefined\n )\n\n const tryNumber = React.useMemo(() => acceptsNumber(schema), [schema])\n const tryBigint = React.useMemo(() => acceptsBigint(schema), [schema])\n\n const onChange = React.useCallback(\n (e: React.ChangeEvent) => {\n const value = getValue(e)\n const normalized = normalizeValue(value, {\n schema,\n tryNumber,\n tryBigint,\n })\n if (typeof value === 'string' && typeof normalized !== 'string') {\n setTempValue(value)\n }\n setValue(normalized)\n },\n [getValue, setValue, schema]\n )\n\n const onFocus = React.useCallback(() => {\n setMeta({ visited: true })\n }, [])\n\n const onBlur = React.useCallback(\n (e: React.FocusEvent) => {\n let value = normalizeValue(getValue(e), {\n schema,\n tryNumber,\n tryBigint,\n })\n if (normalizeOnBlur) {\n const parsed = field.schema.safeParse(value)\n const formatted = parsed.success\n ? invert(field.schema).safeParse(parsed.data)\n : undefined\n if (formatted?.success) value = formatted.data\n setValue(value)\n }\n setTempValue(undefined)\n setMeta({ visited: true, touched: true })\n },\n [getValue, setValue, schema]\n )\n\n return React.useMemo(\n (): ValidUseHtmlFieldProps<Field> => ({\n input: {\n name: field.pathstring,\n type,\n value:\n typeof value === 'boolean'\n ? String(value)\n : typeof value === 'string'\n ? value || tempValue || ''\n : tempValue || (value == null ? '' : String(value) || ''),\n ...(type === 'checkbox' && { checked: Boolean(value) }),\n onChange,\n onFocus,\n onBlur,\n },\n meta: {\n ...meta,\n parsedValue,\n value,\n initialParsedValue,\n initialValue,\n setParsedValue,\n setValue,\n setMeta,\n },\n }),\n [props, tempValue, onChange]\n ) as any\n}\n\nfunction getValue(e: ChangeEvent) {\n const { target } = e\n if (target instanceof HTMLInputElement) {\n return target.type === 'checkbox' ? target.checked : target.value\n }\n return (target as any).value\n}\n\nfunction normalizeBlank(schema: z.ZodTypeAny): any {\n if (schema.safeParse(undefined).success) return undefined\n if (schema.safeParse(null).success) return null\n return undefined\n}\n\nfunction safeBigInt(value: string): bigint | undefined {\n try {\n return BigInt(value)\n } catch (error) {\n return undefined\n }\n}\n\nfunction normalizeValue<T extends z.ZodTypeAny>(\n value: string | boolean,\n {\n schema,\n tryNumber,\n tryBigint,\n }: { schema: T; tryNumber: boolean; tryBigint: boolean }\n): DeepPartial<z.input<T>> | undefined {\n if (typeof value === 'boolean') return value as any\n if (typeof value === 'string' && !/\\S/.test(value)) {\n return normalizeBlank(schema)\n }\n if (typeof value === 'string' && !schema.safeParse(value).success) {\n if (tryNumber) {\n const num = Number(value)\n if (!isNaN(num)) return num as any\n }\n if (tryBigint) {\n const bigint = safeBigInt(value)\n if (bigint != null) return bigint as any\n }\n }\n return value as any\n}\n\nexport function useHtmlField<Field extends FieldPath>(\n options: UseHtmlFieldOptions<Field, Field['schema']>\n): UseHtmlFieldProps<Field>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a path array'\n >,\n Path extends PathInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, Path>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, Path>>>\nexport function useHtmlField<\n T extends z.ZodTypeAny = z.ZodBranded<\n z.ZodNever,\n 'cast to TypedUseHtmlField<T> to pass a pathstring'\n >,\n Path extends PathstringInSchema<T> = any\n>(\n options: UseHtmlFieldOptions<Path, SchemaAt<T, parsePathstring<Path>>>\n): UseHtmlFieldProps<FieldPath<SchemaAt<T, parsePathstring<Path>>>>\nexport function useHtmlField<T extends z.ZodTypeAny>({\n field,\n ...rest\n}: UseHtmlFieldOptions<FieldPath | BasePath, T>): UseHtmlFieldProps<any> {\n const { root } = useFormContext<T>()\n return useHtmlFieldBase({\n field: field instanceof FieldPath ? field : root.get(field as any),\n ...rest,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  import { FieldPath } from '../FieldPath';
2
- export declare function bindActionsToField<Actions extends {
3
- [K in string]: (field: FieldPath, ...rest: any[]) => any;
4
- }>(actions: Actions, field: FieldPath): {
5
- [K in keyof Actions]: Actions[K] extends (field: FieldPath, ...rest: infer Rest) => infer Return ? (...rest: Rest) => Return : never;
2
+ export declare function bindActionsToField<Field extends FieldPath, Actions extends {
3
+ [K in string]: (field: Field, ...rest: any[]) => any;
4
+ }>(actions: Actions, field: Field): {
5
+ [K in keyof Actions]: Actions[K] extends (field: Field, ...rest: infer Rest) => infer Return ? (...rest: Rest) => Return : never;
6
6
  };
7
7
  //# sourceMappingURL=bindActionsToField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.d.ts","sourceRoot":"","sources":["../../src/util/bindActionsToField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,wBAAgB,kBAAkB,CAChC,OAAO,SAAS;KAAG,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CAAE,EAE5E,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,SAAS,GACf;KACA,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CACvC,KAAK,EAAE,SAAS,EAChB,GAAG,IAAI,EAAE,MAAM,IAAI,KAChB,MAAM,MAAM,GACb,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzB,KAAK;CACV,CAOA"}
1
+ {"version":3,"file":"bindActionsToField.d.ts","sourceRoot":"","sources":["../../src/util/bindActionsToField.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAExC,wBAAgB,kBAAkB,CAChC,KAAK,SAAS,SAAS,EACvB,OAAO,SAAS;KACb,CAAC,IAAI,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;CACrD,EAED,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,GACX;KACA,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,CACvC,KAAK,EAAE,KAAK,EACZ,GAAG,IAAI,EAAE,MAAM,IAAI,KAChB,MAAM,MAAM,GACb,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,GACzB,KAAK;CACV,CAOA"}
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.js","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","_ref","_ref2","_slicedToArray2","key","action","_len","arguments","length","args","Array","_key","apply","concat"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Actions extends { [K in string]: (field: FieldPath, ...rest: any[]) => any }\n>(\n actions: Actions,\n field: FieldPath\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: FieldPath,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,kBAAkBA,CAGhCC,OAAgB,EAChBC,KAAgB,EAQhB;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,IAAA;MAAEG,GAAG,GAAAF,KAAA;MAAEG,MAAM,GAAAH,KAAA;IAAA,OAAW,CAClDE,GAAG,EACH;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAAA,OAAYN,MAAM,CAAAO,KAAA,UAAChB,KAAK,EAAAiB,MAAA,CAAKJ,IAAI,EAAC;IAAA,EAC3C;EAAA,EACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"bindActionsToField.js","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","_ref","_ref2","_slicedToArray2","key","action","_len","arguments","length","args","Array","_key","apply","concat"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n }\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: Field,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":";;;;;;;;AAEO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAQZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,UAAAC,IAAA;IAAA,IAAAC,KAAA,OAAAC,eAAA,aAAAF,IAAA;MAAEG,GAAG,GAAAF,KAAA;MAAEG,MAAM,GAAAH,KAAA;IAAA,OAAW,CAClDE,GAAG,EACH;MAAA,SAAAE,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;QAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;MAAA;MAAA,OAAYN,MAAM,CAAAO,KAAA,UAAChB,KAAK,EAAAiB,MAAA,CAAKJ,IAAI,EAAC;IAAA,EAC3C;EAAA,EACH,CAAC;AACH","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"bindActionsToField.mjs","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","key","action","args"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Actions extends { [K in string]: (field: FieldPath, ...rest: any[]) => any }\n>(\n actions: Actions,\n field: FieldPath\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: FieldPath,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":"AAEA,OAAO,SAASA,kBAAkBA,CAGhCC,OAAgB,EAChBC,KAAgB,EAQhB;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAM,KAAK,CAClDD,GAAG,EACH,CAAC,GAAGE,IAAW,KAAKD,MAAM,CAACN,KAAK,EAAE,GAAGO,IAAI,CAAC,CAC3C,CACH,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"bindActionsToField.mjs","names":["bindActionsToField","actions","field","Object","fromEntries","entries","map","key","action","args"],"sources":["../../src/util/bindActionsToField.ts"],"sourcesContent":["import { FieldPath } from '../FieldPath'\n\nexport function bindActionsToField<\n Field extends FieldPath,\n Actions extends {\n [K in string]: (field: Field, ...rest: any[]) => any\n }\n>(\n actions: Actions,\n field: Field\n): {\n [K in keyof Actions]: Actions[K] extends (\n field: Field,\n ...rest: infer Rest\n ) => infer Return\n ? (...rest: Rest) => Return\n : never\n} {\n return Object.fromEntries(\n Object.entries(actions).map(([key, action]: any) => [\n key,\n (...args: any[]) => action(field, ...args),\n ])\n ) as any\n}\n"],"mappings":"AAEA,OAAO,SAASA,kBAAkBA,CAMhCC,OAAgB,EAChBC,KAAY,EAQZ;EACA,OAAOC,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACJ,OAAO,CAAC,CAACK,GAAG,CAAC,CAAC,CAACC,GAAG,EAAEC,MAAM,CAAM,KAAK,CAClDD,GAAG,EACH,CAAC,GAAGE,IAAW,KAAKD,MAAM,CAACN,KAAK,EAAE,GAAGO,IAAI,CAAC,CAC3C,CACH,CAAC;AACH","ignoreList":[]}