@deephaven/grid 0.7.3-beta.0 → 0.8.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 +4 -4
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +10 -11
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.d.ts +70 -0
- package/dist/EditableGridModel.d.ts.map +1 -0
- package/dist/EditableGridModel.js +13 -0
- package/dist/EditableGridModel.js.map +1 -0
- package/dist/EventHandlerResult.d.ts +17 -0
- package/dist/EventHandlerResult.d.ts.map +1 -0
- package/dist/EventHandlerResult.js +2 -0
- package/dist/EventHandlerResult.js.map +1 -0
- package/dist/ExpandableGridModel.d.ts +34 -0
- package/dist/ExpandableGridModel.d.ts.map +1 -0
- package/dist/ExpandableGridModel.js +7 -0
- package/dist/ExpandableGridModel.js.map +1 -0
- package/dist/Grid.d.ts +283 -234
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +397 -165
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.d.ts +22 -12
- package/dist/GridColorUtils.d.ts.map +1 -1
- package/dist/GridColorUtils.js +26 -21
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +8 -4
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.d.ts +54 -60
- package/dist/GridModel.d.ts.map +1 -1
- package/dist/GridModel.js +54 -122
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.d.ts +23 -24
- package/dist/GridMouseHandler.d.ts.map +1 -1
- package/dist/GridMouseHandler.js +8 -14
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.d.ts +2 -2
- package/dist/GridRange.d.ts.map +1 -1
- package/dist/GridRange.js +1 -1
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts +117 -69
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +183 -168
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +4 -4
- package/dist/GridUtils.js +4 -4
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.d.ts +10 -7
- package/dist/KeyHandler.d.ts.map +1 -1
- package/dist/KeyHandler.js +6 -5
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.d.ts +1 -1
- package/dist/MockGridData.d.ts.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.d.ts +39 -12
- package/dist/MockGridModel.d.ts.map +1 -1
- package/dist/MockGridModel.js +43 -10
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.d.ts +37 -22
- package/dist/MockTreeGridModel.d.ts.map +1 -1
- package/dist/MockTreeGridModel.js +38 -20
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/errors/AssertionError.d.ts +5 -0
- package/dist/errors/AssertionError.d.ts.map +1 -0
- package/dist/errors/AssertionError.js +12 -0
- package/dist/errors/AssertionError.js.map +1 -0
- package/dist/errors/PasteError.d.ts +1 -1
- package/dist/errors/PasteError.d.ts.map +1 -1
- package/dist/errors/PasteError.js +1 -2
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.d.ts +3 -0
- package/dist/errors/assertIsDefined.d.ts.map +1 -0
- package/dist/errors/assertIsDefined.js +8 -0
- package/dist/errors/assertIsDefined.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
- package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +10 -9
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
- package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +3 -3
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
- package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +16 -15
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
- package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +14 -12
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/memoizeClear.d.ts +13 -3
- package/dist/memoizeClear.d.ts.map +1 -1
- package/dist/memoizeClear.js +7 -7
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
- package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +3 -2
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +13 -10
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +41 -37
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +14 -11
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +26 -16
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +57 -74
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +41 -37
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
package/dist/MockGridModel.js
CHANGED
|
@@ -2,12 +2,17 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
2
2
|
|
|
3
3
|
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
4
|
|
|
5
|
+
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
|
+
|
|
5
7
|
/* eslint class-methods-use-this: "off" */
|
|
6
8
|
|
|
7
9
|
/* eslint no-unused-vars: "off" */
|
|
8
10
|
import GridModel from "./GridModel.js";
|
|
9
11
|
import GridRange from "./GridRange.js";
|
|
10
12
|
|
|
13
|
+
/**
|
|
14
|
+
* Mock model implementing GridModel for testing out grid functionality
|
|
15
|
+
*/
|
|
11
16
|
class MockGridModel extends GridModel {
|
|
12
17
|
constructor() {
|
|
13
18
|
var {
|
|
@@ -17,17 +22,35 @@ class MockGridModel extends GridModel {
|
|
|
17
22
|
floatingBottomRowCount = 0,
|
|
18
23
|
floatingLeftColumnCount = 0,
|
|
19
24
|
floatingRightColumnCount = 0,
|
|
20
|
-
isEditable = false
|
|
25
|
+
isEditable = false,
|
|
26
|
+
editedData = []
|
|
21
27
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
22
28
|
super();
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "numRows", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "numColumns", void 0);
|
|
33
|
+
|
|
34
|
+
_defineProperty(this, "floatingTop", void 0);
|
|
35
|
+
|
|
36
|
+
_defineProperty(this, "floatingBottom", void 0);
|
|
37
|
+
|
|
38
|
+
_defineProperty(this, "floatingLeft", void 0);
|
|
39
|
+
|
|
40
|
+
_defineProperty(this, "floatingRight", void 0);
|
|
41
|
+
|
|
42
|
+
_defineProperty(this, "editable", void 0);
|
|
43
|
+
|
|
44
|
+
_defineProperty(this, "editedData", void 0);
|
|
45
|
+
|
|
23
46
|
this.numRows = rowCount;
|
|
24
47
|
this.numColumns = columnCount;
|
|
25
48
|
this.floatingTop = floatingTopRowCount;
|
|
26
49
|
this.floatingBottom = floatingBottomRowCount;
|
|
27
50
|
this.floatingLeft = floatingLeftColumnCount;
|
|
28
51
|
this.floatingRight = floatingRightColumnCount;
|
|
29
|
-
this.editedData = [];
|
|
30
52
|
this.editable = isEditable;
|
|
53
|
+
this.editedData = editedData;
|
|
31
54
|
}
|
|
32
55
|
|
|
33
56
|
get rowCount() {
|
|
@@ -80,15 +103,15 @@ class MockGridModel extends GridModel {
|
|
|
80
103
|
return "".concat(row);
|
|
81
104
|
}
|
|
82
105
|
|
|
83
|
-
setValueForCell(
|
|
106
|
+
setValueForCell(column, row, value) {
|
|
84
107
|
var _this = this;
|
|
85
108
|
|
|
86
109
|
return _asyncToGenerator(function* () {
|
|
87
|
-
if (_this.editedData[
|
|
88
|
-
_this.editedData[
|
|
110
|
+
if (_this.editedData[column] == null) {
|
|
111
|
+
_this.editedData[column] = [];
|
|
89
112
|
}
|
|
90
113
|
|
|
91
|
-
_this.editedData[
|
|
114
|
+
_this.editedData[column][row] = "".concat(value);
|
|
92
115
|
})();
|
|
93
116
|
}
|
|
94
117
|
|
|
@@ -107,21 +130,31 @@ class MockGridModel extends GridModel {
|
|
|
107
130
|
|
|
108
131
|
return _asyncToGenerator(function* () {
|
|
109
132
|
for (var i = 0; i < edits.length; i += 1) {
|
|
133
|
+
var _edit$column, _edit$row;
|
|
134
|
+
|
|
110
135
|
var edit = edits[i];
|
|
111
136
|
|
|
112
|
-
_this3.setValueForCell(edit.x, edit.y, edit.text);
|
|
137
|
+
_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);
|
|
113
138
|
}
|
|
114
139
|
})();
|
|
115
140
|
}
|
|
116
141
|
|
|
117
|
-
editValueForCell(
|
|
118
|
-
return this.textForCell(
|
|
142
|
+
editValueForCell(column, row) {
|
|
143
|
+
return this.textForCell(column, row);
|
|
119
144
|
}
|
|
120
145
|
|
|
121
|
-
isValidForCell(
|
|
146
|
+
isValidForCell(column, row, value) {
|
|
122
147
|
return true;
|
|
123
148
|
}
|
|
124
149
|
|
|
150
|
+
isEditableRange(range) {
|
|
151
|
+
return this.isEditable;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
delete(ranges) {
|
|
155
|
+
throw new Error('Method not implemented.');
|
|
156
|
+
}
|
|
157
|
+
|
|
125
158
|
}
|
|
126
159
|
|
|
127
160
|
export default MockGridModel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/MockGridModel.
|
|
1
|
+
{"version":3,"sources":["../src/MockGridModel.ts"],"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","textForRowHeader","textForRowFooter","setValueForCell","value","setValueForRanges","ranges","text","forEachCell","x","y","setValues","edits","i","length","edit","editValueForCell","isValidForCell","isEditableRange","range","delete","Error"],"mappings":"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","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): 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"],"file":"MockGridModel.js"}
|
|
@@ -1,40 +1,55 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="memoizee" />
|
|
2
|
+
import MockGridModel from './MockGridModel';
|
|
3
|
+
import ExpandableGridModel from './ExpandableGridModel';
|
|
4
|
+
import { ModelIndex } from './GridMetrics';
|
|
5
|
+
declare type ChildrenTreeMap = Map<ModelIndex, MockTreeGridModel>;
|
|
2
6
|
/**
|
|
3
7
|
* A class to mock a tree model so can test out tree models.
|
|
4
8
|
* Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.
|
|
5
9
|
*/
|
|
6
|
-
declare class MockTreeGridModel extends MockGridModel {
|
|
10
|
+
declare class MockTreeGridModel extends MockGridModel implements ExpandableGridModel {
|
|
7
11
|
static DEFAULT_ROW_COUNT: number;
|
|
8
12
|
static DEFAULT_COLUMN_COUNT: number;
|
|
9
13
|
/** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */
|
|
10
14
|
static DEFAULT_CHILD_ROW_COUNT_FACTOR: number;
|
|
11
15
|
static MIN_CHILD_ROW_COUNT: number;
|
|
12
16
|
static MAX_DEPTH: number;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
17
|
+
private children;
|
|
18
|
+
private childRowCount;
|
|
19
|
+
private maxDepth;
|
|
20
|
+
constructor({ rowCount, columnCount, children, childRowCount, maxDepth, }?: {
|
|
21
|
+
children?: ChildrenTreeMap;
|
|
22
|
+
columnCount?: number;
|
|
23
|
+
rowCount?: number;
|
|
24
|
+
childRowCount?: number;
|
|
25
|
+
maxDepth?: number;
|
|
22
26
|
});
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
textForCell(column: ModelIndex, row: ModelIndex): string;
|
|
28
|
+
textForRowHeader(row: ModelIndex): string;
|
|
29
|
+
isRowMovable(row: ModelIndex): boolean;
|
|
30
|
+
get hasExpandableRows(): boolean;
|
|
31
|
+
get floatingBottomRowCount(): number;
|
|
32
|
+
isRowExpandable(row: ModelIndex): boolean;
|
|
33
|
+
isRowExpanded(row: ModelIndex): boolean;
|
|
34
|
+
setRowExpanded(row: ModelIndex, isExpanded: boolean): void;
|
|
35
|
+
depthForRow(row: ModelIndex): number;
|
|
27
36
|
/**
|
|
28
37
|
* Returns the map key and the offsetRow given the provided children and row index.
|
|
29
38
|
* If the returned key is null, then this offset row is within this model.
|
|
30
39
|
* 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).
|
|
31
40
|
*/
|
|
32
|
-
getCachedModelRowOffset: ((
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
41
|
+
getCachedModelRowOffset: ((children: ChildrenTreeMap, row: ModelIndex) => {
|
|
42
|
+
key: ModelIndex | null;
|
|
43
|
+
offsetRow: ModelIndex;
|
|
44
|
+
}) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => {
|
|
45
|
+
key: ModelIndex | null;
|
|
46
|
+
offsetRow: ModelIndex;
|
|
47
|
+
}>;
|
|
48
|
+
getCachedTextForRowHeader: ((children: ChildrenTreeMap, row: ModelIndex) => string) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => string>;
|
|
49
|
+
getCachedTextForCell: ((children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string) & import("memoizee").Memoized<(children: ChildrenTreeMap, column: ModelIndex, row: ModelIndex) => string>;
|
|
50
|
+
getCachedIsRowExpandable: ((children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex, maxDepth: number) => boolean>;
|
|
51
|
+
getCachedIsRowExpanded: ((children: ChildrenTreeMap, row: ModelIndex) => boolean) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => boolean>;
|
|
52
|
+
getCachedDepthForRow: ((children: ChildrenTreeMap, row: ModelIndex) => number) & import("memoizee").Memoized<(children: ChildrenTreeMap, row: ModelIndex) => number>;
|
|
38
53
|
}
|
|
39
|
-
|
|
54
|
+
export default MockTreeGridModel;
|
|
40
55
|
//# sourceMappingURL=MockTreeGridModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MockTreeGridModel.d.ts","sourceRoot":"","sources":["../src/MockTreeGridModel.
|
|
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,aAAK,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;sEAD3C,UAAU;aACP,UAAU,GAAG,IAAI;mBAAa,UAAU;OAqBlD;IAEF,yBAAyB,oCACU,UAAU,KAAG,MAAM,iEAAnB,UAAU,KAAG,MAAM,EAYpD;IAEF,oBAAoB,uCAGR,UAAU,OACb,UAAU,KACd,MAAM,oEAFC,UAAU,OACb,UAAU,KACd,MAAM,EAYT;IAEF,wBAAwB,oCACW,UAAU,YAAY,MAAM,KAAG,OAAO,iEAAtC,UAAU,YAAY,MAAM,KAAG,OAAO,EAKvE;IAEF,sBAAsB,oCACa,UAAU,KAAG,OAAO,iEAApB,UAAU,KAAG,OAAO,EAYrD;IAEF,oBAAoB,oCACe,UAAU,KAAG,MAAM,iEAAnB,UAAU,KAAG,MAAM,EAYpD;CACH;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -5,11 +5,11 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
|
|
|
5
5
|
/* eslint no-unused-vars: "off" */
|
|
6
6
|
import MockGridModel from "./MockGridModel.js";
|
|
7
7
|
import memoizeClear from "./memoizeClear.js";
|
|
8
|
+
|
|
8
9
|
/**
|
|
9
10
|
* A class to mock a tree model so can test out tree models.
|
|
10
11
|
* Whenever a row is expanded, it creates a child model for that row, which can then make a child for those rows, etc.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
13
|
class MockTreeGridModel extends MockGridModel {
|
|
14
14
|
/** How many rows a child tree should have related to the parent. Eg. if parent has 10000 rows, child will have 100 */
|
|
15
15
|
constructor() {
|
|
@@ -18,18 +18,19 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
18
18
|
columnCount = MockTreeGridModel.DEFAULT_COLUMN_COUNT,
|
|
19
19
|
children: _children = new Map(),
|
|
20
20
|
childRowCount: _childRowCount = Math.ceil(Math.max(MockTreeGridModel.MIN_CHILD_ROW_COUNT, rowCount * MockTreeGridModel.DEFAULT_CHILD_ROW_COUNT_FACTOR)),
|
|
21
|
-
maxDepth: _maxDepth = MockTreeGridModel.MAX_DEPTH
|
|
22
|
-
movedColumns = [],
|
|
23
|
-
movedRows = [],
|
|
24
|
-
columnFormatMap = new Map()
|
|
21
|
+
maxDepth: _maxDepth = MockTreeGridModel.MAX_DEPTH
|
|
25
22
|
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
26
23
|
super({
|
|
27
24
|
rowCount,
|
|
28
|
-
columnCount
|
|
29
|
-
movedColumns,
|
|
30
|
-
movedRows
|
|
25
|
+
columnCount
|
|
31
26
|
});
|
|
32
27
|
|
|
28
|
+
_defineProperty(this, "children", void 0);
|
|
29
|
+
|
|
30
|
+
_defineProperty(this, "childRowCount", void 0);
|
|
31
|
+
|
|
32
|
+
_defineProperty(this, "maxDepth", void 0);
|
|
33
|
+
|
|
33
34
|
_defineProperty(this, "getCachedModelRowOffset", memoizeClear((children, row) => {
|
|
34
35
|
var key = null;
|
|
35
36
|
var offsetRow = row; // Need to iterate through the map in order... sort it first
|
|
@@ -68,7 +69,10 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
68
69
|
|
|
69
70
|
if (key != null) {
|
|
70
71
|
var model = children.get(key);
|
|
71
|
-
|
|
72
|
+
|
|
73
|
+
if (model !== undefined) {
|
|
74
|
+
return "".concat(key, ".").concat(model.textForRowHeader(offsetRow));
|
|
75
|
+
}
|
|
72
76
|
}
|
|
73
77
|
|
|
74
78
|
return "".concat(offsetRow);
|
|
@@ -82,7 +86,10 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
82
86
|
|
|
83
87
|
if (key != null) {
|
|
84
88
|
var model = children.get(key);
|
|
85
|
-
|
|
89
|
+
|
|
90
|
+
if (model !== undefined) {
|
|
91
|
+
return "".concat(key, ".").concat(model.textForCell(column, offsetRow));
|
|
92
|
+
}
|
|
86
93
|
}
|
|
87
94
|
|
|
88
95
|
return "".concat(column, ",").concat(offsetRow);
|
|
@@ -101,7 +108,10 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
101
108
|
|
|
102
109
|
if (key != null) {
|
|
103
110
|
var model = children.get(key);
|
|
104
|
-
|
|
111
|
+
|
|
112
|
+
if (model !== undefined) {
|
|
113
|
+
return model.isRowExpanded(offsetRow);
|
|
114
|
+
}
|
|
105
115
|
}
|
|
106
116
|
|
|
107
117
|
return children.has(offsetRow);
|
|
@@ -115,7 +125,10 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
115
125
|
|
|
116
126
|
if (key != null) {
|
|
117
127
|
var model = children.get(key);
|
|
118
|
-
|
|
128
|
+
|
|
129
|
+
if (model !== undefined) {
|
|
130
|
+
return model.depthForRow(offsetRow) + 1;
|
|
131
|
+
}
|
|
119
132
|
}
|
|
120
133
|
|
|
121
134
|
return 0;
|
|
@@ -124,7 +137,6 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
124
137
|
this.children = _children;
|
|
125
138
|
this.childRowCount = _childRowCount;
|
|
126
139
|
this.maxDepth = _maxDepth;
|
|
127
|
-
this.formatMap = columnFormatMap;
|
|
128
140
|
}
|
|
129
141
|
|
|
130
142
|
textForCell(column, row) {
|
|
@@ -165,15 +177,21 @@ class MockTreeGridModel extends MockGridModel {
|
|
|
165
177
|
|
|
166
178
|
if (key != null) {
|
|
167
179
|
var model = this.children.get(key);
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
180
|
+
|
|
181
|
+
if (model !== undefined) {
|
|
182
|
+
var {
|
|
183
|
+
rowCount: originalChildRowCount
|
|
184
|
+
} = model;
|
|
185
|
+
model.setRowExpanded(offsetRow, isExpanded);
|
|
186
|
+
this.numRows += model.rowCount - originalChildRowCount;
|
|
187
|
+
}
|
|
173
188
|
} else if (!isExpanded) {
|
|
174
189
|
var childModel = children.get(offsetRow);
|
|
175
|
-
|
|
176
|
-
|
|
190
|
+
|
|
191
|
+
if (childModel !== undefined) {
|
|
192
|
+
this.numRows -= childModel.rowCount;
|
|
193
|
+
children.delete(offsetRow);
|
|
194
|
+
}
|
|
177
195
|
} else {
|
|
178
196
|
var child = new MockTreeGridModel({
|
|
179
197
|
rowCount: this.childRowCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/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","movedColumns","movedRows","columnFormatMap","row","key","offsetRow","sortedEntries","sort","a","b","i","length","childRow","childModel","getCachedModelRowOffset","model","get","textForRowHeader","column","textForCell","depth","getCachedDepthForRow","isRowExpanded","has","depthForRow","formatMap","getCachedTextForCell","getCachedTextForRowHeader","isRowMovable","hasExpandableRows","floatingBottomRowCount","isRowExpandable","getCachedIsRowExpandable","getCachedIsRowExpanded","setRowExpanded","isExpanded","originalChildRowCount","numRows","delete","child","numColumns","set"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\n/* eslint no-unused-vars: \"off\" */\nimport MockGridModel from './MockGridModel';\nimport memoizeClear from './memoizeClear';\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 {\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 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 movedColumns = [],\n movedRows = [],\n columnFormatMap = new Map(),\n } = {}) {\n super({ rowCount, columnCount, movedColumns, movedRows });\n\n this.children = children;\n this.childRowCount = childRowCount;\n this.maxDepth = maxDepth;\n this.formatMap = columnFormatMap;\n }\n\n textForCell(column, row) {\n return this.getCachedTextForCell(this.children, column, row);\n }\n\n textForRowHeader(row) {\n return this.getCachedTextForRowHeader(this.children, row);\n }\n\n isRowMovable(row) {\n return false;\n }\n\n get hasExpandableRows() {\n return true;\n }\n\n get floatingBottomRowCount() {\n return 0;\n }\n\n isRowExpandable(row) {\n return this.getCachedIsRowExpandable(this.children, row, this.maxDepth);\n }\n\n isRowExpanded(row) {\n return this.getCachedIsRowExpanded(this.children, row);\n }\n\n setRowExpanded(row, isExpanded) {\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 const { rowCount: originalChildRowCount } = model;\n model.setRowExpanded(offsetRow, isExpanded);\n this.numRows += model.rowCount - originalChildRowCount;\n } else if (!isExpanded) {\n const childModel = children.get(offsetRow);\n this.numRows -= childModel.rowCount;\n children.delete(offsetRow);\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) {\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((children, row) => {\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 getCachedTextForRowHeader = memoizeClear((children, row) => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n return `${key}.${model.textForRowHeader(offsetRow)}`;\n }\n\n return `${offsetRow}`;\n });\n\n getCachedTextForCell = memoizeClear((children, column, row) => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n return `${key}.${model.textForCell(column, offsetRow)}`;\n }\n\n return `${column},${offsetRow}`;\n });\n\n getCachedIsRowExpandable = memoizeClear((children, row, maxDepth) => {\n const depth = this.getCachedDepthForRow(children, row);\n\n return depth < maxDepth;\n });\n\n getCachedIsRowExpanded = memoizeClear((children, row) => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n return model.isRowExpanded(offsetRow);\n }\n\n return children.has(offsetRow);\n });\n\n getCachedDepthForRow = memoizeClear((children, row) => {\n const { key, offsetRow } = this.getCachedModelRowOffset(children, row);\n\n if (key != null) {\n const model = children.get(key);\n return model.depthForRow(offsetRow) + 1;\n }\n\n return 0;\n });\n}\n\nexport default MockTreeGridModel;\n"],"file":"MockTreeGridModel.js"}
|
|
1
|
+
{"version":3,"sources":["../src/MockTreeGridModel.ts"],"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"],"mappings":"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","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"],"file":"MockTreeGridModel.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AssertionError.d.ts","sourceRoot":"","sources":["../../src/errors/AssertionError.ts"],"names":[],"mappings":"AAAA,qBAAa,cAAe,SAAQ,KAAK;IACvC,iBAAiB,UAAQ;CAC1B;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
export class AssertionError extends Error {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
|
|
7
|
+
_defineProperty(this, "isAssertionFailed", true);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
}
|
|
11
|
+
export default AssertionError;
|
|
12
|
+
//# sourceMappingURL=AssertionError.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/errors/AssertionError.ts"],"names":["AssertionError","Error"],"mappings":";;AAAA,OAAO,MAAMA,cAAN,SAA6BC,KAA7B,CAAmC;AAAA;AAAA;;AAAA,+CACpB,IADoB;AAAA;;AAAA;AAI1C,eAAeD,cAAf","sourcesContent":["export class AssertionError extends Error {\n isAssertionFailed = true;\n}\n\nexport default AssertionError;\n"],"file":"AssertionError.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasteError.d.ts","sourceRoot":"","sources":["../../src/errors/PasteError.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"PasteError.d.ts","sourceRoot":"","sources":["../../src/errors/PasteError.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAW,SAAQ,KAAK;IACnC,YAAY,UAAQ;CACrB;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
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
2
|
|
|
3
|
-
class PasteError extends Error {
|
|
3
|
+
export class PasteError extends Error {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
|
|
@@ -8,6 +8,5 @@ class PasteError extends Error {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
}
|
|
11
|
-
|
|
12
11
|
export default PasteError;
|
|
13
12
|
//# sourceMappingURL=PasteError.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/errors/PasteError.ts"],"names":["PasteError","Error"],"mappings":";;AAAA,MAAMA,UAAN,SAAyBC,KAAzB,CAA+B;AAAA;AAAA;;AAAA,
|
|
1
|
+
{"version":3,"sources":["../../src/errors/PasteError.ts"],"names":["PasteError","Error"],"mappings":";;AAAA,OAAO,MAAMA,UAAN,SAAyBC,KAAzB,CAA+B;AAAA;AAAA;;AAAA,0CACrB,IADqB;AAAA;;AAAA;AAItC,eAAeD,UAAf","sourcesContent":["export class PasteError extends Error {\n isPasteError = true;\n}\n\nexport default PasteError;\n"],"file":"PasteError.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertIsDefined.d.ts","sourceRoot":"","sources":["../../src/errors/assertIsDefined.ts"],"names":[],"mappings":"AAEA,wBAAgB,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAMxE;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import AssertionError from "./AssertionError.js";
|
|
2
|
+
export function assertIsDefined(val) {
|
|
3
|
+
if (val === undefined || val === null) {
|
|
4
|
+
throw new AssertionError("Expected 'val' to be defined, but received ".concat(val));
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export default assertIsDefined;
|
|
8
|
+
//# sourceMappingURL=assertIsDefined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/errors/assertIsDefined.ts"],"names":["AssertionError","assertIsDefined","val","undefined"],"mappings":"OAAOA,c;AAEP,OAAO,SAASC,eAAT,CAA4BC,GAA5B,EAAmE;AACxE,MAAIA,GAAG,KAAKC,SAAR,IAAqBD,GAAG,KAAK,IAAjC,EAAuC;AACrC,UAAM,IAAIF,cAAJ,sDAC0CE,GAD1C,EAAN;AAGD;AACF;AAED,eAAeD,eAAf","sourcesContent":["import AssertionError from './AssertionError';\n\nexport function assertIsDefined<T>(val: T): asserts val is NonNullable<T> {\n if (val === undefined || val === null) {\n throw new AssertionError(\n `Expected 'val' to be defined, but received ${val}`\n );\n }\n}\n\nexport default assertIsDefined;\n"],"file":"assertIsDefined.js"}
|
package/dist/errors/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/errors/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
export { default as assertIsDefined } from "./assertIsDefined.js";
|
|
2
|
+
export { default as AssertionError } from "./AssertionError.js";
|
|
2
3
|
export { default as PasteError } from "./PasteError.js";
|
|
3
4
|
//# sourceMappingURL=index.js.map
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/errors/index.ts"],"names":["default","PasteError"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../src/errors/index.ts"],"names":["default","assertIsDefined","AssertionError","PasteError"],"mappings":"SAASA,OAAO,IAAIC,e;SACXD,OAAO,IAAIE,c;SACXF,OAAO,IAAIG,U","sourcesContent":["export { default as assertIsDefined } from './assertIsDefined';\nexport { default as AssertionError } from './AssertionError';\nexport { default as PasteError } from './PasteError';\n"],"file":"index.js"}
|
package/dist/index.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export { default as GridUtils } from './GridUtils';
|
|
|
10
10
|
export { default as KeyHandler } from './KeyHandler';
|
|
11
11
|
export { default as MockGridModel } from './MockGridModel';
|
|
12
12
|
export { default as MockTreeGridModel } from './MockTreeGridModel';
|
|
13
|
+
export { default as memoizeClear } from './memoizeClear';
|
|
13
14
|
export * from './key-handlers';
|
|
14
15
|
export * from './mouse-handlers';
|
|
15
16
|
export * from './errors';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,kBAAkB,CAAC;AACjC,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export { default as GridUtils } from "./GridUtils.js";
|
|
|
10
10
|
export { default as KeyHandler } from "./KeyHandler.js";
|
|
11
11
|
export { default as MockGridModel } from "./MockGridModel.js";
|
|
12
12
|
export { default as MockTreeGridModel } from "./MockTreeGridModel.js";
|
|
13
|
+
export { default as memoizeClear } from "./memoizeClear.js";
|
|
13
14
|
export * from "./key-handlers/index.js";
|
|
14
15
|
export * from "./mouse-handlers/index.js";
|
|
15
16
|
export * from "./errors/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":["default","Grid","GridMetricCalculator","GridModel","GridMouseHandler","GridRange","GridRenderer","GridTestUtils","GridTheme","GridUtils","KeyHandler","MockGridModel","MockTreeGridModel"],"mappings":"SAASA,OAAO,IAAIC,I;SACXD,OAAO,IAAIE,oB;SACXF,OAAO,IAAIG,S;SACXH,OAAO,IAAII,gB;SACXJ,OAAO,IAAIK,S;SACXL,OAAO,IAAIM,Y;SACXN,OAAO,IAAIO,a;SACXP,OAAO,IAAIQ,S;SACXR,OAAO,IAAIS,S;SACXT,OAAO,IAAIU,U;SACXV,OAAO,IAAIW,a;SACXX,OAAO,IAAIY,iB","sourcesContent":["export { default as Grid } from './Grid';\nexport { default as GridMetricCalculator } from './GridMetricCalculator';\nexport { default as GridModel } from './GridModel';\nexport { default as GridMouseHandler } from './GridMouseHandler';\nexport { default as GridRange } from './GridRange';\nexport { default as GridRenderer } from './GridRenderer';\nexport { default as GridTestUtils } from './GridTestUtils';\nexport { default as GridTheme } from './GridTheme';\nexport { default as GridUtils } from './GridUtils';\nexport { default as KeyHandler } from './KeyHandler';\nexport { default as MockGridModel } from './MockGridModel';\nexport { default as MockTreeGridModel } from './MockTreeGridModel';\nexport * from './key-handlers';\nexport * from './mouse-handlers';\nexport * from './errors';\n"],"file":"index.js"}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["default","Grid","GridMetricCalculator","GridModel","GridMouseHandler","GridRange","GridRenderer","GridTestUtils","GridTheme","GridUtils","KeyHandler","MockGridModel","MockTreeGridModel","memoizeClear"],"mappings":"SAASA,OAAO,IAAIC,I;SACXD,OAAO,IAAIE,oB;SACXF,OAAO,IAAIG,S;SACXH,OAAO,IAAII,gB;SACXJ,OAAO,IAAIK,S;SACXL,OAAO,IAAIM,Y;SACXN,OAAO,IAAIO,a;SACXP,OAAO,IAAIQ,S;SACXR,OAAO,IAAIS,S;SACXT,OAAO,IAAIU,U;SACXV,OAAO,IAAIW,a;SACXX,OAAO,IAAIY,iB;SACXZ,OAAO,IAAIa,Y","sourcesContent":["export { default as Grid } from './Grid';\nexport { default as GridMetricCalculator } from './GridMetricCalculator';\nexport { default as GridModel } from './GridModel';\nexport { default as GridMouseHandler } from './GridMouseHandler';\nexport { default as GridRange } from './GridRange';\nexport { default as GridRenderer } from './GridRenderer';\nexport { default as GridTestUtils } from './GridTestUtils';\nexport { default as GridTheme } from './GridTheme';\nexport { default as GridUtils } from './GridUtils';\nexport { default as KeyHandler } from './KeyHandler';\nexport { default as MockGridModel } from './MockGridModel';\nexport { default as MockTreeGridModel } from './MockTreeGridModel';\nexport { default as memoizeClear } from './memoizeClear';\nexport * from './key-handlers';\nexport * from './mouse-handlers';\nexport * from './errors';\n"],"file":"index.js"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import Grid from '../Grid';
|
|
2
|
-
import KeyHandler from '../KeyHandler';
|
|
2
|
+
import KeyHandler, { GridKeyboardEvent } from '../KeyHandler';
|
|
3
|
+
import { EventHandlerResult } from '../EventHandlerResult';
|
|
3
4
|
declare class EditKeyHandler extends KeyHandler {
|
|
4
|
-
onDown(
|
|
5
|
+
onDown(event: GridKeyboardEvent, grid: Grid): EventHandlerResult;
|
|
5
6
|
}
|
|
6
7
|
export default EditKeyHandler;
|
|
7
8
|
//# sourceMappingURL=EditKeyHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditKeyHandler.d.ts","sourceRoot":"","sources":["../../src/key-handlers/EditKeyHandler.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,UAAU,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"EditKeyHandler.d.ts","sourceRoot":"","sources":["../../src/key-handlers/EditKeyHandler.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,cAAM,cAAe,SAAQ,UAAU;IACrC,MAAM,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CA0CjE;AAED,eAAe,cAAc,CAAC"}
|