@zhenliang/sheet 0.0.7 → 0.0.8
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/dist/core/editor/dateEditor/index.d.ts +2 -1
- package/dist/core/editor/dateEditor/index.js +43 -34
- package/dist/core/editor/dateEditor/index.js.map +1 -1
- package/dist/core/editor/index.d.ts +1 -1
- package/dist/core/editor/index.js +1 -1
- package/dist/core/editor/index.js.map +1 -1
- package/dist/core/editor/numberEditor/index.d.ts +1 -1
- package/dist/core/editor/numberEditor/index.js +4 -0
- package/dist/core/editor/numberEditor/index.js.map +1 -1
- package/dist/core/editor/selectEditor/index.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +13 -2
- package/dist/core/editor/selectEditor/index.js.map +1 -1
- package/dist/core/reducers/sideEffectReducer.js +14 -3
- package/dist/core/reducers/sideEffectReducer.js.map +1 -1
- package/dist/core/reducers/stateReducer.js +6 -2
- package/dist/core/reducers/stateReducer.js.map +1 -1
- package/dist/core/sheet/Cell.js +3 -2
- package/dist/core/sheet/Cell.js.map +1 -1
- package/dist/core/sheet/index.js +8 -7
- package/dist/core/sheet/index.js.map +1 -1
- package/dist/core/sheet/useVirtualList.js +8 -0
- package/dist/core/sheet/useVirtualList.js.map +1 -1
- package/dist/core/shell/draggableShell/index.d.ts +1 -0
- package/dist/core/shell/tableShell.d.ts +1 -0
- package/dist/example/antComponent.js +2 -2
- package/dist/example/antComponent.js.map +1 -1
- package/dist/hooks/useEventBus.d.ts +1 -0
- package/dist/hooks/useMouse.js +34 -18
- package/dist/hooks/useMouse.js.map +1 -1
- package/dist/type/sheetTable.d.ts +2 -2
- package/dist/type/sheetTable.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { DatePickerProps } from 'antd';
|
|
1
2
|
import 'antd/es/date-picker/style/index.css';
|
|
2
3
|
import type { SheetType } from "../../../type";
|
|
3
4
|
import './index.less';
|
|
4
|
-
export declare const
|
|
5
|
+
export declare const GetDateEditor: (dateProps?: Pick<DatePickerProps, 'disabledDate' | 'disabled' | 'allowClear' | 'placeholder'>) => SheetType.CellEditor;
|
|
@@ -1,43 +1,52 @@
|
|
|
1
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
1
7
|
import { DatePicker } from 'antd';
|
|
2
8
|
import 'antd/es/date-picker/style/index.css';
|
|
3
9
|
import moment from 'moment';
|
|
4
10
|
import { useEffect, useMemo, useRef } from 'react';
|
|
5
11
|
import "./index.less";
|
|
6
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
-
export var
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
13
|
+
export var GetDateEditor = function GetDateEditor(dateProps) {
|
|
14
|
+
var DateEditor = function DateEditor(props) {
|
|
15
|
+
var value = props.value,
|
|
16
|
+
onChange = props.onChange,
|
|
17
|
+
onConfirm = props.onConfirm;
|
|
18
|
+
var dateRef = useRef(null);
|
|
19
|
+
useEffect(function () {
|
|
20
|
+
var _dateRef$current;
|
|
21
|
+
dateRef === null || dateRef === void 0 ? void 0 : (_dateRef$current = dateRef.current) === null || _dateRef$current === void 0 ? void 0 : _dateRef$current.focus();
|
|
22
|
+
}, []);
|
|
23
|
+
var val = useMemo(function () {
|
|
24
|
+
return value && moment(value);
|
|
25
|
+
}, [value]);
|
|
26
|
+
var handleChange = function handleChange(value) {
|
|
27
|
+
onChange(value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD'));
|
|
28
|
+
onConfirm(value === null || value === void 0 ? void 0 : value.format('YYYY-MM-DD'));
|
|
29
|
+
};
|
|
30
|
+
return /*#__PURE__*/_jsx(DatePicker, _objectSpread({
|
|
31
|
+
open: true,
|
|
32
|
+
ref: dateRef,
|
|
33
|
+
className: "date-editor",
|
|
34
|
+
value: val,
|
|
35
|
+
onMouseDown: function onMouseDown(e) {
|
|
36
|
+
return e.stopPropagation();
|
|
37
|
+
},
|
|
38
|
+
onChange: handleChange
|
|
39
|
+
}, dateProps));
|
|
22
40
|
};
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
DateEditor.checker = function (value) {
|
|
35
|
-
var reg = /^[1-9]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/;
|
|
36
|
-
return reg.test(value);
|
|
37
|
-
};
|
|
38
|
-
DateEditor.formatter = function (value) {
|
|
39
|
-
var _DateEditor$checker;
|
|
40
|
-
if (!(DateEditor !== null && DateEditor !== void 0 && (_DateEditor$checker = DateEditor.checker) !== null && _DateEditor$checker !== void 0 && _DateEditor$checker.call(DateEditor, value))) return null;
|
|
41
|
-
return value.replace('/', '-').replace('/', '-');
|
|
41
|
+
DateEditor.checker = function (value) {
|
|
42
|
+
var reg = /^[1-9]\d{3}(-|\/)(0[1-9]|1[0-2])(-|\/)(0[1-9]|[1-2][0-9]|3[0-1])$/;
|
|
43
|
+
return reg.test(value);
|
|
44
|
+
};
|
|
45
|
+
DateEditor.formatter = function (value) {
|
|
46
|
+
var _DateEditor$checker;
|
|
47
|
+
if (!(DateEditor !== null && DateEditor !== void 0 && (_DateEditor$checker = DateEditor.checker) !== null && _DateEditor$checker !== void 0 && _DateEditor$checker.call(DateEditor, value))) return null;
|
|
48
|
+
return value.replace('/', '-').replace('/', '-');
|
|
49
|
+
};
|
|
50
|
+
return DateEditor;
|
|
42
51
|
};
|
|
43
52
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["DatePicker","moment","useEffect","useMemo","useRef","jsx","_jsx","DateEditor","props","value","onChange","onConfirm","dateRef","_dateRef$current","current","focus","val","handleChange","format","open","ref","className","onMouseDown","e","stopPropagation","checker","reg","test","formatter","_DateEditor$checker","call","replace"],"sources":["../../../../src/core/editor/dateEditor/index.tsx"],"sourcesContent":["import { DatePicker } from 'antd';\nimport 'antd/es/date-picker/style/index.css';\n\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport moment from 'moment';\nimport { useEffect, useMemo, useRef } from 'react';\nimport './index.less';\n\nexport const DateEditor: SheetType.CellEditor = (props) => {\n
|
|
1
|
+
{"version":3,"names":["DatePicker","moment","useEffect","useMemo","useRef","jsx","_jsx","GetDateEditor","dateProps","DateEditor","props","value","onChange","onConfirm","dateRef","_dateRef$current","current","focus","val","handleChange","format","_objectSpread","open","ref","className","onMouseDown","e","stopPropagation","checker","reg","test","formatter","_DateEditor$checker","call","replace"],"sources":["../../../../src/core/editor/dateEditor/index.tsx"],"sourcesContent":["import { DatePicker, DatePickerProps } from 'antd';\nimport 'antd/es/date-picker/style/index.css';\n\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport moment from 'moment';\nimport { useEffect, useMemo, useRef } from 'react';\nimport './index.less';\n\nexport const GetDateEditor = (\n dateProps?: Pick<\n DatePickerProps,\n 'disabledDate' | 'disabled' | 'allowClear' | 'placeholder'\n >,\n) => {\n const DateEditor: SheetType.CellEditor = (props) => {\n const { value, onChange, onConfirm } = props;\n const dateRef = useRef<any>(null);\n\n useEffect(() => {\n dateRef?.current?.focus();\n }, []);\n\n const val = useMemo(() => value && moment(value as string), [value]);\n\n const handleChange = (value: any) => {\n onChange(value?.format('YYYY-MM-DD'));\n onConfirm(value?.format('YYYY-MM-DD'));\n };\n\n return (\n <DatePicker\n open\n ref={dateRef}\n className=\"date-editor\"\n value={val as any}\n onMouseDown={(e) => e.stopPropagation()}\n onChange={handleChange}\n {...dateProps}\n />\n );\n };\n\n DateEditor.checker = (value) => {\n const reg =\n /^[1-9]\\d{3}(-|\\/)(0[1-9]|1[0-2])(-|\\/)(0[1-9]|[1-2][0-9]|3[0-1])$/;\n return reg.test(value as string);\n };\n\n DateEditor.formatter = (value) => {\n if (!DateEditor?.checker?.(value)) return null;\n return (value as string).replace('/', '-').replace('/', '-');\n };\n\n return DateEditor;\n};\n"],"mappings":";;;;;;AAAA,SAASA,UAAU,QAAyB,MAAM;AAClD,OAAO,qCAAqC;AAG5C,OAAOC,MAAM,MAAM,QAAQ;AAC3B,SAASC,SAAS,EAAEC,OAAO,EAAEC,MAAM,QAAQ,OAAO;AAClD;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAEtB,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CACxBC,SAGC,EACE;EACH,IAAMC,UAAgC,GAAG,SAAnCA,UAAgCA,CAAIC,KAAK,EAAK;IAClD,IAAQC,KAAK,GAA0BD,KAAK,CAApCC,KAAK;MAAEC,QAAQ,GAAgBF,KAAK,CAA7BE,QAAQ;MAAEC,SAAS,GAAKH,KAAK,CAAnBG,SAAS;IAClC,IAAMC,OAAO,GAAGV,MAAM,CAAM,IAAI,CAAC;IAEjCF,SAAS,CAAC,YAAM;MAAA,IAAAa,gBAAA;MACdD,OAAO,aAAPA,OAAO,wBAAAC,gBAAA,GAAPD,OAAO,CAAEE,OAAO,cAAAD,gBAAA,uBAAhBA,gBAAA,CAAkBE,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,EAAE,CAAC;IAEN,IAAMC,GAAG,GAAGf,OAAO,CAAC;MAAA,OAAMQ,KAAK,IAAIV,MAAM,CAACU,KAAe,CAAC;IAAA,GAAE,CAACA,KAAK,CAAC,CAAC;IAEpE,IAAMQ,YAAY,GAAG,SAAfA,YAAYA,CAAIR,KAAU,EAAK;MACnCC,QAAQ,CAACD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAES,MAAM,CAAC,YAAY,CAAC,CAAC;MACrCP,SAAS,CAACF,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAES,MAAM,CAAC,YAAY,CAAC,CAAC;IACxC,CAAC;IAED,oBACEd,IAAA,CAACN,UAAU,EAAAqB,aAAA;MACTC,IAAI;MACJC,GAAG,EAAET,OAAQ;MACbU,SAAS,EAAC,aAAa;MACvBb,KAAK,EAAEO,GAAW;MAClBO,WAAW,EAAE,SAAAA,YAACC,CAAC;QAAA,OAAKA,CAAC,CAACC,eAAe,CAAC,CAAC;MAAA,CAAC;MACxCf,QAAQ,EAAEO;IAAa,GACnBX,SAAS,CACd,CAAC;EAEN,CAAC;EAEDC,UAAU,CAACmB,OAAO,GAAG,UAACjB,KAAK,EAAK;IAC9B,IAAMkB,GAAG,GACP,mEAAmE;IACrE,OAAOA,GAAG,CAACC,IAAI,CAACnB,KAAe,CAAC;EAClC,CAAC;EAEDF,UAAU,CAACsB,SAAS,GAAG,UAACpB,KAAK,EAAK;IAAA,IAAAqB,mBAAA;IAChC,IAAI,EAACvB,UAAU,aAAVA,UAAU,gBAAAuB,mBAAA,GAAVvB,UAAU,CAAEmB,OAAO,cAAAI,mBAAA,eAAnBA,mBAAA,CAAAC,IAAA,CAAAxB,UAAU,EAAYE,KAAK,CAAC,GAAE,OAAO,IAAI;IAC9C,OAAQA,KAAK,CAAYuB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAACA,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;EAC9D,CAAC;EAED,OAAOzB,UAAU;AACnB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { default as getCascaderEditor } from './cascaderEditor';
|
|
2
|
-
export {
|
|
2
|
+
export { GetDateEditor } from './dateEditor';
|
|
3
3
|
export { getNumberEditor, NumberEditor } from './numberEditor';
|
|
4
4
|
export { default as getSelectEditor } from './selectEditor';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { default as getCascaderEditor } from "./cascaderEditor";
|
|
2
|
-
export {
|
|
2
|
+
export { GetDateEditor } from "./dateEditor";
|
|
3
3
|
export { getNumberEditor, NumberEditor } from "./numberEditor";
|
|
4
4
|
export { default as getSelectEditor } from "./selectEditor";
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["default","getCascaderEditor","
|
|
1
|
+
{"version":3,"names":["default","getCascaderEditor","GetDateEditor","getNumberEditor","NumberEditor","getSelectEditor"],"sources":["../../../src/core/editor/index.ts"],"sourcesContent":["export { default as getCascaderEditor } from './cascaderEditor';\nexport { GetDateEditor } from './dateEditor';\nexport { getNumberEditor, NumberEditor } from './numberEditor';\nexport { default as getSelectEditor } from './selectEditor';\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,iBAAiB;AACrC,SAASC,aAAa;AACtB,SAASC,eAAe,EAAEC,YAAY;AACtC,SAASJ,OAAO,IAAIK,eAAe"}
|
|
@@ -3,4 +3,4 @@ import { InputNumberProps } from 'antd';
|
|
|
3
3
|
import 'antd/es/input-number/style/index.css';
|
|
4
4
|
import './index.less';
|
|
5
5
|
export declare const NumberEditor: SheetType.CellEditor;
|
|
6
|
-
export declare const getNumberEditor: (extraProps
|
|
6
|
+
export declare const getNumberEditor: (extraProps?: Pick<InputNumberProps, 'max' | 'min' | 'addonBefore' | 'addonAfter' | 'precision'>) => SheetType.CellEditor;
|
|
@@ -6,6 +6,7 @@ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _ty
|
|
|
6
6
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
7
7
|
import { InputNumber as AntInputNumber } from 'antd';
|
|
8
8
|
import 'antd/es/input-number/style/index.css';
|
|
9
|
+
import { isNil } from 'lodash';
|
|
9
10
|
import { useEffect, useRef } from 'react';
|
|
10
11
|
import "./index.less";
|
|
11
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
@@ -50,6 +51,9 @@ export var getNumberEditor = function getNumberEditor(extraProps) {
|
|
|
50
51
|
onChange: onChange
|
|
51
52
|
}));
|
|
52
53
|
};
|
|
54
|
+
NumberEditor.formatter = function (value) {
|
|
55
|
+
return isNil(value) ? null : Number(value);
|
|
56
|
+
};
|
|
53
57
|
return NumberEditor;
|
|
54
58
|
};
|
|
55
59
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["InputNumber","AntInputNumber","useEffect","useRef","jsx","_jsx","NumberEditor","props","value","onChange","inputNumberRef","_inputNumberRef$curre","current","focus","ref","controls","className","onMouseDown","e","stopPropagation","addonAfter","getNumberEditor","extraProps","_inputNumberRef$curre2","_objectSpread"],"sources":["../../../../src/core/editor/numberEditor/index.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { InputNumber as AntInputNumber, InputNumberProps } from 'antd';\nimport 'antd/es/input-number/style/index.css';\nimport { useEffect, useRef } from 'react';\nimport './index.less';\n\nexport const NumberEditor: SheetType.CellEditor = (props) => {\n const { value, onChange } = props;\n const inputNumberRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n inputNumberRef?.current?.focus();\n }, []);\n\n return (\n <AntInputNumber\n ref={inputNumberRef}\n controls={false}\n className=\"number-editor\"\n onMouseDown={(e) => e.stopPropagation()}\n value={value as number}\n addonAfter=\"%\"\n onChange={onChange}\n />\n );\n};\n\nexport const getNumberEditor = (\n extraProps
|
|
1
|
+
{"version":3,"names":["InputNumber","AntInputNumber","isNil","useEffect","useRef","jsx","_jsx","NumberEditor","props","value","onChange","inputNumberRef","_inputNumberRef$curre","current","focus","ref","controls","className","onMouseDown","e","stopPropagation","addonAfter","getNumberEditor","extraProps","_inputNumberRef$curre2","_objectSpread","formatter","Number"],"sources":["../../../../src/core/editor/numberEditor/index.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { InputNumber as AntInputNumber, InputNumberProps } from 'antd';\nimport 'antd/es/input-number/style/index.css';\nimport { isNil } from 'lodash';\nimport { useEffect, useRef } from 'react';\nimport './index.less';\n\nexport const NumberEditor: SheetType.CellEditor = (props) => {\n const { value, onChange } = props;\n const inputNumberRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n inputNumberRef?.current?.focus();\n }, []);\n\n return (\n <AntInputNumber\n ref={inputNumberRef}\n controls={false}\n className=\"number-editor\"\n onMouseDown={(e) => e.stopPropagation()}\n value={value as number}\n addonAfter=\"%\"\n onChange={onChange}\n />\n );\n};\n\nexport const getNumberEditor = (\n extraProps?: Pick<\n InputNumberProps,\n 'max' | 'min' | 'addonBefore' | 'addonAfter' | 'precision'\n >,\n) => {\n const NumberEditor: SheetType.CellEditor = (props) => {\n const { value, onChange } = props;\n const inputNumberRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n inputNumberRef?.current?.focus();\n }, []);\n\n return (\n <AntInputNumber\n ref={inputNumberRef}\n {...extraProps}\n controls={false}\n className=\"number-editor\"\n onMouseDown={(e) => e.stopPropagation()}\n value={value as number}\n onChange={onChange}\n />\n );\n };\n NumberEditor.formatter = (value: unknown) => {\n return isNil(value) ? null : Number(value);\n };\n\n return NumberEditor;\n};\n"],"mappings":";;;;;;AACA,SAASA,WAAW,IAAIC,cAAc,QAA0B,MAAM;AACtE,OAAO,sCAAsC;AAC7C,SAASC,KAAK,QAAQ,QAAQ;AAC9B,SAASC,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAEtB,OAAO,IAAMC,YAAkC,GAAG,SAArCA,YAAkCA,CAAIC,KAAK,EAAK;EAC3D,IAAQC,KAAK,GAAeD,KAAK,CAAzBC,KAAK;IAAEC,QAAQ,GAAKF,KAAK,CAAlBE,QAAQ;EACvB,IAAMC,cAAc,GAAGP,MAAM,CAAmB,IAAI,CAAC;EAErDD,SAAS,CAAC,YAAM;IAAA,IAAAS,qBAAA;IACdD,cAAc,aAAdA,cAAc,wBAAAC,qBAAA,GAAdD,cAAc,CAAEE,OAAO,cAAAD,qBAAA,uBAAvBA,qBAAA,CAAyBE,KAAK,CAAC,CAAC;EAClC,CAAC,EAAE,EAAE,CAAC;EAEN,oBACER,IAAA,CAACL,cAAc;IACbc,GAAG,EAAEJ,cAAe;IACpBK,QAAQ,EAAE,KAAM;IAChBC,SAAS,EAAC,eAAe;IACzBC,WAAW,EAAE,SAAAA,YAACC,CAAC;MAAA,OAAKA,CAAC,CAACC,eAAe,CAAC,CAAC;IAAA,CAAC;IACxCX,KAAK,EAAEA,KAAgB;IACvBY,UAAU,EAAC,GAAG;IACdX,QAAQ,EAAEA;EAAS,CACpB,CAAC;AAEN,CAAC;AAED,OAAO,IAAMY,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,UAGC,EACE;EACH,IAAMhB,YAAkC,GAAG,SAArCA,YAAkCA,CAAIC,KAAK,EAAK;IACpD,IAAQC,KAAK,GAAeD,KAAK,CAAzBC,KAAK;MAAEC,QAAQ,GAAKF,KAAK,CAAlBE,QAAQ;IACvB,IAAMC,cAAc,GAAGP,MAAM,CAAmB,IAAI,CAAC;IAErDD,SAAS,CAAC,YAAM;MAAA,IAAAqB,sBAAA;MACdb,cAAc,aAAdA,cAAc,wBAAAa,sBAAA,GAAdb,cAAc,CAAEE,OAAO,cAAAW,sBAAA,uBAAvBA,sBAAA,CAAyBV,KAAK,CAAC,CAAC;IAClC,CAAC,EAAE,EAAE,CAAC;IAEN,oBACER,IAAA,CAACL,cAAc,EAAAwB,aAAA,CAAAA,aAAA;MACbV,GAAG,EAAEJ;IAAe,GAChBY,UAAU;MACdP,QAAQ,EAAE,KAAM;MAChBC,SAAS,EAAC,eAAe;MACzBC,WAAW,EAAE,SAAAA,YAACC,CAAC;QAAA,OAAKA,CAAC,CAACC,eAAe,CAAC,CAAC;MAAA,CAAC;MACxCX,KAAK,EAAEA,KAAgB;MACvBC,QAAQ,EAAEA;IAAS,EACpB,CAAC;EAEN,CAAC;EACDH,YAAY,CAACmB,SAAS,GAAG,UAACjB,KAAc,EAAK;IAC3C,OAAOP,KAAK,CAACO,KAAK,CAAC,GAAG,IAAI,GAAGkB,MAAM,CAAClB,KAAK,CAAC;EAC5C,CAAC;EAED,OAAOF,YAAY;AACrB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SheetType } from "../../../type";
|
|
2
2
|
import 'antd/es/select/style/index.css';
|
|
3
3
|
import './index.less';
|
|
4
|
-
export declare const getSelectEditor: (options: SheetType.Options[]) => SheetType.CellEditor;
|
|
4
|
+
export declare const getSelectEditor: (options: SheetType.Options[], valueKey?: string) => SheetType.CellEditor;
|
|
5
5
|
export default getSelectEditor;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
/* eslint-disable eqeqeq */
|
|
2
|
+
|
|
1
3
|
import { Select } from 'antd';
|
|
2
4
|
import 'antd/es/select/style/index.css';
|
|
3
5
|
import "./index.less";
|
|
4
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
7
|
export var getSelectEditor = function getSelectEditor(options) {
|
|
8
|
+
var valueKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'label';
|
|
6
9
|
var SelectEditor = function SelectEditor(props) {
|
|
7
10
|
var value = props.value,
|
|
8
11
|
onConfirm = props.onConfirm;
|
|
@@ -25,7 +28,7 @@ export var getSelectEditor = function getSelectEditor(options) {
|
|
|
25
28
|
onMouseDown: function onMouseDown(e) {
|
|
26
29
|
e.stopPropagation();
|
|
27
30
|
},
|
|
28
|
-
value: value,
|
|
31
|
+
value: SelectEditor.formatter ? SelectEditor.formatter(value) : value,
|
|
29
32
|
onChange: handleChange,
|
|
30
33
|
onKeyDown: handleKeyDown,
|
|
31
34
|
options: options,
|
|
@@ -34,11 +37,19 @@ export var getSelectEditor = function getSelectEditor(options) {
|
|
|
34
37
|
};
|
|
35
38
|
SelectEditor.checker = function (value) {
|
|
36
39
|
return options.some(function (item) {
|
|
37
|
-
return item.value
|
|
40
|
+
return item.value == value;
|
|
38
41
|
}) || options.some(function (item) {
|
|
39
42
|
return item.label === value;
|
|
40
43
|
});
|
|
41
44
|
};
|
|
45
|
+
SelectEditor.formatter = function (value) {
|
|
46
|
+
var _options$find, _options$find2;
|
|
47
|
+
return ((_options$find = options.find(function (item) {
|
|
48
|
+
return item.value == value;
|
|
49
|
+
})) === null || _options$find === void 0 ? void 0 : _options$find[valueKey]) || ((_options$find2 = options.find(function (item) {
|
|
50
|
+
return item.label === value;
|
|
51
|
+
})) === null || _options$find2 === void 0 ? void 0 : _options$find2[valueKey]);
|
|
52
|
+
};
|
|
42
53
|
return SelectEditor;
|
|
43
54
|
};
|
|
44
55
|
export default getSelectEditor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Select","jsx","_jsx","getSelectEditor","options","SelectEditor","props","value","onConfirm","handleChange","opt","updateValue","
|
|
1
|
+
{"version":3,"names":["Select","jsx","_jsx","getSelectEditor","options","valueKey","arguments","length","undefined","SelectEditor","props","value","onConfirm","handleChange","opt","updateValue","handleKeyDown","ev","which","persist","autoFocus","className","defaultOpen","allowClear","open","onMouseDown","e","stopPropagation","formatter","onChange","onKeyDown","popupClassName","checker","some","item","label","_options$find","_options$find2","find"],"sources":["../../../../src/core/editor/selectEditor/index.tsx"],"sourcesContent":["/* eslint-disable eqeqeq */\nimport type { SheetType } from '@zhenliang/sheet/type';\nimport { Select } from 'antd';\nimport 'antd/es/select/style/index.css';\nimport './index.less';\n\nexport const getSelectEditor = (\n options: SheetType.Options[],\n valueKey: string = 'label',\n): SheetType.CellEditor => {\n const SelectEditor: SheetType.CellEditor = (props) => {\n const { value, onConfirm } = props;\n\n const handleChange = (opt: any) => {\n const updateValue = opt === undefined ? null : opt;\n onConfirm(updateValue);\n };\n\n const handleKeyDown = (ev: any) => {\n // record last key pressed so we can handle enter\n if (ev.which === 13 || ev.which === 9) {\n ev.persist();\n }\n };\n\n return (\n <Select\n autoFocus\n className=\"select-editor\"\n defaultOpen\n allowClear\n open\n onMouseDown={(e) => {\n e.stopPropagation();\n }}\n value={SelectEditor.formatter ? SelectEditor.formatter(value) : value}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n options={options}\n popupClassName={'excelTablePopupClassName'}\n />\n );\n };\n\n SelectEditor.checker = (value) => {\n return (\n options.some((item: any) => item.value == value) ||\n options.some((item: any) => item.label === value)\n );\n };\n SelectEditor.formatter = (value) => {\n return (\n options.find((item: any) => item.value == value)?.[valueKey] ||\n options.find((item: any) => item.label === value)?.[valueKey]\n );\n };\n\n return SelectEditor;\n};\n\nexport default getSelectEditor;\n"],"mappings":"AAAA;;AAEA,SAASA,MAAM,QAAQ,MAAM;AAC7B,OAAO,gCAAgC;AACvC;AAAsB,SAAAC,GAAA,IAAAC,IAAA;AAEtB,OAAO,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAC1BC,OAA4B,EAEH;EAAA,IADzBC,QAAgB,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,OAAO;EAE1B,IAAMG,YAAkC,GAAG,SAArCA,YAAkCA,CAAIC,KAAK,EAAK;IACpD,IAAQC,KAAK,GAAgBD,KAAK,CAA1BC,KAAK;MAAEC,SAAS,GAAKF,KAAK,CAAnBE,SAAS;IAExB,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,GAAQ,EAAK;MACjC,IAAMC,WAAW,GAAGD,GAAG,KAAKN,SAAS,GAAG,IAAI,GAAGM,GAAG;MAClDF,SAAS,CAACG,WAAW,CAAC;IACxB,CAAC;IAED,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,EAAO,EAAK;MACjC;MACA,IAAIA,EAAE,CAACC,KAAK,KAAK,EAAE,IAAID,EAAE,CAACC,KAAK,KAAK,CAAC,EAAE;QACrCD,EAAE,CAACE,OAAO,CAAC,CAAC;MACd;IACF,CAAC;IAED,oBACEjB,IAAA,CAACF,MAAM;MACLoB,SAAS;MACTC,SAAS,EAAC,eAAe;MACzBC,WAAW;MACXC,UAAU;MACVC,IAAI;MACJC,WAAW,EAAE,SAAAA,YAACC,CAAC,EAAK;QAClBA,CAAC,CAACC,eAAe,CAAC,CAAC;MACrB,CAAE;MACFhB,KAAK,EAAEF,YAAY,CAACmB,SAAS,GAAGnB,YAAY,CAACmB,SAAS,CAACjB,KAAK,CAAC,GAAGA,KAAM;MACtEkB,QAAQ,EAAEhB,YAAa;MACvBiB,SAAS,EAAEd,aAAc;MACzBZ,OAAO,EAAEA,OAAQ;MACjB2B,cAAc,EAAE;IAA2B,CAC5C,CAAC;EAEN,CAAC;EAEDtB,YAAY,CAACuB,OAAO,GAAG,UAACrB,KAAK,EAAK;IAChC,OACEP,OAAO,CAAC6B,IAAI,CAAC,UAACC,IAAS;MAAA,OAAKA,IAAI,CAACvB,KAAK,IAAIA,KAAK;IAAA,EAAC,IAChDP,OAAO,CAAC6B,IAAI,CAAC,UAACC,IAAS;MAAA,OAAKA,IAAI,CAACC,KAAK,KAAKxB,KAAK;IAAA,EAAC;EAErD,CAAC;EACDF,YAAY,CAACmB,SAAS,GAAG,UAACjB,KAAK,EAAK;IAAA,IAAAyB,aAAA,EAAAC,cAAA;IAClC,OACE,EAAAD,aAAA,GAAAhC,OAAO,CAACkC,IAAI,CAAC,UAACJ,IAAS;MAAA,OAAKA,IAAI,CAACvB,KAAK,IAAIA,KAAK;IAAA,EAAC,cAAAyB,aAAA,uBAAhDA,aAAA,CAAmD/B,QAAQ,CAAC,OAAAgC,cAAA,GAC5DjC,OAAO,CAACkC,IAAI,CAAC,UAACJ,IAAS;MAAA,OAAKA,IAAI,CAACC,KAAK,KAAKxB,KAAK;IAAA,EAAC,cAAA0B,cAAA,uBAAjDA,cAAA,CAAoDhC,QAAQ,CAAC;EAEjE,CAAC;EAED,OAAOI,YAAY;AACrB,CAAC;AAED,eAAeN,eAAe"}
|
|
@@ -194,10 +194,21 @@ export var sideEffectReducer = {
|
|
|
194
194
|
return editor.checker(value);
|
|
195
195
|
}
|
|
196
196
|
return true;
|
|
197
|
+
}).map(function (_ref5) {
|
|
198
|
+
var _editor$formatter;
|
|
199
|
+
var row = _ref5.row,
|
|
200
|
+
col = _ref5.col,
|
|
201
|
+
value = _ref5.value;
|
|
202
|
+
var editor = data[row][col].dataEditor;
|
|
203
|
+
return {
|
|
204
|
+
row: row,
|
|
205
|
+
col: col,
|
|
206
|
+
value: editor !== null && editor !== void 0 && editor.formatter ? editor === null || editor === void 0 ? void 0 : (_editor$formatter = editor.formatter) === null || _editor$formatter === void 0 ? void 0 : _editor$formatter.call(editor, value) : value
|
|
207
|
+
};
|
|
197
208
|
});
|
|
198
|
-
legalExtChanges = extChanges === null || extChanges === void 0 ? void 0 : extChanges.filter(function (
|
|
199
|
-
var value =
|
|
200
|
-
col =
|
|
209
|
+
legalExtChanges = extChanges === null || extChanges === void 0 ? void 0 : extChanges.filter(function (_ref6) {
|
|
210
|
+
var value = _ref6.value,
|
|
211
|
+
col = _ref6.col;
|
|
201
212
|
var editor = data[0][col].dataEditor;
|
|
202
213
|
if (editor && editor.checker) {
|
|
203
214
|
return editor.checker(value);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","_catch","thrown","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","head","isNil","last","pick","clipboardDataToString","defaultValueRenderer","flatRowCol","flatRowColIndex","formatDataToCell","getRowColConfig","groupConfigToGroupMap","stringToClipboardData","sideEffectReducer","init","dispatch","getState","_getState","eventBus","on","cell","_getState2","cellChangeHandler","payload","_ref","row","col","_getState3","start","end","_getRowColConfig","startRow","endRow","startCol","endCol","isMultiSelected","isSelected","emit","concat","selected","selectedInfo","isStart","isTop","isBottom","isLeft","isRight","destroy","d","_getState4","removeAllListeners","emitSelectChange","_getState5","lastSelected","_getRowColConfig2","selectedCellIndex","selectedCells","cancelCells","includes","_ref2","emitEditChange","_getState6","editing","lastEditing","confirm","copy","_getState7","data","groupConfig","cellIndex","groupMap","copyData","reduce","left","_ref3","_ref3$row","_ref3$col","currentRow","get","_groupMap$get","_groupMap$get2","isOpen","currentValue","text","trimStart","paste","_callee","_getState8","history","_getState8$freePaste","freePaste","pasteData","changeInfo","changes","extChanges","legalChanges","legalExtChanges","newHistory","_callee$","_context","_ref4","editor","dataEditor","checker","_ref5","map","item","delete","_delete","_getState9","_data$item$row","readonly","_groupMap$get3","_groupMap$get4","_data$item$row2","_getState10","console","log","changeHistory","change"],"sources":["../../../src/core/reducers/sideEffectReducer.ts"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { head, isNil, last, pick } from 'lodash';\nimport { FunctionAction, NormalAction } from '../../hooks';\nimport {\n clipboardDataToString,\n defaultValueRenderer,\n flatRowCol,\n flatRowColIndex,\n formatDataToCell,\n getRowColConfig,\n groupConfigToGroupMap,\n stringToClipboardData,\n} from '../util';\n\nexport type asyncActionType = (\n dispatch: (action: NormalAction | FunctionAction) => void,\n getState: () => SheetType.UpdateStateType,\n) => void;\n\nexport const sideEffectReducer: Record<string, asyncActionType> = {\n init(dispatch, getState) {\n const { eventBus } = getState();\n eventBus.on(\n 'cell-change',\n (cell: SheetType.CellData & { confirm?: boolean }) => {\n dispatch(() => {\n const { cellChangeHandler } = getState();\n cellChangeHandler && cellChangeHandler([cell]);\n dispatch({ type: 'editFinish', payload: { cell } });\n });\n },\n );\n eventBus.on('cell-create', ({ row, col }: { row: number; col: number }) => {\n const { start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(\n start,\n end,\n );\n const isMultiSelected = startRow !== endRow && startCol !== endCol;\n const isSelected =\n row >= startRow && row <= endRow && col >= startCol && col <= endCol;\n if (isSelected) {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart: row === start?.row && col === start.col && isMultiSelected,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n }\n });\n },\n destroy(d, getState) {\n const { eventBus } = getState();\n eventBus?.removeAllListeners();\n },\n emitSelectChange(d, getState) {\n const { eventBus, lastSelected, start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(start, end);\n\n const selectedCellIndex = flatRowColIndex(start, end);\n const selectedCells = flatRowCol(start, end);\n const cancelCells = flatRowCol(lastSelected?.start, lastSelected?.end);\n\n cancelCells.forEach((cell) => {\n if (selectedCells.includes(cell)) return;\n eventBus.emit(`cell-${cell}-change`, {\n selected: false,\n selectedInfo: undefined,\n });\n });\n\n selectedCellIndex.forEach(({ row, col }) => {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart:\n row === start?.row &&\n col === start.col &&\n selectedCellIndex.length !== 1,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n });\n },\n emitEditChange(d, getState) {\n const { editing, lastEditing, eventBus } = getState();\n\n if (!isNil(editing?.col) && !isNil(editing?.row)) {\n eventBus.emit(`cell-${editing.row}-${editing.col}-change`, {\n editing: true,\n value: editing.value,\n });\n }\n if (!isNil(lastEditing?.col) && !isNil(lastEditing?.row)) {\n //清空上一个编辑cell的状态\n eventBus.emit(`cell-${lastEditing.row}-${lastEditing.col}-change`, {\n editing: false,\n confirm: lastEditing?.confirm,\n });\n d({ type: 'changes', payload: { lastEditing: undefined } });\n }\n },\n copy(d, getState) {\n const { start, end, data, groupConfig } = getState();\n const cellIndex = flatRowColIndex(start, end);\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n\n const copyData = cellIndex.reduce(\n (left, { row = 0, col = 0 }) => {\n const { currentRow, value } = left;\n\n if (groupMap.get(row)) {\n // 如果是分组的子行并且是合并的状态\n if (!groupMap.get(row)?.isStart && !groupMap.get(row)?.isOpen) {\n return {\n currentRow: row,\n value: `${value}`,\n };\n }\n }\n\n const currentValue = `${value}${\n currentRow === row ? '\\t' : '\\n'\n } ${defaultValueRenderer(data[row][col])}`;\n return {\n currentRow: row,\n value: currentValue,\n };\n },\n { currentRow: -1, value: '' },\n );\n const text = copyData.value.trimStart();\n stringToClipboardData(text);\n },\n async paste(dispatch, getState) {\n const {\n start,\n end,\n cellChangeHandler,\n history,\n freePaste = false,\n data,\n groupConfig,\n } = getState();\n const pasteData = await clipboardDataToString();\n\n const changeInfo = formatDataToCell({\n ...pick(getState(), ['data', 'start', 'end', 'editing']),\n pasteData,\n groupConfig,\n freePaste,\n });\n if (!changeInfo) return;\n const { changes, extChanges } = changeInfo;\n\n const legalChanges = changes.filter(({ row, col, value }) => {\n const editor = data[row][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n });\n const legalExtChanges = extChanges?.filter(({ value, col }) => {\n const editor = data[0][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n });\n cellChangeHandler &&\n cellChangeHandler(legalChanges as any, legalExtChanges as any);\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: legalChanges.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Paste',\n });\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(legalChanges[0], ['row', 'col']),\n history: newHistory,\n end: pick(legalChanges[legalChanges.length - 1], ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n },\n });\n },\n delete(dispatch, getState) {\n const {\n cellChangeHandler,\n start,\n end,\n data,\n history,\n groupConfig,\n editing,\n } = getState();\n\n if (editing) return;\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n const cellIndex = flatRowColIndex(start, end);\n const changes = cellIndex\n .filter((item) => !data?.[item.row]?.[item.col].readonly)\n .filter(\n // 过滤掉分组的子行并且是关闭的状态\n (item) =>\n !(\n groupMap.get(item.row) &&\n !groupMap.get(item.row)?.isStart &&\n !groupMap.get(item.row)?.isOpen\n ),\n )\n .map((item) => ({\n cell: data?.[item.row]?.[item.col],\n row: item.row,\n col: item.col,\n value: '',\n }));\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: changes.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Delete',\n });\n cellChangeHandler && cellChangeHandler(changes as any);\n dispatch({ type: 'changes', payload: { history: newHistory } });\n },\n reverse(dispatch, getState) {\n const { start, end, history, cellChangeHandler, eventBus } = getState();\n if (!history?.length) return;\n console.log(history.length);\n\n const changeHistory = [...history];\n const change = changeHistory.pop() as SheetType.OperateHistory;\n const { type } = change;\n if (!['Edit', 'Paste', 'Delete'].includes(type)) {\n eventBus.emit('reverse', change);\n if (type === 'DeleteRow') {\n // console.log(change.rowInfo?.deleteRow);\n // dispatch({\n // type: 'selectRow',\n // payload: change.rowInfo?.deleteRow as number,\n // });\n }\n\n dispatch({\n type: 'changes',\n payload: {\n history: changeHistory,\n },\n });\n return;\n }\n cellChangeHandler &&\n cellChangeHandler(change.changes as SheetType.CellData[]);\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(head(change.changes), ['row', 'col']),\n end: pick(last(change.changes), ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n history: changeHistory,\n },\n });\n },\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_regeneratorRuntime","exports","Op","Object","prototype","hasOwn","hasOwnProperty","defineProperty","obj","key","desc","value","$Symbol","Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","define","enumerable","configurable","writable","err","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","method","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","_typeof","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","done","methodName","undefined","return","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","length","i","displayName","isGeneratorFunction","genFun","ctor","constructor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","_catch","thrown","delegateYield","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","ownKeys","enumerableOnly","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread","target","arguments","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","_toPropertyKey","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","head","isNil","last","pick","clipboardDataToString","defaultValueRenderer","flatRowCol","flatRowColIndex","formatDataToCell","getRowColConfig","groupConfigToGroupMap","stringToClipboardData","sideEffectReducer","init","dispatch","getState","_getState","eventBus","on","cell","_getState2","cellChangeHandler","payload","_ref","row","col","_getState3","start","end","_getRowColConfig","startRow","endRow","startCol","endCol","isMultiSelected","isSelected","emit","concat","selected","selectedInfo","isStart","isTop","isBottom","isLeft","isRight","destroy","d","_getState4","removeAllListeners","emitSelectChange","_getState5","lastSelected","_getRowColConfig2","selectedCellIndex","selectedCells","cancelCells","includes","_ref2","emitEditChange","_getState6","editing","lastEditing","confirm","copy","_getState7","data","groupConfig","cellIndex","groupMap","copyData","reduce","left","_ref3","_ref3$row","_ref3$col","currentRow","get","_groupMap$get","_groupMap$get2","isOpen","currentValue","text","trimStart","paste","_callee","_getState8","history","_getState8$freePaste","freePaste","pasteData","changeInfo","changes","extChanges","legalChanges","legalExtChanges","newHistory","_callee$","_context","_ref4","editor","dataEditor","checker","map","_ref5","_editor$formatter","formatter","_ref6","item","delete","_delete","_getState9","_data$item$row","readonly","_groupMap$get3","_groupMap$get4","_data$item$row2","_getState10","console","log","changeHistory","change"],"sources":["../../../src/core/reducers/sideEffectReducer.ts"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { head, isNil, last, pick } from 'lodash';\nimport { FunctionAction, NormalAction } from '../../hooks';\nimport {\n clipboardDataToString,\n defaultValueRenderer,\n flatRowCol,\n flatRowColIndex,\n formatDataToCell,\n getRowColConfig,\n groupConfigToGroupMap,\n stringToClipboardData,\n} from '../util';\n\nexport type asyncActionType = (\n dispatch: (action: NormalAction | FunctionAction) => void,\n getState: () => SheetType.UpdateStateType,\n) => void;\n\nexport const sideEffectReducer: Record<string, asyncActionType> = {\n init(dispatch, getState) {\n const { eventBus } = getState();\n eventBus.on(\n 'cell-change',\n (cell: SheetType.CellData & { confirm?: boolean }) => {\n dispatch(() => {\n const { cellChangeHandler } = getState();\n cellChangeHandler && cellChangeHandler([cell]);\n dispatch({ type: 'editFinish', payload: { cell } });\n });\n },\n );\n eventBus.on('cell-create', ({ row, col }: { row: number; col: number }) => {\n const { start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(\n start,\n end,\n );\n const isMultiSelected = startRow !== endRow && startCol !== endCol;\n const isSelected =\n row >= startRow && row <= endRow && col >= startCol && col <= endCol;\n if (isSelected) {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart: row === start?.row && col === start.col && isMultiSelected,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n }\n });\n },\n destroy(d, getState) {\n const { eventBus } = getState();\n eventBus?.removeAllListeners();\n },\n emitSelectChange(d, getState) {\n const { eventBus, lastSelected, start, end } = getState();\n const { startRow, endRow, startCol, endCol } = getRowColConfig(start, end);\n\n const selectedCellIndex = flatRowColIndex(start, end);\n const selectedCells = flatRowCol(start, end);\n const cancelCells = flatRowCol(lastSelected?.start, lastSelected?.end);\n\n cancelCells.forEach((cell) => {\n if (selectedCells.includes(cell)) return;\n eventBus.emit(`cell-${cell}-change`, {\n selected: false,\n selectedInfo: undefined,\n });\n });\n\n selectedCellIndex.forEach(({ row, col }) => {\n eventBus.emit(`cell-${row}-${col}-change`, {\n selected: true,\n selectedInfo: {\n isStart:\n row === start?.row &&\n col === start.col &&\n selectedCellIndex.length !== 1,\n isTop: row === startRow,\n isBottom: row === endRow,\n isLeft: col === startCol,\n isRight: col === endCol,\n },\n });\n });\n },\n emitEditChange(d, getState) {\n const { editing, lastEditing, eventBus } = getState();\n\n if (!isNil(editing?.col) && !isNil(editing?.row)) {\n eventBus.emit(`cell-${editing.row}-${editing.col}-change`, {\n editing: true,\n value: editing.value,\n });\n }\n if (!isNil(lastEditing?.col) && !isNil(lastEditing?.row)) {\n //清空上一个编辑cell的状态\n eventBus.emit(`cell-${lastEditing.row}-${lastEditing.col}-change`, {\n editing: false,\n confirm: lastEditing?.confirm,\n });\n d({ type: 'changes', payload: { lastEditing: undefined } });\n }\n },\n copy(d, getState) {\n const { start, end, data, groupConfig } = getState();\n const cellIndex = flatRowColIndex(start, end);\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n\n const copyData = cellIndex.reduce(\n (left, { row = 0, col = 0 }) => {\n const { currentRow, value } = left;\n\n if (groupMap.get(row)) {\n // 如果是分组的子行并且是合并的状态\n if (!groupMap.get(row)?.isStart && !groupMap.get(row)?.isOpen) {\n return {\n currentRow: row,\n value: `${value}`,\n };\n }\n }\n\n const currentValue = `${value}${\n currentRow === row ? '\\t' : '\\n'\n } ${defaultValueRenderer(data[row][col])}`;\n return {\n currentRow: row,\n value: currentValue,\n };\n },\n { currentRow: -1, value: '' },\n );\n const text = copyData.value.trimStart();\n stringToClipboardData(text);\n },\n async paste(dispatch, getState) {\n const {\n start,\n end,\n cellChangeHandler,\n history,\n freePaste = false,\n data,\n groupConfig,\n } = getState();\n const pasteData = await clipboardDataToString();\n\n const changeInfo = formatDataToCell({\n ...pick(getState(), ['data', 'start', 'end', 'editing']),\n pasteData,\n groupConfig,\n freePaste,\n });\n if (!changeInfo) return;\n const { changes, extChanges } = changeInfo;\n\n const legalChanges = changes\n .filter(({ row, col, value }) => {\n const editor = data[row][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n })\n .map(({ row, col, value }) => {\n const editor = data[row][col].dataEditor;\n return {\n row,\n col,\n value: editor?.formatter ? editor?.formatter?.(value) : value,\n };\n });\n const legalExtChanges = extChanges?.filter(({ value, col }) => {\n const editor = data[0][col].dataEditor;\n if (editor && editor.checker) {\n return editor.checker(value);\n }\n return true;\n });\n cellChangeHandler &&\n cellChangeHandler(legalChanges as any, legalExtChanges as any);\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: legalChanges.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Paste',\n });\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(legalChanges[0], ['row', 'col']),\n history: newHistory,\n end: pick(legalChanges[legalChanges.length - 1], ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n },\n });\n },\n delete(dispatch, getState) {\n const {\n cellChangeHandler,\n start,\n end,\n data,\n history,\n groupConfig,\n editing,\n } = getState();\n\n if (editing) return;\n\n const groupMap = groupConfigToGroupMap(groupConfig);\n const cellIndex = flatRowColIndex(start, end);\n const changes = cellIndex\n .filter((item) => !data?.[item.row]?.[item.col].readonly)\n .filter(\n // 过滤掉分组的子行并且是关闭的状态\n (item) =>\n !(\n groupMap.get(item.row) &&\n !groupMap.get(item.row)?.isStart &&\n !groupMap.get(item.row)?.isOpen\n ),\n )\n .map((item) => ({\n cell: data?.[item.row]?.[item.col],\n row: item.row,\n col: item.col,\n value: '',\n }));\n\n let newHistory = [...(history || [])];\n newHistory.push({\n changes: changes.map((item) => ({\n ...item,\n value: data[item.row][item.col].value as string,\n })),\n type: 'Delete',\n });\n cellChangeHandler && cellChangeHandler(changes as any);\n dispatch({ type: 'changes', payload: { history: newHistory } });\n },\n reverse(dispatch, getState) {\n const { start, end, history, cellChangeHandler, eventBus } = getState();\n if (!history?.length) return;\n console.log(history.length);\n\n const changeHistory = [...history];\n const change = changeHistory.pop() as SheetType.OperateHistory;\n const { type } = change;\n if (!['Edit', 'Paste', 'Delete'].includes(type)) {\n eventBus.emit('reverse', change);\n if (type === 'DeleteRow') {\n // console.log(change.rowInfo?.deleteRow);\n // dispatch({\n // type: 'selectRow',\n // payload: change.rowInfo?.deleteRow as number,\n // });\n }\n\n dispatch({\n type: 'changes',\n payload: {\n history: changeHistory,\n },\n });\n return;\n }\n cellChangeHandler &&\n cellChangeHandler(change.changes as SheetType.CellData[]);\n\n dispatch({\n type: 'changes',\n payload: {\n start: pick(head(change.changes), ['row', 'col']),\n end: pick(last(change.changes), ['row', 'col']),\n lastSelected: {\n start,\n end,\n },\n history: changeHistory,\n },\n });\n },\n};\n"],"mappings":";+CACA,qJAAAA,mBAAA,YAAAA,oBAAA,WAAAC,OAAA,SAAAA,OAAA,OAAAC,EAAA,GAAAC,MAAA,CAAAC,SAAA,EAAAC,MAAA,GAAAH,EAAA,CAAAI,cAAA,EAAAC,cAAA,GAAAJ,MAAA,CAAAI,cAAA,cAAAC,GAAA,EAAAC,GAAA,EAAAC,IAAA,IAAAF,GAAA,CAAAC,GAAA,IAAAC,IAAA,CAAAC,KAAA,KAAAC,OAAA,wBAAAC,MAAA,GAAAA,MAAA,OAAAC,cAAA,GAAAF,OAAA,CAAAG,QAAA,kBAAAC,mBAAA,GAAAJ,OAAA,CAAAK,aAAA,uBAAAC,iBAAA,GAAAN,OAAA,CAAAO,WAAA,8BAAAC,OAAAZ,GAAA,EAAAC,GAAA,EAAAE,KAAA,WAAAR,MAAA,CAAAI,cAAA,CAAAC,GAAA,EAAAC,GAAA,IAAAE,KAAA,EAAAA,KAAA,EAAAU,UAAA,MAAAC,YAAA,MAAAC,QAAA,SAAAf,GAAA,CAAAC,GAAA,WAAAW,MAAA,mBAAAI,GAAA,IAAAJ,MAAA,YAAAA,OAAAZ,GAAA,EAAAC,GAAA,EAAAE,KAAA,WAAAH,GAAA,CAAAC,GAAA,IAAAE,KAAA,gBAAAc,KAAAC,OAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,WAAA,QAAAC,cAAA,GAAAH,OAAA,IAAAA,OAAA,CAAAvB,SAAA,YAAA2B,SAAA,GAAAJ,OAAA,GAAAI,SAAA,EAAAC,SAAA,GAAA7B,MAAA,CAAA8B,MAAA,CAAAH,cAAA,CAAA1B,SAAA,GAAA8B,OAAA,OAAAC,OAAA,CAAAN,WAAA,gBAAAtB,cAAA,CAAAyB,SAAA,eAAArB,KAAA,EAAAyB,gBAAA,CAAAV,OAAA,EAAAE,IAAA,EAAAM,OAAA,MAAAF,SAAA,aAAAK,SAAAC,EAAA,EAAA9B,GAAA,EAAA+B,GAAA,mBAAAC,IAAA,YAAAD,GAAA,EAAAD,EAAA,CAAAG,IAAA,CAAAjC,GAAA,EAAA+B,GAAA,cAAAf,GAAA,aAAAgB,IAAA,WAAAD,GAAA,EAAAf,GAAA,QAAAvB,OAAA,CAAAwB,IAAA,GAAAA,IAAA,MAAAiB,gBAAA,gBAAAX,UAAA,cAAAY,kBAAA,cAAAC,2BAAA,SAAAC,iBAAA,OAAAzB,MAAA,CAAAyB,iBAAA,EAAA/B,cAAA,qCAAAgC,QAAA,GAAA3C,MAAA,CAAA4C,cAAA,EAAAC,uBAAA,GAAAF,QAAA,IAAAA,QAAA,CAAAA,QAAA,CAAAG,MAAA,QAAAD,uBAAA,IAAAA,uBAAA,KAAA9C,EAAA,IAAAG,MAAA,CAAAoC,IAAA,CAAAO,uBAAA,EAAAlC,cAAA,MAAA+B,iBAAA,GAAAG,uBAAA,OAAAE,EAAA,GAAAN,0BAAA,CAAAxC,SAAA,GAAA2B,SAAA,CAAA3B,SAAA,GAAAD,MAAA,CAAA8B,MAAA,CAAAY,iBAAA,YAAAM,sBAAA/C,SAAA,gCAAAgD,OAAA,WAAAC,MAAA,IAAAjC,MAAA,CAAAhB,SAAA,EAAAiD,MAAA,YAAAd,GAAA,gBAAAe,OAAA,CAAAD,MAAA,EAAAd,GAAA,sBAAAgB,cAAAvB,SAAA,EAAAwB,WAAA,aAAAC,OAAAJ,MAAA,EAAAd,GAAA,EAAAmB,OAAA,EAAAC,MAAA,QAAAC,MAAA,GAAAvB,QAAA,CAAAL,SAAA,CAAAqB,MAAA,GAAArB,SAAA,EAAAO,GAAA,mBAAAqB,MAAA,CAAApB,IAAA,QAAAqB,MAAA,GAAAD,MAAA,CAAArB,GAAA,EAAA5B,KAAA,GAAAkD,MAAA,CAAAlD,KAAA,SAAAA,KAAA,gBAAAmD,OAAA,CAAAnD,KAAA,KAAAN,MAAA,CAAAoC,IAAA,CAAA9B,KAAA,eAAA6C,WAAA,CAAAE,OAAA,CAAA/C,KAAA,CAAAoD,OAAA,EAAAC,IAAA,WAAArD,KAAA,IAAA8C,MAAA,SAAA9C,KAAA,EAAA+C,OAAA,EAAAC,MAAA,gBAAAnC,GAAA,IAAAiC,MAAA,UAAAjC,GAAA,EAAAkC,OAAA,EAAAC,MAAA,QAAAH,WAAA,CAAAE,OAAA,CAAA/C,KAAA,EAAAqD,IAAA,WAAAC,SAAA,IAAAJ,MAAA,CAAAlD,KAAA,GAAAsD,SAAA,EAAAP,OAAA,CAAAG,MAAA,gBAAAK,KAAA,WAAAT,MAAA,UAAAS,KAAA,EAAAR,OAAA,EAAAC,MAAA,SAAAA,MAAA,CAAAC,MAAA,CAAArB,GAAA,SAAA4B,eAAA,EAAA5D,cAAA,oBAAAI,KAAA,WAAAA,MAAA0C,MAAA,EAAAd,GAAA,aAAA6B,2BAAA,eAAAZ,WAAA,WAAAE,OAAA,EAAAC,MAAA,IAAAF,MAAA,CAAAJ,MAAA,EAAAd,GAAA,EAAAmB,OAAA,EAAAC,MAAA,gBAAAQ,eAAA,GAAAA,eAAA,GAAAA,eAAA,CAAAH,IAAA,CAAAI,0BAAA,EAAAA,0BAAA,IAAAA,0BAAA,qBAAAhC,iBAAAV,OAAA,EAAAE,IAAA,EAAAM,OAAA,QAAAmC,KAAA,sCAAAhB,MAAA,EAAAd,GAAA,wBAAA8B,KAAA,YAAAC,KAAA,sDAAAD,KAAA,oBAAAhB,MAAA,QAAAd,GAAA,SAAAgC,UAAA,WAAArC,OAAA,CAAAmB,MAAA,GAAAA,MAAA,EAAAnB,OAAA,CAAAK,GAAA,GAAAA,GAAA,UAAAiC,QAAA,GAAAtC,OAAA,CAAAsC,QAAA,MAAAA,QAAA,QAAAC,cAAA,GAAAC,mBAAA,CAAAF,QAAA,EAAAtC,OAAA,OAAAuC,cAAA,QAAAA,cAAA,KAAA/B,gBAAA,mBAAA+B,cAAA,qBAAAvC,OAAA,CAAAmB,MAAA,EAAAnB,OAAA,CAAAyC,IAAA,GAAAzC,OAAA,CAAA0C,KAAA,GAAA1C,OAAA,CAAAK,GAAA,sBAAAL,OAAA,CAAAmB,MAAA,6BAAAgB,KAAA,QAAAA,KAAA,gBAAAnC,OAAA,CAAAK,GAAA,EAAAL,OAAA,CAAA2C,iBAAA,CAAA3C,OAAA,CAAAK,GAAA,uBAAAL,OAAA,CAAAmB,MAAA,IAAAnB,OAAA,CAAA4C,MAAA,WAAA5C,OAAA,CAAAK,GAAA,GAAA8B,KAAA,oBAAAT,MAAA,GAAAvB,QAAA,CAAAX,OAAA,EAAAE,IAAA,EAAAM,OAAA,oBAAA0B,MAAA,CAAApB,IAAA,QAAA6B,KAAA,GAAAnC,OAAA,CAAA6C,IAAA,mCAAAnB,MAAA,CAAArB,GAAA,KAAAG,gBAAA,qBAAA/B,KAAA,EAAAiD,MAAA,CAAArB,GAAA,EAAAwC,IAAA,EAAA7C,OAAA,CAAA6C,IAAA,kBAAAnB,MAAA,CAAApB,IAAA,KAAA6B,KAAA,gBAAAnC,OAAA,CAAAmB,MAAA,YAAAnB,OAAA,CAAAK,GAAA,GAAAqB,MAAA,CAAArB,GAAA,mBAAAmC,oBAAAF,QAAA,EAAAtC,OAAA,QAAA8C,UAAA,GAAA9C,OAAA,CAAAmB,MAAA,EAAAA,MAAA,GAAAmB,QAAA,CAAAzD,QAAA,CAAAiE,UAAA,OAAAC,SAAA,KAAA5B,MAAA,SAAAnB,OAAA,CAAAsC,QAAA,qBAAAQ,UAAA,IAAAR,QAAA,CAAAzD,QAAA,CAAAmE,MAAA,KAAAhD,OAAA,CAAAmB,MAAA,aAAAnB,OAAA,CAAAK,GAAA,GAAA0C,SAAA,EAAAP,mBAAA,CAAAF,QAAA,EAAAtC,OAAA,eAAAA,OAAA,CAAAmB,MAAA,kBAAA2B,UAAA,KAAA9C,OAAA,CAAAmB,MAAA,YAAAnB,OAAA,CAAAK,GAAA,OAAA4C,SAAA,uCAAAH,UAAA,iBAAAtC,gBAAA,MAAAkB,MAAA,GAAAvB,QAAA,CAAAgB,MAAA,EAAAmB,QAAA,CAAAzD,QAAA,EAAAmB,OAAA,CAAAK,GAAA,mBAAAqB,MAAA,CAAApB,IAAA,SAAAN,OAAA,CAAAmB,MAAA,YAAAnB,OAAA,CAAAK,GAAA,GAAAqB,MAAA,CAAArB,GAAA,EAAAL,OAAA,CAAAsC,QAAA,SAAA9B,gBAAA,MAAA0C,IAAA,GAAAxB,MAAA,CAAArB,GAAA,SAAA6C,IAAA,GAAAA,IAAA,CAAAL,IAAA,IAAA7C,OAAA,CAAAsC,QAAA,CAAAa,UAAA,IAAAD,IAAA,CAAAzE,KAAA,EAAAuB,OAAA,CAAAoD,IAAA,GAAAd,QAAA,CAAAe,OAAA,eAAArD,OAAA,CAAAmB,MAAA,KAAAnB,OAAA,CAAAmB,MAAA,WAAAnB,OAAA,CAAAK,GAAA,GAAA0C,SAAA,GAAA/C,OAAA,CAAAsC,QAAA,SAAA9B,gBAAA,IAAA0C,IAAA,IAAAlD,OAAA,CAAAmB,MAAA,YAAAnB,OAAA,CAAAK,GAAA,OAAA4C,SAAA,sCAAAjD,OAAA,CAAAsC,QAAA,SAAA9B,gBAAA,cAAA8C,aAAAC,IAAA,QAAAC,KAAA,KAAAC,MAAA,EAAAF,IAAA,YAAAA,IAAA,KAAAC,KAAA,CAAAE,QAAA,GAAAH,IAAA,WAAAA,IAAA,KAAAC,KAAA,CAAAG,UAAA,GAAAJ,IAAA,KAAAC,KAAA,CAAAI,QAAA,GAAAL,IAAA,WAAAM,UAAA,CAAAC,IAAA,CAAAN,KAAA,cAAAO,cAAAP,KAAA,QAAA9B,MAAA,GAAA8B,KAAA,CAAAQ,UAAA,QAAAtC,MAAA,CAAApB,IAAA,oBAAAoB,MAAA,CAAArB,GAAA,EAAAmD,KAAA,CAAAQ,UAAA,GAAAtC,MAAA,aAAAzB,QAAAN,WAAA,SAAAkE,UAAA,MAAAJ,MAAA,aAAA9D,WAAA,CAAAuB,OAAA,CAAAoC,YAAA,cAAAW,KAAA,iBAAAlD,OAAAmD,QAAA,QAAAA,QAAA,QAAAC,cAAA,GAAAD,QAAA,CAAAtF,cAAA,OAAAuF,cAAA,SAAAA,cAAA,CAAA5D,IAAA,CAAA2D,QAAA,4BAAAA,QAAA,CAAAd,IAAA,SAAAc,QAAA,OAAAE,KAAA,CAAAF,QAAA,CAAAG,MAAA,SAAAC,CAAA,OAAAlB,IAAA,YAAAA,KAAA,aAAAkB,CAAA,GAAAJ,QAAA,CAAAG,MAAA,OAAAlG,MAAA,CAAAoC,IAAA,CAAA2D,QAAA,EAAAI,CAAA,UAAAlB,IAAA,CAAA3E,KAAA,GAAAyF,QAAA,CAAAI,CAAA,GAAAlB,IAAA,CAAAP,IAAA,OAAAO,IAAA,SAAAA,IAAA,CAAA3E,KAAA,GAAAsE,SAAA,EAAAK,IAAA,CAAAP,IAAA,OAAAO,IAAA,YAAAA,IAAA,CAAAA,IAAA,GAAAA,IAAA,eAAAA,IAAA,EAAAf,UAAA,eAAAA,WAAA,aAAA5D,KAAA,EAAAsE,SAAA,EAAAF,IAAA,iBAAApC,iBAAA,CAAAvC,SAAA,GAAAwC,0BAAA,EAAArC,cAAA,CAAA2C,EAAA,mBAAAvC,KAAA,EAAAiC,0BAAA,EAAAtB,YAAA,SAAAf,cAAA,CAAAqC,0BAAA,mBAAAjC,KAAA,EAAAgC,iBAAA,EAAArB,YAAA,SAAAqB,iBAAA,CAAA8D,WAAA,GAAArF,MAAA,CAAAwB,0BAAA,EAAA1B,iBAAA,wBAAAjB,OAAA,CAAAyG,mBAAA,aAAAC,MAAA,QAAAC,IAAA,wBAAAD,MAAA,IAAAA,MAAA,CAAAE,WAAA,WAAAD,IAAA,KAAAA,IAAA,KAAAjE,iBAAA,6BAAAiE,IAAA,CAAAH,WAAA,IAAAG,IAAA,CAAAE,IAAA,OAAA7G,OAAA,CAAA8G,IAAA,aAAAJ,MAAA,WAAAxG,MAAA,CAAA6G,cAAA,GAAA7G,MAAA,CAAA6G,cAAA,CAAAL,MAAA,EAAA/D,0BAAA,KAAA+D,MAAA,CAAAM,SAAA,GAAArE,0BAAA,EAAAxB,MAAA,CAAAuF,MAAA,EAAAzF,iBAAA,yBAAAyF,MAAA,CAAAvG,SAAA,GAAAD,MAAA,CAAA8B,MAAA,CAAAiB,EAAA,GAAAyD,MAAA,KAAA1G,OAAA,CAAAiH,KAAA,aAAA3E,GAAA,aAAAwB,OAAA,EAAAxB,GAAA,OAAAY,qBAAA,CAAAI,aAAA,CAAAnD,SAAA,GAAAgB,MAAA,CAAAmC,aAAA,CAAAnD,SAAA,EAAAY,mBAAA,iCAAAf,OAAA,CAAAsD,aAAA,GAAAA,aAAA,EAAAtD,OAAA,CAAAkH,KAAA,aAAAzF,OAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,WAAA,EAAA2B,WAAA,eAAAA,WAAA,KAAAA,WAAA,GAAA4D,OAAA,OAAAC,IAAA,OAAA9D,aAAA,CAAA9B,IAAA,CAAAC,OAAA,EAAAC,OAAA,EAAAC,IAAA,EAAAC,WAAA,GAAA2B,WAAA,UAAAvD,OAAA,CAAAyG,mBAAA,CAAA/E,OAAA,IAAA0F,IAAA,GAAAA,IAAA,CAAA/B,IAAA,GAAAtB,IAAA,WAAAH,MAAA,WAAAA,MAAA,CAAAkB,IAAA,GAAAlB,MAAA,CAAAlD,KAAA,GAAA0G,IAAA,CAAA/B,IAAA,WAAAnC,qBAAA,CAAAD,EAAA,GAAA9B,MAAA,CAAA8B,EAAA,EAAAhC,iBAAA,gBAAAE,MAAA,CAAA8B,EAAA,EAAApC,cAAA,iCAAAM,MAAA,CAAA8B,EAAA,6DAAAjD,OAAA,CAAAqH,IAAA,aAAAC,GAAA,QAAAC,MAAA,GAAArH,MAAA,CAAAoH,GAAA,GAAAD,IAAA,gBAAA7G,GAAA,IAAA+G,MAAA,EAAAF,IAAA,CAAAtB,IAAA,CAAAvF,GAAA,UAAA6G,IAAA,CAAAG,OAAA,aAAAnC,KAAA,WAAAgC,IAAA,CAAAf,MAAA,SAAA9F,GAAA,GAAA6G,IAAA,CAAAI,GAAA,QAAAjH,GAAA,IAAA+G,MAAA,SAAAlC,IAAA,CAAA3E,KAAA,GAAAF,GAAA,EAAA6E,IAAA,CAAAP,IAAA,OAAAO,IAAA,WAAAA,IAAA,CAAAP,IAAA,OAAAO,IAAA,QAAArF,OAAA,CAAAgD,MAAA,GAAAA,MAAA,EAAAd,OAAA,CAAA/B,SAAA,KAAAyG,WAAA,EAAA1E,OAAA,EAAAgE,KAAA,WAAAA,MAAAwB,aAAA,aAAAC,IAAA,WAAAtC,IAAA,WAAAX,IAAA,QAAAC,KAAA,GAAAK,SAAA,OAAAF,IAAA,YAAAP,QAAA,cAAAnB,MAAA,gBAAAd,GAAA,GAAA0C,SAAA,OAAAc,UAAA,CAAA3C,OAAA,CAAA6C,aAAA,IAAA0B,aAAA,WAAAb,IAAA,kBAAAA,IAAA,CAAAe,MAAA,OAAAxH,MAAA,CAAAoC,IAAA,OAAAqE,IAAA,MAAAR,KAAA,EAAAQ,IAAA,CAAAgB,KAAA,cAAAhB,IAAA,IAAA7B,SAAA,MAAA8C,IAAA,WAAAA,KAAA,SAAAhD,IAAA,WAAAiD,UAAA,QAAAjC,UAAA,IAAAG,UAAA,kBAAA8B,UAAA,CAAAxF,IAAA,QAAAwF,UAAA,CAAAzF,GAAA,cAAA0F,IAAA,KAAApD,iBAAA,WAAAA,kBAAAqD,SAAA,aAAAnD,IAAA,QAAAmD,SAAA,MAAAhG,OAAA,kBAAAiG,OAAAC,GAAA,EAAAC,MAAA,WAAAzE,MAAA,CAAApB,IAAA,YAAAoB,MAAA,CAAArB,GAAA,GAAA2F,SAAA,EAAAhG,OAAA,CAAAoD,IAAA,GAAA8C,GAAA,EAAAC,MAAA,KAAAnG,OAAA,CAAAmB,MAAA,WAAAnB,OAAA,CAAAK,GAAA,GAAA0C,SAAA,KAAAoD,MAAA,aAAA7B,CAAA,QAAAT,UAAA,CAAAQ,MAAA,MAAAC,CAAA,SAAAA,CAAA,QAAAd,KAAA,QAAAK,UAAA,CAAAS,CAAA,GAAA5C,MAAA,GAAA8B,KAAA,CAAAQ,UAAA,iBAAAR,KAAA,CAAAC,MAAA,SAAAwC,MAAA,aAAAzC,KAAA,CAAAC,MAAA,SAAAiC,IAAA,QAAAU,QAAA,GAAAjI,MAAA,CAAAoC,IAAA,CAAAiD,KAAA,eAAA6C,UAAA,GAAAlI,MAAA,CAAAoC,IAAA,CAAAiD,KAAA,qBAAA4C,QAAA,IAAAC,UAAA,aAAAX,IAAA,GAAAlC,KAAA,CAAAE,QAAA,SAAAuC,MAAA,CAAAzC,KAAA,CAAAE,QAAA,gBAAAgC,IAAA,GAAAlC,KAAA,CAAAG,UAAA,SAAAsC,MAAA,CAAAzC,KAAA,CAAAG,UAAA,cAAAyC,QAAA,aAAAV,IAAA,GAAAlC,KAAA,CAAAE,QAAA,SAAAuC,MAAA,CAAAzC,KAAA,CAAAE,QAAA,qBAAA2C,UAAA,YAAAjE,KAAA,qDAAAsD,IAAA,GAAAlC,KAAA,CAAAG,UAAA,SAAAsC,MAAA,CAAAzC,KAAA,CAAAG,UAAA,YAAAf,MAAA,WAAAA,OAAAtC,IAAA,EAAAD,GAAA,aAAAiE,CAAA,QAAAT,UAAA,CAAAQ,MAAA,MAAAC,CAAA,SAAAA,CAAA,QAAAd,KAAA,QAAAK,UAAA,CAAAS,CAAA,OAAAd,KAAA,CAAAC,MAAA,SAAAiC,IAAA,IAAAvH,MAAA,CAAAoC,IAAA,CAAAiD,KAAA,wBAAAkC,IAAA,GAAAlC,KAAA,CAAAG,UAAA,QAAA2C,YAAA,GAAA9C,KAAA,aAAA8C,YAAA,iBAAAhG,IAAA,mBAAAA,IAAA,KAAAgG,YAAA,CAAA7C,MAAA,IAAApD,GAAA,IAAAA,GAAA,IAAAiG,YAAA,CAAA3C,UAAA,KAAA2C,YAAA,cAAA5E,MAAA,GAAA4E,YAAA,GAAAA,YAAA,CAAAtC,UAAA,cAAAtC,MAAA,CAAApB,IAAA,GAAAA,IAAA,EAAAoB,MAAA,CAAArB,GAAA,GAAAA,GAAA,EAAAiG,YAAA,SAAAnF,MAAA,gBAAAiC,IAAA,GAAAkD,YAAA,CAAA3C,UAAA,EAAAnD,gBAAA,SAAA+F,QAAA,CAAA7E,MAAA,MAAA6E,QAAA,WAAAA,SAAA7E,MAAA,EAAAkC,QAAA,oBAAAlC,MAAA,CAAApB,IAAA,QAAAoB,MAAA,CAAArB,GAAA,qBAAAqB,MAAA,CAAApB,IAAA,mBAAAoB,MAAA,CAAApB,IAAA,QAAA8C,IAAA,GAAA1B,MAAA,CAAArB,GAAA,gBAAAqB,MAAA,CAAApB,IAAA,SAAAyF,IAAA,QAAA1F,GAAA,GAAAqB,MAAA,CAAArB,GAAA,OAAAc,MAAA,kBAAAiC,IAAA,yBAAA1B,MAAA,CAAApB,IAAA,IAAAsD,QAAA,UAAAR,IAAA,GAAAQ,QAAA,GAAApD,gBAAA,KAAAgG,MAAA,WAAAA,OAAA7C,UAAA,aAAAW,CAAA,QAAAT,UAAA,CAAAQ,MAAA,MAAAC,CAAA,SAAAA,CAAA,QAAAd,KAAA,QAAAK,UAAA,CAAAS,CAAA,OAAAd,KAAA,CAAAG,UAAA,KAAAA,UAAA,cAAA4C,QAAA,CAAA/C,KAAA,CAAAQ,UAAA,EAAAR,KAAA,CAAAI,QAAA,GAAAG,aAAA,CAAAP,KAAA,GAAAhD,gBAAA,OAAAiG,KAAA,WAAAC,OAAAjD,MAAA,aAAAa,CAAA,QAAAT,UAAA,CAAAQ,MAAA,MAAAC,CAAA,SAAAA,CAAA,QAAAd,KAAA,QAAAK,UAAA,CAAAS,CAAA,OAAAd,KAAA,CAAAC,MAAA,KAAAA,MAAA,QAAA/B,MAAA,GAAA8B,KAAA,CAAAQ,UAAA,kBAAAtC,MAAA,CAAApB,IAAA,QAAAqG,MAAA,GAAAjF,MAAA,CAAArB,GAAA,EAAA0D,aAAA,CAAAP,KAAA,YAAAmD,MAAA,gBAAAvE,KAAA,8BAAAwE,aAAA,WAAAA,cAAA1C,QAAA,EAAAf,UAAA,EAAAE,OAAA,gBAAAf,QAAA,KAAAzD,QAAA,EAAAkC,MAAA,CAAAmD,QAAA,GAAAf,UAAA,EAAAA,UAAA,EAAAE,OAAA,EAAAA,OAAA,oBAAAlC,MAAA,UAAAd,GAAA,GAAA0C,SAAA,GAAAvC,gBAAA,OAAAzC,OAAA;AAAA,SAAA8I,mBAAAC,GAAA,WAAAC,kBAAA,CAAAD,GAAA,KAAAE,gBAAA,CAAAF,GAAA,KAAAG,2BAAA,CAAAH,GAAA,KAAAI,kBAAA;AAAA,SAAAA,mBAAA,cAAAjE,SAAA;AAAA,SAAAgE,4BAAAE,CAAA,EAAAC,MAAA,SAAAD,CAAA,qBAAAA,CAAA,sBAAAE,iBAAA,CAAAF,CAAA,EAAAC,MAAA,OAAAE,CAAA,GAAArJ,MAAA,CAAAC,SAAA,CAAAqJ,QAAA,CAAAhH,IAAA,CAAA4G,CAAA,EAAAvB,KAAA,aAAA0B,CAAA,iBAAAH,CAAA,CAAAxC,WAAA,EAAA2C,CAAA,GAAAH,CAAA,CAAAxC,WAAA,CAAAC,IAAA,MAAA0C,CAAA,cAAAA,CAAA,mBAAAE,KAAA,CAAAC,IAAA,CAAAN,CAAA,OAAAG,CAAA,+DAAAI,IAAA,CAAAJ,CAAA,UAAAD,iBAAA,CAAAF,CAAA,EAAAC,MAAA;AAAA,SAAAJ,iBAAA7B,IAAA,eAAAxG,MAAA,oBAAAwG,IAAA,CAAAxG,MAAA,CAAAE,QAAA,aAAAsG,IAAA,+BAAAqC,KAAA,CAAAC,IAAA,CAAAtC,IAAA;AAAA,SAAA4B,mBAAAD,GAAA,QAAAU,KAAA,CAAAG,OAAA,CAAAb,GAAA,UAAAO,iBAAA,CAAAP,GAAA;AAAA,SAAAO,kBAAAP,GAAA,EAAAc,GAAA,QAAAA,GAAA,YAAAA,GAAA,GAAAd,GAAA,CAAAzC,MAAA,EAAAuD,GAAA,GAAAd,GAAA,CAAAzC,MAAA,WAAAC,CAAA,MAAAuD,IAAA,OAAAL,KAAA,CAAAI,GAAA,GAAAtD,CAAA,GAAAsD,GAAA,EAAAtD,CAAA,IAAAuD,IAAA,CAAAvD,CAAA,IAAAwC,GAAA,CAAAxC,CAAA,UAAAuD,IAAA;AAAA,SAAAC,QAAAxC,MAAA,EAAAyC,cAAA,QAAA3C,IAAA,GAAAnH,MAAA,CAAAmH,IAAA,CAAAE,MAAA,OAAArH,MAAA,CAAA+J,qBAAA,QAAAC,OAAA,GAAAhK,MAAA,CAAA+J,qBAAA,CAAA1C,MAAA,GAAAyC,cAAA,KAAAE,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAlK,MAAA,CAAAmK,wBAAA,CAAA9C,MAAA,EAAA6C,GAAA,EAAAhJ,UAAA,OAAAiG,IAAA,CAAAtB,IAAA,CAAAuE,KAAA,CAAAjD,IAAA,EAAA6C,OAAA,YAAA7C,IAAA;AAAA,SAAAkD,cAAAC,MAAA,aAAAjE,CAAA,MAAAA,CAAA,GAAAkE,SAAA,CAAAnE,MAAA,EAAAC,CAAA,UAAAmE,MAAA,WAAAD,SAAA,CAAAlE,CAAA,IAAAkE,SAAA,CAAAlE,CAAA,QAAAA,CAAA,OAAAwD,OAAA,CAAA7J,MAAA,CAAAwK,MAAA,OAAAvH,OAAA,WAAA3C,GAAA,IAAAmK,eAAA,CAAAH,MAAA,EAAAhK,GAAA,EAAAkK,MAAA,CAAAlK,GAAA,SAAAN,MAAA,CAAA0K,yBAAA,GAAA1K,MAAA,CAAA2K,gBAAA,CAAAL,MAAA,EAAAtK,MAAA,CAAA0K,yBAAA,CAAAF,MAAA,KAAAX,OAAA,CAAA7J,MAAA,CAAAwK,MAAA,GAAAvH,OAAA,WAAA3C,GAAA,IAAAN,MAAA,CAAAI,cAAA,CAAAkK,MAAA,EAAAhK,GAAA,EAAAN,MAAA,CAAAmK,wBAAA,CAAAK,MAAA,EAAAlK,GAAA,iBAAAgK,MAAA;AAAA,SAAAG,gBAAApK,GAAA,EAAAC,GAAA,EAAAE,KAAA,IAAAF,GAAA,GAAAsK,cAAA,CAAAtK,GAAA,OAAAA,GAAA,IAAAD,GAAA,IAAAL,MAAA,CAAAI,cAAA,CAAAC,GAAA,EAAAC,GAAA,IAAAE,KAAA,EAAAA,KAAA,EAAAU,UAAA,QAAAC,YAAA,QAAAC,QAAA,oBAAAf,GAAA,CAAAC,GAAA,IAAAE,KAAA,WAAAH,GAAA;AAAA,SAAAuK,eAAAxI,GAAA,QAAA9B,GAAA,GAAAuK,YAAA,CAAAzI,GAAA,oBAAAuB,OAAA,CAAArD,GAAA,iBAAAA,GAAA,GAAAwK,MAAA,CAAAxK,GAAA;AAAA,SAAAuK,aAAAE,KAAA,EAAAC,IAAA,QAAArH,OAAA,CAAAoH,KAAA,kBAAAA,KAAA,kBAAAA,KAAA,MAAAE,IAAA,GAAAF,KAAA,CAAArK,MAAA,CAAAwK,WAAA,OAAAD,IAAA,KAAAnG,SAAA,QAAAqG,GAAA,GAAAF,IAAA,CAAA3I,IAAA,CAAAyI,KAAA,EAAAC,IAAA,oBAAArH,OAAA,CAAAwH,GAAA,uBAAAA,GAAA,YAAAnG,SAAA,4DAAAgG,IAAA,gBAAAF,MAAA,GAAAM,MAAA,EAAAL,KAAA;AAAA,SAAAM,mBAAAC,GAAA,EAAA/H,OAAA,EAAAC,MAAA,EAAA+H,KAAA,EAAAC,MAAA,EAAAlL,GAAA,EAAA8B,GAAA,cAAA6C,IAAA,GAAAqG,GAAA,CAAAhL,GAAA,EAAA8B,GAAA,OAAA5B,KAAA,GAAAyE,IAAA,CAAAzE,KAAA,WAAAuD,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAkB,IAAA,CAAAL,IAAA,IAAArB,OAAA,CAAA/C,KAAA,YAAAyG,OAAA,CAAA1D,OAAA,CAAA/C,KAAA,EAAAqD,IAAA,CAAA0H,KAAA,EAAAC,MAAA;AAAA,SAAAC,kBAAAtJ,EAAA,6BAAAV,IAAA,SAAAiK,IAAA,GAAAnB,SAAA,aAAAtD,OAAA,WAAA1D,OAAA,EAAAC,MAAA,QAAA8H,GAAA,GAAAnJ,EAAA,CAAAiI,KAAA,CAAA3I,IAAA,EAAAiK,IAAA,YAAAH,MAAA/K,KAAA,IAAA6K,kBAAA,CAAAC,GAAA,EAAA/H,OAAA,EAAAC,MAAA,EAAA+H,KAAA,EAAAC,MAAA,UAAAhL,KAAA,cAAAgL,OAAAnK,GAAA,IAAAgK,kBAAA,CAAAC,GAAA,EAAA/H,OAAA,EAAAC,MAAA,EAAA+H,KAAA,EAAAC,MAAA,WAAAnK,GAAA,KAAAkK,KAAA,CAAAzG,SAAA;AAAA,SAAS6G,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,IAAI,QAAQ,QAAQ;AAEhD,SACEC,qBAAqB,EACrBC,oBAAoB,EACpBC,UAAU,EACVC,eAAe,EACfC,gBAAgB,EAChBC,eAAe,EACfC,qBAAqB,EACrBC,qBAAqB;AAQvB,OAAO,IAAMC,iBAAkD,GAAG;EAChEC,IAAI,WAAAA,KAACC,QAAQ,EAAEC,QAAQ,EAAE;IACvB,IAAAC,SAAA,GAAqBD,QAAQ,CAAC,CAAC;MAAvBE,QAAQ,GAAAD,SAAA,CAARC,QAAQ;IAChBA,QAAQ,CAACC,EAAE,CACT,aAAa,EACb,UAACC,IAAgD,EAAK;MACpDL,QAAQ,CAAC,YAAM;QACb,IAAAM,UAAA,GAA8BL,QAAQ,CAAC,CAAC;UAAhCM,iBAAiB,GAAAD,UAAA,CAAjBC,iBAAiB;QACzBA,iBAAiB,IAAIA,iBAAiB,CAAC,CAACF,IAAI,CAAC,CAAC;QAC9CL,QAAQ,CAAC;UAAEpK,IAAI,EAAE,YAAY;UAAE4K,OAAO,EAAE;YAAEH,IAAI,EAAJA;UAAK;QAAE,CAAC,CAAC;MACrD,CAAC,CAAC;IACJ,CACF,CAAC;IACDF,QAAQ,CAACC,EAAE,CAAC,aAAa,EAAE,UAAAK,IAAA,EAAgD;MAAA,IAA7CC,GAAG,GAAAD,IAAA,CAAHC,GAAG;QAAEC,GAAG,GAAAF,IAAA,CAAHE,GAAG;MACpC,IAAAC,UAAA,GAAuBX,QAAQ,CAAC,CAAC;QAAzBY,KAAK,GAAAD,UAAA,CAALC,KAAK;QAAEC,GAAG,GAAAF,UAAA,CAAHE,GAAG;MAClB,IAAAC,gBAAA,GAA+CpB,eAAe,CAC5DkB,KAAK,EACLC,GACF,CAAC;QAHOE,QAAQ,GAAAD,gBAAA,CAARC,QAAQ;QAAEC,MAAM,GAAAF,gBAAA,CAANE,MAAM;QAAEC,QAAQ,GAAAH,gBAAA,CAARG,QAAQ;QAAEC,MAAM,GAAAJ,gBAAA,CAANI,MAAM;MAI1C,IAAMC,eAAe,GAAGJ,QAAQ,KAAKC,MAAM,IAAIC,QAAQ,KAAKC,MAAM;MAClE,IAAME,UAAU,GACdX,GAAG,IAAIM,QAAQ,IAAIN,GAAG,IAAIO,MAAM,IAAIN,GAAG,IAAIO,QAAQ,IAAIP,GAAG,IAAIQ,MAAM;MACtE,IAAIE,UAAU,EAAE;QACdlB,QAAQ,CAACmB,IAAI,SAAAC,MAAA,CAASb,GAAG,OAAAa,MAAA,CAAIZ,GAAG,cAAW;UACzCa,QAAQ,EAAE,IAAI;UACdC,YAAY,EAAE;YACZC,OAAO,EAAEhB,GAAG,MAAKG,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEH,GAAG,KAAIC,GAAG,KAAKE,KAAK,CAACF,GAAG,IAAIS,eAAe;YACnEO,KAAK,EAAEjB,GAAG,KAAKM,QAAQ;YACvBY,QAAQ,EAAElB,GAAG,KAAKO,MAAM;YACxBY,MAAM,EAAElB,GAAG,KAAKO,QAAQ;YACxBY,OAAO,EAAEnB,GAAG,KAAKQ;UACnB;QACF,CAAC,CAAC;MACJ;IACF,CAAC,CAAC;EACJ,CAAC;EACDY,OAAO,WAAAA,QAACC,CAAC,EAAE/B,QAAQ,EAAE;IACnB,IAAAgC,UAAA,GAAqBhC,QAAQ,CAAC,CAAC;MAAvBE,QAAQ,GAAA8B,UAAA,CAAR9B,QAAQ;IAChBA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE+B,kBAAkB,CAAC,CAAC;EAChC,CAAC;EACDC,gBAAgB,WAAAA,iBAACH,CAAC,EAAE/B,QAAQ,EAAE;IAC5B,IAAAmC,UAAA,GAA+CnC,QAAQ,CAAC,CAAC;MAAjDE,QAAQ,GAAAiC,UAAA,CAARjC,QAAQ;MAAEkC,YAAY,GAAAD,UAAA,CAAZC,YAAY;MAAExB,KAAK,GAAAuB,UAAA,CAALvB,KAAK;MAAEC,GAAG,GAAAsB,UAAA,CAAHtB,GAAG;IAC1C,IAAAwB,iBAAA,GAA+C3C,eAAe,CAACkB,KAAK,EAAEC,GAAG,CAAC;MAAlEE,QAAQ,GAAAsB,iBAAA,CAARtB,QAAQ;MAAEC,MAAM,GAAAqB,iBAAA,CAANrB,MAAM;MAAEC,QAAQ,GAAAoB,iBAAA,CAARpB,QAAQ;MAAEC,MAAM,GAAAmB,iBAAA,CAANnB,MAAM;IAE1C,IAAMoB,iBAAiB,GAAG9C,eAAe,CAACoB,KAAK,EAAEC,GAAG,CAAC;IACrD,IAAM0B,aAAa,GAAGhD,UAAU,CAACqB,KAAK,EAAEC,GAAG,CAAC;IAC5C,IAAM2B,WAAW,GAAGjD,UAAU,CAAC6C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAExB,KAAK,EAAEwB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEvB,GAAG,CAAC;IAEtE2B,WAAW,CAACjM,OAAO,CAAC,UAAC6J,IAAI,EAAK;MAC5B,IAAImC,aAAa,CAACE,QAAQ,CAACrC,IAAI,CAAC,EAAE;MAClCF,QAAQ,CAACmB,IAAI,SAAAC,MAAA,CAASlB,IAAI,cAAW;QACnCmB,QAAQ,EAAE,KAAK;QACfC,YAAY,EAAEpJ;MAChB,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFkK,iBAAiB,CAAC/L,OAAO,CAAC,UAAAmM,KAAA,EAAkB;MAAA,IAAfjC,GAAG,GAAAiC,KAAA,CAAHjC,GAAG;QAAEC,GAAG,GAAAgC,KAAA,CAAHhC,GAAG;MACnCR,QAAQ,CAACmB,IAAI,SAAAC,MAAA,CAASb,GAAG,OAAAa,MAAA,CAAIZ,GAAG,cAAW;QACzCa,QAAQ,EAAE,IAAI;QACdC,YAAY,EAAE;UACZC,OAAO,EACLhB,GAAG,MAAKG,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEH,GAAG,KAClBC,GAAG,KAAKE,KAAK,CAACF,GAAG,IACjB4B,iBAAiB,CAAC5I,MAAM,KAAK,CAAC;UAChCgI,KAAK,EAAEjB,GAAG,KAAKM,QAAQ;UACvBY,QAAQ,EAAElB,GAAG,KAAKO,MAAM;UACxBY,MAAM,EAAElB,GAAG,KAAKO,QAAQ;UACxBY,OAAO,EAAEnB,GAAG,KAAKQ;QACnB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC;EACDyB,cAAc,WAAAA,eAACZ,CAAC,EAAE/B,QAAQ,EAAE;IAC1B,IAAA4C,UAAA,GAA2C5C,QAAQ,CAAC,CAAC;MAA7C6C,OAAO,GAAAD,UAAA,CAAPC,OAAO;MAAEC,WAAW,GAAAF,UAAA,CAAXE,WAAW;MAAE5C,QAAQ,GAAA0C,UAAA,CAAR1C,QAAQ;IAEtC,IAAI,CAAChB,KAAK,CAAC2D,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnC,GAAG,CAAC,IAAI,CAACxB,KAAK,CAAC2D,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpC,GAAG,CAAC,EAAE;MAChDP,QAAQ,CAACmB,IAAI,SAAAC,MAAA,CAASuB,OAAO,CAACpC,GAAG,OAAAa,MAAA,CAAIuB,OAAO,CAACnC,GAAG,cAAW;QACzDmC,OAAO,EAAE,IAAI;QACb/O,KAAK,EAAE+O,OAAO,CAAC/O;MACjB,CAAC,CAAC;IACJ;IACA,IAAI,CAACoL,KAAK,CAAC4D,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEpC,GAAG,CAAC,IAAI,CAACxB,KAAK,CAAC4D,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAErC,GAAG,CAAC,EAAE;MACxD;MACAP,QAAQ,CAACmB,IAAI,SAAAC,MAAA,CAASwB,WAAW,CAACrC,GAAG,OAAAa,MAAA,CAAIwB,WAAW,CAACpC,GAAG,cAAW;QACjEmC,OAAO,EAAE,KAAK;QACdE,OAAO,EAAED,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEC;MACxB,CAAC,CAAC;MACFhB,CAAC,CAAC;QAAEpM,IAAI,EAAE,SAAS;QAAE4K,OAAO,EAAE;UAAEuC,WAAW,EAAE1K;QAAU;MAAE,CAAC,CAAC;IAC7D;EACF,CAAC;EACD4K,IAAI,WAAAA,KAACjB,CAAC,EAAE/B,QAAQ,EAAE;IAChB,IAAAiD,UAAA,GAA0CjD,QAAQ,CAAC,CAAC;MAA5CY,KAAK,GAAAqC,UAAA,CAALrC,KAAK;MAAEC,GAAG,GAAAoC,UAAA,CAAHpC,GAAG;MAAEqC,IAAI,GAAAD,UAAA,CAAJC,IAAI;MAAEC,WAAW,GAAAF,UAAA,CAAXE,WAAW;IACrC,IAAMC,SAAS,GAAG5D,eAAe,CAACoB,KAAK,EAAEC,GAAG,CAAC;IAE7C,IAAMwC,QAAQ,GAAG1D,qBAAqB,CAACwD,WAAW,CAAC;IAEnD,IAAMG,QAAQ,GAAGF,SAAS,CAACG,MAAM,CAC/B,UAACC,IAAI,EAAAC,KAAA,EAA2B;MAAA,IAAAC,SAAA,GAAAD,KAAA,CAAvBhD,GAAG;QAAHA,GAAG,GAAAiD,SAAA,cAAG,CAAC,GAAAA,SAAA;QAAAC,SAAA,GAAAF,KAAA,CAAE/C,GAAG;QAAHA,GAAG,GAAAiD,SAAA,cAAG,CAAC,GAAAA,SAAA;MACvB,IAAQC,UAAU,GAAYJ,IAAI,CAA1BI,UAAU;QAAE9P,KAAK,GAAK0P,IAAI,CAAd1P,KAAK;MAEzB,IAAIuP,QAAQ,CAACQ,GAAG,CAACpD,GAAG,CAAC,EAAE;QAAA,IAAAqD,aAAA,EAAAC,cAAA;QACrB;QACA,IAAI,GAAAD,aAAA,GAACT,QAAQ,CAACQ,GAAG,CAACpD,GAAG,CAAC,cAAAqD,aAAA,eAAjBA,aAAA,CAAmBrC,OAAO,KAAI,GAAAsC,cAAA,GAACV,QAAQ,CAACQ,GAAG,CAACpD,GAAG,CAAC,cAAAsD,cAAA,eAAjBA,cAAA,CAAmBC,MAAM,GAAE;UAC7D,OAAO;YACLJ,UAAU,EAAEnD,GAAG;YACf3M,KAAK,KAAAwN,MAAA,CAAKxN,KAAK;UACjB,CAAC;QACH;MACF;MAEA,IAAMmQ,YAAY,MAAA3C,MAAA,CAAMxN,KAAK,EAAAwN,MAAA,CAC3BsC,UAAU,KAAKnD,GAAG,GAAG,IAAI,GAAG,IAAI,OAAAa,MAAA,CAC9BhC,oBAAoB,CAAC4D,IAAI,CAACzC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC,CAAE;MAC1C,OAAO;QACLkD,UAAU,EAAEnD,GAAG;QACf3M,KAAK,EAAEmQ;MACT,CAAC;IACH,CAAC,EACD;MAAEL,UAAU,EAAE,CAAC,CAAC;MAAE9P,KAAK,EAAE;IAAG,CAC9B,CAAC;IACD,IAAMoQ,IAAI,GAAGZ,QAAQ,CAACxP,KAAK,CAACqQ,SAAS,CAAC,CAAC;IACvCvE,qBAAqB,CAACsE,IAAI,CAAC;EAC7B,CAAC;EACKE,KAAK,WAAAA,MAACrE,QAAQ,EAAEC,QAAQ,EAAE;IAAA,OAAAjB,iBAAA,eAAA5L,mBAAA,GAAA+G,IAAA,UAAAmK,QAAA;MAAA,IAAAC,UAAA,EAAA1D,KAAA,EAAAC,GAAA,EAAAP,iBAAA,EAAAiE,OAAA,EAAAC,oBAAA,EAAAC,SAAA,EAAAvB,IAAA,EAAAC,WAAA,EAAAuB,SAAA,EAAAC,UAAA,EAAAC,OAAA,EAAAC,UAAA,EAAAC,YAAA,EAAAC,eAAA,EAAAC,UAAA;MAAA,OAAA7R,mBAAA,GAAAyB,IAAA,UAAAqQ,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAAnK,IAAA,GAAAmK,QAAA,CAAAzM,IAAA;UAAA;YAAA6L,UAAA,GAS1BtE,QAAQ,CAAC,CAAC,EAPZY,KAAK,GAAA0D,UAAA,CAAL1D,KAAK,EACLC,GAAG,GAAAyD,UAAA,CAAHzD,GAAG,EACHP,iBAAiB,GAAAgE,UAAA,CAAjBhE,iBAAiB,EACjBiE,OAAO,GAAAD,UAAA,CAAPC,OAAO,EAAAC,oBAAA,GAAAF,UAAA,CACPG,SAAS,EAATA,SAAS,GAAAD,oBAAA,cAAG,KAAK,GAAAA,oBAAA,EACjBtB,IAAI,GAAAoB,UAAA,CAAJpB,IAAI,EACJC,WAAW,GAAAmB,UAAA,CAAXnB,WAAW;YAAA+B,QAAA,CAAAzM,IAAA;YAAA,OAEW4G,qBAAqB,CAAC,CAAC;UAAA;YAAzCqF,SAAS,GAAAQ,QAAA,CAAApN,IAAA;YAET6M,UAAU,GAAGlF,gBAAgB,CAAA9B,aAAA,CAAAA,aAAA,KAC9ByB,IAAI,CAACY,QAAQ,CAAC,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;cACxD0E,SAAS,EAATA,SAAS;cACTvB,WAAW,EAAXA,WAAW;cACXsB,SAAS,EAATA;YAAS,EACV,CAAC;YAAA,IACGE,UAAU;cAAAO,QAAA,CAAAzM,IAAA;cAAA;YAAA;YAAA,OAAAyM,QAAA,CAAAjN,MAAA;UAAA;YACP2M,OAAO,GAAiBD,UAAU,CAAlCC,OAAO,EAAEC,UAAU,GAAKF,UAAU,CAAzBE,UAAU;YAErBC,YAAY,GAAGF,OAAO,CACzBrH,MAAM,CAAC,UAAA4H,KAAA,EAAyB;cAAA,IAAtB1E,GAAG,GAAA0E,KAAA,CAAH1E,GAAG;gBAAEC,GAAG,GAAAyE,KAAA,CAAHzE,GAAG;gBAAE5M,KAAK,GAAAqR,KAAA,CAALrR,KAAK;cACxB,IAAMsR,MAAM,GAAGlC,IAAI,CAACzC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC2E,UAAU;cACxC,IAAID,MAAM,IAAIA,MAAM,CAACE,OAAO,EAAE;gBAC5B,OAAOF,MAAM,CAACE,OAAO,CAACxR,KAAK,CAAC;cAC9B;cACA,OAAO,IAAI;YACb,CAAC,CAAC,CACDyR,GAAG,CAAC,UAAAC,KAAA,EAAyB;cAAA,IAAAC,iBAAA;cAAA,IAAtBhF,GAAG,GAAA+E,KAAA,CAAH/E,GAAG;gBAAEC,GAAG,GAAA8E,KAAA,CAAH9E,GAAG;gBAAE5M,KAAK,GAAA0R,KAAA,CAAL1R,KAAK;cACrB,IAAMsR,MAAM,GAAGlC,IAAI,CAACzC,GAAG,CAAC,CAACC,GAAG,CAAC,CAAC2E,UAAU;cACxC,OAAO;gBACL5E,GAAG,EAAHA,GAAG;gBACHC,GAAG,EAAHA,GAAG;gBACH5M,KAAK,EAAEsR,MAAM,aAANA,MAAM,eAANA,MAAM,CAAEM,SAAS,GAAGN,MAAM,aAANA,MAAM,wBAAAK,iBAAA,GAANL,MAAM,CAAEM,SAAS,cAAAD,iBAAA,uBAAjBA,iBAAA,CAAA7P,IAAA,CAAAwP,MAAM,EAActR,KAAK,CAAC,GAAGA;cAC1D,CAAC;YACH,CAAC,CAAC;YACEiR,eAAe,GAAGF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEtH,MAAM,CAAC,UAAAoI,KAAA,EAAoB;cAAA,IAAjB7R,KAAK,GAAA6R,KAAA,CAAL7R,KAAK;gBAAE4M,GAAG,GAAAiF,KAAA,CAAHjF,GAAG;cACtD,IAAM0E,MAAM,GAAGlC,IAAI,CAAC,CAAC,CAAC,CAACxC,GAAG,CAAC,CAAC2E,UAAU;cACtC,IAAID,MAAM,IAAIA,MAAM,CAACE,OAAO,EAAE;gBAC5B,OAAOF,MAAM,CAACE,OAAO,CAACxR,KAAK,CAAC;cAC9B;cACA,OAAO,IAAI;YACb,CAAC,CAAC;YACFwM,iBAAiB,IACfA,iBAAiB,CAACwE,YAAY,EAASC,eAAsB,CAAC;YAE5DC,UAAU,GAAA9I,kBAAA,CAAQqI,OAAO,IAAI,EAAE;YACnCS,UAAU,CAAC7L,IAAI,CAAC;cACdyL,OAAO,EAAEE,YAAY,CAACS,GAAG,CAAC,UAACK,IAAI;gBAAA,OAAAjI,aAAA,CAAAA,aAAA,KAC1BiI,IAAI;kBACP9R,KAAK,EAAEoP,IAAI,CAAC0C,IAAI,CAACnF,GAAG,CAAC,CAACmF,IAAI,CAAClF,GAAG,CAAC,CAAC5M;gBAAe;cAAA,CAC/C,CAAC;cACH6B,IAAI,EAAE;YACR,CAAC,CAAC;YAEFoK,QAAQ,CAAC;cACPpK,IAAI,EAAE,SAAS;cACf4K,OAAO,EAAE;gBACPK,KAAK,EAAExB,IAAI,CAAC0F,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAC5CP,OAAO,EAAES,UAAU;gBACnBnE,GAAG,EAAEzB,IAAI,CAAC0F,YAAY,CAACA,YAAY,CAACpL,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAChE0I,YAAY,EAAE;kBACZxB,KAAK,EAALA,KAAK;kBACLC,GAAG,EAAHA;gBACF;cACF;YACF,CAAC,CAAC;UAAC;UAAA;YAAA,OAAAqE,QAAA,CAAAhK,IAAA;QAAA;MAAA,GAAAmJ,OAAA;IAAA;EACL,CAAC;EACDwB,MAAM,WAAAC,QAAC/F,QAAQ,EAAEC,QAAQ,EAAE;IACzB,IAAA+F,UAAA,GAQI/F,QAAQ,CAAC,CAAC;MAPZM,iBAAiB,GAAAyF,UAAA,CAAjBzF,iBAAiB;MACjBM,KAAK,GAAAmF,UAAA,CAALnF,KAAK;MACLC,GAAG,GAAAkF,UAAA,CAAHlF,GAAG;MACHqC,IAAI,GAAA6C,UAAA,CAAJ7C,IAAI;MACJqB,OAAO,GAAAwB,UAAA,CAAPxB,OAAO;MACPpB,WAAW,GAAA4C,UAAA,CAAX5C,WAAW;MACXN,OAAO,GAAAkD,UAAA,CAAPlD,OAAO;IAGT,IAAIA,OAAO,EAAE;IAEb,IAAMQ,QAAQ,GAAG1D,qBAAqB,CAACwD,WAAW,CAAC;IACnD,IAAMC,SAAS,GAAG5D,eAAe,CAACoB,KAAK,EAAEC,GAAG,CAAC;IAC7C,IAAM+D,OAAO,GAAGxB,SAAS,CACtB7F,MAAM,CAAC,UAACqI,IAAI;MAAA,IAAAI,cAAA;MAAA,OAAK,EAAC9C,IAAI,aAAJA,IAAI,gBAAA8C,cAAA,GAAJ9C,IAAI,CAAG0C,IAAI,CAACnF,GAAG,CAAC,cAAAuF,cAAA,eAAhBA,cAAA,CAAmBJ,IAAI,CAAClF,GAAG,CAAC,CAACuF,QAAQ;IAAA,EAAC,CACxD1I,MAAM;IACL;IACA,UAACqI,IAAI;MAAA,IAAAM,cAAA,EAAAC,cAAA;MAAA,OACH,EACE9C,QAAQ,CAACQ,GAAG,CAAC+B,IAAI,CAACnF,GAAG,CAAC,IACtB,GAAAyF,cAAA,GAAC7C,QAAQ,CAACQ,GAAG,CAAC+B,IAAI,CAACnF,GAAG,CAAC,cAAAyF,cAAA,eAAtBA,cAAA,CAAwBzE,OAAO,KAChC,GAAA0E,cAAA,GAAC9C,QAAQ,CAACQ,GAAG,CAAC+B,IAAI,CAACnF,GAAG,CAAC,cAAA0F,cAAA,eAAtBA,cAAA,CAAwBnC,MAAM,EAChC;IAAA,CACL,CAAC,CACAuB,GAAG,CAAC,UAACK,IAAI;MAAA,IAAAQ,eAAA;MAAA,OAAM;QACdhG,IAAI,EAAE8C,IAAI,aAAJA,IAAI,wBAAAkD,eAAA,GAAJlD,IAAI,CAAG0C,IAAI,CAACnF,GAAG,CAAC,cAAA2F,eAAA,uBAAhBA,eAAA,CAAmBR,IAAI,CAAClF,GAAG,CAAC;QAClCD,GAAG,EAAEmF,IAAI,CAACnF,GAAG;QACbC,GAAG,EAAEkF,IAAI,CAAClF,GAAG;QACb5M,KAAK,EAAE;MACT,CAAC;IAAA,CAAC,CAAC;IAEL,IAAIkR,UAAU,GAAA9I,kBAAA,CAAQqI,OAAO,IAAI,EAAE,CAAE;IACrCS,UAAU,CAAC7L,IAAI,CAAC;MACdyL,OAAO,EAAEA,OAAO,CAACW,GAAG,CAAC,UAACK,IAAI;QAAA,OAAAjI,aAAA,CAAAA,aAAA,KACrBiI,IAAI;UACP9R,KAAK,EAAEoP,IAAI,CAAC0C,IAAI,CAACnF,GAAG,CAAC,CAACmF,IAAI,CAAClF,GAAG,CAAC,CAAC5M;QAAe;MAAA,CAC/C,CAAC;MACH6B,IAAI,EAAE;IACR,CAAC,CAAC;IACF2K,iBAAiB,IAAIA,iBAAiB,CAACsE,OAAc,CAAC;IACtD7E,QAAQ,CAAC;MAAEpK,IAAI,EAAE,SAAS;MAAE4K,OAAO,EAAE;QAAEgE,OAAO,EAAES;MAAW;IAAE,CAAC,CAAC;EACjE,CAAC;EACDpK,OAAO,WAAAA,QAACmF,QAAQ,EAAEC,QAAQ,EAAE;IAC1B,IAAAqG,WAAA,GAA6DrG,QAAQ,CAAC,CAAC;MAA/DY,KAAK,GAAAyF,WAAA,CAALzF,KAAK;MAAEC,GAAG,GAAAwF,WAAA,CAAHxF,GAAG;MAAE0D,OAAO,GAAA8B,WAAA,CAAP9B,OAAO;MAAEjE,iBAAiB,GAAA+F,WAAA,CAAjB/F,iBAAiB;MAAEJ,QAAQ,GAAAmG,WAAA,CAARnG,QAAQ;IACxD,IAAI,EAACqE,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAE7K,MAAM,GAAE;IACtB4M,OAAO,CAACC,GAAG,CAAChC,OAAO,CAAC7K,MAAM,CAAC;IAE3B,IAAM8M,aAAa,GAAAtK,kBAAA,CAAOqI,OAAO,CAAC;IAClC,IAAMkC,MAAM,GAAGD,aAAa,CAAC3L,GAAG,CAAC,CAA6B;IAC9D,IAAQlF,IAAI,GAAK8Q,MAAM,CAAf9Q,IAAI;IACZ,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC8M,QAAQ,CAAC9M,IAAI,CAAC,EAAE;MAC/CuK,QAAQ,CAACmB,IAAI,CAAC,SAAS,EAAEoF,MAAM,CAAC;MAChC,IAAI9Q,IAAI,KAAK,WAAW,EAAE;QACxB;QACA;QACA;QACA;QACA;MAAA;MAGFoK,QAAQ,CAAC;QACPpK,IAAI,EAAE,SAAS;QACf4K,OAAO,EAAE;UACPgE,OAAO,EAAEiC;QACX;MACF,CAAC,CAAC;MACF;IACF;IACAlG,iBAAiB,IACfA,iBAAiB,CAACmG,MAAM,CAAC7B,OAA+B,CAAC;IAE3D7E,QAAQ,CAAC;MACPpK,IAAI,EAAE,SAAS;MACf4K,OAAO,EAAE;QACPK,KAAK,EAAExB,IAAI,CAACH,IAAI,CAACwH,MAAM,CAAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACjD/D,GAAG,EAAEzB,IAAI,CAACD,IAAI,CAACsH,MAAM,CAAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC/CxC,YAAY,EAAE;UACZxB,KAAK,EAALA,KAAK;UACLC,GAAG,EAAHA;QACF,CAAC;QACD0D,OAAO,EAAEiC;MACX;IACF,CAAC,CAAC;EACJ;AACF,CAAC"}
|
|
@@ -10,6 +10,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
|
10
10
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
11
11
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
12
12
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
13
|
+
import { SheetType } from "../../type";
|
|
13
14
|
export var stateReducer = {
|
|
14
15
|
change: function change(state, payload) {
|
|
15
16
|
var _ref = payload,
|
|
@@ -80,11 +81,14 @@ export var stateReducer = {
|
|
|
80
81
|
});
|
|
81
82
|
},
|
|
82
83
|
selectRow: function selectRow(state, payload) {
|
|
83
|
-
var _state$data4, _state$data4$, _state$data5
|
|
84
|
+
var _state$data4, _state$data4$, _state$data5, _state$data5$;
|
|
84
85
|
var startCol = ((_state$data4 = state.data) === null || _state$data4 === void 0 ? void 0 : (_state$data4$ = _state$data4[0]) === null || _state$data4$ === void 0 ? void 0 : _state$data4$.findIndex(function (item) {
|
|
85
86
|
return !item.fixed;
|
|
86
87
|
})) || 0;
|
|
87
|
-
var endCol = (((_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : _state$data5[0]
|
|
88
|
+
var endCol = (((_state$data5 = state.data) === null || _state$data5 === void 0 ? void 0 : (_state$data5$ = _state$data5[0]) === null || _state$data5$ === void 0 ? void 0 : _state$data5$.findIndex(function (item) {
|
|
89
|
+
return item.fixed === SheetType.CellAlign.right;
|
|
90
|
+
})) || 0) - 1;
|
|
91
|
+
// const endCol = (state.data?.[0].length || 0) - 1;
|
|
88
92
|
if (startCol >= 0 && endCol >= 0) {
|
|
89
93
|
return _objectSpread(_objectSpread({}, state), {}, {
|
|
90
94
|
start: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["stateReducer","change","state","payload","_ref","key","value","_objectSpread","_defineProperty","changes","rowMove","_state$data","_state$end","_state$end2","maxRow","data","length","newRow","end","row","col","colMove","_state$data2","_state$data2$","_state$end3","_state$data3","_state$end4","maxCol","newCol","fixed","editFinish","_data$row","_ref2","_ref2$cell","cell","confirm","history","_toConsumableArray","current","console","log","push","type","editing","undefined","lastEditing","pushHistory","concat","selectRow","_state$data4","_state$data4$","_state$data5","startCol","findIndex","item","endCol","start","lastSelected","clearSelect","clearSelectIfNotSingleRow","clearEdit"],"sources":["../../../src/core/reducers/stateReducer.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"names":["SheetType","stateReducer","change","state","payload","_ref","key","value","_objectSpread","_defineProperty","changes","rowMove","_state$data","_state$end","_state$end2","maxRow","data","length","newRow","end","row","col","colMove","_state$data2","_state$data2$","_state$end3","_state$data3","_state$end4","maxCol","newCol","fixed","editFinish","_data$row","_ref2","_ref2$cell","cell","confirm","history","_toConsumableArray","current","console","log","push","type","editing","undefined","lastEditing","pushHistory","concat","selectRow","_state$data4","_state$data4$","_state$data5","_state$data5$","startCol","findIndex","item","endCol","CellAlign","right","start","lastSelected","clearSelect","clearSelectIfNotSingleRow","clearEdit"],"sources":["../../../src/core/reducers/stateReducer.ts"],"sourcesContent":["import { SheetType } from '@zhenliang/sheet/type';\nimport { reducerAction } from '.';\n\nexport const stateReducer: Record<string, reducerAction> = {\n change(state, payload) {\n const { key, value } = payload as { key: string; value: string };\n return { ...state, [key]: value };\n },\n changes(state, payload) {\n return { ...state, ...(payload as Partial<SheetType.UpdateStateType>) };\n },\n rowMove(state, payload) {\n const maxRow = (state.data?.length || 0) - 1;\n const newRow = (state.end?.row || 0) + (payload as number);\n if (newRow < 0 || newRow > maxRow) return state;\n return {\n ...state,\n end: {\n col: state.end?.col as number,\n row: newRow,\n },\n };\n },\n colMove(state, payload) {\n const maxCol = (state.data?.[0]?.length || 0) - 1;\n const newCol = (state.end?.col || 0) + (payload as number);\n if (newCol < 0 || newCol > maxCol || state.data?.[0][newCol].fixed)\n return state;\n return {\n ...state,\n end: {\n row: state.end?.row as number,\n col: newCol,\n },\n };\n },\n editFinish(state, payload) {\n const { data } = state;\n const {\n cell: { row, col, confirm },\n } = payload as {\n cell: SheetType.CellData & { confirm: boolean };\n };\n let history = [...(state.history || [])];\n const current = data?.[row]?.[col].value;\n console.log(history.length, current);\n history.push({\n changes: [{ row, col, value: current as string }],\n type: 'Edit' as SheetType.OperateType,\n });\n if (confirm) {\n return {\n ...state,\n editing: undefined,\n lastEditing: state.editing,\n history,\n };\n }\n return {\n ...state,\n history,\n };\n },\n pushHistory(state, payload) {\n return {\n ...state,\n history: [...(state.history || []), payload as SheetType.OperateHistory],\n };\n },\n selectRow(state, payload) {\n const startCol = state.data?.[0]?.findIndex((item) => !item.fixed) || 0;\n const endCol =\n (state.data?.[0]?.findIndex(\n (item) => item.fixed === SheetType.CellAlign.right,\n ) || 0) - 1;\n // const endCol = (state.data?.[0].length || 0) - 1;\n if (startCol >= 0 && endCol >= 0) {\n return {\n ...state,\n start: {\n row: payload as number,\n col: startCol,\n },\n end: {\n row: payload as number,\n col: endCol,\n },\n lastSelected: {\n start: state.start,\n end: state.end,\n },\n };\n }\n return {};\n },\n clearSelect(state) {\n const { start, end } = state;\n return {\n ...state,\n start: undefined,\n end: undefined,\n lastSelected: {\n start,\n end,\n },\n };\n },\n clearSelectIfNotSingleRow(state) {\n const { start, end } = state;\n if (start?.row === end?.row) {\n return {\n ...state,\n };\n }\n return {\n ...state,\n start: undefined,\n end: undefined,\n lastSelected: {\n start,\n end,\n },\n };\n },\n clearEdit(state) {\n const { editing } = state;\n return {\n ...state,\n editing: undefined,\n lastEditing: editing,\n };\n },\n};\n"],"mappings":"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"}
|
package/dist/core/sheet/Cell.js
CHANGED
|
@@ -87,15 +87,16 @@ var Cell = function Cell(props) {
|
|
|
87
87
|
confirm: false
|
|
88
88
|
});
|
|
89
89
|
if (value !== valueRef.current) {
|
|
90
|
+
var _cell$dataEditor, _cell$dataEditor$form, _cell$dataEditor2;
|
|
90
91
|
console.log('confirm omit');
|
|
91
92
|
eventBus.emit('cell-change', {
|
|
92
93
|
row: row,
|
|
93
94
|
col: col,
|
|
94
|
-
value: value
|
|
95
|
+
value: (_cell$dataEditor = cell.dataEditor) !== null && _cell$dataEditor !== void 0 && _cell$dataEditor.formatter ? (_cell$dataEditor$form = (_cell$dataEditor2 = cell.dataEditor).formatter) === null || _cell$dataEditor$form === void 0 ? void 0 : _cell$dataEditor$form.call(_cell$dataEditor2, value) : value
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
98
|
}
|
|
98
|
-
}, [confirm, eventBus, value]);
|
|
99
|
+
}, [confirm, eventBus, value, cell]);
|
|
99
100
|
var handleCommit = useCallback(function (value) {
|
|
100
101
|
if (valueRef.current === value) {
|
|
101
102
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isNil","React","memo","useCallback","useEffect","useMemo","useRef","useState","useSetState","useSheetEvent","renderValue","DataEditor","DefaultCell","ValueViewer","jsx","_jsx","initialData","_ref","cell","widthStyle","width","concat","align","position","fixed","left","right","textAlign","Cell","props","_cell$editable","row","col","_props$cellRenderer","cellRenderer","CellRenderer","dataEditor","valueViewer","attributesRenderer","eventBus","_useSetState","_useSetState2","_slicedToArray","eventState","setEventState","selected","selectedInfo","editing","confirm","_useState","_useState2","value","setValue","valueRef","newValue","current","onCellState","eventInfo","on","emit","off","console","log","handleCommit","renderEditor","cel","r","editor","isEditing","Editor","onConfirm","onChange","renderViewer","valViewer","Viewer","val","record","content","editable","className","isStart","isBottom","isTop","isLeft","isRight","readonly","filter","a","join","style","children","pre","next","shouldUpdate"],"sources":["../../../src/core/sheet/Cell.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { isNil } from 'lodash';\nimport React, {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useSetState, useSheetEvent } from '../../hooks';\nimport { renderValue } from '../util';\nimport DataEditor from './DataEditor';\nimport DefaultCell from './DefaultCell';\nimport ValueViewer from './ValueViewer';\n\ntype EventInfo = {\n selected: boolean;\n value?: string;\n editing: boolean;\n};\nfunction initialData({ cell }: SheetType.CellProps) {\n return renderValue(cell);\n}\n\nfunction widthStyle(cell: SheetType.Cell) {\n const width =\n typeof cell?.width === 'number' ? `${cell.width}px` : cell.width;\n const align = cell.align || 'left';\n const position = cell.fixed ? 'sticky' : 'unset';\n const left = cell.fixed === 'left' ? 0 : 'unset';\n const right = cell.fixed === 'right' ? 0 : 'unset';\n return { width, textAlign: align, position, left, right };\n}\n\nconst Cell = (props: SheetType.CellProps) => {\n const {\n row,\n col,\n cell,\n cellRenderer: CellRenderer = DefaultCell,\n dataEditor,\n valueViewer,\n attributesRenderer,\n } = props;\n\n const eventBus = useSheetEvent();\n const [eventState, setEventState] = useSetState<{\n selected: boolean;\n selectedInfo?: {\n isStart?: boolean;\n isTop?: boolean;\n isBottom?: boolean;\n isLeft?: boolean;\n isRight?: boolean;\n };\n editing?: boolean;\n confirm?: boolean;\n }>();\n const { selected, selectedInfo, editing, confirm } = eventState;\n\n const [value, setValue] = useState(initialData(props));\n const valueRef = useRef<any>(value);\n\n useEffect(() => {\n const newValue = renderValue(cell);\n setValue(newValue);\n valueRef.current = newValue;\n }, [cell, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n const onCellState = (eventInfo: EventInfo) => {\n if (eventInfo.value && eventInfo.editing) {\n setValue(eventInfo.value);\n }\n setEventState(eventInfo);\n };\n\n eventBus.on(`cell-${row}-${col}-change`, onCellState);\n eventBus.emit(`cell-create`, { row, col });\n return () => {\n eventBus.off(`cell-${row}-${col}-change`, onCellState);\n };\n }, [eventBus, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n if (confirm) {\n setEventState({ confirm: false });\n if (value !== valueRef.current) {\n console.log('confirm omit');\n eventBus.emit('cell-change', { row, col: col, value });\n }\n }\n }, [confirm, eventBus, value]);\n\n const handleCommit = useCallback(\n (value: string) => {\n if (valueRef.current === value) {\n return;\n }\n setValue(value);\n console.log('handle omit');\n eventBus.emit('cell-change', { row, col: col, value, confirm: true });\n },\n [eventBus, valueRef],\n );\n\n const renderEditor = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n editor: any,\n isEditing?: boolean,\n ) => {\n if (isEditing) {\n const Editor = cel.dataEditor || editor || DataEditor;\n return (\n <Editor\n cell={cel}\n row={r}\n col={col}\n value={value}\n onConfirm={handleCommit}\n onChange={setValue}\n />\n );\n }\n return null;\n };\n\n const renderViewer = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n valViewer?: React.ElementType,\n ) => {\n const Viewer = cell.valueViewer || valViewer || ValueViewer;\n const val = renderValue(cell);\n\n return (\n <Viewer\n record={cell.record}\n cell={cell}\n row={row}\n col={col}\n value={val}\n />\n );\n };\n\n const content =\n (cell.editable ?? true) && editing\n ? renderEditor(cell, row, col, dataEditor, editing)\n : renderViewer(cell, row, col, valueViewer);\n\n const className = useMemo(\n () =>\n [\n cell.className,\n 'cell',\n selected && 'selected',\n selectedInfo?.isStart && 'selected-start',\n selectedInfo?.isBottom && 'selected-bottom',\n selectedInfo?.isTop && 'selected-top',\n selectedInfo?.isLeft && 'selected-left',\n selectedInfo?.isRight && 'selected-right',\n editing && 'editing',\n cell.readonly && 'read-only',\n ]\n .filter((a) => a)\n .join(' '),\n [editing, selected, selectedInfo, cell.className, cell.readonly],\n );\n\n return (\n <CellRenderer\n row={row}\n col={col}\n cell={cell}\n selected={eventState.selected}\n editing={eventState.editing}\n attributesRenderer={attributesRenderer}\n className={className}\n style={widthStyle(cell)}\n >\n {content}\n </CellRenderer>\n );\n};\n\nexport default memo(Cell, (pre, next) => {\n const shouldUpdate =\n pre.col === next.col &&\n pre.row === next.row &&\n pre.cell.value === next.cell.value &&\n pre.cell.record === next.cell.record;\n return shouldUpdate;\n});\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["isNil","React","memo","useCallback","useEffect","useMemo","useRef","useState","useSetState","useSheetEvent","renderValue","DataEditor","DefaultCell","ValueViewer","jsx","_jsx","initialData","_ref","cell","widthStyle","width","concat","align","position","fixed","left","right","textAlign","Cell","props","_cell$editable","row","col","_props$cellRenderer","cellRenderer","CellRenderer","dataEditor","valueViewer","attributesRenderer","eventBus","_useSetState","_useSetState2","_slicedToArray","eventState","setEventState","selected","selectedInfo","editing","confirm","_useState","_useState2","value","setValue","valueRef","newValue","current","onCellState","eventInfo","on","emit","off","_cell$dataEditor","_cell$dataEditor$form","_cell$dataEditor2","console","log","formatter","call","handleCommit","renderEditor","cel","r","editor","isEditing","Editor","onConfirm","onChange","renderViewer","valViewer","Viewer","val","record","content","editable","className","isStart","isBottom","isTop","isLeft","isRight","readonly","filter","a","join","style","children","pre","next","shouldUpdate"],"sources":["../../../src/core/sheet/Cell.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { isNil } from 'lodash';\nimport React, {\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { useSetState, useSheetEvent } from '../../hooks';\nimport { renderValue } from '../util';\nimport DataEditor from './DataEditor';\nimport DefaultCell from './DefaultCell';\nimport ValueViewer from './ValueViewer';\n\ntype EventInfo = {\n selected: boolean;\n value?: string;\n editing: boolean;\n};\nfunction initialData({ cell }: SheetType.CellProps) {\n return renderValue(cell);\n}\n\nfunction widthStyle(cell: SheetType.Cell) {\n const width =\n typeof cell?.width === 'number' ? `${cell.width}px` : cell.width;\n const align = cell.align || 'left';\n const position = cell.fixed ? 'sticky' : 'unset';\n const left = cell.fixed === 'left' ? 0 : 'unset';\n const right = cell.fixed === 'right' ? 0 : 'unset';\n return { width, textAlign: align, position, left, right };\n}\n\nconst Cell = (props: SheetType.CellProps) => {\n const {\n row,\n col,\n cell,\n cellRenderer: CellRenderer = DefaultCell,\n dataEditor,\n valueViewer,\n attributesRenderer,\n } = props;\n\n const eventBus = useSheetEvent();\n const [eventState, setEventState] = useSetState<{\n selected: boolean;\n selectedInfo?: {\n isStart?: boolean;\n isTop?: boolean;\n isBottom?: boolean;\n isLeft?: boolean;\n isRight?: boolean;\n };\n editing?: boolean;\n confirm?: boolean;\n }>();\n const { selected, selectedInfo, editing, confirm } = eventState;\n\n const [value, setValue] = useState(initialData(props));\n const valueRef = useRef<any>(value);\n\n useEffect(() => {\n const newValue = renderValue(cell);\n setValue(newValue);\n valueRef.current = newValue;\n }, [cell, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n const onCellState = (eventInfo: EventInfo) => {\n if (eventInfo.value && eventInfo.editing) {\n setValue(eventInfo.value);\n }\n setEventState(eventInfo);\n };\n\n eventBus.on(`cell-${row}-${col}-change`, onCellState);\n eventBus.emit(`cell-create`, { row, col });\n return () => {\n eventBus.off(`cell-${row}-${col}-change`, onCellState);\n };\n }, [eventBus, row, col]);\n\n useEffect(() => {\n if (isNil(row) || isNil(col) || !eventBus) {\n return;\n }\n if (confirm) {\n setEventState({ confirm: false });\n if (value !== valueRef.current) {\n console.log('confirm omit');\n eventBus.emit('cell-change', {\n row,\n col,\n value: cell.dataEditor?.formatter\n ? cell.dataEditor.formatter?.(value)\n : value,\n });\n }\n }\n }, [confirm, eventBus, value, cell]);\n\n const handleCommit = useCallback(\n (value: string) => {\n if (valueRef.current === value) {\n return;\n }\n setValue(value);\n console.log('handle omit');\n eventBus.emit('cell-change', { row, col: col, value, confirm: true });\n },\n [eventBus, valueRef],\n );\n\n const renderEditor = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n editor: any,\n isEditing?: boolean,\n ) => {\n if (isEditing) {\n const Editor = cel.dataEditor || editor || DataEditor;\n return (\n <Editor\n cell={cel}\n row={r}\n col={col}\n value={value}\n onConfirm={handleCommit}\n onChange={setValue}\n />\n );\n }\n return null;\n };\n\n const renderViewer = (\n cel: SheetType.Cell,\n r: number,\n col: number,\n valViewer?: React.ElementType,\n ) => {\n const Viewer = cell.valueViewer || valViewer || ValueViewer;\n const val = renderValue(cell);\n\n return (\n <Viewer\n record={cell.record}\n cell={cell}\n row={row}\n col={col}\n value={val}\n />\n );\n };\n\n const content =\n (cell.editable ?? true) && editing\n ? renderEditor(cell, row, col, dataEditor, editing)\n : renderViewer(cell, row, col, valueViewer);\n\n const className = useMemo(\n () =>\n [\n cell.className,\n 'cell',\n selected && 'selected',\n selectedInfo?.isStart && 'selected-start',\n selectedInfo?.isBottom && 'selected-bottom',\n selectedInfo?.isTop && 'selected-top',\n selectedInfo?.isLeft && 'selected-left',\n selectedInfo?.isRight && 'selected-right',\n editing && 'editing',\n cell.readonly && 'read-only',\n ]\n .filter((a) => a)\n .join(' '),\n [editing, selected, selectedInfo, cell.className, cell.readonly],\n );\n\n return (\n <CellRenderer\n row={row}\n col={col}\n cell={cell}\n selected={eventState.selected}\n editing={eventState.editing}\n attributesRenderer={attributesRenderer}\n className={className}\n style={widthStyle(cell)}\n >\n {content}\n </CellRenderer>\n );\n};\n\nexport default memo(Cell, (pre, next) => {\n const shouldUpdate =\n pre.col === next.col &&\n pre.row === next.row &&\n pre.cell.value === next.cell.value &&\n pre.cell.record === next.cell.record;\n return shouldUpdate;\n});\n"],"mappings":"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"}
|
package/dist/core/sheet/index.js
CHANGED
|
@@ -23,7 +23,7 @@ import { useVirtualList } from "./useVirtualList";
|
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
24
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
25
25
|
var Sheet = function Sheet(props) {
|
|
26
|
-
var _state$data$length, _state$
|
|
26
|
+
var _state$data$length, _state$data3, _scroll$y, _scroll$x;
|
|
27
27
|
var _props$sheetInstance = props.sheetInstance,
|
|
28
28
|
sheetInstance = _props$sheetInstance === void 0 ? {
|
|
29
29
|
current: null
|
|
@@ -71,7 +71,6 @@ var Sheet = function Sheet(props) {
|
|
|
71
71
|
groupConfig = _getState.groupConfig;
|
|
72
72
|
if (!start && isNil(row)) return;
|
|
73
73
|
var actual = rowToActualRow((_ref = row) !== null && _ref !== void 0 ? _ref : start === null || start === void 0 ? void 0 : start.row, groupConfig);
|
|
74
|
-
console.log(actual);
|
|
75
74
|
var rowHeight = getRowHeight(sheetWrapperRef.current);
|
|
76
75
|
(_sheetWrapperRef$curr = sheetWrapperRef.current) === null || _sheetWrapperRef$curr === void 0 ? void 0 : _sheetWrapperRef$curr.scrollTo(0, rowHeight * actual);
|
|
77
76
|
});
|
|
@@ -142,8 +141,10 @@ var Sheet = function Sheet(props) {
|
|
|
142
141
|
});
|
|
143
142
|
}, [groupConfig]);
|
|
144
143
|
var rowElements = useMemo(function () {
|
|
145
|
-
var _state$data;
|
|
146
|
-
return state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : _state$data.map(function (rowData
|
|
144
|
+
var _state$data, _state$data$slice;
|
|
145
|
+
return state === null || state === void 0 ? void 0 : (_state$data = state.data) === null || _state$data === void 0 ? void 0 : (_state$data$slice = _state$data.slice(virtualStart, virtualEnd)) === null || _state$data$slice === void 0 ? void 0 : _state$data$slice.map(function (rowData) {
|
|
146
|
+
var _state$data2;
|
|
147
|
+
var row = (state === null || state === void 0 ? void 0 : (_state$data2 = state.data) === null || _state$data2 === void 0 ? void 0 : _state$data2.indexOf(rowData)) || 0;
|
|
147
148
|
return /*#__PURE__*/_jsx(Row, {
|
|
148
149
|
row: row,
|
|
149
150
|
cells: rowData,
|
|
@@ -155,8 +156,8 @@ var Sheet = function Sheet(props) {
|
|
|
155
156
|
})
|
|
156
157
|
}, row);
|
|
157
158
|
});
|
|
158
|
-
}, [state.data, groupConfig]);
|
|
159
|
-
var memoHeight = Math.min(((_state$data$length = state === null || state === void 0 ? void 0 : (_state$
|
|
159
|
+
}, [state.data, groupConfig, virtualStart, virtualEnd]);
|
|
160
|
+
var memoHeight = Math.min(((_state$data$length = state === null || state === void 0 ? void 0 : (_state$data3 = state.data) === null || _state$data3 === void 0 ? void 0 : _state$data3.length) !== null && _state$data$length !== void 0 ? _state$data$length : 0) + 1, 10) * 42 + 43;
|
|
160
161
|
return /*#__PURE__*/_jsx(SheetEventContext.Provider, {
|
|
161
162
|
value: eventBus,
|
|
162
163
|
children: /*#__PURE__*/_jsxs("span", {
|
|
@@ -175,7 +176,7 @@ var Sheet = function Sheet(props) {
|
|
|
175
176
|
paddingBottom: paddingTop,
|
|
176
177
|
display: 'block'
|
|
177
178
|
}
|
|
178
|
-
}), rowElements
|
|
179
|
+
}), rowElements, /*#__PURE__*/_jsx("tr", {
|
|
179
180
|
style: {
|
|
180
181
|
height: 0,
|
|
181
182
|
paddingBottom: paddingBottom,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useRef","ReduxLogger","ReduxThunk","DefaultRow","DefaultShell","isNil","SheetEventContext","useEventBus","useMiddlewareReducer","sheetReducer","classNames","getRowHeight","rowToActualRow","DefaultRowMapper","useCellEvent","useContextMenu","useKeyBoardEvent","useMouseEvent","useVirtualList","jsx","_jsx","jsxs","_jsxs","Sheet","props","_state$data$length","_state$data2","_scroll$y","_scroll$x","_props$sheetInstance","sheetInstance","current","_props$sheetRenderer","sheetRenderer","SheetShell","_props$rowRenderer","rowRenderer","Row","ContextMenu","menuRenderer","_props$virtualized","virtualized","className","data","_props$freePaste","freePaste","_props$groupConfig","groupConfig","undefined","onCellsChanged","onContextMenu","rowClassName","scroll","children","sheetWrapperRef","contextMenuRef","eventBus","_useMiddlewareReducer","mouseDown","editing","lastFocus","_useMiddlewareReducer2","_slicedToArray","state","dispatch","zoomTo","row","d","getState","_ref","_sheetWrapperRef$curr","_getState","start","actual","console","log","rowHeight","scrollTo","pushToHistory","config","type","payload","selectRow","popHistory","cellChangeHandler","menu","setTimeout","_sheetWrapperRef$curr2","focus","preventScroll","_useVirtualList","virtualStart","virtualEnd","paddingTop","paddingBottom","rowElements","_state$data","map","rowData","cells","memoHeight","Math","min","length","Provider","value","ref","tabIndex","style","maxHeight","y","width","x","height","display","slice","showMenu","position","cell","cellPosition"],"sources":["../../../src/core/sheet/index.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReduxLogger from 'redux-logger';\nimport ReduxThunk from 'redux-thunk';\n\nimport DefaultRow from './DefaultRow';\nimport DefaultShell from './DefaultShell';\n\nimport { isNil } from 'lodash';\nimport {\n SheetEventContext,\n useEventBus,\n useMiddlewareReducer,\n} from '../../hooks';\nimport sheetReducer from '../reducers';\nimport { classNames, getRowHeight, rowToActualRow } from '../util';\nimport { DefaultRowMapper } from './DefaultRowMapper';\nimport './index.less';\nimport { useCellEvent } from './useCellEvent';\nimport { useContextMenu } from './useContextMenu';\nimport { useKeyBoardEvent } from './useKeyBoardEvent';\nimport { useMouseEvent } from './useMouseEvent';\nimport { useVirtualList } from './useVirtualList';\n\nconst Sheet: React.FC<SheetType.SheetProps> = (props) => {\n const {\n sheetInstance = { current: null },\n sheetRenderer: SheetShell = DefaultShell,\n rowRenderer: Row = DefaultRow,\n menuRenderer: ContextMenu,\n virtualized = false,\n className,\n data,\n freePaste = false,\n groupConfig = undefined,\n onCellsChanged,\n onContextMenu,\n rowClassName,\n scroll,\n children,\n } = props;\n const sheetWrapperRef = useRef<SheetType.refAssertion>(null);\n const contextMenuRef = useRef<HTMLDivElement>(null);\n const eventBus = useEventBus();\n const [state, dispatch] = useMiddlewareReducer(\n sheetReducer,\n {\n data,\n mouseDown: false,\n editing: undefined,\n lastFocus: [],\n groupConfig,\n eventBus,\n },\n [ReduxThunk, ReduxLogger],\n );\n\n useEffect(() => {\n sheetInstance.current = {\n zoomTo: (row?: number) => {\n // 默认回到编辑行\n dispatch((d: unknown, getState: () => SheetType.UpdateStateType) => {\n const { start, groupConfig } = getState();\n if (!start && isNil(row)) return;\n const actual = rowToActualRow(\n (row as number) ?? start?.row,\n groupConfig,\n );\n console.log(actual);\n const rowHeight = getRowHeight(\n sheetWrapperRef.current as HTMLSpanElement,\n );\n sheetWrapperRef.current?.scrollTo(0, rowHeight * actual);\n });\n },\n pushToHistory: (config: SheetType.OperateHistory) => {\n dispatch({ type: 'pushHistory', payload: config });\n },\n selectRow: (row?: number) => {\n if (isNil(row)) {\n dispatch({ type: 'clearSelect' });\n } else {\n dispatch({ type: 'selectRow', payload: row });\n }\n },\n popHistory: () => {\n return {} as SheetType.OperateHistory;\n },\n };\n }, [sheetWrapperRef.current]);\n\n useEffect(() => {\n // 同步必要的状态\n dispatch({\n type: 'changes',\n payload: {\n cellChangeHandler: onCellsChanged,\n data,\n freePaste,\n groupConfig,\n },\n });\n }, [onCellsChanged, data, freePaste, groupConfig]);\n\n useCellEvent(dispatch, state);\n useMouseEvent(dispatch, sheetWrapperRef);\n useKeyBoardEvent(dispatch, sheetWrapperRef);\n\n const menu = useContextMenu(\n dispatch,\n sheetWrapperRef,\n !!ContextMenu,\n contextMenuRef,\n );\n\n // timeout 的副作用不适合放reducer里面\n useEffect(() => {\n if (!state.editing && state.start) {\n setTimeout(() => {\n // 表格获取焦点 + 接收keyboard event\n sheetWrapperRef.current?.focus({ preventScroll: true });\n }, 1);\n }\n }, [state.editing, state.start]);\n\n const { virtualStart, virtualEnd, paddingTop, paddingBottom } =\n useVirtualList(sheetWrapperRef, state.data, virtualized);\n\n useEffect(() => {\n dispatch({\n type: 'clearEdit',\n });\n dispatch({\n type: 'clearSelectIfNotSingleRow',\n });\n }, [groupConfig]);\n\n const rowElements = useMemo(() => {\n return state?.data?.map((rowData: SheetType.Cell[], row: number) => {\n return (\n <Row\n key={row}\n row={row}\n cells={rowData}\n groupConfig={groupConfig}\n rowClassName={rowClassName}\n >\n <DefaultRowMapper rowData={rowData} row={row} />\n </Row>\n );\n });\n }, [state.data, groupConfig]);\n\n const memoHeight = Math.min((state?.data?.length ?? 0) + 1, 10) * 42 + 43;\n\n return (\n <SheetEventContext.Provider value={eventBus}>\n <span\n ref={sheetWrapperRef}\n tabIndex={0}\n className={classNames('harvest harvest-sheet-container', className)}\n style={{\n maxHeight: scroll?.y ?? memoHeight,\n width: scroll?.x ?? '100%',\n }}\n >\n <SheetShell\n key=\"sheet\"\n className={classNames('harvest-sheet', className)}\n >\n {virtualized && (\n <tr\n style={{ height: 0, paddingBottom: paddingTop, display: 'block' }}\n />\n )}\n {rowElements?.slice(virtualStart, virtualEnd)}\n {/* {rowElements} */}\n <tr\n style={{\n height: 0,\n paddingBottom: paddingBottom,\n display: 'block',\n }}\n />\n </SheetShell>\n {ContextMenu ? (\n <div\n ref={contextMenuRef}\n style={{ display: menu.showMenu ? '' : 'none' }}\n >\n <ContextMenu\n position={menu.position}\n cell={menu.cellPosition}\n onContextMenu={onContextMenu}\n />\n </div>\n ) : null}\n <div className=\"harvest-sheet-control\">{children}</div>\n </span>\n </SheetEventContext.Provider>\n );\n};\n\nexport default Sheet;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","ReduxLogger","ReduxThunk","DefaultRow","DefaultShell","isNil","SheetEventContext","useEventBus","useMiddlewareReducer","sheetReducer","classNames","getRowHeight","rowToActualRow","DefaultRowMapper","useCellEvent","useContextMenu","useKeyBoardEvent","useMouseEvent","useVirtualList","jsx","_jsx","jsxs","_jsxs","Sheet","props","_state$data$length","_state$data3","_scroll$y","_scroll$x","_props$sheetInstance","sheetInstance","current","_props$sheetRenderer","sheetRenderer","SheetShell","_props$rowRenderer","rowRenderer","Row","ContextMenu","menuRenderer","_props$virtualized","virtualized","className","data","_props$freePaste","freePaste","_props$groupConfig","groupConfig","undefined","onCellsChanged","onContextMenu","rowClassName","scroll","children","sheetWrapperRef","contextMenuRef","eventBus","_useMiddlewareReducer","mouseDown","editing","lastFocus","_useMiddlewareReducer2","_slicedToArray","state","dispatch","zoomTo","row","d","getState","_ref","_sheetWrapperRef$curr","_getState","start","actual","rowHeight","scrollTo","pushToHistory","config","type","payload","selectRow","popHistory","cellChangeHandler","menu","setTimeout","_sheetWrapperRef$curr2","focus","preventScroll","_useVirtualList","virtualStart","virtualEnd","paddingTop","paddingBottom","rowElements","_state$data","_state$data$slice","slice","map","rowData","_state$data2","indexOf","cells","memoHeight","Math","min","length","Provider","value","ref","tabIndex","style","maxHeight","y","width","x","height","display","showMenu","position","cell","cellPosition"],"sources":["../../../src/core/sheet/index.tsx"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { useEffect, useMemo, useRef } from 'react';\nimport ReduxLogger from 'redux-logger';\nimport ReduxThunk from 'redux-thunk';\n\nimport DefaultRow from './DefaultRow';\nimport DefaultShell from './DefaultShell';\n\nimport { isNil } from 'lodash';\nimport {\n SheetEventContext,\n useEventBus,\n useMiddlewareReducer,\n} from '../../hooks';\nimport sheetReducer from '../reducers';\nimport { classNames, getRowHeight, rowToActualRow } from '../util';\nimport { DefaultRowMapper } from './DefaultRowMapper';\nimport './index.less';\nimport { useCellEvent } from './useCellEvent';\nimport { useContextMenu } from './useContextMenu';\nimport { useKeyBoardEvent } from './useKeyBoardEvent';\nimport { useMouseEvent } from './useMouseEvent';\nimport { useVirtualList } from './useVirtualList';\n\nconst Sheet: React.FC<SheetType.SheetProps> = (props) => {\n const {\n sheetInstance = { current: null },\n sheetRenderer: SheetShell = DefaultShell,\n rowRenderer: Row = DefaultRow,\n menuRenderer: ContextMenu,\n virtualized = false,\n className,\n data,\n freePaste = false,\n groupConfig = undefined,\n onCellsChanged,\n onContextMenu,\n rowClassName,\n scroll,\n children,\n } = props;\n const sheetWrapperRef = useRef<SheetType.refAssertion>(null);\n const contextMenuRef = useRef<HTMLDivElement>(null);\n const eventBus = useEventBus();\n const [state, dispatch] = useMiddlewareReducer(\n sheetReducer,\n {\n data,\n mouseDown: false,\n editing: undefined,\n lastFocus: [],\n groupConfig,\n eventBus,\n },\n [ReduxThunk, ReduxLogger],\n );\n\n useEffect(() => {\n sheetInstance.current = {\n zoomTo: (row?: number) => {\n // 默认回到编辑行\n dispatch((d: unknown, getState: () => SheetType.UpdateStateType) => {\n const { start, groupConfig } = getState();\n if (!start && isNil(row)) return;\n const actual = rowToActualRow(\n (row as number) ?? start?.row,\n groupConfig,\n );\n const rowHeight = getRowHeight(\n sheetWrapperRef.current as HTMLSpanElement,\n );\n sheetWrapperRef.current?.scrollTo(0, rowHeight * actual);\n });\n },\n pushToHistory: (config: SheetType.OperateHistory) => {\n dispatch({ type: 'pushHistory', payload: config });\n },\n selectRow: (row?: number) => {\n if (isNil(row)) {\n dispatch({ type: 'clearSelect' });\n } else {\n dispatch({ type: 'selectRow', payload: row });\n }\n },\n popHistory: () => {\n return {} as SheetType.OperateHistory;\n },\n };\n }, [sheetWrapperRef.current]);\n\n useEffect(() => {\n // 同步必要的状态\n dispatch({\n type: 'changes',\n payload: {\n cellChangeHandler: onCellsChanged,\n data,\n freePaste,\n groupConfig,\n },\n });\n }, [onCellsChanged, data, freePaste, groupConfig]);\n\n useCellEvent(dispatch, state);\n useMouseEvent(dispatch, sheetWrapperRef);\n useKeyBoardEvent(dispatch, sheetWrapperRef);\n\n const menu = useContextMenu(\n dispatch,\n sheetWrapperRef,\n !!ContextMenu,\n contextMenuRef,\n );\n\n // timeout 的副作用不适合放reducer里面\n useEffect(() => {\n if (!state.editing && state.start) {\n setTimeout(() => {\n // 表格获取焦点 + 接收keyboard event\n sheetWrapperRef.current?.focus({ preventScroll: true });\n }, 1);\n }\n }, [state.editing, state.start]);\n\n const { virtualStart, virtualEnd, paddingTop, paddingBottom } =\n useVirtualList(sheetWrapperRef, state.data, virtualized);\n\n useEffect(() => {\n dispatch({\n type: 'clearEdit',\n });\n dispatch({\n type: 'clearSelectIfNotSingleRow',\n });\n }, [groupConfig]);\n\n const rowElements = useMemo(() => {\n return state?.data\n ?.slice(virtualStart, virtualEnd)\n ?.map((rowData: SheetType.Cell[]) => {\n const row = state?.data?.indexOf(rowData) || 0;\n return (\n <Row\n key={row}\n row={row}\n cells={rowData}\n groupConfig={groupConfig}\n rowClassName={rowClassName}\n >\n <DefaultRowMapper rowData={rowData} row={row} />\n </Row>\n );\n });\n }, [state.data, groupConfig, virtualStart, virtualEnd]);\n\n const memoHeight = Math.min((state?.data?.length ?? 0) + 1, 10) * 42 + 43;\n\n return (\n <SheetEventContext.Provider value={eventBus}>\n <span\n ref={sheetWrapperRef}\n tabIndex={0}\n className={classNames('harvest harvest-sheet-container', className)}\n style={{\n maxHeight: scroll?.y ?? memoHeight,\n width: scroll?.x ?? '100%',\n }}\n >\n <SheetShell\n key=\"sheet\"\n className={classNames('harvest-sheet', className)}\n >\n {virtualized && (\n <tr\n style={{ height: 0, paddingBottom: paddingTop, display: 'block' }}\n />\n )}\n {/* {rowElements?.slice(virtualStart, virtualEnd)} */}\n {rowElements}\n <tr\n style={{\n height: 0,\n paddingBottom: paddingBottom,\n display: 'block',\n }}\n />\n </SheetShell>\n {ContextMenu ? (\n <div\n ref={contextMenuRef}\n style={{ display: menu.showMenu ? '' : 'none' }}\n >\n <ContextMenu\n position={menu.position}\n cell={menu.cellPosition}\n onContextMenu={onContextMenu}\n />\n </div>\n ) : null}\n <div className=\"harvest-sheet-control\">{children}</div>\n </span>\n </SheetEventContext.Provider>\n );\n};\n\nexport default Sheet;\n"],"mappings":"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"}
|
|
@@ -57,6 +57,14 @@ export var useVirtualList = function useVirtualList(elementRef) {
|
|
|
57
57
|
(_elementRef$current = elementRef.current) === null || _elementRef$current === void 0 ? void 0 : _elementRef$current.removeEventListener('scroll', handleScroll);
|
|
58
58
|
};
|
|
59
59
|
}, [elementRef.current]);
|
|
60
|
+
useEffect(function () {
|
|
61
|
+
setState({
|
|
62
|
+
virtualStart: 0,
|
|
63
|
+
virtualEnd: Math.min(data.length - 1, 2 * extra),
|
|
64
|
+
paddingTop: 0,
|
|
65
|
+
paddingBottom: 0
|
|
66
|
+
});
|
|
67
|
+
}, [data]);
|
|
60
68
|
if (!virtualized) {
|
|
61
69
|
return {
|
|
62
70
|
virtualStart: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["isEqual","throttle","useEffect","useRef","useState","getRowHeight","extra","useVirtualList","elementRef","data","arguments","length","undefined","virtualized","_useState","virtualStart","virtualEnd","paddingTop","paddingBottom","_useState2","_slicedToArray","state","setState","virtualRef","current","rowHeight","handleScroll","_ref","scrollTop","clientHeight","itemHeight","start","Math","floor","end","ceil","updateVirtualConfig","addEventListener","_elementRef$current","removeEventListener","
|
|
1
|
+
{"version":3,"names":["isEqual","throttle","useEffect","useRef","useState","getRowHeight","extra","useVirtualList","elementRef","data","arguments","length","undefined","virtualized","_useState","virtualStart","virtualEnd","paddingTop","paddingBottom","_useState2","_slicedToArray","state","setState","virtualRef","current","rowHeight","handleScroll","_ref","scrollTop","clientHeight","itemHeight","start","Math","floor","end","ceil","updateVirtualConfig","addEventListener","_elementRef$current","removeEventListener","min","max"],"sources":["../../../src/core/sheet/useVirtualList.ts"],"sourcesContent":["import type { SheetType } from '@zhenliang/sheet/type';\nimport { isEqual, throttle } from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { getRowHeight } from '../util';\n\nconst extra = 20;\n\ntype VirtualConfig = {\n virtualStart: number;\n virtualEnd: number;\n paddingTop: number;\n paddingBottom: number;\n};\n\n// 虚拟列表\nexport const useVirtualList = (\n elementRef: React.RefObject<SheetType.refAssertion>,\n data: SheetType.Cell[][] = [],\n virtualized?: boolean,\n) => {\n const [state, setState] = useState({\n virtualStart: 0,\n virtualEnd: data.length - 1,\n paddingTop: 0,\n paddingBottom: 0,\n });\n const { virtualStart, virtualEnd, paddingTop, paddingBottom } = state;\n const virtualRef = useRef<VirtualConfig | null>();\n\n useEffect(() => {\n if (!elementRef.current) return;\n\n // 当前位定高的表格,所以可以直接获取第一行的高度\n\n const rowHeight = getRowHeight(elementRef.current as HTMLSpanElement);\n\n const handleScroll = throttle(() => {\n const { scrollTop, clientHeight } = elementRef.current as HTMLSpanElement;\n const itemHeight = rowHeight || 30;\n const start = Math.floor(scrollTop / itemHeight) - extra;\n const end = Math.ceil((scrollTop + clientHeight) / itemHeight) + extra;\n const updateVirtualConfig = {\n virtualStart: start,\n virtualEnd: end,\n paddingTop: start * itemHeight,\n paddingBottom: (data.length - end) * itemHeight,\n };\n if (isEqual(updateVirtualConfig, virtualRef.current)) {\n return;\n }\n setState(updateVirtualConfig);\n virtualRef.current = updateVirtualConfig;\n }, 50);\n\n elementRef.current.addEventListener('scroll', handleScroll);\n return () => {\n elementRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, [elementRef.current]);\n\n useEffect(() => {\n setState({\n virtualStart: 0,\n virtualEnd: Math.min(data.length - 1, 2 * extra),\n paddingTop: 0,\n paddingBottom: 0,\n });\n }, [data]);\n\n if (!virtualized) {\n return {\n virtualStart: 0,\n virtualEnd: data.length,\n paddingTop: 0,\n paddingBottom: 0,\n };\n }\n\n return {\n virtualStart: Math.max(0, virtualStart),\n virtualEnd: Math.min(data.length, virtualEnd),\n paddingTop: Math.max(0, paddingTop),\n paddingBottom: data.length - 1 <= virtualEnd ? 0 : paddingBottom,\n };\n};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import type { SheetType } from "../../type";
|
|
2
3
|
import './draggableShell/index.less';
|
|
3
4
|
export declare const TableShell: ({ columns, className, showGroup, showSelect, controlProps, controlWidth, }: SheetType.SheetShell) => import("react").FC<{
|
|
@@ -17,7 +17,7 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
|
17
17
|
import { Modal } from 'antd';
|
|
18
18
|
import { cloneDeep, random } from 'lodash';
|
|
19
19
|
import React, { useCallback, useRef, useState } from 'react';
|
|
20
|
-
import {
|
|
20
|
+
import { getCascaderEditor, GetDateEditor, getNumberEditor, getSelectEditor } from "../core/editor";
|
|
21
21
|
import Table from "../core/table";
|
|
22
22
|
import { BtnViewer } from "../core/viewer/btnViewer";
|
|
23
23
|
import { EditViewer } from "../core/viewer/editViewer";
|
|
@@ -99,7 +99,7 @@ var columns = [{
|
|
|
99
99
|
width: 150,
|
|
100
100
|
dataIndex: 'date',
|
|
101
101
|
key: 'date',
|
|
102
|
-
editor:
|
|
102
|
+
editor: GetDateEditor()
|
|
103
103
|
// fixed: 'left',
|
|
104
104
|
}, {
|
|
105
105
|
title: 'select',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Modal","cloneDeep","random","React","useCallback","useRef","useState","DateEditor","getCascaderEditor","getNumberEditor","getSelectEditor","Table","BtnViewer","EditViewer","SwitchViewer","jsx","_jsx","Precision2MoneyEditor","max","min","precision","addonAfter","Precision2Number","TypeSelector","value","label","CascaderSelector","children","columns","title","width","dataIndex","key","fixed","render","editor","readonly","record","row","editable","align","data","name","date","open","age","address1","address2","select","address","App","_useState","_useState2","_slicedToArray","state","setState","sheetInstance","handleChange","changes","newState","forEach","change","handleAdd","_sheetInstance$curren","current","pushToHistory","type","rowInfo","newRow","length","concat","_toConsumableArray","String","dataSource","scroll","x","onChange","eventHandler","reverse","_ref","console","log","splice","cellEdit","_ref2","cellValue","confirm","btnClick","_ref3","cellSwitch","_ref4","_objectSpread"],"sources":["../../src/example/antComponent.tsx"],"sourcesContent":["import { Modal } from 'antd';\nimport { cloneDeep, random } from 'lodash';\nimport React, { useCallback, useRef, useState } from 'react';\nimport {\n DateEditor,\n getCascaderEditor,\n getNumberEditor,\n getSelectEditor,\n} from '../core/editor';\nimport Table from '../core/table';\nimport { BtnViewer } from '../core/viewer/btnViewer';\nimport { EditViewer } from '../core/viewer/editViewer';\nimport { SwitchViewer } from '../core/viewer/switchViewer';\nimport { SheetTableType, SheetType } from '../type';\n\nconst Precision2MoneyEditor = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n addonAfter: '元',\n});\nconst Precision2Number = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n});\n\nconst TypeSelector = getSelectEditor([\n {\n value: '1',\n label: '111111',\n },\n {\n value: '2',\n label: '222222',\n },\n {\n value: '3',\n label: '333333',\n },\n]);\n\nconst CascaderSelector = getCascaderEditor([\n {\n value: 'zhejiang',\n label: 'Zhejiang',\n children: [\n {\n value: 'hangzhou',\n label: 'Hangzhou',\n children: [\n {\n value: 'xihu',\n label: 'West Lake',\n },\n ],\n },\n ],\n },\n {\n value: 'jiangsu',\n label: 'Jiangsu',\n children: [\n {\n value: 'nanjing',\n label: 'Nanjing',\n children: [\n {\n value: 'zhonghuamen',\n label: 'Zhong Hua Men',\n },\n ],\n },\n ],\n },\n]);\n\nconst columns: SheetTableType.ColumnProps[] = [\n {\n title: 'Full Name',\n width: 100,\n dataIndex: 'open',\n key: 'open',\n fixed: 'left',\n render: SwitchViewer,\n },\n {\n title: 'Age',\n width: 100,\n dataIndex: 'age',\n key: 'age',\n editor: Precision2Number,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'price',\n width: 100,\n dataIndex: 'price',\n key: 'price',\n editor: Precision2MoneyEditor,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'date',\n width: 150,\n dataIndex: 'date',\n key: 'date',\n editor: DateEditor,\n // fixed: 'left',\n },\n {\n title: 'select',\n width: 200,\n dataIndex: 'select',\n editor: TypeSelector,\n },\n {\n title: 'Column 2',\n width: 200,\n dataIndex: 'address1',\n key: '2',\n editor: CascaderSelector,\n },\n {\n title: 'Column 3',\n width: 200,\n dataIndex: 'address2',\n key: '3',\n editable: false,\n render: EditViewer,\n },\n { title: 'Column 4', width: 200, dataIndex: 'address3', key: '4' },\n { title: 'Column 5', width: 200, dataIndex: 'address4', key: '5' },\n { title: 'Column 6', width: 200, dataIndex: 'address5', key: '6' },\n { title: 'Column 7', width: 200, dataIndex: 'address6', key: '7' },\n { title: 'Column 8', width: 200, dataIndex: 'address7', key: '8' },\n {\n title: 'Action',\n align: 'center',\n key: 'operation',\n fixed: 'right',\n width: 150,\n render: BtnViewer,\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n date: '2020-01-01',\n open: true,\n age: 32,\n address1: 'West Lake',\n address2: '打开对话框1',\n select: '111111',\n address: 'New York Park',\n },\n {\n key: '2',\n name: 'Jim Green',\n open: false,\n date: '1990-01-01',\n address2: '打开对话框2',\n age: 40,\n select: '222222',\n address: 'London Park',\n },\n];\n\nconst App: React.FC = () => {\n const [state, setState] = useState(data);\n\n const sheetInstance = useRef<SheetType.SheetInstance | null>(null);\n const handleChange = useCallback(\n (changes: SheetTableType.TableChange[]) => {\n const newState: any = cloneDeep(state);\n changes.forEach((change) => {\n const { row, key, value } = change;\n newState[row][key] = value;\n });\n setState(newState);\n },\n [state],\n );\n const handleAdd = useCallback(() => {\n const newState: any = cloneDeep(state);\n sheetInstance.current?.pushToHistory({\n type: 'NewRow',\n changes: [],\n rowInfo: { newRow: newState.length },\n });\n setState([\n ...newState,\n {\n key: String(random()),\n name: 'new',\n open: false,\n date: '1990-01-01',\n address2: `打开对话框2${newState.length + 2}`,\n age: 40 + newState.length,\n select: '111111',\n address: 'London Park',\n },\n ]);\n }, [state]);\n return (\n <Table\n sheetInstance={sheetInstance}\n columns={columns}\n dataSource={state}\n scroll={{ x: '100%' }}\n onChange={handleChange}\n handleAdd={handleAdd}\n eventHandler={{\n reverse: (value: unknown) => {\n // 处理 行列删除自定义事件\n const { type, rowInfo } = value as SheetType.OperateHistory;\n if (type === 'Custom') {\n console.log('操作');\n } else if (type === 'NewRow') {\n const newState = [...state];\n newState.splice(rowInfo?.newRow as number, 1);\n setState(newState);\n }\n },\n 'cell-edit': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n Modal.confirm({\n title: `${row} - ${cellValue}编辑点什么`,\n });\n },\n 'btn-click': (value: unknown) => {\n const { row, type } = value as {\n row?: number;\n type: 'copy' | 'delete';\n };\n Modal.confirm({\n title: `${row} - ${type}提示点什么`,\n });\n },\n 'cell-switch': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n const newState = [...state];\n newState[row] = {\n ...newState[row],\n open: !cellValue,\n };\n\n setState(newState);\n },\n }}\n />\n );\n};\n\nexport default App;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Modal","cloneDeep","random","React","useCallback","useRef","useState","getCascaderEditor","GetDateEditor","getNumberEditor","getSelectEditor","Table","BtnViewer","EditViewer","SwitchViewer","jsx","_jsx","Precision2MoneyEditor","max","min","precision","addonAfter","Precision2Number","TypeSelector","value","label","CascaderSelector","children","columns","title","width","dataIndex","key","fixed","render","editor","readonly","record","row","editable","align","data","name","date","open","age","address1","address2","select","address","App","_useState","_useState2","_slicedToArray","state","setState","sheetInstance","handleChange","changes","newState","forEach","change","handleAdd","_sheetInstance$curren","current","pushToHistory","type","rowInfo","newRow","length","concat","_toConsumableArray","String","dataSource","scroll","x","onChange","eventHandler","reverse","_ref","console","log","splice","cellEdit","_ref2","cellValue","confirm","btnClick","_ref3","cellSwitch","_ref4","_objectSpread"],"sources":["../../src/example/antComponent.tsx"],"sourcesContent":["import { Modal } from 'antd';\nimport { cloneDeep, random } from 'lodash';\nimport React, { useCallback, useRef, useState } from 'react';\nimport {\n getCascaderEditor,\n GetDateEditor,\n getNumberEditor,\n getSelectEditor,\n} from '../core/editor';\nimport Table from '../core/table';\nimport { BtnViewer } from '../core/viewer/btnViewer';\nimport { EditViewer } from '../core/viewer/editViewer';\nimport { SwitchViewer } from '../core/viewer/switchViewer';\nimport { SheetTableType, SheetType } from '../type';\n\nconst Precision2MoneyEditor = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n addonAfter: '元',\n});\nconst Precision2Number = getNumberEditor({\n max: 1000,\n min: 0,\n precision: 2,\n});\n\nconst TypeSelector = getSelectEditor([\n {\n value: '1',\n label: '111111',\n },\n {\n value: '2',\n label: '222222',\n },\n {\n value: '3',\n label: '333333',\n },\n]);\n\nconst CascaderSelector = getCascaderEditor([\n {\n value: 'zhejiang',\n label: 'Zhejiang',\n children: [\n {\n value: 'hangzhou',\n label: 'Hangzhou',\n children: [\n {\n value: 'xihu',\n label: 'West Lake',\n },\n ],\n },\n ],\n },\n {\n value: 'jiangsu',\n label: 'Jiangsu',\n children: [\n {\n value: 'nanjing',\n label: 'Nanjing',\n children: [\n {\n value: 'zhonghuamen',\n label: 'Zhong Hua Men',\n },\n ],\n },\n ],\n },\n]);\n\nconst columns: SheetTableType.ColumnProps[] = [\n {\n title: 'Full Name',\n width: 100,\n dataIndex: 'open',\n key: 'open',\n fixed: 'left',\n render: SwitchViewer,\n },\n {\n title: 'Age',\n width: 100,\n dataIndex: 'age',\n key: 'age',\n editor: Precision2Number,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'price',\n width: 100,\n dataIndex: 'price',\n key: 'price',\n editor: Precision2MoneyEditor,\n readonly: (value, record, row) => row === 1,\n // fixed: 'left',\n },\n {\n title: 'date',\n width: 150,\n dataIndex: 'date',\n key: 'date',\n editor: GetDateEditor(),\n // fixed: 'left',\n },\n {\n title: 'select',\n width: 200,\n dataIndex: 'select',\n editor: TypeSelector,\n },\n {\n title: 'Column 2',\n width: 200,\n dataIndex: 'address1',\n key: '2',\n editor: CascaderSelector,\n },\n {\n title: 'Column 3',\n width: 200,\n dataIndex: 'address2',\n key: '3',\n editable: false,\n render: EditViewer,\n },\n { title: 'Column 4', width: 200, dataIndex: 'address3', key: '4' },\n { title: 'Column 5', width: 200, dataIndex: 'address4', key: '5' },\n { title: 'Column 6', width: 200, dataIndex: 'address5', key: '6' },\n { title: 'Column 7', width: 200, dataIndex: 'address6', key: '7' },\n { title: 'Column 8', width: 200, dataIndex: 'address7', key: '8' },\n {\n title: 'Action',\n align: 'center',\n key: 'operation',\n fixed: 'right',\n width: 150,\n render: BtnViewer,\n },\n];\n\nconst data = [\n {\n key: '1',\n name: 'John Brown',\n date: '2020-01-01',\n open: true,\n age: 32,\n address1: 'West Lake',\n address2: '打开对话框1',\n select: '111111',\n address: 'New York Park',\n },\n {\n key: '2',\n name: 'Jim Green',\n open: false,\n date: '1990-01-01',\n address2: '打开对话框2',\n age: 40,\n select: '222222',\n address: 'London Park',\n },\n];\n\nconst App: React.FC = () => {\n const [state, setState] = useState(data);\n\n const sheetInstance = useRef<SheetType.SheetInstance | null>(null);\n const handleChange = useCallback(\n (changes: SheetTableType.TableChange[]) => {\n const newState: any = cloneDeep(state);\n changes.forEach((change) => {\n const { row, key, value } = change;\n newState[row][key] = value;\n });\n setState(newState);\n },\n [state],\n );\n const handleAdd = useCallback(() => {\n const newState: any = cloneDeep(state);\n sheetInstance.current?.pushToHistory({\n type: 'NewRow',\n changes: [],\n rowInfo: { newRow: newState.length },\n });\n setState([\n ...newState,\n {\n key: String(random()),\n name: 'new',\n open: false,\n date: '1990-01-01',\n address2: `打开对话框2${newState.length + 2}`,\n age: 40 + newState.length,\n select: '111111',\n address: 'London Park',\n },\n ]);\n }, [state]);\n return (\n <Table\n sheetInstance={sheetInstance}\n columns={columns}\n dataSource={state}\n scroll={{ x: '100%' }}\n onChange={handleChange}\n handleAdd={handleAdd}\n eventHandler={{\n reverse: (value: unknown) => {\n // 处理 行列删除自定义事件\n const { type, rowInfo } = value as SheetType.OperateHistory;\n if (type === 'Custom') {\n console.log('操作');\n } else if (type === 'NewRow') {\n const newState = [...state];\n newState.splice(rowInfo?.newRow as number, 1);\n setState(newState);\n }\n },\n 'cell-edit': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n Modal.confirm({\n title: `${row} - ${cellValue}编辑点什么`,\n });\n },\n 'btn-click': (value: unknown) => {\n const { row, type } = value as {\n row?: number;\n type: 'copy' | 'delete';\n };\n Modal.confirm({\n title: `${row} - ${type}提示点什么`,\n });\n },\n 'cell-switch': (value: unknown) => {\n const { row, value: cellValue } = value as {\n row: number;\n record: Record<string, unknown>;\n value: unknown;\n };\n const newState = [...state];\n newState[row] = {\n ...newState[row],\n open: !cellValue,\n };\n\n setState(newState);\n },\n }}\n />\n );\n};\n\nexport default App;\n"],"mappings":"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"}
|
package/dist/hooks/useMouse.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { debounce } from 'lodash';
|
|
2
|
-
import { useCallback, useEffect } from 'react';
|
|
2
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
3
3
|
export var useMouse = function useMouse(handler, listenElement) {
|
|
4
4
|
var mouseUp = handler.mouseUp,
|
|
5
5
|
mouseDown = handler.mouseDown,
|
|
@@ -8,6 +8,7 @@ export var useMouse = function useMouse(handler, listenElement) {
|
|
|
8
8
|
mouseEnter = handler.mouseEnter,
|
|
9
9
|
doubleClick = handler.doubleClick,
|
|
10
10
|
loseFocus = handler.loseFocus;
|
|
11
|
+
var handlerRef = useRef();
|
|
11
12
|
|
|
12
13
|
// todo
|
|
13
14
|
var wrapper = useCallback(function (handle) {
|
|
@@ -18,36 +19,51 @@ export var useMouse = function useMouse(handler, listenElement) {
|
|
|
18
19
|
handle(e);
|
|
19
20
|
};
|
|
20
21
|
}, [listenElement]);
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
useEffect(function () {
|
|
23
|
+
return function () {
|
|
24
|
+
if (!handlerRef.current) return;
|
|
25
|
+
var _handlerRef$current = handlerRef.current,
|
|
26
|
+
listenerMouseUp = _handlerRef$current.mouseUp,
|
|
27
|
+
listenerMouseDown = _handlerRef$current.mouseDown,
|
|
28
|
+
listenerMouseOver = _handlerRef$current.mouseOver,
|
|
29
|
+
listenerMouseLeave = _handlerRef$current.mouseLeave,
|
|
30
|
+
listenerMouseEnter = _handlerRef$current.mouseEnter,
|
|
31
|
+
listenerDoubleClick = _handlerRef$current.doubleClick;
|
|
32
|
+
document.removeEventListener('mouseup', listenerMouseUp);
|
|
33
|
+
document.removeEventListener('mousedown', listenerMouseDown);
|
|
34
|
+
document.removeEventListener('dblclick', listenerDoubleClick);
|
|
35
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseover', listenerMouseOver);
|
|
36
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseleave', listenerMouseLeave);
|
|
37
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.removeEventListener('mouseenter', listenerMouseEnter);
|
|
38
|
+
};
|
|
39
|
+
}, []);
|
|
25
40
|
useEffect(function () {
|
|
26
41
|
if (!listenElement) return;
|
|
27
42
|
var debounceOver = debounce(mouseOver, 10);
|
|
28
43
|
var wrappedMouseUp = mouseUp;
|
|
29
44
|
var wrappedMouseDown = function wrappedMouseDown(e) {
|
|
30
|
-
if (!listenElement.contains(e.target)) {
|
|
45
|
+
if (!(listenElement !== null && listenElement !== void 0 && listenElement.contains(e.target))) {
|
|
31
46
|
loseFocus(e);
|
|
32
47
|
return;
|
|
33
48
|
}
|
|
34
49
|
mouseDown(e);
|
|
35
50
|
};
|
|
36
51
|
var wrappedMouseDoubleClick = wrapper(doubleClick);
|
|
52
|
+
handlerRef.current = {
|
|
53
|
+
mouseUp: wrappedMouseUp,
|
|
54
|
+
mouseDown: wrappedMouseDown,
|
|
55
|
+
doubleClick: wrappedMouseDoubleClick,
|
|
56
|
+
mouseOver: debounceOver,
|
|
57
|
+
mouseLeave: mouseLeave,
|
|
58
|
+
mouseEnter: mouseEnter,
|
|
59
|
+
loseFocus: loseFocus
|
|
60
|
+
};
|
|
37
61
|
document.addEventListener('mouseup', wrappedMouseUp);
|
|
38
62
|
document.addEventListener('mousedown', wrappedMouseDown);
|
|
39
63
|
document.addEventListener('dblclick', wrappedMouseDoubleClick);
|
|
40
|
-
listenElement.addEventListener('mouseover', debounceOver);
|
|
41
|
-
listenElement.addEventListener('mouseleave', mouseLeave);
|
|
42
|
-
listenElement.addEventListener('mouseenter', mouseEnter);
|
|
43
|
-
|
|
44
|
-
listenElement.removeEventListener('mouseover', debounceOver);
|
|
45
|
-
listenElement.removeEventListener('mouseleave', mouseLeave);
|
|
46
|
-
listenElement.removeEventListener('mouseenter', mouseEnter);
|
|
47
|
-
document.removeEventListener('mousedown', wrappedMouseUp);
|
|
48
|
-
document.removeEventListener('mouseup', wrappedMouseDown);
|
|
49
|
-
document.removeEventListener('dblclick', wrappedMouseDoubleClick);
|
|
50
|
-
};
|
|
51
|
-
}, [listenElement, mouseUp, mouseDown, mouseOver, mouseLeave, doubleClick, loseFocus]);
|
|
64
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseover', debounceOver);
|
|
65
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseleave', mouseLeave);
|
|
66
|
+
listenElement === null || listenElement === void 0 ? void 0 : listenElement.addEventListener('mouseenter', mouseEnter);
|
|
67
|
+
}, [listenElement]);
|
|
52
68
|
};
|
|
53
69
|
//# sourceMappingURL=useMouse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["debounce","useCallback","useEffect","useMouse","handler","listenElement","mouseUp","mouseDown","mouseOver","mouseLeave","mouseEnter","doubleClick","loseFocus","wrapper","handle","e","contains","target","
|
|
1
|
+
{"version":3,"names":["debounce","useCallback","useEffect","useRef","useMouse","handler","listenElement","mouseUp","mouseDown","mouseOver","mouseLeave","mouseEnter","doubleClick","loseFocus","handlerRef","wrapper","handle","e","contains","target","current","_handlerRef$current","listenerMouseUp","listenerMouseDown","listenerMouseOver","listenerMouseLeave","listenerMouseEnter","listenerDoubleClick","document","removeEventListener","debounceOver","wrappedMouseUp","wrappedMouseDown","wrappedMouseDoubleClick","addEventListener"],"sources":["../../src/hooks/useMouse.tsx"],"sourcesContent":["import { debounce } from 'lodash';\nimport { useCallback, useEffect, useRef } from 'react';\n\ntype MouseHandler = {\n mouseUp: (value: MouseEvent) => void;\n mouseDown: (value: MouseEvent) => void;\n mouseOver: (value: MouseEvent) => void;\n mouseLeave: (value: MouseEvent) => void;\n mouseEnter: (value: MouseEvent) => void;\n doubleClick: (value: MouseEvent) => void;\n loseFocus: (value: MouseEvent) => void;\n};\n\nexport const useMouse = (\n handler: MouseHandler,\n listenElement: HTMLSpanElement | null,\n) => {\n const {\n mouseUp,\n mouseDown,\n mouseOver,\n mouseLeave,\n mouseEnter,\n doubleClick,\n loseFocus,\n } = handler;\n const handlerRef = useRef<MouseHandler | null>();\n\n // todo\n const wrapper = useCallback(\n (handle: (e: MouseEvent) => void) => {\n return (e: MouseEvent) => {\n if (!(listenElement as any).contains(e.target as HTMLElement)) {\n return;\n }\n handle(e);\n };\n },\n [listenElement],\n );\n\n useEffect(\n () => () => {\n if (!handlerRef.current) return;\n const {\n mouseUp: listenerMouseUp,\n mouseDown: listenerMouseDown,\n mouseOver: listenerMouseOver,\n mouseLeave: listenerMouseLeave,\n mouseEnter: listenerMouseEnter,\n doubleClick: listenerDoubleClick,\n } = handlerRef.current;\n document.removeEventListener('mouseup', listenerMouseUp);\n document.removeEventListener('mousedown', listenerMouseDown);\n document.removeEventListener('dblclick', listenerDoubleClick);\n listenElement?.removeEventListener('mouseover', listenerMouseOver);\n listenElement?.removeEventListener('mouseleave', listenerMouseLeave);\n listenElement?.removeEventListener('mouseenter', listenerMouseEnter);\n },\n [],\n );\n useEffect(() => {\n if (!listenElement) return;\n const debounceOver = debounce(mouseOver, 10);\n const wrappedMouseUp = mouseUp;\n const wrappedMouseDown = (e: MouseEvent) => {\n if (!listenElement?.contains(e.target as HTMLElement)) {\n loseFocus(e);\n return;\n }\n mouseDown(e);\n };\n const wrappedMouseDoubleClick = wrapper(doubleClick);\n handlerRef.current = {\n mouseUp: wrappedMouseUp,\n mouseDown: wrappedMouseDown,\n doubleClick: wrappedMouseDoubleClick,\n mouseOver: debounceOver,\n mouseLeave: mouseLeave,\n mouseEnter: mouseEnter,\n loseFocus,\n };\n\n document.addEventListener('mouseup', wrappedMouseUp);\n document.addEventListener('mousedown', wrappedMouseDown);\n document.addEventListener('dblclick', wrappedMouseDoubleClick);\n listenElement?.addEventListener('mouseover', debounceOver);\n listenElement?.addEventListener('mouseleave', mouseLeave);\n listenElement?.addEventListener('mouseenter', mouseEnter);\n }, [listenElement]);\n};\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
import { SheetType } from '.';
|
|
3
3
|
export declare type refAssertion = {
|
|
4
4
|
contains?: (target: EventTarget | null) => boolean;
|
|
@@ -10,7 +10,7 @@ export declare type ColumnProps = {
|
|
|
10
10
|
fixed?: Omit<CellFixed, 'center'>;
|
|
11
11
|
width?: string | number;
|
|
12
12
|
dataIndex?: string;
|
|
13
|
-
title: string;
|
|
13
|
+
title: string | ReactNode | ReactNode[];
|
|
14
14
|
key?: string;
|
|
15
15
|
editable?: boolean;
|
|
16
16
|
readonly?: boolean | ((value: unknown, record: Record<string, unknown>, index: number) => boolean);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sources":["../../src/type/sheetTable.ts"],"sourcesContent":["import { SheetType } from '.';\n\nexport type refAssertion = {\n contains?: (target: EventTarget | null) => boolean;\n focus?: () => boolean;\n} & HTMLTableSectionElement;\n\nexport type CellFixed = SheetType.CellAlign;\n\nexport type ColumnProps = {\n align?: SheetType.CellAlign;\n fixed?: Omit<CellFixed, 'center'>;\n width?: string | number;\n dataIndex?: string;\n title: string;\n key?: string;\n editable?: boolean;\n readonly?:\n | boolean\n | ((\n value: unknown,\n record: Record<string, unknown>,\n index: number,\n ) => boolean);\n render?: SheetType.CellViewer;\n editor?: SheetType.CellEditor;\n};\nexport type TableChange = {\n row: number;\n id: string;\n key: string;\n value: unknown;\n};\nexport type TableRowSelection = {\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n};\nexport type TableGroupConfig = {\n defaultOpen: boolean;\n};\nexport type TableProps = {\n className?: string;\n sheetInstance?: React.MutableRefObject<SheetType.SheetInstance | null>;\n columns: ColumnProps[];\n virtualized?: boolean;\n dataSource: Record<string, unknown>[];\n rowClassName?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n rowKey?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n scroll?: { x?: number | string; y?: number | string };\n sticky?: boolean;\n draggable?: boolean;\n rowSelection?: {\n rowSelected: string[];\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n };\n groupConfig?: {\n rowGroup: TableGroupConfig;\n onChange: (value: TableGroupConfig) => void;\n };\n\n onChange: (changes: TableChange[]) => void;\n handleAdd?: () => void;\n eventHandler?: Record<\n 'btn-click' | 'cell-edit' | 'cell-switch' | string,\n undefined | ((value: unknown) => void)\n >;\n};\n"],"mappings":""}
|
|
1
|
+
{"version":3,"names":[],"sources":["../../src/type/sheetTable.ts"],"sourcesContent":["import { ReactNode } from 'react';\nimport { SheetType } from '.';\n\nexport type refAssertion = {\n contains?: (target: EventTarget | null) => boolean;\n focus?: () => boolean;\n} & HTMLTableSectionElement;\n\nexport type CellFixed = SheetType.CellAlign;\n\nexport type ColumnProps = {\n align?: SheetType.CellAlign;\n fixed?: Omit<CellFixed, 'center'>;\n width?: string | number;\n dataIndex?: string;\n title: string | ReactNode | ReactNode[];\n key?: string;\n editable?: boolean;\n readonly?:\n | boolean\n | ((\n value: unknown,\n record: Record<string, unknown>,\n index: number,\n ) => boolean);\n render?: SheetType.CellViewer;\n editor?: SheetType.CellEditor;\n};\nexport type TableChange = {\n row: number;\n id: string;\n key: string;\n value: unknown;\n};\nexport type TableRowSelection = {\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n};\nexport type TableGroupConfig = {\n defaultOpen: boolean;\n};\nexport type TableProps = {\n className?: string;\n sheetInstance?: React.MutableRefObject<SheetType.SheetInstance | null>;\n columns: ColumnProps[];\n virtualized?: boolean;\n dataSource: Record<string, unknown>[];\n rowClassName?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n rowKey?:\n | string\n | ((record: Record<string, unknown>, index: number) => string);\n scroll?: { x?: number | string; y?: number | string };\n sticky?: boolean;\n draggable?: boolean;\n rowSelection?: {\n rowSelected: string[];\n onChange: (\n selectedRowKeys: string[],\n selectedRows: Record<string, unknown>[],\n ) => void;\n };\n groupConfig?: {\n rowGroup: TableGroupConfig;\n onChange: (value: TableGroupConfig) => void;\n };\n\n onChange: (changes: TableChange[]) => void;\n handleAdd?: () => void;\n eventHandler?: Record<\n 'btn-click' | 'cell-edit' | 'cell-switch' | string,\n undefined | ((value: unknown) => void)\n >;\n};\n"],"mappings":""}
|