@lemon-fe/components 1.4.5 → 1.4.7-alpha.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.
|
@@ -3,11 +3,16 @@ import React from 'react';
|
|
|
3
3
|
import type { ICellEditorParams } from 'ag-grid-community';
|
|
4
4
|
import type { ICellEditorReactComp } from 'ag-grid-react';
|
|
5
5
|
export declare class RowEditorData<T> {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
data: T;
|
|
7
|
+
mode?: RowUpdateMode;
|
|
8
|
+
constructor(data: T, mode?: RowUpdateMode);
|
|
9
9
|
}
|
|
10
|
-
export declare type
|
|
10
|
+
export declare type RowUpdateMode = 'replace' | 'merge';
|
|
11
|
+
export declare type RowEditorActionType = 'stop' | 'next' | {
|
|
12
|
+
/** 此次修改是整行数据替换还是合并,默认是合并 */
|
|
13
|
+
updateMode?: RowUpdateMode;
|
|
14
|
+
action?: 'stop' | 'next';
|
|
15
|
+
};
|
|
11
16
|
export interface RowEditorParams<T = any, K = any> {
|
|
12
17
|
suppressEnterEvent?: boolean;
|
|
13
18
|
isCancelAfterEnd?: (newValue: T, data: T) => boolean;
|
|
@@ -7,31 +7,24 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
7
7
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
8
8
|
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
9
9
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
10
|
-
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
10
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
12
11
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
12
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
13
|
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; }
|
|
14
14
|
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
15
|
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
16
|
-
import React, { useEffect, useRef } from 'react';
|
|
16
|
+
import React, { useCallback, useEffect, useRef } from 'react';
|
|
17
17
|
import { forwardRef, useImperativeHandle, useState } from 'react';
|
|
18
18
|
import { useGridStore } from "../hooks";
|
|
19
19
|
import EditorWrapper from "./wrapper";
|
|
20
20
|
import { get } from 'lodash';
|
|
21
|
-
export var RowEditorData = /*#__PURE__*/function () {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
key: "getValue",
|
|
29
|
-
value: function getValue() {
|
|
30
|
-
return this.data;
|
|
31
|
-
}
|
|
32
|
-
}]);
|
|
33
|
-
return RowEditorData;
|
|
34
|
-
}();
|
|
21
|
+
export var RowEditorData = /*#__PURE__*/_createClass(function RowEditorData(data, mode) {
|
|
22
|
+
_classCallCheck(this, RowEditorData);
|
|
23
|
+
_defineProperty(this, "data", void 0);
|
|
24
|
+
_defineProperty(this, "mode", void 0);
|
|
25
|
+
this.data = data;
|
|
26
|
+
this.mode = mode;
|
|
27
|
+
});
|
|
35
28
|
export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
36
29
|
var api = props.api,
|
|
37
30
|
suppressEnterEvent = props.suppressEnterEvent,
|
|
@@ -49,14 +42,23 @@ export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
|
49
42
|
_useState2 = _slicedToArray(_useState, 2),
|
|
50
43
|
prevValue = _useState2[0],
|
|
51
44
|
setPrevValue = _useState2[1];
|
|
52
|
-
var _useState3 = useState(
|
|
45
|
+
var _useState3 = useState({
|
|
46
|
+
value: data
|
|
47
|
+
}),
|
|
53
48
|
_useState4 = _slicedToArray(_useState3, 2),
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
result = _useState4[0],
|
|
50
|
+
setResult = _useState4[1];
|
|
56
51
|
var context = useGridStore(function (state) {
|
|
57
52
|
return state.context;
|
|
58
53
|
});
|
|
54
|
+
var getRowData = useCallback(function (target, nodeData) {
|
|
55
|
+
if (target.updateMode === 'replace') {
|
|
56
|
+
return target.value;
|
|
57
|
+
}
|
|
58
|
+
return _objectSpread(_objectSpread({}, nodeData), target.value);
|
|
59
|
+
}, []);
|
|
59
60
|
var elm = useRef(null);
|
|
61
|
+
var value = result.value;
|
|
60
62
|
useEffect(function () {
|
|
61
63
|
if (elm.current !== null) {
|
|
62
64
|
if (elm.current.select !== undefined) {
|
|
@@ -68,7 +70,10 @@ export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
|
68
70
|
var handler = function handler(evt) {
|
|
69
71
|
if (evt.update) {
|
|
70
72
|
setPrevValue(api.getValue(column, evt.node));
|
|
71
|
-
|
|
73
|
+
setResult({
|
|
74
|
+
value: evt.newData,
|
|
75
|
+
updateMode: 'replace'
|
|
76
|
+
});
|
|
72
77
|
}
|
|
73
78
|
};
|
|
74
79
|
node.addEventListener('dataChanged', handler);
|
|
@@ -80,7 +85,7 @@ export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
|
80
85
|
return {
|
|
81
86
|
getValue: function getValue() {
|
|
82
87
|
var nextValue = prevValue;
|
|
83
|
-
var newData =
|
|
88
|
+
var newData = getRowData(result, data);
|
|
84
89
|
if (field === undefined || value === data || isCancelAfterEnd !== undefined && isCancelAfterEnd(newData, data)) {
|
|
85
90
|
return prevValue;
|
|
86
91
|
}
|
|
@@ -90,15 +95,27 @@ export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
|
90
95
|
if (nextValue == prevValue) {
|
|
91
96
|
return prevValue;
|
|
92
97
|
}
|
|
93
|
-
return new RowEditorData(value);
|
|
98
|
+
return new RowEditorData(value, result.updateMode);
|
|
94
99
|
}
|
|
95
100
|
};
|
|
96
101
|
});
|
|
97
102
|
var handleChange = function handleChange(val, action) {
|
|
98
|
-
|
|
99
|
-
if (action
|
|
103
|
+
var finishAction;
|
|
104
|
+
if (_typeof(action) === 'object') {
|
|
105
|
+
setResult({
|
|
106
|
+
value: val,
|
|
107
|
+
updateMode: action.updateMode
|
|
108
|
+
});
|
|
109
|
+
finishAction = action.action;
|
|
110
|
+
} else {
|
|
111
|
+
setResult({
|
|
112
|
+
value: val
|
|
113
|
+
});
|
|
114
|
+
finishAction = action;
|
|
115
|
+
}
|
|
116
|
+
if (finishAction !== undefined) {
|
|
100
117
|
requestAnimationFrame(function () {
|
|
101
|
-
switch (
|
|
118
|
+
switch (finishAction) {
|
|
102
119
|
case 'stop':
|
|
103
120
|
stopEditing();
|
|
104
121
|
break;
|
|
@@ -114,7 +131,7 @@ export default /*#__PURE__*/forwardRef(function RowEditor(props, ref) {
|
|
|
114
131
|
api.tabToNextCell();
|
|
115
132
|
}
|
|
116
133
|
}
|
|
117
|
-
}, render(field ? get(value, field) : prevValue, value === data ? data :
|
|
134
|
+
}, render(field ? get(value, field) : prevValue, value === data ? data : getRowData(result, data), _objectSpread(_objectSpread({}, props), {}, {
|
|
118
135
|
context: context,
|
|
119
136
|
ref: elm,
|
|
120
137
|
onChange: handleChange
|
package/es/data-grid/index.js
CHANGED
|
@@ -1031,8 +1031,9 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1031
1031
|
var colField = mParams.colDef.field,
|
|
1032
1032
|
data = mParams.data,
|
|
1033
1033
|
newValue = mParams.newValue,
|
|
1034
|
-
oldValue = mParams.oldValue
|
|
1035
|
-
|
|
1034
|
+
oldValue = mParams.oldValue,
|
|
1035
|
+
node = mParams.node;
|
|
1036
|
+
if (!colField || newValue === oldValue || node === null || node === undefined) {
|
|
1036
1037
|
return false;
|
|
1037
1038
|
}
|
|
1038
1039
|
if (valueSetter !== undefined) {
|
|
@@ -1040,7 +1041,12 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1040
1041
|
set(data, colField, newValue);
|
|
1041
1042
|
Object.assign(data, _result);
|
|
1042
1043
|
} else if (newValue instanceof RowEditorData) {
|
|
1043
|
-
|
|
1044
|
+
if (newValue.mode === 'replace') {
|
|
1045
|
+
Object.keys(data).forEach(function (key) {
|
|
1046
|
+
set(data, key, undefined);
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
1049
|
+
Object.assign(data, newValue.data);
|
|
1044
1050
|
} else {
|
|
1045
1051
|
set(data, colField, newValue);
|
|
1046
1052
|
}
|
|
@@ -1198,6 +1204,26 @@ var InternalDataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1198
1204
|
return params.value;
|
|
1199
1205
|
};
|
|
1200
1206
|
}
|
|
1207
|
+
fieldCol.comparator = function (valueA, valueB) {
|
|
1208
|
+
var convertToNumber = function convertToNumber(value) {
|
|
1209
|
+
if (BigNumber.isBigNumber(value)) {
|
|
1210
|
+
return value.toNumber();
|
|
1211
|
+
}
|
|
1212
|
+
if (typeof value === 'string') {
|
|
1213
|
+
var numValue = parseFloat(value.replace(/,/g, ''));
|
|
1214
|
+
if (!isNaN(numValue)) {
|
|
1215
|
+
return numValue;
|
|
1216
|
+
}
|
|
1217
|
+
}
|
|
1218
|
+
return value;
|
|
1219
|
+
};
|
|
1220
|
+
var numericValueA = convertToNumber(valueA);
|
|
1221
|
+
var numericValueB = convertToNumber(valueB);
|
|
1222
|
+
if (isNaN(numericValueA) || isNaN(numericValueB)) {
|
|
1223
|
+
return ('' + valueA).localeCompare('' + valueB);
|
|
1224
|
+
}
|
|
1225
|
+
return numericValueA - numericValueB;
|
|
1226
|
+
};
|
|
1201
1227
|
result.push(fieldCol);
|
|
1202
1228
|
});
|
|
1203
1229
|
if (rowSelection !== undefined) {
|
package/es/data-grid/index.less
CHANGED
package/es/filter/index.js
CHANGED
|
@@ -33,7 +33,7 @@ import Modal from "../modal";
|
|
|
33
33
|
import Select from "../select";
|
|
34
34
|
import { mergeProp, prefixClassName } from "../utils";
|
|
35
35
|
import FieldsConfig from "./fields-config";
|
|
36
|
-
import { useRequest, useUpdateEffect } from '@lemon-fe/hooks';
|
|
36
|
+
import { useDebounce, useRequest, useUpdateEffect } from '@lemon-fe/hooks';
|
|
37
37
|
import classNames from 'classnames';
|
|
38
38
|
import ResizeObserver from 'rc-resize-observer';
|
|
39
39
|
var getInitComponents = function getInitComponents(locale) {
|
|
@@ -497,6 +497,12 @@ function Filter(originalProps) {
|
|
|
497
497
|
handleFinish(form.getFieldsValue(), 'reset');
|
|
498
498
|
}
|
|
499
499
|
};
|
|
500
|
+
var handleSubmit = useDebounce(function (val) {
|
|
501
|
+
return handleFinish(val, 'submit');
|
|
502
|
+
}, 1000, {
|
|
503
|
+
leading: true,
|
|
504
|
+
trailing: false
|
|
505
|
+
});
|
|
500
506
|
var handleChangeFields = useCallback(function (newFields) {
|
|
501
507
|
var next = _toConsumableArray(tabs);
|
|
502
508
|
next[active] = _objectSpread(_objectSpread({}, next[active]), {}, {
|
|
@@ -687,9 +693,7 @@ function Filter(originalProps) {
|
|
|
687
693
|
autoFocus: true
|
|
688
694
|
})))), /*#__PURE__*/React.createElement(Form, {
|
|
689
695
|
initialValues: defaultValue,
|
|
690
|
-
onFinish:
|
|
691
|
-
return handleFinish(val, 'submit');
|
|
692
|
-
},
|
|
696
|
+
onFinish: handleSubmit,
|
|
693
697
|
form: form,
|
|
694
698
|
style: {
|
|
695
699
|
position: 'relative'
|
package/es/modal/index.d.ts
CHANGED
|
@@ -12,5 +12,5 @@ declare const Modal: Pick<React.FC<AntdModalProps> & import("antd/lib/modal/conf
|
|
|
12
12
|
useModal: typeof import("antd/lib/modal/useModal").default;
|
|
13
13
|
destroyAll: () => void;
|
|
14
14
|
config: typeof import("antd/lib/modal/confirm").modalGlobalConfig;
|
|
15
|
-
}, "
|
|
15
|
+
}, "warning" | "error" | "success" | "info" | "warn" | "confirm" | "useModal" | "destroyAll" | "config"> & typeof LemonModal;
|
|
16
16
|
export default Modal;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemon-fe/components",
|
|
3
|
-
"version": "1.4.
|
|
3
|
+
"version": "1.4.7-alpha.0",
|
|
4
4
|
"description": "> TODO: description",
|
|
5
5
|
"homepage": "",
|
|
6
6
|
"license": "MIT",
|
|
@@ -58,5 +58,5 @@
|
|
|
58
58
|
"publishConfig": {
|
|
59
59
|
"registry": "https://registry.npmjs.org"
|
|
60
60
|
},
|
|
61
|
-
"gitHead": "
|
|
61
|
+
"gitHead": "09e7aef5d176eb8495585b67e3eb807ff43116b0"
|
|
62
62
|
}
|