@ioca/react 1.4.74 → 1.4.76
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/button/toggle.js +11 -18
- package/lib/cjs/components/button/toggle.js.map +1 -1
- package/lib/cjs/components/checkbox/checkbox.js +5 -8
- package/lib/cjs/components/checkbox/checkbox.js.map +1 -1
- package/lib/cjs/components/checkbox/item.js +15 -16
- package/lib/cjs/components/checkbox/item.js.map +1 -1
- package/lib/cjs/components/collapse/collapse.js +11 -13
- package/lib/cjs/components/collapse/collapse.js.map +1 -1
- package/lib/cjs/components/form/field.js +16 -20
- package/lib/cjs/components/form/field.js.map +1 -1
- package/lib/cjs/components/input/input.js +21 -18
- package/lib/cjs/components/input/input.js.map +1 -1
- package/lib/cjs/components/input/number.js +65 -19
- package/lib/cjs/components/input/number.js.map +1 -1
- package/lib/cjs/components/input/range.js +10 -13
- package/lib/cjs/components/input/range.js.map +1 -1
- package/lib/cjs/components/input/textarea.js +4 -7
- package/lib/cjs/components/input/textarea.js.map +1 -1
- package/lib/cjs/components/picker/colors/footer.js +7 -10
- package/lib/cjs/components/picker/colors/footer.js.map +1 -1
- package/lib/cjs/components/picker/colors/index.js +23 -21
- package/lib/cjs/components/picker/colors/index.js.map +1 -1
- package/lib/cjs/components/picker/dates/index.js +9 -12
- package/lib/cjs/components/picker/dates/index.js.map +1 -1
- package/lib/cjs/components/picker/dates/panel.js +29 -35
- package/lib/cjs/components/picker/dates/panel.js.map +1 -1
- package/lib/cjs/components/picker/time/index.js +8 -12
- package/lib/cjs/components/picker/time/index.js.map +1 -1
- package/lib/cjs/components/picker/time/panel.js +38 -21
- package/lib/cjs/components/picker/time/panel.js.map +1 -1
- package/lib/cjs/components/popconfirm/popconfirm.js +1 -1
- package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/cjs/components/popup/content.js +5 -9
- package/lib/cjs/components/popup/content.js.map +1 -1
- package/lib/cjs/components/popup/popup.js +388 -157
- package/lib/cjs/components/popup/popup.js.map +1 -1
- package/lib/cjs/components/radio/radio.js +4 -7
- package/lib/cjs/components/radio/radio.js.map +1 -1
- package/lib/cjs/components/select/select.js +19 -24
- package/lib/cjs/components/select/select.js.map +1 -1
- package/lib/cjs/components/tabs/tabs.js +61 -54
- package/lib/cjs/components/tabs/tabs.js.map +1 -1
- package/lib/cjs/components/tree/tree.js +24 -26
- package/lib/cjs/components/tree/tree.js.map +1 -1
- package/lib/cjs/components/upload/upload.js +26 -33
- package/lib/cjs/components/upload/upload.js.map +1 -1
- package/lib/cjs/js/hooks.js +0 -4
- package/lib/cjs/js/hooks.js.map +1 -1
- package/lib/css/index.css +1 -1
- package/lib/css/index.css.map +1 -1
- package/lib/es/components/button/toggle.js +12 -19
- package/lib/es/components/button/toggle.js.map +1 -1
- package/lib/es/components/checkbox/checkbox.js +6 -9
- package/lib/es/components/checkbox/checkbox.js.map +1 -1
- package/lib/es/components/checkbox/item.js +16 -17
- package/lib/es/components/checkbox/item.js.map +1 -1
- package/lib/es/components/collapse/collapse.js +12 -14
- package/lib/es/components/collapse/collapse.js.map +1 -1
- package/lib/es/components/form/field.js +17 -21
- package/lib/es/components/form/field.js.map +1 -1
- package/lib/es/components/input/input.js +22 -19
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/number.js +67 -21
- package/lib/es/components/input/number.js.map +1 -1
- package/lib/es/components/input/range.js +11 -14
- package/lib/es/components/input/range.js.map +1 -1
- package/lib/es/components/input/textarea.js +5 -8
- package/lib/es/components/input/textarea.js.map +1 -1
- package/lib/es/components/picker/colors/footer.js +8 -11
- package/lib/es/components/picker/colors/footer.js.map +1 -1
- package/lib/es/components/picker/colors/index.js +24 -22
- package/lib/es/components/picker/colors/index.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +9 -12
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +30 -36
- package/lib/es/components/picker/dates/panel.js.map +1 -1
- package/lib/es/components/picker/time/index.js +8 -12
- package/lib/es/components/picker/time/index.js.map +1 -1
- package/lib/es/components/picker/time/panel.js +39 -22
- package/lib/es/components/picker/time/panel.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +1 -1
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/components/popup/content.js +6 -10
- package/lib/es/components/popup/content.js.map +1 -1
- package/lib/es/components/popup/popup.js +390 -159
- package/lib/es/components/popup/popup.js.map +1 -1
- package/lib/es/components/radio/radio.js +5 -8
- package/lib/es/components/radio/radio.js.map +1 -1
- package/lib/es/components/select/select.js +19 -24
- package/lib/es/components/select/select.js.map +1 -1
- package/lib/es/components/tabs/tabs.js +63 -56
- package/lib/es/components/tabs/tabs.js.map +1 -1
- package/lib/es/components/tree/tree.js +25 -27
- package/lib/es/components/tree/tree.js.map +1 -1
- package/lib/es/components/upload/upload.js +27 -34
- package/lib/es/components/upload/upload.js.map +1 -1
- package/lib/es/js/hooks.js +2 -5
- package/lib/es/js/hooks.js.map +1 -1
- package/lib/index.js +803 -541
- package/lib/types/components/popup/type.d.ts +0 -4
- package/package.json +100 -99
|
@@ -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
|
|
18
|
-
|
|
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 = !
|
|
20
|
+
const nextActive = !isActive;
|
|
24
21
|
const canToggle = toggable ? await toggable() : true;
|
|
25
22
|
if (!canToggle)
|
|
26
23
|
return;
|
|
27
|
-
|
|
28
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
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 || ""]:
|
|
49
|
-
"i-btn-toggle-active":
|
|
50
|
-
}), 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
|
|
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
|
|
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 = [...
|
|
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
|
-
|
|
28
|
+
setSelectedValues(group);
|
|
32
29
|
onChange?.(group, opt, e);
|
|
33
30
|
};
|
|
34
31
|
react.useEffect(() => {
|
|
35
|
-
|
|
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:
|
|
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
|
|
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
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
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
|
-
|
|
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-${
|
|
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:
|
|
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 {
|
|
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
|
|
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
|
-
|
|
52
|
-
|
|
48
|
+
const nextActive = activeKey === key ? undefined : key;
|
|
49
|
+
setActiveKey(nextActive);
|
|
50
|
+
onCollapse?.(key, nextActive !== undefined);
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
56
|
+
group.splice(i, 1);
|
|
60
57
|
}
|
|
61
58
|
else {
|
|
62
|
-
key !== undefined &&
|
|
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
|
-
? (
|
|
72
|
-
:
|
|
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
|
|
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
|
|
17
|
-
|
|
18
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
message: undefined,
|
|
50
|
-
});
|
|
42
|
+
setFieldStatus("normal");
|
|
43
|
+
setFieldMessage(undefined);
|
|
51
44
|
},
|
|
52
45
|
});
|
|
53
46
|
});
|
|
54
|
-
}, [children,
|
|
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
|
-
|
|
60
|
-
state.update += 1;
|
|
52
|
+
setFieldValue(v);
|
|
61
53
|
});
|
|
62
54
|
PubSub__default.subscribe(`${id}:invalid:${name}`, (evt, v) => {
|
|
63
|
-
|
|
64
|
-
|
|
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
|
|
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
|
|
23
|
-
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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
|
|
48
|
+
return visible ? jsxRuntime.jsx(material.VisibilityRound, {}) : jsxRuntime.jsx(material.VisibilityOffRound, {});
|
|
50
49
|
}
|
|
51
50
|
return undefined;
|
|
52
|
-
}, [
|
|
51
|
+
}, [type, visible]);
|
|
53
52
|
react.useEffect(() => {
|
|
54
|
-
|
|
53
|
+
setInputValue(value);
|
|
55
54
|
}, [value]);
|
|
56
55
|
const inputProps = {
|
|
57
56
|
ref,
|
|
58
|
-
type:
|
|
57
|
+
type: inputType,
|
|
59
58
|
name,
|
|
60
|
-
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
|
-
|
|
68
|
-
|
|
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 &&
|
|
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
|
|
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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"}
|