@zhenliang/sheet 0.0.7 → 0.1.0
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/README.md +3 -2
- package/dist/core/config.js +1 -2
- package/dist/core/editor/cascaderEditor/index.js +14 -7
- package/dist/core/editor/dateEditor/index.d.ts +2 -1
- package/dist/core/editor/dateEditor/index.js +44 -36
- package/dist/core/editor/index.d.ts +1 -1
- package/dist/core/editor/index.js +2 -3
- package/dist/core/editor/numberEditor/index.d.ts +1 -1
- package/dist/core/editor/numberEditor/index.js +53 -5
- package/dist/core/editor/numberEditor/index.less +1 -0
- package/dist/core/editor/selectEditor/index.d.ts +1 -1
- package/dist/core/editor/selectEditor/index.js +34 -5
- package/dist/core/reducers/index.d.ts +1 -1
- package/dist/core/reducers/index.js +3 -2
- package/dist/core/reducers/keyboardReducer.js +2 -3
- package/dist/core/reducers/mouseReducer.js +1 -2
- package/dist/core/reducers/sideEffectReducer.js +61 -26
- package/dist/core/reducers/stateReducer.js +38 -9
- package/dist/core/sheet/Cell.js +37 -15
- package/dist/core/sheet/DataEditor.js +4 -2
- package/dist/core/sheet/DefaultCell.js +1 -2
- package/dist/core/sheet/DefaultRow.d.ts +1 -0
- package/dist/core/sheet/DefaultRow.js +5 -3
- package/dist/core/sheet/DefaultRowMapper.js +1 -2
- package/dist/core/sheet/DefaultShell.js +1 -2
- package/dist/core/sheet/Event.js +2 -3
- package/dist/core/sheet/ValueViewer.js +1 -2
- package/dist/core/sheet/index.js +60 -20
- package/dist/core/sheet/index.less +20 -11
- package/dist/core/sheet/useCellEvent.js +1 -2
- package/dist/core/sheet/useContextMenu.d.ts +1 -1
- package/dist/core/sheet/useContextMenu.js +2 -3
- package/dist/core/sheet/useKeyBoardEvent.js +15 -3
- package/dist/core/sheet/useMouseEvent.js +3 -4
- package/dist/core/sheet/useSelectVisible.d.ts +2 -0
- package/dist/core/sheet/useSelectVisible.js +48 -0
- package/dist/core/sheet/useVirtualList.d.ts +1 -1
- package/dist/core/sheet/useVirtualList.js +24 -12
- package/dist/core/shell/draggableShell/index.js +21 -13
- package/dist/core/shell/tableShell.js +9 -6
- package/dist/core/table/events.d.ts +15 -0
- package/dist/core/table/events.js +94 -0
- package/dist/core/table/index.js +91 -112
- package/dist/core/table/useGroupConfig.js +24 -7
- package/dist/core/table/useRowSelection.d.ts +2 -1
- package/dist/core/table/useRowSelection.js +1 -2
- package/dist/core/table/util.js +2 -3
- package/dist/core/util.d.ts +5 -2
- package/dist/core/util.js +97 -16
- package/dist/core/viewer/btnViewer/index.js +2 -3
- package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
- package/dist/core/viewer/cascaderViewer/index.js +11 -0
- package/dist/core/viewer/checkViewer/index.js +2 -3
- package/dist/core/viewer/editViewer/index.js +2 -3
- package/dist/core/viewer/groupViewer/index.js +5 -3
- package/dist/core/viewer/index.d.ts +1 -0
- package/dist/core/viewer/index.js +2 -2
- package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
- package/dist/core/viewer/selectorViewer/index.js +12 -0
- package/dist/core/viewer/switchViewer/index.js +2 -3
- package/dist/example/antComponent.js +60 -14
- package/dist/example/basic.js +2 -3
- package/dist/example/ellipsis.js +1 -2
- package/dist/example/fixed.js +1 -2
- package/dist/example/group.js +42 -4
- package/dist/example/selection.js +2 -3
- package/dist/example/sheet.js +52 -16
- package/dist/example/valuationAnalyze.js +20 -18
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useEventBus.js +1 -2
- package/dist/hooks/useKeyboard.js +1 -2
- package/dist/hooks/useMiddlewareReducer.js +1 -2
- package/dist/hooks/useMouse.js +35 -20
- package/dist/hooks/useSetState.js +1 -2
- package/dist/hooks/useSheetEvent.js +1 -2
- package/dist/hooks/useWidthConfig.d.ts +4 -0
- package/dist/hooks/useWidthConfig.js +5 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -1
- package/dist/standardUtils/index.js +2 -3
- package/dist/type/index.js +1 -2
- package/dist/type/sheet.d.ts +14 -3
- package/dist/type/sheet.js +1 -2
- package/dist/type/sheetTable.d.ts +45 -16
- package/dist/type/sheetTable.js +1 -2
- package/package.json +1 -1
- package/dist/core/config.js.map +0 -1
- package/dist/core/editor/cascaderEditor/index.js.map +0 -1
- package/dist/core/editor/dateEditor/index.js.map +0 -1
- package/dist/core/editor/index.js.map +0 -1
- package/dist/core/editor/numberEditor/index.js.map +0 -1
- package/dist/core/editor/selectEditor/index.js.map +0 -1
- package/dist/core/reducers/index.js.map +0 -1
- package/dist/core/reducers/keyboardReducer.js.map +0 -1
- package/dist/core/reducers/mouseReducer.js.map +0 -1
- package/dist/core/reducers/sideEffectReducer.js.map +0 -1
- package/dist/core/reducers/stateReducer.js.map +0 -1
- package/dist/core/sheet/Cell.js.map +0 -1
- package/dist/core/sheet/DataEditor.js.map +0 -1
- package/dist/core/sheet/DefaultCell.js.map +0 -1
- package/dist/core/sheet/DefaultRow.js.map +0 -1
- package/dist/core/sheet/DefaultRowMapper.js.map +0 -1
- package/dist/core/sheet/DefaultShell.js.map +0 -1
- package/dist/core/sheet/Event.js.map +0 -1
- package/dist/core/sheet/ValueViewer.js.map +0 -1
- package/dist/core/sheet/index.js.map +0 -1
- package/dist/core/sheet/useCellEvent.js.map +0 -1
- package/dist/core/sheet/useContextMenu.js.map +0 -1
- package/dist/core/sheet/useKeyBoardEvent.js.map +0 -1
- package/dist/core/sheet/useMouseEvent.js.map +0 -1
- package/dist/core/sheet/useVirtualList.js.map +0 -1
- package/dist/core/shell/draggableShell/index.js.map +0 -1
- package/dist/core/shell/tableShell.js.map +0 -1
- package/dist/core/table/index.js.map +0 -1
- package/dist/core/table/useGroupConfig.js.map +0 -1
- package/dist/core/table/useRowSelection.js.map +0 -1
- package/dist/core/table/util.js.map +0 -1
- package/dist/core/util.js.map +0 -1
- package/dist/core/viewer/btnViewer/index.js.map +0 -1
- package/dist/core/viewer/checkViewer/index.js.map +0 -1
- package/dist/core/viewer/editViewer/index.js.map +0 -1
- package/dist/core/viewer/groupViewer/index.js.map +0 -1
- package/dist/core/viewer/index.js.map +0 -1
- package/dist/core/viewer/switchViewer/index.js.map +0 -1
- package/dist/example/antComponent.js.map +0 -1
- package/dist/example/basic.js.map +0 -1
- package/dist/example/ellipsis.js.map +0 -1
- package/dist/example/fixed.js.map +0 -1
- package/dist/example/group.js.map +0 -1
- package/dist/example/selection.js.map +0 -1
- package/dist/example/sheet.js.map +0 -1
- package/dist/example/valuationAnalyze.js.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/useEventBus.js.map +0 -1
- package/dist/hooks/useKeyboard.js.map +0 -1
- package/dist/hooks/useMiddlewareReducer.js.map +0 -1
- package/dist/hooks/useMouse.js.map +0 -1
- package/dist/hooks/useSetState.js.map +0 -1
- package/dist/hooks/useSheetEvent.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/standardUtils/index.js.map +0 -1
- package/dist/type/index.js.map +0 -1
- package/dist/type/sheet.js.map +0 -1
- package/dist/type/sheetTable.js.map +0 -1
package/README.md
CHANGED
package/dist/core/config.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Cascader } from 'antd';
|
|
2
2
|
import 'antd/es/cascader/style/index.css';
|
|
3
3
|
import { useMemo } from 'react';
|
|
4
|
-
import {
|
|
4
|
+
import { optionsToValuesFromLabelOrValue, valuesTransferToLabel } from "../../util";
|
|
5
5
|
import "./index.less";
|
|
6
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
7
|
var getCascaderEditor = function getCascaderEditor(options) {
|
|
@@ -9,10 +9,10 @@ var getCascaderEditor = function getCascaderEditor(options) {
|
|
|
9
9
|
var value = props.value,
|
|
10
10
|
onConfirm = props.onConfirm;
|
|
11
11
|
var val = useMemo(function () {
|
|
12
|
-
|
|
12
|
+
var res = optionsToValuesFromLabelOrValue(options, value);
|
|
13
|
+
return res;
|
|
13
14
|
}, [value, options]);
|
|
14
15
|
var handleChange = function handleChange(opt) {
|
|
15
|
-
console.log(opt);
|
|
16
16
|
onConfirm(opt ? opt[opt.length - 1] : null);
|
|
17
17
|
};
|
|
18
18
|
return /*#__PURE__*/_jsx(Cascader, {
|
|
@@ -35,11 +35,18 @@ var getCascaderEditor = function getCascaderEditor(options) {
|
|
|
35
35
|
options: options
|
|
36
36
|
});
|
|
37
37
|
};
|
|
38
|
+
CascaderEditor.formatter = function (value) {
|
|
39
|
+
var res = optionsToValuesFromLabelOrValue(options, value);
|
|
40
|
+
return !(res !== null && res !== void 0 && res.length) ? '' : valuesTransferToLabel(options, res[res.length - 1]);
|
|
41
|
+
};
|
|
42
|
+
CascaderEditor.parser = function (value) {
|
|
43
|
+
var res = optionsToValuesFromLabelOrValue(options, value);
|
|
44
|
+
return res.length ? res[res.length - 1] : null;
|
|
45
|
+
};
|
|
38
46
|
CascaderEditor.checker = function (value) {
|
|
39
|
-
var res =
|
|
40
|
-
return res
|
|
47
|
+
var res = optionsToValuesFromLabelOrValue(options, value);
|
|
48
|
+
return !!res.length;
|
|
41
49
|
};
|
|
42
50
|
return CascaderEditor;
|
|
43
51
|
};
|
|
44
|
-
export default getCascaderEditor;
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
|
52
|
+
export default getCascaderEditor;
|
|
@@ -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,51 @@
|
|
|
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('/', '-');
|
|
42
|
-
};
|
|
43
|
-
//# sourceMappingURL=index.js.map
|
|
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;
|
|
51
|
+
};
|
|
@@ -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,4 @@
|
|
|
1
1
|
export { default as getCascaderEditor } from "./cascaderEditor";
|
|
2
|
-
export {
|
|
2
|
+
export { getDateEditor } from "./dateEditor";
|
|
3
3
|
export { getNumberEditor, NumberEditor } from "./numberEditor";
|
|
4
|
-
export { default as getSelectEditor } from "./selectEditor";
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
4
|
+
export { default as getSelectEditor } from "./selectEditor";
|
|
@@ -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;
|
|
@@ -1,12 +1,17 @@
|
|
|
1
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
|
+
var _excluded = ["precision"];
|
|
2
3
|
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
4
|
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
5
|
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
6
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
6
7
|
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); }
|
|
8
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
9
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
10
|
+
import { formatPrecision } from "../../../standardUtils";
|
|
7
11
|
import { InputNumber as AntInputNumber } from 'antd';
|
|
8
12
|
import 'antd/es/input-number/style/index.css';
|
|
9
|
-
import {
|
|
13
|
+
import { isNil } from 'lodash';
|
|
14
|
+
import { useCallback, useEffect, useRef } from 'react';
|
|
10
15
|
import "./index.less";
|
|
11
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
17
|
export var NumberEditor = function NumberEditor(props) {
|
|
@@ -38,18 +43,61 @@ export var getNumberEditor = function getNumberEditor(extraProps) {
|
|
|
38
43
|
var _inputNumberRef$curre2;
|
|
39
44
|
inputNumberRef === null || inputNumberRef === void 0 ? void 0 : (_inputNumberRef$curre2 = inputNumberRef.current) === null || _inputNumberRef$curre2 === void 0 ? void 0 : _inputNumberRef$curre2.focus();
|
|
40
45
|
}, []);
|
|
46
|
+
var _ref = extraProps || {},
|
|
47
|
+
precision = _ref.precision,
|
|
48
|
+
inputArgs = _objectWithoutProperties(_ref, _excluded);
|
|
49
|
+
var valueFormatter = useCallback(function (value) {
|
|
50
|
+
if (!value) {
|
|
51
|
+
return '';
|
|
52
|
+
}
|
|
53
|
+
if (typeof value === 'string') {
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
var hasDecimal = value - Math.floor(value) > 0;
|
|
57
|
+
if (hasDecimal) {
|
|
58
|
+
return formatPrecision(value, precision);
|
|
59
|
+
}
|
|
60
|
+
return String(value);
|
|
61
|
+
}, []);
|
|
62
|
+
var handleChange = useCallback(function (value) {
|
|
63
|
+
onChange && onChange(value ? value : null);
|
|
64
|
+
}, [onChange]);
|
|
41
65
|
return /*#__PURE__*/_jsx(AntInputNumber, _objectSpread(_objectSpread({
|
|
42
66
|
ref: inputNumberRef
|
|
43
|
-
},
|
|
67
|
+
}, inputArgs), {}, {
|
|
68
|
+
formatter: valueFormatter,
|
|
44
69
|
controls: false,
|
|
45
70
|
className: "number-editor",
|
|
46
71
|
onMouseDown: function onMouseDown(e) {
|
|
47
72
|
return e.stopPropagation();
|
|
48
73
|
},
|
|
49
74
|
value: value,
|
|
50
|
-
onChange:
|
|
75
|
+
onChange: handleChange
|
|
51
76
|
}));
|
|
52
77
|
};
|
|
78
|
+
NumberEditor.formatter = function (value) {
|
|
79
|
+
var _String;
|
|
80
|
+
if (isNil(value) || isNaN(value)) {
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
var result = parseFloat((_String = String(value)) === null || _String === void 0 ? void 0 : _String.replace(/,/g, ''));
|
|
84
|
+
return result;
|
|
85
|
+
};
|
|
86
|
+
NumberEditor.parser = function (value) {
|
|
87
|
+
var _extraProps$precision;
|
|
88
|
+
if (isNil(value) || isNaN(value)) {
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
return Number(formatPrecision(value, (_extraProps$precision = extraProps === null || extraProps === void 0 ? void 0 : extraProps.precision) !== null && _extraProps$precision !== void 0 ? _extraProps$precision : 0));
|
|
92
|
+
};
|
|
93
|
+
NumberEditor.checker = function (value) {
|
|
94
|
+
var _String2;
|
|
95
|
+
// parse number with thousands separator
|
|
96
|
+
var result = parseFloat((_String2 = String(value)) === null || _String2 === void 0 ? void 0 : _String2.replace(/,/g, ''));
|
|
97
|
+
if (isNaN(result) || isNaN(value)) {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
return true;
|
|
101
|
+
};
|
|
53
102
|
return NumberEditor;
|
|
54
|
-
};
|
|
55
|
-
//# sourceMappingURL=index.js.map
|
|
103
|
+
};
|
|
@@ -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, extra?: React.ReactNode) => SheetType.CellEditor;
|
|
5
5
|
export default getSelectEditor;
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
/* eslint-disable eqeqeq */
|
|
2
|
+
|
|
1
3
|
import { Select } from 'antd';
|
|
2
4
|
import 'antd/es/select/style/index.css';
|
|
5
|
+
import { isNil } from 'lodash';
|
|
3
6
|
import "./index.less";
|
|
7
|
+
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
9
|
+
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
10
|
export var getSelectEditor = function getSelectEditor(options) {
|
|
11
|
+
var valueKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'value';
|
|
12
|
+
var extra = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : /*#__PURE__*/_jsx(_Fragment, {});
|
|
6
13
|
var SelectEditor = function SelectEditor(props) {
|
|
7
14
|
var value = props.value,
|
|
8
15
|
onConfirm = props.onConfirm;
|
|
@@ -16,6 +23,11 @@ export var getSelectEditor = function getSelectEditor(options) {
|
|
|
16
23
|
ev.persist();
|
|
17
24
|
}
|
|
18
25
|
};
|
|
26
|
+
var dropdown = function dropdown(menu) {
|
|
27
|
+
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
28
|
+
children: [menu, extra]
|
|
29
|
+
});
|
|
30
|
+
};
|
|
19
31
|
return /*#__PURE__*/_jsx(Select, {
|
|
20
32
|
autoFocus: true,
|
|
21
33
|
className: "select-editor",
|
|
@@ -25,21 +37,38 @@ export var getSelectEditor = function getSelectEditor(options) {
|
|
|
25
37
|
onMouseDown: function onMouseDown(e) {
|
|
26
38
|
e.stopPropagation();
|
|
27
39
|
},
|
|
28
|
-
value: value,
|
|
40
|
+
value: SelectEditor.formatter ? SelectEditor.formatter(value) : value,
|
|
29
41
|
onChange: handleChange,
|
|
30
42
|
onKeyDown: handleKeyDown,
|
|
31
43
|
options: options,
|
|
32
|
-
popupClassName: 'excelTablePopupClassName'
|
|
44
|
+
popupClassName: 'excelTablePopupClassName',
|
|
45
|
+
dropdownRender: dropdown
|
|
33
46
|
});
|
|
34
47
|
};
|
|
35
48
|
SelectEditor.checker = function (value) {
|
|
49
|
+
if (isNil(value)) return true;
|
|
36
50
|
return options.some(function (item) {
|
|
37
|
-
return item.value
|
|
51
|
+
return item.value == value;
|
|
38
52
|
}) || options.some(function (item) {
|
|
39
53
|
return item.label === value;
|
|
40
54
|
});
|
|
41
55
|
};
|
|
56
|
+
SelectEditor.parser = function (value) {
|
|
57
|
+
var _options$find, _options$find2;
|
|
58
|
+
return ((_options$find = options.find(function (item) {
|
|
59
|
+
return item.value == value;
|
|
60
|
+
})) === null || _options$find === void 0 ? void 0 : _options$find[valueKey]) || ((_options$find2 = options.find(function (item) {
|
|
61
|
+
return item.label === value;
|
|
62
|
+
})) === null || _options$find2 === void 0 ? void 0 : _options$find2[valueKey]);
|
|
63
|
+
};
|
|
64
|
+
SelectEditor.formatter = function (value) {
|
|
65
|
+
var _options$find3, _options$find4;
|
|
66
|
+
return ((_options$find3 = options.find(function (item) {
|
|
67
|
+
return item.value == value;
|
|
68
|
+
})) === null || _options$find3 === void 0 ? void 0 : _options$find3.label) || ((_options$find4 = options.find(function (item) {
|
|
69
|
+
return item.label === value;
|
|
70
|
+
})) === null || _options$find4 === void 0 ? void 0 : _options$find4.label);
|
|
71
|
+
};
|
|
42
72
|
return SelectEditor;
|
|
43
73
|
};
|
|
44
|
-
export default getSelectEditor;
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
|
74
|
+
export default getSelectEditor;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SheetType } from "../../type";
|
|
2
|
-
export declare type SheetAction = 'change' | 'changes' | 'rowMove' | 'colMove' | 'editFinish' | 'pushHistory' | 'selectRow' | 'clearSelect' | 'clearSelectIfNotSingleRow' | 'clearEdit' | 'mouseDown' | 'mouseOver' | 'mouseUp' | 'loseFocus' | 'doubleClick' | 'mouseLeaveInterval' | 'move' | 'escape' | 'reverse' | 'delete' | 'enter' | 'otherInput' | 'none';
|
|
2
|
+
export declare type SheetAction = 'change' | 'changes' | 'rowMove' | 'colMove' | 'editFinish' | 'pushHistory' | 'popHistory' | 'selectRow' | 'select' | 'clearSelect' | 'clearSelectIfNotSingleRow' | 'clearEdit' | 'mouseDown' | 'mouseOver' | 'mouseUp' | 'loseFocus' | 'doubleClick' | 'mouseLeaveInterval' | 'move' | 'escape' | 'reverse' | 'delete' | 'enter' | 'otherInput' | 'none';
|
|
3
3
|
export declare type reducerAction = (type: Partial<SheetType.UpdateStateType>, payload?: unknown) => Partial<SheetType.UpdateStateType>;
|
|
4
4
|
declare const sheetReducer: (state: Partial<SheetType.UpdateStateType>, action: {
|
|
5
5
|
type: SheetAction;
|
|
@@ -9,7 +9,9 @@ var sheetReducer = function sheetReducer(state, action) {
|
|
|
9
9
|
case 'colMove':
|
|
10
10
|
case 'editFinish':
|
|
11
11
|
case 'pushHistory':
|
|
12
|
+
case 'popHistory':
|
|
12
13
|
case 'selectRow':
|
|
14
|
+
case 'select':
|
|
13
15
|
case 'clearSelect':
|
|
14
16
|
case 'clearSelectIfNotSingleRow':
|
|
15
17
|
case 'clearEdit':
|
|
@@ -33,5 +35,4 @@ var sheetReducer = function sheetReducer(state, action) {
|
|
|
33
35
|
}
|
|
34
36
|
};
|
|
35
37
|
export default sheetReducer;
|
|
36
|
-
export { sideEffectReducer } from "./sideEffectReducer";
|
|
37
|
-
//# sourceMappingURL=index.js.map
|
|
38
|
+
export { sideEffectReducer } from "./sideEffectReducer";
|
|
@@ -17,7 +17,7 @@ export var keyboardReducer = {
|
|
|
17
17
|
data = _state$data === void 0 ? [] : _state$data;
|
|
18
18
|
var newRow = (((_state$start = state.start) === null || _state$start === void 0 ? void 0 : _state$start.row) || 0) + row;
|
|
19
19
|
if (groupConfig) {
|
|
20
|
-
newRow = getNextVisibleRow(newRow, data.length, groupConfigToGroupMap(groupConfig));
|
|
20
|
+
newRow = getNextVisibleRow(newRow, data.length, groupConfigToGroupMap(groupConfig), row < 0 ? -1 : 1);
|
|
21
21
|
}
|
|
22
22
|
var currentPos = {
|
|
23
23
|
row: newRow,
|
|
@@ -90,5 +90,4 @@ export var keyboardReducer = {
|
|
|
90
90
|
if (state.editing) return state;
|
|
91
91
|
return keyboardReducer.enter(state, payload);
|
|
92
92
|
}
|
|
93
|
-
};
|
|
94
|
-
//# sourceMappingURL=keyboardReducer.js.map
|
|
93
|
+
};
|
|
@@ -23,13 +23,13 @@ export var sideEffectReducer = {
|
|
|
23
23
|
dispatch(function () {
|
|
24
24
|
var _getState2 = getState(),
|
|
25
25
|
cellChangeHandler = _getState2.cellChangeHandler;
|
|
26
|
-
cellChangeHandler && cellChangeHandler([cell]);
|
|
27
26
|
dispatch({
|
|
28
27
|
type: 'editFinish',
|
|
29
28
|
payload: {
|
|
30
29
|
cell: cell
|
|
31
30
|
}
|
|
32
31
|
});
|
|
32
|
+
cellChangeHandler && cellChangeHandler([cell]);
|
|
33
33
|
});
|
|
34
34
|
});
|
|
35
35
|
eventBus.on('cell-create', function (_ref) {
|
|
@@ -131,9 +131,13 @@ export var sideEffectReducer = {
|
|
|
131
131
|
end = _getState7.end,
|
|
132
132
|
data = _getState7.data,
|
|
133
133
|
groupConfig = _getState7.groupConfig;
|
|
134
|
+
if (!start || !end) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
134
137
|
var cellIndex = flatRowColIndex(start, end);
|
|
135
138
|
var groupMap = groupConfigToGroupMap(groupConfig);
|
|
136
139
|
var copyData = cellIndex.reduce(function (left, _ref3) {
|
|
140
|
+
var _data$row$col$dataEdi, _data$row$col$dataEdi2, _data$row$col$dataEdi3;
|
|
137
141
|
var _ref3$row = _ref3.row,
|
|
138
142
|
row = _ref3$row === void 0 ? 0 : _ref3$row,
|
|
139
143
|
_ref3$col = _ref3.col,
|
|
@@ -150,7 +154,9 @@ export var sideEffectReducer = {
|
|
|
150
154
|
};
|
|
151
155
|
}
|
|
152
156
|
}
|
|
153
|
-
|
|
157
|
+
|
|
158
|
+
// 复制到剪贴板的时候执行 formatter
|
|
159
|
+
var currentValue = "".concat(value).concat(currentRow === row ? '\t' : '\n', " ").concat((_data$row$col$dataEdi = data[row][col].dataEditor) !== null && _data$row$col$dataEdi !== void 0 && _data$row$col$dataEdi.formatter ? (_data$row$col$dataEdi2 = data[row][col].dataEditor) === null || _data$row$col$dataEdi2 === void 0 ? void 0 : (_data$row$col$dataEdi3 = _data$row$col$dataEdi2.formatter) === null || _data$row$col$dataEdi3 === void 0 ? void 0 : _data$row$col$dataEdi3.call(_data$row$col$dataEdi2, data[row][col].value) : defaultValueRenderer(data[row][col]));
|
|
154
160
|
return {
|
|
155
161
|
currentRow: row,
|
|
156
162
|
value: currentValue
|
|
@@ -164,14 +170,21 @@ export var sideEffectReducer = {
|
|
|
164
170
|
},
|
|
165
171
|
paste: function paste(dispatch, getState) {
|
|
166
172
|
return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
167
|
-
var
|
|
173
|
+
var _extChanges$;
|
|
174
|
+
var _getState8, start, end, cellChangeHandler, history, _getState8$freePaste, freePaste, data, groupConfig, pasteData, changeInfo, changes, extChanges, legalChanges, lastRow, lastIndex, legalExtChanges, newHistory;
|
|
168
175
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
169
176
|
while (1) switch (_context.prev = _context.next) {
|
|
170
177
|
case 0:
|
|
171
178
|
_getState8 = getState(), start = _getState8.start, end = _getState8.end, cellChangeHandler = _getState8.cellChangeHandler, history = _getState8.history, _getState8$freePaste = _getState8.freePaste, freePaste = _getState8$freePaste === void 0 ? false : _getState8$freePaste, data = _getState8.data, groupConfig = _getState8.groupConfig;
|
|
172
|
-
|
|
173
|
-
|
|
179
|
+
if (!(!start || !end)) {
|
|
180
|
+
_context.next = 3;
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
return _context.abrupt("return");
|
|
174
184
|
case 3:
|
|
185
|
+
_context.next = 5;
|
|
186
|
+
return clipboardDataToString();
|
|
187
|
+
case 5:
|
|
175
188
|
pasteData = _context.sent;
|
|
176
189
|
changeInfo = formatDataToCell(_objectSpread(_objectSpread({}, pick(getState(), ['data', 'start', 'end', 'editing'])), {}, {
|
|
177
190
|
pasteData: pasteData,
|
|
@@ -179,11 +192,11 @@ export var sideEffectReducer = {
|
|
|
179
192
|
freePaste: freePaste
|
|
180
193
|
}));
|
|
181
194
|
if (changeInfo) {
|
|
182
|
-
_context.next =
|
|
195
|
+
_context.next = 9;
|
|
183
196
|
break;
|
|
184
197
|
}
|
|
185
198
|
return _context.abrupt("return");
|
|
186
|
-
case
|
|
199
|
+
case 9:
|
|
187
200
|
changes = changeInfo.changes, extChanges = changeInfo.extChanges;
|
|
188
201
|
legalChanges = changes.filter(function (_ref4) {
|
|
189
202
|
var row = _ref4.row,
|
|
@@ -191,20 +204,49 @@ export var sideEffectReducer = {
|
|
|
191
204
|
value = _ref4.value;
|
|
192
205
|
var editor = data[row][col].dataEditor;
|
|
193
206
|
if (editor && editor.checker) {
|
|
194
|
-
return editor.checker(value);
|
|
207
|
+
return editor.checker(value, data[row][col].record);
|
|
195
208
|
}
|
|
196
209
|
return true;
|
|
210
|
+
}).map(function (_ref5) {
|
|
211
|
+
var _data$row$col, _editor$parser;
|
|
212
|
+
var row = _ref5.row,
|
|
213
|
+
col = _ref5.col,
|
|
214
|
+
value = _ref5.value;
|
|
215
|
+
var editor = data[row][col].dataEditor;
|
|
216
|
+
return {
|
|
217
|
+
row: row,
|
|
218
|
+
col: col,
|
|
219
|
+
id: (_data$row$col = data[row][col]) === null || _data$row$col === void 0 ? void 0 : _data$row$col.id,
|
|
220
|
+
value: editor !== null && editor !== void 0 && editor.parser ? editor === null || editor === void 0 ? void 0 : (_editor$parser = editor.parser) === null || _editor$parser === void 0 ? void 0 : _editor$parser.call(editor, value) : value
|
|
221
|
+
};
|
|
197
222
|
});
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
223
|
+
lastRow = extChanges === null || extChanges === void 0 ? void 0 : (_extChanges$ = extChanges[0]) === null || _extChanges$ === void 0 ? void 0 : _extChanges$.row;
|
|
224
|
+
lastIndex = 1;
|
|
225
|
+
legalExtChanges = extChanges === null || extChanges === void 0 ? void 0 : extChanges.filter(function (_ref6) {
|
|
226
|
+
var value = _ref6.value,
|
|
227
|
+
col = _ref6.col;
|
|
201
228
|
var editor = data[0][col].dataEditor;
|
|
202
229
|
if (editor && editor.checker) {
|
|
203
230
|
return editor.checker(value);
|
|
204
231
|
}
|
|
205
232
|
return true;
|
|
233
|
+
}).map(function (_ref7) {
|
|
234
|
+
var _editor$parser2;
|
|
235
|
+
var row = _ref7.row,
|
|
236
|
+
col = _ref7.col,
|
|
237
|
+
value = _ref7.value;
|
|
238
|
+
var editor = data[0][col].dataEditor;
|
|
239
|
+
if (lastRow !== row) {
|
|
240
|
+
lastRow = row;
|
|
241
|
+
lastIndex++;
|
|
242
|
+
}
|
|
243
|
+
return {
|
|
244
|
+
row: row,
|
|
245
|
+
col: col,
|
|
246
|
+
value: editor !== null && editor !== void 0 && editor.parser ? editor === null || editor === void 0 ? void 0 : (_editor$parser2 = editor.parser) === null || _editor$parser2 === void 0 ? void 0 : _editor$parser2.call(editor, value) : value,
|
|
247
|
+
id: -lastIndex
|
|
248
|
+
};
|
|
206
249
|
});
|
|
207
|
-
cellChangeHandler && cellChangeHandler(legalChanges, legalExtChanges);
|
|
208
250
|
newHistory = _toConsumableArray(history || []);
|
|
209
251
|
newHistory.push({
|
|
210
252
|
changes: legalChanges.map(function (item) {
|
|
@@ -226,7 +268,8 @@ export var sideEffectReducer = {
|
|
|
226
268
|
}
|
|
227
269
|
}
|
|
228
270
|
});
|
|
229
|
-
|
|
271
|
+
cellChangeHandler && cellChangeHandler(legalChanges, freePaste ? legalExtChanges : []);
|
|
272
|
+
case 18:
|
|
230
273
|
case "end":
|
|
231
274
|
return _context.stop();
|
|
232
275
|
}
|
|
@@ -254,12 +297,13 @@ export var sideEffectReducer = {
|
|
|
254
297
|
var _groupMap$get3, _groupMap$get4;
|
|
255
298
|
return !(groupMap.get(item.row) && !((_groupMap$get3 = groupMap.get(item.row)) !== null && _groupMap$get3 !== void 0 && _groupMap$get3.isStart) && !((_groupMap$get4 = groupMap.get(item.row)) !== null && _groupMap$get4 !== void 0 && _groupMap$get4.isOpen));
|
|
256
299
|
}).map(function (item) {
|
|
257
|
-
var _data$item$row2;
|
|
300
|
+
var _data$item$row2, _data$item$row3;
|
|
258
301
|
return {
|
|
259
302
|
cell: data === null || data === void 0 ? void 0 : (_data$item$row2 = data[item.row]) === null || _data$item$row2 === void 0 ? void 0 : _data$item$row2[item.col],
|
|
260
303
|
row: item.row,
|
|
261
304
|
col: item.col,
|
|
262
|
-
value:
|
|
305
|
+
value: null,
|
|
306
|
+
id: data === null || data === void 0 ? void 0 : (_data$item$row3 = data[item.row]) === null || _data$item$row3 === void 0 ? void 0 : _data$item$row3[item.col].id
|
|
263
307
|
};
|
|
264
308
|
});
|
|
265
309
|
var newHistory = _toConsumableArray(history || []);
|
|
@@ -271,13 +315,13 @@ export var sideEffectReducer = {
|
|
|
271
315
|
}),
|
|
272
316
|
type: 'Delete'
|
|
273
317
|
});
|
|
274
|
-
cellChangeHandler && cellChangeHandler(changes);
|
|
275
318
|
dispatch({
|
|
276
319
|
type: 'changes',
|
|
277
320
|
payload: {
|
|
278
321
|
history: newHistory
|
|
279
322
|
}
|
|
280
323
|
});
|
|
324
|
+
cellChangeHandler && cellChangeHandler(changes);
|
|
281
325
|
},
|
|
282
326
|
reverse: function reverse(dispatch, getState) {
|
|
283
327
|
var _getState10 = getState(),
|
|
@@ -287,19 +331,11 @@ export var sideEffectReducer = {
|
|
|
287
331
|
cellChangeHandler = _getState10.cellChangeHandler,
|
|
288
332
|
eventBus = _getState10.eventBus;
|
|
289
333
|
if (!(history !== null && history !== void 0 && history.length)) return;
|
|
290
|
-
console.log(history.length);
|
|
291
334
|
var changeHistory = _toConsumableArray(history);
|
|
292
335
|
var change = changeHistory.pop();
|
|
293
336
|
var type = change.type;
|
|
294
337
|
if (!['Edit', 'Paste', 'Delete'].includes(type)) {
|
|
295
338
|
eventBus.emit('reverse', change);
|
|
296
|
-
if (type === 'DeleteRow') {
|
|
297
|
-
// console.log(change.rowInfo?.deleteRow);
|
|
298
|
-
// dispatch({
|
|
299
|
-
// type: 'selectRow',
|
|
300
|
-
// payload: change.rowInfo?.deleteRow as number,
|
|
301
|
-
// });
|
|
302
|
-
}
|
|
303
339
|
dispatch({
|
|
304
340
|
type: 'changes',
|
|
305
341
|
payload: {
|
|
@@ -322,5 +358,4 @@ export var sideEffectReducer = {
|
|
|
322
358
|
}
|
|
323
359
|
});
|
|
324
360
|
}
|
|
325
|
-
};
|
|
326
|
-
//# sourceMappingURL=sideEffectReducer.js.map
|
|
361
|
+
};
|