@deephaven/iris-grid 0.7.3-beta.4 → 0.8.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/dist/IrisGrid.d.ts +18 -232
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +144 -45
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModel.d.ts +10 -0
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +18 -0
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +8 -2
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +12 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +4 -8
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +36 -3
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +100 -45
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTreeTableModel.d.ts +1 -0
- package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
- package/dist/IrisGridUtils.d.ts +2 -0
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +8 -4
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.d.ts +2 -1
- package/dist/key-handlers/ClearFilterKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.js +2 -2
- package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.d.ts +2 -1
- package/dist/key-handlers/CopyKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +2 -2
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.d.ts +2 -1
- package/dist/key-handlers/ReverseKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +2 -2
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +52 -34
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -11
- package/dist/memoizeClear.d.ts +0 -4
- package/dist/memoizeClear.d.ts.map +0 -1
- package/dist/memoizeClear.js +0 -34
- package/dist/memoizeClear.js.map +0 -1
|
@@ -11,11 +11,10 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
11
11
|
/* eslint class-methods-use-this: "off" */
|
|
12
12
|
import memoize from 'memoize-one';
|
|
13
13
|
import throttle from 'lodash.throttle';
|
|
14
|
-
import { GridRange } from '@deephaven/grid';
|
|
14
|
+
import { GridRange, memoizeClear } from '@deephaven/grid';
|
|
15
15
|
import dh from '@deephaven/jsapi-shim';
|
|
16
16
|
import Log from '@deephaven/log';
|
|
17
17
|
import { PromiseUtils } from '@deephaven/utils';
|
|
18
|
-
import memoizeClear from "./memoizeClear.js";
|
|
19
18
|
import TableUtils from "./TableUtils.js";
|
|
20
19
|
import Formatter from "./Formatter.js";
|
|
21
20
|
import { TableColumnFormatter } from "./formatters/index.js";
|
|
@@ -42,48 +41,62 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
42
41
|
var inputTable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
43
42
|
super();
|
|
44
43
|
|
|
45
|
-
_defineProperty(this, "getColumnsWithLayoutHints", memoize((
|
|
46
|
-
|
|
47
|
-
var _hints$frontColumns$l, _hints$frontColumns, _hints$backColumns$le, _hints$backColumns, _hints$frozenColumns$, _hints$frozenColumns;
|
|
44
|
+
_defineProperty(this, "getColumnsWithLayoutHints", memoize((columnMap, frontColumns, backColumns, frozenColumns) => {
|
|
45
|
+
var columns = [...columnMap.values()];
|
|
48
46
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var
|
|
52
|
-
var
|
|
53
|
-
var frozenColumns = [];
|
|
47
|
+
if (frontColumns.length || backColumns.length || frozenColumns.length) {
|
|
48
|
+
var finalFrontColumns = [];
|
|
49
|
+
var finalBackColumns = [];
|
|
50
|
+
var finalFrozenColumns = [];
|
|
54
51
|
|
|
55
|
-
if (
|
|
56
|
-
|
|
52
|
+
if (frontColumns.length) {
|
|
53
|
+
finalFrontColumns = frontColumns.map(name => columnMap.get(name)).filter(Boolean);
|
|
57
54
|
}
|
|
58
55
|
|
|
59
|
-
if (
|
|
60
|
-
|
|
56
|
+
if (backColumns.length) {
|
|
57
|
+
finalBackColumns = backColumns.map(name => columnMap.get(name)).filter(Boolean);
|
|
61
58
|
}
|
|
62
59
|
|
|
63
|
-
if (
|
|
64
|
-
|
|
60
|
+
if (frozenColumns.length) {
|
|
61
|
+
finalFrozenColumns = frozenColumns.map(name => columnMap.get(name)).filter(Boolean);
|
|
65
62
|
}
|
|
66
63
|
|
|
67
|
-
if (
|
|
64
|
+
if (finalFrontColumns.length !== frontColumns.length || finalBackColumns.length !== backColumns.length || finalFrozenColumns.length !== frozenColumns.length) {
|
|
68
65
|
throw new Error('Layout hints are invalid (contain invalid column names)');
|
|
69
66
|
}
|
|
70
67
|
|
|
71
|
-
var frontColumnSet = new Set(
|
|
72
|
-
var backColumnSet = new Set(
|
|
73
|
-
var frozenColumnSet = new Set(
|
|
68
|
+
var frontColumnSet = new Set(finalFrontColumns);
|
|
69
|
+
var backColumnSet = new Set(finalBackColumns);
|
|
70
|
+
var frozenColumnSet = new Set(finalFrozenColumns);
|
|
74
71
|
var middleColumns = columns.filter(col => !frontColumnSet.has(col) && !backColumnSet.has(col) && !frozenColumnSet.has(col));
|
|
75
|
-
return [...
|
|
72
|
+
return [...finalFrozenColumns, ...finalFrontColumns, ...middleColumns, ...finalBackColumns];
|
|
76
73
|
}
|
|
77
74
|
|
|
78
75
|
return columns;
|
|
79
76
|
}));
|
|
80
77
|
|
|
78
|
+
_defineProperty(this, "getMemoizedColumnMap", memoize(tableColumns => {
|
|
79
|
+
var columnMap = new Map();
|
|
80
|
+
tableColumns.forEach(col => columnMap.set(col.name, col));
|
|
81
|
+
return columnMap;
|
|
82
|
+
}));
|
|
83
|
+
|
|
84
|
+
_defineProperty(this, "getMemoizedFrontColumns", memoize(layoutHintsFrontColumns => layoutHintsFrontColumns !== null && layoutHintsFrontColumns !== void 0 ? layoutHintsFrontColumns : []));
|
|
85
|
+
|
|
86
|
+
_defineProperty(this, "getMemoizedBackColumns", memoize(layoutHintsBackColumns => layoutHintsBackColumns !== null && layoutHintsBackColumns !== void 0 ? layoutHintsBackColumns : []));
|
|
87
|
+
|
|
88
|
+
_defineProperty(this, "getMemoizedFrozenColumns", memoize((layoutHintsFrozenColumns, userFrozenColumns) => {
|
|
89
|
+
var _ref;
|
|
90
|
+
|
|
91
|
+
return (_ref = userFrozenColumns !== null && userFrozenColumns !== void 0 ? userFrozenColumns : layoutHintsFrozenColumns) !== null && _ref !== void 0 ? _ref : [];
|
|
92
|
+
}));
|
|
93
|
+
|
|
81
94
|
_defineProperty(this, "getColumnIndicesByNameMap", memoize(columns => {
|
|
82
95
|
var indices = new Map();
|
|
83
|
-
columns.forEach((
|
|
96
|
+
columns.forEach((_ref2, i) => {
|
|
84
97
|
var {
|
|
85
98
|
name
|
|
86
|
-
} =
|
|
99
|
+
} = _ref2;
|
|
87
100
|
return indices.set(name, i);
|
|
88
101
|
});
|
|
89
102
|
return indices;
|
|
@@ -158,6 +171,7 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
158
171
|
|
|
159
172
|
this.pendingNewDataMap = new Map();
|
|
160
173
|
this.pendingNewRowCount = 0;
|
|
174
|
+
this.userFrozenColumns = null;
|
|
161
175
|
}
|
|
162
176
|
|
|
163
177
|
close() {
|
|
@@ -515,7 +529,29 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
515
529
|
}
|
|
516
530
|
|
|
517
531
|
get columns() {
|
|
518
|
-
return this.getColumnsWithLayoutHints(this.
|
|
532
|
+
return this.getColumnsWithLayoutHints(this.columnMap, this.frontColumns, this.backColumns, this.frozenColumns);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
get columnMap() {
|
|
536
|
+
return this.getMemoizedColumnMap(this.table.columns);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
get frontColumns() {
|
|
540
|
+
var _this$layoutHints;
|
|
541
|
+
|
|
542
|
+
return this.getMemoizedFrontColumns((_this$layoutHints = this.layoutHints) === null || _this$layoutHints === void 0 ? void 0 : _this$layoutHints.frontColumns);
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
get backColumns() {
|
|
546
|
+
var _this$layoutHints2;
|
|
547
|
+
|
|
548
|
+
return this.getMemoizedBackColumns((_this$layoutHints2 = this.layoutHints) === null || _this$layoutHints2 === void 0 ? void 0 : _this$layoutHints2.backColumns);
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
get frozenColumns() {
|
|
552
|
+
var _this$layoutHints3;
|
|
553
|
+
|
|
554
|
+
return this.getMemoizedFrozenColumns((_this$layoutHints3 = this.layoutHints) === null || _this$layoutHints3 === void 0 ? void 0 : _this$layoutHints3.frozenColumns, this.userFrozenColumns);
|
|
519
555
|
}
|
|
520
556
|
|
|
521
557
|
get layoutHints() {
|
|
@@ -523,9 +559,7 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
523
559
|
}
|
|
524
560
|
|
|
525
561
|
get floatingLeftColumnCount() {
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
return (_this$layoutHints$fro = (_this$layoutHints = this.layoutHints) === null || _this$layoutHints === void 0 ? void 0 : (_this$layoutHints$fro2 = _this$layoutHints.frozenColumns) === null || _this$layoutHints$fro2 === void 0 ? void 0 : _this$layoutHints$fro2.length) !== null && _this$layoutHints$fro !== void 0 ? _this$layoutHints$fro : 0;
|
|
562
|
+
return this.frozenColumns.length;
|
|
529
563
|
}
|
|
530
564
|
|
|
531
565
|
get groupedColumns() {
|
|
@@ -833,6 +867,11 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
833
867
|
this.applyViewport();
|
|
834
868
|
}
|
|
835
869
|
|
|
870
|
+
updateFrozenColumns(columns) {
|
|
871
|
+
this.userFrozenColumns = columns;
|
|
872
|
+
this.dispatchEvent(new CustomEvent(IrisGridModel.EVENT.TABLE_CHANGED));
|
|
873
|
+
}
|
|
874
|
+
|
|
836
875
|
set totalsConfig(totalsConfig) {
|
|
837
876
|
log.debug('set totalsConfig', totalsConfig);
|
|
838
877
|
|
|
@@ -1121,11 +1160,11 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1121
1160
|
}
|
|
1122
1161
|
|
|
1123
1162
|
isColumnMovable(x) {
|
|
1124
|
-
var _this$
|
|
1163
|
+
var _this$layoutHints4, _this$layoutHints4$fr, _this$layoutHints5, _this$layoutHints5$ba;
|
|
1125
1164
|
|
|
1126
1165
|
var columnName = this.columns[x].name;
|
|
1127
1166
|
|
|
1128
|
-
if ((_this$
|
|
1167
|
+
if ((_this$layoutHints4 = this.layoutHints) !== null && _this$layoutHints4 !== void 0 && (_this$layoutHints4$fr = _this$layoutHints4.frontColumns) !== null && _this$layoutHints4$fr !== void 0 && _this$layoutHints4$fr.includes(columnName) || (_this$layoutHints5 = this.layoutHints) !== null && _this$layoutHints5 !== void 0 && (_this$layoutHints5$ba = _this$layoutHints5.backColumns) !== null && _this$layoutHints5$ba !== void 0 && _this$layoutHints5$ba.includes(columnName) || this.frozenColumns.includes(columnName)) {
|
|
1129
1168
|
return false;
|
|
1130
1169
|
}
|
|
1131
1170
|
|
|
@@ -1133,9 +1172,7 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1133
1172
|
}
|
|
1134
1173
|
|
|
1135
1174
|
isColumnFrozen(x) {
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
return (_this$layoutHints$fro3 = (_this$layoutHints5 = this.layoutHints) === null || _this$layoutHints5 === void 0 ? void 0 : (_this$layoutHints5$fr = _this$layoutHints5.frozenColumns) === null || _this$layoutHints5$fr === void 0 ? void 0 : _this$layoutHints5$fr.includes(this.columns[x].name)) !== null && _this$layoutHints$fro3 !== void 0 ? _this$layoutHints$fro3 : false;
|
|
1175
|
+
return this.frozenColumns.includes(this.columns[x].name);
|
|
1139
1176
|
}
|
|
1140
1177
|
|
|
1141
1178
|
isKeyColumn(x) {
|
|
@@ -1319,7 +1356,11 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1319
1356
|
var edits = _arguments3.length > 0 && _arguments3[0] !== undefined ? _arguments3[0] : [];
|
|
1320
1357
|
log.debug('setValues(', edits, ')');
|
|
1321
1358
|
|
|
1322
|
-
if (!edits.every(edit =>
|
|
1359
|
+
if (!edits.every(edit => {
|
|
1360
|
+
var _edit$column, _edit$row;
|
|
1361
|
+
|
|
1362
|
+
return _this8.isEditableRange(GridRange.makeCell((_edit$column = edit.column) !== null && _edit$column !== void 0 ? _edit$column : edit.x, (_edit$row = edit.row) !== null && _edit$row !== void 0 ? _edit$row : edit.y));
|
|
1363
|
+
})) {
|
|
1323
1364
|
throw new Error('Uneditable ranges', edits);
|
|
1324
1365
|
}
|
|
1325
1366
|
|
|
@@ -1327,11 +1368,13 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1327
1368
|
var newDataMap = new Map(_this8.pendingNewDataMap); // Cache the display values
|
|
1328
1369
|
|
|
1329
1370
|
edits.forEach(edit => {
|
|
1371
|
+
var _edit$column2, _edit$row2;
|
|
1372
|
+
|
|
1330
1373
|
var {
|
|
1331
|
-
x,
|
|
1332
|
-
y,
|
|
1333
1374
|
text
|
|
1334
1375
|
} = edit;
|
|
1376
|
+
var x = (_edit$column2 = edit.column) !== null && _edit$column2 !== void 0 ? _edit$column2 : edit.x;
|
|
1377
|
+
var y = (_edit$row2 = edit.row) !== null && _edit$row2 !== void 0 ? _edit$row2 : edit.y;
|
|
1335
1378
|
var column = _this8.columns[x];
|
|
1336
1379
|
var value = TableUtils.makeValue(column.type, text, _this8.formatter.timeZone);
|
|
1337
1380
|
var formattedText = value != null ? _this8.displayString(value, column.type, column.name) : null;
|
|
@@ -1377,14 +1420,22 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1377
1420
|
|
|
1378
1421
|
|
|
1379
1422
|
var rowEditMap = edits.reduce((rowMap, edit) => {
|
|
1380
|
-
|
|
1381
|
-
|
|
1423
|
+
var _edit$row3;
|
|
1424
|
+
|
|
1425
|
+
var y = (_edit$row3 = edit.row) !== null && _edit$row3 !== void 0 ? _edit$row3 : edit.y;
|
|
1426
|
+
|
|
1427
|
+
if (!rowMap.has(y)) {
|
|
1428
|
+
rowMap.set(y, []);
|
|
1382
1429
|
}
|
|
1383
1430
|
|
|
1384
|
-
rowMap.get(
|
|
1431
|
+
rowMap.get(y).push(edit);
|
|
1385
1432
|
return rowMap;
|
|
1386
1433
|
}, new Map());
|
|
1387
|
-
var ranges = GridRange.consolidate(edits.map(edit =>
|
|
1434
|
+
var ranges = GridRange.consolidate(edits.map(edit => {
|
|
1435
|
+
var _edit$column3, _edit$row4;
|
|
1436
|
+
|
|
1437
|
+
return GridRange.makeCell((_edit$column3 = edit.column) !== null && _edit$column3 !== void 0 ? _edit$column3 : edit.x, (_edit$row4 = edit.row) !== null && _edit$row4 !== void 0 ? _edit$row4 : edit.y);
|
|
1438
|
+
}));
|
|
1388
1439
|
|
|
1389
1440
|
var tableAreaRange = _this8.getTableAreaRange();
|
|
1390
1441
|
|
|
@@ -1419,7 +1470,9 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1419
1470
|
|
|
1420
1471
|
if (rowEdits != null) {
|
|
1421
1472
|
rowEdits.forEach(edit => {
|
|
1422
|
-
var
|
|
1473
|
+
var _edit$column4;
|
|
1474
|
+
|
|
1475
|
+
var column = _this8.columns[(_edit$column4 = edit.column) !== null && _edit$column4 !== void 0 ? _edit$column4 : edit.x];
|
|
1423
1476
|
newRow[column.name] = TableUtils.makeValue(column.type, edit.text, _this8.formatter.timeZone);
|
|
1424
1477
|
});
|
|
1425
1478
|
}
|
|
@@ -1436,11 +1489,13 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1436
1489
|
|
|
1437
1490
|
|
|
1438
1491
|
edits.forEach(edit => {
|
|
1492
|
+
var _edit$column5, _edit$row5;
|
|
1493
|
+
|
|
1439
1494
|
var {
|
|
1440
|
-
x,
|
|
1441
|
-
y,
|
|
1442
1495
|
text
|
|
1443
1496
|
} = edit;
|
|
1497
|
+
var x = (_edit$column5 = edit.column) !== null && _edit$column5 !== void 0 ? _edit$column5 : edit.x;
|
|
1498
|
+
var y = (_edit$row5 = edit.row) !== null && _edit$row5 !== void 0 ? _edit$row5 : edit.y;
|
|
1444
1499
|
var column = _this8.columns[x];
|
|
1445
1500
|
var value = TableUtils.makeValue(column.type, text, _this8.formatter.timeZone);
|
|
1446
1501
|
var formattedText = value != null ? _this8.displayString(value, column.type, column.name) : null;
|
|
@@ -1449,7 +1504,7 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1449
1504
|
});
|
|
1450
1505
|
} finally {
|
|
1451
1506
|
edits.forEach(edit => {
|
|
1452
|
-
_this8.clearPendingValue(edit.
|
|
1507
|
+
_this8.clearPendingValue(edit.column, edit.row);
|
|
1453
1508
|
});
|
|
1454
1509
|
}
|
|
1455
1510
|
})();
|
|
@@ -1471,10 +1526,10 @@ class IrisGridTableModel extends IrisGridModel {
|
|
|
1471
1526
|
|
|
1472
1527
|
_this9.pendingNewDataMap.forEach(row => {
|
|
1473
1528
|
var newRow = {};
|
|
1474
|
-
row.data.forEach((
|
|
1529
|
+
row.data.forEach((_ref3, columnIndex) => {
|
|
1475
1530
|
var {
|
|
1476
1531
|
value
|
|
1477
|
-
} =
|
|
1532
|
+
} = _ref3;
|
|
1478
1533
|
var column = _this9.columns[columnIndex];
|
|
1479
1534
|
newRow[column.name] = value;
|
|
1480
1535
|
});
|