@ioca/react 1.5.17 → 1.5.19
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/editor/editor.js +4 -2
- package/lib/cjs/components/editor/editor.js.map +1 -1
- package/lib/cjs/components/input/input.js +3 -1
- package/lib/cjs/components/input/input.js.map +1 -1
- package/lib/cjs/components/input/textarea.js +1 -1
- package/lib/cjs/components/input/textarea.js.map +1 -1
- package/lib/cjs/components/message/index.js +3 -2
- package/lib/cjs/components/message/index.js.map +1 -1
- package/lib/cjs/components/message/message.js +93 -50
- package/lib/cjs/components/message/message.js.map +1 -1
- package/lib/cjs/components/modal/content.js +16 -8
- package/lib/cjs/components/modal/content.js.map +1 -1
- package/lib/cjs/components/modal/modal.js +60 -19
- package/lib/cjs/components/modal/modal.js.map +1 -1
- package/lib/cjs/components/modal/modalManager.js +83 -0
- package/lib/cjs/components/modal/modalManager.js.map +1 -0
- package/lib/cjs/components/picker/daterange/daterange.js +60 -0
- package/lib/cjs/components/picker/daterange/daterange.js.map +1 -0
- package/lib/cjs/components/picker/daterange/index.js +11 -0
- package/lib/cjs/components/picker/daterange/index.js.map +1 -0
- package/lib/cjs/components/picker/daterange/panel.js +55 -0
- package/lib/cjs/components/picker/daterange/panel.js.map +1 -0
- package/lib/cjs/components/picker/dates/dates.js +12 -4
- package/lib/cjs/components/picker/dates/dates.js.map +1 -1
- package/lib/cjs/components/picker/dates/index.js +6 -2
- package/lib/cjs/components/picker/dates/index.js.map +1 -1
- package/lib/cjs/components/picker/dates/panel.js +22 -9
- package/lib/cjs/components/picker/dates/panel.js.map +1 -1
- package/lib/cjs/components/picker/time/index.js +6 -2
- package/lib/cjs/components/picker/time/index.js.map +1 -1
- package/lib/cjs/components/popconfirm/popconfirm.js +2 -4
- package/lib/cjs/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/cjs/index.js +10 -8
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/js/hooks.js +5 -2
- package/lib/cjs/js/hooks.js.map +1 -1
- package/lib/css/colors.css +2 -2
- package/lib/css/index.css +1 -1
- package/lib/css/index.css.map +1 -1
- package/lib/css/input.css +17 -1
- package/lib/es/components/editor/editor.js +4 -2
- package/lib/es/components/editor/editor.js.map +1 -1
- package/lib/es/components/input/input.js +3 -1
- package/lib/es/components/input/input.js.map +1 -1
- package/lib/es/components/input/textarea.js +1 -1
- package/lib/es/components/input/textarea.js.map +1 -1
- package/lib/es/components/message/index.js +3 -3
- package/lib/es/components/message/index.js.map +1 -1
- package/lib/es/components/message/message.js +93 -51
- package/lib/es/components/message/message.js.map +1 -1
- package/lib/es/components/modal/content.js +18 -10
- package/lib/es/components/modal/content.js.map +1 -1
- package/lib/es/components/modal/modal.js +61 -20
- package/lib/es/components/modal/modal.js.map +1 -1
- package/lib/es/components/modal/modalManager.js +76 -0
- package/lib/es/components/modal/modalManager.js.map +1 -0
- package/lib/es/components/picker/daterange/daterange.js +50 -0
- package/lib/es/components/picker/daterange/daterange.js.map +1 -0
- package/lib/es/components/picker/daterange/index.js +6 -0
- package/lib/es/components/picker/daterange/index.js.map +1 -0
- package/lib/es/components/picker/daterange/panel.js +47 -0
- package/lib/es/components/picker/daterange/panel.js.map +1 -0
- package/lib/es/components/picker/dates/dates.js +12 -4
- package/lib/es/components/picker/dates/dates.js.map +1 -1
- package/lib/es/components/picker/dates/index.js +6 -2
- package/lib/es/components/picker/dates/index.js.map +1 -1
- package/lib/es/components/picker/dates/panel.js +22 -9
- package/lib/es/components/picker/dates/panel.js.map +1 -1
- package/lib/es/components/picker/time/index.js +6 -2
- package/lib/es/components/picker/time/index.js.map +1 -1
- package/lib/es/components/popconfirm/popconfirm.js +2 -4
- package/lib/es/components/popconfirm/popconfirm.js.map +1 -1
- package/lib/es/index.js +2 -1
- package/lib/es/index.js.map +1 -1
- package/lib/es/js/hooks.js +5 -2
- package/lib/es/js/hooks.js.map +1 -1
- package/lib/index.js +384 -104
- package/lib/types/components/input/type.d.ts +1 -0
- package/lib/types/components/message/index.d.ts +5 -3
- package/lib/types/components/message/message.d.ts +5 -4
- package/lib/types/components/message/type.d.ts +25 -12
- package/lib/types/components/picker/daterange/daterange.d.ts +6 -0
- package/lib/types/components/picker/daterange/index.d.ts +5 -0
- package/lib/types/components/picker/type.d.ts +11 -2
- package/lib/types/index.d.ts +2 -1
- package/package.json +1 -1
|
@@ -23,20 +23,20 @@ const YearMonth = (props) => {
|
|
|
23
23
|
return (jsxRuntime.jsxs("a", { className: 'i-datepicker-action', "data-ripple": true, onClick: onClick, children: [jsxRuntime.jsx("span", { children: renderYear?.(value.year()) }), unitYear, jsxRuntime.jsx("span", { children: renderMonth?.(value.month() + 1) }), unitMonth] }));
|
|
24
24
|
};
|
|
25
25
|
const Panel = (props) => {
|
|
26
|
-
const { value, unitYear, unitMonth, renderDate, renderMonth = (m) => m, renderYear = (y) => y, disabledDate, onDateClick, } = props;
|
|
26
|
+
const { value, month: controlledMonth, rangeEnd, hoverDate, onDateHover, onOperateMonth: onOperateMonthProp, unitYear, unitMonth, renderDate, renderMonth = (m) => m, renderYear = (y) => y, disabledDate, onDateClick, } = props;
|
|
27
27
|
const [today, setToday] = react.useState(value);
|
|
28
|
-
const [month, setMonth] = react.useState(value || dayjs__default());
|
|
28
|
+
const [month, setMonth] = react.useState(controlledMonth || value || dayjs__default());
|
|
29
29
|
const [selectedYear, setSelectedYear] = react.useState(dayjs__default());
|
|
30
30
|
const [years, setYears] = react.useState([]);
|
|
31
31
|
const [selectable, setSelectable] = react.useState(false);
|
|
32
32
|
const $years = react.useRef(null);
|
|
33
|
-
const handleOperateMonth = (next) => {
|
|
33
|
+
const handleOperateMonth = onOperateMonthProp || ((next) => {
|
|
34
34
|
setMonth((m) => m[next ? "add" : "subtract"](1, "month"));
|
|
35
|
-
};
|
|
35
|
+
});
|
|
36
36
|
const handleChangeDate = (date) => {
|
|
37
37
|
if (date.isSame(today, "day"))
|
|
38
38
|
return;
|
|
39
|
-
if (!date.isSame(month, "month")) {
|
|
39
|
+
if (controlledMonth === undefined && !date.isSame(month, "month")) {
|
|
40
40
|
setMonth(date);
|
|
41
41
|
}
|
|
42
42
|
setToday(date);
|
|
@@ -60,20 +60,33 @@ const Panel = (props) => {
|
|
|
60
60
|
}, [selectable, month]);
|
|
61
61
|
react.useEffect(() => {
|
|
62
62
|
setToday(value);
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
if (controlledMonth === undefined) {
|
|
64
|
+
setMonth(value || dayjs__default());
|
|
65
|
+
}
|
|
66
|
+
}, [value, controlledMonth]);
|
|
67
|
+
react.useEffect(() => {
|
|
68
|
+
const el = $years.current;
|
|
69
|
+
if (!el)
|
|
70
|
+
return;
|
|
71
|
+
const onWheel = (e) => {
|
|
72
|
+
e.preventDefault();
|
|
73
|
+
getMoreYears(e);
|
|
74
|
+
};
|
|
75
|
+
el.addEventListener("wheel", onWheel, { passive: false });
|
|
76
|
+
return () => el.removeEventListener("wheel", onWheel);
|
|
77
|
+
}, []);
|
|
65
78
|
return (jsxRuntime.jsxs("div", { className: 'i-datepicker', children: [jsxRuntime.jsxs("div", { className: 'i-datepicker-units', children: [jsxRuntime.jsx(YearMonth, { value: month, unitYear: unitYear, unitMonth: unitMonth, renderMonth: renderMonth, renderYear: renderYear, onClick: () => setSelectable(true) }), jsxRuntime.jsx("a", { className: 'ml-auto i-datepicker-action', "data-ripple": true, onClick: () => handleOperateMonth(false), children: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.KeyboardArrowLeftRound, {}) }) }), jsxRuntime.jsx("a", { className: 'i-datepicker-action', "data-ripple": true, onClick: () => handleOperateMonth(true), children: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.KeyboardArrowRightRound, {}) }) })] }), jsxRuntime.jsxs("div", { className: classNames__default("i-datepicker-ym", {
|
|
66
79
|
"i-datepicker-active": selectable,
|
|
67
80
|
}), children: [jsxRuntime.jsx(helpericon.default, { active: true, className: 'i-datepicker-close', onClick: (e) => {
|
|
68
81
|
e.stopPropagation();
|
|
69
82
|
setSelectable(false);
|
|
70
|
-
} }), jsxRuntime.jsx("div", { ref: $years, className: 'i-datepicker-years',
|
|
83
|
+
} }), jsxRuntime.jsx("div", { ref: $years, className: 'i-datepicker-years', children: years.map((y) => (jsxRuntime.jsx("a", { className: classNames__default("i-datepicker-year", {
|
|
71
84
|
"i-datepicker-active": y === selectedYear.year(),
|
|
72
85
|
}), onClick: () => setSelectedYear((sy) => sy.year(y)), children: renderYear(y) }, y))) }), jsxRuntime.jsx("div", { className: 'i-datepicker-months', children: MONTHS.map((m) => {
|
|
73
86
|
return (jsxRuntime.jsx("a", { className: classNames__default("i-datepicker-month", {
|
|
74
87
|
"i-datepicker-active": m === month.month() + 1,
|
|
75
88
|
}), onClick: () => handleChangeMonth(m), children: renderMonth(m) }, m));
|
|
76
|
-
}) })] }), jsxRuntime.jsx(dates.default, { value: today, month: month, disabledDate: disabledDate, onDateClick: handleChangeDate, renderDate: renderDate })] }));
|
|
89
|
+
}) })] }), jsxRuntime.jsx(dates.default, { value: today, month: month, rangeEnd: rangeEnd, hoverDate: hoverDate, onDateHover: onDateHover, disabledDate: disabledDate, onDateClick: handleChangeDate, renderDate: renderDate })] }));
|
|
77
90
|
};
|
|
78
91
|
|
|
79
92
|
exports.default = Panel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel.js","sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { throttle } from \"radash\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Helpericon from \"../../utils/helpericon\";\nimport { IBaseDates } from \"../type\";\nimport Dates from \"./dates\";\n\nconst MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst YearMonth = (\n\tprops: IBaseDates & {\n\t\tonClick?: () => void;\n\t}\n) => {\n\tconst {\n\t\tvalue,\n\t\tunitMonth = \"月\",\n\t\tunitYear = \"年\",\n\t\trenderYear,\n\t\trenderMonth,\n\t\tonClick,\n\t} = props;\n\n\treturn (\n\t\t<a className='i-datepicker-action' data-ripple onClick={onClick}>\n\t\t\t<span>{renderYear?.(value.year())}</span>\n\t\t\t{unitYear}\n\t\t\t<span>{renderMonth?.(value.month() + 1)}</span>\n\t\t\t{unitMonth}\n\t\t</a>\n\t);\n};\n\nconst Panel = (props: IBaseDates) => {\n\tconst {\n\t\tvalue,\n\t\tunitYear,\n\t\tunitMonth,\n\t\trenderDate,\n\t\trenderMonth = (m: ReactNode) => m,\n\t\trenderYear = (y: ReactNode) => y,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t} = props;\n\n\tconst [today, setToday] = useState(value);\n\tconst [month, setMonth] = useState(value || dayjs());\n\tconst [selectedYear, setSelectedYear] = useState(dayjs());\n\tconst [years, setYears] = useState<number[]>([]);\n\tconst [selectable, setSelectable] = useState(false);\n\n\tconst $years = useRef<HTMLDivElement>(null);\n\n\tconst handleOperateMonth = (next: boolean) => {\n\t\tsetMonth((m) => m[next ? \"add\" : \"subtract\"](1, \"month\"));\n\t};\n\n\tconst handleChangeDate = (date: Dayjs) => {\n\t\tif (date.isSame(today, \"day\")) return;\n\n\t\tif (!date.isSame(month, \"month\")) {\n\t\t\tsetMonth(date);\n\t\t}\n\n\t\tsetToday(date);\n\t\tonDateClick?.(date);\n\t};\n\n\tconst handleChangeMonth = (month: number) => {\n\t\tsetMonth((m) => m.year(selectedYear.year()).month(month - 1));\n\t\tsetSelectable(false);\n\t};\n\n\tconst getMoreYears = throttle({ interval: 100 }, (e) => {\n\t\tconst isUp = e.deltaY < 0;\n\n\t\tsetYears((ys) => ys.map((y) => y + (isUp ? -1 : 1)));\n\t});\n\n\tuseEffect(() => {\n\t\tif (!selectable) return;\n\n\t\tsetSelectedYear(month);\n\t\tconst y = month.year();\n\t\tconst nextYears = Array.from({ length: 7 }).map((_, i) => y - 3 + i);\n\n\t\tsetYears([...nextYears]);\n\t}, [selectable, month]);\n\n\tuseEffect(() => {\n\t\tsetToday(value);\n\t\tsetMonth(value || dayjs());\n\t}, [value]);\n\n\treturn (\n\t\t<div className='i-datepicker'>\n\t\t\t<div className='i-datepicker-units'>\n\t\t\t\t<YearMonth\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tunitYear={unitYear}\n\t\t\t\t\tunitMonth={unitMonth}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tonClick={() => setSelectable(true)}\n\t\t\t\t/>\n\t\t\t\t<a\n\t\t\t\t\tclassName='ml-auto i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(false)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\tclassName='i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(true)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-datepicker-ym\", {\n\t\t\t\t\t\"i-datepicker-active\": selectable,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName='i-datepicker-close'\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tsetSelectable(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tref={$years}\n\t\t\t\t\tclassName='i-datepicker-years'\n\t\t\t\t\tonWheel={getMoreYears}\n\t\t\t\t>\n\t\t\t\t\t{years.map((y) => (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tkey={y}\n\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-year\", {\n\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\ty === selectedYear.year(),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => setSelectedYear((sy) => sy.year(y))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderYear(y)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className='i-datepicker-months'>\n\t\t\t\t\t{MONTHS.map((m) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={m}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-month\", {\n\t\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\t\tm === month.month() + 1,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => handleChangeMonth(m)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderMonth(m)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dates\n\t\t\t\tvalue={today}\n\t\t\t\tmonth={month}\n\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\tonDateClick={handleChangeDate}\n\t\t\t\trenderDate={renderDate}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Panel;\n"],"names":["_jsxs","_jsx","useState","dayjs","useRef","throttle","useEffect","Icon","KeyboardArrowLeftRound","KeyboardArrowRightRound","classNames","Helpericon","Dates"],"mappings":";;;;;;;;;;;;;;;;;;;AAaA,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC;AAEtD,MAAM,SAAS,GAAG,CACjB,KAEC,KACE;AACH,IAAA,MAAM,EACL,KAAK,EACL,SAAS,GAAG,GAAG,EACf,QAAQ,GAAG,GAAG,EACd,UAAU,EACV,WAAW,EACX,OAAO,GACP,GAAG,KAAK;AAET,IAAA,QACCA,eAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,qBAAqB,uBAAa,OAAO,EAAE,OAAO,EAAA,QAAA,EAAA,CAC9DC,mCAAO,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAA,CAAQ,EACxC,QAAQ,EACTA,cAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,WAAW,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAA,CAAQ,EAC9C,SAAS,CAAA,EAAA,CACP;AAEN,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,KAAiB,KAAI;AACnC,IAAA,MAAM,EACL,KAAK,EACL,QAAQ,EACR,SAAS,EACT,UAAU,EACV,WAAW,GAAG,CAAC,CAAY,KAAK,CAAC,EACjC,UAAU,GAAG,CAAC,CAAY,KAAK,CAAC,EAChC,YAAY,EACZ,WAAW,GACX,GAAG,KAAK;IAET,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AACzC,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGA,cAAQ,CAAC,KAAK,IAAIC,cAAK,EAAE,CAAC;IACpD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGD,cAAQ,CAACC,cAAK,EAAE,CAAC;IACzD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAGD,cAAQ,CAAW,EAAE,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;AAEnD,IAAA,MAAM,MAAM,GAAGE,YAAM,CAAiB,IAAI,CAAC;AAE3C,IAAA,MAAM,kBAAkB,GAAG,CAAC,IAAa,KAAI;QAC5C,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1D,IAAA,CAAC;AAED,IAAA,MAAM,gBAAgB,GAAG,CAAC,IAAW,KAAI;AACxC,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC;YAAE;QAE/B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YACjC,QAAQ,CAAC,IAAI,CAAC;QACf;QAEA,QAAQ,CAAC,IAAI,CAAC;AACd,QAAA,WAAW,GAAG,IAAI,CAAC;AACpB,IAAA,CAAC;AAED,IAAA,MAAM,iBAAiB,GAAG,CAAC,KAAa,KAAI;QAC3C,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAC7D,aAAa,CAAC,KAAK,CAAC;AACrB,IAAA,CAAC;AAED,IAAA,MAAM,YAAY,GAAGC,eAAQ,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,KAAI;AACtD,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;AAEzB,QAAA,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACrD,IAAA,CAAC,CAAC;IAEFC,eAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,UAAU;YAAE;QAEjB,eAAe,CAAC,KAAK,CAAC;AACtB,QAAA,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE;AACtB,QAAA,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEpE,QAAA,QAAQ,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AACzB,IAAA,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;IAEvBA,eAAS,CAAC,MAAK;QACd,QAAQ,CAAC,KAAK,CAAC;AACf,QAAA,QAAQ,CAAC,KAAK,IAAIH,cAAK,EAAE,CAAC;AAC3B,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,QACCH,yBAAK,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,CAC5BA,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oBAAoB,EAAA,QAAA,EAAA,CAClCC,eAAC,SAAS,EAAA,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,CACjC,EACFA,sBACC,SAAS,EAAC,6BAA6B,EAAA,aAAA,EAAA,IAAA,EAEvC,OAAO,EAAE,MAAM,kBAAkB,CAAC,KAAK,CAAC,EAAA,QAAA,EAExCA,cAAA,CAACM,YAAI,EAAA,EAAC,IAAI,EAAEN,eAACO,+BAAsB,EAAA,EAAA,CAAG,EAAA,CAAI,EAAA,CACvC,EACJP,cAAA,CAAA,GAAA,EAAA,EACC,SAAS,EAAC,qBAAqB,EAAA,aAAA,EAAA,IAAA,EAE/B,OAAO,EAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,YAEvCA,cAAA,CAACM,YAAI,EAAA,EAAC,IAAI,EAAEN,cAAA,CAACQ,gCAAuB,EAAA,EAAA,CAAG,EAAA,CAAI,EAAA,CACxC,CAAA,EAAA,CACC,EAENT,eAAA,CAAA,KAAA,EAAA,EACC,SAAS,EAAEU,mBAAU,CAAC,iBAAiB,EAAE;AACxC,oBAAA,qBAAqB,EAAE,UAAU;AACjC,iBAAA,CAAC,EAAA,QAAA,EAAA,CAEFT,cAAA,CAACU,kBAAU,EAAA,EACV,MAAM,EAAA,IAAA,EACN,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,CAAC,CAAC,KAAI;4BACd,CAAC,CAAC,eAAe,EAAE;4BACnB,aAAa,CAAC,KAAK,CAAC;AACrB,wBAAA,CAAC,EAAA,CACA,EAEFV,cAAA,CAAA,KAAA,EAAA,EACC,GAAG,EAAE,MAAM,EACX,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,YAAY,EAAA,QAAA,EAEpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,MACZA,cAAA,CAAA,GAAA,EAAA,EAEC,SAAS,EAAES,mBAAU,CAAC,mBAAmB,EAAE;AAC1C,gCAAA,qBAAqB,EACpB,CAAC,KAAK,YAAY,CAAC,IAAI,EAAE;6BAC1B,CAAC,EACF,OAAO,EAAE,MAAM,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAA,QAAA,EAEjD,UAAU,CAAC,CAAC,CAAC,IAPT,CAAC,CAQH,CACJ,CAAC,EAAA,CACG,EAENT,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,qBAAqB,EAAA,QAAA,EAClC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AACjB,4BAAA,QACCA,cAAA,CAAA,GAAA,EAAA,EAEC,SAAS,EAAES,mBAAU,CAAC,oBAAoB,EAAE;oCAC3C,qBAAqB,EACpB,CAAC,KAAK,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB,iCAAA,CAAC,EACF,OAAO,EAAE,MAAM,iBAAiB,CAAC,CAAC,CAAC,EAAA,QAAA,EAElC,WAAW,CAAC,CAAC,CAAC,IAPV,CAAC,CAQH;AAEN,wBAAA,CAAC,CAAC,EAAA,CACG,CAAA,EAAA,CACD,EAENT,cAAA,CAACW,aAAK,EAAA,EACL,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,gBAAgB,EAC7B,UAAU,EAAE,UAAU,EAAA,CACrB,CAAA,EAAA,CACG;AAER;;;;"}
|
|
1
|
+
{"version":3,"file":"panel.js","sources":["../../../../../packages/components/picker/dates/panel.tsx"],"sourcesContent":["import {\n\tKeyboardArrowLeftRound,\n\tKeyboardArrowRightRound,\n} from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport dayjs, { Dayjs } from \"dayjs\";\nimport { throttle } from \"radash\";\nimport { ReactNode, useEffect, useRef, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Helpericon from \"../../utils/helpericon\";\nimport { IBaseDates } from \"../type\";\nimport Dates from \"./dates\";\n\nconst MONTHS = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];\n\nconst YearMonth = (\n\tprops: IBaseDates & {\n\t\tonClick?: () => void;\n\t}\n) => {\n\tconst {\n\t\tvalue,\n\t\tunitMonth = \"月\",\n\t\tunitYear = \"年\",\n\t\trenderYear,\n\t\trenderMonth,\n\t\tonClick,\n\t} = props;\n\n\treturn (\n\t\t<a className='i-datepicker-action' data-ripple onClick={onClick}>\n\t\t\t<span>{renderYear?.(value.year())}</span>\n\t\t\t{unitYear}\n\t\t\t<span>{renderMonth?.(value.month() + 1)}</span>\n\t\t\t{unitMonth}\n\t\t</a>\n\t);\n};\n\nconst Panel = (props: IBaseDates & {\n\tmonth?: Dayjs;\n\trangeEnd?: Dayjs | null;\n\thoverDate?: Dayjs | null;\n\tonDateHover?: (date: Dayjs | null) => void;\n\tonOperateMonth?: (next: boolean) => void;\n}) => {\n\tconst {\n\t\tvalue,\n\t\tmonth: controlledMonth,\n\t\trangeEnd,\n\t\thoverDate,\n\t\tonDateHover,\n\t\tonOperateMonth: onOperateMonthProp,\n\t\tunitYear,\n\t\tunitMonth,\n\t\trenderDate,\n\t\trenderMonth = (m: ReactNode) => m,\n\t\trenderYear = (y: ReactNode) => y,\n\t\tdisabledDate,\n\t\tonDateClick,\n\t} = props;\n\n\tconst [today, setToday] = useState(value);\n\tconst [month, setMonth] = useState(controlledMonth || value || dayjs());\n\tconst [selectedYear, setSelectedYear] = useState(dayjs());\n\tconst [years, setYears] = useState<number[]>([]);\n\tconst [selectable, setSelectable] = useState(false);\n\n\tconst $years = useRef<HTMLDivElement>(null);\n\n\tconst handleOperateMonth = onOperateMonthProp || ((next: boolean) => {\n\t\tsetMonth((m) => m[next ? \"add\" : \"subtract\"](1, \"month\"));\n\t});\n\n\tconst handleChangeDate = (date: Dayjs) => {\n\t\tif (date.isSame(today, \"day\")) return;\n\n\t\tif (controlledMonth === undefined && !date.isSame(month, \"month\")) {\n\t\t\tsetMonth(date);\n\t\t}\n\n\t\tsetToday(date);\n\t\tonDateClick?.(date);\n\t};\n\n\tconst handleChangeMonth = (month: number) => {\n\t\tsetMonth((m) => m.year(selectedYear.year()).month(month - 1));\n\t\tsetSelectable(false);\n\t};\n\n\tconst getMoreYears = throttle({ interval: 100 }, (e) => {\n\t\tconst isUp = e.deltaY < 0;\n\n\t\tsetYears((ys) => ys.map((y) => y + (isUp ? -1 : 1)));\n\t});\n\n\tuseEffect(() => {\n\t\tif (!selectable) return;\n\n\t\tsetSelectedYear(month);\n\t\tconst y = month.year();\n\t\tconst nextYears = Array.from({ length: 7 }).map((_, i) => y - 3 + i);\n\n\t\tsetYears([...nextYears]);\n\t}, [selectable, month]);\n\n\tuseEffect(() => {\n\t\tsetToday(value);\n\t\tif (controlledMonth === undefined) {\n\t\t\tsetMonth(value || dayjs());\n\t\t}\n\t}, [value, controlledMonth]);\n\n\tuseEffect(() => {\n\t\tconst el = $years.current;\n\t\tif (!el) return;\n\n\t\tconst onWheel = (e: WheelEvent) => {\n\t\t\te.preventDefault();\n\t\t\tgetMoreYears(e);\n\t\t};\n\n\t\tel.addEventListener(\"wheel\", onWheel, { passive: false });\n\n\t\treturn () => el.removeEventListener(\"wheel\", onWheel);\n\t}, []);\n\n\treturn (\n\t\t<div className='i-datepicker'>\n\t\t\t<div className='i-datepicker-units'>\n\t\t\t\t<YearMonth\n\t\t\t\t\tvalue={month}\n\t\t\t\t\tunitYear={unitYear}\n\t\t\t\t\tunitMonth={unitMonth}\n\t\t\t\t\trenderMonth={renderMonth}\n\t\t\t\t\trenderYear={renderYear}\n\t\t\t\t\tonClick={() => setSelectable(true)}\n\t\t\t\t/>\n\t\t\t\t<a\n\t\t\t\t\tclassName='ml-auto i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(false)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowLeftRound />} />\n\t\t\t\t</a>\n\t\t\t\t<a\n\t\t\t\t\tclassName='i-datepicker-action'\n\t\t\t\t\tdata-ripple\n\t\t\t\t\tonClick={() => handleOperateMonth(true)}\n\t\t\t\t>\n\t\t\t\t\t<Icon icon={<KeyboardArrowRightRound />} />\n\t\t\t\t</a>\n\t\t\t</div>\n\n\t\t\t<div\n\t\t\t\tclassName={classNames(\"i-datepicker-ym\", {\n\t\t\t\t\t\"i-datepicker-active\": selectable,\n\t\t\t\t})}\n\t\t\t>\n\t\t\t\t<Helpericon\n\t\t\t\t\tactive\n\t\t\t\t\tclassName='i-datepicker-close'\n\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\tsetSelectable(false);\n\t\t\t\t\t}}\n\t\t\t\t/>\n\n\t\t\t\t<div\n\t\t\t\t\tref={$years}\n\t\t\t\t\tclassName='i-datepicker-years'\n\t\t\t\t>\n\t\t\t\t\t{years.map((y) => (\n\t\t\t\t\t\t<a\n\t\t\t\t\t\t\tkey={y}\n\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-year\", {\n\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\ty === selectedYear.year(),\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\tonClick={() => setSelectedYear((sy) => sy.year(y))}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{renderYear(y)}\n\t\t\t\t\t\t</a>\n\t\t\t\t\t))}\n\t\t\t\t</div>\n\n\t\t\t\t<div className='i-datepicker-months'>\n\t\t\t\t\t{MONTHS.map((m) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<a\n\t\t\t\t\t\t\t\tkey={m}\n\t\t\t\t\t\t\t\tclassName={classNames(\"i-datepicker-month\", {\n\t\t\t\t\t\t\t\t\t\"i-datepicker-active\":\n\t\t\t\t\t\t\t\t\t\tm === month.month() + 1,\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\tonClick={() => handleChangeMonth(m)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderMonth(m)}\n\t\t\t\t\t\t\t</a>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t</div>\n\n\t\t\t<Dates\n\t\t\t\tvalue={today}\n\t\t\t\tmonth={month}\n\t\t\t\trangeEnd={rangeEnd}\n\t\t\t\thoverDate={hoverDate}\n\t\t\t\tonDateHover={onDateHover}\n\t\t\t\tdisabledDate={disabledDate}\n\t\t\t\tonDateClick={handleChangeDate}\n\t\t\t\trenderDate={renderDate}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default Panel;\n"],"names":["_jsxs","_jsx","useState","dayjs","useRef","throttle","useEffect","Icon","KeyboardArrowLeftRound","KeyboardArrowRightRound","classNames","Helpericon","Dates"],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ var classNames__default = /*#__PURE__*/_interopDefaultCompat(classNames);
|
|
|
17
17
|
|
|
18
18
|
const FORMAT = "hh:mm:ss";
|
|
19
19
|
function TimePicker(props) {
|
|
20
|
-
const { name, value, format = FORMAT, periods, placeholder = props.format ?? FORMAT, className, renderItem, onChange, onBlur, popupProps, ...restProps } = props;
|
|
20
|
+
const { name, value, format = FORMAT, periods, placeholder = props.format ?? FORMAT, className, renderItem, onChange, onBlur, popupProps, clear, onClear: onClearProp, ...restProps } = props;
|
|
21
21
|
const [timeValue, setTimeValue] = react.useState(value);
|
|
22
22
|
const [safeValue, setSafeValue] = react.useState(undefined);
|
|
23
23
|
const [active, setActive] = react.useState(false);
|
|
@@ -41,10 +41,14 @@ function TimePicker(props) {
|
|
|
41
41
|
popupProps?.onVisibleChange?.(v);
|
|
42
42
|
setActive(v);
|
|
43
43
|
};
|
|
44
|
+
const handleClear = () => {
|
|
45
|
+
setActive(false);
|
|
46
|
+
onClearProp?.();
|
|
47
|
+
};
|
|
44
48
|
react.useEffect(() => {
|
|
45
49
|
setTimeValue(value);
|
|
46
50
|
}, [value]);
|
|
47
|
-
return (jsxRuntime.jsx(popup.default, { visible: active, trigger: 'click', position: 'bottom', arrow: false, align: 'start', ...popupProps, onVisibleChange: handleVisibleChange, content: jsxRuntime.jsx(panel.default, { value: timeValue, format: format, periods: periods, renderItem: renderItem, onChange: handleChange, onFallback: handleFallback }), children: jsxRuntime.jsx(input.default, { value: timeValue, placeholder: placeholder, append: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.AccessTimeRound, {}), className: 'i-timepicker-icon', size: '1em' }), onChange: handleChange, onBlur: handleBlur, className: classNames__default("i-timepicker-label", className), ...restProps }) }));
|
|
51
|
+
return (jsxRuntime.jsx(popup.default, { visible: active, trigger: 'click', position: 'bottom', arrow: false, align: 'start', ...popupProps, onVisibleChange: handleVisibleChange, content: jsxRuntime.jsx(panel.default, { value: timeValue, format: format, periods: periods, renderItem: renderItem, onChange: handleChange, onFallback: handleFallback }), children: jsxRuntime.jsx(input.default, { value: timeValue, placeholder: placeholder, append: jsxRuntime.jsx(icon.default, { icon: jsxRuntime.jsx(material.AccessTimeRound, {}), className: 'i-timepicker-icon', size: '1em' }), clear: clear, onClear: handleClear, onChange: handleChange, onBlur: handleBlur, className: classNames__default("i-timepicker-label", className), ...restProps }) }));
|
|
48
52
|
}
|
|
49
53
|
|
|
50
54
|
exports.default = TimePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { ITimePicker } from \"../type\";\nimport Panel from \"./panel\";\n\nconst FORMAT = \"hh:mm:ss\";\n\nexport default function TimePicker(props: ITimePicker) {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tformat = FORMAT,\n\t\tperiods,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\t...restProps\n\t} = props;\n\tconst [timeValue, setTimeValue] = useState(value);\n\tconst [safeValue, setSafeValue] = useState(undefined);\n\tconst [active, setActive] = useState<boolean>(false);\n\n\tconst handleChange = (v) => {\n\t\tsetTimeValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tsetSafeValue(v);\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!timeValue) return;\n\n\t\tsetTimeValue(safeValue);\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleValidTime();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\t{...popupProps}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tformat={format}\n\t\t\t\t\tperiods={periods}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonFallback={handleFallback}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={timeValue}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<AccessTimeRound />}\n\t\t\t\t\t\tclassName='i-timepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classNames(\"i-timepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"names":["useState","useEffect","_jsx","Popup","Panel","Input","Icon","AccessTimeRound","classNames"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,MAAM,GAAG,UAAU;AAEX,SAAU,UAAU,CAAC,KAAkB,EAAA;AACpD,IAAA,MAAM,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,MAAM,EACf,OAAO,EACP,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,GAAG,SAAS,EACZ,GAAG,KAAK;IACT,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../packages/components/picker/time/index.tsx"],"sourcesContent":["import { AccessTimeRound } from \"@ricons/material\";\nimport classNames from \"classnames\";\nimport { useEffect, useState } from \"react\";\nimport Icon from \"../../icon\";\nimport Input from \"../../input\";\nimport Popup from \"../../popup\";\nimport { ITimePicker } from \"../type\";\nimport Panel from \"./panel\";\n\nconst FORMAT = \"hh:mm:ss\";\n\nexport default function TimePicker(props: ITimePicker) {\n\tconst {\n\t\tname,\n\t\tvalue,\n\t\tformat = FORMAT,\n\t\tperiods,\n\t\tplaceholder = props.format ?? FORMAT,\n\t\tclassName,\n\t\trenderItem,\n\t\tonChange,\n\t\tonBlur,\n\t\tpopupProps,\n\t\tclear,\n\t\tonClear: onClearProp,\n\t\t...restProps\n\t} = props;\n\tconst [timeValue, setTimeValue] = useState(value);\n\tconst [safeValue, setSafeValue] = useState(undefined);\n\tconst [active, setActive] = useState<boolean>(false);\n\n\n\tconst handleChange = (v) => {\n\t\tsetTimeValue(v);\n\t\tonChange?.(v);\n\t};\n\n\tconst handleFallback = (v) => {\n\t\tsetSafeValue(v);\n\t};\n\n\tconst handleValidTime = () => {\n\t\tif (!timeValue) return;\n\n\t\tsetTimeValue(safeValue);\n\t};\n\n\tconst handleBlur = (e) => {\n\t\tonBlur?.(e);\n\t\thandleValidTime();\n\t};\n\n\tconst handleVisibleChange = (v) => {\n\t\tpopupProps?.onVisibleChange?.(v);\n\t\tsetActive(v);\n\t};\n\n\tconst handleClear = () => {\n\t\tsetActive(false);\n\t\tonClearProp?.();\n\t};\n\n\tuseEffect(() => {\n\t\tsetTimeValue(value);\n\t}, [value]);\n\n\treturn (\n\t\t<Popup\n\t\t\tvisible={active}\n\t\t\ttrigger='click'\n\t\t\tposition='bottom'\n\t\t\tarrow={false}\n\t\t\talign='start'\n\t\t\t{...popupProps}\n\t\t\tonVisibleChange={handleVisibleChange}\n\t\t\tcontent={\n\t\t\t\t<Panel\n\t\t\t\t\tvalue={timeValue}\n\t\t\t\t\tformat={format}\n\t\t\t\t\tperiods={periods}\n\t\t\t\t\trenderItem={renderItem}\n\t\t\t\t\tonChange={handleChange}\n\t\t\t\t\tonFallback={handleFallback}\n\t\t\t\t/>\n\t\t\t}\n\t\t>\n\t\t\t<Input\n\t\t\t\tvalue={timeValue}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tappend={\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={<AccessTimeRound />}\n\t\t\t\t\t\tclassName='i-timepicker-icon'\n\t\t\t\t\t\tsize='1em'\n\t\t\t\t\t/>\n\t\t\t\t}\n\t\t\t\tclear={clear}\n\t\t\t\tonClear={handleClear}\n\t\t\t\tonChange={handleChange}\n\t\t\t\tonBlur={handleBlur}\n\t\t\t\tclassName={classNames(\"i-timepicker-label\", className)}\n\t\t\t\t{...restProps}\n\t\t\t/>\n\t\t</Popup>\n\t);\n}\n"],"names":["useState","useEffect","_jsx","Popup","Panel","Input","Icon","AccessTimeRound","classNames"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,MAAM,GAAG,UAAU;AAEX,SAAU,UAAU,CAAC,KAAkB,EAAA;AACpD,IAAA,MAAM,EACL,IAAI,EACJ,KAAK,EACL,MAAM,GAAG,MAAM,EACf,OAAO,EACP,WAAW,GAAG,KAAK,CAAC,MAAM,IAAI,MAAM,EACpC,SAAS,EACT,UAAU,EACV,QAAQ,EACR,MAAM,EACN,UAAU,EACV,KAAK,EACL,OAAO,EAAE,WAAW,EACpB,GAAG,SAAS,EACZ,GAAG,KAAK;IACT,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,KAAK,CAAC;IACjD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAGA,cAAQ,CAAC,SAAS,CAAC;IACrD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAGA,cAAQ,CAAU,KAAK,CAAC;AAGpD,IAAA,MAAM,YAAY,GAAG,CAAC,CAAC,KAAI;QAC1B,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,QAAQ,GAAG,CAAC,CAAC;AACd,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,CAAC,CAAC,KAAI;QAC5B,YAAY,CAAC,CAAC,CAAC;AAChB,IAAA,CAAC;IAED,MAAM,eAAe,GAAG,MAAK;AAC5B,QAAA,IAAI,CAAC,SAAS;YAAE;QAEhB,YAAY,CAAC,SAAS,CAAC;AACxB,IAAA,CAAC;AAED,IAAA,MAAM,UAAU,GAAG,CAAC,CAAC,KAAI;AACxB,QAAA,MAAM,GAAG,CAAC,CAAC;AACX,QAAA,eAAe,EAAE;AAClB,IAAA,CAAC;AAED,IAAA,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAI;AACjC,QAAA,UAAU,EAAE,eAAe,GAAG,CAAC,CAAC;QAChC,SAAS,CAAC,CAAC,CAAC;AACb,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;QACxB,SAAS,CAAC,KAAK,CAAC;QAChB,WAAW,IAAI;AAChB,IAAA,CAAC;IAEDC,eAAS,CAAC,MAAK;QACd,YAAY,CAAC,KAAK,CAAC;AACpB,IAAA,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAEX,QACCC,cAAA,CAACC,aAAK,EAAA,EACL,OAAO,EAAE,MAAM,EACf,OAAO,EAAC,OAAO,EACf,QAAQ,EAAC,QAAQ,EACjB,KAAK,EAAE,KAAK,EACZ,KAAK,EAAC,OAAO,EAAA,GACT,UAAU,EACd,eAAe,EAAE,mBAAmB,EACpC,OAAO,EACND,cAAA,CAACE,aAAK,EAAA,EACL,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,EACtB,UAAU,EAAE,cAAc,EAAA,CACzB,EAAA,QAAA,EAGHF,eAACG,aAAK,EAAA,EACL,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,WAAW,EACxB,MAAM,EACLH,cAAA,CAACI,YAAI,EAAA,EACJ,IAAI,EAAEJ,cAAA,CAACK,wBAAe,EAAA,EAAA,CAAG,EACzB,SAAS,EAAC,mBAAmB,EAC7B,IAAI,EAAC,KAAK,EAAA,CACT,EAEH,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,UAAU,EAClB,SAAS,EAAEC,mBAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,EAAA,GAClD,SAAS,EAAA,CACZ,EAAA,CACK;AAEV;;;;"}
|
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var material = require('@ricons/material');
|
|
7
6
|
var hooks = require('../../js/hooks.js');
|
|
8
7
|
var button = require('../button/button.js');
|
|
9
8
|
var flex = require('../flex/flex.js');
|
|
10
|
-
var icon = require('../icon/icon.js');
|
|
11
9
|
var popup = require('../popup/popup.js');
|
|
12
10
|
|
|
13
11
|
const defaultOk = {
|
|
@@ -18,7 +16,7 @@ const defaultCancel = {
|
|
|
18
16
|
flat: true,
|
|
19
17
|
};
|
|
20
18
|
const Popconfirm = (props) => {
|
|
21
|
-
const { trigger = "click", visible, icon
|
|
19
|
+
const { trigger = "click", visible, icon, content, okButtonProps, cancelButtonProps, children, align, position = "top", offset = 12, extra, onOk, onClose, ...restProps } = props;
|
|
22
20
|
const state = hooks.useReactive({
|
|
23
21
|
loading: false,
|
|
24
22
|
visible,
|
|
@@ -49,7 +47,7 @@ const Popconfirm = (props) => {
|
|
|
49
47
|
await onClose?.();
|
|
50
48
|
state.visible = false;
|
|
51
49
|
};
|
|
52
|
-
const popconfirmContent = (jsxRuntime.jsxs("div", { className: "i-popconfirm", children: [jsxRuntime.jsxs(flex.default, { gap: ".5em", children: [icon
|
|
50
|
+
const popconfirmContent = (jsxRuntime.jsxs("div", { className: "i-popconfirm", children: [jsxRuntime.jsxs(flex.default, { gap: ".5em", children: [icon, jsxRuntime.jsx("div", { className: "i-popconfirm-content", children: content })] }), jsxRuntime.jsxs(flex.default, { gap: 12, justify: "flex-end", className: "i-popconfirm-footer", children: [cancelButtonProps !== null && (jsxRuntime.jsx(button.default, { ...cancel, onClick: handleCancel })), extra, okButtonProps !== null && (jsxRuntime.jsx(button.default, { loading: state.loading, ...ok, onClick: handleOk }))] })] }));
|
|
53
51
|
return (jsxRuntime.jsx(popup.default, { content: popconfirmContent, ...restProps, trigger: trigger, visible: state.visible, align: align, offset: offset, position: position, onVisibleChange: handleVisibleChange, children: children }));
|
|
54
52
|
};
|
|
55
53
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"popconfirm.js","sources":["../../../../packages/components/popconfirm/popconfirm.tsx"],"sourcesContent":["import { MouseEvent } from \"react\";\nimport { useReactive } from \"../../js/hooks\";\nimport Button from \"../button\";\nimport { IButton } from \"../button/type\";\nimport Flex from \"../flex\";\nimport Popup from \"../popup\";\nimport \"./index.css\";\nimport { IPopconfirm } from \"./type\";\n\nconst defaultOk = {\n children: \"确定\",\n};\n\nconst defaultCancel = {\n children: \"取消\",\n flat: true,\n};\n\nconst Popconfirm = (props: IPopconfirm) => {\n const {\n trigger = \"click\",\n visible,\n icon,\n content,\n okButtonProps,\n cancelButtonProps,\n children,\n align,\n position = \"top\",\n offset = 12,\n extra,\n onOk,\n onClose,\n ...restProps\n } = props;\n\n const state = useReactive({\n loading: false,\n visible,\n });\n\n const ok: IButton = okButtonProps\n ? Object.assign({}, defaultOk, okButtonProps)\n : defaultOk;\n const cancel: IButton = cancelButtonProps\n ? Object.assign({}, defaultCancel, cancelButtonProps)\n : defaultCancel;\n\n const handleVisibleChange = (v: boolean) => {\n state.visible = v;\n restProps.onVisibleChange?.(v);\n };\n\n const handleOk = async (e: MouseEvent<HTMLElement>) => {\n state.loading = true;\n ok.onClick?.(e);\n try {\n await onOk?.();\n state.visible = false;\n } finally {\n state.loading = false;\n }\n };\n\n const handleCancel = async (e: MouseEvent<HTMLElement>) => {\n cancel.onClick?.(e);\n await onClose?.();\n state.visible = false;\n };\n\n const popconfirmContent = (\n <div className=\"i-popconfirm\">\n <Flex gap=\".5em\">\n {icon}\n <div className=\"i-popconfirm-content\">{content}</div>\n </Flex>\n\n <Flex gap={12} justify=\"flex-end\" className=\"i-popconfirm-footer\">\n {cancelButtonProps !== null && (\n <Button {...cancel} onClick={handleCancel} />\n )}\n {extra}\n {okButtonProps !== null && (\n <Button\n loading={state.loading}\n {...ok}\n onClick={handleOk}\n />\n )}\n </Flex>\n </div>\n );\n\n return (\n <Popup\n content={popconfirmContent}\n {...restProps}\n trigger={trigger}\n visible={state.visible}\n align={align}\n offset={offset}\n position={position}\n onVisibleChange={handleVisibleChange}\n >\n {children}\n </Popup>\n );\n};\n\nexport default Popconfirm;\n"],"names":["useReactive","_jsxs","Flex","_jsx","Button","Popup"],"mappings":"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"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -18,12 +18,13 @@ var image = require('./components/image/image.js');
|
|
|
18
18
|
var input = require('./components/input/input.js');
|
|
19
19
|
var list = require('./components/list/list.js');
|
|
20
20
|
var loading = require('./components/loading/loading.js');
|
|
21
|
-
var
|
|
21
|
+
var index$2 = require('./components/message/index.js');
|
|
22
22
|
var modal = require('./components/modal/modal.js');
|
|
23
23
|
var pagination = require('./components/pagination/pagination.js');
|
|
24
24
|
var index = require('./components/picker/colors/index.js');
|
|
25
25
|
var index$1 = require('./components/picker/dates/index.js');
|
|
26
|
-
var index$
|
|
26
|
+
var index$3 = require('./components/picker/time/index.js');
|
|
27
|
+
var daterange = require('./components/picker/daterange/daterange.js');
|
|
27
28
|
var popconfirm = require('./components/popconfirm/popconfirm.js');
|
|
28
29
|
var popup = require('./components/popup/popup.js');
|
|
29
30
|
var progress = require('./components/progress/progress.js');
|
|
@@ -40,8 +41,8 @@ var text = require('./components/text/text.js');
|
|
|
40
41
|
var tree = require('./components/tree/tree.js');
|
|
41
42
|
var upload = require('./components/upload/upload.js');
|
|
42
43
|
var video = require('./components/video/video.js');
|
|
43
|
-
var index$
|
|
44
|
-
var index$
|
|
44
|
+
var index$4 = require('./js/usePreview/index.js');
|
|
45
|
+
var index$5 = require('./js/useTheme/index.js');
|
|
45
46
|
|
|
46
47
|
|
|
47
48
|
|
|
@@ -63,12 +64,13 @@ exports.Image = image.default;
|
|
|
63
64
|
exports.Input = input.default;
|
|
64
65
|
exports.List = list.default;
|
|
65
66
|
exports.Loading = loading.default;
|
|
66
|
-
exports.Message =
|
|
67
|
+
exports.Message = index$2.default;
|
|
67
68
|
exports.Modal = modal.default;
|
|
68
69
|
exports.Pagination = pagination.default;
|
|
69
70
|
exports.ColorPicker = index.default;
|
|
70
71
|
exports.DatePicker = index$1.default;
|
|
71
|
-
exports.TimePicker = index$
|
|
72
|
+
exports.TimePicker = index$3.default;
|
|
73
|
+
exports.DateRange = daterange.default;
|
|
72
74
|
exports.Popconfirm = popconfirm.default;
|
|
73
75
|
exports.Popup = popup.default;
|
|
74
76
|
exports.Progress = progress.default;
|
|
@@ -85,6 +87,6 @@ exports.Text = text.default;
|
|
|
85
87
|
exports.Tree = tree.default;
|
|
86
88
|
exports.Upload = upload.default;
|
|
87
89
|
exports.Video = video.default;
|
|
88
|
-
exports.usePreview = index$
|
|
89
|
-
exports.useTheme = index$
|
|
90
|
+
exports.usePreview = index$4.default;
|
|
91
|
+
exports.useTheme = index$5.default;
|
|
90
92
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/lib/cjs/js/hooks.js
CHANGED
|
@@ -64,12 +64,15 @@ function useMouseUp(listener, options) {
|
|
|
64
64
|
}
|
|
65
65
|
function useKeydown(listener, options) {
|
|
66
66
|
initEventsOnce();
|
|
67
|
+
const listenerRef = react.useRef(listener);
|
|
68
|
+
listenerRef.current = listener;
|
|
67
69
|
react.useEffect(() => {
|
|
68
70
|
if (options?.disabled)
|
|
69
71
|
return;
|
|
70
|
-
|
|
72
|
+
const handler = (e) => listenerRef.current(e);
|
|
73
|
+
KeydownEvents.add(handler);
|
|
71
74
|
return () => {
|
|
72
|
-
KeydownEvents.delete(
|
|
75
|
+
KeydownEvents.delete(handler);
|
|
73
76
|
};
|
|
74
77
|
}, []);
|
|
75
78
|
}
|
package/lib/cjs/js/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import {\n\tDependencyList,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\tconst os = window.navigator.platform;\n\n\tif (os.toLowerCase().includes(\"mac\")) {\n\t\tdocument.documentElement.classList.add(\"os-mac\");\n\t} else if (os.toLowerCase().includes(\"win\")) {\n\t\tdocument.documentElement.classList.add(\"os-windows\");\n\t}\n}\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tKeydownEvents.add(listener);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<IntersectionObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new IntersectionObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t\t});\n\t\t}, configs);\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\twmRef.current.set(target, callback);\n\t\tioRef.current.observe(target);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<ResizeObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new ResizeObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target);\n\t\t\t});\n\t\t});\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\tioRef.current.observe(target);\n\t\twmRef.current.set(target, callback);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"names":["useEffect","useState","useRef","useCallback"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks.js","sources":["../../../packages/js/hooks.ts"],"sourcesContent":["import {\n\tDependencyList,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from \"react\";\n\ntype TMouseEvent = (e: MouseEvent) => void;\ntype TKeyboardEvent = (e: KeyboardEvent) => void;\ntype TEventOption = {\n\tdisabled?: boolean;\n};\n\nif (typeof window !== \"undefined\" && typeof document !== \"undefined\") {\n\tconst os = window.navigator.platform;\n\n\tif (os.toLowerCase().includes(\"mac\")) {\n\t\tdocument.documentElement.classList.add(\"os-mac\");\n\t} else if (os.toLowerCase().includes(\"win\")) {\n\t\tdocument.documentElement.classList.add(\"os-windows\");\n\t}\n}\n\nconst MouseMoveEvents = new Set<TMouseEvent>();\nconst MouseUpEvents = new Set<TMouseEvent>();\nconst KeydownEvents = new Set<TKeyboardEvent>();\n\nlet initialized = false;\n\nconst initEvents = () => {\n\tif (typeof document === \"undefined\" || initialized) return;\n\tinitialized = true;\n\n\tconst touchable = \"ontouchend\" in document;\n\tconst EVENTS: Record<string, any> = {\n\t\tMOVE: touchable ? \"touchmove\" : \"mousemove\",\n\t\tUP: touchable ? \"touchend\" : \"mouseup\",\n\t\tKEYDOWN: \"keydown\",\n\t};\n\n\tdocument.addEventListener(\n\t\tEVENTS.MOVE,\n\t\t(e) => {\n\t\t\tfor (const listener of MouseMoveEvents.values()) {\n\t\t\t\tlistener(e);\n\t\t\t}\n\t\t},\n\t\t{ passive: false },\n\t);\n\n\tdocument.addEventListener(EVENTS.UP, (e) => {\n\t\tfor (const listener of MouseUpEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n\n\tdocument.addEventListener(EVENTS.KEYDOWN, (e) => {\n\t\tfor (const listener of KeydownEvents.values()) {\n\t\t\tlistener(e);\n\t\t}\n\t});\n};\n\nfunction initEventsOnce() {\n\tuseEffect(initEvents, []);\n}\n\nexport function useMouseMove(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseMoveEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseMoveEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useMouseUp(listener: TMouseEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tMouseUpEvents.add(listener);\n\t\treturn () => {\n\t\t\tMouseUpEvents.delete(listener);\n\t\t};\n\t}, []);\n}\n\nexport function useKeydown(listener: TKeyboardEvent, options?: TEventOption) {\n\tinitEventsOnce();\n\n\tconst listenerRef = useRef(listener);\n\tlistenerRef.current = listener;\n\n\tuseEffect(() => {\n\t\tif (options?.disabled) return;\n\n\t\tconst handler = (e: KeyboardEvent) => listenerRef.current(e);\n\t\tKeydownEvents.add(handler);\n\t\treturn () => {\n\t\t\tKeydownEvents.delete(handler);\n\t\t};\n\t}, []);\n}\n\nexport function useCreation<T>(factory: () => T, deps: DependencyList) {\n\treturn useMemo(factory, deps);\n}\n\nexport function useReactive<T extends object>(initialState: T): T {\n\tconst [, setFlag] = useState(0);\n\tconst scheduledRef = useRef(false);\n\tconst proxyCacheRef = useRef(new WeakMap<object, any>());\n\tconst rootRef = useRef<T | null>(null);\n\tconst proxyRef = useRef<T | null>(null);\n\n\tconst notify = () => {\n\t\tif (scheduledRef.current) return;\n\t\tscheduledRef.current = true;\n\n\t\tconst flush = () => {\n\t\t\tscheduledRef.current = false;\n\t\t\tsetFlag((n) => n + 1);\n\t\t};\n\n\t\tif (typeof queueMicrotask !== \"undefined\") {\n\t\t\tqueueMicrotask(flush);\n\t\t\treturn;\n\t\t}\n\n\t\tPromise.resolve().then(flush);\n\t};\n\n\tconst createProxy = (target: any): any => {\n\t\tif (!target || typeof target !== \"object\") return target;\n\n\t\tif (!Array.isArray(target)) {\n\t\t\tconst proto = Object.getPrototypeOf(target);\n\t\t\tconst isPlainObject = proto === Object.prototype || proto === null;\n\t\t\tif (!isPlainObject) return target;\n\t\t}\n\n\t\tconst cached = proxyCacheRef.current.get(target);\n\t\tif (cached) return cached;\n\n\t\tconst proxy = new Proxy(target, {\n\t\t\tget(t, p, r) {\n\t\t\t\treturn createProxy(Reflect.get(t, p, r));\n\t\t\t},\n\t\t\tset(t, p, v, r) {\n\t\t\t\tconst prev = Reflect.get(t, p, r);\n\t\t\t\tconst ok = Reflect.set(t, p, v, r);\n\t\t\t\tif (prev !== v) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t\tdeleteProperty(t, p) {\n\t\t\t\tconst had = Object.prototype.hasOwnProperty.call(t, p);\n\t\t\t\tconst ok = Reflect.deleteProperty(t, p);\n\t\t\t\tif (had) notify();\n\t\t\t\treturn ok;\n\t\t\t},\n\t\t});\n\n\t\tproxyCacheRef.current.set(target, proxy);\n\t\treturn proxy;\n\t};\n\n\tif (!proxyRef.current) {\n\t\trootRef.current = initialState;\n\t\tproxyRef.current = createProxy(rootRef.current);\n\t}\n\n\treturn proxyRef.current as T;\n}\n\ntype TSetState<T> = (\n\tvalue: T | undefined | ((prev: T | undefined) => T),\n) => void;\n\ntype TLocalStorageOptions<T> = {\n\tdefaultValue?: T | (() => T);\n\tlistenStorageChange?: boolean;\n};\n\nexport function useLocalStorageState<T>(\n\tkey: string,\n\toptions?: TLocalStorageOptions<T>,\n): [T | undefined, TSetState<T>] {\n\tconst { defaultValue, listenStorageChange } = options ?? {};\n\n\tconst getDefault = () => {\n\t\treturn typeof defaultValue === \"function\"\n\t\t\t? (defaultValue as () => T)()\n\t\t\t: defaultValue;\n\t};\n\n\tconst read = (): T | undefined => {\n\t\tif (typeof window === \"undefined\") return getDefault();\n\n\t\tconst raw = window.localStorage.getItem(key);\n\t\tif (raw === null) return getDefault();\n\n\t\ttry {\n\t\t\treturn JSON.parse(raw) as T;\n\t\t} catch (e) {\n\t\t\treturn raw as unknown as T;\n\t\t}\n\t};\n\n\tconst [state, setState] = useState<T | undefined>(() => read());\n\n\tconst set: TSetState<T> = (value) => {\n\t\tsetState((prev) => {\n\t\t\tconst next =\n\t\t\t\ttypeof value === \"function\"\n\t\t\t\t\t? (value as (prev: T | undefined) => T)(prev)\n\t\t\t\t\t: value;\n\n\t\t\tif (typeof window !== \"undefined\") {\n\t\t\t\tif (next === undefined) {\n\t\t\t\t\twindow.localStorage.removeItem(key);\n\t\t\t\t} else {\n\t\t\t\t\twindow.localStorage.setItem(key, JSON.stringify(next));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn next;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (!listenStorageChange) return;\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onStorage = (e: StorageEvent) => {\n\t\t\tif (e.key !== key) return;\n\n\t\t\tif (e.newValue === null) {\n\t\t\t\tsetState(getDefault());\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tsetState(JSON.parse(e.newValue) as T);\n\t\t\t} catch (err) {\n\t\t\t\tsetState(e.newValue as unknown as T);\n\t\t\t}\n\t\t};\n\n\t\twindow.addEventListener(\"storage\", onStorage);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"storage\", onStorage);\n\t\t};\n\t}, [key, listenStorageChange]);\n\n\treturn [state, set];\n}\n\ntype TResponsiveConfig = Record<string, number>;\n\nlet responsiveConfig: TResponsiveConfig = {};\n\nexport function configResponsive(config: TResponsiveConfig) {\n\tresponsiveConfig = config;\n}\n\nexport function useResponsive() {\n\tconst compute = () => {\n\t\tif (typeof window === \"undefined\") return {};\n\t\tconst w = window.innerWidth;\n\t\tconst result: Record<string, boolean> = {};\n\n\t\tfor (const key in responsiveConfig) {\n\t\t\tresult[key] = w >= responsiveConfig[key];\n\t\t}\n\n\t\treturn result;\n\t};\n\n\tconst [state, setState] = useState<Record<string, boolean>>(() =>\n\t\tcompute(),\n\t);\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst onResize = () => {\n\t\t\tconst next = compute();\n\t\t\tsetState((prev) => {\n\t\t\t\tconst prevKeys = Object.keys(prev);\n\t\t\t\tconst nextKeys = Object.keys(next);\n\t\t\t\tif (prevKeys.length !== nextKeys.length) return next;\n\n\t\t\t\tfor (const k of nextKeys) {\n\t\t\t\t\tif (prev[k] !== next[k]) return next;\n\t\t\t\t}\n\n\t\t\t\treturn prev;\n\t\t\t});\n\t\t};\n\n\t\tonResize();\n\t\twindow.addEventListener(\"resize\", onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", onResize);\n\t\t};\n\t}, []);\n\n\treturn state;\n}\n\ntype TSize = { width: number; height: number };\n\nexport function useSize(target: any): TSize | undefined {\n\tconst [size, setSize] = useState<TSize>();\n\n\tuseEffect(() => {\n\t\tif (typeof window === \"undefined\") return;\n\n\t\tconst resolveTarget = () => {\n\t\t\tif (!target) return null;\n\t\t\tif (typeof target === \"function\") return target();\n\t\t\tif (typeof target === \"object\" && \"current\" in target) {\n\t\t\t\treturn target.current;\n\t\t\t}\n\t\t\treturn target;\n\t\t};\n\n\t\tconst el = resolveTarget() as HTMLElement | null;\n\t\tif (!el) return;\n\n\t\tconst update = () => {\n\t\t\tconst rect = el.getBoundingClientRect();\n\t\t\tsetSize({ width: rect.width, height: rect.height });\n\t\t};\n\n\t\tupdate();\n\n\t\tlet ro: ResizeObserver | undefined;\n\t\tif (typeof ResizeObserver !== \"undefined\") {\n\t\t\tro = new ResizeObserver(update);\n\t\t\tro.observe(el);\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", update);\n\t\treturn () => {\n\t\t\twindow.removeEventListener(\"resize\", update);\n\t\t\tro?.disconnect();\n\t\t};\n\t}, [target]);\n\n\treturn size;\n}\n\nconst defaultObserver = {\n\tobserve: undefined,\n\tunobserve: undefined,\n\tdisconnect: undefined,\n};\n\nexport function useIntersectionObserver(configs?: IntersectionObserverInit) {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<IntersectionObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new IntersectionObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target, entry.isIntersecting);\n\t\t\t});\n\t\t}, configs);\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\twmRef.current.set(target, callback);\n\t\tioRef.current.observe(target);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n\nexport function useResizeObserver() {\n\tconst wmRef = useRef(new WeakMap());\n\tconst ioRef = useRef<ResizeObserver | undefined>(undefined);\n\n\tif (typeof window !== \"undefined\" && !ioRef.current) {\n\t\tioRef.current = new ResizeObserver((entries) => {\n\t\t\tentries.map((entry) => {\n\t\t\t\tconst callback = wmRef.current.get(entry.target);\n\t\t\t\tcallback?.(entry.target);\n\t\t\t});\n\t\t});\n\t}\n\n\tconst observe = useCallback((target: HTMLElement, callback: Function) => {\n\t\tif (!target || !ioRef.current || wmRef.current.get(target)) return;\n\t\tioRef.current.observe(target);\n\t\twmRef.current.set(target, callback);\n\t}, []);\n\n\tconst unobserve = useCallback((target: HTMLElement) => {\n\t\tif (!target || !ioRef.current) return;\n\t\tioRef.current.unobserve(target);\n\t\twmRef.current.delete(target);\n\t}, []);\n\n\tconst disconnect = useCallback(() => {\n\t\tioRef.current?.disconnect();\n\t}, []);\n\n\tuseEffect(() => {\n\t\treturn () => {\n\t\t\tioRef.current?.disconnect();\n\t\t};\n\t}, []);\n\n\tif (typeof window === \"undefined\") {\n\t\treturn {\n\t\t\t...defaultObserver,\n\t\t};\n\t}\n\n\treturn {\n\t\tobserve,\n\t\tunobserve,\n\t\tdisconnect,\n\t};\n}\n"],"names":["useEffect","useRef","useState","useCallback"],"mappings":"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"}
|
package/lib/css/colors.css
CHANGED