@ioca/react 1.4.73 → 1.4.75

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 (84) hide show
  1. package/lib/cjs/components/button/toggle.js +11 -18
  2. package/lib/cjs/components/button/toggle.js.map +1 -1
  3. package/lib/cjs/components/checkbox/checkbox.js +5 -8
  4. package/lib/cjs/components/checkbox/checkbox.js.map +1 -1
  5. package/lib/cjs/components/checkbox/item.js +15 -16
  6. package/lib/cjs/components/checkbox/item.js.map +1 -1
  7. package/lib/cjs/components/collapse/collapse.js +11 -13
  8. package/lib/cjs/components/collapse/collapse.js.map +1 -1
  9. package/lib/cjs/components/form/field.js +16 -20
  10. package/lib/cjs/components/form/field.js.map +1 -1
  11. package/lib/cjs/components/input/input.js +21 -18
  12. package/lib/cjs/components/input/input.js.map +1 -1
  13. package/lib/cjs/components/input/number.js +65 -19
  14. package/lib/cjs/components/input/number.js.map +1 -1
  15. package/lib/cjs/components/input/range.js +10 -13
  16. package/lib/cjs/components/input/range.js.map +1 -1
  17. package/lib/cjs/components/input/textarea.js +4 -7
  18. package/lib/cjs/components/input/textarea.js.map +1 -1
  19. package/lib/cjs/components/picker/colors/footer.js +7 -10
  20. package/lib/cjs/components/picker/colors/footer.js.map +1 -1
  21. package/lib/cjs/components/picker/colors/index.js +23 -21
  22. package/lib/cjs/components/picker/colors/index.js.map +1 -1
  23. package/lib/cjs/components/picker/dates/index.js +9 -12
  24. package/lib/cjs/components/picker/dates/index.js.map +1 -1
  25. package/lib/cjs/components/picker/dates/panel.js +29 -35
  26. package/lib/cjs/components/picker/dates/panel.js.map +1 -1
  27. package/lib/cjs/components/picker/time/index.js +8 -12
  28. package/lib/cjs/components/picker/time/index.js.map +1 -1
  29. package/lib/cjs/components/picker/time/panel.js +38 -21
  30. package/lib/cjs/components/picker/time/panel.js.map +1 -1
  31. package/lib/cjs/components/radio/radio.js +4 -7
  32. package/lib/cjs/components/radio/radio.js.map +1 -1
  33. package/lib/cjs/components/select/select.js +19 -24
  34. package/lib/cjs/components/select/select.js.map +1 -1
  35. package/lib/cjs/components/tabs/tabs.js +80 -79
  36. package/lib/cjs/components/tabs/tabs.js.map +1 -1
  37. package/lib/cjs/components/tree/tree.js +24 -26
  38. package/lib/cjs/components/tree/tree.js.map +1 -1
  39. package/lib/cjs/components/upload/upload.js +26 -33
  40. package/lib/cjs/components/upload/upload.js.map +1 -1
  41. package/lib/css/index.css +1 -1
  42. package/lib/css/index.css.map +1 -1
  43. package/lib/es/components/button/toggle.js +12 -19
  44. package/lib/es/components/button/toggle.js.map +1 -1
  45. package/lib/es/components/checkbox/checkbox.js +6 -9
  46. package/lib/es/components/checkbox/checkbox.js.map +1 -1
  47. package/lib/es/components/checkbox/item.js +16 -17
  48. package/lib/es/components/checkbox/item.js.map +1 -1
  49. package/lib/es/components/collapse/collapse.js +12 -14
  50. package/lib/es/components/collapse/collapse.js.map +1 -1
  51. package/lib/es/components/form/field.js +17 -21
  52. package/lib/es/components/form/field.js.map +1 -1
  53. package/lib/es/components/input/input.js +22 -19
  54. package/lib/es/components/input/input.js.map +1 -1
  55. package/lib/es/components/input/number.js +67 -21
  56. package/lib/es/components/input/number.js.map +1 -1
  57. package/lib/es/components/input/range.js +11 -14
  58. package/lib/es/components/input/range.js.map +1 -1
  59. package/lib/es/components/input/textarea.js +5 -8
  60. package/lib/es/components/input/textarea.js.map +1 -1
  61. package/lib/es/components/picker/colors/footer.js +8 -11
  62. package/lib/es/components/picker/colors/footer.js.map +1 -1
  63. package/lib/es/components/picker/colors/index.js +24 -22
  64. package/lib/es/components/picker/colors/index.js.map +1 -1
  65. package/lib/es/components/picker/dates/index.js +9 -12
  66. package/lib/es/components/picker/dates/index.js.map +1 -1
  67. package/lib/es/components/picker/dates/panel.js +30 -36
  68. package/lib/es/components/picker/dates/panel.js.map +1 -1
  69. package/lib/es/components/picker/time/index.js +8 -12
  70. package/lib/es/components/picker/time/index.js.map +1 -1
  71. package/lib/es/components/picker/time/panel.js +39 -22
  72. package/lib/es/components/picker/time/panel.js.map +1 -1
  73. package/lib/es/components/radio/radio.js +5 -8
  74. package/lib/es/components/radio/radio.js.map +1 -1
  75. package/lib/es/components/select/select.js +19 -24
  76. package/lib/es/components/select/select.js.map +1 -1
  77. package/lib/es/components/tabs/tabs.js +82 -81
  78. package/lib/es/components/tabs/tabs.js.map +1 -1
  79. package/lib/es/components/tree/tree.js +25 -27
  80. package/lib/es/components/tree/tree.js.map +1 -1
  81. package/lib/es/components/upload/upload.js +27 -34
  82. package/lib/es/components/upload/upload.js.map +1 -1
  83. package/lib/index.js +426 -393
  84. package/package.json +1 -1
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var classNames = require('classnames');
7
7
  var react = require('react');
8
- var hooks = require('../../js/hooks.js');
9
8
  var button = require('./button.js');
10
9
 
11
10
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
@@ -14,25 +13,21 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
14
13
 
15
14
  function Toggle(props) {
16
15
  const { ref, active, activeClass, after, disabled, children, className, toggable, onClick, onToggle, ...restProps } = props;
17
- const state = hooks.useReactive({
18
- active,
19
- done: true,
20
- });
16
+ const [isActive, setIsActive] = react.useState(active);
17
+ const [done, setDone] = react.useState(true);
21
18
  const toggle = async () => {
22
19
  const hasAfter = !!after;
23
- const nextActive = !state.active;
20
+ const nextActive = !isActive;
24
21
  const canToggle = toggable ? await toggable() : true;
25
22
  if (!canToggle)
26
23
  return;
27
- Object.assign(state, {
28
- active: nextActive,
29
- done: !hasAfter,
30
- });
24
+ setIsActive(nextActive);
25
+ setDone(!hasAfter);
31
26
  onToggle?.(nextActive);
32
27
  if (!hasAfter)
33
28
  return;
34
29
  setTimeout(() => {
35
- state.done = true;
30
+ setDone(true);
36
31
  }, 16);
37
32
  };
38
33
  const handleClick = (e) => {
@@ -40,14 +35,12 @@ function Toggle(props) {
40
35
  !disabled && toggle();
41
36
  };
42
37
  react.useEffect(() => {
43
- Object.assign(state, {
44
- active,
45
- done: true,
46
- });
38
+ setIsActive(active);
39
+ setDone(true);
47
40
  }, [active]);
48
- return (jsxRuntime.jsx(button.default, { ref: ref, className: classNames__default(className, { [activeClass || ""]: state.active }, "i-btn-toggle"), ...restProps, onClick: handleClick, children: jsxRuntime.jsx("div", { className: classNames__default("i-btn-toggle-content", {
49
- "i-btn-toggle-active": state.done,
50
- }), children: state.active ? (after ?? children) : children }) }));
41
+ return (jsxRuntime.jsx(button.default, { ref: ref, className: classNames__default(className, { [activeClass || ""]: isActive }, "i-btn-toggle"), ...restProps, onClick: handleClick, children: jsxRuntime.jsx("div", { className: classNames__default("i-btn-toggle-content", {
42
+ "i-btn-toggle-active": done,
43
+ }), children: isActive ? (after ?? children) : children }) }));
51
44
  }
52
45
 
53
46
  exports.default = Toggle;
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.js","sources":["../../../../packages/components/button/toggle.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { MouseEvent, useEffect } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Button from \"./button\";\nimport { IButtonToggle } from \"./type\";\n\nexport default function Toggle(props: IButtonToggle) {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\tactiveClass,\n\t\tafter,\n\t\tdisabled,\n\t\tchildren,\n\t\tclassName,\n\t\ttoggable,\n\t\tonClick,\n\t\tonToggle,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tactive,\n\t\tdone: true,\n\t});\n\n\tconst toggle = async () => {\n\t\tconst hasAfter = !!after;\n\t\tconst nextActive = !state.active;\n\n\t\tconst canToggle = toggable ? await toggable() : true;\n\t\tif (!canToggle) return;\n\n\t\tObject.assign(state, {\n\t\t\tactive: nextActive,\n\t\t\tdone: !hasAfter,\n\t\t});\n\t\tonToggle?.(nextActive);\n\n\t\tif (!hasAfter) return;\n\n\t\tsetTimeout(() => {\n\t\t\tstate.done = true;\n\t\t}, 16);\n\t};\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tonClick?.(e);\n\n\t\t!disabled && toggle();\n\t};\n\n\tuseEffect(() => {\n\t\tObject.assign(state, {\n\t\t\tactive,\n\t\t\tdone: true,\n\t\t});\n\t}, [active]);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\n\t\t\t\tclassName,\n\t\t\t\t{ [activeClass || \"\"]: state.active },\n\t\t\t\t\"i-btn-toggle\",\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-btn-toggle-content\", {\n\t\t\t\t\t\"i-btn-toggle-active\": state.done,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{state.active ? (after ?? children) : children}\n\t\t\t</div>\n\t\t</Button>\n\t);\n}\n"],"names":["useReactive","useEffect","_jsx","Button","classNames"],"mappings":";;;;;;;;;;;;;;AAMc,SAAU,MAAM,CAAC,KAAoB,EAAA;IAClD,MAAM,EACL,GAAG,EACH,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGA,iBAAW,CAAC;QACzB,MAAM;AACN,QAAA,IAAI,EAAE,IAAI;AACV,KAAA,CAAC;AAEF,IAAA,MAAM,MAAM,GAAG,YAAW;AACzB,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,MAAM;AAEhC,QAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,QAAQ,EAAE,GAAG,IAAI;AACpD,QAAA,IAAI,CAAC,SAAS;YAAE;AAEhB,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACpB,YAAA,MAAM,EAAE,UAAU;YAClB,IAAI,EAAE,CAAC,QAAQ;AACf,SAAA,CAAC;AACF,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEtB,QAAA,IAAI,CAAC,QAAQ;YAAE;QAEf,UAAU,CAAC,MAAK;AACf,YAAA,KAAK,CAAC,IAAI,GAAG,IAAI;QAClB,CAAC,EAAE,EAAE,CAAC;AACP,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAA0B,KAAI;AAClD,QAAA,OAAO,GAAG,CAAC,CAAC;AAEZ,QAAA,CAAC,QAAQ,IAAI,MAAM,EAAE;AACtB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;YACpB,MAAM;AACN,YAAA,IAAI,EAAE,IAAI;AACV,SAAA,CAAC;AACH,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,QACCC,cAAA,CAACC,cAAM,IACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CACpB,SAAS,EACT,EAAE,CAAC,WAAW,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EACrC,cAAc,CACd,KACG,SAAS,EACb,OAAO,EAAE,WAAW,YAEpBF,cAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAEE,mBAAU,CAAC,sBAAsB,EAAE;gBAC7C,qBAAqB,EAAE,KAAK,CAAC,IAAI;AACjC,aAAA,CAAC,YAED,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAA,CACzC,EAAA,CACE;AAEX;;;;"}
1
+ {"version":3,"file":"toggle.js","sources":["../../../../packages/components/button/toggle.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { MouseEvent, useEffect, useState } from \"react\";\nimport Button from \"./button\";\nimport { IButtonToggle } from \"./type\";\n\nexport default function Toggle(props: IButtonToggle) {\n\tconst {\n\t\tref,\n\t\tactive,\n\t\tactiveClass,\n\t\tafter,\n\t\tdisabled,\n\t\tchildren,\n\t\tclassName,\n\t\ttoggable,\n\t\tonClick,\n\t\tonToggle,\n\t\t...restProps\n\t} = props;\n\n\tconst [isActive, setIsActive] = useState(active);\n\tconst [done, setDone] = useState(true);\n\n\tconst toggle = async () => {\n\t\tconst hasAfter = !!after;\n\t\tconst nextActive = !isActive;\n\n\t\tconst canToggle = toggable ? await toggable() : true;\n\t\tif (!canToggle) return;\n\n\t\tsetIsActive(nextActive);\n\t\tsetDone(!hasAfter);\n\t\tonToggle?.(nextActive);\n\n\t\tif (!hasAfter) return;\n\n\t\tsetTimeout(() => {\n\t\t\tsetDone(true);\n\t\t}, 16);\n\t};\n\n\tconst handleClick = (e: MouseEvent<HTMLElement>) => {\n\t\tonClick?.(e);\n\n\t\t!disabled && toggle();\n\t};\n\n\tuseEffect(() => {\n\t\tsetIsActive(active);\n\t\tsetDone(true);\n\t}, [active]);\n\n\treturn (\n\t\t<Button\n\t\t\tref={ref}\n\t\t\tclassName={classNames(\n\t\t\t\tclassName,\n\t\t\t\t{ [activeClass || \"\"]: isActive },\n\t\t\t\t\"i-btn-toggle\",\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t\tonClick={handleClick}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-btn-toggle-content\", {\n\t\t\t\t\t\"i-btn-toggle-active\": done,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{isActive ? (after ?? children) : children}\n\t\t\t</div>\n\t\t</Button>\n\t);\n}\n"],"names":["useState","useEffect","_jsx","Button","classNames"],"mappings":";;;;;;;;;;;;;AAKc,SAAU,MAAM,CAAC,KAAoB,EAAA;IAClD,MAAM,EACL,GAAG,EACH,MAAM,EACN,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAGA,cAAQ,CAAC,MAAM,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGA,cAAQ,CAAC,IAAI,CAAC;AAEtC,IAAA,MAAM,MAAM,GAAG,YAAW;AACzB,QAAA,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK;AACxB,QAAA,MAAM,UAAU,GAAG,CAAC,QAAQ;AAE5B,QAAA,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,QAAQ,EAAE,GAAG,IAAI;AACpD,QAAA,IAAI,CAAC,SAAS;YAAE;QAEhB,WAAW,CAAC,UAAU,CAAC;AACvB,QAAA,OAAO,CAAC,CAAC,QAAQ,CAAC;AAClB,QAAA,QAAQ,GAAG,UAAU,CAAC;AAEtB,QAAA,IAAI,CAAC,QAAQ;YAAE;QAEf,UAAU,CAAC,MAAK;YACf,OAAO,CAAC,IAAI,CAAC;QACd,CAAC,EAAE,EAAE,CAAC;AACP,IAAA,CAAC;AAED,IAAA,MAAM,WAAW,GAAG,CAAC,CAA0B,KAAI;AAClD,QAAA,OAAO,GAAG,CAAC,CAAC;AAEZ,QAAA,CAAC,QAAQ,IAAI,MAAM,EAAE;AACtB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACd,WAAW,CAAC,MAAM,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC;AACd,IAAA,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;AAEZ,IAAA,QACCC,cAAA,CAACC,cAAM,EAAA,EACN,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,mBAAU,CACpB,SAAS,EACT,EAAE,CAAC,WAAW,IAAI,EAAE,GAAG,QAAQ,EAAE,EACjC,cAAc,CACd,EAAA,GACG,SAAS,EACb,OAAO,EAAE,WAAW,YAEpBF,cAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAEE,mBAAU,CAAC,sBAAsB,EAAE;AAC7C,gBAAA,qBAAqB,EAAE,IAAI;AAC3B,aAAA,CAAC,YAED,QAAQ,IAAI,KAAK,IAAI,QAAQ,IAAI,QAAQ,EAAA,CACrC,EAAA,CACE;AAEX;;;;"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var classNames = require('classnames');
7
7
  var react = require('react');
8
- var hooks = require('../../js/hooks.js');
9
8
  var utils = require('../../js/utils.js');
10
9
  var item = require('./item.js');
11
10
 
@@ -15,12 +14,10 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
15
14
 
16
15
  function Checkbox(props) {
17
16
  const { label, name, options = [], value = "", type = "default", optionInline = true, labelInline, disabled, status = "normal", message, required, className, renderItem, onChange, ...restProps } = props;
18
- const state = hooks.useReactive({
19
- value,
20
- });
17
+ const [selectedValues, setSelectedValues] = react.useState(value);
21
18
  const formattedOptions = react.useMemo(() => utils.formatOption(options), [options]);
22
19
  const handleChange = (checked, opt, e) => {
23
- const group = [...state.value];
20
+ const group = [...selectedValues];
24
21
  const i = group.findIndex((item) => item === opt.value);
25
22
  if (checked && i < 0) {
26
23
  group.push(opt.value);
@@ -28,11 +25,11 @@ function Checkbox(props) {
28
25
  else if (!checked && i > -1) {
29
26
  group.splice(i, 1);
30
27
  }
31
- state.value = group;
28
+ setSelectedValues(group);
32
29
  onChange?.(group, opt, e);
33
30
  };
34
31
  react.useEffect(() => {
35
- state.value = value;
32
+ setSelectedValues(value);
36
33
  }, [value]);
37
34
  return (jsxRuntime.jsxs("div", { className: classNames__default("i-checkbox i-input-label", {
38
35
  [`i-checkbox-${status}`]: status !== "normal",
@@ -41,7 +38,7 @@ function Checkbox(props) {
41
38
  "i-options-block": !optionInline,
42
39
  "i-checkbox-options-button": type === "button",
43
40
  }), children: formattedOptions.map((option) => {
44
- return (jsxRuntime.jsx(item.default, { name: name, value: state.value.includes(option.value), optionValue: option.value, type: type, disabled: disabled || option.disabled, onChange: (checked, e) => handleChange(checked, option, e), children: renderItem ?? option.label }, option.value));
41
+ return (jsxRuntime.jsx(item.default, { name: name, value: selectedValues.includes(option.value), optionValue: option.value, type: type, disabled: disabled || option.disabled, onChange: (checked, e) => handleChange(checked, option, e), children: renderItem ?? option.label }, option.value));
45
42
  }) })] }));
46
43
  }
47
44
  Checkbox.Item = item.default;
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.js","sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive<{\n\t\tvalue: any;\n\t}>({\n\t\tvalue,\n\t});\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...state.value];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tstate.value = group;\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={state.value.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"names":["useReactive","useMemo","formatOption","useEffect","_jsxs","classNames","_jsx","CheckboxItem"],"mappings":";;;;;;;;;;;;;;;AASA,SAAS,QAAQ,CAAC,KAAgB,EAAA;IACjC,MAAM,EACL,KAAK,EACL,IAAI,EACJ,OAAO,GAAG,EAAE,EACZ,KAAK,GAAG,EAAE,EACV,IAAI,GAAG,SAAS,EAChB,YAAY,GAAG,IAAI,EACnB,WAAW,EACX,QAAQ,EACR,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGA,iBAAW,CAEtB;QACF,KAAK;AACL,KAAA,CAAC;AAEF,IAAA,MAAM,gBAAgB,GAAGC,aAAO,CAAC,MAAMC,kBAAY,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAExE,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAI;QACxC,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAC9B,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC;AAEvD,QAAA,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,EAAE;AACrB,YAAA,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;QACtB;aAAO,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE;AAC9B,YAAA,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACnB;AAEA,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;QACnB,QAAQ,GAAG,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;AAC1B,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACpB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,QACCC,eAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAEC,mBAAU,CACpB,0BAA0B,EAC1B;AACC,YAAA,CAAC,cAAc,MAAM,CAAA,CAAE,GAAG,MAAM,KAAK,QAAQ;AAC7C,YAAA,gBAAgB,EAAE,WAAW;AAC7B,SAAA,EAED,SAAS,CACT,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEZ,KAAK,KACLD,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAClC,QAAQ,IAAIE,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,OAAO,EAAA,QAAA,EAAA,GAAA,EAAA,CAAS,EAC5C,KAAK,EAEL,OAAO,IAAIA,sBAAG,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAE,OAAO,GAAK,CAAA,EAAA,CACrD,CACP,EAEDA,cAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAED,mBAAU,CAAC,oBAAoB,EAAE;oBAC3C,iBAAiB,EAAE,CAAC,YAAY;oBAChC,2BAA2B,EAAE,IAAI,KAAK,QAAQ;iBAC9C,CAAC,EAAA,QAAA,EAED,gBAAgB,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;AAChC,oBAAA,QACCC,cAAA,CAACC,YAAY,EAAA,EAEZ,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,EACzC,WAAW,EAAE,MAAM,CAAC,KAAK,EACzB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EACrC,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,KACpB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,EAAA,QAAA,EAGhC,UAAU,IAAI,MAAM,CAAC,KAAK,EAAA,EAVtB,MAAM,CAAC,KAAe,CAWb;AAEjB,gBAAA,CAAC,CAAC,EAAA,CACG,CAAA,EAAA,CACD;AAER;AAEA,QAAQ,CAAC,IAAI,GAAGA,YAAY;;;;"}
1
+ {"version":3,"file":"checkbox.js","sources":["../../../../packages/components/checkbox/checkbox.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { useEffect, useMemo, useState } from \"react\";\nimport \"../../css/input.css\";\nimport { formatOption } from \"../../js/utils\";\nimport \"./index.css\";\nimport CheckboxItem from \"./item\";\nimport type { ICheckbox } from \"./type\";\n\nfunction Checkbox(props: ICheckbox) {\n\tconst {\n\t\tlabel,\n\t\tname,\n\t\toptions = [],\n\t\tvalue = \"\",\n\t\ttype = \"default\",\n\t\toptionInline = true,\n\t\tlabelInline,\n\t\tdisabled,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\trequired,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [selectedValues, setSelectedValues] = useState<any>(value);\n\n\tconst formattedOptions = useMemo(() => formatOption(options), [options]);\n\n\tconst handleChange = (checked, opt, e) => {\n\t\tconst group = [...selectedValues];\n\t\tconst i = group.findIndex((item) => item === opt.value);\n\n\t\tif (checked && i < 0) {\n\t\t\tgroup.push(opt.value);\n\t\t} else if (!checked && i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t}\n\n\t\tsetSelectedValues(group);\n\t\tonChange?.(group, opt, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetSelectedValues(value);\n\t}, [value]);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox i-input-label\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-inline\": labelInline,\n\t\t\t\t},\n\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{label && (\n\t\t\t\t<span className='i-input-label-text'>\n\t\t\t\t\t{required && <span className='error'>*</span>}\n\t\t\t\t\t{label}\n\n\t\t\t\t\t{message && <p className='i-checkbox-message'>{message}</p>}\n\t\t\t\t</span>\n\t\t\t)}\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-checkbox-options\", {\n\t\t\t\t\t\"i-options-block\": !optionInline,\n\t\t\t\t\t\"i-checkbox-options-button\": type === \"button\",\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{formattedOptions.map((option) => {\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<CheckboxItem\n\t\t\t\t\t\t\tkey={option.value as string}\n\t\t\t\t\t\t\tname={name}\n\t\t\t\t\t\t\tvalue={selectedValues.includes(option.value)}\n\t\t\t\t\t\t\toptionValue={option.value}\n\t\t\t\t\t\t\ttype={type}\n\t\t\t\t\t\t\tdisabled={disabled || option.disabled}\n\t\t\t\t\t\t\tonChange={(checked, e) =>\n\t\t\t\t\t\t\t\thandleChange(checked, option, e)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderItem ?? option.label}\n\t\t\t\t\t\t</CheckboxItem>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nCheckbox.Item = CheckboxItem;\n\nexport default Checkbox;\n"],"names":["useState","useMemo","formatOption","useEffect","_jsxs","classNames","_jsx","CheckboxItem"],"mappings":"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"}
@@ -5,7 +5,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var classNames = require('classnames');
7
7
  var react = require('react');
8
- var hooks = require('../../js/hooks.js');
9
8
 
10
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
11
10
 
@@ -13,31 +12,31 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
13
12
 
14
13
  function CheckboxItem(props) {
15
14
  const { type = "default", label, name, value = false, className, status = "normal", message, disabled, partof, optionValue, children, onChange, ...restProps } = props;
16
- const state = hooks.useReactive({
17
- value,
18
- status,
19
- message,
20
- });
15
+ const [checked, setChecked] = react.useState(value);
16
+ const [itemStatus, setItemStatus] = react.useState(status);
17
+ const [itemMessage, setItemMessage] = react.useState(message);
21
18
  const isChildrenFn = typeof children === "function";
22
19
  const handleChange = (e) => {
23
- const checked = e.target.checked;
24
- Object.assign(state, {
25
- value: checked,
26
- status,
27
- message,
28
- });
29
- onChange?.(checked, e);
20
+ const next = e.target.checked;
21
+ setChecked(next);
22
+ setItemStatus(status);
23
+ setItemMessage(message);
24
+ onChange?.(next, e);
30
25
  };
31
26
  react.useEffect(() => {
32
- state.value = value;
27
+ setChecked(value);
33
28
  }, [value]);
29
+ react.useEffect(() => {
30
+ setItemStatus(status);
31
+ setItemMessage(message);
32
+ }, [status, message]);
34
33
  return (jsxRuntime.jsxs("label", { className: classNames__default("i-checkbox-item", {
35
- [`i-checkbox-${state.status}`]: state.status !== "normal",
34
+ [`i-checkbox-${itemStatus}`]: itemStatus !== "normal",
36
35
  disabled,
37
36
  }, className), ...restProps, children: [jsxRuntime.jsx("input", { type: 'checkbox', name: name, className: classNames__default("i-checkbox-input", {
38
37
  [`i-checkbox-${type}`]: !partof,
39
38
  "i-checkbox-partof": partof,
40
- }), checked: state.value, disabled: disabled, onChange: handleChange }), isChildrenFn ? (children(state.value, optionValue)) : (jsxRuntime.jsx("span", { className: 'i-checkbox-text', children: children || label })), state.message && (jsxRuntime.jsxs("span", { className: 'i-checkbox-message', children: ["*", state.message] }))] }));
39
+ }), checked: checked, disabled: disabled, onChange: handleChange }), isChildrenFn ? (children(checked, optionValue)) : (jsxRuntime.jsx("span", { className: 'i-checkbox-text', children: children || label })), itemMessage && (jsxRuntime.jsxs("span", { className: 'i-checkbox-message', children: ["*", itemMessage] }))] }));
41
40
  }
42
41
 
43
42
  exports.default = CheckboxItem;
@@ -1 +1 @@
1
- {"version":3,"file":"item.js","sources":["../../../../packages/components/checkbox/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { ChangeEvent, useEffect } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport { ICheckboxItem } from \"./type\";\n\nexport default function CheckboxItem(props: ICheckboxItem) {\n\tconst {\n\t\ttype = \"default\",\n\t\tlabel,\n\t\tname,\n\t\tvalue = false,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tdisabled,\n\t\tpartof,\n\t\toptionValue,\n\t\tchildren,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t\tstatus,\n\t\tmessage,\n\t});\n\tconst isChildrenFn = typeof children === \"function\";\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst checked = e.target.checked;\n\n\t\tObject.assign(state, {\n\t\t\tvalue: checked,\n\t\t\tstatus,\n\t\t\tmessage,\n\t\t});\n\n\t\tonChange?.(checked, e);\n\t};\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${state.status}`]: state.status !== \"normal\",\n\t\t\t\t\tdisabled,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype='checkbox'\n\t\t\t\tname={name}\n\t\t\t\tclassName={classNames(\"i-checkbox-input\", {\n\t\t\t\t\t[`i-checkbox-${type}`]: !partof,\n\t\t\t\t\t\"i-checkbox-partof\": partof,\n\t\t\t\t})}\n\t\t\t\tchecked={state.value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\n\t\t\t{isChildrenFn ? (\n\t\t\t\tchildren(state.value, optionValue)\n\t\t\t) : (\n\t\t\t\t<span className='i-checkbox-text'>{children || label}</span>\n\t\t\t)}\n\n\t\t\t{state.message && (\n\t\t\t\t<span className='i-checkbox-message'>*{state.message}</span>\n\t\t\t)}\n\t\t</label>\n\t);\n}\n"],"names":["useReactive","useEffect","_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;;;AAKc,SAAU,YAAY,CAAC,KAAoB,EAAA;AACxD,IAAA,MAAM,EACL,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,KAAK,EACb,SAAS,EACT,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,KAAK,GAAGA,iBAAW,CAAC;QACzB,KAAK;QACL,MAAM;QACN,OAAO;AACP,KAAA,CAAC;AACF,IAAA,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,UAAU;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,CAAgC,KAAI;AACzD,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;AAEhC,QAAA,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;AACpB,YAAA,KAAK,EAAE,OAAO;YACd,MAAM;YACN,OAAO;AACP,SAAA,CAAC;AAEF,QAAA,QAAQ,GAAG,OAAO,EAAE,CAAC,CAAC;AACvB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;AACd,QAAA,KAAK,CAAC,KAAK,GAAG,KAAK;AACpB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEX,IAAA,QACCC,eAAA,CAAA,OAAA,EAAA,EACC,SAAS,EAAEC,mBAAU,CACpB,iBAAiB,EACjB;YACC,CAAC,CAAA,WAAA,EAAc,KAAK,CAAC,MAAM,CAAA,CAAE,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ;YACzD,QAAQ;AACR,SAAA,EACD,SAAS,CACT,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEbC,cAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,EACV,SAAS,EAAED,mBAAU,CAAC,kBAAkB,EAAE;AACzC,oBAAA,CAAC,cAAc,IAAI,CAAA,CAAE,GAAG,CAAC,MAAM;AAC/B,oBAAA,mBAAmB,EAAE,MAAM;AAC3B,iBAAA,CAAC,EACF,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,EAAA,CACrB,EAED,YAAY,IACZ,QAAQ,CAAC,KAAK,CAAC,KAAK,EAAE,WAAW,CAAC,KAElCC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAAE,QAAQ,IAAI,KAAK,EAAA,CAAQ,CAC5D,EAEA,KAAK,CAAC,OAAO,KACbF,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,KAAK,CAAC,OAAO,CAAA,EAAA,CAAQ,CAC5D,CAAA,EAAA,CACM;AAEV;;;;"}
1
+ {"version":3,"file":"item.js","sources":["../../../../packages/components/checkbox/item.tsx"],"sourcesContent":["import classNames from \"classnames\";\nimport { ChangeEvent, useEffect, useState } from \"react\";\nimport { ICheckboxItem } from \"./type\";\n\nexport default function CheckboxItem(props: ICheckboxItem) {\n\tconst {\n\t\ttype = \"default\",\n\t\tlabel,\n\t\tname,\n\t\tvalue = false,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\tdisabled,\n\t\tpartof,\n\t\toptionValue,\n\t\tchildren,\n\t\tonChange,\n\t\t...restProps\n\t} = props;\n\n\tconst [checked, setChecked] = useState(value);\n\tconst [itemStatus, setItemStatus] = useState(status);\n\tconst [itemMessage, setItemMessage] = useState(message);\n\tconst isChildrenFn = typeof children === \"function\";\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst next = e.target.checked;\n\t\tsetChecked(next);\n\t\tsetItemStatus(status);\n\t\tsetItemMessage(message);\n\t\tonChange?.(next, e);\n\t};\n\n\tuseEffect(() => {\n\t\tsetChecked(value);\n\t}, [value]);\n\n\tuseEffect(() => {\n\t\tsetItemStatus(status);\n\t\tsetItemMessage(message);\n\t}, [status, message]);\n\n\treturn (\n\t\t<label\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-checkbox-item\",\n\t\t\t\t{\n\t\t\t\t\t[`i-checkbox-${itemStatus}`]: itemStatus !== \"normal\",\n\t\t\t\t\tdisabled,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype='checkbox'\n\t\t\t\tname={name}\n\t\t\t\tclassName={classNames(\"i-checkbox-input\", {\n\t\t\t\t\t[`i-checkbox-${type}`]: !partof,\n\t\t\t\t\t\"i-checkbox-partof\": partof,\n\t\t\t\t})}\n\t\t\t\tchecked={checked}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={handleChange}\n\t\t\t/>\n\n\t\t\t{isChildrenFn ? (\n\t\t\t\tchildren(checked, optionValue)\n\t\t\t) : (\n\t\t\t\t<span className='i-checkbox-text'>{children || label}</span>\n\t\t\t)}\n\n\t\t\t{itemMessage && (\n\t\t\t\t<span className='i-checkbox-message'>*{itemMessage}</span>\n\t\t\t)}\n\t\t</label>\n\t);\n}\n"],"names":["useState","useEffect","_jsxs","classNames","_jsx"],"mappings":";;;;;;;;;;;;AAIc,SAAU,YAAY,CAAC,KAAoB,EAAA;AACxD,IAAA,MAAM,EACL,IAAI,GAAG,SAAS,EAChB,KAAK,EACL,IAAI,EACJ,KAAK,GAAG,KAAK,EACb,SAAS,EACT,MAAM,GAAG,QAAQ,EACjB,OAAO,EACP,QAAQ,EACR,MAAM,EACN,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,GAAG,SAAS,EACZ,GAAG,KAAK;IAET,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,MAAM,CAAC;IACpD,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAGA,cAAQ,CAAC,OAAO,CAAC;AACvD,IAAA,MAAM,YAAY,GAAG,OAAO,QAAQ,KAAK,UAAU;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,CAAgC,KAAI;AACzD,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO;QAC7B,UAAU,CAAC,IAAI,CAAC;QAChB,aAAa,CAAC,MAAM,CAAC;QACrB,cAAc,CAAC,OAAO,CAAC;AACvB,QAAA,QAAQ,GAAG,IAAI,EAAE,CAAC,CAAC;AACpB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACd,UAAU,CAAC,KAAK,CAAC;AAClB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEXA,eAAS,CAAC,MAAK;QACd,aAAa,CAAC,MAAM,CAAC;QACrB,cAAc,CAAC,OAAO,CAAC;AACxB,IAAA,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErB,IAAA,QACCC,eAAA,CAAA,OAAA,EAAA,EACC,SAAS,EAAEC,mBAAU,CACpB,iBAAiB,EACjB;AACC,YAAA,CAAC,cAAc,UAAU,CAAA,CAAE,GAAG,UAAU,KAAK,QAAQ;YACrD,QAAQ;AACR,SAAA,EACD,SAAS,CACT,EAAA,GACG,SAAS,EAAA,QAAA,EAAA,CAEbC,cAAA,CAAA,OAAA,EAAA,EACC,IAAI,EAAC,UAAU,EACf,IAAI,EAAE,IAAI,EACV,SAAS,EAAED,mBAAU,CAAC,kBAAkB,EAAE;AACzC,oBAAA,CAAC,cAAc,IAAI,CAAA,CAAE,GAAG,CAAC,MAAM;AAC/B,oBAAA,mBAAmB,EAAE,MAAM;iBAC3B,CAAC,EACF,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,YAAY,GACrB,EAED,YAAY,IACZ,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,KAE9BC,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iBAAiB,YAAE,QAAQ,IAAI,KAAK,EAAA,CAAQ,CAC5D,EAEA,WAAW,KACXF,eAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAAA,GAAA,EAAG,WAAW,CAAA,EAAA,CAAQ,CAC1D,CAAA,EAAA,CACM;AAEV;;;;"}
@@ -6,7 +6,6 @@ var jsxRuntime = require('react/jsx-runtime');
6
6
  var material = require('@ricons/material');
7
7
  var classNames = require('classnames');
8
8
  var react = require('react');
9
- var hooks = require('../../js/hooks.js');
10
9
  var helpericon = require('../utils/helpericon/helpericon.js');
11
10
  var item = require('./item.js');
12
11
 
@@ -16,9 +15,7 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
16
15
 
17
16
  const Collapse = (props) => {
18
17
  const { active, items, multiple, border, headerClickable, className, children, renderToggle = (active) => active ? jsxRuntime.jsx(material.MinusRound, {}) : jsxRuntime.jsx(material.PlusRound, {}), onCollapse, ...restProps } = props;
19
- const state = hooks.useReactive({
20
- active,
21
- });
18
+ const [activeKey, setActiveKey] = react.useState(active);
22
19
  const collapses = react.useMemo(() => {
23
20
  if (!items) {
24
21
  if (!children)
@@ -48,19 +45,20 @@ const Collapse = (props) => {
48
45
  if (disabled)
49
46
  return;
50
47
  if (!multiple) {
51
- state.active = state.active === key ? undefined : key;
52
- onCollapse?.(key, state.active !== undefined);
48
+ const nextActive = activeKey === key ? undefined : key;
49
+ setActiveKey(nextActive);
50
+ onCollapse?.(key, nextActive !== undefined);
53
51
  return;
54
52
  }
55
- if (!Array.isArray(state.active))
56
- state.active = [];
57
- const i = state.active.findIndex((k) => k === key);
53
+ const group = Array.isArray(activeKey) ? [...activeKey] : [];
54
+ const i = group.findIndex((k) => k === key);
58
55
  if (i > -1) {
59
- state.active.splice(i, 1);
56
+ group.splice(i, 1);
60
57
  }
61
58
  else {
62
- key !== undefined && state.active.push(key);
59
+ key !== undefined && group.push(key);
63
60
  }
61
+ setActiveKey(group);
64
62
  onCollapse?.(key, i < 0);
65
63
  };
66
64
  return (jsxRuntime.jsx("div", { className: classNames__default("i-collapse", {
@@ -68,8 +66,8 @@ const Collapse = (props) => {
68
66
  }, className), ...restProps, children: collapses.map((item) => {
69
67
  const { key, title, content, disabled, className, ...restProps } = item;
70
68
  const isActive = multiple
71
- ? (state.active || []).includes(key)
72
- : state.active === key;
69
+ ? (activeKey || []).includes(key)
70
+ : activeKey === key;
73
71
  return (jsxRuntime.jsxs("div", { className: classNames__default("i-collapse-item", className, {
74
72
  "i-collapse-active": isActive,
75
73
  "i-collapse-disabled": disabled,
@@ -1 +1 @@
1
- {"version":3,"file":"collapse.js","sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { Children, useMemo } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tactive,\n\t});\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tstate.active = state.active === key ? undefined : key;\n\t\t\tonCollapse?.(key as TKey, state.active !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!Array.isArray(state.active)) state.active = [];\n\n\t\tconst i = state.active.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tstate.active.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && state.active.push(key);\n\t\t}\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((state.active as TKey[]) || []).includes(key)\n\t\t\t\t\t: state.active === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"names":["_jsx","MinusRound","PlusRound","useReactive","useMemo","Children","classNames","_jsxs","Helpericon","Item"],"mappings":"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"}
1
+ {"version":3,"file":"collapse.js","sources":["../../../../packages/components/collapse/collapse.tsx"],"sourcesContent":["import { MinusRound, PlusRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { Children, useMemo, useState } from \"react\";\nimport Helpericon from \"../utils/helpericon\";\nimport \"./index.css\";\nimport Item from \"./item\";\nimport { ICollapse, ICollapseItem, TKey } from \"./type\";\n\nconst Collapse = (props: ICollapse) => {\n\tconst {\n\t\tactive,\n\t\titems,\n\t\tmultiple,\n\t\tborder,\n\t\theaderClickable,\n\t\tclassName,\n\t\tchildren,\n\t\trenderToggle = (active: boolean) =>\n\t\t\tactive ? <MinusRound /> : <PlusRound />,\n\t\tonCollapse,\n\t\t...restProps\n\t} = props;\n\n\tconst [activeKey, setActiveKey] = useState(active);\n\n\tconst collapses = useMemo(() => {\n\t\tif (!items) {\n\t\t\tif (!children) return [];\n\n\t\t\treturn (\n\t\t\t\tChildren.map(children, (node, i) => {\n\t\t\t\t\tconst { key, props: nodeProps } = node as {\n\t\t\t\t\t\tkey?: TKey;\n\t\t\t\t\t\tprops?: any;\n\t\t\t\t\t};\n\t\t\t\t\tconst { title, children, content, disabled, ...restProps } =\n\t\t\t\t\t\tnodeProps;\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...restProps,\n\t\t\t\t\t\tkey: key || i,\n\t\t\t\t\t\ttitle,\n\t\t\t\t\t\tcontent: children || content,\n\t\t\t\t\t\tdisabled,\n\t\t\t\t\t};\n\t\t\t\t}) || []\n\t\t\t);\n\t\t}\n\n\t\treturn items;\n\t}, [children]);\n\n\tconst handleHeaderClick = (item: ICollapseItem) => {\n\t\tif (!headerClickable) return;\n\n\t\thandleToggle(item);\n\t};\n\n\tconst handleToggle = (item: ICollapseItem, e?) => {\n\t\tconst { key, disabled } = item;\n\t\te?.stopPropagation();\n\t\tif (disabled) return;\n\n\t\tif (!multiple) {\n\t\t\tconst nextActive = activeKey === key ? undefined : key;\n\t\t\tsetActiveKey(nextActive);\n\t\t\tonCollapse?.(key as TKey, nextActive !== undefined);\n\t\t\treturn;\n\t\t}\n\n\t\tconst group = Array.isArray(activeKey) ? [...activeKey] : [];\n\n\t\tconst i = group.findIndex((k) => k === key);\n\n\t\tif (i > -1) {\n\t\t\tgroup.splice(i, 1);\n\t\t} else {\n\t\t\tkey !== undefined && group.push(key);\n\t\t}\n\t\tsetActiveKey(group as any);\n\t\tonCollapse?.(key as TKey, i < 0);\n\t};\n\n\treturn (\n\t\t<div\n\t\t\tclassName={classNames(\n\t\t\t\t\"i-collapse\",\n\t\t\t\t{\n\t\t\t\t\t\"i-collapse-bordered\": border,\n\t\t\t\t},\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...restProps}\n\t\t>\n\t\t\t{collapses.map((item) => {\n\t\t\t\tconst {\n\t\t\t\t\tkey,\n\t\t\t\t\ttitle,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tclassName,\n\t\t\t\t\t...restProps\n\t\t\t\t} = item;\n\t\t\t\tconst isActive = multiple\n\t\t\t\t\t? ((activeKey as TKey[]) || []).includes(key)\n\t\t\t\t\t: activeKey === key;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={key}\n\t\t\t\t\t\tclassName={classNames(\"i-collapse-item\", className, {\n\t\t\t\t\t\t\t\"i-collapse-active\": isActive,\n\t\t\t\t\t\t\t\"i-collapse-disabled\": disabled,\n\t\t\t\t\t\t})}\n\t\t\t\t\t\t{...restProps}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName='i-collapse-header'\n\t\t\t\t\t\t\tonClick={() => handleHeaderClick(item)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{title}\n\n\t\t\t\t\t\t\t<Helpericon\n\t\t\t\t\t\t\t\tactive\n\t\t\t\t\t\t\t\tclassName='i-collapse-toggle'\n\t\t\t\t\t\t\t\ticon={renderToggle(isActive)}\n\t\t\t\t\t\t\t\tonClick={(e) => handleToggle(item, e)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t<div className='i-collapse-content'>{content}</div>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t})}\n\t\t</div>\n\t);\n};\n\nCollapse.Item = Item;\n\nexport default Collapse;\n"],"names":["_jsx","MinusRound","PlusRound","useState","useMemo","Children","classNames","_jsxs","Helpericon","Item"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var PubSub = require('pubsub-js');
6
6
  var react = require('react');
7
- var hooks = require('../../js/hooks.js');
8
7
  var context = require('./context.js');
9
8
 
10
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e.default : e; }
@@ -13,12 +12,9 @@ var PubSub__default = /*#__PURE__*/_interopDefaultCompat(PubSub);
13
12
 
14
13
  function Field(props) {
15
14
  const { name, required, children } = props;
16
- const state = hooks.useReactive({
17
- value: undefined,
18
- status: "normal",
19
- message: undefined,
20
- update: 0,
21
- });
15
+ const [fieldValue, setFieldValue] = react.useState(undefined);
16
+ const [fieldStatus, setFieldStatus] = react.useState("normal");
17
+ const [fieldMessage, setFieldMessage] = react.useState(undefined);
22
18
  const form = react.useContext(context.default);
23
19
  const { id } = form;
24
20
  const handleChange = (v) => {
@@ -35,33 +31,33 @@ function Field(props) {
35
31
  if (!react.isValidElement(node))
36
32
  return null;
37
33
  const { onChange } = node.props;
38
- const { value, status, message } = state;
39
34
  return react.cloneElement(node, {
40
- value,
41
- status,
42
- message,
35
+ value: fieldValue,
36
+ status: fieldStatus,
37
+ message: fieldMessage,
43
38
  required,
44
39
  onChange: (...args) => {
45
40
  handleChange(args[0]);
46
41
  onChange?.(...args);
47
- Object.assign(state, {
48
- status: "normal",
49
- message: undefined,
50
- });
42
+ setFieldStatus("normal");
43
+ setFieldMessage(undefined);
51
44
  },
52
45
  });
53
46
  });
54
- }, [children, state.update]);
47
+ }, [children, fieldValue, fieldStatus, fieldMessage, required]);
55
48
  react.useEffect(() => {
56
49
  if (!name)
57
50
  return;
58
51
  PubSub__default.subscribe(`${id}:set:${name}`, (evt, v) => {
59
- state.value = v;
60
- state.update += 1;
52
+ setFieldValue(v);
61
53
  });
62
54
  PubSub__default.subscribe(`${id}:invalid:${name}`, (evt, v) => {
63
- Object.assign(state, v);
64
- state.update += 1;
55
+ if (v?.value !== undefined)
56
+ setFieldValue(v.value);
57
+ if (v?.status)
58
+ setFieldStatus(v.status);
59
+ if ("message" in (v ?? {}))
60
+ setFieldMessage(v.message);
65
61
  });
66
62
  Promise.resolve().then(() => {
67
63
  form.set(name, form.cacheData[name] ?? undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sources":["../../../../packages/components/form/field.tsx"],"sourcesContent":["import PubSub from \"pubsub-js\";\nimport {\n\tChildren,\n\tcloneElement,\n\tisValidElement,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n} from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Context from \"./context\";\nimport { IField } from \"./type\";\n\nfunction Field(props: IField) {\n\tconst { name, required, children } = props;\n\tconst state = useReactive({\n\t\tvalue: undefined,\n\t\tstatus: \"normal\",\n\t\tmessage: undefined,\n\t\tupdate: 0,\n\t});\n\tconst form = useContext(Context);\n\tconst { id } = form;\n\n\tconst handleChange = (v) => {\n\t\tif (!name) return;\n\n\t\tform.set(name, v);\n\t\tPubSub.publish(`${id}:change`, {\n\t\t\tname,\n\t\t\tvalue: v,\n\t\t});\n\t};\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node) => {\n\t\t\tif (!isValidElement(node)) return null;\n\n\t\t\tconst { onChange } = node.props as any;\n\t\t\tconst { value, status, message } = state;\n\n\t\t\treturn cloneElement(node, {\n\t\t\t\tvalue,\n\t\t\t\tstatus,\n\t\t\t\tmessage,\n\t\t\t\trequired,\n\t\t\t\tonChange: (...args) => {\n\t\t\t\t\thandleChange(args[0]);\n\t\t\t\t\tonChange?.(...args);\n\t\t\t\t\tObject.assign(state, {\n\t\t\t\t\t\tstatus: \"normal\",\n\t\t\t\t\t\tmessage: undefined,\n\t\t\t\t\t});\n\t\t\t\t},\n\t\t\t} as any);\n\t\t});\n\t}, [children, state.update]);\n\n\tuseEffect(() => {\n\t\tif (!name) return;\n\n\t\tPubSub.subscribe(`${id}:set:${name}`, (evt, v) => {\n\t\t\tstate.value = v;\n\t\t\tstate.update += 1;\n\t\t});\n\t\tPubSub.subscribe(`${id}:invalid:${name}`, (evt, v) => {\n\t\t\tObject.assign(state, v);\n\t\t\tstate.update += 1;\n\t\t});\n\n\t\tPromise.resolve().then(() => {\n\t\t\tform.set(name, form.cacheData[name] ?? undefined);\n\t\t});\n\n\t\treturn () => {\n\t\t\tPubSub.unsubscribe(`${id}:set:${name}`);\n\t\t\tPubSub.unsubscribe(`${id}:invalid:${name}`);\n\t\t\tform.delete(name);\n\t\t};\n\t}, [name, children]);\n\n\tif (!name) return children;\n\n\treturn hijackChildren;\n}\n\nexport default Field;\n"],"names":["useReactive","useContext","Context","PubSub","useMemo","Children","isValidElement","cloneElement","useEffect"],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sources":["../../../../packages/components/form/field.tsx"],"sourcesContent":["import PubSub from \"pubsub-js\";\nimport {\n\tChildren,\n\tcloneElement,\n\tisValidElement,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n} from \"react\";\nimport Context from \"./context\";\nimport { IField } from \"./type\";\n\nfunction Field(props: IField) {\n\tconst { name, required, children } = props;\n\tconst [fieldValue, setFieldValue] = useState<any>(undefined);\n\tconst [fieldStatus, setFieldStatus] = useState(\"normal\");\n\tconst [fieldMessage, setFieldMessage] = useState<any>(undefined);\n\tconst form = useContext(Context);\n\tconst { id } = form;\n\n\tconst handleChange = (v) => {\n\t\tif (!name) return;\n\n\t\tform.set(name, v);\n\t\tPubSub.publish(`${id}:change`, {\n\t\t\tname,\n\t\t\tvalue: v,\n\t\t});\n\t};\n\n\tconst hijackChildren = useMemo(() => {\n\t\treturn Children.map(children, (node) => {\n\t\t\tif (!isValidElement(node)) return null;\n\n\t\t\tconst { onChange } = node.props as any;\n\n\t\t\treturn cloneElement(node, {\n\t\t\t\tvalue: fieldValue,\n\t\t\t\tstatus: fieldStatus,\n\t\t\t\tmessage: fieldMessage,\n\t\t\t\trequired,\n\t\t\t\tonChange: (...args) => {\n\t\t\t\t\thandleChange(args[0]);\n\t\t\t\t\tonChange?.(...args);\n\t\t\t\t\tsetFieldStatus(\"normal\");\n\t\t\t\t\tsetFieldMessage(undefined);\n\t\t\t\t},\n\t\t\t} as any);\n\t\t});\n\t}, [children, fieldValue, fieldStatus, fieldMessage, required]);\n\n\tuseEffect(() => {\n\t\tif (!name) return;\n\n\t\tPubSub.subscribe(`${id}:set:${name}`, (evt, v) => {\n\t\t\tsetFieldValue(v);\n\t\t});\n\t\tPubSub.subscribe(`${id}:invalid:${name}`, (evt, v) => {\n\t\t\tif (v?.value !== undefined) setFieldValue(v.value);\n\t\t\tif (v?.status) setFieldStatus(v.status);\n\t\t\tif (\"message\" in (v ?? {})) setFieldMessage(v.message);\n\t\t});\n\n\t\tPromise.resolve().then(() => {\n\t\t\tform.set(name, form.cacheData[name] ?? undefined);\n\t\t});\n\n\t\treturn () => {\n\t\t\tPubSub.unsubscribe(`${id}:set:${name}`);\n\t\t\tPubSub.unsubscribe(`${id}:invalid:${name}`);\n\t\t\tform.delete(name);\n\t\t};\n\t}, [name, children]);\n\n\tif (!name) return children;\n\n\treturn hijackChildren;\n}\n\nexport default Field;\n"],"names":["useState","useContext","Context","PubSub","useMemo","Children","isValidElement","cloneElement","useEffect"],"mappings":"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"}
@@ -4,7 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
  var material = require('@ricons/material');
7
- var hooks = require('../../js/hooks.js');
8
7
  var classNames = require('classnames');
9
8
  var react = require('react');
10
9
  var helpericon = require('../utils/helpericon/helpericon.js');
@@ -19,14 +18,12 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
19
18
 
20
19
  const Input = ((props) => {
21
20
  const { ref, type = "text", label, name, value = "", prepend, append, labelInline, className, status = "normal", message, tip, clear, width, hideVisible, border, underline, required, maxLength, onChange, onEnter, onClear, style, ...restProps } = props;
22
- const state = hooks.useReactive({
23
- value,
24
- type,
25
- visible: false,
26
- });
21
+ const [inputValue, setInputValue] = react.useState(value);
22
+ const [inputType, setInputType] = react.useState(type);
23
+ const [visible, setVisible] = react.useState(false);
27
24
  const handleChange = (e) => {
28
25
  const v = e.target.value;
29
- state.value = v;
26
+ setInputValue(v);
30
27
  onChange?.(v, e);
31
28
  };
32
29
  const handleKeydown = (e) => {
@@ -34,43 +31,49 @@ const Input = ((props) => {
34
31
  };
35
32
  const handleHelperClick = () => {
36
33
  if (type === "password" && !hideVisible) {
37
- Object.assign(state, {
38
- visible: !state.visible,
39
- type: !state.visible ? "text" : "password",
34
+ setVisible((v) => {
35
+ const next = !v;
36
+ setInputType(next ? "text" : "password");
37
+ return next;
40
38
  });
41
39
  return;
42
40
  }
43
41
  const v = "";
42
+ setInputValue(v);
44
43
  onChange?.(v);
45
44
  onClear?.();
46
45
  };
47
46
  const HelperIcon = react.useMemo(() => {
48
47
  if (type === "password") {
49
- return state.visible ? jsxRuntime.jsx(material.VisibilityRound, {}) : jsxRuntime.jsx(material.VisibilityOffRound, {});
48
+ return visible ? jsxRuntime.jsx(material.VisibilityRound, {}) : jsxRuntime.jsx(material.VisibilityOffRound, {});
50
49
  }
51
50
  return undefined;
52
- }, [state.visible]);
51
+ }, [type, visible]);
53
52
  react.useEffect(() => {
54
- state.value = value;
53
+ setInputValue(value);
55
54
  }, [value]);
56
55
  const inputProps = {
57
56
  ref,
58
- type: state.type,
57
+ type: inputType,
59
58
  name,
60
- value: state.value,
59
+ value: inputValue,
61
60
  maxLength,
62
61
  className: classNames__default("i-input", `i-input-${type}`),
63
62
  onChange: handleChange,
64
63
  onKeyDown: handleKeydown,
65
64
  ...restProps,
66
65
  };
67
- const clearable = clear && state.value;
68
- const showHelper = type === "password" && !!state.value;
66
+ react.useEffect(() => {
67
+ setInputType(type);
68
+ setVisible(false);
69
+ }, [type]);
70
+ const clearable = clear && inputValue;
71
+ const showHelper = type === "password" && !!inputValue;
69
72
  return (jsxRuntime.jsx(container.default, { label: label, labelInline: labelInline, className: className, style: { width, ...style }, tip: message ?? tip, status: status, required: required, children: jsxRuntime.jsxs("div", { className: classNames__default("i-input-item", {
70
73
  [`i-input-${status}`]: status !== "normal",
71
74
  "i-input-borderless": !border,
72
75
  "i-input-underline": underline,
73
- }), children: [prepend && jsxRuntime.jsx("div", { className: 'i-input-prepend', children: prepend }), jsxRuntime.jsx("input", { ...inputProps }), maxLength && state.value?.length > 0 && (jsxRuntime.jsxs("span", { className: 'color-8 pr-4 font-sm', children: [state.value.length, " / ", maxLength] })), jsxRuntime.jsx(helpericon.default, { active: !!clearable || showHelper, icon: HelperIcon, onClick: handleHelperClick }), append && jsxRuntime.jsx("div", { className: 'i-input-append', children: append })] }) }));
76
+ }), children: [prepend && jsxRuntime.jsx("div", { className: 'i-input-prepend', children: prepend }), jsxRuntime.jsx("input", { ...inputProps }), maxLength && inputValue?.length > 0 && (jsxRuntime.jsxs("span", { className: 'color-8 pr-4 font-sm', children: [inputValue.length, " / ", maxLength] })), jsxRuntime.jsx(helpericon.default, { active: !!clearable || showHelper, icon: HelperIcon, onClick: handleHelperClick }), append && jsxRuntime.jsx("div", { className: 'i-input-append', children: append })] }) }));
74
77
  });
75
78
  Input.Textarea = textarea.default;
76
79
  Input.Number = number.default;
@@ -1 +1 @@
1
- {"version":3,"file":"input.js","sources":["../../../../packages/components/input/input.tsx"],"sourcesContent":["import { VisibilityOffRound, VisibilityRound } from \"@ricons/material\";\nimport { useReactive } from \"@p/js/hooks\";\nimport classNames from \"classnames\";\nimport { ChangeEvent, useEffect, useMemo } from \"react\";\nimport \"../../css/input.css\";\nimport Helpericon from \"../utils/helpericon\";\nimport InputContainer from \"./container\";\nimport Number from \"./number\";\nimport Range from \"./range\";\nimport Textarea from \"./textarea\";\nimport type { CompositionInput, IInput } from \"./type\";\n\nconst Input = ((props: IInput) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tlabel,\n\t\tname,\n\t\tvalue = \"\",\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\ttip,\n\t\tclear,\n\t\twidth,\n\t\thideVisible,\n\t\tborder,\n\t\tunderline,\n\t\trequired,\n\t\tmaxLength,\n\t\tonChange,\n\t\tonEnter,\n\t\tonClear,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst state = useReactive({\n\t\tvalue,\n\t\ttype,\n\t\tvisible: false,\n\t});\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst v = e.target.value;\n\n\t\tstate.value = v;\n\t\tonChange?.(v, e);\n\t};\n\n\tconst handleKeydown = (e) => {\n\t\te.code === \"Enter\" && onEnter?.(e);\n\t};\n\n\tconst handleHelperClick = () => {\n\t\tif (type === \"password\" && !hideVisible) {\n\t\t\tObject.assign(state, {\n\t\t\t\tvisible: !state.visible,\n\t\t\t\ttype: !state.visible ? \"text\" : \"password\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst v = \"\";\n\t\tonChange?.(v);\n\t\tonClear?.();\n\t};\n\n\tconst HelperIcon = useMemo(() => {\n\t\tif (type === \"password\") {\n\t\t\treturn state.visible ? <VisibilityRound /> : <VisibilityOffRound />;\n\t\t}\n\n\t\treturn undefined;\n\t}, [state.visible]);\n\n\tuseEffect(() => {\n\t\tstate.value = value;\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tref,\n\t\ttype: state.type,\n\t\tname,\n\t\tvalue: state.value,\n\t\tmaxLength,\n\t\tclassName: classNames(\"i-input\", `i-input-${type}`),\n\t\tonChange: handleChange,\n\t\tonKeyDown: handleKeydown,\n\t\t...restProps,\n\t};\n\n\tconst clearable = clear && state.value;\n\tconst showHelper = type === \"password\" && !!state.value;\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t\trequired={required}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\"i-input-underline\": underline,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\n\n\t\t\t\t<input {...inputProps} />\n\n\t\t\t\t{maxLength && state.value?.length > 0 && (\n\t\t\t\t\t<span className='color-8 pr-4 font-sm'>\n\t\t\t\t\t\t{state.value.length} / {maxLength}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive={!!clearable || showHelper}\n\t\t\t\t\ticon={HelperIcon}\n\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t/>\n\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n}) as CompositionInput;\n\nInput.Textarea = Textarea;\nInput.Number = Number;\nInput.Range = Range;\n\nexport default Input;\n"],"names":["useReactive","useMemo","_jsx","VisibilityRound","VisibilityOffRound","useEffect","classNames","InputContainer","_jsxs","Helpericon","Textarea","Number","Range"],"mappings":"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"}
1
+ {"version":3,"file":"input.js","sources":["../../../../packages/components/input/input.tsx"],"sourcesContent":["import { VisibilityOffRound, VisibilityRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport {\n\tChangeEvent,\n\tuseEffect,\n\tuseMemo,\n\tuseState,\n\ttype KeyboardEvent,\n} from \"react\";\nimport \"../../css/input.css\";\nimport Helpericon from \"../utils/helpericon\";\nimport InputContainer from \"./container\";\nimport Number from \"./number\";\nimport Range from \"./range\";\nimport Textarea from \"./textarea\";\nimport type { CompositionInput, IInput } from \"./type\";\n\nconst Input = ((props: IInput) => {\n\tconst {\n\t\tref,\n\t\ttype = \"text\",\n\t\tlabel,\n\t\tname,\n\t\tvalue = \"\",\n\t\tprepend,\n\t\tappend,\n\t\tlabelInline,\n\t\tclassName,\n\t\tstatus = \"normal\",\n\t\tmessage,\n\t\ttip,\n\t\tclear,\n\t\twidth,\n\t\thideVisible,\n\t\tborder,\n\t\tunderline,\n\t\trequired,\n\t\tmaxLength,\n\t\tonChange,\n\t\tonEnter,\n\t\tonClear,\n\t\tstyle,\n\t\t...restProps\n\t} = props;\n\n\tconst [inputValue, setInputValue] = useState(value);\n\tconst [inputType, setInputType] = useState(type);\n\tconst [visible, setVisible] = useState(false);\n\n\tconst handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n\t\tconst v = e.target.value;\n\n\t\tsetInputValue(v);\n\t\tonChange?.(v, e);\n\t};\n\n\tconst handleKeydown = (e: KeyboardEvent<HTMLInputElement>) => {\n\t\te.code === \"Enter\" && onEnter?.(e);\n\t};\n\n\tconst handleHelperClick = () => {\n\t\tif (type === \"password\" && !hideVisible) {\n\t\t\tsetVisible((v) => {\n\t\t\t\tconst next = !v;\n\t\t\t\tsetInputType(next ? \"text\" : \"password\");\n\t\t\t\treturn next;\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tconst v = \"\";\n\t\tsetInputValue(v);\n\t\tonChange?.(v);\n\t\tonClear?.();\n\t};\n\n\tconst HelperIcon = useMemo(() => {\n\t\tif (type === \"password\") {\n\t\t\treturn visible ? <VisibilityRound /> : <VisibilityOffRound />;\n\t\t}\n\n\t\treturn undefined;\n\t}, [type, visible]);\n\n\tuseEffect(() => {\n\t\tsetInputValue(value);\n\t}, [value]);\n\n\tconst inputProps = {\n\t\tref,\n\t\ttype: inputType,\n\t\tname,\n\t\tvalue: inputValue,\n\t\tmaxLength,\n\t\tclassName: classNames(\"i-input\", `i-input-${type}`),\n\t\tonChange: handleChange,\n\t\tonKeyDown: handleKeydown,\n\t\t...restProps,\n\t};\n\n\tuseEffect(() => {\n\t\tsetInputType(type);\n\t\tsetVisible(false);\n\t}, [type]);\n\n\tconst clearable = clear && inputValue;\n\tconst showHelper = type === \"password\" && !!inputValue;\n\n\treturn (\n\t\t<InputContainer\n\t\t\tlabel={label}\n\t\t\tlabelInline={labelInline}\n\t\t\tclassName={className}\n\t\t\tstyle={{ width, ...style }}\n\t\t\ttip={message ?? tip}\n\t\t\tstatus={status}\n\t\t\trequired={required}\n\t\t>\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-input-item\", {\n\t\t\t\t\t[`i-input-${status}`]: status !== \"normal\",\n\t\t\t\t\t\"i-input-borderless\": !border,\n\t\t\t\t\t\"i-input-underline\": underline,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t{prepend && <div className='i-input-prepend'>{prepend}</div>}\n\n\t\t\t\t<input {...inputProps} />\n\n\t\t\t\t{maxLength && inputValue?.length > 0 && (\n\t\t\t\t\t<span className='color-8 pr-4 font-sm'>\n\t\t\t\t\t\t{inputValue.length} / {maxLength}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive={!!clearable || showHelper}\n\t\t\t\t\ticon={HelperIcon}\n\t\t\t\t\tonClick={handleHelperClick}\n\t\t\t\t/>\n\n\t\t\t\t{append && <div className='i-input-append'>{append}</div>}\n\t\t\t</div>\n\t\t</InputContainer>\n\t);\n}) as CompositionInput;\n\nInput.Textarea = Textarea;\nInput.Number = Number;\nInput.Range = Range;\n\nexport default Input;\n"],"names":["useState","useMemo","_jsx","VisibilityRound","VisibilityOffRound","useEffect","classNames","InputContainer","_jsxs","Helpericon","Textarea","Number","Range"],"mappings":"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"}