@deephaven/grid 0.22.3-embed-pandas.11 → 0.23.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/dist/CellInputField.d.ts +6 -6
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +6 -23
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.d.ts +1 -1
- package/dist/EditableGridModel.d.ts.map +1 -1
- package/dist/EditableGridModel.js +1 -0
- package/dist/EditableGridModel.js.map +1 -1
- package/dist/EventHandlerResult.d.ts +2 -2
- package/dist/EventHandlerResult.d.ts.map +1 -1
- package/dist/ExpandableGridModel.js +1 -0
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.d.ts +76 -3
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +77 -315
- package/dist/Grid.js.map +1 -1
- package/dist/GridAxisRange.d.ts +3 -3
- package/dist/GridAxisRange.d.ts.map +1 -1
- package/dist/GridAxisRange.js.map +1 -1
- package/dist/GridColorUtils.js +1 -2
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js +84 -241
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMetrics.d.ts +10 -10
- package/dist/GridMetrics.d.ts.map +1 -1
- package/dist/GridModel.js +13 -31
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.d.ts +3 -3
- package/dist/GridMouseHandler.d.ts.map +1 -1
- package/dist/GridMouseHandler.js +2 -15
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.d.ts +6 -6
- package/dist/GridRange.d.ts.map +1 -1
- package/dist/GridRange.js +46 -160
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts +7 -7
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +126 -407
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridTestUtils.js +0 -5
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridTheme.d.ts +5 -5
- package/dist/GridTheme.d.ts.map +1 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.d.ts +2 -2
- package/dist/GridUtils.d.ts.map +1 -1
- package/dist/GridUtils.js +68 -217
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.d.ts +1 -1
- package/dist/KeyHandler.d.ts.map +1 -1
- package/dist/KeyHandler.js +2 -8
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.d.ts +2 -2
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.js +0 -42
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.d.ts +7 -7
- package/dist/MockTreeGridModel.d.ts.map +1 -1
- package/dist/MockTreeGridModel.js +6 -55
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js +0 -15
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/ViewportDataGridModel.js +0 -14
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js +0 -3
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js +0 -3
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +0 -12
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +15 -33
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +6 -53
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +0 -11
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js +1 -4
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +0 -5
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +35 -123
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -27
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +0 -27
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +0 -23
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +0 -10
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +0 -6
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +8 -38
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +9 -9
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -54
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +0 -28
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js.map +1 -1
- package/package.json +4 -4
package/dist/MockGridModel.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
1
|
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
-
|
|
3
2
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
|
-
|
|
5
3
|
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; }
|
|
6
|
-
|
|
7
4
|
/* eslint class-methods-use-this: "off" */
|
|
8
|
-
|
|
9
5
|
/* eslint no-unused-vars: "off" */
|
|
10
6
|
import GridModel from "./GridModel.js";
|
|
11
7
|
import GridRange from "./GridRange.js";
|
|
12
|
-
|
|
13
8
|
/**
|
|
14
9
|
* Mock model implementing GridModel for testing out grid functionality
|
|
15
10
|
*/
|
|
@@ -26,23 +21,14 @@ class MockGridModel extends GridModel {
|
|
|
26
21
|
editedData = []
|
|
27
22
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
28
23
|
super();
|
|
29
|
-
|
|
30
24
|
_defineProperty(this, "numRows", void 0);
|
|
31
|
-
|
|
32
25
|
_defineProperty(this, "numColumns", void 0);
|
|
33
|
-
|
|
34
26
|
_defineProperty(this, "floatingTop", void 0);
|
|
35
|
-
|
|
36
27
|
_defineProperty(this, "floatingBottom", void 0);
|
|
37
|
-
|
|
38
28
|
_defineProperty(this, "floatingLeft", void 0);
|
|
39
|
-
|
|
40
29
|
_defineProperty(this, "floatingRight", void 0);
|
|
41
|
-
|
|
42
30
|
_defineProperty(this, "editable", void 0);
|
|
43
|
-
|
|
44
31
|
_defineProperty(this, "editedData", void 0);
|
|
45
|
-
|
|
46
32
|
this.numRows = rowCount;
|
|
47
33
|
this.numColumns = columnCount;
|
|
48
34
|
this.floatingTop = floatingTopRowCount;
|
|
@@ -52,111 +38,83 @@ class MockGridModel extends GridModel {
|
|
|
52
38
|
this.editable = isEditable;
|
|
53
39
|
this.editedData = editedData;
|
|
54
40
|
}
|
|
55
|
-
|
|
56
41
|
get rowCount() {
|
|
57
42
|
return this.numRows;
|
|
58
43
|
}
|
|
59
|
-
|
|
60
44
|
get columnCount() {
|
|
61
45
|
return this.numColumns;
|
|
62
46
|
}
|
|
63
|
-
|
|
64
47
|
get floatingTopRowCount() {
|
|
65
48
|
return this.floatingTop;
|
|
66
49
|
}
|
|
67
|
-
|
|
68
50
|
get floatingBottomRowCount() {
|
|
69
51
|
return this.floatingBottom;
|
|
70
52
|
}
|
|
71
|
-
|
|
72
53
|
get floatingLeftColumnCount() {
|
|
73
54
|
return this.floatingLeft;
|
|
74
55
|
}
|
|
75
|
-
|
|
76
56
|
get floatingRightColumnCount() {
|
|
77
57
|
return this.floatingRight;
|
|
78
58
|
}
|
|
79
|
-
|
|
80
59
|
get isEditable() {
|
|
81
60
|
return this.editable;
|
|
82
61
|
}
|
|
83
|
-
|
|
84
62
|
textForCell(column, row) {
|
|
85
63
|
var _this$editedData$colu, _this$editedData$colu2;
|
|
86
|
-
|
|
87
64
|
return (_this$editedData$colu = (_this$editedData$colu2 = this.editedData[column]) === null || _this$editedData$colu2 === void 0 ? void 0 : _this$editedData$colu2[row]) !== null && _this$editedData$colu !== void 0 ? _this$editedData$colu : "".concat(column, ",").concat(row);
|
|
88
65
|
}
|
|
89
|
-
|
|
90
66
|
colorForCell(column, row, theme) {
|
|
91
67
|
return theme.textColor;
|
|
92
68
|
}
|
|
93
|
-
|
|
94
69
|
textForColumnHeader(column) {
|
|
95
70
|
var depth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
96
71
|
return "".concat(column);
|
|
97
72
|
}
|
|
98
|
-
|
|
99
73
|
textForRowHeader(row) {
|
|
100
74
|
return "".concat(row);
|
|
101
75
|
}
|
|
102
|
-
|
|
103
76
|
textForRowFooter(row) {
|
|
104
77
|
return "".concat(row);
|
|
105
78
|
}
|
|
106
|
-
|
|
107
79
|
setValueForCell(column, row, value) {
|
|
108
80
|
var _this = this;
|
|
109
|
-
|
|
110
81
|
return _asyncToGenerator(function* () {
|
|
111
82
|
if (_this.editedData[column] == null) {
|
|
112
83
|
_this.editedData[column] = [];
|
|
113
84
|
}
|
|
114
|
-
|
|
115
85
|
_this.editedData[column][row] = "".concat(value);
|
|
116
86
|
})();
|
|
117
87
|
}
|
|
118
|
-
|
|
119
88
|
setValueForRanges(ranges, text) {
|
|
120
89
|
var _this2 = this;
|
|
121
|
-
|
|
122
90
|
return _asyncToGenerator(function* () {
|
|
123
91
|
GridRange.forEachCell(ranges, (x, y) => {
|
|
124
92
|
_this2.setValueForCell(x, y, text);
|
|
125
93
|
});
|
|
126
94
|
})();
|
|
127
95
|
}
|
|
128
|
-
|
|
129
96
|
setValues(edits) {
|
|
130
97
|
var _this3 = this;
|
|
131
|
-
|
|
132
98
|
return _asyncToGenerator(function* () {
|
|
133
99
|
for (var i = 0; i < edits.length; i += 1) {
|
|
134
100
|
var _edit$column, _edit$row;
|
|
135
|
-
|
|
136
101
|
var edit = edits[i];
|
|
137
|
-
|
|
138
102
|
_this3.setValueForCell((_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, edit.text);
|
|
139
103
|
}
|
|
140
104
|
})();
|
|
141
105
|
}
|
|
142
|
-
|
|
143
106
|
editValueForCell(column, row) {
|
|
144
107
|
return this.textForCell(column, row);
|
|
145
108
|
}
|
|
146
|
-
|
|
147
109
|
isValidForCell(column, row, value) {
|
|
148
110
|
return true;
|
|
149
111
|
}
|
|
150
|
-
|
|
151
112
|
isEditableRange(range) {
|
|
152
113
|
return this.isEditable;
|
|
153
114
|
}
|
|
154
|
-
|
|
155
115
|
delete(ranges) {
|
|
156
116
|
throw new Error('Method not implemented.');
|
|
157
117
|
}
|
|
158
|
-
|
|
159
118
|
}
|
|
160
|
-
|
|
161
119
|
export default MockGridModel;
|
|
162
120
|
//# sourceMappingURL=MockGridModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockGridModel.js","names":["GridModel","GridRange","MockGridModel","constructor","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isEditable","editedData","numRows","numColumns","floatingTop","floatingBottom","floatingLeft","floatingRight","editable","textForCell","column","row","colorForCell","theme","textColor","textForColumnHeader","depth","textForRowHeader","textForRowFooter","setValueForCell","value","setValueForRanges","ranges","text","forEachCell","x","y","setValues","edits","i","length","edit","editValueForCell","isValidForCell","isEditableRange","range","delete","Error"],"sources":["../src/MockGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport EditableGridModel, { EditOperation } from './EditableGridModel';\nimport { ModelIndex } from './GridMetrics';\nimport GridModel from './GridModel';\nimport GridRange from './GridRange';\nimport { GridColor, GridTheme } from './GridTheme';\n\n/**\n * Mock model implementing GridModel for testing out grid functionality\n */\nclass MockGridModel extends GridModel implements EditableGridModel {\n protected numRows: number;\n\n protected numColumns: number;\n\n protected floatingTop: number;\n\n protected floatingBottom: number;\n\n protected floatingLeft: number;\n\n protected floatingRight: number;\n\n protected editable: boolean;\n\n protected editedData: string[][];\n\n constructor({\n rowCount = 1000000000,\n columnCount = 100,\n floatingTopRowCount = 0,\n floatingBottomRowCount = 0,\n floatingLeftColumnCount = 0,\n floatingRightColumnCount = 0,\n isEditable = false,\n editedData = [],\n } = {}) {\n super();\n\n this.numRows = rowCount;\n this.numColumns = columnCount;\n this.floatingTop = floatingTopRowCount;\n this.floatingBottom = floatingBottomRowCount;\n this.floatingLeft = floatingLeftColumnCount;\n this.floatingRight = floatingRightColumnCount;\n this.editable = isEditable;\n this.editedData = editedData;\n }\n\n get rowCount(): number {\n return this.numRows;\n }\n\n get columnCount(): number {\n return this.numColumns;\n }\n\n get floatingTopRowCount(): number {\n return this.floatingTop;\n }\n\n get floatingBottomRowCount(): number {\n return this.floatingBottom;\n }\n\n get floatingLeftColumnCount(): number {\n return this.floatingLeft;\n }\n\n get floatingRightColumnCount(): number {\n return this.floatingRight;\n }\n\n get isEditable(): boolean {\n return this.editable;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.editedData[column]?.[row] ?? `${column},${row}`;\n }\n\n colorForCell(\n column: ModelIndex,\n row: ModelIndex,\n theme: GridTheme\n ): GridColor {\n return theme.textColor;\n }\n\n textForColumnHeader(column: ModelIndex, depth = 0): string {\n return `${column}`;\n }\n\n textForRowHeader(row: ModelIndex): string {\n return `${row}`;\n }\n\n textForRowFooter(row: ModelIndex): string {\n return `${row}`;\n }\n\n async setValueForCell(\n column: ModelIndex,\n row: ModelIndex,\n value: string\n ): Promise<void> {\n if (this.editedData[column] == null) {\n this.editedData[column] = [];\n }\n this.editedData[column][row] = `${value}`;\n }\n\n async setValueForRanges(ranges: GridRange[], text: string): Promise<void> {\n GridRange.forEachCell(ranges, (x, y) => {\n this.setValueForCell(x, y, text);\n });\n }\n\n async setValues(edits: EditOperation[]): Promise<void> {\n for (let i = 0; i < edits.length; i += 1) {\n const edit = edits[i];\n this.setValueForCell(\n edit.column ?? edit.x,\n edit.row ?? edit.y,\n edit.text\n );\n }\n }\n\n editValueForCell(column: ModelIndex, row: ModelIndex): string {\n return this.textForCell(column, row);\n }\n\n isValidForCell(column: ModelIndex, row: ModelIndex, value: string): boolean {\n return true;\n }\n\n isEditableRange(range: GridRange): boolean {\n return this.isEditable;\n }\n\n delete(ranges: GridRange[]): Promise<void> {\n throw new Error('Method not implemented.');\n }\n}\n\nexport default MockGridModel;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MockGridModel.js","names":["GridModel","GridRange","MockGridModel","constructor","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isEditable","editedData","numRows","numColumns","floatingTop","floatingBottom","floatingLeft","floatingRight","editable","textForCell","column","row","colorForCell","theme","textColor","textForColumnHeader","depth","textForRowHeader","textForRowFooter","setValueForCell","value","setValueForRanges","ranges","text","forEachCell","x","y","setValues","edits","i","length","edit","editValueForCell","isValidForCell","isEditableRange","range","delete","Error"],"sources":["../src/MockGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport EditableGridModel, { EditOperation } from './EditableGridModel';\nimport { ModelIndex } from './GridMetrics';\nimport GridModel from './GridModel';\nimport GridRange from './GridRange';\nimport { GridColor, GridTheme } from './GridTheme';\n\n/**\n * Mock model implementing GridModel for testing out grid functionality\n */\nclass MockGridModel extends GridModel implements EditableGridModel {\n protected numRows: number;\n\n protected numColumns: number;\n\n protected floatingTop: number;\n\n protected floatingBottom: number;\n\n protected floatingLeft: number;\n\n protected floatingRight: number;\n\n protected editable: boolean;\n\n protected editedData: string[][];\n\n constructor({\n rowCount = 1000000000,\n columnCount = 100,\n floatingTopRowCount = 0,\n floatingBottomRowCount = 0,\n floatingLeftColumnCount = 0,\n floatingRightColumnCount = 0,\n isEditable = false,\n editedData = [],\n } = {}) {\n super();\n\n this.numRows = rowCount;\n this.numColumns = columnCount;\n this.floatingTop = floatingTopRowCount;\n this.floatingBottom = floatingBottomRowCount;\n this.floatingLeft = floatingLeftColumnCount;\n this.floatingRight = floatingRightColumnCount;\n this.editable = isEditable;\n this.editedData = editedData;\n }\n\n get rowCount(): number {\n return this.numRows;\n }\n\n get columnCount(): number {\n return this.numColumns;\n }\n\n get floatingTopRowCount(): number {\n return this.floatingTop;\n }\n\n get floatingBottomRowCount(): number {\n return this.floatingBottom;\n }\n\n get floatingLeftColumnCount(): number {\n return this.floatingLeft;\n }\n\n get floatingRightColumnCount(): number {\n return this.floatingRight;\n }\n\n get isEditable(): boolean {\n return this.editable;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.editedData[column]?.[row] ?? `${column},${row}`;\n }\n\n colorForCell(\n column: ModelIndex,\n row: ModelIndex,\n theme: GridTheme\n ): GridColor {\n return theme.textColor;\n }\n\n textForColumnHeader(column: ModelIndex, depth = 0): string {\n return `${column}`;\n }\n\n textForRowHeader(row: ModelIndex): string {\n return `${row}`;\n }\n\n textForRowFooter(row: ModelIndex): string {\n return `${row}`;\n }\n\n async setValueForCell(\n column: ModelIndex,\n row: ModelIndex,\n value: string\n ): Promise<void> {\n if (this.editedData[column] == null) {\n this.editedData[column] = [];\n }\n this.editedData[column][row] = `${value}`;\n }\n\n async setValueForRanges(ranges: GridRange[], text: string): Promise<void> {\n GridRange.forEachCell(ranges, (x, y) => {\n this.setValueForCell(x, y, text);\n });\n }\n\n async setValues(edits: EditOperation[]): Promise<void> {\n for (let i = 0; i < edits.length; i += 1) {\n const edit = edits[i];\n this.setValueForCell(\n edit.column ?? edit.x,\n edit.row ?? edit.y,\n edit.text\n );\n }\n }\n\n editValueForCell(column: ModelIndex, row: ModelIndex): string {\n return this.textForCell(column, row);\n }\n\n isValidForCell(column: ModelIndex, row: ModelIndex, value: string): boolean {\n return true;\n }\n\n isEditableRange(range: GridRange): boolean {\n return this.isEditable;\n }\n\n delete(ranges: GridRange[]): Promise<void> {\n throw new Error('Method not implemented.');\n }\n}\n\nexport default MockGridModel;\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import MockGridModel from './MockGridModel';
|
|
2
2
|
import ExpandableGridModel from './ExpandableGridModel';
|
|
3
3
|
import { ModelIndex } from './GridMetrics';
|
|
4
|
-
|
|
4
|
+
type ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;
|
|
5
5
|
/**
|
|
6
6
|
* A class to mock a tree model so can test out tree models.
|
|
7
7
|
* Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.
|
|
@@ -40,15 +40,15 @@ declare class MockTreeGridModel extends MockGridModel implements ExpandableGridM
|
|
|
40
40
|
getCachedModelRowOffset: ((children: ChildrenTreeMap, row: ModelIndex) => {
|
|
41
41
|
key: ModelIndex | null;
|
|
42
42
|
offsetRow: ModelIndex;
|
|
43
|
-
}) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => {
|
|
43
|
+
}) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => {
|
|
44
44
|
key: ModelIndex | null;
|
|
45
45
|
offsetRow: ModelIndex;
|
|
46
46
|
}>;
|
|
47
|
-
getCachedTextForRowHeader: ((children: ChildrenTreeMap, row: ModelIndex) => string) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => string>;
|
|
48
|
-
getCachedTextForCell: ((children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string) & import("memoizee").Memoized<(children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string>;
|
|
49
|
-
getCachedIsRowExpandable: ((children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean>;
|
|
50
|
-
getCachedIsRowExpanded: ((children: ChildrenTreeMap, row: ModelIndex) => boolean) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => boolean>;
|
|
51
|
-
getCachedDepthForRow: ((children: ChildrenTreeMap, row: ModelIndex) => number) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => number>;
|
|
47
|
+
getCachedTextForRowHeader: ((children: ChildrenTreeMap, row: ModelIndex) => string) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => string>;
|
|
48
|
+
getCachedTextForCell: ((children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string>;
|
|
49
|
+
getCachedIsRowExpandable: ((children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean>;
|
|
50
|
+
getCachedIsRowExpanded: ((children: ChildrenTreeMap, row: ModelIndex) => boolean) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => boolean>;
|
|
51
|
+
getCachedDepthForRow: ((children: ChildrenTreeMap, row: ModelIndex) => number) & import("@types/memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => number>;
|
|
52
52
|
}
|
|
53
53
|
export default MockTreeGridModel;
|
|
54
54
|
//# sourceMappingURL=MockTreeGridModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTreeGridModel.d.ts","sourceRoot":"","sources":["../src/MockTreeGridModel.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,
|
|
1
|
+
{"version":3,"file":"MockTreeGridModel.d.ts","sourceRoot":"","sources":["../src/MockTreeGridModel.ts"],"names":[],"mappings":"AAEA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,KAAK,eAAe,GAAG,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAE1D;;;GAGG;AACH,cAAM,iBAAkB,SAAQ,aAAc,YAAW,mBAAmB;IAC1E,MAAM,CAAC,iBAAiB,SAAc;IAEtC,MAAM,CAAC,oBAAoB,SAAO;IAElC,sHAAsH;IACtH,MAAM,CAAC,8BAA8B,SAAQ;IAE7C,MAAM,CAAC,mBAAmB,SAAM;IAEhC,MAAM,CAAC,SAAS,SAAM;IAEtB,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,QAAQ,CAAS;gBAEb,EACV,QAA8C,EAC9C,WAAoD,EACpD,QAAoB,EACpB,aAKC,EACD,QAAsC,GACvC,GAAE;QACD,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd;IAQN,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,MAAM;IAIxD,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAIzC,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAItC,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAED,IAAI,sBAAsB,IAAI,MAAM,CAEnC;IAED,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAIzC,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAIvC,cAAc,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IA8B1D,WAAW,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAIpC;;;;OAIG;IACH,uBAAuB,oCAGd,UAAU;aACP,UAAU,GAAG,IAAI;mBAAa,UAAU;6EAD3C,UAAU;aACP,UAAU,GAAG,IAAI;mBAAa,UAAU;OAqBlD;IAEF,yBAAyB,oCACU,UAAU,KAAG,MAAM,wEAAnB,UAAU,KAAG,MAAM,EAYpD;IAEF,oBAAoB,uCAGR,UAAU,OACb,UAAU,KACd,MAAM,2EAFC,UAAU,OACb,UAAU,KACd,MAAM,EAYT;IAEF,wBAAwB,oCACW,UAAU,YAAY,MAAM,KAAG,OAAO,wEAAtC,UAAU,YAAY,MAAM,KAAG,OAAO,EAKvE;IAEF,sBAAsB,oCACa,UAAU,KAAG,OAAO,wEAApB,UAAU,KAAG,OAAO,EAYrD;IAEF,oBAAoB,oCACe,UAAU,KAAG,MAAM,wEAAnB,UAAU,KAAG,MAAM,EAYpD;CACH;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
/* eslint class-methods-use-this: "off" */
|
|
4
|
-
|
|
5
3
|
/* eslint no-unused-vars: "off" */
|
|
6
4
|
import MockGridModel from "./MockGridModel.js";
|
|
7
5
|
import memoizeClear from "./memoizeClear.js";
|
|
8
|
-
|
|
9
6
|
/**
|
|
10
7
|
* A class to mock a tree model so can test out tree models.
|
|
11
8
|
* Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.
|
|
12
9
|
*/
|
|
13
10
|
class MockTreeGridModel extends MockGridModel {
|
|
14
11
|
/** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */
|
|
12
|
+
|
|
15
13
|
constructor() {
|
|
16
14
|
var {
|
|
17
15
|
rowCount = MockTreeGridModel.DEFAULT_ROW_COUNT,
|
|
@@ -24,160 +22,123 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
24
22
|
rowCount,
|
|
25
23
|
columnCount
|
|
26
24
|
});
|
|
27
|
-
|
|
28
25
|
_defineProperty(this, "children", void 0);
|
|
29
|
-
|
|
30
26
|
_defineProperty(this, "childRowCount", void 0);
|
|
31
|
-
|
|
32
27
|
_defineProperty(this, "maxDepth", void 0);
|
|
33
|
-
|
|
34
28
|
_defineProperty(this, "getCachedModelRowOffset", memoizeClear((children, row) => {
|
|
35
29
|
var key = null;
|
|
36
|
-
var offsetRow = row;
|
|
37
|
-
|
|
30
|
+
var offsetRow = row;
|
|
31
|
+
// Need to iterate through the map in order... sort it first
|
|
38
32
|
var sortedEntries = [...children].sort((a, b) => a[0] - b[0]);
|
|
39
|
-
|
|
40
33
|
for (var i = 0; i < sortedEntries.length; i += 1) {
|
|
41
34
|
var [childRow, childModel] = sortedEntries[i];
|
|
42
|
-
|
|
43
35
|
if (offsetRow <= childRow) {
|
|
44
36
|
break;
|
|
45
37
|
}
|
|
46
|
-
|
|
47
38
|
var childRowCount = childModel.rowCount;
|
|
48
|
-
|
|
49
39
|
if (offsetRow <= childRow + childRowCount) {
|
|
50
40
|
key = childRow;
|
|
51
41
|
offsetRow = offsetRow - childRow - 1;
|
|
52
42
|
break;
|
|
53
43
|
}
|
|
54
|
-
|
|
55
44
|
offsetRow -= childRowCount;
|
|
56
45
|
}
|
|
57
|
-
|
|
58
46
|
return {
|
|
59
47
|
key,
|
|
60
48
|
offsetRow
|
|
61
49
|
};
|
|
62
50
|
}));
|
|
63
|
-
|
|
64
51
|
_defineProperty(this, "getCachedTextForRowHeader", memoizeClear((children, row) => {
|
|
65
52
|
var {
|
|
66
53
|
key,
|
|
67
54
|
offsetRow
|
|
68
55
|
} = this.getCachedModelRowOffset(children, row);
|
|
69
|
-
|
|
70
56
|
if (key != null) {
|
|
71
57
|
var model = children.get(key);
|
|
72
|
-
|
|
73
58
|
if (model !== undefined) {
|
|
74
59
|
return "".concat(key, ".").concat(model.textForRowHeader(offsetRow));
|
|
75
60
|
}
|
|
76
61
|
}
|
|
77
|
-
|
|
78
62
|
return "".concat(offsetRow);
|
|
79
63
|
}));
|
|
80
|
-
|
|
81
64
|
_defineProperty(this, "getCachedTextForCell", memoizeClear((children, column, row) => {
|
|
82
65
|
var {
|
|
83
66
|
key,
|
|
84
67
|
offsetRow
|
|
85
68
|
} = this.getCachedModelRowOffset(children, row);
|
|
86
|
-
|
|
87
69
|
if (key != null) {
|
|
88
70
|
var model = children.get(key);
|
|
89
|
-
|
|
90
71
|
if (model !== undefined) {
|
|
91
72
|
return "".concat(key, ".").concat(model.textForCell(column, offsetRow));
|
|
92
73
|
}
|
|
93
74
|
}
|
|
94
|
-
|
|
95
75
|
return "".concat(column, ",").concat(offsetRow);
|
|
96
76
|
}));
|
|
97
|
-
|
|
98
77
|
_defineProperty(this, "getCachedIsRowExpandable", memoizeClear((children, row, maxDepth) => {
|
|
99
78
|
var depth = this.getCachedDepthForRow(children, row);
|
|
100
79
|
return depth < maxDepth;
|
|
101
80
|
}));
|
|
102
|
-
|
|
103
81
|
_defineProperty(this, "getCachedIsRowExpanded", memoizeClear((children, row) => {
|
|
104
82
|
var {
|
|
105
83
|
key,
|
|
106
84
|
offsetRow
|
|
107
85
|
} = this.getCachedModelRowOffset(children, row);
|
|
108
|
-
|
|
109
86
|
if (key != null) {
|
|
110
87
|
var model = children.get(key);
|
|
111
|
-
|
|
112
88
|
if (model !== undefined) {
|
|
113
89
|
return model.isRowExpanded(offsetRow);
|
|
114
90
|
}
|
|
115
91
|
}
|
|
116
|
-
|
|
117
92
|
return children.has(offsetRow);
|
|
118
93
|
}));
|
|
119
|
-
|
|
120
94
|
_defineProperty(this, "getCachedDepthForRow", memoizeClear((children, row) => {
|
|
121
95
|
var {
|
|
122
96
|
key,
|
|
123
97
|
offsetRow
|
|
124
98
|
} = this.getCachedModelRowOffset(children, row);
|
|
125
|
-
|
|
126
99
|
if (key != null) {
|
|
127
100
|
var model = children.get(key);
|
|
128
|
-
|
|
129
101
|
if (model !== undefined) {
|
|
130
102
|
return model.depthForRow(offsetRow) + 1;
|
|
131
103
|
}
|
|
132
104
|
}
|
|
133
|
-
|
|
134
105
|
return 0;
|
|
135
106
|
}));
|
|
136
|
-
|
|
137
107
|
this.children = _children;
|
|
138
108
|
this.childRowCount = _childRowCount;
|
|
139
109
|
this.maxDepth = _maxDepth;
|
|
140
110
|
}
|
|
141
|
-
|
|
142
111
|
textForCell(column, row) {
|
|
143
112
|
return this.getCachedTextForCell(this.children, column, row);
|
|
144
113
|
}
|
|
145
|
-
|
|
146
114
|
textForRowHeader(row) {
|
|
147
115
|
return this.getCachedTextForRowHeader(this.children, row);
|
|
148
116
|
}
|
|
149
|
-
|
|
150
117
|
isRowMovable(row) {
|
|
151
118
|
return false;
|
|
152
119
|
}
|
|
153
|
-
|
|
154
120
|
get hasExpandableRows() {
|
|
155
121
|
return true;
|
|
156
122
|
}
|
|
157
|
-
|
|
158
123
|
get floatingBottomRowCount() {
|
|
159
124
|
return 0;
|
|
160
125
|
}
|
|
161
|
-
|
|
162
126
|
isRowExpandable(row) {
|
|
163
127
|
return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);
|
|
164
128
|
}
|
|
165
|
-
|
|
166
129
|
isRowExpanded(row) {
|
|
167
130
|
return this.getCachedIsRowExpanded(this.children, row);
|
|
168
131
|
}
|
|
169
|
-
|
|
170
132
|
setRowExpanded(row, isExpanded) {
|
|
171
133
|
var {
|
|
172
134
|
key,
|
|
173
135
|
offsetRow
|
|
174
|
-
} = this.getCachedModelRowOffset(this.children, row);
|
|
136
|
+
} = this.getCachedModelRowOffset(this.children, row);
|
|
175
137
|
|
|
138
|
+
// We always set a new map so that our memoize functions work properly
|
|
176
139
|
var children = new Map(this.children);
|
|
177
|
-
|
|
178
140
|
if (key != null) {
|
|
179
141
|
var model = this.children.get(key);
|
|
180
|
-
|
|
181
142
|
if (model !== undefined) {
|
|
182
143
|
var {
|
|
183
144
|
rowCount: originalChildRowCount
|
|
@@ -187,7 +148,6 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
187
148
|
}
|
|
188
149
|
} else if (!isExpanded) {
|
|
189
150
|
var childModel = children.get(offsetRow);
|
|
190
|
-
|
|
191
151
|
if (childModel !== undefined) {
|
|
192
152
|
this.numRows -= childModel.rowCount;
|
|
193
153
|
children.delete(offsetRow);
|
|
@@ -200,31 +160,22 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
200
160
|
children.set(offsetRow, child);
|
|
201
161
|
this.numRows += child.rowCount;
|
|
202
162
|
}
|
|
203
|
-
|
|
204
163
|
this.children = children;
|
|
205
164
|
}
|
|
206
|
-
|
|
207
165
|
depthForRow(row) {
|
|
208
166
|
return this.getCachedDepthForRow(this.children, row);
|
|
209
167
|
}
|
|
168
|
+
|
|
210
169
|
/**
|
|
211
170
|
* Returns the map key and the offsetRow given the provided children and row index.
|
|
212
171
|
* If the returned key is null, then this offset row is within this model.
|
|
213
172
|
* Only returning the key instead of the model so that memoize doesn't cache a bunch of the children models after they've been deleted (collapsed).
|
|
214
173
|
*/
|
|
215
|
-
|
|
216
|
-
|
|
217
174
|
}
|
|
218
|
-
|
|
219
175
|
_defineProperty(MockTreeGridModel, "DEFAULT_ROW_COUNT", 1000000000);
|
|
220
|
-
|
|
221
176
|
_defineProperty(MockTreeGridModel, "DEFAULT_COLUMN_COUNT", 100);
|
|
222
|
-
|
|
223
177
|
_defineProperty(MockTreeGridModel, "DEFAULT_CHILD_ROW_COUNT_FACTOR", 0.01);
|
|
224
|
-
|
|
225
178
|
_defineProperty(MockTreeGridModel, "MIN_CHILD_ROW_COUNT", 10);
|
|
226
|
-
|
|
227
179
|
_defineProperty(MockTreeGridModel, "MAX_DEPTH", 10);
|
|
228
|
-
|
|
229
180
|
export default MockTreeGridModel;
|
|
230
181
|
//# sourceMappingURL=MockTreeGridModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTreeGridModel.js","names":["MockGridModel","memoizeClear","MockTreeGridModel","constructor","rowCount","DEFAULT_ROW_COUNT","columnCount","DEFAULT_COLUMN_COUNT","children","Map","childRowCount","Math","ceil","max","MIN_CHILD_ROW_COUNT","DEFAULT_CHILD_ROW_COUNT_FACTOR","maxDepth","MAX_DEPTH","row","key","offsetRow","sortedEntries","sort","a","b","i","length","childRow","childModel","getCachedModelRowOffset","model","get","undefined","textForRowHeader","column","textForCell","depth","getCachedDepthForRow","isRowExpanded","has","depthForRow","getCachedTextForCell","getCachedTextForRowHeader","isRowMovable","hasExpandableRows","floatingBottomRowCount","isRowExpandable","getCachedIsRowExpandable","getCachedIsRowExpanded","setRowExpanded","isExpanded","originalChildRowCount","numRows","delete","child","numColumns","set"],"sources":["../src/MockTreeGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport MockGridModel from './MockGridModel';\nimport memoizeClear from './memoizeClear';\nimport ExpandableGridModel from './ExpandableGridModel';\nimport { ModelIndex } from './GridMetrics';\n\ntype ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;\n\n/**\n * A class to mock a tree model so can test out tree models.\n * Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.\n */\nclass MockTreeGridModel extends MockGridModel implements ExpandableGridModel {\n static DEFAULT_ROW_COUNT = 1000000000;\n\n static DEFAULT_COLUMN_COUNT = 100;\n\n /** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */\n static DEFAULT_CHILD_ROW_COUNT_FACTOR = 0.01;\n\n static MIN_CHILD_ROW_COUNT = 10;\n\n static MAX_DEPTH = 10;\n\n private children: ChildrenTreeMap;\n\n private childRowCount: number;\n\n private maxDepth: number;\n\n constructor({\n rowCount = MockTreeGridModel.DEFAULT_ROW_COUNT,\n columnCount = MockTreeGridModel.DEFAULT_COLUMN_COUNT,\n children = new Map(),\n childRowCount = Math.ceil(\n Math.max(\n MockTreeGridModel.MIN_CHILD_ROW_COUNT,\n rowCount * MockTreeGridModel.DEFAULT_CHILD_ROW_COUNT_FACTOR\n )\n ),\n maxDepth = MockTreeGridModel.MAX_DEPTH,\n }: {\n children?: ChildrenTreeMap;\n columnCount?: number;\n rowCount?: number;\n childRowCount?: number;\n maxDepth?: number;\n } = {}) {\n super({ rowCount, columnCount });\n\n this.children = children;\n this.childRowCount = childRowCount;\n this.maxDepth = maxDepth;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.getCachedTextForCell(this.children, column, row);\n }\n\n textForRowHeader(row: ModelIndex): string {\n return this.getCachedTextForRowHeader(this.children, row);\n }\n\n isRowMovable(row: ModelIndex): boolean {\n return false;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get floatingBottomRowCount(): number {\n return 0;\n }\n\n isRowExpandable(row: ModelIndex): boolean {\n return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);\n }\n\n isRowExpanded(row: ModelIndex): boolean {\n return this.getCachedIsRowExpanded(this.children, row);\n }\n\n setRowExpanded(row: ModelIndex, isExpanded: boolean): void {\n const { key, offsetRow } = this.getCachedModelRowOffset(this.children, row);\n\n // We always set a new map so that our memoize functions work properly\n const children = new Map(this.children);\n if (key != null) {\n const model = this.children.get(key);\n if (model !== undefined) {\n const { rowCount: originalChildRowCount } = model;\n model.setRowExpanded(offsetRow, isExpanded);\n this.numRows += model.rowCount - originalChildRowCount;\n }\n } else if (!isExpanded) {\n const childModel = children.get(offsetRow);\n if (childModel !== undefined) {\n this.numRows -= childModel.rowCount;\n children.delete(offsetRow);\n }\n } else {\n const child = new MockTreeGridModel({\n rowCount: this.childRowCount,\n columnCount: this.numColumns,\n });\n children.set(offsetRow, child);\n this.numRows += child.rowCount;\n }\n\n this.children = children;\n }\n\n depthForRow(row: ModelIndex): number {\n return this.getCachedDepthForRow(this.children, row);\n }\n\n /**\n * Returns the map key and the offsetRow given the provided children and row index.\n * If the returned key is null, then this offset row is within this model.\n * Only returning the key instead of the model so that memoize doesn't cache a bunch of the children models after they've been deleted (collapsed).\n */\n getCachedModelRowOffset = memoizeClear(\n (\n children: ChildrenTreeMap,\n row: ModelIndex\n ): { key: ModelIndex | null; offsetRow: ModelIndex } => {\n let key = null;\n let offsetRow = row;\n // Need to iterate through the map in order... sort it first\n const sortedEntries = [...children].sort((a, b) => a[0] - b[0]);\n for (let i = 0; i < sortedEntries.length; i += 1) {\n const [childRow, childModel] = sortedEntries[i];\n if (offsetRow <= childRow) {\n break;\n }\n const childRowCount = childModel.rowCount;\n if (offsetRow <= childRow + childRowCount) {\n key = childRow;\n offsetRow = offsetRow - childRow - 1;\n break;\n }\n offsetRow -= childRowCount;\n }\n\n return { key, offsetRow };\n }\n );\n\n getCachedTextForRowHeader = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForRowHeader(offsetRow)}`;\n }\n }\n\n return `${offsetRow}`;\n }\n );\n\n getCachedTextForCell = memoizeClear(\n (\n children: ChildrenTreeMap,\n column: ModelIndex,\n row: ModelIndex\n ): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForCell(column, offsetRow)}`;\n }\n }\n\n return `${column},${offsetRow}`;\n }\n );\n\n getCachedIsRowExpandable = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex, maxDepth: number): boolean => {\n const depth = this.getCachedDepthForRow(children, row);\n\n return depth < maxDepth;\n }\n );\n\n getCachedIsRowExpanded = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): boolean => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.isRowExpanded(offsetRow);\n }\n }\n\n return children.has(offsetRow);\n }\n );\n\n getCachedDepthForRow = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): number => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.depthForRow(offsetRow) + 1;\n }\n }\n\n return 0;\n }\n );\n}\n\nexport default MockTreeGridModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MockTreeGridModel.js","names":["MockGridModel","memoizeClear","MockTreeGridModel","constructor","rowCount","DEFAULT_ROW_COUNT","columnCount","DEFAULT_COLUMN_COUNT","children","Map","childRowCount","Math","ceil","max","MIN_CHILD_ROW_COUNT","DEFAULT_CHILD_ROW_COUNT_FACTOR","maxDepth","MAX_DEPTH","row","key","offsetRow","sortedEntries","sort","a","b","i","length","childRow","childModel","getCachedModelRowOffset","model","get","undefined","textForRowHeader","column","textForCell","depth","getCachedDepthForRow","isRowExpanded","has","depthForRow","getCachedTextForCell","getCachedTextForRowHeader","isRowMovable","hasExpandableRows","floatingBottomRowCount","isRowExpandable","getCachedIsRowExpandable","getCachedIsRowExpanded","setRowExpanded","isExpanded","originalChildRowCount","numRows","delete","child","numColumns","set"],"sources":["../src/MockTreeGridModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport MockGridModel from './MockGridModel';\nimport memoizeClear from './memoizeClear';\nimport ExpandableGridModel from './ExpandableGridModel';\nimport { ModelIndex } from './GridMetrics';\n\ntype ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;\n\n/**\n * A class to mock a tree model so can test out tree models.\n * Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.\n */\nclass MockTreeGridModel extends MockGridModel implements ExpandableGridModel {\n static DEFAULT_ROW_COUNT = 1000000000;\n\n static DEFAULT_COLUMN_COUNT = 100;\n\n /** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */\n static DEFAULT_CHILD_ROW_COUNT_FACTOR = 0.01;\n\n static MIN_CHILD_ROW_COUNT = 10;\n\n static MAX_DEPTH = 10;\n\n private children: ChildrenTreeMap;\n\n private childRowCount: number;\n\n private maxDepth: number;\n\n constructor({\n rowCount = MockTreeGridModel.DEFAULT_ROW_COUNT,\n columnCount = MockTreeGridModel.DEFAULT_COLUMN_COUNT,\n children = new Map(),\n childRowCount = Math.ceil(\n Math.max(\n MockTreeGridModel.MIN_CHILD_ROW_COUNT,\n rowCount * MockTreeGridModel.DEFAULT_CHILD_ROW_COUNT_FACTOR\n )\n ),\n maxDepth = MockTreeGridModel.MAX_DEPTH,\n }: {\n children?: ChildrenTreeMap;\n columnCount?: number;\n rowCount?: number;\n childRowCount?: number;\n maxDepth?: number;\n } = {}) {\n super({ rowCount, columnCount });\n\n this.children = children;\n this.childRowCount = childRowCount;\n this.maxDepth = maxDepth;\n }\n\n textForCell(column: ModelIndex, row: ModelIndex): string {\n return this.getCachedTextForCell(this.children, column, row);\n }\n\n textForRowHeader(row: ModelIndex): string {\n return this.getCachedTextForRowHeader(this.children, row);\n }\n\n isRowMovable(row: ModelIndex): boolean {\n return false;\n }\n\n get hasExpandableRows(): boolean {\n return true;\n }\n\n get floatingBottomRowCount(): number {\n return 0;\n }\n\n isRowExpandable(row: ModelIndex): boolean {\n return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);\n }\n\n isRowExpanded(row: ModelIndex): boolean {\n return this.getCachedIsRowExpanded(this.children, row);\n }\n\n setRowExpanded(row: ModelIndex, isExpanded: boolean): void {\n const { key, offsetRow } = this.getCachedModelRowOffset(this.children, row);\n\n // We always set a new map so that our memoize functions work properly\n const children = new Map(this.children);\n if (key != null) {\n const model = this.children.get(key);\n if (model !== undefined) {\n const { rowCount: originalChildRowCount } = model;\n model.setRowExpanded(offsetRow, isExpanded);\n this.numRows += model.rowCount - originalChildRowCount;\n }\n } else if (!isExpanded) {\n const childModel = children.get(offsetRow);\n if (childModel !== undefined) {\n this.numRows -= childModel.rowCount;\n children.delete(offsetRow);\n }\n } else {\n const child = new MockTreeGridModel({\n rowCount: this.childRowCount,\n columnCount: this.numColumns,\n });\n children.set(offsetRow, child);\n this.numRows += child.rowCount;\n }\n\n this.children = children;\n }\n\n depthForRow(row: ModelIndex): number {\n return this.getCachedDepthForRow(this.children, row);\n }\n\n /**\n * Returns the map key and the offsetRow given the provided children and row index.\n * If the returned key is null, then this offset row is within this model.\n * Only returning the key instead of the model so that memoize doesn't cache a bunch of the children models after they've been deleted (collapsed).\n */\n getCachedModelRowOffset = memoizeClear(\n (\n children: ChildrenTreeMap,\n row: ModelIndex\n ): { key: ModelIndex | null; offsetRow: ModelIndex } => {\n let key = null;\n let offsetRow = row;\n // Need to iterate through the map in order... sort it first\n const sortedEntries = [...children].sort((a, b) => a[0] - b[0]);\n for (let i = 0; i < sortedEntries.length; i += 1) {\n const [childRow, childModel] = sortedEntries[i];\n if (offsetRow <= childRow) {\n break;\n }\n const childRowCount = childModel.rowCount;\n if (offsetRow <= childRow + childRowCount) {\n key = childRow;\n offsetRow = offsetRow - childRow - 1;\n break;\n }\n offsetRow -= childRowCount;\n }\n\n return { key, offsetRow };\n }\n );\n\n getCachedTextForRowHeader = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForRowHeader(offsetRow)}`;\n }\n }\n\n return `${offsetRow}`;\n }\n );\n\n getCachedTextForCell = memoizeClear(\n (\n children: ChildrenTreeMap,\n column: ModelIndex,\n row: ModelIndex\n ): string => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return `${key}.${model.textForCell(column, offsetRow)}`;\n }\n }\n\n return `${column},${offsetRow}`;\n }\n );\n\n getCachedIsRowExpandable = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex, maxDepth: number): boolean => {\n const depth = this.getCachedDepthForRow(children, row);\n\n return depth < maxDepth;\n }\n );\n\n getCachedIsRowExpanded = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): boolean => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.isRowExpanded(offsetRow);\n }\n }\n\n return children.has(offsetRow);\n }\n );\n\n getCachedDepthForRow = memoizeClear(\n (children: ChildrenTreeMap, row: ModelIndex): number => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n if (model !== undefined) {\n return model.depthForRow(offsetRow) + 1;\n }\n }\n\n return 0;\n }\n );\n}\n\nexport default MockTreeGridModel;\n"],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
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; }
|
|
2
|
-
|
|
3
2
|
import GridModel from "./GridModel.js";
|
|
4
3
|
/**
|
|
5
4
|
* A simple model that displays static data
|
|
6
5
|
*/
|
|
7
|
-
|
|
8
6
|
class StaticDataGridModel extends GridModel {
|
|
9
7
|
/**
|
|
10
8
|
* Create a model using the static data provided
|
|
@@ -13,41 +11,28 @@ class StaticDataGridModel extends GridModel {
|
|
|
13
11
|
*/
|
|
14
12
|
constructor(data, columnHeaders) {
|
|
15
13
|
var _columnHeaders$length;
|
|
16
|
-
|
|
17
14
|
super();
|
|
18
|
-
|
|
19
15
|
_defineProperty(this, "data", void 0);
|
|
20
|
-
|
|
21
16
|
_defineProperty(this, "columnHeaders", void 0);
|
|
22
|
-
|
|
23
17
|
_defineProperty(this, "numberOfColumns", void 0);
|
|
24
|
-
|
|
25
18
|
this.data = data;
|
|
26
19
|
this.numberOfColumns = Math.max(...data.map(row => row.length), (_columnHeaders$length = columnHeaders === null || columnHeaders === void 0 ? void 0 : columnHeaders.length) !== null && _columnHeaders$length !== void 0 ? _columnHeaders$length : 0);
|
|
27
20
|
this.columnHeaders = columnHeaders;
|
|
28
21
|
}
|
|
29
|
-
|
|
30
22
|
get rowCount() {
|
|
31
23
|
return this.data.length;
|
|
32
24
|
}
|
|
33
|
-
|
|
34
25
|
get columnCount() {
|
|
35
26
|
return this.numberOfColumns;
|
|
36
27
|
}
|
|
37
|
-
|
|
38
28
|
textForCell(column, row) {
|
|
39
29
|
var _this$data$row;
|
|
40
|
-
|
|
41
30
|
return "".concat((_this$data$row = this.data[row]) === null || _this$data$row === void 0 ? void 0 : _this$data$row[column]);
|
|
42
31
|
}
|
|
43
|
-
|
|
44
32
|
textForColumnHeader(column) {
|
|
45
33
|
var _this$columnHeaders$c, _this$columnHeaders;
|
|
46
|
-
|
|
47
34
|
return (_this$columnHeaders$c = (_this$columnHeaders = this.columnHeaders) === null || _this$columnHeaders === void 0 ? void 0 : _this$columnHeaders[column]) !== null && _this$columnHeaders$c !== void 0 ? _this$columnHeaders$c : '';
|
|
48
35
|
}
|
|
49
|
-
|
|
50
36
|
}
|
|
51
|
-
|
|
52
37
|
export default StaticDataGridModel;
|
|
53
38
|
//# sourceMappingURL=StaticDataGridModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StaticDataGridModel.js","names":["GridModel","StaticDataGridModel","constructor","data","columnHeaders","numberOfColumns","Math","max","map","row","length","rowCount","columnCount","textForCell","column","textForColumnHeader"],"sources":["../src/StaticDataGridModel.ts"],"sourcesContent":["import GridModel from './GridModel';\n\n/**\n * A simple model that displays static data\n */\nclass StaticDataGridModel extends GridModel {\n private data: unknown[][];\n\n private columnHeaders?: string[];\n\n private numberOfColumns: number;\n\n /**\n * Create a model using the static data provided\n * @param data Row data to display. First dimension is the number of rows, second dimension is the value for each column. Row/column count is derived from the data, and it is stringified for display.\n * @param columnHeaders Optional names for the column headers\n */\n constructor(data: unknown[][], columnHeaders?: string[]) {\n super();\n\n this.data = data;\n this.numberOfColumns = Math.max(\n ...data.map(row => row.length),\n columnHeaders?.length ?? 0\n );\n this.columnHeaders = columnHeaders;\n }\n\n get rowCount(): number {\n return this.data.length;\n }\n\n get columnCount(): number {\n return this.numberOfColumns;\n }\n\n textForCell(column: number, row: number): string {\n return `${this.data[row]?.[column]}`;\n }\n\n textForColumnHeader(column: number): string {\n return this.columnHeaders?.[column] ?? '';\n }\n}\n\nexport default StaticDataGridModel;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"StaticDataGridModel.js","names":["GridModel","StaticDataGridModel","constructor","data","columnHeaders","numberOfColumns","Math","max","map","row","length","rowCount","columnCount","textForCell","column","textForColumnHeader"],"sources":["../src/StaticDataGridModel.ts"],"sourcesContent":["import GridModel from './GridModel';\n\n/**\n * A simple model that displays static data\n */\nclass StaticDataGridModel extends GridModel {\n private data: unknown[][];\n\n private columnHeaders?: string[];\n\n private numberOfColumns: number;\n\n /**\n * Create a model using the static data provided\n * @param data Row data to display. First dimension is the number of rows, second dimension is the value for each column. Row/column count is derived from the data, and it is stringified for display.\n * @param columnHeaders Optional names for the column headers\n */\n constructor(data: unknown[][], columnHeaders?: string[]) {\n super();\n\n this.data = data;\n this.numberOfColumns = Math.max(\n ...data.map(row => row.length),\n columnHeaders?.length ?? 0\n );\n this.columnHeaders = columnHeaders;\n }\n\n get rowCount(): number {\n return this.data.length;\n }\n\n get columnCount(): number {\n return this.numberOfColumns;\n }\n\n textForCell(column: number, row: number): string {\n return `${this.data[row]?.[column]}`;\n }\n\n textForColumnHeader(column: number): string {\n return this.columnHeaders?.[column] ?? '';\n }\n}\n\nexport default StaticDataGridModel;\n"],"mappings":";OAAOA,SAAS;AAEhB;AACA;AACA;AACA,MAAMC,mBAAmB,SAASD,SAAS,CAAC;EAO1C;AACF;AACA;AACA;AACA;EACEE,WAAW,CAACC,IAAiB,EAAEC,aAAwB,EAAE;IAAA;IACvD,KAAK,EAAE;IAAC;IAAA;IAAA;IAER,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACE,eAAe,GAAGC,IAAI,CAACC,GAAG,CAC7B,GAAGJ,IAAI,CAACK,GAAG,CAACC,GAAG,IAAIA,GAAG,CAACC,MAAM,CAAC,2BAC9BN,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEM,MAAM,yEAAI,CAAC,CAC3B;IACD,IAAI,CAACN,aAAa,GAAGA,aAAa;EACpC;EAEA,IAAIO,QAAQ,GAAW;IACrB,OAAO,IAAI,CAACR,IAAI,CAACO,MAAM;EACzB;EAEA,IAAIE,WAAW,GAAW;IACxB,OAAO,IAAI,CAACP,eAAe;EAC7B;EAEAQ,WAAW,CAACC,MAAc,EAAEL,GAAW,EAAU;IAAA;IAC/C,mCAAU,IAAI,CAACN,IAAI,CAACM,GAAG,CAAC,mDAAd,eAAiBK,MAAM,CAAC;EACpC;EAEAC,mBAAmB,CAACD,MAAc,EAAU;IAAA;IAC1C,uDAAO,IAAI,CAACV,aAAa,wDAAlB,oBAAqBU,MAAM,CAAC,yEAAI,EAAE;EAC3C;AACF;AAEA,eAAeb,mBAAmB"}
|
package/dist/ThemeContext.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeContext.js","names":["React","ThemeContext","createContext"],"sources":["../src/ThemeContext.ts"],"sourcesContent":["import React from 'react';\nimport { GridTheme as GridThemeType } from './GridTheme';\n\nexport const ThemeContext: React.Context<\n Partial<GridThemeType>\n> = React.createContext({});\n\nexport default ThemeContext;\n"],"mappings":"AAAA,OAAOA,
|
|
1
|
+
{"version":3,"file":"ThemeContext.js","names":["React","ThemeContext","createContext"],"sources":["../src/ThemeContext.ts"],"sourcesContent":["import React from 'react';\nimport { GridTheme as GridThemeType } from './GridTheme';\n\nexport const ThemeContext: React.Context<\n Partial<GridThemeType>\n> = React.createContext({});\n\nexport default ThemeContext;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,OAAO,IAAMC,YAEZ,gBAAGD,KAAK,CAACE,aAAa,CAAC,CAAC,CAAC,CAAC;AAE3B,eAAeD,YAAY"}
|