@form-instant/react-input-mapping 1.0.0 → 1.2.0
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/README.md +303 -56
- package/dist/InputMapping/index.d.ts +1 -0
- package/dist/InputMapping/types.d.ts +2 -0
- package/dist/InputMapping/useFormInstantField.d.ts +12 -0
- package/dist/react-input-mapping.cjs.development.js +42 -1
- package/dist/react-input-mapping.cjs.development.js.map +1 -1
- package/dist/react-input-mapping.cjs.production.min.js +1 -1
- package/dist/react-input-mapping.cjs.production.min.js.map +1 -1
- package/dist/react-input-mapping.esm.js +43 -3
- package/dist/react-input-mapping.esm.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -57,38 +57,54 @@ import {
|
|
|
57
57
|
InputMapping
|
|
58
58
|
} from "@form-instant/react-input-mapping";
|
|
59
59
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
string
|
|
64
|
-
ParsedField<extendProps, string>
|
|
60
|
+
export type ExtendProps = React.InputHTMLAttributes<HTMLInputElement>;
|
|
61
|
+
export type P = ParsedField<
|
|
62
|
+
ExtendProps,
|
|
63
|
+
string
|
|
65
64
|
>;
|
|
66
|
-
export type K = "email" | "password"
|
|
65
|
+
export type K = "email" | "password";
|
|
67
66
|
|
|
68
|
-
|
|
67
|
+
const inputMapping = new InputMapping<P, K>({
|
|
69
68
|
fallback: (props) => {
|
|
70
|
-
const { fieldConfig, ...prop } = props;
|
|
69
|
+
const { fieldConfig, name, ...prop } = props;
|
|
71
70
|
|
|
72
71
|
return <input {...prop} {...fieldConfig} />;
|
|
73
72
|
},
|
|
74
73
|
textarea: () => <textarea />,
|
|
75
|
-
number: () =>
|
|
74
|
+
number: (props) => {
|
|
75
|
+
const { fieldConfig, name, ...prop } = props;
|
|
76
|
+
|
|
77
|
+
return <input {...prop} {...fieldConfig} />;
|
|
78
|
+
},
|
|
76
79
|
text: (props) => {
|
|
77
|
-
const { fieldConfig, ...prop } = props;
|
|
80
|
+
const { fieldConfig, name, ...prop } = props;
|
|
78
81
|
|
|
79
82
|
return <input {...prop} {...fieldConfig} />;
|
|
80
83
|
},
|
|
81
84
|
date: () => <input type="date" />,
|
|
82
85
|
email: (props) => {
|
|
83
|
-
const { fieldConfig, ...prop } = props;
|
|
86
|
+
const { fieldConfig, name, ...prop } = props;
|
|
84
87
|
|
|
85
88
|
return <input {...prop} {...fieldConfig} />;
|
|
86
89
|
},
|
|
87
90
|
password: (props) => {
|
|
88
|
-
const { fieldConfig, ...prop } = props;
|
|
91
|
+
const { fieldConfig, name, ...prop } = props;
|
|
89
92
|
|
|
90
93
|
return <input {...prop} {...fieldConfig} />;
|
|
91
94
|
},
|
|
95
|
+
select: (props) => {
|
|
96
|
+
const { options } = props;
|
|
97
|
+
|
|
98
|
+
return (
|
|
99
|
+
<select>
|
|
100
|
+
{options?.map(([k, v]) => (
|
|
101
|
+
<option key={k} value={k}>
|
|
102
|
+
{v}
|
|
103
|
+
</option>
|
|
104
|
+
))}
|
|
105
|
+
</select>
|
|
106
|
+
);
|
|
107
|
+
},
|
|
92
108
|
});
|
|
93
109
|
```
|
|
94
110
|
|
|
@@ -162,65 +178,51 @@ export default App;
|
|
|
162
178
|
|
|
163
179
|
<!-- tabs:end -->
|
|
164
180
|
|
|
165
|
-
####
|
|
181
|
+
#### **_use resolver_**
|
|
166
182
|
|
|
167
|
-
To use our resolver we must
|
|
183
|
+
To use our resolver we must add the function **_fieldConfig_**.
|
|
184
|
+
|
|
185
|
+
<!-- tabs:start -->
|
|
186
|
+
|
|
187
|
+
#### **zod**
|
|
188
|
+
|
|
189
|
+
generate provider and hook by use resolver.
|
|
168
190
|
|
|
169
191
|
```typescript
|
|
170
192
|
import { createFormInstantContainer } from '@form-instant/react-input-mapping';
|
|
171
193
|
import { inputMapping, P, K, extendProps } from './inputMapping.tsx';
|
|
172
194
|
|
|
173
|
-
export const { FormInstantInputsProvider, useInputMapping } = createFormInstantContainer<
|
|
174
|
-
|
|
175
|
-
|
|
195
|
+
export const { FormInstantInputsProvider, useInputMapping, useSchema } = createFormInstantContainer<
|
|
196
|
+
P,
|
|
197
|
+
K
|
|
198
|
+
>(inputMapping);
|
|
199
|
+
```
|
|
176
200
|
|
|
177
|
-
|
|
201
|
+
add **_fieldConfig_** in the zod schema.
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
import { z } from 'zod';
|
|
205
|
+
|
|
206
|
+
extendZodWithFieldConfig<React.InputHTMLAttributes<HTMLInputElement>>(z);
|
|
207
|
+
|
|
208
|
+
export { z };
|
|
178
209
|
```
|
|
179
210
|
|
|
211
|
+
<!-- tabs:end -->
|
|
212
|
+
|
|
180
213
|
#### \* **_build form_**
|
|
181
214
|
|
|
182
215
|
- schema:
|
|
183
216
|
|
|
184
217
|
```typescript
|
|
185
218
|
import { z } from 'zod';
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
.email()
|
|
194
|
-
.superRefine(
|
|
195
|
-
fieldConfig({
|
|
196
|
-
fieldType: 'email',
|
|
197
|
-
placeholder: 'example@mal.com',
|
|
198
|
-
}),
|
|
199
|
-
),
|
|
200
|
-
password: z.string().superRefine(
|
|
201
|
-
fieldConfig({
|
|
202
|
-
type: 'password',
|
|
203
|
-
placeholder: '******',
|
|
204
|
-
}),
|
|
205
|
-
),
|
|
206
|
-
confirm: z.string(),
|
|
207
|
-
})
|
|
208
|
-
.refine(({ confirm, password }) => confirm !== password, {
|
|
209
|
-
message: 'the confim password is diferent to password',
|
|
210
|
-
}),
|
|
211
|
-
|
|
212
|
-
personal_data: z.object({
|
|
213
|
-
last_name: z.string().superRefine(
|
|
214
|
-
fieldConfig({
|
|
215
|
-
placeholder: 'select date',
|
|
216
|
-
}),
|
|
217
|
-
),
|
|
218
|
-
firse_name: z.string(),
|
|
219
|
-
|
|
220
|
-
birthday: z.coerce.date().optional(),
|
|
221
|
-
|
|
222
|
-
code: z.string(),
|
|
223
|
-
}),
|
|
219
|
+
|
|
220
|
+
const formSchema = z.object({
|
|
221
|
+
data: z.object({
|
|
222
|
+
email: z.string().email(),
|
|
223
|
+
password: z.string(),,
|
|
224
|
+
confirm: z.string(),
|
|
225
|
+
})
|
|
224
226
|
});
|
|
225
227
|
|
|
226
228
|
export type formSchemaType = Zod.infer<typeof formSchema>;
|
|
@@ -253,3 +255,248 @@ export const Forms = () => {
|
|
|
253
255
|
);
|
|
254
256
|
};
|
|
255
257
|
```
|
|
258
|
+
|
|
259
|
+
## **_special inputs_**
|
|
260
|
+
|
|
261
|
+
### **use-formInstantField**
|
|
262
|
+
|
|
263
|
+
#### **by object**
|
|
264
|
+
|
|
265
|
+
```typescript
|
|
266
|
+
import { Fragment } from "react";
|
|
267
|
+
import { ElementMapping, ParsedField, useFormInstantField } from "@form-instant/react-input-mapping";
|
|
268
|
+
import { P } from "@/providers";
|
|
269
|
+
|
|
270
|
+
export const ObjectComp: FC<P> = (props) => {
|
|
271
|
+
const { fiends, fieldConfig, ...prop } = useFormInstantField<P>(props);
|
|
272
|
+
const id = useId();
|
|
273
|
+
|
|
274
|
+
return (
|
|
275
|
+
<div {...{ ...fieldConfig, ...prop }}>
|
|
276
|
+
{fiends.map((prop) => {
|
|
277
|
+
return (
|
|
278
|
+
<Fragment key={`${id}-${prop.name.history}`}>
|
|
279
|
+
<ElementMapping formProps={prop} />
|
|
280
|
+
</Fragment>
|
|
281
|
+
);
|
|
282
|
+
})}
|
|
283
|
+
</div>
|
|
284
|
+
);
|
|
285
|
+
};
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
#### **by array**
|
|
289
|
+
|
|
290
|
+
```typescript
|
|
291
|
+
import { Fragment, useId } from "react";
|
|
292
|
+
import { ElementMapping, ParsedField, useFormInstantField } from "@form-instant/react-input-mapping";
|
|
293
|
+
import { P } from "@/providers";
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
export const ArrayComp: FC<P> = (props) => {
|
|
297
|
+
const { fiends, fieldConfig, ...prop } = useFormInstantField<P>(props);
|
|
298
|
+
const id = useId();
|
|
299
|
+
|
|
300
|
+
return (
|
|
301
|
+
<div {...{ ...fieldConfig, ...prop }}>
|
|
302
|
+
{fiends.map((prop, index) => {
|
|
303
|
+
return (
|
|
304
|
+
<Fragment key={`${id}-${prop.name.history}`}>
|
|
305
|
+
<div>
|
|
306
|
+
<ElementMapping formProps={prop} />
|
|
307
|
+
<button onClick={() => append()}>+</button>
|
|
308
|
+
<button onClick={() => remove(index)}>-</button>
|
|
309
|
+
</div>
|
|
310
|
+
<br />
|
|
311
|
+
<br />
|
|
312
|
+
</Fragment>
|
|
313
|
+
);
|
|
314
|
+
})}
|
|
315
|
+
</div>
|
|
316
|
+
);
|
|
317
|
+
};
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## **_reactive schemas_**
|
|
321
|
+
|
|
322
|
+
### **fieldConfig**
|
|
323
|
+
|
|
324
|
+
```typescript
|
|
325
|
+
import { Fragment, useId } from "react";
|
|
326
|
+
import { ElementMapping, useFormInstantField } from "@form-instant/react-input-mapping";
|
|
327
|
+
import { FormInstantElement, FormInstantProvider } from "@form-instant/react-resolver-zod";
|
|
328
|
+
import { P } from "@/providers";
|
|
329
|
+
import { z } from '@/zod';
|
|
330
|
+
|
|
331
|
+
const formSchema = z.object({
|
|
332
|
+
data: z.object({
|
|
333
|
+
email: z.string().email().fieldConfig({
|
|
334
|
+
fieldType: "email",
|
|
335
|
+
placeholder: "example@mal.com",
|
|
336
|
+
}),
|
|
337
|
+
password: z.string().fieldConfig({
|
|
338
|
+
fieldType: "password",
|
|
339
|
+
placeholder: "******",
|
|
340
|
+
}),
|
|
341
|
+
confirm: z.string(),
|
|
342
|
+
})
|
|
343
|
+
});
|
|
344
|
+
|
|
345
|
+
export const FromComp = (props) => {
|
|
346
|
+
|
|
347
|
+
return (
|
|
348
|
+
<>
|
|
349
|
+
<FormInstantProvider schema={schema}>
|
|
350
|
+
<h1>your form </h1>
|
|
351
|
+
<div>
|
|
352
|
+
<br />
|
|
353
|
+
<FormInstantElement<formSchemaType> name="data" />
|
|
354
|
+
</div>
|
|
355
|
+
<button>
|
|
356
|
+
submit
|
|
357
|
+
</button>
|
|
358
|
+
</FormInstantProvider>
|
|
359
|
+
</>
|
|
360
|
+
);
|
|
361
|
+
};
|
|
362
|
+
```
|
|
363
|
+
|
|
364
|
+
### **use-schema**
|
|
365
|
+
|
|
366
|
+
**useSchema** is a hook, receives two values, a callback and a dependencies object, the callback will be executed when the dependencies change, similar to a useEffect, the callback receives as a parameter the same dependencies object, the callback must always return a valid zod schema..
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
const [dependencies, setDependencies] = useState({ status: 'ok' });
|
|
370
|
+
|
|
371
|
+
const { schema } = useSchema((dependencies /* is a dependencies object */) => {
|
|
372
|
+
return formSchema;
|
|
373
|
+
}, dependencies);
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
Example with react-hook-form we must remember that they can use the form hook or form solution that the developer prefers, in this example shows the usage for conditional rendering using the **z.discriminatedUnion** method of **zod**.
|
|
377
|
+
|
|
378
|
+
When used in **z.discriminatedUnion**, an array of objects is received, where the first object is the input of the discriminant condition and will have the **discriminator** type, with this key or the **fiendType** that you pass in the **fiendConfig** you can capture this value in the mapping.
|
|
379
|
+
|
|
380
|
+
```typescript
|
|
381
|
+
import { Fragment, useId } from "react";
|
|
382
|
+
import { ElementMapping, ParsedField, useFormInstantField } from "@form-instant/react-input-mapping";
|
|
383
|
+
import { FormInstantElement, FormInstantProvider } from "@form-instant/react-resolver-zod";
|
|
384
|
+
import { FormInstantInputsProvider, useInputMapping, useSchema } from "@/resolver";
|
|
385
|
+
import { P } from "@/providers";
|
|
386
|
+
import { z } from '@/zod';
|
|
387
|
+
|
|
388
|
+
const formSchema = z.object({
|
|
389
|
+
data: z.discriminatedUnion("status", [
|
|
390
|
+
z.object({
|
|
391
|
+
status: z.literal("ok"),
|
|
392
|
+
|
|
393
|
+
code: z.string(),
|
|
394
|
+
}),
|
|
395
|
+
z.object({
|
|
396
|
+
status: z.literal("not"),
|
|
397
|
+
|
|
398
|
+
birthday: z.coerce.date(),
|
|
399
|
+
}),
|
|
400
|
+
]),
|
|
401
|
+
});
|
|
402
|
+
|
|
403
|
+
export const FromComp = (props) => {
|
|
404
|
+
|
|
405
|
+
// define state by dependecys
|
|
406
|
+
const [dependencies, setDependencies] = useState({ status: "" });
|
|
407
|
+
|
|
408
|
+
const { schema } = useSchema(() => {
|
|
409
|
+
return formSchema;
|
|
410
|
+
}, dependencies);
|
|
411
|
+
|
|
412
|
+
const form = useForm<Zod.infer<typeof schema>>({
|
|
413
|
+
resolver: zodResolver(schema),
|
|
414
|
+
defaultValues: {
|
|
415
|
+
data: {
|
|
416
|
+
status: "ok",
|
|
417
|
+
},
|
|
418
|
+
},
|
|
419
|
+
});
|
|
420
|
+
|
|
421
|
+
useEffect(() => {
|
|
422
|
+
|
|
423
|
+
/* This way of capturing and formatting form data was
|
|
424
|
+
taken from the useFormValues hook
|
|
425
|
+
recommended by react-hook-form */
|
|
426
|
+
const fromValues = {
|
|
427
|
+
...form.getValues(),
|
|
428
|
+
...form.watch(),
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
if (
|
|
432
|
+
!dependencies.status ||
|
|
433
|
+
dependencies.status !== fromValues.data.status
|
|
434
|
+
) {
|
|
435
|
+
|
|
436
|
+
setDependencies((prev) => {
|
|
437
|
+
return {
|
|
438
|
+
...prev,
|
|
439
|
+
status: fromValues.data.status,
|
|
440
|
+
};
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
}, [form.watch(), dependencies]);
|
|
444
|
+
|
|
445
|
+
const onSubmit = form.handleSubmit(
|
|
446
|
+
(data) => {
|
|
447
|
+
console.log("data", data);
|
|
448
|
+
},
|
|
449
|
+
(err) => {
|
|
450
|
+
console.log("err", err);
|
|
451
|
+
}
|
|
452
|
+
);
|
|
453
|
+
|
|
454
|
+
return (
|
|
455
|
+
<form onSubmit={onSubmit}>
|
|
456
|
+
<FormProvider {...form}>
|
|
457
|
+
<FormInstantProvider schema={schema}>
|
|
458
|
+
<h1>your form </h1>
|
|
459
|
+
<div>
|
|
460
|
+
<br />
|
|
461
|
+
<FormInstantElement<formSchemaType> name="data" />
|
|
462
|
+
</div>
|
|
463
|
+
<button
|
|
464
|
+
onClick={(e) => {
|
|
465
|
+
e.preventDefault();
|
|
466
|
+
const pre = form.getValues("personal_data.status");
|
|
467
|
+
|
|
468
|
+
form.setValue(
|
|
469
|
+
"personal_data.status",
|
|
470
|
+
pre === "not" ? "ok" : "not"
|
|
471
|
+
);
|
|
472
|
+
}}
|
|
473
|
+
>
|
|
474
|
+
switch
|
|
475
|
+
</button>
|
|
476
|
+
</FormInstantProvider>
|
|
477
|
+
</FormProvider>
|
|
478
|
+
</form>
|
|
479
|
+
);
|
|
480
|
+
};
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
discriminator component example.
|
|
484
|
+
|
|
485
|
+
```tsx
|
|
486
|
+
import { FC } from 'react';
|
|
487
|
+
import { P } from '@/providers';
|
|
488
|
+
|
|
489
|
+
const discriminator: FC<P> = (props) => {
|
|
490
|
+
const { options } = props;
|
|
491
|
+
|
|
492
|
+
return (
|
|
493
|
+
<select>
|
|
494
|
+
{options?.map(([k, v]) => (
|
|
495
|
+
<option key={k} value={k}>
|
|
496
|
+
{v}
|
|
497
|
+
</option>
|
|
498
|
+
))}
|
|
499
|
+
</select>
|
|
500
|
+
);
|
|
501
|
+
};
|
|
502
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ParsedField } from './types';
|
|
2
|
+
export declare const useFormInstantField: <P extends ParsedField<any, string>>({ fieldConfig, name, ...prop }: P) => {
|
|
3
|
+
fiends: ParsedField<any, string>[];
|
|
4
|
+
append: () => void;
|
|
5
|
+
remove: (index: number) => void;
|
|
6
|
+
setFiends: import("react").Dispatch<import("react").SetStateAction<ParsedField<any, string>[]>>;
|
|
7
|
+
fieldConfig: any;
|
|
8
|
+
name: {
|
|
9
|
+
current: string;
|
|
10
|
+
history: string;
|
|
11
|
+
};
|
|
12
|
+
} & Omit<P, "fieldConfig" | "name">;
|
|
@@ -68,6 +68,15 @@ function _isNativeReflectConstruct() {
|
|
|
68
68
|
return !!t;
|
|
69
69
|
})();
|
|
70
70
|
}
|
|
71
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
72
|
+
if (null == r) return {};
|
|
73
|
+
var t = {};
|
|
74
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
75
|
+
if (e.includes(n)) continue;
|
|
76
|
+
t[n] = r[n];
|
|
77
|
+
}
|
|
78
|
+
return t;
|
|
79
|
+
}
|
|
71
80
|
function _setPrototypeOf(t, e) {
|
|
72
81
|
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
73
82
|
return t.__proto__ = e, t;
|
|
@@ -208,14 +217,46 @@ var ElementMapping = function ElementMapping(_ref) {
|
|
|
208
217
|
var _formProps$fieldConfi;
|
|
209
218
|
var formProps = _ref.formProps;
|
|
210
219
|
var InputMapping = useInputMapping();
|
|
211
|
-
var
|
|
220
|
+
var type = ((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type;
|
|
221
|
+
var Element = InputMapping.get(type);
|
|
212
222
|
if (!Element) return null;
|
|
213
223
|
return react.createElement(Element, formProps);
|
|
214
224
|
};
|
|
215
225
|
|
|
226
|
+
var _excluded = ["fieldConfig", "name"];
|
|
227
|
+
var useFormInstantField = function useFormInstantField(_ref) {
|
|
228
|
+
var fieldConfig = _ref.fieldConfig,
|
|
229
|
+
name = _ref.name,
|
|
230
|
+
prop = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
231
|
+
var _useState = react.useState(Object.values(prop.schema || {})),
|
|
232
|
+
fiends = _useState[0],
|
|
233
|
+
setFiends = _useState[1];
|
|
234
|
+
var append = react.useCallback(function () {
|
|
235
|
+
if (![fieldConfig == null ? void 0 : fieldConfig.max, Number(fieldConfig == null ? void 0 : fieldConfig.maxLength)].includes(fiends.length)) setFiends(function (pre) {
|
|
236
|
+
return [].concat(pre, [pre[0]]);
|
|
237
|
+
});
|
|
238
|
+
}, [fiends, fieldConfig == null ? void 0 : fieldConfig.max, fieldConfig == null ? void 0 : fieldConfig.maxLength]);
|
|
239
|
+
var remove = react.useCallback(function (index) {
|
|
240
|
+
if (![fieldConfig == null ? void 0 : fieldConfig.min, Number(fieldConfig == null ? void 0 : fieldConfig.minLength)].includes(fiends.length)) setFiends(function (pre) {
|
|
241
|
+
return pre.filter(function (_, i) {
|
|
242
|
+
return i !== index;
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
}, [fiends, fieldConfig == null ? void 0 : fieldConfig.min, fieldConfig == null ? void 0 : fieldConfig.minLength]);
|
|
246
|
+
return _extends({
|
|
247
|
+
fiends: fiends,
|
|
248
|
+
append: append,
|
|
249
|
+
remove: remove,
|
|
250
|
+
setFiends: setFiends,
|
|
251
|
+
fieldConfig: fieldConfig,
|
|
252
|
+
name: name
|
|
253
|
+
}, prop);
|
|
254
|
+
};
|
|
255
|
+
|
|
216
256
|
exports.ElementMapping = ElementMapping;
|
|
217
257
|
exports.InputMapping = InputMapping;
|
|
218
258
|
exports.InputMappingContext = InputMappingContext;
|
|
219
259
|
exports.createFormInstantContainer = createFormInstantContainer;
|
|
260
|
+
exports.useFormInstantField = useFormInstantField;
|
|
220
261
|
exports.useInputMapping = useInputMapping;
|
|
221
262
|
//# sourceMappingURL=react-input-mapping.cjs.development.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-input-mapping.cjs.development.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const Element = InputMapping.get(formProps.fieldConfig?.type || formProps.type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n"],"names":["InputMapping","_Map","obj","_this","call","_assertThisInitialized","appendObj","_inheritsLoose","_proto","prototype","zodAdacter","Object","entries","ZodBoolean","ZodDate","ZodEnum","ZodNativeEnum","ZodNumber","string","keys","_i","_keys","length","key","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","value","k","v","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","useInputMapping","initialState","useContext","mapRef","useRef","_useReducer","useReducer","x","reRender","current","_len","arguments","args","Array","_key","apply","clear","_len2","_key2","_len3","_key3","res","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","ElementMapping","_ref","_formProps$fieldConfi","formProps","Element","fieldConfig","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-input-mapping.cjs.development.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useFormInstantField.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const type = formProps.fieldConfig?.type || formProps.type;\n\n const Element = InputMapping.get(type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n","import { useCallback, useState } from 'react';\nimport { ParsedField } from './types';\n\nexport const useFormInstantField = <P extends ParsedField<any, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values(prop.schema || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max, Number(fieldConfig?.maxLength)].includes(fiends.length))\n setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max, fieldConfig?.maxLength]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min, Number(fieldConfig?.minLength)].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min, fieldConfig?.minLength],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n"],"names":["InputMapping","_Map","obj","_this","call","_assertThisInitialized","appendObj","_inheritsLoose","_proto","prototype","zodAdacter","Object","entries","ZodBoolean","ZodDate","ZodEnum","ZodNativeEnum","ZodNumber","string","keys","_i","_keys","length","key","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","value","k","v","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","useInputMapping","initialState","useContext","mapRef","useRef","_useReducer","useReducer","x","reRender","current","_len","arguments","args","Array","_key","apply","clear","_len2","_key2","_len3","_key3","res","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","ElementMapping","_ref","_formProps$fieldConfi","formProps","type","fieldConfig","Element","useFormInstantField","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","Number","maxLength","includes","pre","concat","remove","index","min","minLength","filter","_","i","_extends"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("use-context-selector"),e=require("react");function
|
|
1
|
+
"use strict";var t=require("use-context-selector"),e=require("react");function n(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function r(){return r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var r in n)({}).hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},r.apply(null,arguments)}function o(t){return o=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},o(t)}function u(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(u=function(){return!!t})()}function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}function a(t){var e="function"==typeof Map?new Map:void 0;return a=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(u())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var o=new(t.bind.apply(t,r));return n&&i(o,n.prototype),o}(t,arguments,o(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),i(n,t)},a(t)}var c=function(t){function e(e){var n;return n=t.call(this)||this,e?(n.appendObj(e),n):function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(n)}var o,u;u=t,(o=e).prototype=Object.create(u.prototype),o.prototype.constructor=o,i(o,u);var a=e.prototype;return a.zodAdacter=function(){return Object.entries({ZodBoolean:"checkbox",ZodDate:"date",ZodEnum:"select",ZodNativeEnum:"select",ZodNumber:"number",string:"text"})},a.appendObj=function(t){for(var e=0,r=Object.keys(t);e<r.length;e++){var o=r[e];this.set(o,t[o])}for(var u,i=function(t){var e="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(e)return(e=e.call(t)).next.bind(e);if(Array.isArray(t)||(e=function(t,e){if(t){if("string"==typeof t)return n(t,e);var r={}.toString.call(t).slice(8,-1);return"Object"===r&&t.constructor&&(r=t.constructor.name),"Map"===r||"Set"===r?Array.from(t):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?n(t,e):void 0}}(t))){e&&(t=e);var r=0;return function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(this.zodAdacter());!(u=i()).done;){var a=u.value;this.set(a[0],this.get(a[1]))}},a.exists=function(e){return t.prototype.has.call(this,e)?e:"fallback"},a.get=function(e){return t.prototype.get.call(this,e)},a.set=function(e,n){return t.prototype.has.call(this,e)||t.prototype.set.call(this,e,n),this},a.extends=function(n){return new e(r({},Object.fromEntries(t.prototype.entries.call(this)),n(this)))},e}(a(Map)),l=t.createContext(new c),p=function(){var n=t.useContext(l),r=e.useRef(n),o=e.useReducer((function(t){return t+1}),0)[1];return r.current.set=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];return c.prototype.set.apply(r.current,e),o(),r.current},r.current.clear=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];c.prototype.clear.apply(r.current,e),o()},r.current.delete=function(){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var u=c.prototype.delete.apply(r.current,e);return o(),u},r.current},f=["fieldConfig","name"];exports.ElementMapping=function(t){var n,r=t.formProps,o=p(),u=(null==(n=r.fieldConfig)?void 0:n.type)||r.type,i=o.get(u);return i?e.createElement(i,r):null},exports.InputMapping=c,exports.InputMappingContext=l,exports.createFormInstantContainer=function(t){return{FormInstantInputsProvider:function(n){return e.createElement(l.Provider,{value:t,children:n.children})},useInputMapping:p}},exports.useFormInstantField=function(t){var n=t.fieldConfig,o=t.name,u=function(t,e){if(null==t)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(e.includes(r))continue;n[r]=t[r]}return n}(t,f),i=e.useState(Object.values(u.schema||{})),a=i[0],c=i[1],l=e.useCallback((function(){[null==n?void 0:n.max,Number(null==n?void 0:n.maxLength)].includes(a.length)||c((function(t){return[].concat(t,[t[0]])}))}),[a,null==n?void 0:n.max,null==n?void 0:n.maxLength]),p=e.useCallback((function(t){[null==n?void 0:n.min,Number(null==n?void 0:n.minLength)].includes(a.length)||c((function(e){return e.filter((function(e,n){return n!==t}))}))}),[a,null==n?void 0:n.min,null==n?void 0:n.minLength]);return r({fiends:a,append:l,remove:p,setFiends:c,fieldConfig:n,name:o},u)},exports.useInputMapping=p;
|
|
2
2
|
//# sourceMappingURL=react-input-mapping.cjs.production.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-input-mapping.cjs.production.min.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const
|
|
1
|
+
{"version":3,"file":"react-input-mapping.cjs.production.min.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useFormInstantField.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const type = formProps.fieldConfig?.type || formProps.type;\n\n const Element = InputMapping.get(type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n","import { useCallback, useState } from 'react';\nimport { ParsedField } from './types';\n\nexport const useFormInstantField = <P extends ParsedField<any, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values(prop.schema || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max, Number(fieldConfig?.maxLength)].includes(fiends.length))\n setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max, fieldConfig?.maxLength]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min, Number(fieldConfig?.minLength)].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min, fieldConfig?.minLength],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n"],"names":["InputMapping","_Map","obj","_this","call","this","appendObj","_assertThisInitialized","_proto","prototype","zodAdacter","Object","entries","ZodBoolean","ZodDate","ZodEnum","ZodNativeEnum","ZodNumber","string","_i","_keys","keys","length","key","set","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","value","get","exists","k","has","v","cb","_extends2","fromEntries","_wrapNativeSuper","Map","InputMappingContext","createContext","useInputMapping","initialState","useContext","mapRef","useRef","reRender","useReducer","x","current","_len","arguments","args","Array","_key","apply","clear","_len2","_key2","_len3","_key3","res","_ref","_formProps$fieldConfi","formProps","type","fieldConfig","Element","createElement","inputMapping","FormInstantInputsProvider","props","Provider","children","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","Number","maxLength","includes","pre","concat","remove","index","min","minLength","filter","_","i","_extends"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createContext, useContext } from 'use-context-selector';
|
|
2
|
-
import { useRef, useReducer, createElement } from 'react';
|
|
2
|
+
import { useRef, useReducer, createElement, useState, useCallback } from 'react';
|
|
3
3
|
|
|
4
4
|
function _arrayLikeToArray(r, a) {
|
|
5
5
|
(null == a || a > r.length) && (a = r.length);
|
|
@@ -66,6 +66,15 @@ function _isNativeReflectConstruct() {
|
|
|
66
66
|
return !!t;
|
|
67
67
|
})();
|
|
68
68
|
}
|
|
69
|
+
function _objectWithoutPropertiesLoose(r, e) {
|
|
70
|
+
if (null == r) return {};
|
|
71
|
+
var t = {};
|
|
72
|
+
for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
|
|
73
|
+
if (e.includes(n)) continue;
|
|
74
|
+
t[n] = r[n];
|
|
75
|
+
}
|
|
76
|
+
return t;
|
|
77
|
+
}
|
|
69
78
|
function _setPrototypeOf(t, e) {
|
|
70
79
|
return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
|
|
71
80
|
return t.__proto__ = e, t;
|
|
@@ -206,10 +215,41 @@ var ElementMapping = function ElementMapping(_ref) {
|
|
|
206
215
|
var _formProps$fieldConfi;
|
|
207
216
|
var formProps = _ref.formProps;
|
|
208
217
|
var InputMapping = useInputMapping();
|
|
209
|
-
var
|
|
218
|
+
var type = ((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type;
|
|
219
|
+
var Element = InputMapping.get(type);
|
|
210
220
|
if (!Element) return null;
|
|
211
221
|
return createElement(Element, formProps);
|
|
212
222
|
};
|
|
213
223
|
|
|
214
|
-
|
|
224
|
+
var _excluded = ["fieldConfig", "name"];
|
|
225
|
+
var useFormInstantField = function useFormInstantField(_ref) {
|
|
226
|
+
var fieldConfig = _ref.fieldConfig,
|
|
227
|
+
name = _ref.name,
|
|
228
|
+
prop = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
229
|
+
var _useState = useState(Object.values(prop.schema || {})),
|
|
230
|
+
fiends = _useState[0],
|
|
231
|
+
setFiends = _useState[1];
|
|
232
|
+
var append = useCallback(function () {
|
|
233
|
+
if (![fieldConfig == null ? void 0 : fieldConfig.max, Number(fieldConfig == null ? void 0 : fieldConfig.maxLength)].includes(fiends.length)) setFiends(function (pre) {
|
|
234
|
+
return [].concat(pre, [pre[0]]);
|
|
235
|
+
});
|
|
236
|
+
}, [fiends, fieldConfig == null ? void 0 : fieldConfig.max, fieldConfig == null ? void 0 : fieldConfig.maxLength]);
|
|
237
|
+
var remove = useCallback(function (index) {
|
|
238
|
+
if (![fieldConfig == null ? void 0 : fieldConfig.min, Number(fieldConfig == null ? void 0 : fieldConfig.minLength)].includes(fiends.length)) setFiends(function (pre) {
|
|
239
|
+
return pre.filter(function (_, i) {
|
|
240
|
+
return i !== index;
|
|
241
|
+
});
|
|
242
|
+
});
|
|
243
|
+
}, [fiends, fieldConfig == null ? void 0 : fieldConfig.min, fieldConfig == null ? void 0 : fieldConfig.minLength]);
|
|
244
|
+
return _extends({
|
|
245
|
+
fiends: fiends,
|
|
246
|
+
append: append,
|
|
247
|
+
remove: remove,
|
|
248
|
+
setFiends: setFiends,
|
|
249
|
+
fieldConfig: fieldConfig,
|
|
250
|
+
name: name
|
|
251
|
+
}, prop);
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
export { ElementMapping, InputMapping, InputMappingContext, createFormInstantContainer, useFormInstantField, useInputMapping };
|
|
215
255
|
//# sourceMappingURL=react-input-mapping.esm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-input-mapping.esm.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const Element = InputMapping.get(formProps.fieldConfig?.type || formProps.type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n"],"names":["InputMapping","_Map","obj","_this","call","_assertThisInitialized","appendObj","_inheritsLoose","_proto","prototype","zodAdacter","Object","entries","ZodBoolean","ZodDate","ZodEnum","ZodNativeEnum","ZodNumber","string","keys","_i","_keys","length","key","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","value","k","v","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","useInputMapping","initialState","useContext","mapRef","useRef","_useReducer","useReducer","x","reRender","current","_len","arguments","args","Array","_key","apply","clear","_len2","_key2","_len3","_key3","res","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","ElementMapping","_ref","_formProps$fieldConfi","formProps","Element","fieldConfig","type"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-input-mapping.esm.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useFormInstantField.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS } from './types';\n\ntype MergeKeys<T, U> = {\n [K in keyof T | keyof U]: K extends keyof T ? T[K] : K extends keyof U ? U[K] : never;\n};\n\n// K extiende de INPUT_COMPONENTS_KEYS y puede incluir más claves personalizadas\nexport class InputMapping<P = object, K extends string = INPUT_COMPONENTS_KEYS> extends Map<\n MergeKeys<K, INPUT_COMPONENTS_KEYS>,\n FC<P>\n> {\n private zodAdacter() {\n return Object.entries({\n ZodBoolean: 'checkbox',\n ZodDate: 'date',\n ZodEnum: 'select',\n ZodNativeEnum: 'select',\n ZodNumber: 'number',\n string: 'text',\n });\n }\n\n private appendObj(obj: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n const keys = Object.keys(obj) as Array<K | INPUT_COMPONENTS_KEYS>;\n\n type Ky = MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n\n for (const key of keys) this.set(key as Ky, obj[key]!);\n\n for (const [k, v] of this.zodAdacter()) this.set(k as Ky, this.get(v)!);\n }\n\n constructor(obj?: Partial<Record<K | INPUT_COMPONENTS_KEYS, FC<P>>>) {\n super();\n\n if (!obj) return;\n\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n\n if (!isHas) return 'fallback';\n\n return k as MergeKeys<K, INPUT_COMPONENTS_KEYS>;\n }\n\n get(k: MergeKeys<K, INPUT_COMPONENTS_KEYS> | string) {\n return super.get(k as MergeKeys<K, INPUT_COMPONENTS_KEYS>);\n }\n\n set(k: MergeKeys<K, INPUT_COMPONENTS_KEYS>, v: FC<P>) {\n if (!super.has(k)) super.set(k, v);\n\n return this;\n }\n\n extends(cb: (mapingp: InputMapping<P, K | INPUT_COMPONENTS_KEYS>) => Record<never, FC<P>>) {\n const obj = Object.fromEntries(super.entries()) as Record<string, FC<P>>;\n\n const extendObj = cb(this as unknown as InputMapping<P, K | INPUT_COMPONENTS_KEYS>);\n\n return new InputMapping<P, K | INPUT_COMPONENTS_KEYS>({\n ...obj,\n ...extendObj,\n } as Record<K | INPUT_COMPONENTS_KEYS, FC<P>>);\n }\n}\n","import { createContext } from 'use-context-selector';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping>(new InputMapping());\n","import { useReducer, useRef } from 'react';\nimport { useContext } from 'use-context-selector';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\n\nexport const useInputMapping = () => {\n const initialState = useContext(InputMappingContext);\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n mapRef.current.set = (...args) => {\n InputMapping.prototype.set.apply(mapRef.current, args);\n reRender();\n return mapRef.current;\n };\n\n mapRef.current.clear = (...args) => {\n InputMapping.prototype.clear.apply(mapRef.current, args);\n reRender();\n };\n\n mapRef.current.delete = (...args) => {\n const res = InputMapping.prototype.delete.apply(mapRef.current, args);\n reRender();\n\n return res;\n };\n\n return mapRef.current;\n};\n","import { createElement } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\nimport { useInputMapping } from './useInputMapping';\n\ninterface createFormInstantContainerRetuen<P = object, K extends string = INPUT_COMPONENTS_KEYS> {\n useInputMapping: () => InputMapping<P, K>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <P = object, K extends string = INPUT_COMPONENTS_KEYS>(\n inputMapping: InputMapping<P, K>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping as InputMapping,\n children: props.children,\n });\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as createFormInstantContainerRetuen<P, K>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useInputMapping();\n\n const type = formProps.fieldConfig?.type || formProps.type;\n\n const Element = InputMapping.get(type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n","import { useCallback, useState } from 'react';\nimport { ParsedField } from './types';\n\nexport const useFormInstantField = <P extends ParsedField<any, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values(prop.schema || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max, Number(fieldConfig?.maxLength)].includes(fiends.length))\n setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max, fieldConfig?.maxLength]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min, Number(fieldConfig?.minLength)].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min, fieldConfig?.minLength],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n"],"names":["InputMapping","_Map","obj","_this","call","_assertThisInitialized","appendObj","_inheritsLoose","_proto","prototype","zodAdacter","Object","entries","ZodBoolean","ZodDate","ZodEnum","ZodNativeEnum","ZodNumber","string","keys","_i","_keys","length","key","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","value","k","v","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","useInputMapping","initialState","useContext","mapRef","useRef","_useReducer","useReducer","x","reRender","current","_len","arguments","args","Array","_key","apply","clear","_len2","_key2","_len3","_key3","res","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","ElementMapping","_ref","_formProps$fieldConfi","formProps","type","fieldConfig","Element","useFormInstantField","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","Number","maxLength","includes","pre","concat","remove","index","min","minLength","filter","_","i","_extends"],"mappings":"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"}
|