@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 CHANGED
@@ -57,38 +57,54 @@ import {
57
57
  InputMapping
58
58
  } from "@form-instant/react-input-mapping";
59
59
 
60
- exprot type extendProps = React.InputHTMLAttributes<HTMLInputElement>;
61
-
62
- export type P = Record<
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" | "date";
65
+ export type K = "email" | "password";
67
66
 
68
- export const inputMapping = new InputMapping<P, K>({
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: () => <input type="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
- #### \* **_use resolver_**
181
+ #### **_use resolver_**
166
182
 
167
- To use our resolver we must instantiate the function to generate the **_fieldConfig_**.
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<P, K>(
174
- inputMapping,
175
- );
195
+ export const { FormInstantInputsProvider, useInputMapping, useSchema } = createFormInstantContainer<
196
+ P,
197
+ K
198
+ >(inputMapping);
199
+ ```
176
200
 
177
- export const fieldConfig = createZodSchemaFieldConfig<extendProps>();
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
- import { fieldConfig } from './providers';
187
-
188
- export const formSchema = z.object({
189
- security_data: z
190
- .object({
191
- email: z
192
- .string()
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
+ ```
@@ -2,4 +2,5 @@ export * from './class';
2
2
  export * from './context';
3
3
  export * from './provider';
4
4
  export * from './types';
5
+ export * from './useFormInstantField';
5
6
  export * from './useInputMapping';
@@ -13,4 +13,6 @@ export interface ParsedField<AdditionalRenderable, FieldTypes = string> {
13
13
  }
14
14
  export type FieldConfig<AdditionalRenderable = object, FieldTypes = string> = {
15
15
  fieldType?: FieldTypes;
16
+ min?: number;
17
+ max?: number;
16
18
  } & AdditionalRenderable;
@@ -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 Element = InputMapping.get(((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type);
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 r(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=Array(e);r<e;r++)n[r]=t[r];return n}function n(){return n=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var r=arguments[e];for(var n in r)({}).hasOwnProperty.call(r,n)&&(t[n]=r[n])}return t},n.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,r)}function r(){return function(t,e,r){if(u())return Reflect.construct.apply(null,arguments);var n=[null];n.push.apply(n,e);var o=new(t.bind.apply(t,n));return r&&i(o,r.prototype),o}(t,arguments,o(this).constructor)}return r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),i(r,t)},a(t)}var c=function(t){function e(e){var r;return r=t.call(this)||this,e?(r.appendObj(e),r):function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(r)}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,n=Object.keys(t);e<n.length;e++){var o=n[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 r(t,e);var n={}.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?r(t,e):void 0}}(t))){e&&(t=e);var n=0;return function(){return n>=t.length?{done:!0}:{done:!1,value:t[n++]}}}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,r){return t.prototype.has.call(this,e)||t.prototype.set.call(this,e,r),this},a.extends=function(r){return new e(n({},Object.fromEntries(t.prototype.entries.call(this)),r(this)))},e}(a(Map)),p=t.createContext(new c),l=function(){var r=t.useContext(p),n=e.useRef(r),o=e.useReducer((function(t){return t+1}),0)[1];return n.current.set=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return c.prototype.set.apply(n.current,e),o(),n.current},n.current.clear=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];c.prototype.clear.apply(n.current,e),o()},n.current.delete=function(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];var u=c.prototype.delete.apply(n.current,e);return o(),u},n.current};exports.ElementMapping=function(t){var r,n=t.formProps,o=l().get((null==(r=n.fieldConfig)?void 0:r.type)||n.type);return o?e.createElement(o,n):null},exports.InputMapping=c,exports.InputMappingContext=p,exports.createFormInstantContainer=function(t){return{FormInstantInputsProvider:function(r){return e.createElement(p.Provider,{value:t,children:r.children})},useInputMapping:l}},exports.useInputMapping=l;
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 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","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","Element","fieldConfig","type","createElement","inputMapping","FormInstantInputsProvider","props","Provider","children"],"mappings":"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"}
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 Element = InputMapping.get(((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type);
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
- export { ElementMapping, InputMapping, InputMappingContext, createFormInstantContainer, useInputMapping };
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@form-instant/react-input-mapping",
3
- "version": "1.0.0",
3
+ "version": "1.2.0",
4
4
  "license": "MIT",
5
5
  "author": {
6
6
  "name": "leomerida15",