@deephaven/grid 0.22.3-beta.18 → 0.22.3-beta.21

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.
Files changed (82) hide show
  1. package/dist/CellInputField.d.ts +5 -5
  2. package/dist/CellInputField.d.ts.map +1 -1
  3. package/dist/CellInputField.js +6 -23
  4. package/dist/CellInputField.js.map +1 -1
  5. package/dist/EditableGridModel.js +1 -0
  6. package/dist/EditableGridModel.js.map +1 -1
  7. package/dist/ExpandableGridModel.js +1 -0
  8. package/dist/ExpandableGridModel.js.map +1 -1
  9. package/dist/Grid.js +77 -315
  10. package/dist/Grid.js.map +1 -1
  11. package/dist/GridAxisRange.js.map +1 -1
  12. package/dist/GridColorUtils.js +1 -2
  13. package/dist/GridColorUtils.js.map +1 -1
  14. package/dist/GridMetricCalculator.js +83 -240
  15. package/dist/GridMetricCalculator.js.map +1 -1
  16. package/dist/GridModel.js +13 -31
  17. package/dist/GridModel.js.map +1 -1
  18. package/dist/GridMouseHandler.js +2 -15
  19. package/dist/GridMouseHandler.js.map +1 -1
  20. package/dist/GridRange.js +46 -160
  21. package/dist/GridRange.js.map +1 -1
  22. package/dist/GridRenderer.js +126 -407
  23. package/dist/GridRenderer.js.map +1 -1
  24. package/dist/GridTestUtils.js +0 -5
  25. package/dist/GridTestUtils.js.map +1 -1
  26. package/dist/GridTheme.js.map +1 -1
  27. package/dist/GridUtils.js +68 -217
  28. package/dist/GridUtils.js.map +1 -1
  29. package/dist/KeyHandler.js +2 -8
  30. package/dist/KeyHandler.js.map +1 -1
  31. package/dist/MockGridData.js.map +1 -1
  32. package/dist/MockGridModel.js +0 -42
  33. package/dist/MockGridModel.js.map +1 -1
  34. package/dist/MockTreeGridModel.js +6 -55
  35. package/dist/MockTreeGridModel.js.map +1 -1
  36. package/dist/StaticDataGridModel.js +0 -15
  37. package/dist/StaticDataGridModel.js.map +1 -1
  38. package/dist/ThemeContext.js.map +1 -1
  39. package/dist/ViewportDataGridModel.js +0 -14
  40. package/dist/ViewportDataGridModel.js.map +1 -1
  41. package/dist/errors/AssertionError.js +0 -3
  42. package/dist/errors/AssertionError.js.map +1 -1
  43. package/dist/errors/PasteError.js +0 -3
  44. package/dist/errors/PasteError.js.map +1 -1
  45. package/dist/errors/assertIsDefined.js.map +1 -1
  46. package/dist/errors/index.js.map +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/key-handlers/EditKeyHandler.js +0 -12
  49. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  50. package/dist/key-handlers/PasteKeyHandler.js +15 -33
  51. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  52. package/dist/key-handlers/SelectionKeyHandler.js +6 -53
  53. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  54. package/dist/key-handlers/TreeKeyHandler.js +0 -11
  55. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  56. package/dist/key-handlers/index.js.map +1 -1
  57. package/dist/memoizeClear.js +1 -4
  58. package/dist/memoizeClear.js.map +1 -1
  59. package/dist/mouse-handlers/EditMouseHandler.js +0 -5
  60. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  61. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +35 -123
  62. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  63. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -27
  64. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  65. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +0 -28
  66. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  67. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +0 -27
  68. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  69. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +0 -23
  70. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  71. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +0 -10
  72. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  73. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +0 -6
  74. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  75. package/dist/mouse-handlers/GridSelectionMouseHandler.js +8 -38
  76. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  77. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +5 -54
  78. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  79. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +0 -28
  80. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  81. package/dist/mouse-handlers/index.js.map +1 -1
  82. package/package.json +4 -4
@@ -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":"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"}
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,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; // Need to iterate through the map in order... sort it first
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); // We always set a new map so that our memoize functions work properly
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":";;OAAOA,S;AAEP;AACA;AACA;;AACA,MAAMC,mBAAN,SAAkCD,SAAlC,CAA4C;EAO1C;AACF;AACA;AACA;AACA;EACEE,WAAW,CAACC,IAAD,EAAoBC,aAApB,EAA8C;IAAA;;IACvD;;IADuD;;IAAA;;IAAA;;IAGvD,KAAKD,IAAL,GAAYA,IAAZ;IACA,KAAKE,eAAL,GAAuBC,IAAI,CAACC,GAAL,CACrB,GAAGJ,IAAI,CAACK,GAAL,CAASC,GAAG,IAAIA,GAAG,CAACC,MAApB,CADkB,2BAErBN,aAFqB,aAErBA,aAFqB,uBAErBA,aAAa,CAAEM,MAFM,yEAEI,CAFJ,CAAvB;IAIA,KAAKN,aAAL,GAAqBA,aAArB;EACD;;EAEW,IAARO,QAAQ,GAAW;IACrB,OAAO,KAAKR,IAAL,CAAUO,MAAjB;EACD;;EAEc,IAAXE,WAAW,GAAW;IACxB,OAAO,KAAKP,eAAZ;EACD;;EAEDQ,WAAW,CAACC,MAAD,EAAiBL,GAAjB,EAAsC;IAAA;;IAC/C,mCAAU,KAAKN,IAAL,CAAUM,GAAV,CAAV,mDAAU,eAAiBK,MAAjB,CAAV;EACD;;EAEDC,mBAAmB,CAACD,MAAD,EAAyB;IAAA;;IAC1C,uDAAO,KAAKV,aAAZ,wDAAO,oBAAqBU,MAArB,CAAP,yEAAuC,EAAvC;EACD;;AArCyC;;AAwC5C,eAAeb,mBAAf"}
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"}
@@ -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,KAAP,MAAkB,OAAlB;AAGA,OAAO,IAAMC,YAEZ,gBAAGD,KAAK,CAACE,aAAN,CAAoB,EAApB,CAFG;AAIP,eAAeD,YAAf"}
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"}
@@ -1,11 +1,9 @@
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-disable class-methods-use-this */
4
3
  import GridModel from "./GridModel.js";
5
4
  /**
6
5
  * A simple model that displays a viewport of data
7
6
  */
8
-
9
7
  class ViewportDataGridModel extends GridModel {
10
8
  /**
11
9
  * Model for fetching data asynchonously. Set the viewported data when data is fetched.
@@ -14,42 +12,30 @@ class ViewportDataGridModel extends GridModel {
14
12
  */
15
13
  constructor(columnCount, rowCount) {
16
14
  super();
17
-
18
15
  _defineProperty(this, "numberOfColumns", void 0);
19
-
20
16
  _defineProperty(this, "numberOfRows", void 0);
21
-
22
17
  _defineProperty(this, "viewportData", void 0);
23
-
24
18
  this.numberOfColumns = columnCount;
25
19
  this.numberOfRows = rowCount;
26
20
  }
27
-
28
21
  get columnCount() {
29
22
  return this.numberOfColumns;
30
23
  }
31
-
32
24
  get rowCount() {
33
25
  return this.numberOfRows;
34
26
  }
35
-
36
27
  textForCell(column, row) {
37
28
  var _this$viewportData$ro, _this$viewportData, _this$viewportData$co, _this$viewportData2, _this$viewportData$da, _this$viewportData3, _this$viewportData3$d;
38
-
39
29
  var viewportRow = row - ((_this$viewportData$ro = (_this$viewportData = this.viewportData) === null || _this$viewportData === void 0 ? void 0 : _this$viewportData.rowOffset) !== null && _this$viewportData$ro !== void 0 ? _this$viewportData$ro : 0);
40
30
  var viewportColumn = column - ((_this$viewportData$co = (_this$viewportData2 = this.viewportData) === null || _this$viewportData2 === void 0 ? void 0 : _this$viewportData2.columnOffset) !== null && _this$viewportData$co !== void 0 ? _this$viewportData$co : 0);
41
31
  return "".concat((_this$viewportData$da = (_this$viewportData3 = this.viewportData) === null || _this$viewportData3 === void 0 ? void 0 : (_this$viewportData3$d = _this$viewportData3.data[viewportRow]) === null || _this$viewportData3$d === void 0 ? void 0 : _this$viewportData3$d[viewportColumn]) !== null && _this$viewportData$da !== void 0 ? _this$viewportData$da : '');
42
32
  }
43
-
44
33
  textForColumnHeader(column) {
45
34
  return "".concat(column);
46
35
  }
47
-
48
36
  textForRowHeader(row) {
49
37
  return "".concat(row);
50
38
  }
51
-
52
39
  }
53
-
54
40
  export default ViewportDataGridModel;
55
41
  //# sourceMappingURL=ViewportDataGridModel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewportDataGridModel.js","names":["GridModel","ViewportDataGridModel","constructor","columnCount","rowCount","numberOfColumns","numberOfRows","textForCell","column","row","viewportRow","viewportData","rowOffset","viewportColumn","columnOffset","data","textForColumnHeader","textForRowHeader"],"sources":["../src/ViewportDataGridModel.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport GridModel from './GridModel';\n\n/**\n * A simple model that displays a viewport of data\n */\nclass ViewportDataGridModel extends GridModel {\n private numberOfColumns: number;\n\n private numberOfRows: number;\n\n public viewportData?: {\n rowOffset: number;\n columnOffset: number;\n data: unknown[][];\n };\n\n /**\n * Model for fetching data asynchonously. Set the viewported data when data is fetched.\n * @param columnCount Number of columns\n * @param rowCount Number of rows\n */\n constructor(columnCount: number, rowCount: number) {\n super();\n\n this.numberOfColumns = columnCount;\n this.numberOfRows = rowCount;\n }\n\n get columnCount(): number {\n return this.numberOfColumns;\n }\n\n get rowCount(): number {\n return this.numberOfRows;\n }\n\n textForCell(column: number, row: number): string {\n const viewportRow = row - (this.viewportData?.rowOffset ?? 0);\n const viewportColumn = column - (this.viewportData?.columnOffset ?? 0);\n return `${this.viewportData?.data[viewportRow]?.[viewportColumn] ?? ''}`;\n }\n\n textForColumnHeader(column: number): string {\n return `${column}`;\n }\n\n textForRowHeader(row: number): string {\n return `${row}`;\n }\n}\n\nexport default ViewportDataGridModel;\n"],"mappings":";;AAAA;OACOA,S;AAEP;AACA;AACA;;AACA,MAAMC,qBAAN,SAAoCD,SAApC,CAA8C;EAW5C;AACF;AACA;AACA;AACA;EACEE,WAAW,CAACC,WAAD,EAAsBC,QAAtB,EAAwC;IACjD;;IADiD;;IAAA;;IAAA;;IAGjD,KAAKC,eAAL,GAAuBF,WAAvB;IACA,KAAKG,YAAL,GAAoBF,QAApB;EACD;;EAEc,IAAXD,WAAW,GAAW;IACxB,OAAO,KAAKE,eAAZ;EACD;;EAEW,IAARD,QAAQ,GAAW;IACrB,OAAO,KAAKE,YAAZ;EACD;;EAEDC,WAAW,CAACC,MAAD,EAAiBC,GAAjB,EAAsC;IAAA;;IAC/C,IAAMC,WAAW,GAAGD,GAAG,mDAAI,KAAKE,YAAT,uDAAI,mBAAmBC,SAAvB,yEAAoC,CAApC,CAAvB;IACA,IAAMC,cAAc,GAAGL,MAAM,oDAAI,KAAKG,YAAT,wDAAI,oBAAmBG,YAAvB,yEAAuC,CAAvC,CAA7B;IACA,iEAAU,KAAKH,YAAf,iFAAU,oBAAmBI,IAAnB,CAAwBL,WAAxB,CAAV,0DAAU,sBAAuCG,cAAvC,CAAV,yEAAoE,EAApE;EACD;;EAEDG,mBAAmB,CAACR,MAAD,EAAyB;IAC1C,iBAAUA,MAAV;EACD;;EAEDS,gBAAgB,CAACR,GAAD,EAAsB;IACpC,iBAAUA,GAAV;EACD;;AA3C2C;;AA8C9C,eAAeR,qBAAf"}
1
+ {"version":3,"file":"ViewportDataGridModel.js","names":["GridModel","ViewportDataGridModel","constructor","columnCount","rowCount","numberOfColumns","numberOfRows","textForCell","column","row","viewportRow","viewportData","rowOffset","viewportColumn","columnOffset","data","textForColumnHeader","textForRowHeader"],"sources":["../src/ViewportDataGridModel.ts"],"sourcesContent":["/* eslint-disable class-methods-use-this */\nimport GridModel from './GridModel';\n\n/**\n * A simple model that displays a viewport of data\n */\nclass ViewportDataGridModel extends GridModel {\n private numberOfColumns: number;\n\n private numberOfRows: number;\n\n public viewportData?: {\n rowOffset: number;\n columnOffset: number;\n data: unknown[][];\n };\n\n /**\n * Model for fetching data asynchonously. Set the viewported data when data is fetched.\n * @param columnCount Number of columns\n * @param rowCount Number of rows\n */\n constructor(columnCount: number, rowCount: number) {\n super();\n\n this.numberOfColumns = columnCount;\n this.numberOfRows = rowCount;\n }\n\n get columnCount(): number {\n return this.numberOfColumns;\n }\n\n get rowCount(): number {\n return this.numberOfRows;\n }\n\n textForCell(column: number, row: number): string {\n const viewportRow = row - (this.viewportData?.rowOffset ?? 0);\n const viewportColumn = column - (this.viewportData?.columnOffset ?? 0);\n return `${this.viewportData?.data[viewportRow]?.[viewportColumn] ?? ''}`;\n }\n\n textForColumnHeader(column: number): string {\n return `${column}`;\n }\n\n textForRowHeader(row: number): string {\n return `${row}`;\n }\n}\n\nexport default ViewportDataGridModel;\n"],"mappings":";AAAA;AAAA,OACOA,SAAS;AAEhB;AACA;AACA;AACA,MAAMC,qBAAqB,SAASD,SAAS,CAAC;EAW5C;AACF;AACA;AACA;AACA;EACEE,WAAW,CAACC,WAAmB,EAAEC,QAAgB,EAAE;IACjD,KAAK,EAAE;IAAC;IAAA;IAAA;IAER,IAAI,CAACC,eAAe,GAAGF,WAAW;IAClC,IAAI,CAACG,YAAY,GAAGF,QAAQ;EAC9B;EAEA,IAAID,WAAW,GAAW;IACxB,OAAO,IAAI,CAACE,eAAe;EAC7B;EAEA,IAAID,QAAQ,GAAW;IACrB,OAAO,IAAI,CAACE,YAAY;EAC1B;EAEAC,WAAW,CAACC,MAAc,EAAEC,GAAW,EAAU;IAAA;IAC/C,IAAMC,WAAW,GAAGD,GAAG,mDAAI,IAAI,CAACE,YAAY,uDAAjB,mBAAmBC,SAAS,yEAAI,CAAC,CAAC;IAC7D,IAAMC,cAAc,GAAGL,MAAM,oDAAI,IAAI,CAACG,YAAY,wDAAjB,oBAAmBG,YAAY,yEAAI,CAAC,CAAC;IACtE,iEAAU,IAAI,CAACH,YAAY,iFAAjB,oBAAmBI,IAAI,CAACL,WAAW,CAAC,0DAApC,sBAAuCG,cAAc,CAAC,yEAAI,EAAE;EACxE;EAEAG,mBAAmB,CAACR,MAAc,EAAU;IAC1C,iBAAUA,MAAM;EAClB;EAEAS,gBAAgB,CAACR,GAAW,EAAU;IACpC,iBAAUA,GAAG;EACf;AACF;AAEA,eAAeR,qBAAqB"}
@@ -1,12 +1,9 @@
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
  export class AssertionError extends Error {
4
3
  constructor() {
5
4
  super(...arguments);
6
-
7
5
  _defineProperty(this, "isAssertionFailed", true);
8
6
  }
9
-
10
7
  }
11
8
  export default AssertionError;
12
9
  //# sourceMappingURL=AssertionError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssertionError.js","names":["AssertionError","Error"],"sources":["../../src/errors/AssertionError.ts"],"sourcesContent":["export class AssertionError extends Error {\n isAssertionFailed = true;\n}\n\nexport default AssertionError;\n"],"mappings":";;AAAA,OAAO,MAAMA,cAAN,SAA6BC,KAA7B,CAAmC;EAAA;IAAA;;IAAA,2CACpB,IADoB;EAAA;;AAAA;AAI1C,eAAeD,cAAf"}
1
+ {"version":3,"file":"AssertionError.js","names":["AssertionError","Error"],"sources":["../../src/errors/AssertionError.ts"],"sourcesContent":["export class AssertionError extends Error {\n isAssertionFailed = true;\n}\n\nexport default AssertionError;\n"],"mappings":";AAAA,OAAO,MAAMA,cAAc,SAASC,KAAK,CAAC;EAAA;IAAA;IAAA,2CACpB,IAAI;EAAA;AAC1B;AAEA,eAAeD,cAAc"}
@@ -1,12 +1,9 @@
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
  export class PasteError extends Error {
4
3
  constructor() {
5
4
  super(...arguments);
6
-
7
5
  _defineProperty(this, "isPasteError", true);
8
6
  }
9
-
10
7
  }
11
8
  export default PasteError;
12
9
  //# sourceMappingURL=PasteError.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PasteError.js","names":["PasteError","Error"],"sources":["../../src/errors/PasteError.ts"],"sourcesContent":["export class PasteError extends Error {\n isPasteError = true;\n}\n\nexport default PasteError;\n"],"mappings":";;AAAA,OAAO,MAAMA,UAAN,SAAyBC,KAAzB,CAA+B;EAAA;IAAA;;IAAA,sCACrB,IADqB;EAAA;;AAAA;AAItC,eAAeD,UAAf"}
1
+ {"version":3,"file":"PasteError.js","names":["PasteError","Error"],"sources":["../../src/errors/PasteError.ts"],"sourcesContent":["export class PasteError extends Error {\n isPasteError = true;\n}\n\nexport default PasteError;\n"],"mappings":";AAAA,OAAO,MAAMA,UAAU,SAASC,KAAK,CAAC;EAAA;IAAA;IAAA,sCACrB,IAAI;EAAA;AACrB;AAEA,eAAeD,UAAU"}
@@ -1 +1 @@
1
- {"version":3,"file":"assertIsDefined.js","names":["AssertionError","assertIsDefined","val","undefined"],"sources":["../../src/errors/assertIsDefined.ts"],"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"],"mappings":"OAAOA,c;AAEP,OAAO,SAASC,eAAT,CAA4BC,GAA5B,EAAmE;EACxE,IAAIA,GAAG,KAAKC,SAAR,IAAqBD,GAAG,KAAK,IAAjC,EAAuC;IACrC,MAAM,IAAIF,cAAJ,sDAC0CE,GAD1C,EAAN;EAGD;AACF;AAED,eAAeD,eAAf"}
1
+ {"version":3,"file":"assertIsDefined.js","names":["AssertionError","assertIsDefined","val","undefined"],"sources":["../../src/errors/assertIsDefined.ts"],"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"],"mappings":"OAAOA,cAAc;AAErB,OAAO,SAASC,eAAe,CAAIC,GAAM,EAAiC;EACxE,IAAIA,GAAG,KAAKC,SAAS,IAAID,GAAG,KAAK,IAAI,EAAE;IACrC,MAAM,IAAIF,cAAc,sDACwBE,GAAG,EAClD;EACH;AACF;AAEA,eAAeD,eAAe"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","assertIsDefined","AssertionError","PasteError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as assertIsDefined } from './assertIsDefined';\nexport { default as AssertionError } from './AssertionError';\nexport { default as PasteError } from './PasteError';\n"],"mappings":"SAASA,OAAO,IAAIC,e;SACXD,OAAO,IAAIE,c;SACXF,OAAO,IAAIG,U"}
1
+ {"version":3,"file":"index.js","names":["default","assertIsDefined","AssertionError","PasteError"],"sources":["../../src/errors/index.ts"],"sourcesContent":["export { default as assertIsDefined } from './assertIsDefined';\nexport { default as AssertionError } from './AssertionError';\nexport { default as PasteError } from './PasteError';\n"],"mappings":"SAASA,OAAO,IAAIC,eAAe;AAAA,SAC1BD,OAAO,IAAIE,cAAc;AAAA,SACzBF,OAAO,IAAIG,UAAU"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","Grid","GridModel","GridTestUtils","GridTheme","KeyHandler","MockGridModel","MockTreeGridModel","memoizeClear","StaticDataGridModel","ViewportDataGridModel","ThemeContext"],"sources":["../src/index.ts"],"sourcesContent":["export * from './ColumnHeaderGroup';\nexport * from './EditableGridModel';\nexport * from './ExpandableGridModel';\nexport { default as Grid } from './Grid';\nexport * from './Grid';\nexport * from './GridMetricCalculator';\nexport * from './GridMetrics';\nexport { default as GridModel } from './GridModel';\nexport * from './GridMouseHandler';\nexport * from './GridRange';\nexport * from './GridAxisRange';\nexport * from './GridRenderer';\nexport { default as GridTestUtils } from './GridTestUtils';\nexport { default as GridTheme } from './GridTheme';\nexport type { GridTheme as GridThemeType } from './GridTheme';\nexport * 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 { default as StaticDataGridModel } from './StaticDataGridModel';\nexport { default as ViewportDataGridModel } from './ViewportDataGridModel';\nexport * from './key-handlers';\nexport * from './mouse-handlers';\nexport * from './errors';\nexport * from './EventHandlerResult';\nexport { default as ThemeContext } from './ThemeContext';\n"],"mappings":";;;SAGSA,OAAO,IAAIC,I;;;;SAIXD,OAAO,IAAIE,S;;;;;SAKXF,OAAO,IAAIG,a;SACXH,OAAO,IAAII,S;;SAGXJ,OAAO,IAAIK,U;SACXL,OAAO,IAAIM,a;SACXN,OAAO,IAAIO,iB;SACXP,OAAO,IAAIQ,Y;SACXR,OAAO,IAAIS,mB;SACXT,OAAO,IAAIU,qB;;;;;SAKXV,OAAO,IAAIW,Y"}
1
+ {"version":3,"file":"index.js","names":["default","Grid","GridModel","GridTestUtils","GridTheme","KeyHandler","MockGridModel","MockTreeGridModel","memoizeClear","StaticDataGridModel","ViewportDataGridModel","ThemeContext"],"sources":["../src/index.ts"],"sourcesContent":["export * from './ColumnHeaderGroup';\nexport * from './EditableGridModel';\nexport * from './ExpandableGridModel';\nexport { default as Grid } from './Grid';\nexport * from './Grid';\nexport * from './GridMetricCalculator';\nexport * from './GridMetrics';\nexport { default as GridModel } from './GridModel';\nexport * from './GridMouseHandler';\nexport * from './GridRange';\nexport * from './GridAxisRange';\nexport * from './GridRenderer';\nexport { default as GridTestUtils } from './GridTestUtils';\nexport { default as GridTheme } from './GridTheme';\nexport type { GridTheme as GridThemeType } from './GridTheme';\nexport * 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 { default as StaticDataGridModel } from './StaticDataGridModel';\nexport { default as ViewportDataGridModel } from './ViewportDataGridModel';\nexport * from './key-handlers';\nexport * from './mouse-handlers';\nexport * from './errors';\nexport * from './EventHandlerResult';\nexport { default as ThemeContext } from './ThemeContext';\n"],"mappings":";;;SAGSA,OAAO,IAAIC,IAAI;AAAA;AAAA;AAAA;AAAA,SAIfD,OAAO,IAAIE,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA,SAKpBF,OAAO,IAAIG,aAAa;AAAA,SACxBH,OAAO,IAAII,SAAS;AAAA;AAAA,SAGpBJ,OAAO,IAAIK,UAAU;AAAA,SACrBL,OAAO,IAAIM,aAAa;AAAA,SACxBN,OAAO,IAAIO,iBAAiB;AAAA,SAC5BP,OAAO,IAAIQ,YAAY;AAAA,SACvBR,OAAO,IAAIS,mBAAmB;AAAA,SAC9BT,OAAO,IAAIU,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA,SAKhCV,OAAO,IAAIW,YAAY"}
@@ -3,13 +3,11 @@ import GridUtils from "../GridUtils.js";
3
3
  import GridRange from "../GridRange.js";
4
4
  import KeyHandler from "../KeyHandler.js";
5
5
  import { isEditableGridModel } from "../EditableGridModel.js";
6
-
7
6
  class EditKeyHandler extends KeyHandler {
8
7
  onDown(event, grid) {
9
8
  if (GridUtils.isModifierKeyDown(event)) {
10
9
  return false;
11
10
  }
12
-
13
11
  var {
14
12
  model
15
13
  } = grid.props;
@@ -17,42 +15,32 @@ class EditKeyHandler extends KeyHandler {
17
15
  cursorColumn,
18
16
  cursorRow
19
17
  } = grid.state;
20
-
21
18
  if (cursorColumn == null || cursorRow == null || !isEditableGridModel(model) || !model.isEditableRange(GridRange.makeCell(cursorColumn, cursorRow))) {
22
19
  return false;
23
20
  }
24
-
25
21
  var column = cursorColumn;
26
22
  var row = cursorRow;
27
-
28
23
  if (column == null || row == null) {
29
24
  return false;
30
25
  }
31
-
32
26
  if (event.key.length === 1) {
33
27
  grid.startEditing(column, row, true, [1, 1], event.key);
34
28
  return true;
35
29
  }
36
-
37
30
  if (event.key === 'F2') {
38
31
  grid.startEditing(column, row);
39
32
  return true;
40
33
  }
41
-
42
34
  if (event.key === 'Backspace') {
43
35
  grid.startEditing(column, row, true, undefined, '');
44
36
  return true;
45
37
  }
46
-
47
38
  if (event.key === 'Delete') {
48
39
  grid.setValueForCell(column, row, '');
49
40
  return true;
50
41
  }
51
-
52
42
  return false;
53
43
  }
54
-
55
44
  }
56
-
57
45
  export default EditKeyHandler;
58
46
  //# sourceMappingURL=EditKeyHandler.js.map