@gridsuite/commons-ui 0.30.0 → 0.31.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/lib/components/MuiVirtualizedTable/ColumnHeader.js +9 -2
- package/lib/components/MuiVirtualizedTable/KeyedColumnsRowIndexer.js +43 -35
- package/lib/components/MuiVirtualizedTable/MuiVirtualizedTable.js +199 -161
- package/lib/index.js +1 -3
- package/lib/utils/AuthService.js +23 -1
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports["default"] = exports.ColumnHeader = void 0;
|
|
5
5
|
|
|
6
|
-
var _react =
|
|
6
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
7
7
|
|
|
8
8
|
var _clsx = _interopRequireDefault(require("clsx"));
|
|
9
9
|
|
|
@@ -17,6 +17,10 @@ var _ArrowDownward = _interopRequireDefault(require("@mui/icons-material/ArrowDo
|
|
|
17
17
|
|
|
18
18
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
19
19
|
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
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; }
|
|
23
|
+
|
|
20
24
|
/**
|
|
21
25
|
* Copyright (c) 2022, RTE (http://www.rte-france.com)
|
|
22
26
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
@@ -110,14 +114,17 @@ var ColumnHeader = _react["default"].forwardRef(function (props, ref) {
|
|
|
110
114
|
setHovered(evt.type === 'mouseenter');
|
|
111
115
|
}, []);
|
|
112
116
|
|
|
117
|
+
var topmostDiv = (0, _react.useRef)();
|
|
118
|
+
|
|
113
119
|
var handleFilterClick = _react["default"].useMemo(function () {
|
|
114
120
|
if (!onFilterClick) return undefined;
|
|
115
121
|
return function (evt) {
|
|
116
|
-
onFilterClick(evt,
|
|
122
|
+
onFilterClick(evt, topmostDiv.current);
|
|
117
123
|
};
|
|
118
124
|
}, [onFilterClick]);
|
|
119
125
|
|
|
120
126
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
127
|
+
ref: topmostDiv,
|
|
121
128
|
onMouseEnter: onHover,
|
|
122
129
|
onMouseLeave: onHover,
|
|
123
130
|
className: (0, _clsx["default"])(classes.divFlex, numeric && classes.divNum, className),
|
|
@@ -23,7 +23,7 @@ var CHANGE_WAYS = {
|
|
|
23
23
|
AMEND: 'Amend',
|
|
24
24
|
REMOVE: 'Remove'
|
|
25
25
|
};
|
|
26
|
-
/*
|
|
26
|
+
/* This is not real code commented
|
|
27
27
|
const someTypicalColumns = [
|
|
28
28
|
{ label: 'strings column', dataKey: 'key1' },
|
|
29
29
|
{
|
|
@@ -182,18 +182,20 @@ var KeyedColumnsRowIndexer = /*#__PURE__*/function () {
|
|
|
182
182
|
_this._bumpVersion();
|
|
183
183
|
});
|
|
184
184
|
|
|
185
|
-
_defineProperty(this, "preFilterRowMapping", function (columns, rows) {
|
|
185
|
+
_defineProperty(this, "preFilterRowMapping", function (columns, rows, rowFilter) {
|
|
186
186
|
if (!(rows === null || rows === void 0 ? void 0 : rows.length) || !(columns === null || columns === void 0 ? void 0 : columns.length)) return null;
|
|
187
187
|
var ri = [];
|
|
188
188
|
var cs = {};
|
|
189
189
|
|
|
190
|
-
for (var
|
|
191
|
-
var
|
|
192
|
-
|
|
193
|
-
var
|
|
190
|
+
for (var _iterator = _createForOfIteratorHelperLoose(columns), _step; !(_step = _iterator()).done;) {
|
|
191
|
+
var _col2 = _step.value;
|
|
192
|
+
|
|
193
|
+
var _helper2 = getHelper(_col2);
|
|
194
|
+
|
|
195
|
+
var colStat = _helper2.initStat();
|
|
194
196
|
|
|
195
197
|
if (colStat) {
|
|
196
|
-
cs[
|
|
198
|
+
cs[_col2.dataKey] = colStat;
|
|
197
199
|
}
|
|
198
200
|
}
|
|
199
201
|
|
|
@@ -202,18 +204,14 @@ var KeyedColumnsRowIndexer = /*#__PURE__*/function () {
|
|
|
202
204
|
var acceptsRow = true;
|
|
203
205
|
var acceptedOnRow = {};
|
|
204
206
|
|
|
205
|
-
for (var
|
|
207
|
+
for (var colIdx = 0; colIdx < columns.length; colIdx++) {
|
|
206
208
|
var _this$byColFilter;
|
|
207
209
|
|
|
208
|
-
var
|
|
209
|
-
|
|
210
|
-
var
|
|
211
|
-
|
|
212
|
-
var colKey = _col.dataKey;
|
|
210
|
+
var col = columns[colIdx];
|
|
211
|
+
var helper = getHelper(col);
|
|
212
|
+
var colKey = col.dataKey;
|
|
213
213
|
var cellValue = row[colKey];
|
|
214
|
-
|
|
215
|
-
_helper.updateStat(cs[colKey], cellValue, false);
|
|
216
|
-
|
|
214
|
+
helper.updateStat(cs[colKey], cellValue, false);
|
|
217
215
|
var colFilterParams = (_this$byColFilter = _this.byColFilter) === null || _this$byColFilter === void 0 ? void 0 : _this$byColFilter[colKey];
|
|
218
216
|
var acceptsCell = true;
|
|
219
217
|
|
|
@@ -221,18 +219,22 @@ var KeyedColumnsRowIndexer = /*#__PURE__*/function () {
|
|
|
221
219
|
var up = colFilterParams.userParams;
|
|
222
220
|
var op = colFilterParams.outerParams;
|
|
223
221
|
|
|
224
|
-
if (!
|
|
222
|
+
if (!helper.accepts(cellValue, up, op)) {
|
|
225
223
|
acceptsCell = false;
|
|
226
224
|
}
|
|
227
225
|
}
|
|
228
226
|
|
|
229
|
-
if (
|
|
230
|
-
acceptedOnRow[
|
|
227
|
+
if (helper.maintainsStats && acceptsCell) {
|
|
228
|
+
acceptedOnRow[colIdx] = cellValue;
|
|
231
229
|
}
|
|
232
230
|
|
|
233
231
|
acceptsRow &= acceptsCell;
|
|
234
232
|
}
|
|
235
233
|
|
|
234
|
+
if (acceptsRow && rowFilter) {
|
|
235
|
+
acceptsRow = rowFilter(row);
|
|
236
|
+
}
|
|
237
|
+
|
|
236
238
|
if (acceptsRow && _this.byRowFilter) {
|
|
237
239
|
acceptsRow = _this.byRowFilter(row);
|
|
238
240
|
}
|
|
@@ -242,11 +244,11 @@ var KeyedColumnsRowIndexer = /*#__PURE__*/function () {
|
|
|
242
244
|
var _Object$entries$_i = _Object$entries[_i],
|
|
243
245
|
idx = _Object$entries$_i[0],
|
|
244
246
|
value = _Object$entries$_i[1];
|
|
245
|
-
var
|
|
247
|
+
var _col = columns[idx];
|
|
246
248
|
|
|
247
|
-
var
|
|
249
|
+
var _helper = getHelper(_col);
|
|
248
250
|
|
|
249
|
-
|
|
251
|
+
_helper.updateStat(cs[_col.dataKey], value, true);
|
|
250
252
|
}
|
|
251
253
|
|
|
252
254
|
ri.push([row, rowIdx]);
|
|
@@ -493,7 +495,6 @@ var KeyedColumnsRowIndexer = /*#__PURE__*/function () {
|
|
|
493
495
|
_this._bumpVersion();
|
|
494
496
|
});
|
|
495
497
|
|
|
496
|
-
console.debug('KeyedColumnsRowIndexer');
|
|
497
498
|
this._versionSetter = versionSetter;
|
|
498
499
|
this.version = 0;
|
|
499
500
|
this.filterVersion = 0;
|
|
@@ -546,14 +547,14 @@ var codedColumnsFromKeyAndDirection = function codedColumnsFromKeyAndDirection(k
|
|
|
546
547
|
columIndexByKey[colKey] = colIdx;
|
|
547
548
|
}
|
|
548
549
|
|
|
549
|
-
for (var
|
|
550
|
-
var knd =
|
|
550
|
+
for (var _iterator2 = _createForOfIteratorHelperLoose(keyAndDirections), _step2; !(_step2 = _iterator2()).done;) {
|
|
551
|
+
var knd = _step2.value;
|
|
551
552
|
var _colKey = knd[0];
|
|
552
553
|
var dir = knd[1];
|
|
553
|
-
var
|
|
554
|
-
if (
|
|
554
|
+
var _colIdx = columIndexByKey[_colKey];
|
|
555
|
+
if (_colIdx === undefined) continue;
|
|
555
556
|
var sign = giveDirSignFor(dir);
|
|
556
|
-
ret.push((
|
|
557
|
+
ret.push((_colIdx + 1) * sign);
|
|
557
558
|
}
|
|
558
559
|
|
|
559
560
|
return ret;
|
|
@@ -565,7 +566,14 @@ var compareValue = function compareValue(a, b, isNumeric, undefSign) {
|
|
|
565
566
|
}
|
|
566
567
|
|
|
567
568
|
if (a === undefined && b === undefined) return 0;else if (a === undefined) return undefSign;else if (b === undefined) return -undefSign;
|
|
568
|
-
|
|
569
|
+
|
|
570
|
+
if (!isNumeric) {
|
|
571
|
+
return ('' + a).localeCompare(b);
|
|
572
|
+
} else {
|
|
573
|
+
if (isNaN(a)) return isNaN(b) ? 0 : 1;
|
|
574
|
+
if (isNaN(b)) return -1;
|
|
575
|
+
return Math.sign(Number(a) - Number(b));
|
|
576
|
+
}
|
|
569
577
|
};
|
|
570
578
|
|
|
571
579
|
var makeCompositeComparatorFromCodedColumns = function makeCompositeComparatorFromCodedColumns(codedColumns, columns, rowExtractor) {
|
|
@@ -573,8 +581,8 @@ var makeCompositeComparatorFromCodedColumns = function makeCompositeComparatorFr
|
|
|
573
581
|
var row_a = rowExtractor(row_a_i);
|
|
574
582
|
var row_b = rowExtractor(row_b_i);
|
|
575
583
|
|
|
576
|
-
for (var
|
|
577
|
-
var cc =
|
|
584
|
+
for (var _iterator3 = _createForOfIteratorHelperLoose(codedColumns), _step3; !(_step3 = _iterator3()).done;) {
|
|
585
|
+
var cc = _step3.value;
|
|
578
586
|
var i = Math.abs(cc) - 1;
|
|
579
587
|
var mul = Math.sign(cc);
|
|
580
588
|
var col = columns[i];
|
|
@@ -602,8 +610,8 @@ var groupRows = function groupRows(groupingColumnsCount, columns, indexedArray)
|
|
|
602
610
|
var inBuildGroup = [];
|
|
603
611
|
groups.push(inBuildGroup);
|
|
604
612
|
|
|
605
|
-
for (var
|
|
606
|
-
var p =
|
|
613
|
+
for (var _iterator4 = _createForOfIteratorHelperLoose(indexedArray), _step4; !(_step4 = _iterator4()).done;) {
|
|
614
|
+
var p = _step4.value;
|
|
607
615
|
var nextSlice = p[0].slice(0, groupingColumnsCount);
|
|
608
616
|
|
|
609
617
|
if (prevSlice === null || !(0, _algos.equalsArray)(prevSlice, nextSlice)) {
|
|
@@ -647,10 +655,10 @@ var groupAndSort = function groupAndSort(preFilteredRowPairs, codedColumns, grou
|
|
|
647
655
|
});
|
|
648
656
|
indexedArray = [];
|
|
649
657
|
|
|
650
|
-
for (var
|
|
658
|
+
for (var _iterator5 = _createForOfIteratorHelperLoose(groups), _step5; !(_step5 = _iterator5()).done;) {
|
|
651
659
|
var _indexedArray;
|
|
652
660
|
|
|
653
|
-
var group =
|
|
661
|
+
var group = _step5.value;
|
|
654
662
|
group.sort(intraGroupSortingComparator);
|
|
655
663
|
|
|
656
664
|
(_indexedArray = indexedArray).push.apply(_indexedArray, group);
|
|
@@ -112,19 +112,26 @@ var AmongChooser = function AmongChooser(props) {
|
|
|
112
112
|
var options = props.options,
|
|
113
113
|
value = props.value,
|
|
114
114
|
setValue = props.setValue,
|
|
115
|
-
id = props.id
|
|
116
|
-
|
|
115
|
+
id = props.id,
|
|
116
|
+
onDropDownVisibility = props.onDropDownVisibility;
|
|
117
|
+
return /*#__PURE__*/_react["default"].createElement("span", null, /*#__PURE__*/_react["default"].createElement(_material.Autocomplete, {
|
|
117
118
|
id: id,
|
|
118
119
|
value: value !== null && value !== void 0 ? value : [],
|
|
119
120
|
multiple: true,
|
|
120
121
|
onChange: function onChange(evt, newVal) {
|
|
121
122
|
setValue(newVal);
|
|
122
123
|
},
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
onClose: function onClose() {
|
|
125
|
+
return onDropDownVisibility(false);
|
|
126
|
+
},
|
|
127
|
+
onOpen: function onOpen() {
|
|
128
|
+
return onDropDownVisibility(true);
|
|
129
|
+
},
|
|
130
|
+
options: options,
|
|
125
131
|
renderInput: function renderInput(props) {
|
|
126
|
-
return /*#__PURE__*/_react["default"].createElement(_material.TextField
|
|
127
|
-
|
|
132
|
+
return /*#__PURE__*/_react["default"].createElement(_material.TextField, _extends({
|
|
133
|
+
autoFocus: true
|
|
134
|
+
}, props));
|
|
128
135
|
},
|
|
129
136
|
renderTags: function renderTags(val, getTagsProps) {
|
|
130
137
|
return val.map(function (code, index) {
|
|
@@ -140,6 +147,22 @@ var AmongChooser = function AmongChooser(props) {
|
|
|
140
147
|
}));
|
|
141
148
|
};
|
|
142
149
|
|
|
150
|
+
function makeIndexRecord(viewIndexToModel, rows) {
|
|
151
|
+
return {
|
|
152
|
+
viewIndexToModel: viewIndexToModel,
|
|
153
|
+
rowGetter: !viewIndexToModel ? function (viewIndex) {
|
|
154
|
+
return rows[viewIndex];
|
|
155
|
+
} : function (viewIndex) {
|
|
156
|
+
if (viewIndex >= viewIndexToModel.length || viewIndex < 0) {
|
|
157
|
+
return {};
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
var modelIndex = viewIndexToModel[viewIndex];
|
|
161
|
+
return rows[modelIndex];
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
|
|
143
166
|
var initIndexer = function initIndexer(props, oldProps, versionSetter) {
|
|
144
167
|
if (!props.sortable) {
|
|
145
168
|
return null;
|
|
@@ -147,29 +170,75 @@ var initIndexer = function initIndexer(props, oldProps, versionSetter) {
|
|
|
147
170
|
|
|
148
171
|
if (props.indexer) {
|
|
149
172
|
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
173
|
}
|
|
162
174
|
|
|
163
175
|
return new _KeyedColumnsRowIndexer.KeyedColumnsRowIndexer(true, true, null, versionSetter);
|
|
164
176
|
};
|
|
165
177
|
|
|
178
|
+
var preFilterData = (0, _memoizeOne["default"])(function (columns, rows, filterFromProps, indexer, filterVersion // filterVersion is unused directly, used only as a workaround just to reset the memoization
|
|
179
|
+
) {
|
|
180
|
+
return indexer.preFilterRowMapping(columns, rows, filterFromProps);
|
|
181
|
+
});
|
|
182
|
+
var reorderIndex = (0, _memoizeOne["default"])(function (indexer, indirectionVersion, rows, columns, filterFromProps, sortFromProps) {
|
|
183
|
+
if (!rows) return {
|
|
184
|
+
viewIndexToModel: [],
|
|
185
|
+
rowGetter: function rowGetter(viewIndex) {
|
|
186
|
+
return viewIndex;
|
|
187
|
+
}
|
|
188
|
+
};
|
|
189
|
+
var highestCodedColumn = !indexer ? 0 : indexer.highestCodedColumn(columns);
|
|
190
|
+
|
|
191
|
+
if (sortFromProps && highestCodedColumn) {
|
|
192
|
+
var colIdx = Math.abs(highestCodedColumn) - 1;
|
|
193
|
+
var reorderedIndex = sortFromProps(columns[colIdx].dataKey, highestCodedColumn > 0, !!columns[colIdx].numeric);
|
|
194
|
+
return makeIndexRecord(reorderedIndex, rows);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (sortFromProps) {
|
|
198
|
+
try {
|
|
199
|
+
var viewIndexToModel = sortFromProps(null, false, false);
|
|
200
|
+
return makeIndexRecord(viewIndexToModel, rows);
|
|
201
|
+
} catch (e) {
|
|
202
|
+
//some external sort functions may expect to only be called
|
|
203
|
+
//when the user has select a column. Catch their errors and ignore
|
|
204
|
+
console.warn('error in external sort. consider adding support for datakey=null in your external sort function');
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
if (indexer) {
|
|
209
|
+
var prefiltered = preFilterData(columns, rows, filterFromProps, indexer, indirectionVersion);
|
|
210
|
+
|
|
211
|
+
var _reorderedIndex = indexer.makeGroupAndSortIndirector(prefiltered, columns);
|
|
212
|
+
|
|
213
|
+
return makeIndexRecord(_reorderedIndex, rows);
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
if (filterFromProps) {
|
|
217
|
+
var _viewIndexToModel = rows.map(function (r, i) {
|
|
218
|
+
return [r, i];
|
|
219
|
+
}).filter(function (_ref) {
|
|
220
|
+
var r = _ref[0],
|
|
221
|
+
idx = _ref[1];
|
|
222
|
+
return filterFromProps(r);
|
|
223
|
+
}).map(function (_ref2) {
|
|
224
|
+
var r = _ref2[0],
|
|
225
|
+
j = _ref2[1];
|
|
226
|
+
return j;
|
|
227
|
+
});
|
|
228
|
+
|
|
229
|
+
return makeIndexRecord(_viewIndexToModel, rows);
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return makeIndexRecord(null, rows);
|
|
233
|
+
});
|
|
234
|
+
|
|
166
235
|
var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
167
236
|
_inheritsLoose(MuiVirtualizedTable, _React$PureComponent);
|
|
168
237
|
|
|
169
|
-
function MuiVirtualizedTable(
|
|
238
|
+
function MuiVirtualizedTable(props, context) {
|
|
170
239
|
var _this;
|
|
171
240
|
|
|
172
|
-
_this = _React$PureComponent.call(this,
|
|
241
|
+
_this = _React$PureComponent.call(this, props, context) || this;
|
|
173
242
|
|
|
174
243
|
_defineProperty(_assertThisInitialized(_this), "setVersion", function (v) {
|
|
175
244
|
_this.setState({
|
|
@@ -177,65 +246,6 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
177
246
|
});
|
|
178
247
|
});
|
|
179
248
|
|
|
180
|
-
_defineProperty(_assertThisInitialized(_this), "preFilterData", (0, _memoizeOne["default"])(function (columns, rows) {
|
|
181
|
-
return _this.state.indexer.preFilterRowMapping(columns, rows);
|
|
182
|
-
}));
|
|
183
|
-
|
|
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);
|
|
214
|
-
|
|
215
|
-
var reorderedIndex = indexer.makeGroupAndSortIndirector(prefiltered, columns);
|
|
216
|
-
return {
|
|
217
|
-
viewIndexToModel: reorderedIndex,
|
|
218
|
-
rowGetter: function rowGetter(viewIndex) {
|
|
219
|
-
if (reorderedIndex === null) return rows[viewIndex];
|
|
220
|
-
|
|
221
|
-
if (viewIndex >= reorderedIndex.length || viewIndex < 0) {
|
|
222
|
-
return {};
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
var modelIndex = reorderedIndex[viewIndex];
|
|
226
|
-
return rows[modelIndex];
|
|
227
|
-
}
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
return {
|
|
232
|
-
viewIndexToModel: null,
|
|
233
|
-
rowGetter: function rowGetter(viewIndex) {
|
|
234
|
-
return rows[viewIndex];
|
|
235
|
-
}
|
|
236
|
-
};
|
|
237
|
-
}));
|
|
238
|
-
|
|
239
249
|
_defineProperty(_assertThisInitialized(_this), "computeDataWidth", function (text) {
|
|
240
250
|
return getTextWidth(text || '') + 2 * DEFAULT_CELL_PADDING;
|
|
241
251
|
});
|
|
@@ -268,10 +278,6 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
268
278
|
}));
|
|
269
279
|
|
|
270
280
|
_defineProperty(_assertThisInitialized(_this), "openPopover", function (popoverTarget, colKey) {
|
|
271
|
-
if (_this.state.indexer.delegatorCallback) {
|
|
272
|
-
return; // retro compatibility stops here ;-)
|
|
273
|
-
}
|
|
274
|
-
|
|
275
281
|
var col = _this.props.columns.find(function (c) {
|
|
276
282
|
return c.dataKey === colKey;
|
|
277
283
|
});
|
|
@@ -280,24 +286,34 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
280
286
|
return;
|
|
281
287
|
}
|
|
282
288
|
|
|
289
|
+
_this.dropDownVisible = false;
|
|
290
|
+
|
|
283
291
|
_this.setState({
|
|
284
292
|
popoverAnchorEl: popoverTarget,
|
|
285
293
|
popoverColKey: colKey
|
|
286
294
|
});
|
|
287
295
|
});
|
|
288
296
|
|
|
297
|
+
_defineProperty(_assertThisInitialized(_this), "handleKeyDownOnPopover", function (evt) {
|
|
298
|
+
if (evt.key === 'Enter' && !_this.dropDownVisible) {
|
|
299
|
+
_this.closePopover(evt, 'enterKeyDown');
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
|
|
289
303
|
_defineProperty(_assertThisInitialized(_this), "closePopover", function (evt, reason) {
|
|
290
304
|
var bumpsVersion = false;
|
|
291
305
|
|
|
292
|
-
if (reason === 'backdropClick') {
|
|
306
|
+
if (reason === 'backdropClick' || reason === 'enterKeyDown') {
|
|
293
307
|
bumpsVersion = _this._commitFilterChange();
|
|
294
308
|
}
|
|
295
309
|
|
|
296
|
-
_this.setState({
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
310
|
+
_this.setState(function (state, props) {
|
|
311
|
+
return {
|
|
312
|
+
popoverAnchorEl: null,
|
|
313
|
+
popoverColKey: null,
|
|
314
|
+
deferredFilterChange: null,
|
|
315
|
+
indirectionVersion: state.indirectionVersion + (bumpsVersion ? 1 : 0)
|
|
316
|
+
};
|
|
301
317
|
});
|
|
302
318
|
});
|
|
303
319
|
|
|
@@ -309,9 +325,7 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
309
325
|
var outerParams = _this.state.indexer.getColFilterOuterParams(colKey);
|
|
310
326
|
|
|
311
327
|
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
|
-
|
|
328
|
+
var prefiltered = preFilterData(_this.props.columns, _this.props.rows, _this.props.filter, _this.state.indexer, _this.state.indirectionVersion);
|
|
315
329
|
var options = [];
|
|
316
330
|
|
|
317
331
|
if (outerParams) {
|
|
@@ -336,6 +350,8 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
336
350
|
}
|
|
337
351
|
}
|
|
338
352
|
|
|
353
|
+
options.sort();
|
|
354
|
+
|
|
339
355
|
var col = _this.props.columns.find(function (c) {
|
|
340
356
|
return c.dataKey === colKey;
|
|
341
357
|
});
|
|
@@ -344,9 +360,13 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
344
360
|
options: options,
|
|
345
361
|
value: userParams,
|
|
346
362
|
id: 'fielt' + colKey,
|
|
347
|
-
label: (_col$label = col === null || col === void 0 ? void 0 : col.label) !== null && _col$label !== void 0 ? _col$label : "\u2208"
|
|
363
|
+
label: (_col$label = col === null || col === void 0 ? void 0 : col.label) !== null && _col$label !== void 0 ? _col$label : "\u2208" // "contained in" math symbol
|
|
364
|
+
,
|
|
348
365
|
setValue: function setValue(newVal) {
|
|
349
366
|
_this.onFilterParamsChange(newVal, colKey);
|
|
367
|
+
},
|
|
368
|
+
onDropDownVisibility: function onDropDownVisibility(visible) {
|
|
369
|
+
return _this.dropDownVisible = visible;
|
|
350
370
|
}
|
|
351
371
|
});
|
|
352
372
|
});
|
|
@@ -396,28 +416,28 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
396
416
|
}
|
|
397
417
|
});
|
|
398
418
|
|
|
399
|
-
_defineProperty(_assertThisInitialized(_this), "filterClickHandler", function (evt,
|
|
419
|
+
_defineProperty(_assertThisInitialized(_this), "filterClickHandler", function (evt, target, columnIndex) {
|
|
420
|
+
var _target$parentNode;
|
|
421
|
+
|
|
422
|
+
// ColumnHeader to (header) TableCell
|
|
423
|
+
var retargeted = (_target$parentNode = target.parentNode) !== null && _target$parentNode !== void 0 ? _target$parentNode : target;
|
|
400
424
|
var colKey = _this.props.columns[columnIndex].dataKey;
|
|
401
425
|
|
|
402
426
|
_this.openPopover(retargeted, colKey);
|
|
403
427
|
});
|
|
404
428
|
|
|
405
|
-
_defineProperty(_assertThisInitialized(_this), "sortableHeader", function (
|
|
429
|
+
_defineProperty(_assertThisInitialized(_this), "sortableHeader", function (_ref3) {
|
|
406
430
|
var _prefiltered$colsStat2;
|
|
407
431
|
|
|
408
|
-
var label =
|
|
409
|
-
columnIndex =
|
|
410
|
-
var
|
|
411
|
-
columns = _this$props.columns,
|
|
412
|
-
classes = _this$props.classes;
|
|
432
|
+
var label = _ref3.label,
|
|
433
|
+
columnIndex = _ref3.columnIndex;
|
|
434
|
+
var columns = _this.props.columns;
|
|
413
435
|
var indexer = _this.state.indexer;
|
|
414
436
|
var colKey = columns[columnIndex].dataKey;
|
|
415
437
|
var signedRank = indexer.columnSortingSignedRank(colKey);
|
|
416
438
|
var userParams = indexer.getColFilterUserParams(colKey);
|
|
417
439
|
var numeric = columns[columnIndex].numeric;
|
|
418
|
-
|
|
419
|
-
var prefiltered = _this.preFilterData(columns, _this.props.rows);
|
|
420
|
-
|
|
440
|
+
var prefiltered = preFilterData(columns, _this.props.rows, _this.props.filter, indexer, indexer.filterVersion);
|
|
421
441
|
var colStat = prefiltered === null || prefiltered === void 0 ? void 0 : (_prefiltered$colsStat2 = prefiltered.colsStats) === null || _prefiltered$colsStat2 === void 0 ? void 0 : _prefiltered$colsStat2[colKey];
|
|
422
442
|
var filterLevel = 0;
|
|
423
443
|
|
|
@@ -426,9 +446,13 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
426
446
|
var userSelectedCount = userParams === null || userParams === void 0 ? void 0 : userParams.length;
|
|
427
447
|
filterLevel += userSelectedCount ? 1 : 0;
|
|
428
448
|
filterLevel += userSelectedCount >= countSeen ? 2 : 0;
|
|
429
|
-
}
|
|
449
|
+
} // disable filtering when either:
|
|
450
|
+
// - the column is numeric, we only handle tags for string values
|
|
451
|
+
// - a cellRenderer is defined, as we have no simple way to match for chosen value(s)
|
|
452
|
+
// - using an external sort, because it would hardly know about the indexer filtering
|
|
430
453
|
|
|
431
|
-
|
|
454
|
+
|
|
455
|
+
var onFilterClick = numeric || _this.props.sort || columns[columnIndex].cellRenderer ? undefined : function (ev, retargeted) {
|
|
432
456
|
_this.filterClickHandler(ev, retargeted, columnIndex);
|
|
433
457
|
};
|
|
434
458
|
return /*#__PURE__*/_react["default"].createElement(_ColumnHeader["default"], {
|
|
@@ -436,7 +460,6 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
436
460
|
ref: function ref(e) {
|
|
437
461
|
return _this._registerHeader(label, e);
|
|
438
462
|
},
|
|
439
|
-
className: (0, _clsx3["default"])(classes.tableCell, classes.header),
|
|
440
463
|
sortSignedRank: signedRank,
|
|
441
464
|
filterLevel: filterLevel,
|
|
442
465
|
numeric: numeric,
|
|
@@ -447,8 +470,8 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
447
470
|
});
|
|
448
471
|
});
|
|
449
472
|
|
|
450
|
-
_defineProperty(_assertThisInitialized(_this), "simpleHeaderRenderer", function (
|
|
451
|
-
var label =
|
|
473
|
+
_defineProperty(_assertThisInitialized(_this), "simpleHeaderRenderer", function (_ref4) {
|
|
474
|
+
var label = _ref4.label;
|
|
452
475
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
453
476
|
ref: function ref(element) {
|
|
454
477
|
_this._registerHeader(label, element);
|
|
@@ -456,14 +479,14 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
456
479
|
}, label);
|
|
457
480
|
});
|
|
458
481
|
|
|
459
|
-
_defineProperty(_assertThisInitialized(_this), "getRowClassName", function (
|
|
482
|
+
_defineProperty(_assertThisInitialized(_this), "getRowClassName", function (_ref5) {
|
|
460
483
|
var _rowGetter, _rowGetter2, _clsx;
|
|
461
484
|
|
|
462
|
-
var index =
|
|
463
|
-
rowGetter =
|
|
464
|
-
var _this$
|
|
465
|
-
classes = _this$
|
|
466
|
-
onRowClick = _this$
|
|
485
|
+
var index = _ref5.index,
|
|
486
|
+
rowGetter = _ref5.rowGetter;
|
|
487
|
+
var _this$props = _this.props,
|
|
488
|
+
classes = _this$props.classes,
|
|
489
|
+
onRowClick = _this$props.onRowClick;
|
|
467
490
|
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));
|
|
468
491
|
});
|
|
469
492
|
|
|
@@ -475,18 +498,18 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
475
498
|
}
|
|
476
499
|
});
|
|
477
500
|
|
|
478
|
-
_defineProperty(_assertThisInitialized(_this), "cellRenderer", function (
|
|
501
|
+
_defineProperty(_assertThisInitialized(_this), "cellRenderer", function (_ref6) {
|
|
479
502
|
var _rows$rowIndex, _rows$rowIndex2, _clsx2;
|
|
480
503
|
|
|
481
|
-
var cellData =
|
|
482
|
-
columnIndex =
|
|
483
|
-
rowIndex =
|
|
484
|
-
var _this$
|
|
485
|
-
columns = _this$
|
|
486
|
-
classes = _this$
|
|
487
|
-
rowHeight = _this$
|
|
488
|
-
onCellClick = _this$
|
|
489
|
-
rows = _this$
|
|
504
|
+
var cellData = _ref6.cellData,
|
|
505
|
+
columnIndex = _ref6.columnIndex,
|
|
506
|
+
rowIndex = _ref6.rowIndex;
|
|
507
|
+
var _this$props2 = _this.props,
|
|
508
|
+
columns = _this$props2.columns,
|
|
509
|
+
classes = _this$props2.classes,
|
|
510
|
+
rowHeight = _this$props2.rowHeight,
|
|
511
|
+
onCellClick = _this$props2.onCellClick,
|
|
512
|
+
rows = _this$props2.rows;
|
|
490
513
|
|
|
491
514
|
var displayedValue = _this.getDisplayValue(columns[columnIndex], cellData);
|
|
492
515
|
|
|
@@ -515,9 +538,9 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
515
538
|
_defineProperty(_assertThisInitialized(_this), "makeSizedTable", function (height, width, sizes, reorderedIndex, _rowGetter3) {
|
|
516
539
|
var _reorderedIndex$lengt;
|
|
517
540
|
|
|
518
|
-
var _this$
|
|
519
|
-
sort = _this$
|
|
520
|
-
otherProps = _objectWithoutPropertiesLoose(_this$
|
|
541
|
+
var _this$props3 = _this.props,
|
|
542
|
+
sort = _this$props3.sort,
|
|
543
|
+
otherProps = _objectWithoutPropertiesLoose(_this$props3, _excluded);
|
|
521
544
|
|
|
522
545
|
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.Table, _extends({}, otherProps, {
|
|
523
546
|
height: height,
|
|
@@ -532,20 +555,20 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
532
555
|
/* The {...otherProps} just above would hold the slot onRowClick */
|
|
533
556
|
_this.onClickableRowClick,
|
|
534
557
|
rowCount: (_reorderedIndex$lengt = reorderedIndex === null || reorderedIndex === void 0 ? void 0 : reorderedIndex.length) !== null && _reorderedIndex$lengt !== void 0 ? _reorderedIndex$lengt : otherProps.rows.length,
|
|
535
|
-
rowClassName: function rowClassName(
|
|
536
|
-
var index =
|
|
558
|
+
rowClassName: function rowClassName(_ref7) {
|
|
559
|
+
var index = _ref7.index;
|
|
537
560
|
return _this.getRowClassName({
|
|
538
561
|
index: index,
|
|
539
562
|
rowGetter: _rowGetter3
|
|
540
563
|
});
|
|
541
564
|
},
|
|
542
|
-
rowGetter: function rowGetter(
|
|
543
|
-
var index =
|
|
565
|
+
rowGetter: function rowGetter(_ref8) {
|
|
566
|
+
var index = _ref8.index;
|
|
544
567
|
return _rowGetter3(index);
|
|
545
568
|
}
|
|
546
|
-
}), otherProps.columns.map(function (
|
|
547
|
-
var dataKey =
|
|
548
|
-
other = _objectWithoutPropertiesLoose(
|
|
569
|
+
}), otherProps.columns.map(function (_ref9, index) {
|
|
570
|
+
var dataKey = _ref9.dataKey,
|
|
571
|
+
other = _objectWithoutPropertiesLoose(_ref9, _excluded2);
|
|
549
572
|
|
|
550
573
|
return /*#__PURE__*/_react["default"].createElement(_reactVirtualized.Column, _extends({
|
|
551
574
|
key: dataKey,
|
|
@@ -575,8 +598,7 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
575
598
|
_defineProperty(_assertThisInitialized(_this), "getCSVData", function () {
|
|
576
599
|
var _reorderedIndex$viewI, _reorderedIndex$viewI2;
|
|
577
600
|
|
|
578
|
-
var reorderedIndex =
|
|
579
|
-
|
|
601
|
+
var reorderedIndex = reorderIndex(_this.state.indexer, _this.state.indirectionVersion, _this.props.rows, _this.props.columns, _this.props.filter, _this.props.sort);
|
|
580
602
|
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;
|
|
581
603
|
var csvData = [];
|
|
582
604
|
|
|
@@ -631,9 +653,8 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
631
653
|
_this.observer = new IntersectionObserver(_this._computeHeaderSize, _options);
|
|
632
654
|
_this.state = {
|
|
633
655
|
headerHeight: _this.props.headerHeight,
|
|
634
|
-
indexer: initIndexer(
|
|
656
|
+
indexer: initIndexer(props, null, _this.setVersion),
|
|
635
657
|
indirectionVersion: 0,
|
|
636
|
-
reorderIndex: null,
|
|
637
658
|
popoverAnchorEl: null,
|
|
638
659
|
popoverColKey: null,
|
|
639
660
|
deferredFilterChange: null
|
|
@@ -644,11 +665,22 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
644
665
|
var _proto = MuiVirtualizedTable.prototype;
|
|
645
666
|
|
|
646
667
|
_proto.componentDidUpdate = function componentDidUpdate(oldProps) {
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
668
|
+
var _this2 = this;
|
|
669
|
+
|
|
670
|
+
if (oldProps.indexer !== this.props.indexer || oldProps.sortable !== this.props.sortable) {
|
|
671
|
+
this.setState(function (state) {
|
|
672
|
+
var _state$indirectionVer;
|
|
673
|
+
|
|
674
|
+
return {
|
|
675
|
+
indexer: initIndexer(_this2.props, oldProps, _this2.setVersion),
|
|
676
|
+
indirectionVersion: ((_state$indirectionVer = state === null || state === void 0 ? void 0 : state.indirectionVersion) !== null && _state$indirectionVer !== void 0 ? _state$indirectionVer : 0) + 1
|
|
677
|
+
};
|
|
650
678
|
});
|
|
651
679
|
}
|
|
680
|
+
|
|
681
|
+
if (oldProps.headerHeight !== this.props.headerHeight) {
|
|
682
|
+
this._computeHeaderSize();
|
|
683
|
+
}
|
|
652
684
|
};
|
|
653
685
|
|
|
654
686
|
_proto.componentDidMount = function componentDidMount() {
|
|
@@ -730,38 +762,38 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
730
762
|
};
|
|
731
763
|
|
|
732
764
|
_proto.makeHeaderRenderer = function makeHeaderRenderer(dataKey, columnIndex) {
|
|
733
|
-
var
|
|
765
|
+
var _this3 = this;
|
|
734
766
|
|
|
735
|
-
var _this$
|
|
736
|
-
columns = _this$
|
|
737
|
-
classes = _this$
|
|
767
|
+
var _this$props4 = this.props,
|
|
768
|
+
columns = _this$props4.columns,
|
|
769
|
+
classes = _this$props4.classes;
|
|
738
770
|
return function (headerProps) {
|
|
739
771
|
return /*#__PURE__*/_react["default"].createElement(_material.TableCell, {
|
|
740
772
|
component: "div",
|
|
741
773
|
className: (0, _clsx3["default"])(classes.tableCell, classes.flexContainer, classes.noClick, classes.header),
|
|
742
774
|
variant: "head",
|
|
743
775
|
style: {
|
|
744
|
-
height:
|
|
776
|
+
height: _this3.state.headerHeight
|
|
745
777
|
},
|
|
746
778
|
align: columns[columnIndex].numeric || false ? 'right' : 'left',
|
|
747
779
|
ref: function ref(e) {
|
|
748
|
-
return
|
|
780
|
+
return _this3._registerObserver(e);
|
|
749
781
|
}
|
|
750
|
-
},
|
|
782
|
+
}, _this3.props.sortable && _this3.state.indexer ? _this3.sortableHeader(_extends({}, headerProps, {
|
|
751
783
|
columnIndex: columnIndex,
|
|
752
784
|
key: {
|
|
753
785
|
dataKey: dataKey
|
|
754
786
|
}
|
|
755
|
-
})) :
|
|
787
|
+
})) : _this3.simpleHeaderRenderer(_extends({}, headerProps)));
|
|
756
788
|
};
|
|
757
789
|
};
|
|
758
790
|
|
|
759
791
|
_proto.render = function render() {
|
|
760
|
-
var
|
|
792
|
+
var _this4 = this;
|
|
761
793
|
|
|
762
|
-
var
|
|
763
|
-
viewIndexToModel =
|
|
764
|
-
rowGetter =
|
|
794
|
+
var _reorderIndex = reorderIndex(this.state.indexer, this.state.indirectionVersion, this.props.rows, this.props.columns, this.props.filter, this.props.sort),
|
|
795
|
+
viewIndexToModel = _reorderIndex.viewIndexToModel,
|
|
796
|
+
rowGetter = _reorderIndex.rowGetter;
|
|
765
797
|
|
|
766
798
|
var sizes = this.sizes(this.props.columns, this.props.rows, rowGetter);
|
|
767
799
|
var csvHeaders = this.csvHeaders(this.props.columns, this.props.exportCSVDataKeys);
|
|
@@ -790,22 +822,28 @@ var MuiVirtualizedTable = /*#__PURE__*/function (_React$PureComponent) {
|
|
|
790
822
|
style: {
|
|
791
823
|
flexGrow: 1
|
|
792
824
|
}
|
|
793
|
-
}, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (
|
|
794
|
-
var height =
|
|
795
|
-
width =
|
|
796
|
-
return
|
|
825
|
+
}, /*#__PURE__*/_react["default"].createElement(_reactVirtualized.AutoSizer, null, function (_ref10) {
|
|
826
|
+
var height = _ref10.height,
|
|
827
|
+
width = _ref10.width;
|
|
828
|
+
return _this4.makeSizedTable(height, width, sizes, viewIndexToModel, rowGetter);
|
|
797
829
|
})), this.state.popoverAnchorEl && /*#__PURE__*/_react["default"].createElement(_material.Popover, {
|
|
798
830
|
anchorEl: this.state.popoverAnchorEl,
|
|
799
831
|
anchorOrigin: {
|
|
800
|
-
vertical: '
|
|
801
|
-
horizontal: '
|
|
832
|
+
vertical: 'bottom',
|
|
833
|
+
horizontal: 'left'
|
|
802
834
|
},
|
|
803
835
|
transformOrigin: {
|
|
804
|
-
vertical: '
|
|
805
|
-
horizontal: '
|
|
836
|
+
vertical: 'top',
|
|
837
|
+
horizontal: 'left'
|
|
806
838
|
},
|
|
839
|
+
onKeyDownCapture: this.handleKeyDownOnPopover,
|
|
807
840
|
onClose: this.closePopover,
|
|
808
|
-
open: !!this.state.popoverAnchorEl
|
|
841
|
+
open: !!this.state.popoverAnchorEl,
|
|
842
|
+
PaperProps: {
|
|
843
|
+
style: {
|
|
844
|
+
minWidth: '20ex'
|
|
845
|
+
}
|
|
846
|
+
}
|
|
809
847
|
}, this.makeColumnFilterEditor()));
|
|
810
848
|
};
|
|
811
849
|
|
package/lib/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
|
-
exports.useSnackMessage = exports.useIntlRef = exports.useImportExportParams = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.
|
|
4
|
+
exports.useSnackMessage = exports.useIntlRef = exports.useImportExportParams = exports.treeview_finder_fr = exports.treeview_finder_en = exports.top_bar_fr = exports.top_bar_en = exports.table_fr = exports.table_en = exports.setSignInCallbackError = exports.setLoggedUser = exports.report_viewer_fr = exports.report_viewer_en = exports.logout = exports.login_fr = exports.login_en = exports.initializeAuthenticationProd = exports.initializeAuthenticationDev = exports.getPreLoginPath = exports.getFileIcon = exports.getEquipmentsInfosForSearchBar = exports.equipment_search_fr = exports.equipment_search_en = exports.equipmentStyles = exports.element_search_fr = exports.element_search_en = exports.elementType = exports.dispatchUser = exports.card_error_boundary_fr = exports.card_error_boundary_en = exports.USER_VALIDATION_ERROR = exports.USER = exports.UNAUTHORIZED_USER_INFO = exports.TreeViewFinder = exports.TopBar = exports.TagRenderer = exports.SnackbarProvider = exports.SIGNIN_CALLBACK_ERROR = exports.SHOW_AUTH_INFO_LOGIN = exports.ReportViewerDialog = exports.ReportViewer = exports.RESET_AUTHENTICATION_ROUTER_ERROR = exports.OverflowableText = exports.MuiVirtualizedTable = exports.LOGOUT_ERROR = exports.LIGHT_THEME = exports.LANG_SYSTEM = exports.LANG_FRENCH = exports.LANG_ENGLISH = exports.KeyedColumnsRowIndexer = exports.EquipmentItem = exports.ElementSearchDialog = exports.EQUIPMENT_TYPE = exports.DEFAULT_ROW_HEIGHT = exports.DEFAULT_HEADER_HEIGHT = exports.DEFAULT_CELL_PADDING = exports.DARK_THEME = exports.CardErrorBoundary = exports.CHANGE_WAYS = exports.AuthenticationRouter = void 0;
|
|
5
5
|
|
|
6
6
|
var _TreeViewFinder = _interopRequireDefault(require("./components/TreeViewFinder"));
|
|
7
7
|
|
|
@@ -55,7 +55,6 @@ exports.initializeAuthenticationProd = _AuthService.initializeAuthenticationProd
|
|
|
55
55
|
exports.logout = _AuthService.logout;
|
|
56
56
|
exports.dispatchUser = _AuthService.dispatchUser;
|
|
57
57
|
exports.getPreLoginPath = _AuthService.getPreLoginPath;
|
|
58
|
-
exports.getIdTokenExpiresIn = _AuthService.getIdTokenExpiresIn;
|
|
59
58
|
|
|
60
59
|
var _ElementType = require("./utils/ElementType");
|
|
61
60
|
|
|
@@ -86,7 +85,6 @@ exports.UNAUTHORIZED_USER_INFO = _actions.UNAUTHORIZED_USER_INFO;
|
|
|
86
85
|
exports.LOGOUT_ERROR = _actions.LOGOUT_ERROR;
|
|
87
86
|
exports.USER_VALIDATION_ERROR = _actions.USER_VALIDATION_ERROR;
|
|
88
87
|
exports.RESET_AUTHENTICATION_ROUTER_ERROR = _actions.RESET_AUTHENTICATION_ROUTER_ERROR;
|
|
89
|
-
exports.setShowAuthenticationRouterLogin = _actions.setShowAuthenticationRouterLogin;
|
|
90
88
|
exports.SHOW_AUTH_INFO_LOGIN = _actions.SHOW_AUTH_INFO_LOGIN;
|
|
91
89
|
|
|
92
90
|
var _reportViewerEn = _interopRequireDefault(require("./components/translations/report-viewer-en"));
|
package/lib/utils/AuthService.js
CHANGED
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.dispatchUser = dispatchUser;
|
|
5
|
-
exports.getIdTokenExpiresIn = getIdTokenExpiresIn;
|
|
6
5
|
exports.getPreLoginPath = getPreLoginPath;
|
|
7
6
|
exports.handleSigninCallback = handleSigninCallback;
|
|
8
7
|
exports.handleSilentRenewCallback = handleSilentRenewCallback;
|
|
@@ -32,11 +31,29 @@ window.OIDCLog = _oidcClient.Log;
|
|
|
32
31
|
var hackauthoritykey = 'oidc.hack.authority';
|
|
33
32
|
var pathKey = 'powsybl-gridsuite-current-path';
|
|
34
33
|
|
|
34
|
+
function handleSigninSilent(dispatch, userManager) {
|
|
35
|
+
userManager.getUser().then(function (user) {
|
|
36
|
+
if (user == null || getIdTokenExpiresIn(user) < 0) {
|
|
37
|
+
return userManager.signinSilent()["catch"](function (error) {
|
|
38
|
+
dispatch((0, _actions.setShowAuthenticationRouterLogin)(true));
|
|
39
|
+
var oidcHackReloaded = 'gridsuite-oidc-hack-reloaded';
|
|
40
|
+
|
|
41
|
+
if (!sessionStorage.getItem(oidcHackReloaded) && error.message === 'authority mismatch on settings vs. signin state') {
|
|
42
|
+
sessionStorage.setItem(oidcHackReloaded, true);
|
|
43
|
+
console.log('Hack oidc, reload page to make login work');
|
|
44
|
+
window.location.reload();
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
|
|
35
51
|
function initializeAuthenticationDev(dispatch, isSilentRenew, validateUser) {
|
|
36
52
|
var userManager = new _UserManagerMock.UserManagerMock({});
|
|
37
53
|
|
|
38
54
|
if (!isSilentRenew) {
|
|
39
55
|
handleUser(dispatch, userManager, validateUser);
|
|
56
|
+
handleSigninSilent(dispatch, userManager);
|
|
40
57
|
}
|
|
41
58
|
|
|
42
59
|
return Promise.resolve(userManager);
|
|
@@ -119,9 +136,14 @@ function initializeAuthenticationProd(dispatch, isSilentRenew, idpSettings, vali
|
|
|
119
136
|
|
|
120
137
|
if (!isSilentRenew) {
|
|
121
138
|
handleUser(dispatch, userManager, validateUser);
|
|
139
|
+
handleSigninSilent(dispatch, userManager);
|
|
122
140
|
}
|
|
123
141
|
|
|
124
142
|
return userManager;
|
|
143
|
+
})["catch"](function (error) {
|
|
144
|
+
console.debug('error when importing the idp settings', error);
|
|
145
|
+
dispatch((0, _actions.setShowAuthenticationRouterLogin)(true));
|
|
146
|
+
throw error;
|
|
125
147
|
});
|
|
126
148
|
}
|
|
127
149
|
|