@gridsuite/commons-ui 0.29.2 → 0.30.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/ElementSearchDialog/element-search-dialog.js +1 -3
- package/lib/components/MuiVirtualizedTable/ColumnHeader.js +142 -0
- package/lib/components/MuiVirtualizedTable/KeyedColumnsRowIndexer.js +672 -0
- package/lib/components/MuiVirtualizedTable/MuiVirtualizedTable.js +509 -241
- package/lib/components/MuiVirtualizedTable/index.js +6 -3
- package/lib/index.js +4 -3
- package/lib/utils/AuthService.js +50 -16
- package/lib/utils/EquipmentType.js +3 -3
- package/lib/utils/algos.js +27 -0
- package/package.json +1 -1
|
@@ -5,31 +5,31 @@ exports["default"] = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT
|
|
|
5
5
|
|
|
6
6
|
var _react = _interopRequireWildcard(require("react"));
|
|
7
7
|
|
|
8
|
+
var _reactIntl = require("react-intl");
|
|
9
|
+
|
|
8
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
11
|
|
|
10
12
|
var _clsx3 = _interopRequireDefault(require("clsx"));
|
|
11
13
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
var _reactVirtualized = require("react-virtualized");
|
|
14
|
+
var _memoizeOne = _interopRequireDefault(require("memoize-one"));
|
|
15
15
|
|
|
16
|
-
var
|
|
16
|
+
var _material = require("@mui/material");
|
|
17
17
|
|
|
18
|
-
var
|
|
18
|
+
var _withStyles = _interopRequireDefault(require("@mui/styles/withStyles"));
|
|
19
19
|
|
|
20
20
|
var _GetApp = _interopRequireDefault(require("@mui/icons-material/GetApp"));
|
|
21
21
|
|
|
22
|
-
var
|
|
22
|
+
var _reactVirtualized = require("react-virtualized");
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _reactCsvDownloader = _interopRequireDefault(require("react-csv-downloader"));
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _overflowableText = _interopRequireDefault(require("../OverflowableText/overflowable-text"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _KeyedColumnsRowIndexer = require("./KeyedColumnsRowIndexer");
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _ColumnHeader = _interopRequireDefault(require("./ColumnHeader"));
|
|
31
31
|
|
|
32
|
-
var _excluded = ["
|
|
32
|
+
var _excluded = ["sort"],
|
|
33
33
|
_excluded2 = ["dataKey"];
|
|
34
34
|
|
|
35
35
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
@@ -38,10 +38,14 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
38
38
|
|
|
39
39
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
40
40
|
|
|
41
|
-
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
42
|
-
|
|
43
41
|
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; }
|
|
44
42
|
|
|
43
|
+
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
44
|
+
|
|
45
|
+
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); }
|
|
46
|
+
|
|
47
|
+
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; }
|
|
48
|
+
|
|
45
49
|
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
46
50
|
|
|
47
51
|
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
@@ -50,6 +54,8 @@ function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Objec
|
|
|
50
54
|
|
|
51
55
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
52
56
|
|
|
57
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
58
|
+
|
|
53
59
|
function getTextWidth(text) {
|
|
54
60
|
// re-use canvas object for better performance
|
|
55
61
|
var canvas = getTextWidth.canvas || (getTextWidth.canvas = document.createElement('canvas'));
|
|
@@ -102,48 +108,132 @@ var defaultStyles = {
|
|
|
102
108
|
}
|
|
103
109
|
};
|
|
104
110
|
|
|
111
|
+
var AmongChooser = function AmongChooser(props) {
|
|
112
|
+
var options = props.options,
|
|
113
|
+
value = props.value,
|
|
114
|
+
setValue = props.setValue,
|
|
115
|
+
id = props.id;
|
|
116
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", null, props.label), /*#__PURE__*/_react["default"].createElement(_material.Autocomplete, {
|
|
117
|
+
id: id,
|
|
118
|
+
value: value !== null && value !== void 0 ? value : [],
|
|
119
|
+
multiple: true,
|
|
120
|
+
onChange: function onChange(evt, newVal) {
|
|
121
|
+
setValue(newVal);
|
|
122
|
+
},
|
|
123
|
+
options: options // getOptionLabel={(code) => options.get(code)}
|
|
124
|
+
,
|
|
125
|
+
renderInput: function renderInput(props) {
|
|
126
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TextField // label={<FormattedMessage id={titleMessage} />}
|
|
127
|
+
, props);
|
|
128
|
+
},
|
|
129
|
+
renderTags: function renderTags(val, getTagsProps) {
|
|
130
|
+
return val.map(function (code, index) {
|
|
131
|
+
return /*#__PURE__*/_react["default"].createElement(_material.Chip, _extends({
|
|
132
|
+
id: 'chip_' + code,
|
|
133
|
+
size: 'small',
|
|
134
|
+
label: code
|
|
135
|
+
}, getTagsProps({
|
|
136
|
+
index: index
|
|
137
|
+
})));
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
}));
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
var initIndexer = function initIndexer(props, oldProps, versionSetter) {
|
|
144
|
+
if (!props.sortable) {
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (props.indexer) {
|
|
149
|
+
return props.indexer;
|
|
150
|
+
} else if (!props.sort) {
|
|
151
|
+
return new _KeyedColumnsRowIndexer.KeyedColumnsRowIndexer(true, true, null, versionSetter);
|
|
152
|
+
} else if (typeof props.sort === 'function') {
|
|
153
|
+
return new _KeyedColumnsRowIndexer.KeyedColumnsRowIndexer(true, true, function (cbfgs, done_cb) {
|
|
154
|
+
console.debug('dummy func, now :-/');
|
|
155
|
+
done_cb(true);
|
|
156
|
+
}, versionSetter);
|
|
157
|
+
} else if (typeof props.sort === 'object') {
|
|
158
|
+
return props.sort;
|
|
159
|
+
} else {
|
|
160
|
+
console.warn('unknown type of sort', props.sort);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return new _KeyedColumnsRowIndexer.KeyedColumnsRowIndexer(true, true, null, versionSetter);
|
|
164
|
+
};
|
|
165
|
+
|
|
105
166
|
var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
106
167
|
_inheritsLoose(MuiVirtualizedTable, _React$PureComponent);
|
|
107
168
|
|
|
108
|
-
function MuiVirtualizedTable(
|
|
169
|
+
function MuiVirtualizedTable(_props, context) {
|
|
109
170
|
var _this;
|
|
110
171
|
|
|
111
|
-
_this = _React$PureComponent.call(this,
|
|
172
|
+
_this = _React$PureComponent.call(this, _props, context) || this;
|
|
112
173
|
|
|
113
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
174
|
+
_defineProperty(_assertThisInitialized(_this), "setVersion", function (v) {
|
|
175
|
+
_this.setState({
|
|
176
|
+
indirectionVersion: v
|
|
177
|
+
});
|
|
117
178
|
});
|
|
118
179
|
|
|
119
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
120
|
-
|
|
121
|
-
|
|
180
|
+
_defineProperty(_assertThisInitialized(_this), "preFilterData", (0, _memoizeOne["default"])(function (columns, rows) {
|
|
181
|
+
return _this.state.indexer.preFilterRowMapping(columns, rows);
|
|
182
|
+
}));
|
|
122
183
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
184
|
+
_defineProperty(_assertThisInitialized(_this), "reorderIndex", (0, _memoizeOne["default"])(function (indirectorVersion, rows, columns) {
|
|
185
|
+
var indexer = _this.state.indexer;
|
|
186
|
+
if (!rows) return {
|
|
187
|
+
viewIndexToModel: [],
|
|
188
|
+
rowGetter: function rowGetter(viewIndex) {
|
|
189
|
+
return viewIndex;
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
var props = _this.props;
|
|
193
|
+
|
|
194
|
+
if (indexer && props.sort) {
|
|
195
|
+
var highestCodedColumn = indexer.highestCodedColumn(props.columns);
|
|
196
|
+
|
|
197
|
+
if (highestCodedColumn !== 0) {
|
|
198
|
+
var colIdx = Math.abs(highestCodedColumn) - 1;
|
|
199
|
+
var ret = props.sort(props.columns[colIdx].dataKey, highestCodedColumn > 0, !!props.columns[colIdx].numeric);
|
|
200
|
+
return {
|
|
201
|
+
viewIndexToModel: ret,
|
|
202
|
+
rowGetter: function rowGetter(viewIndex) {
|
|
203
|
+
if (viewIndex >= ret.length || viewIndex < 0) {
|
|
204
|
+
return {};
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
var modelIndex = ret[viewIndex];
|
|
208
|
+
return rows[modelIndex];
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
} else if (indexer) {
|
|
213
|
+
var prefiltered = _this.preFilterData(columns, rows);
|
|
127
214
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
215
|
+
var reorderedIndex = indexer.makeGroupAndSortIndirector(prefiltered, columns);
|
|
216
|
+
return {
|
|
217
|
+
viewIndexToModel: reorderedIndex,
|
|
218
|
+
rowGetter: function rowGetter(viewIndex) {
|
|
219
|
+
if (reorderedIndex === null) return rows[viewIndex];
|
|
133
220
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
}
|
|
221
|
+
if (viewIndex >= reorderedIndex.length || viewIndex < 0) {
|
|
222
|
+
return {};
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
var modelIndex = reorderedIndex[viewIndex];
|
|
226
|
+
return rows[modelIndex];
|
|
227
|
+
}
|
|
228
|
+
};
|
|
142
229
|
}
|
|
143
230
|
|
|
144
|
-
return
|
|
145
|
-
|
|
146
|
-
|
|
231
|
+
return {
|
|
232
|
+
viewIndexToModel: null,
|
|
233
|
+
rowGetter: function rowGetter(viewIndex) {
|
|
234
|
+
return rows[viewIndex];
|
|
235
|
+
}
|
|
236
|
+
};
|
|
147
237
|
}));
|
|
148
238
|
|
|
149
239
|
_defineProperty(_assertThisInitialized(_this), "computeDataWidth", function (text) {
|
|
@@ -156,14 +246,16 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
156
246
|
if (col.width) {
|
|
157
247
|
sizes[col.dataKey] = col.width;
|
|
158
248
|
} else {
|
|
159
|
-
/* calculate the header (and min size if exists)
|
|
249
|
+
/* calculate the header (and min size if exists)
|
|
250
|
+
* NB : ignores the possible icons
|
|
251
|
+
*/
|
|
160
252
|
var size = Math.max(col.minWidth || 0, _this.computeDataWidth(col.label));
|
|
161
253
|
/* calculate for each row the width, and keep the max */
|
|
162
254
|
|
|
163
255
|
for (var i = 0; i < rows.length; ++i) {
|
|
164
|
-
var
|
|
165
|
-
|
|
166
|
-
|
|
256
|
+
var gotRow = rowGetter(i);
|
|
257
|
+
|
|
258
|
+
var text = _this.getDisplayValue(col, gotRow[col.dataKey]);
|
|
167
259
|
|
|
168
260
|
size = Math.max(size, _this.computeDataWidth(text));
|
|
169
261
|
}
|
|
@@ -175,55 +267,202 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
175
267
|
return sizes;
|
|
176
268
|
}));
|
|
177
269
|
|
|
270
|
+
_defineProperty(_assertThisInitialized(_this), "openPopover", function (popoverTarget, colKey) {
|
|
271
|
+
if (_this.state.indexer.delegatorCallback) {
|
|
272
|
+
return; // retro compatibility stops here ;-)
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
var col = _this.props.columns.find(function (c) {
|
|
276
|
+
return c.dataKey === colKey;
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
if ((0, _KeyedColumnsRowIndexer.getHelper)(col) !== _KeyedColumnsRowIndexer.collectibleHelper) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
_this.setState({
|
|
284
|
+
popoverAnchorEl: popoverTarget,
|
|
285
|
+
popoverColKey: colKey
|
|
286
|
+
});
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
_defineProperty(_assertThisInitialized(_this), "closePopover", function (evt, reason) {
|
|
290
|
+
var bumpsVersion = false;
|
|
291
|
+
|
|
292
|
+
if (reason === 'backdropClick') {
|
|
293
|
+
bumpsVersion = _this._commitFilterChange();
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
_this.setState({
|
|
297
|
+
popoverAnchorEl: null,
|
|
298
|
+
popoverColKey: null,
|
|
299
|
+
deferredFilterChange: null,
|
|
300
|
+
indirectionVersion: _this.state.indirectionVersion + (bumpsVersion ? 1 : 0)
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
|
|
304
|
+
_defineProperty(_assertThisInitialized(_this), "makeColumnFilterEditor", function () {
|
|
305
|
+
var _prefiltered$colsStat, _col$label;
|
|
306
|
+
|
|
307
|
+
var colKey = _this.state.popoverColKey;
|
|
308
|
+
|
|
309
|
+
var outerParams = _this.state.indexer.getColFilterOuterParams(colKey);
|
|
310
|
+
|
|
311
|
+
var userParams = !_this.props.defersFilterChanges || !_this.state.deferredFilterChange ? _this.state.indexer.getColFilterUserParams(colKey) : _this.state.deferredFilterChange.newVal;
|
|
312
|
+
|
|
313
|
+
var prefiltered = _this.preFilterData(_this.props.columns, _this.props.rows);
|
|
314
|
+
|
|
315
|
+
var options = [];
|
|
316
|
+
|
|
317
|
+
if (outerParams) {
|
|
318
|
+
options.push.apply(options, outerParams);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
var colStat = prefiltered === null || prefiltered === void 0 ? void 0 : (_prefiltered$colsStat = prefiltered.colsStats) === null || _prefiltered$colsStat === void 0 ? void 0 : _prefiltered$colsStat[colKey];
|
|
322
|
+
|
|
323
|
+
if (colStat === null || colStat === void 0 ? void 0 : colStat.seen) {
|
|
324
|
+
var _loop = function _loop() {
|
|
325
|
+
var key = _step.value;
|
|
326
|
+
|
|
327
|
+
if (options.findIndex(function (o) {
|
|
328
|
+
return o === key;
|
|
329
|
+
}) < 0) {
|
|
330
|
+
options.push(key);
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
|
+
|
|
334
|
+
for (var _iterator = _createForOfIteratorHelperLoose(Object.getOwnPropertyNames(colStat.seen)), _step; !(_step = _iterator()).done;) {
|
|
335
|
+
_loop();
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
var col = _this.props.columns.find(function (c) {
|
|
340
|
+
return c.dataKey === colKey;
|
|
341
|
+
});
|
|
342
|
+
|
|
343
|
+
return /*#__PURE__*/_react["default"].createElement(AmongChooser, {
|
|
344
|
+
options: options,
|
|
345
|
+
value: userParams,
|
|
346
|
+
id: 'fielt' + colKey,
|
|
347
|
+
label: (_col$label = col === null || col === void 0 ? void 0 : col.label) !== null && _col$label !== void 0 ? _col$label : "\u2208",
|
|
348
|
+
setValue: function setValue(newVal) {
|
|
349
|
+
_this.onFilterParamsChange(newVal, colKey);
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
_defineProperty(_assertThisInitialized(_this), "_commitFilterChange", function () {
|
|
355
|
+
if (_this.state.deferredFilterChange) {
|
|
356
|
+
var _newVal;
|
|
357
|
+
|
|
358
|
+
var colKey = _this.state.deferredFilterChange.colKey;
|
|
359
|
+
var newVal = _this.state.deferredFilterChange.newVal;
|
|
360
|
+
|
|
361
|
+
if (((_newVal = newVal) === null || _newVal === void 0 ? void 0 : _newVal.length) === 0) {
|
|
362
|
+
newVal = null;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
if (_this.state.indexer.setColFilterUserParams(colKey, newVal)) {
|
|
366
|
+
return true;
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
return false;
|
|
371
|
+
});
|
|
372
|
+
|
|
373
|
+
_defineProperty(_assertThisInitialized(_this), "sortClickHandler", function (evt, name, columnIndex) {
|
|
374
|
+
var colKey = _this.props.columns[columnIndex].dataKey;
|
|
375
|
+
|
|
376
|
+
if (evt.altKey) {
|
|
377
|
+
_this.openPopover(evt.target, colKey);
|
|
378
|
+
|
|
379
|
+
return;
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
var way = _KeyedColumnsRowIndexer.CHANGE_WAYS.SIMPLE;
|
|
383
|
+
|
|
384
|
+
if (evt.ctrlKey && evt.shiftKey) {
|
|
385
|
+
way = _KeyedColumnsRowIndexer.CHANGE_WAYS.AMEND;
|
|
386
|
+
} else if (evt.ctrlKey) {
|
|
387
|
+
way = _KeyedColumnsRowIndexer.CHANGE_WAYS.REMOVE;
|
|
388
|
+
} else if (evt.shiftKey) {
|
|
389
|
+
way = _KeyedColumnsRowIndexer.CHANGE_WAYS.TAIL;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if (_this.state.indexer.updateSortingFromUser(colKey, way)) {
|
|
393
|
+
_this.setState({
|
|
394
|
+
indirectionVersion: _this.state.indirectionVersion + 1
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
});
|
|
398
|
+
|
|
399
|
+
_defineProperty(_assertThisInitialized(_this), "filterClickHandler", function (evt, retargeted, columnIndex) {
|
|
400
|
+
var colKey = _this.props.columns[columnIndex].dataKey;
|
|
401
|
+
|
|
402
|
+
_this.openPopover(retargeted, colKey);
|
|
403
|
+
});
|
|
404
|
+
|
|
178
405
|
_defineProperty(_assertThisInitialized(_this), "sortableHeader", function (_ref) {
|
|
406
|
+
var _prefiltered$colsStat2;
|
|
407
|
+
|
|
179
408
|
var label = _ref.label,
|
|
180
|
-
columnIndex = _ref.columnIndex
|
|
181
|
-
|
|
182
|
-
var
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
409
|
+
columnIndex = _ref.columnIndex;
|
|
410
|
+
var columns = _this.props.columns;
|
|
411
|
+
var indexer = _this.state.indexer;
|
|
412
|
+
var colKey = columns[columnIndex].dataKey;
|
|
413
|
+
var signedRank = indexer.columnSortingSignedRank(colKey);
|
|
414
|
+
var userParams = indexer.getColFilterUserParams(colKey);
|
|
415
|
+
var numeric = columns[columnIndex].numeric;
|
|
416
|
+
|
|
417
|
+
var prefiltered = _this.preFilterData(columns, _this.props.rows);
|
|
418
|
+
|
|
419
|
+
var colStat = prefiltered === null || prefiltered === void 0 ? void 0 : (_prefiltered$colsStat2 = prefiltered.colsStats) === null || _prefiltered$colsStat2 === void 0 ? void 0 : _prefiltered$colsStat2[colKey];
|
|
420
|
+
var filterLevel = 0;
|
|
421
|
+
|
|
422
|
+
if (colStat === null || colStat === void 0 ? void 0 : colStat.seen) {
|
|
423
|
+
var countSeen = Object.getOwnPropertyNames(colStat.seen).length;
|
|
424
|
+
var userSelectedCount = userParams === null || userParams === void 0 ? void 0 : userParams.length;
|
|
425
|
+
filterLevel += userSelectedCount ? 1 : 0;
|
|
426
|
+
filterLevel += userSelectedCount >= countSeen ? 2 : 0;
|
|
427
|
+
} // disable filtering when a cellRenderer is defined,
|
|
428
|
+
// as we have no simple way to match for chosen value(s)
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
var onFilterClick = numeric || _this.props.sort || columns[columnIndex].cellRenderer ? undefined : function (ev, retargeted) {
|
|
432
|
+
_this.filterClickHandler(ev, retargeted, columnIndex);
|
|
433
|
+
};
|
|
434
|
+
return /*#__PURE__*/_react["default"].createElement(_ColumnHeader["default"], {
|
|
435
|
+
label: label,
|
|
436
|
+
ref: function ref(e) {
|
|
437
|
+
return _this._registerHeader(label, e);
|
|
192
438
|
},
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
if (key === undefined) key = columnIndex;else if (direction === 'asc') direction = 'desc';else {
|
|
199
|
-
key = undefined;
|
|
200
|
-
direction = 'asc';
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
_this.setState({
|
|
204
|
-
key: key,
|
|
205
|
-
direction: direction
|
|
206
|
-
});
|
|
439
|
+
sortSignedRank: signedRank,
|
|
440
|
+
filterLevel: filterLevel,
|
|
441
|
+
numeric: numeric,
|
|
442
|
+
onSortClick: function onSortClick(ev, name) {
|
|
443
|
+
_this.sortClickHandler(ev, name, columnIndex);
|
|
207
444
|
},
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
445
|
+
onFilterClick: onFilterClick
|
|
446
|
+
});
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
_defineProperty(_assertThisInitialized(_this), "simpleHeaderRenderer", function (_ref2) {
|
|
450
|
+
var label = _ref2.label;
|
|
451
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
213
452
|
ref: function ref(element) {
|
|
214
453
|
_this._registerHeader(label, element);
|
|
215
454
|
}
|
|
216
|
-
}, label)
|
|
455
|
+
}, label);
|
|
217
456
|
});
|
|
218
457
|
|
|
219
|
-
_defineProperty(_assertThisInitialized(_this), "getRowClassName", function (
|
|
458
|
+
_defineProperty(_assertThisInitialized(_this), "getRowClassName", function (_ref3) {
|
|
220
459
|
var _rowGetter, _rowGetter2, _clsx;
|
|
221
460
|
|
|
222
|
-
var index =
|
|
223
|
-
rowGetter =
|
|
224
|
-
var _this$
|
|
225
|
-
classes = _this$
|
|
226
|
-
onRowClick = _this$
|
|
461
|
+
var index = _ref3.index,
|
|
462
|
+
rowGetter = _ref3.rowGetter;
|
|
463
|
+
var _this$props = _this.props,
|
|
464
|
+
classes = _this$props.classes,
|
|
465
|
+
onRowClick = _this$props.onRowClick;
|
|
227
466
|
return (0, _clsx3["default"])(classes.tableRow, classes.flexContainer, index % 2 === 0 && classes.rowBackgroundDark, index % 2 !== 0 && classes.rowBackgroundLight, ((_rowGetter = rowGetter(index)) === null || _rowGetter === void 0 ? void 0 : _rowGetter.notClickable) === true && classes.noClick, (_clsx = {}, _clsx[classes.tableRowHover] = index !== -1 && onRowClick != null && !(((_rowGetter2 = rowGetter(index)) === null || _rowGetter2 === void 0 ? void 0 : _rowGetter2.notClickable) === true), _clsx));
|
|
228
467
|
});
|
|
229
468
|
|
|
@@ -235,22 +474,22 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
235
474
|
}
|
|
236
475
|
});
|
|
237
476
|
|
|
238
|
-
_defineProperty(_assertThisInitialized(_this), "cellRenderer", function (
|
|
477
|
+
_defineProperty(_assertThisInitialized(_this), "cellRenderer", function (_ref4) {
|
|
239
478
|
var _rows$rowIndex, _rows$rowIndex2, _clsx2;
|
|
240
479
|
|
|
241
|
-
var cellData =
|
|
242
|
-
columnIndex =
|
|
243
|
-
rowIndex =
|
|
244
|
-
var _this$
|
|
245
|
-
columns = _this$
|
|
246
|
-
classes = _this$
|
|
247
|
-
rowHeight = _this$
|
|
248
|
-
onCellClick = _this$
|
|
249
|
-
rows = _this$
|
|
480
|
+
var cellData = _ref4.cellData,
|
|
481
|
+
columnIndex = _ref4.columnIndex,
|
|
482
|
+
rowIndex = _ref4.rowIndex;
|
|
483
|
+
var _this$props2 = _this.props,
|
|
484
|
+
columns = _this$props2.columns,
|
|
485
|
+
classes = _this$props2.classes,
|
|
486
|
+
rowHeight = _this$props2.rowHeight,
|
|
487
|
+
onCellClick = _this$props2.onCellClick,
|
|
488
|
+
rows = _this$props2.rows;
|
|
250
489
|
|
|
251
490
|
var displayedValue = _this.getDisplayValue(columns[columnIndex], cellData);
|
|
252
491
|
|
|
253
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
492
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
|
|
254
493
|
component: "div",
|
|
255
494
|
className: (0, _clsx3["default"])(classes.tableCell, classes.flexContainer, (_clsx2 = {}, _clsx2[classes.noClick] = displayedValue === undefined || ((_rows$rowIndex = rows[rowIndex]) === null || _rows$rowIndex === void 0 ? void 0 : _rows$rowIndex.notClickable) === true || onCellClick == null || columns[columnIndex].clickable === undefined || !columns[columnIndex].clickable, _clsx2[classes.tableCellColor] = displayedValue === undefined || onCellClick !== null && !((_rows$rowIndex2 = rows[rowIndex]) === null || _rows$rowIndex2 === void 0 ? void 0 : _rows$rowIndex2.notClickable) === true && columns[columnIndex].clickable !== undefined && columns[columnIndex].clickable, _clsx2)),
|
|
256
495
|
variant: "body",
|
|
@@ -272,55 +511,81 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
272
511
|
}));
|
|
273
512
|
});
|
|
274
513
|
|
|
275
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
276
|
-
var
|
|
277
|
-
|
|
278
|
-
var _this$
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
514
|
+
_defineProperty(_assertThisInitialized(_this), "makeSizedTable", function (height, width, sizes, reorderedIndex, _rowGetter3) {
|
|
515
|
+
var _reorderedIndex$lengt;
|
|
516
|
+
|
|
517
|
+
var _this$props3 = _this.props,
|
|
518
|
+
sort = _this$props3.sort,
|
|
519
|
+
otherProps = _objectWithoutPropertiesLoose(_this$props3, _excluded);
|
|
520
|
+
|
|
521
|
+
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.Table, _extends({}, otherProps, {
|
|
522
|
+
height: height,
|
|
523
|
+
width: width,
|
|
524
|
+
rowHeight: otherProps.rowHeight,
|
|
525
|
+
gridStyle: {
|
|
526
|
+
direction: 'inherit'
|
|
287
527
|
},
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
528
|
+
headerHeight: _this.state.headerHeight,
|
|
529
|
+
className: otherProps.classes.table,
|
|
530
|
+
onRowClick: _this.props.onRowClick &&
|
|
531
|
+
/* The {...otherProps} just above would hold the slot onRowClick */
|
|
532
|
+
_this.onClickableRowClick,
|
|
533
|
+
rowCount: (_reorderedIndex$lengt = reorderedIndex === null || reorderedIndex === void 0 ? void 0 : reorderedIndex.length) !== null && _reorderedIndex$lengt !== void 0 ? _reorderedIndex$lengt : otherProps.rows.length,
|
|
534
|
+
rowClassName: function rowClassName(_ref5) {
|
|
535
|
+
var index = _ref5.index;
|
|
536
|
+
return _this.getRowClassName({
|
|
537
|
+
index: index,
|
|
538
|
+
rowGetter: _rowGetter3
|
|
539
|
+
});
|
|
540
|
+
},
|
|
541
|
+
rowGetter: function rowGetter(_ref6) {
|
|
542
|
+
var index = _ref6.index;
|
|
543
|
+
return _rowGetter3(index);
|
|
295
544
|
}
|
|
296
|
-
},
|
|
545
|
+
}), otherProps.columns.map(function (_ref7, index) {
|
|
546
|
+
var dataKey = _ref7.dataKey,
|
|
547
|
+
other = _objectWithoutPropertiesLoose(_ref7, _excluded2);
|
|
548
|
+
|
|
549
|
+
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.Column, _extends({
|
|
550
|
+
key: dataKey,
|
|
551
|
+
headerRenderer: _this.makeHeaderRenderer(dataKey, index),
|
|
552
|
+
className: otherProps.classes.flexContainer,
|
|
553
|
+
cellRenderer: _this.cellRenderer,
|
|
554
|
+
dataKey: dataKey,
|
|
555
|
+
flexGrow: 1,
|
|
556
|
+
width: sizes[dataKey]
|
|
557
|
+
}, other));
|
|
558
|
+
}));
|
|
297
559
|
});
|
|
298
560
|
|
|
299
561
|
_defineProperty(_assertThisInitialized(_this), "getCSVFilename", function () {
|
|
300
|
-
|
|
562
|
+
var _this$props$name;
|
|
563
|
+
|
|
564
|
+
if (((_this$props$name = _this.props.name) === null || _this$props$name === void 0 ? void 0 : _this$props$name.length) > 0) {
|
|
301
565
|
return _this.props.name.replace(/\s/g, '_');
|
|
302
566
|
} else {
|
|
303
|
-
var filename =
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
filename += col.label;
|
|
307
|
-
if (idx !== _this.props.columns.length - 1) filename += '_';
|
|
308
|
-
});
|
|
309
|
-
|
|
567
|
+
var filename = Object.entries(_this.props.columns).map(function (p) {
|
|
568
|
+
return p[1].label;
|
|
569
|
+
}).join('_');
|
|
310
570
|
return filename;
|
|
311
571
|
}
|
|
312
572
|
});
|
|
313
573
|
|
|
314
574
|
_defineProperty(_assertThisInitialized(_this), "getCSVData", function () {
|
|
315
|
-
var
|
|
575
|
+
var _reorderedIndex$viewI, _reorderedIndex$viewI2;
|
|
316
576
|
|
|
577
|
+
var reorderedIndex = _this.reorderIndex(_this.state.indirectionVersion, _this.props.rows, _this.props.columns);
|
|
578
|
+
|
|
579
|
+
var rowsCount = (_reorderedIndex$viewI = (_reorderedIndex$viewI2 = reorderedIndex.viewIndexToModel) === null || _reorderedIndex$viewI2 === void 0 ? void 0 : _reorderedIndex$viewI2.length) !== null && _reorderedIndex$viewI !== void 0 ? _reorderedIndex$viewI : _this.props.rows.length;
|
|
317
580
|
var csvData = [];
|
|
318
|
-
|
|
581
|
+
|
|
582
|
+
var _loop2 = function _loop2(index) {
|
|
319
583
|
var myobj = {};
|
|
320
|
-
var sortedRow =
|
|
584
|
+
var sortedRow = reorderedIndex.rowGetter(index);
|
|
585
|
+
var exportedKeys = _this.props.exportCSVDataKeys;
|
|
321
586
|
|
|
322
587
|
_this.props.columns.forEach(function (col) {
|
|
323
|
-
if (
|
|
588
|
+
if (exportedKeys === null || exportedKeys === void 0 ? void 0 : exportedKeys.find(function (el) {
|
|
324
589
|
return el === col.dataKey;
|
|
325
590
|
})) {
|
|
326
591
|
myobj[col.dataKey] = sortedRow[col.dataKey];
|
|
@@ -328,7 +593,12 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
328
593
|
});
|
|
329
594
|
|
|
330
595
|
csvData.push(myobj);
|
|
331
|
-
}
|
|
596
|
+
};
|
|
597
|
+
|
|
598
|
+
for (var index = 0; index < rowsCount; ++index) {
|
|
599
|
+
_loop2(index);
|
|
600
|
+
}
|
|
601
|
+
|
|
332
602
|
return Promise.resolve(csvData);
|
|
333
603
|
});
|
|
334
604
|
|
|
@@ -352,17 +622,43 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
352
622
|
_this._registerObserver = _this._registerObserver.bind(_assertThisInitialized(_this));
|
|
353
623
|
_this.headers = (0, _react.createRef)();
|
|
354
624
|
_this.headers.current = {};
|
|
355
|
-
var
|
|
625
|
+
var _options = {
|
|
356
626
|
root: null,
|
|
357
627
|
rootMargin: '0px',
|
|
358
628
|
threshold: 0.1
|
|
359
629
|
};
|
|
360
|
-
_this.observer = new IntersectionObserver(_this._computeHeaderSize,
|
|
630
|
+
_this.observer = new IntersectionObserver(_this._computeHeaderSize, _options);
|
|
631
|
+
_this.state = {
|
|
632
|
+
headerHeight: _this.props.headerHeight,
|
|
633
|
+
indexer: initIndexer(_props, null, _this.setVersion),
|
|
634
|
+
indirectionVersion: 0,
|
|
635
|
+
reorderIndex: null,
|
|
636
|
+
popoverAnchorEl: null,
|
|
637
|
+
popoverColKey: null,
|
|
638
|
+
deferredFilterChange: null
|
|
639
|
+
};
|
|
361
640
|
return _this;
|
|
362
641
|
}
|
|
363
642
|
|
|
364
643
|
var _proto = MuiVirtualizedTable.prototype;
|
|
365
644
|
|
|
645
|
+
_proto.componentDidUpdate = function componentDidUpdate(oldProps) {
|
|
646
|
+
if (oldProps.data !== this.props.data) {
|
|
647
|
+
this.setState({
|
|
648
|
+
indexer: initIndexer(this.props, oldProps)
|
|
649
|
+
});
|
|
650
|
+
}
|
|
651
|
+
};
|
|
652
|
+
|
|
653
|
+
_proto.componentDidMount = function componentDidMount() {
|
|
654
|
+
window.addEventListener('resize', this._computeHeaderSize);
|
|
655
|
+
};
|
|
656
|
+
|
|
657
|
+
_proto.componentWillUnmount = function componentWillUnmount() {
|
|
658
|
+
window.removeEventListener('resize', this._computeHeaderSize);
|
|
659
|
+
this.observer.disconnect();
|
|
660
|
+
};
|
|
661
|
+
|
|
366
662
|
_proto._registerHeader = function _registerHeader(label, header) {
|
|
367
663
|
if (header !== null) {
|
|
368
664
|
this.headers.current[label] = header;
|
|
@@ -375,21 +671,34 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
375
671
|
}
|
|
376
672
|
};
|
|
377
673
|
|
|
674
|
+
_proto.onFilterParamsChange = function onFilterParamsChange(newVal, colKey) {
|
|
675
|
+
var nonEmpty = newVal.length === 0 ? null : newVal;
|
|
676
|
+
|
|
677
|
+
if (this.props.defersFilterChanges) {
|
|
678
|
+
this.setState({
|
|
679
|
+
deferredFilterChange: {
|
|
680
|
+
newVal: newVal,
|
|
681
|
+
colKey: colKey
|
|
682
|
+
}
|
|
683
|
+
});
|
|
684
|
+
} else if (this.state.indexer.setColFilterUserParams(colKey, nonEmpty)) {
|
|
685
|
+
this.setState({
|
|
686
|
+
indirectionVersion: this.state.indirectionVersion + 1
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
};
|
|
690
|
+
|
|
378
691
|
_proto.getDisplayValue = function getDisplayValue(column, cellData) {
|
|
379
692
|
var displayedValue;
|
|
380
693
|
|
|
381
|
-
if (column.numeric) {
|
|
382
|
-
if (!isNaN(cellData)) {
|
|
383
|
-
if (column.fractionDigits !== undefined && column.fractionDigits !== 0) {
|
|
384
|
-
displayedValue = Number(cellData).toFixed(column.fractionDigits);
|
|
385
|
-
} else {
|
|
386
|
-
displayedValue = Math.round(cellData);
|
|
387
|
-
}
|
|
388
|
-
} else {
|
|
389
|
-
displayedValue = '';
|
|
390
|
-
}
|
|
391
|
-
} else {
|
|
694
|
+
if (!column.numeric) {
|
|
392
695
|
displayedValue = cellData;
|
|
696
|
+
} else if (isNaN(cellData)) {
|
|
697
|
+
displayedValue = '';
|
|
698
|
+
} else if (column.fractionDigits === undefined || column.fractionDigits === 0) {
|
|
699
|
+
displayedValue = Math.round(cellData);
|
|
700
|
+
} else {
|
|
701
|
+
displayedValue = Number(cellData).toFixed(column.fractionDigits);
|
|
393
702
|
}
|
|
394
703
|
|
|
395
704
|
if (column.unit !== undefined) {
|
|
@@ -401,17 +710,16 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
401
710
|
};
|
|
402
711
|
|
|
403
712
|
_proto._computeHeaderSize = function _computeHeaderSize() {
|
|
404
|
-
console.debug('recompute header size');
|
|
405
713
|
var headers = Object.values(this.headers.current);
|
|
406
|
-
if (headers.length === 0) return;
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
// without using a vertical scrollbar.
|
|
413
|
-
headerHeight = Math.max(h.scrollHeight + DEFAULT_CELL_PADDING, headerHeight);
|
|
714
|
+
if (headers.length === 0) return; // for now keep 'historical' use of scrollHeight,
|
|
715
|
+
// though it can not make a difference from clientHeight,
|
|
716
|
+
// as overflow-y as no scroll value
|
|
717
|
+
|
|
718
|
+
var scrollHeights = headers.map(function (header) {
|
|
719
|
+
return header.scrollHeight;
|
|
414
720
|
});
|
|
721
|
+
var headerHeight = Math.max(Math.max.apply(Math, scrollHeights) + DEFAULT_CELL_PADDING, this.props.headerHeight // hides (most often) padding override by forcing height
|
|
722
|
+
);
|
|
415
723
|
|
|
416
724
|
if (headerHeight !== this.state.headerHeight) {
|
|
417
725
|
this.setState({
|
|
@@ -420,45 +728,41 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
420
728
|
}
|
|
421
729
|
};
|
|
422
730
|
|
|
423
|
-
_proto.
|
|
424
|
-
|
|
425
|
-
};
|
|
731
|
+
_proto.makeHeaderRenderer = function makeHeaderRenderer(dataKey, columnIndex) {
|
|
732
|
+
var _this2 = this;
|
|
426
733
|
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
734
|
+
var _this$props4 = this.props,
|
|
735
|
+
columns = _this$props4.columns,
|
|
736
|
+
classes = _this$props4.classes;
|
|
737
|
+
return function (headerProps) {
|
|
738
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
|
|
739
|
+
component: "div",
|
|
740
|
+
className: (0, _clsx3["default"])(classes.tableCell, classes.flexContainer, classes.noClick, classes.header),
|
|
741
|
+
variant: "head",
|
|
742
|
+
style: {
|
|
743
|
+
height: _this2.state.headerHeight
|
|
744
|
+
},
|
|
745
|
+
align: columns[columnIndex].numeric || false ? 'right' : 'left',
|
|
746
|
+
ref: function ref(e) {
|
|
747
|
+
return _this2._registerObserver(e);
|
|
748
|
+
}
|
|
749
|
+
}, _this2.props.sortable ? _this2.sortableHeader(_extends({}, headerProps, {
|
|
750
|
+
columnIndex: columnIndex,
|
|
751
|
+
key: {
|
|
752
|
+
dataKey: dataKey
|
|
753
|
+
}
|
|
754
|
+
})) : _this2.simpleHeaderRenderer(_extends({}, headerProps)));
|
|
755
|
+
};
|
|
430
756
|
};
|
|
431
757
|
|
|
432
758
|
_proto.render = function render() {
|
|
433
|
-
var
|
|
434
|
-
|
|
435
|
-
var _this$props5 = this.props,
|
|
436
|
-
name = _this$props5.name,
|
|
437
|
-
classes = _this$props5.classes,
|
|
438
|
-
rows = _this$props5.rows,
|
|
439
|
-
columns = _this$props5.columns,
|
|
440
|
-
rowHeight = _this$props5.rowHeight,
|
|
441
|
-
headerHeight = _this$props5.headerHeight,
|
|
442
|
-
rowCount = _this$props5.rowCount,
|
|
443
|
-
sortable = _this$props5.sortable,
|
|
444
|
-
enableExportCSV = _this$props5.enableExportCSV,
|
|
445
|
-
tableProps = _objectWithoutPropertiesLoose(_this$props5, _excluded);
|
|
446
|
-
|
|
447
|
-
if (tableProps.onRowClick) {
|
|
448
|
-
tableProps.onRowClick = this.onClickableRowClick;
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
var reorderedIndex = this.reorderIndex(this.state.key, this.state.direction, this.props.filter, this.props.rows);
|
|
759
|
+
var _this3 = this;
|
|
452
760
|
|
|
453
|
-
var
|
|
454
|
-
|
|
455
|
-
|
|
761
|
+
var _this$reorderIndex = this.reorderIndex(this.state.indirectionVersion, this.props.rows, this.props.columns),
|
|
762
|
+
viewIndexToModel = _this$reorderIndex.viewIndexToModel,
|
|
763
|
+
rowGetter = _this$reorderIndex.rowGetter;
|
|
456
764
|
|
|
457
|
-
var
|
|
458
|
-
return _this2.props.rows[getIndexFor(index)];
|
|
459
|
-
};
|
|
460
|
-
|
|
461
|
-
var sizes = this.sizes(this.props.columns, this.props.rows, _rowGetter3);
|
|
765
|
+
var sizes = this.sizes(this.props.columns, this.props.rows, rowGetter);
|
|
462
766
|
var csvHeaders = this.csvHeaders(this.props.columns, this.props.exportCSVDataKeys);
|
|
463
767
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
464
768
|
style: {
|
|
@@ -466,7 +770,7 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
466
770
|
flexDirection: 'column',
|
|
467
771
|
height: '100%'
|
|
468
772
|
}
|
|
469
|
-
}, enableExportCSV && /*#__PURE__*/_react["default"].createElement("div", {
|
|
773
|
+
}, this.props.enableExportCSV && /*#__PURE__*/_react["default"].createElement("div", {
|
|
470
774
|
style: {
|
|
471
775
|
display: 'flex',
|
|
472
776
|
justifyContent: 'flex-end',
|
|
@@ -478,67 +782,30 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
478
782
|
datas: this.getCSVData,
|
|
479
783
|
columns: csvHeaders,
|
|
480
784
|
filename: this.getCSVFilename()
|
|
481
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
785
|
+
}, /*#__PURE__*/_react["default"].createElement(_material.IconButton, {
|
|
482
786
|
"aria-label": "exportCSVButton",
|
|
483
787
|
size: "large"
|
|
484
788
|
}, /*#__PURE__*/_react["default"].createElement(_GetApp["default"], null)))), /*#__PURE__*/_react["default"].createElement("div", {
|
|
485
789
|
style: {
|
|
486
790
|
flexGrow: 1
|
|
487
791
|
}
|
|
488
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (
|
|
489
|
-
var height =
|
|
490
|
-
width =
|
|
491
|
-
return
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
index: index,
|
|
506
|
-
rowGetter: _rowGetter3
|
|
507
|
-
});
|
|
508
|
-
},
|
|
509
|
-
rowGetter: function rowGetter(_ref7) {
|
|
510
|
-
var index = _ref7.index;
|
|
511
|
-
return _rowGetter3(index);
|
|
512
|
-
}
|
|
513
|
-
}), columns.map(function (_ref8, index) {
|
|
514
|
-
var dataKey = _ref8.dataKey,
|
|
515
|
-
other = _objectWithoutPropertiesLoose(_ref8, _excluded2);
|
|
516
|
-
|
|
517
|
-
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.Column, _extends({
|
|
518
|
-
key: dataKey,
|
|
519
|
-
headerRenderer: function headerRenderer(headerProps) {
|
|
520
|
-
if (sortable) {
|
|
521
|
-
return _this2.sortableHeader(_extends({}, headerProps, {
|
|
522
|
-
width: sizes[dataKey],
|
|
523
|
-
columnIndex: index,
|
|
524
|
-
key: {
|
|
525
|
-
dataKey: dataKey
|
|
526
|
-
}
|
|
527
|
-
}));
|
|
528
|
-
} else {
|
|
529
|
-
return _this2.headerRenderer(_extends({}, headerProps, {
|
|
530
|
-
columnIndex: index
|
|
531
|
-
}));
|
|
532
|
-
}
|
|
533
|
-
},
|
|
534
|
-
className: classes.flexContainer,
|
|
535
|
-
cellRenderer: _this2.cellRenderer,
|
|
536
|
-
dataKey: dataKey,
|
|
537
|
-
flexGrow: 1,
|
|
538
|
-
width: sizes[dataKey]
|
|
539
|
-
}, other));
|
|
540
|
-
}));
|
|
541
|
-
})));
|
|
792
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (_ref8) {
|
|
793
|
+
var height = _ref8.height,
|
|
794
|
+
width = _ref8.width;
|
|
795
|
+
return _this3.makeSizedTable(height, width, sizes, viewIndexToModel, rowGetter);
|
|
796
|
+
})), this.state.popoverAnchorEl && /*#__PURE__*/_react["default"].createElement(_material.Popover, {
|
|
797
|
+
anchorEl: this.state.popoverAnchorEl,
|
|
798
|
+
anchorOrigin: {
|
|
799
|
+
vertical: 'center',
|
|
800
|
+
horizontal: 'center'
|
|
801
|
+
},
|
|
802
|
+
transformOrigin: {
|
|
803
|
+
vertical: 'center',
|
|
804
|
+
horizontal: 'center'
|
|
805
|
+
},
|
|
806
|
+
onClose: this.closePopover,
|
|
807
|
+
open: !!this.state.popoverAnchorEl
|
|
808
|
+
}, this.makeColumnFilterEditor()));
|
|
542
809
|
};
|
|
543
810
|
|
|
544
811
|
return MuiVirtualizedTable;
|
|
@@ -566,13 +833,14 @@ MuiVirtualizedTable.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
566
833
|
})).isRequired,
|
|
567
834
|
enableExportCSV: _propTypes["default"].bool,
|
|
568
835
|
exportCSVDataKeys: _propTypes["default"].array,
|
|
836
|
+
sort: _propTypes["default"].func,
|
|
569
837
|
sortable: _propTypes["default"].bool,
|
|
838
|
+
indexer: _propTypes["default"].object,
|
|
570
839
|
headerHeight: _propTypes["default"].number,
|
|
571
840
|
onRowClick: _propTypes["default"].func,
|
|
572
841
|
onCellClick: _propTypes["default"].func,
|
|
573
842
|
rowHeight: _propTypes["default"].number,
|
|
574
|
-
filter: _propTypes["default"].func
|
|
575
|
-
sort: _propTypes["default"].func
|
|
843
|
+
filter: _propTypes["default"].func
|
|
576
844
|
} : {};
|
|
577
845
|
|
|
578
846
|
var _default = (0, _withStyles["default"])(defaultStyles)(MuiVirtualizedTable);
|