dynamic-modal 1.1.9 → 1.1.11

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.
Files changed (62) hide show
  1. package/README.md +0 -1
  2. package/dist/components/input-upload/input-upload.js +3 -3
  3. package/dist/components/make-button/make-button.js +19 -10
  4. package/dist/components/make-description/make-description.js +2 -2
  5. package/dist/components/make-input/make-input.js +57 -29
  6. package/dist/components/make-select/make-select.js +66 -29
  7. package/dist/components/make-textarea/make-textarea.js +57 -29
  8. package/dist/components/make-toggle/make-toggle.js +57 -29
  9. package/dist/components/make-upload/make-upload.js +72 -18
  10. package/dist/components/portal/portal.js +20 -10
  11. package/dist/context/component/component-state.d.ts +3 -3
  12. package/dist/context/component/component-state.js +20 -11
  13. package/dist/hooks/use-enable-if.d.ts +9 -0
  14. package/dist/hooks/use-enable-if.js +45 -0
  15. package/dist/hooks/use-live-data.d.ts +14 -0
  16. package/dist/hooks/use-live-data.js +42 -0
  17. package/dist/hooks/use-render-if.d.ts +12 -0
  18. package/dist/hooks/use-render-if.js +51 -0
  19. package/dist/interfaces/component-state.d.ts +8 -8
  20. package/dist/modal.js +70 -58
  21. package/dist/util/general/general.util.d.ts +3 -0
  22. package/dist/util/general/general.util.js +28 -0
  23. package/eslint.config.mjs +72 -14
  24. package/examples/live-data.ts +0 -1
  25. package/package.json +11 -9
  26. package/src/components/input-upload/input-upload.tsx +40 -28
  27. package/src/components/make-button/make-button.tsx +11 -13
  28. package/src/components/make-description/make-description.tsx +14 -8
  29. package/src/components/make-input/make-input.tsx +94 -47
  30. package/src/components/make-select/make-select.tsx +118 -48
  31. package/src/components/make-textarea/make-textarea.tsx +94 -47
  32. package/src/components/make-toggle/make-toggle.tsx +94 -47
  33. package/src/components/make-upload/make-upload.tsx +88 -36
  34. package/src/components/portal/portal.tsx +27 -25
  35. package/src/context/component/component-state.tsx +16 -9
  36. package/src/hooks/modal-handler.ts +17 -14
  37. package/src/hooks/use-enable-if.ts +67 -0
  38. package/src/hooks/use-live-data.ts +47 -0
  39. package/src/hooks/use-render-if.ts +62 -0
  40. package/src/interfaces/component-state.ts +38 -23
  41. package/src/interfaces/field.ts +33 -27
  42. package/src/interfaces/input-upload.ts +17 -15
  43. package/src/interfaces/make-button.ts +14 -13
  44. package/src/interfaces/make-description.ts +9 -8
  45. package/src/interfaces/make-field-group.ts +9 -8
  46. package/src/interfaces/make-input.ts +9 -8
  47. package/src/interfaces/make-select.ts +9 -9
  48. package/src/interfaces/make-textarea.ts +5 -5
  49. package/src/interfaces/make-toggle.ts +3 -3
  50. package/src/interfaces/make-upload.ts +8 -8
  51. package/src/interfaces/modal.ts +53 -39
  52. package/src/interfaces/option.ts +3 -3
  53. package/src/interfaces/portal.ts +5 -5
  54. package/src/modal.tsx +249 -149
  55. package/src/util/general/general.util.ts +27 -0
  56. package/tsconfig.json +1 -1
  57. package/dist/hooks/field-render.d.ts +0 -20
  58. package/dist/hooks/field-render.js +0 -115
  59. package/dist/tools/general.d.ts +0 -1
  60. package/dist/tools/general.js +0 -11
  61. package/src/hooks/field-render.ts +0 -143
  62. package/src/tools/general.ts +0 -8
package/README.md CHANGED
@@ -1,6 +1,5 @@
1
1
  # dynamic-modal
2
2
 
3
- <<<<<<< README.md
4
3
  `dynamic-modal` is a TypeScript library for creating reusable modals in React and Next.js applications. It uses JSON objects to configure the modal structure, eliminating the need to write HTML. This approach simplifies modal creation and customization, allowing you to open and close modals using a custom hook.
5
4
 
6
5
  ## Requirements
@@ -45,7 +45,7 @@ const InputUpload = (_a) => {
45
45
  const fileResult = {
46
46
  name: blob.name,
47
47
  size: blob.size,
48
- data: fileReader.result
48
+ data: fileReader.result,
49
49
  };
50
50
  resolve(fileResult);
51
51
  };
@@ -54,8 +54,8 @@ const InputUpload = (_a) => {
54
54
  };
55
55
  });
56
56
  };
57
- return (react_1.default.createElement("div", { className: 'flex flex-col w-full gap-1 text-center' },
58
- props.label && react_1.default.createElement("label", { className: "block mb-2 text-sm font-medium text-gray-900 dark:text-white", htmlFor: `file-input-${props.id}` }, props.label),
57
+ return (react_1.default.createElement("div", { className: "flex flex-col w-full gap-1 text-center" },
58
+ props.label && (react_1.default.createElement("label", { className: "block mb-2 text-sm font-medium text-gray-900 dark:text-white", htmlFor: `file-input-${props.id}` }, props.label)),
59
59
  react_1.default.createElement("input", Object.assign({ className: "file:transition-all file:delay-150 block w-full text-sm text-slate-500\r\n file:mr-4 file:py-2 file:px-4 file:rounded-md\r\n file:border-0 file:text-sm file:font-semibold\r\n file:bg-gray-100 file:text-blue-600\r\n hover:file:bg-blue-700 hover:file:text-white cursor-pointer disabled:cursor-not-allowed", "aria-describedby": `file-input-${props.id}-help`, id: `file-input-${props.id}`, type: "file", onChange: onChangeHandler }, props)),
60
60
  react_1.default.createElement("p", { className: "mt-1 text-sm text-gray-500 dark:text-gray-300 text-start", id: `file-input-${props.id}-help` }, (_b = props.helpText) === null || _b === void 0 ? void 0 : _b.toUpperCase())));
61
61
  };
@@ -16,20 +16,29 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  Object.defineProperty(exports, "__esModule", { value: true });
27
37
  const react_1 = __importStar(require("react"));
28
38
  const component_state_1 = require("../../context/component/component-state");
29
- const general_1 = require("../../tools/general");
30
39
  const MakeButton = ({ element }) => {
31
40
  const { Button } = (0, react_1.useContext)(component_state_1.ComponentStateContext);
32
- const elementId = (0, react_1.useMemo)(() => { var _a; return (_a = element.id) !== null && _a !== void 0 ? _a : (0, general_1.generateId)(); }, []);
33
- return (react_1.default.createElement(Button, Object.assign({}, element, { id: elementId })));
41
+ const elementId = (0, react_1.useId)();
42
+ return react_1.default.createElement(Button, Object.assign({}, element, { id: elementId }));
34
43
  };
35
44
  exports.default = MakeButton;
@@ -5,8 +5,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  };
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  const react_1 = __importDefault(require("react"));
8
- const MakeDescription = ({ element: { text, Icon, containerStyle, textStyle } }) => {
9
- return (react_1.default.createElement("div", { className: 'flex gap-4 w-full h-auto text-xs text-center p-2 border-1 rounded-md', style: containerStyle },
8
+ const MakeDescription = ({ element: { text, Icon, containerStyle, textStyle }, }) => {
9
+ return (react_1.default.createElement("div", { className: "flex gap-4 w-full h-auto text-xs text-center p-2 border-1 rounded-md", style: containerStyle },
10
10
  Icon && react_1.default.createElement(Icon, null),
11
11
  react_1.default.createElement("p", { style: textStyle }, text)));
12
12
  };
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  var __rest = (this && this.__rest) || function (s, e) {
27
37
  var t = {};
28
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -34,33 +44,51 @@ var __rest = (this && this.__rest) || function (s, e) {
34
44
  }
35
45
  return t;
36
46
  };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
37
50
  Object.defineProperty(exports, "__esModule", { value: true });
38
51
  const react_1 = __importStar(require("react"));
39
52
  const react_hook_form_1 = require("react-hook-form");
40
- const field_render_1 = require("../../hooks/field-render");
41
53
  const component_state_1 = require("../../context/component/component-state");
42
- const general_1 = require("../../tools/general");
43
- const MakeInput = (_a) => {
44
- var _b, _c;
45
- var _d = _a.element, _e = _d.validation, { required } = _e, validation = __rest(_e, ["required"]), { enableIf, renderIf } = _d, element = __rest(_d, ["validation", "enableIf", "renderIf"]), props = __rest(_a, ["element"]);
54
+ const use_enable_if_1 = __importDefault(require("../../hooks/use-enable-if"));
55
+ const use_render_if_1 = __importDefault(require("../../hooks/use-render-if"));
56
+ const MakeInput = ({ element, control, watch, unregister, }) => {
46
57
  const { Input } = (0, react_1.useContext)(component_state_1.ComponentStateContext);
47
- const { render, enable, checkField } = (0, field_render_1.useFieldRender)(Object.assign(Object.assign({}, props), { element: Object.assign({ enableIf, renderIf }, element) }));
48
- const elementId = (0, react_1.useMemo)(() => { var _a; return (_a = element.id) !== null && _a !== void 0 ? _a : (0, general_1.generateId)(); }, []);
58
+ const { name } = element, _a = element.validation, { required, message, regex } = _a, otherValidation = __rest(_a, ["required", "message", "regex"]), { enableIf, renderIf } = element, inputProps = __rest(element, ["name", "validation", "enableIf", "renderIf"]);
59
+ const { checkEnable, enable } = (0, use_enable_if_1.default)({ elementEnableIf: enableIf });
60
+ const { checkRender, render } = (0, use_render_if_1.default)({
61
+ elementName: name,
62
+ elementRenderIf: renderIf,
63
+ unregister,
64
+ });
65
+ const elementId = (0, react_1.useId)();
49
66
  (0, react_1.useEffect)(() => {
50
- const subscription = props.watch((value, { name, type }) => checkField(value, { name, type }));
51
- return () => subscription.unsubscribe();
52
- }, [checkField, props]);
53
- return (render
54
- ? react_1.default.createElement(react_hook_form_1.Controller, { control: props.control, name: element.name, rules: Object.assign({ required: {
55
- value: required,
56
- message: (_b = validation.message) !== null && _b !== void 0 ? _b : ''
57
- }, pattern: validation.regex ? {
58
- value: validation.regex,
59
- message: (_c = validation.message) !== null && _c !== void 0 ? _c : ''
60
- } : undefined }, validation), render: ({ field: { onChange, value }, fieldState: { invalid, error } }) => {
61
- var _a;
62
- return (react_1.default.createElement(Input, Object.assign({}, element, { id: elementId, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
63
- } })
64
- : null);
67
+ const unsubscribe = watch((formData, { name, type }) => {
68
+ if (!name)
69
+ return;
70
+ if (enableIf) {
71
+ checkEnable(formData, { name, type });
72
+ }
73
+ if (renderIf) {
74
+ checkRender(formData, { name, type });
75
+ }
76
+ });
77
+ return () => unsubscribe.unsubscribe();
78
+ }, [watch]);
79
+ if (!render)
80
+ return null;
81
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, rules: Object.assign({ required: {
82
+ value: required,
83
+ message: message !== null && message !== void 0 ? message : '',
84
+ }, pattern: regex
85
+ ? {
86
+ value: regex,
87
+ message: message !== null && message !== void 0 ? message : '',
88
+ }
89
+ : undefined }, otherValidation), render: ({ field: { onChange, value }, fieldState: { invalid, error }, }) => {
90
+ var _a;
91
+ return (react_1.default.createElement(Input, Object.assign({}, inputProps, { name: name, id: elementId, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
92
+ } }));
65
93
  };
66
94
  exports.default = MakeInput;
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  var __rest = (this && this.__rest) || function (s, e) {
27
37
  var t = {};
28
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -34,33 +44,60 @@ var __rest = (this && this.__rest) || function (s, e) {
34
44
  }
35
45
  return t;
36
46
  };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
37
50
  Object.defineProperty(exports, "__esModule", { value: true });
38
51
  const react_1 = __importStar(require("react"));
39
52
  const react_hook_form_1 = require("react-hook-form");
40
- const field_render_1 = require("../../hooks/field-render");
41
- const general_1 = require("../../tools/general");
42
53
  const component_state_1 = require("../../context/component/component-state");
43
- const MakeSelect = (_a) => {
44
- var _b, _c;
45
- var _d = _a.element, _e = _d.validation, { required } = _e, validation = __rest(_e, ["required"]), { enableIf, renderIf } = _d, element = __rest(_d, ["validation", "enableIf", "renderIf"]), props = __rest(_a, ["element"]);
54
+ const use_enable_if_1 = __importDefault(require("../../hooks/use-enable-if"));
55
+ const use_render_if_1 = __importDefault(require("../../hooks/use-render-if"));
56
+ const use_live_data_1 = __importDefault(require("../../hooks/use-live-data"));
57
+ const MakeSelect = ({ element, control, watch, setValue, unregister, }) => {
46
58
  const { Select } = (0, react_1.useContext)(component_state_1.ComponentStateContext);
47
- const { render, enable, checkField, liveData, liveSearching } = (0, field_render_1.useFieldRender)(Object.assign(Object.assign({}, props), { element: Object.assign({ renderIf, enableIf }, element) }));
48
- const elementId = (0, react_1.useMemo)(() => { var _a; return (_a = element.id) !== null && _a !== void 0 ? _a : (0, general_1.generateId)(); }, []);
59
+ const { name } = element, _a = element.validation, { required, message, regex } = _a, otherValidation = __rest(_a, ["required", "message", "regex"]), { enableIf, renderIf, liveData: elementLiveData } = element, inputProps = __rest(element, ["name", "validation", "enableIf", "renderIf", "liveData"]);
60
+ const { checkLiveData, liveData, liveSearching } = (0, use_live_data_1.default)({
61
+ elementName: name,
62
+ elementLiveData,
63
+ setValue,
64
+ });
65
+ const { checkEnable, enable } = (0, use_enable_if_1.default)({ elementEnableIf: enableIf });
66
+ const { checkRender, render } = (0, use_render_if_1.default)({
67
+ elementName: name,
68
+ elementRenderIf: renderIf,
69
+ unregister,
70
+ });
71
+ const elementId = (0, react_1.useId)();
49
72
  (0, react_1.useEffect)(() => {
50
- const subscription = props.watch((value, { name, type }) => checkField(value, { name, type }));
51
- return () => subscription.unsubscribe();
52
- }, [checkField, props, props.watch]);
53
- return (render
54
- ? react_1.default.createElement(react_hook_form_1.Controller, { control: props.control, name: element.name, rules: Object.assign({ required: {
55
- value: required,
56
- message: (_b = validation.message) !== null && _b !== void 0 ? _b : ''
57
- }, pattern: validation.regex ? {
58
- value: validation.regex,
59
- message: (_c = validation.message) !== null && _c !== void 0 ? _c : ''
60
- } : undefined }, validation), render: ({ field: { onChange, value }, fieldState: { invalid, error } }) => {
61
- var _a, _b;
62
- return (react_1.default.createElement(Select, Object.assign({}, element, { id: elementId, onChange: onChange, value: value, invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable, liveSearching: liveSearching, options: liveData || ((_b = element.options) !== null && _b !== void 0 ? _b : []) })));
63
- } })
64
- : react_1.default.createElement(react_1.default.Fragment, null));
73
+ const unsubscribe = watch((formData, { name, type }) => {
74
+ if (!name)
75
+ return;
76
+ if (enableIf) {
77
+ checkEnable(formData, { name, type });
78
+ }
79
+ if (renderIf) {
80
+ checkRender(formData, { name, type });
81
+ }
82
+ if (elementLiveData) {
83
+ checkLiveData(formData, { name, type });
84
+ }
85
+ });
86
+ return () => unsubscribe.unsubscribe();
87
+ }, [watch]);
88
+ if (!render)
89
+ return null;
90
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, rules: Object.assign({ required: {
91
+ value: required,
92
+ message: message !== null && message !== void 0 ? message : '',
93
+ }, pattern: regex
94
+ ? {
95
+ value: regex,
96
+ message: message !== null && message !== void 0 ? message : '',
97
+ }
98
+ : undefined }, otherValidation), render: ({ field: { onChange, value }, fieldState: { invalid, error }, }) => {
99
+ var _a, _b;
100
+ return (react_1.default.createElement(Select, Object.assign({}, inputProps, { id: elementId, name: name, onChange: onChange, value: value, invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable, liveSearching: liveSearching, options: liveData || ((_b = element.options) !== null && _b !== void 0 ? _b : []) })));
101
+ } }));
65
102
  };
66
103
  exports.default = MakeSelect;
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  var __rest = (this && this.__rest) || function (s, e) {
27
37
  var t = {};
28
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -34,33 +44,51 @@ var __rest = (this && this.__rest) || function (s, e) {
34
44
  }
35
45
  return t;
36
46
  };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
37
50
  Object.defineProperty(exports, "__esModule", { value: true });
38
51
  const react_1 = __importStar(require("react"));
39
52
  const react_hook_form_1 = require("react-hook-form");
40
- const field_render_1 = require("../../hooks/field-render");
41
- const general_1 = require("../../tools/general");
42
53
  const component_state_1 = require("../../context/component/component-state");
43
- const MakeTextarea = (_a) => {
44
- var _b, _c;
45
- var _d = _a.element, _e = _d.validation, { required } = _e, validation = __rest(_e, ["required"]), { enableIf, renderIf } = _d, element = __rest(_d, ["validation", "enableIf", "renderIf"]), props = __rest(_a, ["element"]);
54
+ const use_enable_if_1 = __importDefault(require("../../hooks/use-enable-if"));
55
+ const use_render_if_1 = __importDefault(require("../../hooks/use-render-if"));
56
+ const MakeTextarea = ({ element, control, watch, unregister, }) => {
46
57
  const { Textarea } = (0, react_1.useContext)(component_state_1.ComponentStateContext);
47
- const { render, enable, checkField } = (0, field_render_1.useFieldRender)(Object.assign(Object.assign({}, props), { element: Object.assign({ enableIf, renderIf }, element) }));
48
- const elementId = (0, react_1.useMemo)(() => { var _a; return (_a = element.id) !== null && _a !== void 0 ? _a : (0, general_1.generateId)(); }, []);
58
+ const { name } = element, _a = element.validation, { required, message, regex } = _a, otherValidation = __rest(_a, ["required", "message", "regex"]), { enableIf, renderIf } = element, inputProps = __rest(element, ["name", "validation", "enableIf", "renderIf"]);
59
+ const { checkEnable, enable } = (0, use_enable_if_1.default)({ elementEnableIf: enableIf });
60
+ const { checkRender, render } = (0, use_render_if_1.default)({
61
+ elementName: name,
62
+ elementRenderIf: renderIf,
63
+ unregister,
64
+ });
65
+ const elementId = (0, react_1.useId)();
49
66
  (0, react_1.useEffect)(() => {
50
- const subscription = props.watch((value, { name, type }) => checkField(value, { name, type }));
51
- return () => subscription.unsubscribe();
52
- }, [checkField, props, props.watch]);
53
- return (render
54
- ? react_1.default.createElement(react_hook_form_1.Controller, { name: element.name, control: props.control, rules: Object.assign({ required: {
55
- value: required,
56
- message: (_b = validation.message) !== null && _b !== void 0 ? _b : ''
57
- }, pattern: validation.regex ? {
58
- value: validation.regex,
59
- message: (_c = validation.message) !== null && _c !== void 0 ? _c : ''
60
- } : undefined }, validation), render: ({ field: { onChange, value }, fieldState: { invalid, error } }) => {
61
- var _a;
62
- return (react_1.default.createElement(Textarea, Object.assign({}, element, { id: elementId, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
63
- } })
64
- : null);
67
+ const unsubscribe = watch((formData, { name, type }) => {
68
+ if (!name)
69
+ return;
70
+ if (enableIf) {
71
+ checkEnable(formData, { name, type });
72
+ }
73
+ if (renderIf) {
74
+ checkRender(formData, { name, type });
75
+ }
76
+ });
77
+ return () => unsubscribe.unsubscribe();
78
+ }, [watch]);
79
+ if (!render)
80
+ return null;
81
+ return (react_1.default.createElement(react_hook_form_1.Controller, { name: name, control: control, rules: Object.assign({ required: {
82
+ value: required,
83
+ message: message !== null && message !== void 0 ? message : '',
84
+ }, pattern: regex
85
+ ? {
86
+ value: regex,
87
+ message: message !== null && message !== void 0 ? message : '',
88
+ }
89
+ : undefined }, otherValidation), render: ({ field: { onChange, value }, fieldState: { invalid, error }, }) => {
90
+ var _a;
91
+ return (react_1.default.createElement(Textarea, Object.assign({}, inputProps, { id: elementId, name: name, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
92
+ } }));
65
93
  };
66
94
  exports.default = MakeTextarea;
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
16
16
  }) : function(o, v) {
17
17
  o["default"] = v;
18
18
  });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
26
36
  var __rest = (this && this.__rest) || function (s, e) {
27
37
  var t = {};
28
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -34,33 +44,51 @@ var __rest = (this && this.__rest) || function (s, e) {
34
44
  }
35
45
  return t;
36
46
  };
47
+ var __importDefault = (this && this.__importDefault) || function (mod) {
48
+ return (mod && mod.__esModule) ? mod : { "default": mod };
49
+ };
37
50
  Object.defineProperty(exports, "__esModule", { value: true });
38
51
  const react_1 = __importStar(require("react"));
39
52
  const react_hook_form_1 = require("react-hook-form");
40
- const field_render_1 = require("../../hooks/field-render");
41
- const general_1 = require("../../tools/general");
42
53
  const component_state_1 = require("../../context/component/component-state");
43
- const MakeToggle = (_a) => {
44
- var _b, _c;
45
- var _d = _a.element, _e = _d.validation, { required } = _e, validation = __rest(_e, ["required"]), { enableIf, renderIf } = _d, element = __rest(_d, ["validation", "enableIf", "renderIf"]), props = __rest(_a, ["element"]);
54
+ const use_enable_if_1 = __importDefault(require("../../hooks/use-enable-if"));
55
+ const use_render_if_1 = __importDefault(require("../../hooks/use-render-if"));
56
+ const MakeToggle = ({ element, control, watch, unregister, }) => {
46
57
  const { Toggle } = (0, react_1.useContext)(component_state_1.ComponentStateContext);
47
- const { render, enable, checkField } = (0, field_render_1.useFieldRender)(Object.assign(Object.assign({}, props), { element: Object.assign({ enableIf, renderIf }, element) }));
48
- const elementId = (0, react_1.useMemo)(() => { var _a; return (_a = element.id) !== null && _a !== void 0 ? _a : (0, general_1.generateId)(); }, []);
58
+ const { name } = element, _a = element.validation, { required, message, regex } = _a, otherValidation = __rest(_a, ["required", "message", "regex"]), { enableIf, renderIf } = element, inputProps = __rest(element, ["name", "validation", "enableIf", "renderIf"]);
59
+ const { checkEnable, enable } = (0, use_enable_if_1.default)({ elementEnableIf: enableIf });
60
+ const { checkRender, render } = (0, use_render_if_1.default)({
61
+ elementName: name,
62
+ elementRenderIf: renderIf,
63
+ unregister,
64
+ });
65
+ const elementId = (0, react_1.useId)();
49
66
  (0, react_1.useEffect)(() => {
50
- const subscription = props.watch((value, { name, type }) => checkField(value, { name, type }));
51
- return () => subscription.unsubscribe();
52
- }, [checkField, props, props.watch]);
53
- return (render
54
- ? react_1.default.createElement(react_hook_form_1.Controller, { control: props.control, name: element.name, rules: Object.assign({ required: {
55
- value: required,
56
- message: (_b = validation.message) !== null && _b !== void 0 ? _b : ''
57
- }, pattern: validation.regex ? {
58
- value: validation.regex,
59
- message: (_c = validation.message) !== null && _c !== void 0 ? _c : ''
60
- } : undefined }, validation), render: ({ field: { onChange, value }, fieldState: { invalid, error } }) => {
61
- var _a;
62
- return (react_1.default.createElement(Toggle, Object.assign({}, element, { id: elementId, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
63
- } })
64
- : null);
67
+ const unsubscribe = watch((formData, { name, type }) => {
68
+ if (!name)
69
+ return;
70
+ if (enableIf) {
71
+ checkEnable(formData, { name, type });
72
+ }
73
+ if (renderIf) {
74
+ checkRender(formData, { name, type });
75
+ }
76
+ });
77
+ return () => unsubscribe.unsubscribe();
78
+ }, [watch]);
79
+ if (!render)
80
+ return null;
81
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, rules: Object.assign({ required: {
82
+ value: required,
83
+ message: message !== null && message !== void 0 ? message : '',
84
+ }, pattern: regex
85
+ ? {
86
+ value: regex,
87
+ message: message !== null && message !== void 0 ? message : '',
88
+ }
89
+ : undefined }, otherValidation), render: ({ field: { onChange, value }, fieldState: { invalid, error }, }) => {
90
+ var _a;
91
+ return (react_1.default.createElement(Toggle, Object.assign({}, inputProps, { id: elementId, name: name, onChange: onChange, value: value !== null && value !== void 0 ? value : '', invalid: invalid, error: error, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
92
+ } }));
65
93
  };
66
94
  exports.default = MakeToggle;
@@ -1,5 +1,38 @@
1
1
  "use strict";
2
2
  'use client';
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
3
36
  var __rest = (this && this.__rest) || function (s, e) {
4
37
  var t = {};
5
38
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -15,25 +48,46 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
15
48
  return (mod && mod.__esModule) ? mod : { "default": mod };
16
49
  };
17
50
  Object.defineProperty(exports, "__esModule", { value: true });
18
- const react_1 = __importDefault(require("react"));
51
+ const react_1 = __importStar(require("react"));
19
52
  const react_hook_form_1 = require("react-hook-form");
20
53
  const input_upload_1 = __importDefault(require("../input-upload/input-upload"));
21
- const field_render_1 = require("../../hooks/field-render");
22
- const MakeUpload = (_a) => {
23
- var _b, _c;
24
- var _d = _a.element, _e = _d.validation, { required } = _e, validation = __rest(_e, ["required"]), { enableIf, renderIf } = _d, element = __rest(_d, ["validation", "enableIf", "renderIf"]), props = __rest(_a, ["element"]);
25
- const { render, enable } = (0, field_render_1.useFieldRender)(Object.assign(Object.assign({}, props), { element: Object.assign({ enableIf, renderIf }, element) }));
26
- return (render
27
- ? react_1.default.createElement(react_hook_form_1.Controller, { control: props.control, name: element.name, rules: Object.assign({ required: {
28
- value: required,
29
- message: (_b = validation.message) !== null && _b !== void 0 ? _b : ''
30
- }, pattern: validation.regex ? {
31
- value: validation.regex,
32
- message: (_c = validation.message) !== null && _c !== void 0 ? _c : ''
33
- } : undefined }, validation), render: ({ field: { onChange } }) => {
34
- var _a;
35
- return (react_1.default.createElement(input_upload_1.default, Object.assign({}, element, { onChange: onChange, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
36
- } })
37
- : null);
54
+ const use_enable_if_1 = __importDefault(require("../../hooks/use-enable-if"));
55
+ const use_render_if_1 = __importDefault(require("../../hooks/use-render-if"));
56
+ const MakeUpload = ({ element, control, watch, unregister, }) => {
57
+ const { name } = element, _a = element.validation, { required, message, regex } = _a, otherValidation = __rest(_a, ["required", "message", "regex"]), { enableIf, renderIf } = element, inputProps = __rest(element, ["name", "validation", "enableIf", "renderIf"]);
58
+ const { checkEnable, enable } = (0, use_enable_if_1.default)({ elementEnableIf: enableIf });
59
+ const { checkRender, render } = (0, use_render_if_1.default)({
60
+ elementName: name,
61
+ elementRenderIf: renderIf,
62
+ unregister,
63
+ });
64
+ const elementId = (0, react_1.useId)();
65
+ (0, react_1.useEffect)(() => {
66
+ const unsubscribe = watch((formData, { name, type }) => {
67
+ if (!name)
68
+ return;
69
+ if (enableIf) {
70
+ checkEnable(formData, { name, type });
71
+ }
72
+ if (renderIf) {
73
+ checkRender(formData, { name, type });
74
+ }
75
+ });
76
+ return () => unsubscribe.unsubscribe();
77
+ }, [watch]);
78
+ if (!render)
79
+ return null;
80
+ return (react_1.default.createElement(react_hook_form_1.Controller, { control: control, name: name, rules: Object.assign({ required: {
81
+ value: required,
82
+ message: message !== null && message !== void 0 ? message : '',
83
+ }, pattern: regex
84
+ ? {
85
+ value: regex,
86
+ message: message !== null && message !== void 0 ? message : '',
87
+ }
88
+ : undefined }, otherValidation), render: ({ field: { onChange } }) => {
89
+ var _a;
90
+ return (react_1.default.createElement(input_upload_1.default, Object.assign({}, inputProps, { id: elementId, name: name, onChange: onChange, disabled: (_a = element.disabled) !== null && _a !== void 0 ? _a : !enable })));
91
+ } }));
38
92
  };
39
93
  exports.default = MakeUpload;