@lemon-fe/kits 1.0.0-67 → 1.0.0-68
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/es/components/DataGrid/components/Selected.d.ts +7 -0
- package/es/components/DataGrid/components/Selected.js +32 -0
- package/es/components/DataGrid/index.d.ts +1 -1
- package/es/components/DataGrid/index.js +22 -5
- package/es/components/DataGrid/index.less +9 -0
- package/es/components/DataGrid/utils.d.ts +6 -2
- package/es/components/DataGrid/utils.js +50 -20
- package/package.json +1 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
2
|
+
|
|
3
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
4
|
+
|
|
5
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6
|
+
|
|
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
|
+
|
|
9
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
10
|
+
|
|
11
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
12
|
+
|
|
13
|
+
import React, { useEffect, useState, memo } from 'react';
|
|
14
|
+
import { prefix } from "../utils";
|
|
15
|
+
export default /*#__PURE__*/memo(function Selected(props) {
|
|
16
|
+
var selection = props.selection,
|
|
17
|
+
onClear = props.onClear;
|
|
18
|
+
|
|
19
|
+
var _useState = useState(selection.getKeys()),
|
|
20
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
21
|
+
keys = _useState2[0],
|
|
22
|
+
setKeys = _useState2[1];
|
|
23
|
+
|
|
24
|
+
useEffect(function () {
|
|
25
|
+
return selection.listen(setKeys);
|
|
26
|
+
}, []);
|
|
27
|
+
return /*#__PURE__*/React.createElement("span", {
|
|
28
|
+
className: prefix('selected')
|
|
29
|
+
}, "\u5DF2\u9009", keys.length, "\u6761 ", /*#__PURE__*/React.createElement("a", {
|
|
30
|
+
onClick: onClear
|
|
31
|
+
}, "\u6E05\u7A7A\u5DF2\u9009"));
|
|
32
|
+
});
|
|
@@ -91,7 +91,7 @@ export default class DataGrid<TData extends Record<string, any>> extends Compone
|
|
|
91
91
|
private blurTimer;
|
|
92
92
|
private handleBlur;
|
|
93
93
|
private handleFocus;
|
|
94
|
-
private
|
|
94
|
+
private handleClearSelected;
|
|
95
95
|
private getMemoizedDefaultColDef;
|
|
96
96
|
private getMemoizedColumnTypes;
|
|
97
97
|
private getMemoizedComponents;
|
|
@@ -89,6 +89,7 @@ import SelectEditor from "./cell-editors/Select";
|
|
|
89
89
|
import RowEditor, { RowEditorData } from "./cell-editors/Row";
|
|
90
90
|
import EditorWrapper from "./cell-editors/Wrapper";
|
|
91
91
|
import memoizeOne from 'memoize-one';
|
|
92
|
+
import Selected from "./components/Selected";
|
|
92
93
|
ModuleRegistry.registerModules([ClientSideRowModelModule, RowGroupingModule, InfiniteRowModelModule, ClipboardModule, MenuModule, SideBarModule, ColumnsToolPanelModule], false);
|
|
93
94
|
var defaultColDef = {
|
|
94
95
|
resizable: true,
|
|
@@ -104,6 +105,10 @@ var defaultComponents = {
|
|
|
104
105
|
'row-editor': RowEditor
|
|
105
106
|
};
|
|
106
107
|
|
|
108
|
+
function unsort() {
|
|
109
|
+
return 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
107
112
|
var DataGrid = /*#__PURE__*/function (_Component) {
|
|
108
113
|
_inherits(DataGrid, _Component);
|
|
109
114
|
|
|
@@ -293,13 +298,21 @@ var DataGrid = /*#__PURE__*/function (_Component) {
|
|
|
293
298
|
}
|
|
294
299
|
});
|
|
295
300
|
|
|
296
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
297
|
-
|
|
301
|
+
_defineProperty(_assertThisInitialized(_this), "handleClearSelected", function () {
|
|
302
|
+
_this.selected.clear();
|
|
303
|
+
|
|
304
|
+
_this.api.getSelectedNodes().forEach(function (node) {
|
|
305
|
+
node.setSelected(false, false, true);
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
_this.api.dispatchEvent({
|
|
309
|
+
type: 'selectionChanged'
|
|
310
|
+
});
|
|
298
311
|
});
|
|
299
312
|
|
|
300
313
|
_defineProperty(_assertThisInitialized(_this), "getMemoizedDefaultColDef", memoizeOne(function (defaultColDefProp) {
|
|
301
314
|
return _objectSpread(_objectSpread({
|
|
302
|
-
comparator: _this.isClientMode() ? undefined :
|
|
315
|
+
comparator: _this.isClientMode() ? undefined : unsort
|
|
303
316
|
}, defaultColDef), defaultColDefProp);
|
|
304
317
|
}));
|
|
305
318
|
|
|
@@ -1112,6 +1125,7 @@ var DataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1112
1125
|
total = _this$state2.total,
|
|
1113
1126
|
loading = _this$state2.loading;
|
|
1114
1127
|
var mPage = _typeof(pagination) === 'object' ? pagination : {};
|
|
1128
|
+
var enableSelection = rowSelection !== undefined;
|
|
1115
1129
|
return /*#__PURE__*/React.createElement(GridStoreContext.Provider, {
|
|
1116
1130
|
value: this.store
|
|
1117
1131
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1144,13 +1158,16 @@ var DataGrid = /*#__PURE__*/function (_Component) {
|
|
|
1144
1158
|
getRowId: this.getRowId,
|
|
1145
1159
|
onGridReady: this.init,
|
|
1146
1160
|
context: context,
|
|
1147
|
-
rowSelection:
|
|
1161
|
+
rowSelection: enableSelection ? rowSelection.type !== 'radio' ? 'multiple' : 'single' : undefined,
|
|
1148
1162
|
components: this.getMemoizedComponents(componentsProp),
|
|
1149
1163
|
defaultColDef: this.getMemoizedDefaultColDef(defaultColDefProp),
|
|
1150
1164
|
columnTypes: this.getMemoizedColumnTypes(columnTypesProp)
|
|
1151
1165
|
})), /*#__PURE__*/React.createElement("div", {
|
|
1152
1166
|
className: prefix('bottom')
|
|
1153
|
-
}, /*#__PURE__*/React.createElement("div", null
|
|
1167
|
+
}, /*#__PURE__*/React.createElement("div", null, enableSelection ? /*#__PURE__*/React.createElement(Selected, {
|
|
1168
|
+
selection: this.selected,
|
|
1169
|
+
onClear: this.handleClearSelected
|
|
1170
|
+
}) : null), enablePagination && /*#__PURE__*/React.createElement(Pagination, _extends({
|
|
1154
1171
|
size: "small",
|
|
1155
1172
|
showPrevNextJumpers: true,
|
|
1156
1173
|
showSizeChanger: true,
|
|
@@ -30,11 +30,20 @@
|
|
|
30
30
|
|
|
31
31
|
&-bottom {
|
|
32
32
|
display: flex;
|
|
33
|
+
align-items: center;
|
|
33
34
|
justify-content: space-between;
|
|
34
35
|
margin-top: @space-v;
|
|
35
36
|
background-color: var(--ag-background-color);
|
|
36
37
|
}
|
|
37
38
|
|
|
39
|
+
&-selected {
|
|
40
|
+
color: #a5a5a5;
|
|
41
|
+
|
|
42
|
+
a {
|
|
43
|
+
margin-left: @space-h;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
38
47
|
&-operator {
|
|
39
48
|
position: absolute;
|
|
40
49
|
top: 4px;
|
|
@@ -31,15 +31,19 @@ export declare class Selection<T> {
|
|
|
31
31
|
private record;
|
|
32
32
|
private keys;
|
|
33
33
|
private dirty;
|
|
34
|
+
private observers;
|
|
34
35
|
constructor(keys?: string[]);
|
|
36
|
+
flush(): readonly [string[], T[]];
|
|
35
37
|
get(id: string): T | undefined;
|
|
36
38
|
has(id: string): boolean;
|
|
37
39
|
set(id: string, data: T): void;
|
|
38
40
|
delete(id: string): void;
|
|
41
|
+
clear(): void;
|
|
42
|
+
clone(data: Map<string, T>): void;
|
|
39
43
|
isSameKeys(keys: string[]): boolean;
|
|
40
44
|
isDirty(): boolean;
|
|
41
|
-
|
|
45
|
+
getKeys(): string[];
|
|
42
46
|
forEach(cb: (key: string) => void): void;
|
|
43
|
-
|
|
47
|
+
listen(cb: (keys: string[]) => void): () => void;
|
|
44
48
|
}
|
|
45
49
|
export declare const columnTypes: Record<string, ColDef>;
|
|
@@ -137,7 +137,7 @@ export var Store = /*#__PURE__*/function () {
|
|
|
137
137
|
}();
|
|
138
138
|
export var Selection = /*#__PURE__*/function () {
|
|
139
139
|
function Selection() {
|
|
140
|
-
var
|
|
140
|
+
var _keys = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
141
141
|
|
|
142
142
|
_classCallCheck(this, Selection);
|
|
143
143
|
|
|
@@ -147,13 +147,37 @@ export var Selection = /*#__PURE__*/function () {
|
|
|
147
147
|
|
|
148
148
|
_defineProperty(this, "dirty", false);
|
|
149
149
|
|
|
150
|
-
this
|
|
150
|
+
_defineProperty(this, "observers", new Set());
|
|
151
|
+
|
|
152
|
+
this.record = new Map(_keys.map(function (key) {
|
|
151
153
|
return [key, null];
|
|
152
154
|
}));
|
|
153
|
-
this.keys =
|
|
155
|
+
this.keys = _keys;
|
|
154
156
|
}
|
|
155
157
|
|
|
156
158
|
_createClass(Selection, [{
|
|
159
|
+
key: "flush",
|
|
160
|
+
value: function flush() {
|
|
161
|
+
var _this2 = this;
|
|
162
|
+
|
|
163
|
+
var result = _toConsumableArray(this.record);
|
|
164
|
+
|
|
165
|
+
var keys = [];
|
|
166
|
+
var values = [];
|
|
167
|
+
result.forEach(function (item) {
|
|
168
|
+
keys.push(item[0]);
|
|
169
|
+
values.push(item[1]);
|
|
170
|
+
});
|
|
171
|
+
this.keys = keys;
|
|
172
|
+
this.dirty = false;
|
|
173
|
+
|
|
174
|
+
_toConsumableArray(this.observers).forEach(function (cb) {
|
|
175
|
+
return cb(_this2.keys);
|
|
176
|
+
});
|
|
177
|
+
|
|
178
|
+
return [keys, values];
|
|
179
|
+
}
|
|
180
|
+
}, {
|
|
157
181
|
key: "get",
|
|
158
182
|
value: function get(id) {
|
|
159
183
|
return this.record.get(id);
|
|
@@ -175,6 +199,18 @@ export var Selection = /*#__PURE__*/function () {
|
|
|
175
199
|
this.record.delete(id);
|
|
176
200
|
this.dirty = true;
|
|
177
201
|
}
|
|
202
|
+
}, {
|
|
203
|
+
key: "clear",
|
|
204
|
+
value: function clear() {
|
|
205
|
+
this.record = new Map();
|
|
206
|
+
this.dirty = true;
|
|
207
|
+
}
|
|
208
|
+
}, {
|
|
209
|
+
key: "clone",
|
|
210
|
+
value: function clone(data) {
|
|
211
|
+
this.record = data;
|
|
212
|
+
this.flush();
|
|
213
|
+
}
|
|
178
214
|
}, {
|
|
179
215
|
key: "isSameKeys",
|
|
180
216
|
value: function isSameKeys(keys) {
|
|
@@ -190,19 +226,9 @@ export var Selection = /*#__PURE__*/function () {
|
|
|
190
226
|
return this.dirty;
|
|
191
227
|
}
|
|
192
228
|
}, {
|
|
193
|
-
key: "
|
|
194
|
-
value: function
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
var keys = [];
|
|
198
|
-
var values = [];
|
|
199
|
-
result.forEach(function (item) {
|
|
200
|
-
keys.push(item[0]);
|
|
201
|
-
values.push(item[1]);
|
|
202
|
-
});
|
|
203
|
-
this.keys = keys;
|
|
204
|
-
this.dirty = false;
|
|
205
|
-
return [keys, values];
|
|
229
|
+
key: "getKeys",
|
|
230
|
+
value: function getKeys() {
|
|
231
|
+
return this.keys;
|
|
206
232
|
}
|
|
207
233
|
}, {
|
|
208
234
|
key: "forEach",
|
|
@@ -210,10 +236,14 @@ export var Selection = /*#__PURE__*/function () {
|
|
|
210
236
|
this.keys.forEach(cb);
|
|
211
237
|
}
|
|
212
238
|
}, {
|
|
213
|
-
key: "
|
|
214
|
-
value: function
|
|
215
|
-
|
|
216
|
-
|
|
239
|
+
key: "listen",
|
|
240
|
+
value: function listen(cb) {
|
|
241
|
+
var _this3 = this;
|
|
242
|
+
|
|
243
|
+
this.observers.add(cb);
|
|
244
|
+
return function () {
|
|
245
|
+
_this3.observers.delete(cb);
|
|
246
|
+
};
|
|
217
247
|
}
|
|
218
248
|
}]);
|
|
219
249
|
|