@form-instant/react-input-mapping 1.7.7-rc.1 → 1.9.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.
@@ -4,15 +4,15 @@ export interface ParsedField<AdditionalRenderable, FieldTypes = string> {
4
4
  current: string;
5
5
  history: string;
6
6
  };
7
- type: string;
7
+ fieldType: string;
8
8
  required: boolean;
9
9
  default?: unknown;
10
- fieldConfig?: FieldConfig<AdditionalRenderable, FieldTypes>;
10
+ fieldConfig?: FieldConfig<AdditionalRenderable>;
11
11
  options?: [string, string][];
12
12
  schema?: ParsedField<AdditionalRenderable, FieldTypes>[];
13
13
  }
14
- export type FieldConfig<AdditionalRenderable = object, FieldTypes = string> = {
15
- fieldType?: FieldTypes;
14
+ export type FieldConfig<AdditionalRenderable = object> = {
15
+ type?: string;
16
16
  min?: number;
17
17
  max?: number;
18
18
  } & AdditionalRenderable;
@@ -5,7 +5,7 @@ export declare const useFormInstantField: <P extends ParsedField<unknown, string
5
5
  remove: (index: number) => void;
6
6
  setFiends: import("react").Dispatch<import("react").SetStateAction<ParsedField<unknown, string>[]>>;
7
7
  fieldConfig: {
8
- fieldType?: string | undefined;
8
+ type?: string;
9
9
  min?: number;
10
10
  max?: number;
11
11
  } | undefined;
@@ -13,4 +13,4 @@ export declare const useFormInstantField: <P extends ParsedField<unknown, string
13
13
  current: string;
14
14
  history: string;
15
15
  };
16
- } & Omit<P, "fieldConfig" | "name">;
16
+ } & Omit<P, "name" | "fieldConfig">;
package/dist/index.js CHANGED
@@ -1,8 +1,3 @@
1
+ class u extends Map{zodAdacter(){return Object.entries({ZodBoolean:"checkbox",ZodDate:"date",ZodEnum:"select",ZodNativeEnum:"select",ZodNumber:"number",string:"text"})}appendObj(t){let r=Object.keys(t);for(let n of r){let e=t[n];if(e&&n in{})this.set(n,e);else if(e)this.set(n,e)}for(let[n,e]of this.zodAdacter()){let o=this.get(e);if(o)this.set(n,o)}}constructor(t){super();if(!t)return;this.appendObj(t)}exists(t){if(!super.has(t))return"fallback";return t}get(t){return super.get(t)}set(t,r){if(!super.has(t))super.set(t,r);return this}extends(t){let r=Object.fromEntries(super.entries()),n=t(this);return new u({...r,...n})}}import{createContext as x}from"react";var s=x(null);import{createElement as c,useContext as d}from"react";var T=(t)=>{return{FormInstantInputsProvider:(e)=>c(s.Provider,{value:t},e.children),useInputMapping:()=>d(s)}},N=({formProps:t})=>{let r=d(s),n=t.fieldType,e=r.get(n);if(!e)return null;return c(e,t)};import{useCallback as m,useState as g}from"react";var B=({fieldConfig:t,name:r,...n})=>{let[e,o]=g(Object.values(n.schema||{})),a=m(()=>{if(![t?.max].includes(e.length))o((i)=>[...i,i[0]])},[e,t?.max]),p=m((i)=>{if(![t?.min].includes(e.length))o((l)=>l.filter((R,f)=>f!==i))},[e,t?.min]);return{fiends:e,append:a,remove:p,setFiends:o,fieldConfig:t,name:r,...n}};import{useReducer as I,useRef as F,useContext as C}from"react";function H(t){return function r(){let n=C(t);if(!n)throw new Error("InputMappingContext not found");let e=F(n),[,o]=I((a)=>a+1,0);return{...e.current,set:(a,p)=>{let i=e.current.set(a,p);return o(),i},clear:()=>{e.current.clear(),o()},delete:(a)=>{let p=e.current.delete(a);return o(),p}}}}export{B as useFormInstantField,H as createInputMappingHook,T as createFormInstantContainer,s as InputMappingContext,u as InputMapping,N as ElementMapping};
1
2
 
2
- 'use strict'
3
-
4
- if (process.env.NODE_ENV === 'production') {
5
- module.exports = require('./react-input-mapping.cjs.production.min.js')
6
- } else {
7
- module.exports = require('./react-input-mapping.cjs.development.js')
8
- }
3
+ //# debugId=C50C3835C1CFBF1864756E2164756E21
@@ -0,0 +1,14 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/InputMapping/class.ts", "../src/InputMapping/context.tsx", "../src/InputMapping/provider.tsx", "../src/InputMapping/useFormInstantField.tsx", "../src/InputMapping/useInputMapping.tsx"],
4
+ "sourcesContent": [
5
+ "import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\n\n// Nuevo tipo auxiliar para mapear cada clave a su componente correspondiente\n// Ahora el value depende de la key: si es de Ob, es FC<Ob[K]>; si es de INPUT_COMPONENTS_KEYS, es FC<any>\ntype InputComponentMap<Ob extends Record<string, any>> = {\n [K in keyof Ob]?: FC<ParsedField<Ob[K]>>;\n} & {\n [K in INPUT_COMPONENTS_KEYS]?: FC<any>;\n};\n\nexport class InputMapping<Ob extends Record<string, any>> extends Map<\n keyof Ob | INPUT_COMPONENTS_KEYS,\n FC<any>\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<InputComponentMap<Ob>>) {\n const keys = Object.keys(obj) as Array<keyof typeof obj>;\n\n for (const key of keys) {\n const value = obj[key];\n if (value && (key as string) in ({} as Ob)) {\n this.set(key as keyof Ob, value as FC<Ob[keyof Ob]>);\n } else if (value) {\n this.set(key as INPUT_COMPONENTS_KEYS, value as FC<any>);\n }\n }\n\n for (const [k, v] of this.zodAdacter()) {\n const existingValue = this.get(v as INPUT_COMPONENTS_KEYS);\n if (existingValue) {\n this.set(k as INPUT_COMPONENTS_KEYS, existingValue);\n }\n }\n }\n\n constructor(obj?: Partial<InputComponentMap<Ob>>) {\n super();\n if (!obj) return;\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as keyof Ob | INPUT_COMPONENTS_KEYS);\n if (!isHas) return 'fallback';\n return k as keyof Ob | INPUT_COMPONENTS_KEYS;\n }\n\n get<Ky extends keyof Ob | INPUT_COMPONENTS_KEYS>(k: Ky) {\n return super.get(k);\n }\n\n set<K extends keyof Ob>(k: K, v: FC<Ob[K]>): this;\n set<K extends INPUT_COMPONENTS_KEYS>(k: K, v: FC<any>): this;\n set(k: keyof Ob | INPUT_COMPONENTS_KEYS, v: FC<any>): this {\n if (!super.has(k)) super.set(k, v);\n return this;\n }\n\n extends<Ext extends Record<string, FC<any>>>(\n cb: (mapping: InputMapping<Ob & { [K in keyof Ext]: any }>) => Ext,\n ) {\n const obj = Object.fromEntries(super.entries()) as Partial<\n InputComponentMap<Ob & { [K in keyof Ext]: any }>\n >;\n const extendObj = cb(this as InputMapping<Ob & { [K in keyof Ext]: any }>);\n return new InputMapping<Ob & { [K in keyof Ext]: any }>({\n ...obj,\n ...extendObj,\n });\n }\n}\n",
6
+ "import { createContext } from 'react';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping<any> | null>(null) as React.Context<\n InputMapping<any>\n>;\n",
7
+ "import { Context, createElement, FC, ReactNode, useContext } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { ObBase, ParsedField } from './types';\n\ntype FCC = React.FC<{ children: ReactNode }>;\n\ninterface createFormInstantContainerReturn<Ob extends Record<ObBase, any>> {\n useInputMapping: Context<InputMapping<Ob>>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <Ob extends Record<any, any>>(\n inputMapping: InputMapping<Ob>,\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(\n InputMappingContext.Provider,\n {\n value: inputMapping,\n },\n props.children,\n );\n\n const useInputMapping = () => useContext(InputMappingContext);\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as unknown as createFormInstantContainerReturn<Ob>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n const InputMapping = useContext(InputMappingContext);\n\n const type = formProps.fieldType;\n\n const Element = InputMapping.get(type);\n\n if (!Element) return null;\n\n return createElement(Element, formProps);\n};\n",
8
+ "import { useCallback, useState } from 'react';\nimport { ParsedField } from './types';\n\nexport const useFormInstantField = <P extends ParsedField<unknown, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values((prop.schema as P['schema']) || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max].includes(fiends.length)) setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n",
9
+ "import { useReducer, useRef, useContext } from 'react';\nimport { InputMapping } from './class';\n\nexport function createInputMappingHook<Ob extends Record<string, any>>(\n InputMappingContext: React.Context<InputMapping<Ob> | null>,\n) {\n return function useInputMapping() {\n const initialState = useContext(InputMappingContext);\n if (!initialState) throw new Error('InputMappingContext not found');\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n return {\n ...mapRef.current,\n set: (key: keyof Ob | string, value: React.FC<any>) => {\n const result = mapRef.current.set(key, value);\n reRender();\n return result;\n },\n clear: () => {\n mapRef.current.clear();\n reRender();\n },\n delete: (key: keyof Ob | string) => {\n const result = mapRef.current.delete(key);\n reRender();\n return result;\n },\n };\n };\n}\n"
10
+ ],
11
+ "mappings": "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",
12
+ "debugId": "C50C3835C1CFBF1864756E2164756E21",
13
+ "names": []
14
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@form-instant/react-input-mapping",
3
- "version": "1.7.7-rc.1",
3
+ "version": "1.9.0",
4
4
  "author": {
5
5
  "name": "leomerida15",
6
6
  "email": "dimasmerida15@gmail.com",
@@ -11,69 +11,65 @@
11
11
  "url": "git+https://github.com/leomerida15/form-instant-react-mapping.git"
12
12
  },
13
13
  "main": "dist/index.js",
14
- "module": "dist/react-input-mapping.esm.js",
14
+ "module": "dist/index.js",
15
15
  "devDependencies": {
16
- "@size-limit/preset-small-lib": "^11.1.4",
17
- "@tsconfig/recommended": "^1.0.7",
18
- "@tsconfig/vite-react": "^3.0.2",
19
- "@types/bun": "^1.1.8",
16
+ "@size-limit/preset-small-lib": "^11.2.0",
17
+ "@testing-library/jest-dom": "^6.7.0",
18
+ "@tsconfig/recommended": "^1.0.10",
19
+ "@tsconfig/vite-react": "^3.4.0",
20
+ "@types/bun": "^1.2.20",
21
+ "@types/jest": "^29.5.14",
20
22
  "@types/minimatch": "^5.1.2",
21
- "@types/react": "^18.3.12",
22
- "dts-cli": "^2.0.5",
23
- "eslint-plugin-prettier": "^5.2.1",
24
- "husky": "^9.1.5",
25
- "nodemon": "^3.1.4",
26
- "prettier": "^3.3.3",
27
- "size-limit": "^11.1.4",
28
- "tslib": "^2.7.0",
29
- "typescript": "^5.5.4"
23
+ "@types/react": "^18.3.23",
24
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
25
+ "@typescript-eslint/parser": "^7.18.0",
26
+ "docsify": "^4.13.1",
27
+ "eslint": "^8.57.1",
28
+ "eslint-plugin-prettier": "^5.5.4",
29
+ "eslint-plugin-react": "^7.37.5",
30
+ "eslint-plugin-react-hooks": "^4.6.2",
31
+ "husky": "^9.1.7",
32
+ "jest": "^29.7.0",
33
+ "jest-environment-jsdom": "^29.7.0",
34
+ "prettier": "^3.6.2",
35
+ "ts-jest": "^29.4.1",
36
+ "tslib": "^2.8.1",
37
+ "typescript": "^5.9.2"
30
38
  },
31
39
  "peerDependencies": {
32
- "react": ">=16"
40
+ "react": "^19.1.0"
33
41
  },
34
42
  "engines": {
35
- "node": ">=12"
43
+ "node": ">=18",
44
+ "bun": ">=1.0.0"
36
45
  },
37
46
  "files": [
38
47
  "dist"
39
48
  ],
40
49
  "homepage": "https://leomerida15.github.io/form-instant-react-mapping",
41
- "husky": {
42
- "hooks": {
43
- "pre-commit": "dts lint"
44
- }
45
- },
46
50
  "jest": {
47
51
  "testEnvironment": "jsdom"
48
52
  },
49
53
  "keywords": [
50
54
  "@form-instant",
51
55
  "react",
52
- "mapping"
56
+ "mapping",
57
+ "form"
53
58
  ],
54
59
  "license": "MIT",
55
60
  "scripts": {
56
- "analyze": "size-limit --why",
57
- "build": "dts build",
58
- "lint": "dts lint",
59
- "prepare": "dts build",
60
- "size": "size-limit",
61
- "start": "dts watch",
62
- "test": "dts test --passWithNoTests",
61
+ "build": "bun run bunpack.build.ts",
62
+ "build:types": "bun x tsc --project tsconfig.build.json",
63
+ "lint": "eslint src",
64
+ "lint:fix": "eslint src --fix",
65
+ "start": "bun run bunpack.watch.ts",
66
+ "watch": "bun run bunpack.watch.ts --build",
67
+ "test": "jest --passWithNoTests",
68
+ "docs": "bun run docs-serve.ts",
69
+ "docs:dev": "bun run docs.watch.ts",
63
70
  "Up": "npm publish --access public",
64
- "Up:rc": "npm publish --access public --tag rc",
65
- "doc:build": "bun nodemon --config docs/nodemon.json"
71
+ "Up:rc": "npm publish --access public --tag rc"
66
72
  },
67
- "size-limit": [
68
- {
69
- "path": "dist/react-input-mapping.cjs.production.min.js",
70
- "limit": "10 KB"
71
- },
72
- {
73
- "path": "dist/react-input-mapping.esm.js",
74
- "limit": "10 KB"
75
- }
76
- ],
77
73
  "typings": "dist/index.d.ts",
78
74
  "dependencies": {
79
75
  "minimatch": "^10.0.3"
@@ -1,267 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
-
5
- function _arrayLikeToArray(r, a) {
6
- (null == a || a > r.length) && (a = r.length);
7
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
8
- return n;
9
- }
10
- function _assertThisInitialized(e) {
11
- if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
12
- return e;
13
- }
14
- function _construct(t, e, r) {
15
- if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
16
- var o = [null];
17
- o.push.apply(o, e);
18
- var p = new (t.bind.apply(t, o))();
19
- return r && _setPrototypeOf(p, r.prototype), p;
20
- }
21
- function _createForOfIteratorHelperLoose(r, e) {
22
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
23
- if (t) return (t = t.call(r)).next.bind(t);
24
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
25
- t && (r = t);
26
- var o = 0;
27
- return function () {
28
- return o >= r.length ? {
29
- done: !0
30
- } : {
31
- done: !1,
32
- value: r[o++]
33
- };
34
- };
35
- }
36
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
37
- }
38
- function _extends() {
39
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
40
- for (var e = 1; e < arguments.length; e++) {
41
- var t = arguments[e];
42
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
43
- }
44
- return n;
45
- }, _extends.apply(null, arguments);
46
- }
47
- function _getPrototypeOf(t) {
48
- return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
49
- return t.__proto__ || Object.getPrototypeOf(t);
50
- }, _getPrototypeOf(t);
51
- }
52
- function _inheritsLoose(t, o) {
53
- t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
54
- }
55
- function _isNativeFunction(t) {
56
- try {
57
- return -1 !== Function.toString.call(t).indexOf("[native code]");
58
- } catch (n) {
59
- return "function" == typeof t;
60
- }
61
- }
62
- function _isNativeReflectConstruct() {
63
- try {
64
- var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
65
- } catch (t) {}
66
- return (_isNativeReflectConstruct = function () {
67
- return !!t;
68
- })();
69
- }
70
- function _objectWithoutPropertiesLoose(r, e) {
71
- if (null == r) return {};
72
- var t = {};
73
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
74
- if (-1 !== e.indexOf(n)) continue;
75
- t[n] = r[n];
76
- }
77
- return t;
78
- }
79
- function _setPrototypeOf(t, e) {
80
- return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
81
- return t.__proto__ = e, t;
82
- }, _setPrototypeOf(t, e);
83
- }
84
- function _unsupportedIterableToArray(r, a) {
85
- if (r) {
86
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
87
- var t = {}.toString.call(r).slice(8, -1);
88
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
89
- }
90
- }
91
- function _wrapNativeSuper(t) {
92
- var r = "function" == typeof Map ? new Map() : void 0;
93
- return _wrapNativeSuper = function (t) {
94
- if (null === t || !_isNativeFunction(t)) return t;
95
- if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
96
- if (void 0 !== r) {
97
- if (r.has(t)) return r.get(t);
98
- r.set(t, Wrapper);
99
- }
100
- function Wrapper() {
101
- return _construct(t, arguments, _getPrototypeOf(this).constructor);
102
- }
103
- return Wrapper.prototype = Object.create(t.prototype, {
104
- constructor: {
105
- value: Wrapper,
106
- enumerable: !1,
107
- writable: !0,
108
- configurable: !0
109
- }
110
- }), _setPrototypeOf(Wrapper, t);
111
- }, _wrapNativeSuper(t);
112
- }
113
-
114
- var InputMapping = /*#__PURE__*/function (_Map) {
115
- function InputMapping(obj) {
116
- var _this;
117
- _this = _Map.call(this) || this;
118
- if (!obj) return _assertThisInitialized(_this);
119
- _this.appendObj(obj);
120
- return _this;
121
- }
122
- _inheritsLoose(InputMapping, _Map);
123
- var _proto = InputMapping.prototype;
124
- _proto.zodAdacter = function zodAdacter() {
125
- return Object.entries({
126
- ZodBoolean: 'checkbox',
127
- ZodDate: 'date',
128
- ZodEnum: 'select',
129
- ZodNativeEnum: 'select',
130
- ZodNumber: 'number',
131
- string: 'text'
132
- });
133
- };
134
- _proto.appendObj = function appendObj(obj) {
135
- var keys = Object.keys(obj);
136
- for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
137
- var key = _keys[_i];
138
- var value = obj[key];
139
- if (value && key in {}) {
140
- this.set(key, value);
141
- } else if (value) {
142
- this.set(key, value);
143
- }
144
- }
145
- for (var _iterator = _createForOfIteratorHelperLoose(this.zodAdacter()), _step; !(_step = _iterator()).done;) {
146
- var _step$value = _step.value,
147
- k = _step$value[0],
148
- v = _step$value[1];
149
- var existingValue = this.get(v);
150
- if (existingValue) {
151
- this.set(k, existingValue);
152
- }
153
- }
154
- };
155
- _proto.exists = function exists(k) {
156
- var isHas = _Map.prototype.has.call(this, k);
157
- if (!isHas) return 'fallback';
158
- return k;
159
- };
160
- _proto.get = function get(k) {
161
- return _Map.prototype.get.call(this, k);
162
- };
163
- _proto.set = function set(k, v) {
164
- if (!_Map.prototype.has.call(this, k)) _Map.prototype.set.call(this, k, v);
165
- return this;
166
- };
167
- _proto["extends"] = function _extends$1(cb) {
168
- var obj = Object.fromEntries(_Map.prototype.entries.call(this));
169
- var extendObj = cb(this);
170
- return new InputMapping(_extends({}, obj, extendObj));
171
- };
172
- return InputMapping;
173
- }(/*#__PURE__*/_wrapNativeSuper(Map));
174
-
175
- var InputMappingContext = /*#__PURE__*/react.createContext(null);
176
-
177
- var createFormInstantContainer = function createFormInstantContainer(inputMapping) {
178
- var FormInstantInputsProvider = function FormInstantInputsProvider(props) {
179
- return react.createElement(InputMappingContext.Provider, {
180
- value: inputMapping,
181
- children: props.children
182
- });
183
- };
184
- var useInputMapping = function useInputMapping() {
185
- return react.useContext(InputMappingContext);
186
- };
187
- return {
188
- FormInstantInputsProvider: FormInstantInputsProvider,
189
- useInputMapping: useInputMapping
190
- };
191
- };
192
- var ElementMapping = function ElementMapping(_ref) {
193
- var _formProps$fieldConfi;
194
- var formProps = _ref.formProps;
195
- if (!InputMappingContext) return null;
196
- var InputMapping = react.useContext(InputMappingContext);
197
- var type = ((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type;
198
- var Element = InputMapping.get(type);
199
- if (!Element) return null;
200
- return react.createElement(Element, formProps);
201
- };
202
-
203
- var _excluded = ["fieldConfig", "name"];
204
- var useFormInstantField = function useFormInstantField(_ref) {
205
- var fieldConfig = _ref.fieldConfig,
206
- name = _ref.name,
207
- prop = _objectWithoutPropertiesLoose(_ref, _excluded);
208
- var _useState = react.useState(Object.values(prop.schema || {})),
209
- fiends = _useState[0],
210
- setFiends = _useState[1];
211
- var append = react.useCallback(function () {
212
- if (![fieldConfig == null ? void 0 : fieldConfig.max].includes(fiends.length)) setFiends(function (pre) {
213
- return [].concat(pre, [pre[0]]);
214
- });
215
- }, [fiends, fieldConfig == null ? void 0 : fieldConfig.max]);
216
- var remove = react.useCallback(function (index) {
217
- if (![fieldConfig == null ? void 0 : fieldConfig.min].includes(fiends.length)) setFiends(function (pre) {
218
- return pre.filter(function (_, i) {
219
- return i !== index;
220
- });
221
- });
222
- }, [fiends, fieldConfig == null ? void 0 : fieldConfig.min]);
223
- return _extends({
224
- fiends: fiends,
225
- append: append,
226
- remove: remove,
227
- setFiends: setFiends,
228
- fieldConfig: fieldConfig,
229
- name: name
230
- }, prop);
231
- };
232
-
233
- function createInputMappingHook(InputMappingContext) {
234
- return function useInputMapping() {
235
- var initialState = react.useContext(InputMappingContext);
236
- if (!initialState) throw new Error('InputMappingContext not found');
237
- var mapRef = react.useRef(initialState);
238
- var _useReducer = react.useReducer(function (x) {
239
- return x + 1;
240
- }, 0),
241
- reRender = _useReducer[1];
242
- return _extends({}, mapRef.current, {
243
- set: function set(key, value) {
244
- var result = mapRef.current.set(key, value);
245
- reRender();
246
- return result;
247
- },
248
- clear: function clear() {
249
- mapRef.current.clear();
250
- reRender();
251
- },
252
- "delete": function _delete(key) {
253
- var result = mapRef.current["delete"](key);
254
- reRender();
255
- return result;
256
- }
257
- });
258
- };
259
- }
260
-
261
- exports.ElementMapping = ElementMapping;
262
- exports.InputMapping = InputMapping;
263
- exports.InputMappingContext = InputMappingContext;
264
- exports.createFormInstantContainer = createFormInstantContainer;
265
- exports.createInputMappingHook = createInputMappingHook;
266
- exports.useFormInstantField = useFormInstantField;
267
- //# sourceMappingURL=react-input-mapping.cjs.development.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-input-mapping.cjs.development.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useFormInstantField.tsx","../src/InputMapping/useInputMapping.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\n\n// Nuevo tipo auxiliar para mapear cada clave a su componente correspondiente\n// Ahora el value depende de la key: si es de Ob, es FC<Ob[K]>; si es de INPUT_COMPONENTS_KEYS, es FC<any>\ntype InputComponentMap<Ob extends Record<string, any>> = {\n [K in keyof Ob]?: FC<ParsedField<Ob[K]>>;\n} & {\n [K in INPUT_COMPONENTS_KEYS]?: FC<any>;\n};\n\nexport class InputMapping<Ob extends Record<string, any>> extends Map<\n keyof Ob | INPUT_COMPONENTS_KEYS,\n FC<any>\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<InputComponentMap<Ob>>) {\n const keys = Object.keys(obj) as Array<keyof typeof obj>;\n\n for (const key of keys) {\n const value = obj[key];\n if (value && (key as string) in ({} as Ob)) {\n this.set(key as keyof Ob, value as FC<Ob[keyof Ob]>);\n } else if (value) {\n this.set(key as INPUT_COMPONENTS_KEYS, value as FC<any>);\n }\n }\n\n for (const [k, v] of this.zodAdacter()) {\n const existingValue = this.get(v as INPUT_COMPONENTS_KEYS);\n if (existingValue) {\n this.set(k as INPUT_COMPONENTS_KEYS, existingValue);\n }\n }\n }\n\n constructor(obj?: Partial<InputComponentMap<Ob>>) {\n super();\n if (!obj) return;\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as keyof Ob | INPUT_COMPONENTS_KEYS);\n if (!isHas) return 'fallback';\n return k as keyof Ob | INPUT_COMPONENTS_KEYS;\n }\n\n get<Ky extends keyof Ob | INPUT_COMPONENTS_KEYS>(k: Ky) {\n return super.get(k);\n }\n\n set<K extends keyof Ob>(k: K, v: FC<Ob[K]>): this;\n set<K extends INPUT_COMPONENTS_KEYS>(k: K, v: FC<any>): this;\n set(k: keyof Ob | INPUT_COMPONENTS_KEYS, v: FC<any>): this {\n if (!super.has(k)) super.set(k, v);\n return this;\n }\n\n extends<Ext extends Record<string, FC<any>>>(\n cb: (mapping: InputMapping<Ob & { [K in keyof Ext]: any }>) => Ext,\n ) {\n const obj = Object.fromEntries(super.entries()) as Partial<InputComponentMap<Ob>>;\n const extendObj = cb(this as InputMapping<Ob & { [K in keyof Ext]: any }>) as Partial<\n InputComponentMap<{ [K in keyof Ext]: any }>\n >;\n return new InputMapping<Ob & { [K in keyof Ext]: any }>({\n ...(obj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n ...(extendObj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n });\n }\n}\n","import { createContext } from 'react';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping<any> | null>(null) as React.Context<\n InputMapping<any>\n>;\n","import { Context, createElement, FC, ReactNode, useContext } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { ObBase, ParsedField } from './types';\n\ntype FCC = React.FC<{ children: ReactNode }>;\n\ninterface createFormInstantContainerReturn<Ob extends Record<ObBase, any>> {\n useInputMapping: Context<InputMapping<Ob>>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <Ob extends Record<any, any>>(\n inputMapping: InputMapping<Ob>\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping,\n children: props.children,\n });\n\n const useInputMapping = () => useContext(InputMappingContext);\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as unknown as createFormInstantContainerReturn<Ob>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n if (!InputMappingContext) return null;\n\n const InputMapping = useContext(InputMappingContext);\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<unknown, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values((prop.schema as P['schema']) || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max].includes(fiends.length)) setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n","import { useReducer, useRef, useContext } from 'react';\nimport { InputMapping } from './class';\n\nexport function createInputMappingHook<Ob extends Record<string, any>>(\n InputMappingContext: React.Context<InputMapping<Ob> | null>,\n) {\n return function useInputMapping() {\n const initialState = useContext(InputMappingContext);\n if (!initialState) throw new Error('InputMappingContext not found');\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n return {\n ...mapRef.current,\n set: (key: keyof Ob | string, value: React.FC<any>) => {\n const result = mapRef.current.set(key, value);\n reRender();\n return result;\n },\n clear: () => {\n mapRef.current.clear();\n reRender();\n },\n delete: (key: keyof Ob | string) => {\n const result = mapRef.current.delete(key);\n reRender();\n return result;\n },\n };\n };\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","value","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","k","v","existingValue","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","useInputMapping","useContext","ElementMapping","_ref","_formProps$fieldConfi","formProps","type","fieldConfig","Element","useFormInstantField","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","includes","pre","concat","remove","index","min","filter","_","i","_extends","createInputMappingHook","initialState","Error","mapRef","useRef","_useReducer","useReducer","x","reRender","current","result","clear","delete"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";var t=require("react");function e(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 n(){return n=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},n.apply(null,arguments)}function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}function o(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch(t){}return(o=function(){return!!t})()}function u(t,e){return u=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},u(t,e)}function i(t){var e="function"==typeof Map?new Map:void 0;return i=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(o())return Reflect.construct.apply(null,arguments);var r=[null];r.push.apply(r,e);var i=new(t.bind.apply(t,r));return n&&u(i,n.prototype),i}(t,arguments,r(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),u(n,t)},i(t)}var a=function(t){function r(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,i;i=t,(o=r).prototype=Object.create(i.prototype),o.prototype.constructor=o,u(o,i);var a=r.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 n=0,r=Object.keys(t);n<r.length;n++){var o=r[n],u=t[o];(u&&o in{}||u)&&this.set(o,u)}for(var i,a=function(t){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(n)return(n=n.call(t)).next.bind(n);if(Array.isArray(t)||(n=function(t,n){if(t){if("string"==typeof t)return e(t,n);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)?e(t,n):void 0}}(t))){n&&(t=n);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());!(i=a()).done;){var c=i.value,l=c[0],f=this.get(c[1]);f&&this.set(l,f)}},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(e){return new r(n({},Object.fromEntries(t.prototype.entries.call(this)),e(this)))},r}(i(Map)),c=t.createContext(null),l=["fieldConfig","name"];exports.ElementMapping=function(e){var n,r=e.formProps;if(!c)return null;var o=t.useContext(c),u=(null==(n=r.fieldConfig)?void 0:n.type)||r.type,i=o.get(u);return i?t.createElement(i,r):null},exports.InputMapping=a,exports.InputMappingContext=c,exports.createFormInstantContainer=function(e){return{FormInstantInputsProvider:function(n){return t.createElement(c.Provider,{value:e,children:n.children})},useInputMapping:function(){return t.useContext(c)}}},exports.createInputMappingHook=function(e){return function(){var r=t.useContext(e);if(!r)throw new Error("InputMappingContext not found");var o=t.useRef(r),u=t.useReducer(function(t){return t+1},0)[1];return n({},o.current,{set:function(t,e){var n=o.current.set(t,e);return u(),n},clear:function(){o.current.clear(),u()},delete:function(t){var e=o.current.delete(t);return u(),e}})}},exports.useFormInstantField=function(e){var r=e.fieldConfig,o=e.name,u=function(t,e){if(null==t)return{};var n={};for(var r in t)if({}.hasOwnProperty.call(t,r)){if(-1!==e.indexOf(r))continue;n[r]=t[r]}return n}(e,l),i=t.useState(Object.values(u.schema||{})),a=i[0],c=i[1],f=t.useCallback(function(){[null==r?void 0:r.max].includes(a.length)||c(function(t){return[].concat(t,[t[0]])})},[a,null==r?void 0:r.max]),s=t.useCallback(function(t){[null==r?void 0:r.min].includes(a.length)||c(function(e){return e.filter(function(e,n){return n!==t})})},[a,null==r?void 0:r.min]);return n({fiends:a,append:f,remove:s,setFiends:c,fieldConfig:r,name:o},u)};
2
- //# sourceMappingURL=react-input-mapping.cjs.production.min.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-input-mapping.cjs.production.min.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useInputMapping.tsx","../src/InputMapping/useFormInstantField.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\n\n// Nuevo tipo auxiliar para mapear cada clave a su componente correspondiente\n// Ahora el value depende de la key: si es de Ob, es FC<Ob[K]>; si es de INPUT_COMPONENTS_KEYS, es FC<any>\ntype InputComponentMap<Ob extends Record<string, any>> = {\n [K in keyof Ob]?: FC<ParsedField<Ob[K]>>;\n} & {\n [K in INPUT_COMPONENTS_KEYS]?: FC<any>;\n};\n\nexport class InputMapping<Ob extends Record<string, any>> extends Map<\n keyof Ob | INPUT_COMPONENTS_KEYS,\n FC<any>\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<InputComponentMap<Ob>>) {\n const keys = Object.keys(obj) as Array<keyof typeof obj>;\n\n for (const key of keys) {\n const value = obj[key];\n if (value && (key as string) in ({} as Ob)) {\n this.set(key as keyof Ob, value as FC<Ob[keyof Ob]>);\n } else if (value) {\n this.set(key as INPUT_COMPONENTS_KEYS, value as FC<any>);\n }\n }\n\n for (const [k, v] of this.zodAdacter()) {\n const existingValue = this.get(v as INPUT_COMPONENTS_KEYS);\n if (existingValue) {\n this.set(k as INPUT_COMPONENTS_KEYS, existingValue);\n }\n }\n }\n\n constructor(obj?: Partial<InputComponentMap<Ob>>) {\n super();\n if (!obj) return;\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as keyof Ob | INPUT_COMPONENTS_KEYS);\n if (!isHas) return 'fallback';\n return k as keyof Ob | INPUT_COMPONENTS_KEYS;\n }\n\n get<Ky extends keyof Ob | INPUT_COMPONENTS_KEYS>(k: Ky) {\n return super.get(k);\n }\n\n set<K extends keyof Ob>(k: K, v: FC<Ob[K]>): this;\n set<K extends INPUT_COMPONENTS_KEYS>(k: K, v: FC<any>): this;\n set(k: keyof Ob | INPUT_COMPONENTS_KEYS, v: FC<any>): this {\n if (!super.has(k)) super.set(k, v);\n return this;\n }\n\n extends<Ext extends Record<string, FC<any>>>(\n cb: (mapping: InputMapping<Ob & { [K in keyof Ext]: any }>) => Ext,\n ) {\n const obj = Object.fromEntries(super.entries()) as Partial<InputComponentMap<Ob>>;\n const extendObj = cb(this as InputMapping<Ob & { [K in keyof Ext]: any }>) as Partial<\n InputComponentMap<{ [K in keyof Ext]: any }>\n >;\n return new InputMapping<Ob & { [K in keyof Ext]: any }>({\n ...(obj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n ...(extendObj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n });\n }\n}\n","import { createContext } from 'react';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping<any> | null>(null) as React.Context<\n InputMapping<any>\n>;\n","import { Context, createElement, FC, ReactNode, useContext } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { ObBase, ParsedField } from './types';\n\ntype FCC = React.FC<{ children: ReactNode }>;\n\ninterface createFormInstantContainerReturn<Ob extends Record<ObBase, any>> {\n useInputMapping: Context<InputMapping<Ob>>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <Ob extends Record<any, any>>(\n inputMapping: InputMapping<Ob>\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping,\n children: props.children,\n });\n\n const useInputMapping = () => useContext(InputMappingContext);\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as unknown as createFormInstantContainerReturn<Ob>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n if (!InputMappingContext) return null;\n\n const InputMapping = useContext(InputMappingContext);\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 { useReducer, useRef, useContext } from 'react';\nimport { InputMapping } from './class';\n\nexport function createInputMappingHook<Ob extends Record<string, any>>(\n InputMappingContext: React.Context<InputMapping<Ob> | null>,\n) {\n return function useInputMapping() {\n const initialState = useContext(InputMappingContext);\n if (!initialState) throw new Error('InputMappingContext not found');\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n return {\n ...mapRef.current,\n set: (key: keyof Ob | string, value: React.FC<any>) => {\n const result = mapRef.current.set(key, value);\n reRender();\n return result;\n },\n clear: () => {\n mapRef.current.clear();\n reRender();\n },\n delete: (key: keyof Ob | string) => {\n const result = mapRef.current.delete(key);\n reRender();\n return result;\n },\n };\n };\n}\n","import { useCallback, useState } from 'react';\nimport { ParsedField } from './types';\n\nexport const useFormInstantField = <P extends ParsedField<unknown, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values((prop.schema as P['schema']) || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max].includes(fiends.length)) setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min],\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","value","set","_step","_iterator","_createForOfIteratorHelperLoose","done","_step$value","k","existingValue","get","exists","has","v","cb","_extends2","fromEntries","_wrapNativeSuper","Map","InputMappingContext","createContext","_ref","_formProps$fieldConfi","formProps","useContext","type","fieldConfig","Element","createElement","inputMapping","FormInstantInputsProvider","props","Provider","children","useInputMapping","initialState","Error","mapRef","useRef","reRender","useReducer","x","_extends","current","result","clear","delete","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","includes","pre","concat","remove","index","min","filter","_","i"],"mappings":"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"}
@@ -1,260 +0,0 @@
1
- import { createContext, useContext, createElement, useState, useCallback, useRef, useReducer } from 'react';
2
-
3
- function _arrayLikeToArray(r, a) {
4
- (null == a || a > r.length) && (a = r.length);
5
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
6
- return n;
7
- }
8
- function _assertThisInitialized(e) {
9
- if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
10
- return e;
11
- }
12
- function _construct(t, e, r) {
13
- if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);
14
- var o = [null];
15
- o.push.apply(o, e);
16
- var p = new (t.bind.apply(t, o))();
17
- return r && _setPrototypeOf(p, r.prototype), p;
18
- }
19
- function _createForOfIteratorHelperLoose(r, e) {
20
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
21
- if (t) return (t = t.call(r)).next.bind(t);
22
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
23
- t && (r = t);
24
- var o = 0;
25
- return function () {
26
- return o >= r.length ? {
27
- done: !0
28
- } : {
29
- done: !1,
30
- value: r[o++]
31
- };
32
- };
33
- }
34
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
35
- }
36
- function _extends() {
37
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
38
- for (var e = 1; e < arguments.length; e++) {
39
- var t = arguments[e];
40
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
41
- }
42
- return n;
43
- }, _extends.apply(null, arguments);
44
- }
45
- function _getPrototypeOf(t) {
46
- return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {
47
- return t.__proto__ || Object.getPrototypeOf(t);
48
- }, _getPrototypeOf(t);
49
- }
50
- function _inheritsLoose(t, o) {
51
- t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
52
- }
53
- function _isNativeFunction(t) {
54
- try {
55
- return -1 !== Function.toString.call(t).indexOf("[native code]");
56
- } catch (n) {
57
- return "function" == typeof t;
58
- }
59
- }
60
- function _isNativeReflectConstruct() {
61
- try {
62
- var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));
63
- } catch (t) {}
64
- return (_isNativeReflectConstruct = function () {
65
- return !!t;
66
- })();
67
- }
68
- function _objectWithoutPropertiesLoose(r, e) {
69
- if (null == r) return {};
70
- var t = {};
71
- for (var n in r) if ({}.hasOwnProperty.call(r, n)) {
72
- if (-1 !== e.indexOf(n)) continue;
73
- t[n] = r[n];
74
- }
75
- return t;
76
- }
77
- function _setPrototypeOf(t, e) {
78
- return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
79
- return t.__proto__ = e, t;
80
- }, _setPrototypeOf(t, e);
81
- }
82
- function _unsupportedIterableToArray(r, a) {
83
- if (r) {
84
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
85
- var t = {}.toString.call(r).slice(8, -1);
86
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
87
- }
88
- }
89
- function _wrapNativeSuper(t) {
90
- var r = "function" == typeof Map ? new Map() : void 0;
91
- return _wrapNativeSuper = function (t) {
92
- if (null === t || !_isNativeFunction(t)) return t;
93
- if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function");
94
- if (void 0 !== r) {
95
- if (r.has(t)) return r.get(t);
96
- r.set(t, Wrapper);
97
- }
98
- function Wrapper() {
99
- return _construct(t, arguments, _getPrototypeOf(this).constructor);
100
- }
101
- return Wrapper.prototype = Object.create(t.prototype, {
102
- constructor: {
103
- value: Wrapper,
104
- enumerable: !1,
105
- writable: !0,
106
- configurable: !0
107
- }
108
- }), _setPrototypeOf(Wrapper, t);
109
- }, _wrapNativeSuper(t);
110
- }
111
-
112
- var InputMapping = /*#__PURE__*/function (_Map) {
113
- function InputMapping(obj) {
114
- var _this;
115
- _this = _Map.call(this) || this;
116
- if (!obj) return _assertThisInitialized(_this);
117
- _this.appendObj(obj);
118
- return _this;
119
- }
120
- _inheritsLoose(InputMapping, _Map);
121
- var _proto = InputMapping.prototype;
122
- _proto.zodAdacter = function zodAdacter() {
123
- return Object.entries({
124
- ZodBoolean: 'checkbox',
125
- ZodDate: 'date',
126
- ZodEnum: 'select',
127
- ZodNativeEnum: 'select',
128
- ZodNumber: 'number',
129
- string: 'text'
130
- });
131
- };
132
- _proto.appendObj = function appendObj(obj) {
133
- var keys = Object.keys(obj);
134
- for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {
135
- var key = _keys[_i];
136
- var value = obj[key];
137
- if (value && key in {}) {
138
- this.set(key, value);
139
- } else if (value) {
140
- this.set(key, value);
141
- }
142
- }
143
- for (var _iterator = _createForOfIteratorHelperLoose(this.zodAdacter()), _step; !(_step = _iterator()).done;) {
144
- var _step$value = _step.value,
145
- k = _step$value[0],
146
- v = _step$value[1];
147
- var existingValue = this.get(v);
148
- if (existingValue) {
149
- this.set(k, existingValue);
150
- }
151
- }
152
- };
153
- _proto.exists = function exists(k) {
154
- var isHas = _Map.prototype.has.call(this, k);
155
- if (!isHas) return 'fallback';
156
- return k;
157
- };
158
- _proto.get = function get(k) {
159
- return _Map.prototype.get.call(this, k);
160
- };
161
- _proto.set = function set(k, v) {
162
- if (!_Map.prototype.has.call(this, k)) _Map.prototype.set.call(this, k, v);
163
- return this;
164
- };
165
- _proto["extends"] = function _extends$1(cb) {
166
- var obj = Object.fromEntries(_Map.prototype.entries.call(this));
167
- var extendObj = cb(this);
168
- return new InputMapping(_extends({}, obj, extendObj));
169
- };
170
- return InputMapping;
171
- }(/*#__PURE__*/_wrapNativeSuper(Map));
172
-
173
- var InputMappingContext = /*#__PURE__*/createContext(null);
174
-
175
- var createFormInstantContainer = function createFormInstantContainer(inputMapping) {
176
- var FormInstantInputsProvider = function FormInstantInputsProvider(props) {
177
- return createElement(InputMappingContext.Provider, {
178
- value: inputMapping,
179
- children: props.children
180
- });
181
- };
182
- var useInputMapping = function useInputMapping() {
183
- return useContext(InputMappingContext);
184
- };
185
- return {
186
- FormInstantInputsProvider: FormInstantInputsProvider,
187
- useInputMapping: useInputMapping
188
- };
189
- };
190
- var ElementMapping = function ElementMapping(_ref) {
191
- var _formProps$fieldConfi;
192
- var formProps = _ref.formProps;
193
- if (!InputMappingContext) return null;
194
- var InputMapping = useContext(InputMappingContext);
195
- var type = ((_formProps$fieldConfi = formProps.fieldConfig) == null ? void 0 : _formProps$fieldConfi.type) || formProps.type;
196
- var Element = InputMapping.get(type);
197
- if (!Element) return null;
198
- return createElement(Element, formProps);
199
- };
200
-
201
- var _excluded = ["fieldConfig", "name"];
202
- var useFormInstantField = function useFormInstantField(_ref) {
203
- var fieldConfig = _ref.fieldConfig,
204
- name = _ref.name,
205
- prop = _objectWithoutPropertiesLoose(_ref, _excluded);
206
- var _useState = useState(Object.values(prop.schema || {})),
207
- fiends = _useState[0],
208
- setFiends = _useState[1];
209
- var append = useCallback(function () {
210
- if (![fieldConfig == null ? void 0 : fieldConfig.max].includes(fiends.length)) setFiends(function (pre) {
211
- return [].concat(pre, [pre[0]]);
212
- });
213
- }, [fiends, fieldConfig == null ? void 0 : fieldConfig.max]);
214
- var remove = useCallback(function (index) {
215
- if (![fieldConfig == null ? void 0 : fieldConfig.min].includes(fiends.length)) setFiends(function (pre) {
216
- return pre.filter(function (_, i) {
217
- return i !== index;
218
- });
219
- });
220
- }, [fiends, fieldConfig == null ? void 0 : fieldConfig.min]);
221
- return _extends({
222
- fiends: fiends,
223
- append: append,
224
- remove: remove,
225
- setFiends: setFiends,
226
- fieldConfig: fieldConfig,
227
- name: name
228
- }, prop);
229
- };
230
-
231
- function createInputMappingHook(InputMappingContext) {
232
- return function useInputMapping() {
233
- var initialState = useContext(InputMappingContext);
234
- if (!initialState) throw new Error('InputMappingContext not found');
235
- var mapRef = useRef(initialState);
236
- var _useReducer = useReducer(function (x) {
237
- return x + 1;
238
- }, 0),
239
- reRender = _useReducer[1];
240
- return _extends({}, mapRef.current, {
241
- set: function set(key, value) {
242
- var result = mapRef.current.set(key, value);
243
- reRender();
244
- return result;
245
- },
246
- clear: function clear() {
247
- mapRef.current.clear();
248
- reRender();
249
- },
250
- "delete": function _delete(key) {
251
- var result = mapRef.current["delete"](key);
252
- reRender();
253
- return result;
254
- }
255
- });
256
- };
257
- }
258
-
259
- export { ElementMapping, InputMapping, InputMappingContext, createFormInstantContainer, createInputMappingHook, useFormInstantField };
260
- //# sourceMappingURL=react-input-mapping.esm.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-input-mapping.esm.js","sources":["../src/InputMapping/class.ts","../src/InputMapping/context.tsx","../src/InputMapping/provider.tsx","../src/InputMapping/useFormInstantField.tsx","../src/InputMapping/useInputMapping.tsx"],"sourcesContent":["import { FC } from 'react';\nimport { INPUT_COMPONENTS_KEYS, ParsedField } from './types';\n\n// Nuevo tipo auxiliar para mapear cada clave a su componente correspondiente\n// Ahora el value depende de la key: si es de Ob, es FC<Ob[K]>; si es de INPUT_COMPONENTS_KEYS, es FC<any>\ntype InputComponentMap<Ob extends Record<string, any>> = {\n [K in keyof Ob]?: FC<ParsedField<Ob[K]>>;\n} & {\n [K in INPUT_COMPONENTS_KEYS]?: FC<any>;\n};\n\nexport class InputMapping<Ob extends Record<string, any>> extends Map<\n keyof Ob | INPUT_COMPONENTS_KEYS,\n FC<any>\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<InputComponentMap<Ob>>) {\n const keys = Object.keys(obj) as Array<keyof typeof obj>;\n\n for (const key of keys) {\n const value = obj[key];\n if (value && (key as string) in ({} as Ob)) {\n this.set(key as keyof Ob, value as FC<Ob[keyof Ob]>);\n } else if (value) {\n this.set(key as INPUT_COMPONENTS_KEYS, value as FC<any>);\n }\n }\n\n for (const [k, v] of this.zodAdacter()) {\n const existingValue = this.get(v as INPUT_COMPONENTS_KEYS);\n if (existingValue) {\n this.set(k as INPUT_COMPONENTS_KEYS, existingValue);\n }\n }\n }\n\n constructor(obj?: Partial<InputComponentMap<Ob>>) {\n super();\n if (!obj) return;\n this.appendObj(obj);\n }\n\n exists(k: string) {\n const isHas = super.has(k as keyof Ob | INPUT_COMPONENTS_KEYS);\n if (!isHas) return 'fallback';\n return k as keyof Ob | INPUT_COMPONENTS_KEYS;\n }\n\n get<Ky extends keyof Ob | INPUT_COMPONENTS_KEYS>(k: Ky) {\n return super.get(k);\n }\n\n set<K extends keyof Ob>(k: K, v: FC<Ob[K]>): this;\n set<K extends INPUT_COMPONENTS_KEYS>(k: K, v: FC<any>): this;\n set(k: keyof Ob | INPUT_COMPONENTS_KEYS, v: FC<any>): this {\n if (!super.has(k)) super.set(k, v);\n return this;\n }\n\n extends<Ext extends Record<string, FC<any>>>(\n cb: (mapping: InputMapping<Ob & { [K in keyof Ext]: any }>) => Ext,\n ) {\n const obj = Object.fromEntries(super.entries()) as Partial<InputComponentMap<Ob>>;\n const extendObj = cb(this as InputMapping<Ob & { [K in keyof Ext]: any }>) as Partial<\n InputComponentMap<{ [K in keyof Ext]: any }>\n >;\n return new InputMapping<Ob & { [K in keyof Ext]: any }>({\n ...(obj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n ...(extendObj as Partial<InputComponentMap<Ob & { [K in keyof Ext]: any }>>),\n });\n }\n}\n","import { createContext } from 'react';\nimport { InputMapping } from './class';\n\nexport const InputMappingContext = createContext<InputMapping<any> | null>(null) as React.Context<\n InputMapping<any>\n>;\n","import { Context, createElement, FC, ReactNode, useContext } from 'react';\nimport { InputMapping } from './class';\nimport { InputMappingContext } from './context';\nimport { ObBase, ParsedField } from './types';\n\ntype FCC = React.FC<{ children: ReactNode }>;\n\ninterface createFormInstantContainerReturn<Ob extends Record<ObBase, any>> {\n useInputMapping: Context<InputMapping<Ob>>;\n FormInstantInputsProvider: FCC;\n}\n\nexport const createFormInstantContainer = <Ob extends Record<any, any>>(\n inputMapping: InputMapping<Ob>\n) => {\n const FormInstantInputsProvider: FCC = (props) =>\n createElement(InputMappingContext.Provider, {\n value: inputMapping,\n children: props.children,\n });\n\n const useInputMapping = () => useContext(InputMappingContext);\n\n return {\n FormInstantInputsProvider,\n useInputMapping,\n } as unknown as createFormInstantContainerReturn<Ob>;\n};\n\nexport const ElementMapping: FC<{ formProps: ParsedField<any, string> }> = ({ formProps }) => {\n if (!InputMappingContext) return null;\n\n const InputMapping = useContext(InputMappingContext);\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<unknown, string>>({\n fieldConfig,\n name,\n ...prop\n}: P) => {\n const [fiends, setFiends] = useState(Object.values((prop.schema as P['schema']) || {}));\n\n const append = useCallback(() => {\n if (![fieldConfig?.max].includes(fiends.length)) setFiends((pre) => [...pre, pre[0]]);\n }, [fiends, fieldConfig?.max]);\n\n const remove = useCallback(\n (index: number) => {\n if (![fieldConfig?.min].includes(fiends.length))\n setFiends((pre) => pre.filter((_, i) => i !== index));\n },\n [fiends, fieldConfig?.min],\n );\n\n return { fiends, append, remove, setFiends, fieldConfig, name, ...prop };\n};\n","import { useReducer, useRef, useContext } from 'react';\nimport { InputMapping } from './class';\n\nexport function createInputMappingHook<Ob extends Record<string, any>>(\n InputMappingContext: React.Context<InputMapping<Ob> | null>,\n) {\n return function useInputMapping() {\n const initialState = useContext(InputMappingContext);\n if (!initialState) throw new Error('InputMappingContext not found');\n const mapRef = useRef(initialState);\n const [, reRender] = useReducer((x) => x + 1, 0);\n\n return {\n ...mapRef.current,\n set: (key: keyof Ob | string, value: React.FC<any>) => {\n const result = mapRef.current.set(key, value);\n reRender();\n return result;\n },\n clear: () => {\n mapRef.current.clear();\n reRender();\n },\n delete: (key: keyof Ob | string) => {\n const result = mapRef.current.delete(key);\n reRender();\n return result;\n },\n };\n };\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","value","set","_iterator","_createForOfIteratorHelperLoose","_step","done","_step$value","k","v","existingValue","get","exists","isHas","has","extends","cb","fromEntries","extendObj","_extends2","_wrapNativeSuper","Map","InputMappingContext","createContext","createFormInstantContainer","inputMapping","FormInstantInputsProvider","props","createElement","Provider","children","useInputMapping","useContext","ElementMapping","_ref","_formProps$fieldConfi","formProps","type","fieldConfig","Element","useFormInstantField","name","prop","_objectWithoutPropertiesLoose","_excluded","_useState","useState","values","schema","fiends","setFiends","append","useCallback","max","includes","pre","concat","remove","index","min","filter","_","i","_extends","createInputMappingHook","initialState","Error","mapRef","useRef","_useReducer","useReducer","x","reRender","current","result","clear","delete"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWaA,IAAAA,YAA6C,0BAAAC,IAAA,EAAA;EAmCtD,SAAAD,YAAAA,CAAYE,GAAoC,EAAA;AAAA,IAAA,IAAAC,KAAA,CAAA;AAC5CA,IAAAA,KAAA,GAAAF,IAAA,CAAAG,IAAA,MAAO,IAAA,IAAA,CAAA;AACP,IAAA,IAAI,CAACF,GAAG,EAAE,OAAAG,sBAAA,CAAAF,KAAA,CAAA,CAAA;AACVA,IAAAA,KAAA,CAAKG,SAAS,CAACJ,GAAG,CAAC,CAAA;AAAC,IAAA,OAAAC,KAAA,CAAA;AACxB,GAAA;EAACI,cAAA,CAAAP,YAAA,EAAAC,IAAA,CAAA,CAAA;AAAA,EAAA,IAAAO,MAAA,GAAAR,YAAA,CAAAS,SAAA,CAAA;AAAAD,EAAAA,MAAA,CAnCOE,UAAU,GAAV,SAAAA,UAAUA,GAAA;IACd,OAAOC,MAAM,CAACC,OAAO,CAAC;AAClBC,MAAAA,UAAU,EAAE,UAAU;AACtBC,MAAAA,OAAO,EAAE,MAAM;AACfC,MAAAA,OAAO,EAAE,QAAQ;AACjBC,MAAAA,aAAa,EAAE,QAAQ;AACvBC,MAAAA,SAAS,EAAE,QAAQ;AACnBC,MAAAA,MAAM,EAAE,MAAA;AACX,KAAA,CAAC,CAAA;GACL,CAAA;AAAAV,EAAAA,MAAA,CAEOF,SAAS,GAAT,SAAAA,SAASA,CAACJ,GAAmC,EAAA;AACjD,IAAA,IAAMiB,IAAI,GAAGR,MAAM,CAACQ,IAAI,CAACjB,GAAG,CAA4B,CAAA;AAExD,IAAA,KAAA,IAAAkB,EAAA,GAAA,CAAA,EAAAC,KAAA,GAAkBF,IAAI,EAAAC,EAAA,GAAAC,KAAA,CAAAC,MAAA,EAAAF,EAAA,EAAE,EAAA;AAAnB,MAAA,IAAMG,GAAG,GAAAF,KAAA,CAAAD,EAAA,CAAA,CAAA;AACV,MAAA,IAAMI,KAAK,GAAGtB,GAAG,CAACqB,GAAG,CAAC,CAAA;AACtB,MAAA,IAAIC,KAAK,IAAKD,GAAc,IAAK,EAAS,EAAE;AACxC,QAAA,IAAI,CAACE,GAAG,CAACF,GAAe,EAAEC,KAAyB,CAAC,CAAA;OACvD,MAAM,IAAIA,KAAK,EAAE;AACd,QAAA,IAAI,CAACC,GAAG,CAACF,GAA4B,EAAEC,KAAgB,CAAC,CAAA;AAC5D,OAAA;AACJ,KAAA;AAEA,IAAA,KAAA,IAAAE,SAAA,GAAAC,+BAAA,CAAqB,IAAI,CAACjB,UAAU,EAAE,CAAA,EAAAkB,KAAA,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,EAAA,EAAAG,IAAA,GAAE;AAAA,MAAA,IAAAC,WAAA,GAAAF,KAAA,CAAAJ,KAAA;AAA5BO,QAAAA,CAAC,GAAAD,WAAA,CAAA,CAAA,CAAA;AAAEE,QAAAA,CAAC,GAAAF,WAAA,CAAA,CAAA,CAAA,CAAA;AACZ,MAAA,IAAMG,aAAa,GAAG,IAAI,CAACC,GAAG,CAACF,CAA0B,CAAC,CAAA;AAC1D,MAAA,IAAIC,aAAa,EAAE;AACf,QAAA,IAAI,CAACR,GAAG,CAACM,CAA0B,EAAEE,aAAa,CAAC,CAAA;AACvD,OAAA;AACJ,KAAA;GACH,CAAA;AAAAzB,EAAAA,MAAA,CAQD2B,MAAM,GAAN,SAAAA,MAAMA,CAACJ,CAAS,EAAA;IACZ,IAAMK,KAAK,GAAAnC,IAAA,CAAAQ,SAAA,CAAS4B,GAAG,CAAAjC,IAAA,CAAC2B,IAAAA,EAAAA,CAAqC,CAAC,CAAA;AAC9D,IAAA,IAAI,CAACK,KAAK,EAAE,OAAO,UAAU,CAAA;AAC7B,IAAA,OAAOL,CAAqC,CAAA;GAC/C,CAAA;AAAAvB,EAAAA,MAAA,CAED0B,GAAG,GAAH,SAAAA,GAAGA,CAA8CH,CAAK,EAAA;IAClD,OAAA9B,IAAA,CAAAQ,SAAA,CAAayB,GAAG,CAAA9B,IAAA,OAAC2B,CAAC,CAAA,CAAA;GACrB,CAAA;EAAAvB,MAAA,CAIDiB,GAAG,GAAH,SAAAA,GAAGA,CAACM,CAAmC,EAAEC,CAAU,EAAA;IAC/C,IAAI,CAAA/B,IAAA,CAAAQ,SAAA,CAAO4B,GAAG,CAAAjC,IAAA,CAAA,IAAA,EAAC2B,CAAC,CAAC,EAAE9B,IAAA,CAAAQ,SAAA,CAAMgB,GAAG,CAAArB,IAAA,CAAA,IAAA,EAAC2B,CAAC,EAAEC,CAAC,CAAA,CAAA;AACjC,IAAA,OAAO,IAAI,CAAA;GACd,CAAA;AAAAxB,EAAAA,MAAA,CAED,SAAA,CAAA,GAAA,SAAA8B,UAAOA,CACHC,EAAkE,EAAA;AAElE,IAAA,IAAMrC,GAAG,GAAGS,MAAM,CAAC6B,WAAW,CAAAvC,IAAA,CAAAQ,SAAA,CAAOG,OAAO,CAAAR,IAAA,MAAE,CAAmC,CAAA;AACjF,IAAA,IAAMqC,SAAS,GAAGF,EAAE,CAAC,IAAoD,CAExE,CAAA;IACD,OAAO,IAAIvC,YAAY,CAAA0C,QAAA,KACfxC,GAAkE,EAClEuC,SAAwE,CAC/E,CAAC,CAAA;GACL,CAAA;AAAA,EAAA,OAAAzC,YAAA,CAAA;AAAA,CAAA2C,cAAAA,gBAAA,CArE6DC,GAGjE,CAAA;;ICXYC,mBAAmB,gBAAGC,aAAa,CAA2B,IAAI;;ICSlEC,0BAA0B,GAAG,SAA7BA,0BAA0BA,CACrCC,YAA8B,EAC5B;AACF,EAAA,IAAMC,yBAAyB,GAAQ,SAAjCA,yBAAyBA,CAASC,KAAK,EAAA;AAAA,IAAA,OAC3CC,aAAa,CAACN,mBAAmB,CAACO,QAAQ,EAAE;AAC1C5B,MAAAA,KAAK,EAAEwB,YAAY;MACnBK,QAAQ,EAAEH,KAAK,CAACG,QAAAA;AACjB,KAAA,CAAC,CAAA;AAAA,GAAA,CAAA;AAEJ,EAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAAA;IAAA,OAASC,UAAU,CAACV,mBAAmB,CAAC,CAAA;AAAA,GAAA,CAAA;EAE7D,OAAO;AACLI,IAAAA,yBAAyB,EAAzBA,yBAAyB;AACzBK,IAAAA,eAAe,EAAfA,eAAAA;GACkD,CAAA;AACtD,EAAC;IAEYE,cAAc,GAAgD,SAA9DA,cAAcA,CAAAC,IAAA,EAAkE;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,IAAfC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAA;AACrF,EAAA,IAAI,CAACd,mBAAmB,EAAE,OAAO,IAAI,CAAA;AAErC,EAAA,IAAM7C,YAAY,GAAGuD,UAAU,CAACV,mBAAmB,CAAC,CAAA;AAEpD,EAAA,IAAMe,IAAI,GAAG,CAAAF,CAAAA,qBAAA,GAAAC,SAAS,CAACE,WAAW,KAAA,IAAA,GAAA,KAAA,CAAA,GAArBH,qBAAA,CAAuBE,IAAI,KAAID,SAAS,CAACC,IAAI,CAAA;AAE1D,EAAA,IAAME,OAAO,GAAG9D,YAAY,CAACkC,GAAG,CAAC0B,IAAI,CAAC,CAAA;AAEtC,EAAA,IAAI,CAACE,OAAO,EAAE,OAAO,IAAI,CAAA;AAEzB,EAAA,OAAOX,aAAa,CAACW,OAAO,EAAEH,SAAS,CAAC,CAAA;AAC1C;;;ICtCaI,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAN,IAAA,EAIxB;AAAA,EAAA,IAHJI,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXG,IAAI,GAAAP,IAAA,CAAJO,IAAI;AACDC,IAAAA,IAAI,GAAAC,6BAAA,CAAAT,IAAA,EAAAU,SAAA,CAAA,CAAA;AAEP,EAAA,IAAAC,SAAA,GAA4BC,QAAQ,CAAC1D,MAAM,CAAC2D,MAAM,CAAEL,IAAI,CAACM,MAAsB,IAAI,EAAE,CAAC,CAAC;AAAhFC,IAAAA,MAAM,GAAAJ,SAAA,CAAA,CAAA,CAAA;AAAEK,IAAAA,SAAS,GAAAL,SAAA,CAAA,CAAA,CAAA,CAAA;AAExB,EAAA,IAAMM,MAAM,GAAGC,WAAW,CAAC,YAAK;AAC5B,IAAA,IAAI,CAAC,CAACd,WAAW,oBAAXA,WAAW,CAAEe,GAAG,CAAC,CAACC,QAAQ,CAACL,MAAM,CAAClD,MAAM,CAAC,EAAEmD,SAAS,CAAC,UAACK,GAAG,EAAA;AAAA,MAAA,OAAA,EAAA,CAAAC,MAAA,CAASD,GAAG,GAAEA,GAAG,CAAC,CAAC,CAAC,CAAA,CAAA,CAAA;AAAA,KAAC,CAAC,CAAA;GACxF,EAAE,CAACN,MAAM,EAAEX,WAAW,oBAAXA,WAAW,CAAEe,GAAG,CAAC,CAAC,CAAA;AAE9B,EAAA,IAAMI,MAAM,GAAGL,WAAW,CACtB,UAACM,KAAa,EAAI;AACd,IAAA,IAAI,CAAC,CAACpB,WAAW,oBAAXA,WAAW,CAAEqB,GAAG,CAAC,CAACL,QAAQ,CAACL,MAAM,CAAClD,MAAM,CAAC,EAC3CmD,SAAS,CAAC,UAACK,GAAG,EAAA;AAAA,MAAA,OAAKA,GAAG,CAACK,MAAM,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;QAAA,OAAKA,CAAC,KAAKJ,KAAK,CAAA;OAAC,CAAA,CAAA;KAAC,CAAA,CAAA;GAC5D,EACD,CAACT,MAAM,EAAEX,WAAW,oBAAXA,WAAW,CAAEqB,GAAG,CAAC,CAC7B,CAAA;AAED,EAAA,OAAAI,QAAA,CAAA;AAASd,IAAAA,MAAM,EAANA,MAAM;AAAEE,IAAAA,MAAM,EAANA,MAAM;AAAEM,IAAAA,MAAM,EAANA,MAAM;AAAEP,IAAAA,SAAS,EAATA,SAAS;AAAEZ,IAAAA,WAAW,EAAXA,WAAW;AAAEG,IAAAA,IAAI,EAAJA,IAAAA;AAAI,GAAA,EAAKC,IAAI,CAAA,CAAA;AAC1E;;ACpBM,SAAUsB,sBAAsBA,CAClC1C,mBAA2D,EAAA;EAE3D,OAAO,SAASS,eAAeA,GAAA;AAC3B,IAAA,IAAMkC,YAAY,GAAGjC,UAAU,CAACV,mBAAmB,CAAC,CAAA;IACpD,IAAI,CAAC2C,YAAY,EAAE,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC,CAAA;AACnE,IAAA,IAAMC,MAAM,GAAGC,MAAM,CAACH,YAAY,CAAC,CAAA;AACnC,IAAA,IAAAI,WAAA,GAAqBC,UAAU,CAAC,UAACC,CAAC,EAAA;QAAA,OAAKA,CAAC,GAAG,CAAC,CAAA;AAAA,OAAA,EAAE,CAAC,CAAC;AAAvCC,MAAAA,QAAQ,GAAAH,WAAA,CAAA,CAAA,CAAA,CAAA;AAEjB,IAAA,OAAAN,QAAA,CAAA,EAAA,EACOI,MAAM,CAACM,OAAO,EAAA;AACjBvE,MAAAA,GAAG,EAAE,SAALA,GAAGA,CAAGF,GAAsB,EAAEC,KAAoB,EAAI;QAClD,IAAMyE,MAAM,GAAGP,MAAM,CAACM,OAAO,CAACvE,GAAG,CAACF,GAAG,EAAEC,KAAK,CAAC,CAAA;AAC7CuE,QAAAA,QAAQ,EAAE,CAAA;AACV,QAAA,OAAOE,MAAM,CAAA;OAChB;AACDC,MAAAA,KAAK,EAAE,SAAPA,KAAKA,GAAO;AACRR,QAAAA,MAAM,CAACM,OAAO,CAACE,KAAK,EAAE,CAAA;AACtBH,QAAAA,QAAQ,EAAE,CAAA;OACb;AACD,MAAA,QAAA,EAAQ,SAARI,OAAMA,CAAG5E,GAAsB,EAAI;QAC/B,IAAM0E,MAAM,GAAGP,MAAM,CAACM,OAAO,CAAO,QAAA,CAAA,CAACzE,GAAG,CAAC,CAAA;AACzCwE,QAAAA,QAAQ,EAAE,CAAA;AACV,QAAA,OAAOE,MAAM,CAAA;AACjB,OAAA;AAAC,KAAA,CAAA,CAAA;GAER,CAAA;AACL;;;;"}