@omegagrid/grid 0.2.5

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 (225) hide show
  1. package/dist/commands/editingCommands.d.ts +4 -0
  2. package/dist/commands/editingCommands.d.ts.map +1 -0
  3. package/dist/commands/editingCommands.js +45 -0
  4. package/dist/commands/editingCommands.js.map +1 -0
  5. package/dist/commands/groupCommands.d.ts +8 -0
  6. package/dist/commands/groupCommands.d.ts.map +1 -0
  7. package/dist/commands/groupCommands.js +11 -0
  8. package/dist/commands/groupCommands.js.map +1 -0
  9. package/dist/commands/index.d.ts +4 -0
  10. package/dist/commands/index.d.ts.map +1 -0
  11. package/dist/commands/index.js +27 -0
  12. package/dist/commands/index.js.map +1 -0
  13. package/dist/commands/navigationCommands.d.ts +5 -0
  14. package/dist/commands/navigationCommands.d.ts.map +1 -0
  15. package/dist/commands/navigationCommands.js +58 -0
  16. package/dist/commands/navigationCommands.js.map +1 -0
  17. package/dist/constants.d.ts +3 -0
  18. package/dist/constants.d.ts.map +1 -0
  19. package/dist/constants.js +5 -0
  20. package/dist/constants.js.map +1 -0
  21. package/dist/editors/baseEditor.d.ts +25 -0
  22. package/dist/editors/baseEditor.d.ts.map +1 -0
  23. package/dist/editors/baseEditor.js +94 -0
  24. package/dist/editors/baseEditor.js.map +1 -0
  25. package/dist/editors/checkboxEditor.d.ts +9 -0
  26. package/dist/editors/checkboxEditor.d.ts.map +1 -0
  27. package/dist/editors/checkboxEditor.js +35 -0
  28. package/dist/editors/checkboxEditor.js.map +1 -0
  29. package/dist/editors/dropdownEditor.d.ts +19 -0
  30. package/dist/editors/dropdownEditor.d.ts.map +1 -0
  31. package/dist/editors/dropdownEditor.js +100 -0
  32. package/dist/editors/dropdownEditor.js.map +1 -0
  33. package/dist/editors/formulaEditor.d.ts +21 -0
  34. package/dist/editors/formulaEditor.d.ts.map +1 -0
  35. package/dist/editors/formulaEditor.js +116 -0
  36. package/dist/editors/formulaEditor.js.map +1 -0
  37. package/dist/editors/index.d.ts +8 -0
  38. package/dist/editors/index.d.ts.map +1 -0
  39. package/dist/editors/index.js +35 -0
  40. package/dist/editors/index.js.map +1 -0
  41. package/dist/editors/numberEditor.d.ts +9 -0
  42. package/dist/editors/numberEditor.d.ts.map +1 -0
  43. package/dist/editors/numberEditor.js +40 -0
  44. package/dist/editors/numberEditor.js.map +1 -0
  45. package/dist/editors/textEditor.d.ts +15 -0
  46. package/dist/editors/textEditor.d.ts.map +1 -0
  47. package/dist/editors/textEditor.js +76 -0
  48. package/dist/editors/textEditor.js.map +1 -0
  49. package/dist/filters/NumberFilter.d.ts +8 -0
  50. package/dist/filters/NumberFilter.d.ts.map +1 -0
  51. package/dist/filters/NumberFilter.js +17 -0
  52. package/dist/filters/NumberFilter.js.map +1 -0
  53. package/dist/filters/baseFilter.d.ts +17 -0
  54. package/dist/filters/baseFilter.d.ts.map +1 -0
  55. package/dist/filters/baseFilter.js +42 -0
  56. package/dist/filters/baseFilter.js.map +1 -0
  57. package/dist/filters/index.d.ts +4 -0
  58. package/dist/filters/index.d.ts.map +1 -0
  59. package/dist/filters/index.js +15 -0
  60. package/dist/filters/index.js.map +1 -0
  61. package/dist/filters/textFilter.d.ts +17 -0
  62. package/dist/filters/textFilter.d.ts.map +1 -0
  63. package/dist/filters/textFilter.js +86 -0
  64. package/dist/filters/textFilter.js.map +1 -0
  65. package/dist/gridAdapter.d.ts +29 -0
  66. package/dist/gridAdapter.d.ts.map +1 -0
  67. package/dist/gridAdapter.js +15 -0
  68. package/dist/gridAdapter.js.map +1 -0
  69. package/dist/i18n/en-us.d.ts +4 -0
  70. package/dist/i18n/en-us.d.ts.map +1 -0
  71. package/dist/i18n/en-us.js +7 -0
  72. package/dist/i18n/en-us.js.map +1 -0
  73. package/dist/i18n/index.d.ts +5 -0
  74. package/dist/i18n/index.d.ts.map +1 -0
  75. package/dist/i18n/index.js +15 -0
  76. package/dist/i18n/index.js.map +1 -0
  77. package/dist/index.d.ts +7 -0
  78. package/dist/index.d.ts.map +1 -0
  79. package/dist/index.js +36 -0
  80. package/dist/index.js.map +1 -0
  81. package/dist/renderers/ActionRenderer.d.ts +3 -0
  82. package/dist/renderers/ActionRenderer.d.ts.map +1 -0
  83. package/dist/renderers/ActionRenderer.js +28 -0
  84. package/dist/renderers/ActionRenderer.js.map +1 -0
  85. package/dist/renderers/BaseRenderer.d.ts +5 -0
  86. package/dist/renderers/BaseRenderer.d.ts.map +1 -0
  87. package/dist/renderers/BaseRenderer.js +54 -0
  88. package/dist/renderers/BaseRenderer.js.map +1 -0
  89. package/dist/renderers/CheckboxRenderer.d.ts +3 -0
  90. package/dist/renderers/CheckboxRenderer.d.ts.map +1 -0
  91. package/dist/renderers/CheckboxRenderer.js +16 -0
  92. package/dist/renderers/CheckboxRenderer.js.map +1 -0
  93. package/dist/renderers/DateTimeRenderer.d.ts +3 -0
  94. package/dist/renderers/DateTimeRenderer.d.ts.map +1 -0
  95. package/dist/renderers/DateTimeRenderer.js +18 -0
  96. package/dist/renderers/DateTimeRenderer.js.map +1 -0
  97. package/dist/renderers/DropdownRenderer.d.ts +5 -0
  98. package/dist/renderers/DropdownRenderer.d.ts.map +1 -0
  99. package/dist/renderers/DropdownRenderer.js +24 -0
  100. package/dist/renderers/DropdownRenderer.js.map +1 -0
  101. package/dist/renderers/GeneralRenderer.d.ts +3 -0
  102. package/dist/renderers/GeneralRenderer.d.ts.map +1 -0
  103. package/dist/renderers/GeneralRenderer.js +16 -0
  104. package/dist/renderers/GeneralRenderer.js.map +1 -0
  105. package/dist/renderers/HtmlRenderer.d.ts +3 -0
  106. package/dist/renderers/HtmlRenderer.d.ts.map +1 -0
  107. package/dist/renderers/HtmlRenderer.js +10 -0
  108. package/dist/renderers/HtmlRenderer.js.map +1 -0
  109. package/dist/renderers/NumberRenderer.d.ts +3 -0
  110. package/dist/renderers/NumberRenderer.d.ts.map +1 -0
  111. package/dist/renderers/NumberRenderer.js +19 -0
  112. package/dist/renderers/NumberRenderer.js.map +1 -0
  113. package/dist/renderers/SparklineRenderer.d.ts +3 -0
  114. package/dist/renderers/SparklineRenderer.d.ts.map +1 -0
  115. package/dist/renderers/SparklineRenderer.js +12 -0
  116. package/dist/renderers/SparklineRenderer.js.map +1 -0
  117. package/dist/renderers/TextRenderer.d.ts +3 -0
  118. package/dist/renderers/TextRenderer.d.ts.map +1 -0
  119. package/dist/renderers/TextRenderer.js +11 -0
  120. package/dist/renderers/TextRenderer.js.map +1 -0
  121. package/dist/renderers/index.d.ts +10 -0
  122. package/dist/renderers/index.d.ts.map +1 -0
  123. package/dist/renderers/index.js +48 -0
  124. package/dist/renderers/index.js.map +1 -0
  125. package/dist/types.d.ts +6 -0
  126. package/dist/types.d.ts.map +1 -0
  127. package/dist/types.js +3 -0
  128. package/dist/types.js.map +1 -0
  129. package/dist/ui/comment.d.ts +44 -0
  130. package/dist/ui/comment.d.ts.map +1 -0
  131. package/dist/ui/comment.js +214 -0
  132. package/dist/ui/comment.js.map +1 -0
  133. package/dist/ui/comment.style.d.ts +2 -0
  134. package/dist/ui/comment.style.d.ts.map +1 -0
  135. package/dist/ui/comment.style.js +50 -0
  136. package/dist/ui/comment.style.js.map +1 -0
  137. package/dist/ui/elementCache.d.ts +14 -0
  138. package/dist/ui/elementCache.d.ts.map +1 -0
  139. package/dist/ui/elementCache.js +61 -0
  140. package/dist/ui/elementCache.js.map +1 -0
  141. package/dist/ui/filter.d.ts +9 -0
  142. package/dist/ui/filter.d.ts.map +1 -0
  143. package/dist/ui/filter.js +71 -0
  144. package/dist/ui/filter.js.map +1 -0
  145. package/dist/ui/formulaInput.d.ts +51 -0
  146. package/dist/ui/formulaInput.d.ts.map +1 -0
  147. package/dist/ui/formulaInput.js +245 -0
  148. package/dist/ui/formulaInput.js.map +1 -0
  149. package/dist/ui/formulaInput.style.d.ts +2 -0
  150. package/dist/ui/formulaInput.style.d.ts.map +1 -0
  151. package/dist/ui/formulaInput.style.js +68 -0
  152. package/dist/ui/formulaInput.style.js.map +1 -0
  153. package/dist/ui/grid.d.ts +81 -0
  154. package/dist/ui/grid.d.ts.map +1 -0
  155. package/dist/ui/grid.editing.d.ts +54 -0
  156. package/dist/ui/grid.editing.d.ts.map +1 -0
  157. package/dist/ui/grid.editing.js +281 -0
  158. package/dist/ui/grid.editing.js.map +1 -0
  159. package/dist/ui/grid.events.d.ts +66 -0
  160. package/dist/ui/grid.events.d.ts.map +1 -0
  161. package/dist/ui/grid.events.js +449 -0
  162. package/dist/ui/grid.events.js.map +1 -0
  163. package/dist/ui/grid.filtering.d.ts +20 -0
  164. package/dist/ui/grid.filtering.d.ts.map +1 -0
  165. package/dist/ui/grid.filtering.js +59 -0
  166. package/dist/ui/grid.filtering.js.map +1 -0
  167. package/dist/ui/grid.js +233 -0
  168. package/dist/ui/grid.js.map +1 -0
  169. package/dist/ui/grid.menu.d.ts +36 -0
  170. package/dist/ui/grid.menu.d.ts.map +1 -0
  171. package/dist/ui/grid.menu.js +83 -0
  172. package/dist/ui/grid.menu.js.map +1 -0
  173. package/dist/ui/grid.rendering.d.ts +71 -0
  174. package/dist/ui/grid.rendering.d.ts.map +1 -0
  175. package/dist/ui/grid.rendering.js +336 -0
  176. package/dist/ui/grid.rendering.js.map +1 -0
  177. package/dist/ui/grid.selecting.d.ts +56 -0
  178. package/dist/ui/grid.selecting.d.ts.map +1 -0
  179. package/dist/ui/grid.selecting.js +261 -0
  180. package/dist/ui/grid.selecting.js.map +1 -0
  181. package/dist/ui/grid.sorting.d.ts +15 -0
  182. package/dist/ui/grid.sorting.d.ts.map +1 -0
  183. package/dist/ui/grid.sorting.js +33 -0
  184. package/dist/ui/grid.sorting.js.map +1 -0
  185. package/dist/ui/grid.style.d.ts +2 -0
  186. package/dist/ui/grid.style.d.ts.map +1 -0
  187. package/dist/ui/grid.style.js +25 -0
  188. package/dist/ui/grid.style.js.map +1 -0
  189. package/dist/ui/group.d.ts +68 -0
  190. package/dist/ui/group.d.ts.map +1 -0
  191. package/dist/ui/group.js +310 -0
  192. package/dist/ui/group.js.map +1 -0
  193. package/dist/ui/index.d.ts +18 -0
  194. package/dist/ui/index.d.ts.map +1 -0
  195. package/dist/ui/index.js +34 -0
  196. package/dist/ui/index.js.map +1 -0
  197. package/dist/ui/selector.d.ts +83 -0
  198. package/dist/ui/selector.d.ts.map +1 -0
  199. package/dist/ui/selector.js +486 -0
  200. package/dist/ui/selector.js.map +1 -0
  201. package/dist/ui/selector.style.d.ts +2 -0
  202. package/dist/ui/selector.style.d.ts.map +1 -0
  203. package/dist/ui/selector.style.js +111 -0
  204. package/dist/ui/selector.style.js.map +1 -0
  205. package/dist/ui/sortingArrow.d.ts +8 -0
  206. package/dist/ui/sortingArrow.d.ts.map +1 -0
  207. package/dist/ui/sortingArrow.js +46 -0
  208. package/dist/ui/sortingArrow.js.map +1 -0
  209. package/dist/ui/sparkline.d.ts +14 -0
  210. package/dist/ui/sparkline.d.ts.map +1 -0
  211. package/dist/ui/sparkline.js +96 -0
  212. package/dist/ui/sparkline.js.map +1 -0
  213. package/dist/ui/table.d.ts +109 -0
  214. package/dist/ui/table.d.ts.map +1 -0
  215. package/dist/ui/table.js +899 -0
  216. package/dist/ui/table.js.map +1 -0
  217. package/dist/ui/table.styles.d.ts +2 -0
  218. package/dist/ui/table.styles.d.ts.map +1 -0
  219. package/dist/ui/table.styles.js +216 -0
  220. package/dist/ui/table.styles.js.map +1 -0
  221. package/dist/ui/tooltip.d.ts +9 -0
  222. package/dist/ui/tooltip.d.ts.map +1 -0
  223. package/dist/ui/tooltip.js +32 -0
  224. package/dist/ui/tooltip.js.map +1 -0
  225. package/package.json +71 -0
@@ -0,0 +1,449 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.GridEvents = exports.GridRowResizeEvent = exports.GridColumnResizeEvent = exports.GridResizeEvent = exports.GridEditEvent = exports.GridEvent = void 0;
7
+ const constants_1 = __importDefault(require("../constants"));
8
+ const core_1 = require("@omegagrid/core");
9
+ const ts_debounce_1 = require("ts-debounce");
10
+ const grid_core_1 = require("@omegagrid/grid-core");
11
+ class GridEvent extends Event {
12
+ get selection() { return this.grid.selecting.selection; }
13
+ get activeCell() { return this.selection.activeCell; }
14
+ constructor(type, grid, args) {
15
+ super(`grid.${type}`, { bubbles: true, composed: true });
16
+ this.grid = grid;
17
+ Object.assign(this, args);
18
+ if (this.cell) {
19
+ this.row = this.cell.row;
20
+ this.column = this.cell.column;
21
+ }
22
+ }
23
+ }
24
+ exports.GridEvent = GridEvent;
25
+ class GridEditEvent extends GridEvent {
26
+ constructor(grid, args) {
27
+ super('edit', grid);
28
+ Object.assign(this, args);
29
+ }
30
+ }
31
+ exports.GridEditEvent = GridEditEvent;
32
+ class GridResizeEvent extends core_1.ResizeEvent {
33
+ constructor(type, grid, args) {
34
+ super(`grid.${type}`, args);
35
+ this.grid = grid;
36
+ }
37
+ }
38
+ exports.GridResizeEvent = GridResizeEvent;
39
+ class GridColumnResizeEvent extends GridResizeEvent {
40
+ constructor(type, grid, column, args) {
41
+ super(type, grid, args);
42
+ this.column = column;
43
+ }
44
+ }
45
+ exports.GridColumnResizeEvent = GridColumnResizeEvent;
46
+ class GridRowResizeEvent extends GridResizeEvent {
47
+ constructor(type, grid, row, args) {
48
+ super(type, grid, args);
49
+ this.row = row;
50
+ }
51
+ }
52
+ exports.GridRowResizeEvent = GridRowResizeEvent;
53
+ class GridEvents {
54
+ get model() { return this.grid.model; }
55
+ get selection() { return this.grid.selection; }
56
+ get table() { return this.grid.table; }
57
+ constructor(grid) {
58
+ this.grid = grid;
59
+ this.clickDisabled = false;
60
+ this._onKeyDown = (e) => {
61
+ if (e.key != 'F5')
62
+ e.preventDefault();
63
+ switch (e.key) {
64
+ case 'Tab':
65
+ e.preventDefault();
66
+ this.grid.selecting.shiftActiveCell(e.shiftKey ? -1 : 1, true);
67
+ break;
68
+ case 'ArrowRight':
69
+ this.grid.selecting.debounceMoveSelector(1, 0);
70
+ break;
71
+ case 'ArrowLeft':
72
+ this.grid.selecting.debounceMoveSelector(-1, 0);
73
+ break;
74
+ case 'ArrowDown':
75
+ this.grid.selecting.debounceMoveSelector(0, 1);
76
+ break;
77
+ case 'Enter':
78
+ this.grid.selecting.enter();
79
+ break;
80
+ case 'Escape':
81
+ this.grid.selecting.hideCopySelector();
82
+ break;
83
+ case 'ArrowUp':
84
+ this.grid.selecting.debounceMoveSelector(0, -1);
85
+ break;
86
+ case 'c':
87
+ if (e.ctrlKey)
88
+ this.grid.editing.copySelection();
89
+ break;
90
+ case 'v':
91
+ if (e.ctrlKey)
92
+ this.grid.editing.paste();
93
+ break;
94
+ case 'z':
95
+ if (!this.grid.options.undoRedo)
96
+ return;
97
+ if (e.ctrlKey)
98
+ this.grid.editing.undo();
99
+ break;
100
+ case 'y':
101
+ if (!this.grid.options.undoRedo)
102
+ return;
103
+ if (e.ctrlKey)
104
+ this.grid.editing.redo();
105
+ break;
106
+ case 'F2':
107
+ e.preventDefault();
108
+ this.grid.editing.startEdit();
109
+ break;
110
+ case 'Delete':
111
+ case 'Backspace':
112
+ e.preventDefault();
113
+ this.grid.selecting.clearSelection();
114
+ break;
115
+ }
116
+ if (e.key.length == 1 && !e.ctrlKey) {
117
+ this.grid.editing.startEdit(e.key);
118
+ }
119
+ };
120
+ this._onMouseMove = (e) => {
121
+ var _a;
122
+ let hidePopups = true;
123
+ const hSizer = this.grid.hSizer;
124
+ const vSizer = this.grid.vSizer;
125
+ for (const elm of e.composedPath()) {
126
+ if (elm.tagName == 'TH') {
127
+ if (!hSizer.resizing && elm.classList.contains('hlabel')) {
128
+ if (elm.offsetWidth - e.offsetX + elm.offsetLeft < constants_1.default.RESIZE_TRESHOLD) {
129
+ hSizer.snap(elm, this.grid);
130
+ this.grid.rendering.currentResizedColumn = this.model.columns[elm.c];
131
+ }
132
+ else {
133
+ core_1.dom.hideElement(hSizer);
134
+ }
135
+ }
136
+ else if (!vSizer.resizing && elm.classList.contains('vlabel')) {
137
+ if (elm.offsetHeight - e.offsetY + elm.offsetTop < constants_1.default.RESIZE_TRESHOLD) {
138
+ vSizer.snap(elm, this.grid);
139
+ this.grid.rendering.currentResizedRow = this.model.rows[elm.r];
140
+ }
141
+ else {
142
+ core_1.dom.hideElement(vSizer);
143
+ }
144
+ }
145
+ if (this.grid.selecting.isSelecting) {
146
+ this.clickDisabled = true;
147
+ this.grid.selecting.updateSelecting(elm.c, elm.r);
148
+ }
149
+ return;
150
+ }
151
+ else if (elm.tagName == 'TD') {
152
+ if (this.grid.selecting.isSelecting || this.grid.selecting.isAutofilling || this.grid.selecting.isMoving) {
153
+ const { top, left } = core_1.dom.getElementOffset(elm, this.grid);
154
+ this.grid.rendering.autoscroll({
155
+ x: left - this.table.totalHeaderWidth + e.offsetX - elm.offsetLeft,
156
+ y: top - this.table.thead.clientHeight + e.offsetY - elm.offsetTop
157
+ });
158
+ if (this.grid.selecting.isSelecting) {
159
+ this.clickDisabled = true;
160
+ this.grid.selecting.updateSelecting(elm.c, elm.r);
161
+ }
162
+ }
163
+ }
164
+ else {
165
+ const td = (elm.parentElement);
166
+ if (td) {
167
+ if (elm.classList && elm.classList.length > 0) {
168
+ const cellModel = (_a = this.model.rows[td.r]) === null || _a === void 0 ? void 0 : _a.cell(td.c);
169
+ if (cellModel && cellModel.hasTooltip) {
170
+ hidePopups = false;
171
+ this.grid.tooltip.attachToCell(td, cellModel);
172
+ }
173
+ if (cellModel && cellModel.hasComment) {
174
+ hidePopups = false;
175
+ this.grid.comment.attachTo(td, cellModel);
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ if (hidePopups) {
182
+ this.grid.tooltip.deatach();
183
+ this.grid.comment.deatach(this.model.options.comments.hideTimeout);
184
+ }
185
+ core_1.dom.hideElement(hSizer);
186
+ core_1.dom.hideElement(vSizer);
187
+ };
188
+ this._onMouseDown = (e) => {
189
+ this.clickDisabled = false;
190
+ for (const elm of e.composedPath()) {
191
+ if (elm.tagName == 'TD') {
192
+ const td = elm;
193
+ if (e.button == 0) { // left button
194
+ this.grid.selecting.startCellSelecting(new grid_core_1.CellRange(td.c, td.r));
195
+ }
196
+ }
197
+ else if (elm.tagName == 'TH') {
198
+ const th = elm;
199
+ if (elm.matches('.sort')) {
200
+ this.grid.sorting.sort(th.c);
201
+ }
202
+ else if (th.classList.contains('filter')) {
203
+ this.grid.filtering.openFilter(this.model.columns[th.c], th);
204
+ }
205
+ else if (th.classList.contains('hlabel')) {
206
+ this.grid.selecting.startColumnSelecting(th.c);
207
+ }
208
+ else if (th.classList.contains('vlabel')) {
209
+ this.grid.selecting.startRowSelecting(th.r);
210
+ }
211
+ }
212
+ }
213
+ };
214
+ this._onClick = (e) => {
215
+ if (!this.clickDisabled) {
216
+ const path = e.composedPath();
217
+ // ignore clicking on expander button
218
+ // TOOD: maybe make better detection
219
+ if (['plus', 'minus'].includes(path[0].className))
220
+ return;
221
+ const td = path.find(elm => elm.tagName == 'TD');
222
+ this.grid.dispatchEvent(new GridEvent('click', this.grid, {
223
+ cell: td && td.r != null && td.c != null ? this.model.rows[td.r].cell(td.c) : null
224
+ }));
225
+ }
226
+ };
227
+ this._onContextMenu = (e) => {
228
+ e.preventDefault();
229
+ for (const elm of e.composedPath()) {
230
+ if (elm.tagName == 'TD') {
231
+ const td = elm;
232
+ this.grid.menus.openCellMenu(this.model.rows[td.r].cell(td.c), { x: e.pageX, y: e.pageY });
233
+ }
234
+ else if (elm.tagName == 'TH') {
235
+ const th = elm;
236
+ if (th.classList.contains('hlabel')) {
237
+ this.grid.menus.openColumnMenu(this.model.columns[th.c], { x: e.pageX, y: e.pageY });
238
+ }
239
+ else if (th.classList.contains('vlabel')) {
240
+ this.grid.menus.openRowMenu(this.model.rows[th.r], { x: e.pageX, y: e.pageY });
241
+ }
242
+ }
243
+ }
244
+ };
245
+ this._onVerticalSlide = (e) => {
246
+ this.table.rowOffset = Math.min(e.value, this.model.rows.length - 1);
247
+ this.grid.rendering.requireVerticalUpdate = true;
248
+ this.grid.logger.info(`v-slide: ${e.value}`);
249
+ this.grid.rendering.renderCells();
250
+ };
251
+ this._onHorizontalSlide = (e) => {
252
+ this.table.colOffset = Math.min(e.value, this.model.columns.length - 1);
253
+ this.grid.rendering.requireHorizontalUpdate = true;
254
+ this.grid.logger.info(`h-slide: ${e.value}`);
255
+ this.grid.rendering.renderCells();
256
+ };
257
+ this._onWheel = (e) => {
258
+ if (e.ctrlKey)
259
+ return;
260
+ if (e.deltaY != 0)
261
+ this.grid.rendering.scrollVerticalByPixels(e.deltaY);
262
+ if (e.deltaX != 0)
263
+ this.grid.rendering.scrollHorizontalByPixels(e.deltaX);
264
+ };
265
+ this._onTouchStart = (e) => {
266
+ this.grid.rendering.touchStartX = e.touches[0];
267
+ this.grid.rendering.touchStartY = e.touches[0];
268
+ };
269
+ this._onTouchEnd = (e) => {
270
+ this.grid.rendering.touchStartX = e.touches[0];
271
+ this.grid.rendering.touchStartY = e.touches[0];
272
+ };
273
+ this._onTouchMove = (e) => {
274
+ const rendering = this.grid.rendering;
275
+ if (rendering.touchStartY) {
276
+ const deltaY = rendering.touchStartY.clientY - e.touches[0].clientY;
277
+ if (Math.abs(deltaY) > constants_1.default.DEFAULT_ROW_HEIGHT && this.table.viewport.rows.length > 0) {
278
+ rendering.scrollVerticalByPixels(deltaY);
279
+ rendering.touchStartY = e.touches[0];
280
+ }
281
+ }
282
+ if (rendering.touchStartX) {
283
+ const deltaX = rendering.touchStartX.clientX - e.touches[0].clientX;
284
+ if (Math.abs(deltaX) > grid_core_1.ColumnModel.DEFAULT_WIDTH && this.table.viewport.columns.length > 0) {
285
+ rendering.scrollHorizontalByPixels(deltaX);
286
+ rendering.touchStartX = e.touches[0];
287
+ }
288
+ }
289
+ };
290
+ this._onHorizontalResizeStart = () => {
291
+ this.grid.rendering.resizing = true;
292
+ this.grid.rendering.currentResizedColumnWidth = this.grid.rendering.currentResizedColumn.width;
293
+ };
294
+ this._onHorizontalResizeStop = (e) => {
295
+ this.grid.rendering.resizing = false;
296
+ this.table.clearHeaderCache();
297
+ this.table.renderCells({ horizontal: true });
298
+ this.grid.dispatchEvent(new GridColumnResizeEvent('column.resize', this.grid, this.grid.rendering.currentResizedColumn, e));
299
+ };
300
+ this._onHorizontalResize = (e) => {
301
+ const rendering = this.grid.rendering;
302
+ // if (this.resizing) e.stopPropagation();
303
+ rendering.currentResizedColumn.width = rendering.currentResizedColumnWidth + e.deltaX;
304
+ // this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});
305
+ core_1.dom.setSize(this.table.getColumnByModelIndex(rendering.currentResizedColumn.index), { w: rendering.currentResizedColumn.width }, true);
306
+ this.grid.selecting.updateSelector();
307
+ };
308
+ this._onVerticalResizeStart = () => {
309
+ this.grid.rendering.resizing = true;
310
+ this.grid.rendering.currentResizedRowHeight = this.grid.rendering.currentResizedRow.height;
311
+ };
312
+ this._onVerticalResizeStop = (e) => {
313
+ this.grid.rendering.resizing = false;
314
+ this.table.clearBodyCache();
315
+ this.table.renderCells({ vertical: true });
316
+ this.grid.dispatchEvent(new GridRowResizeEvent('row.resize', this.grid, this.grid.rendering.currentResizedRow, e));
317
+ };
318
+ this._onVerticalResize = (e) => {
319
+ const rendering = this.grid.rendering;
320
+ // if (this.resizing) e.stopPropagation();
321
+ rendering.currentResizedRow.height = rendering.currentResizedRowHeight + e.deltaY;
322
+ // this.showMouseTooltip(`${columnModel.width.toString()}px`, {t: e.mouseY, l: e.mouseX});
323
+ core_1.dom.setSize(this.table.getRowByModelIndex(rendering.currentResizedRow.index), { h: rendering.currentResizedRow.height }, false);
324
+ this.grid.selecting.updateSelector();
325
+ };
326
+ this._onCommentCommit = (e) => {
327
+ if (e.comment.text == '' || e.comment.text == null) {
328
+ this.model.comments.delete(e.cell.address);
329
+ e.cell.invalidateStyle();
330
+ this.grid.rendering.updateCells([e.cell]);
331
+ }
332
+ };
333
+ this._onAutofill = (e) => {
334
+ if (this.grid.selection.range.equals(e.selector.autofillRange))
335
+ return;
336
+ const [cells, oldValues] = (0, grid_core_1.autofill)(this.model, this.grid.selection.range, e.selector.autofillRange, e.selector.autofillDirection);
337
+ this.grid.rendering.updateCells(cells, true);
338
+ this.grid.selection.setRange(this.grid.selection.range.unite(e.selector.autofillRange));
339
+ this.grid.selecting.updateSelector();
340
+ this.grid.dispatchEvent(new GridEditEvent(this.grid, {
341
+ editType: 'autofill',
342
+ cells: cells,
343
+ oldValues: oldValues,
344
+ newValues: cells.map(cell => cell.value2)
345
+ }));
346
+ };
347
+ this._onEdit = (e) => {
348
+ if (e.fromHistory)
349
+ return;
350
+ const addresses = [];
351
+ const names = [];
352
+ const nameRangeMap = this.model.names.rangeMap;
353
+ let newValues = [];
354
+ let oldValues = [];
355
+ switch (e.editType) {
356
+ case 'value':
357
+ newValues = e.newValues;
358
+ oldValues = e.oldValues;
359
+ e.cells.forEach(cell => {
360
+ const a = cell.address;
361
+ addresses.push(a);
362
+ names.push(nameRangeMap.get(a));
363
+ });
364
+ break;
365
+ case 'insert_column':
366
+ case 'insert_row':
367
+ e.newValues.forEach(row => {
368
+ const a = row.address;
369
+ addresses.push(a);
370
+ names.push(nameRangeMap.get(a));
371
+ newValues.push(row.getSourceData());
372
+ });
373
+ break;
374
+ }
375
+ this.grid.history.push({
376
+ type: e.editType,
377
+ addresses: addresses,
378
+ names: names,
379
+ oldValues: oldValues,
380
+ newValues: newValues
381
+ });
382
+ };
383
+ this._onMove = (e) => {
384
+ if (e.fromRange.isRow) {
385
+ this.grid.editing.moveRows({
386
+ index: e.fromRange.r1,
387
+ count: e.fromRange.size.rows,
388
+ targetIndex: e.toRange.r1
389
+ });
390
+ }
391
+ else if (e.fromRange.isColumn) {
392
+ this.grid.editing.moveColumns({
393
+ index: e.fromRange.c1,
394
+ count: e.fromRange.size.columns,
395
+ targetIndex: e.toRange.c1
396
+ });
397
+ }
398
+ else {
399
+ console.log(e);
400
+ }
401
+ };
402
+ }
403
+ async init() {
404
+ await this.grid.updateComplete;
405
+ await this.table.updateComplete;
406
+ const grid = this.grid;
407
+ // wheel scroling
408
+ grid.addEventListener('wheel', this._onWheel, { passive: true });
409
+ // touch scrolling
410
+ grid.addEventListener('touchstart', this._onTouchStart, { passive: true });
411
+ grid.addEventListener('touchend', this._onTouchEnd, { passive: true });
412
+ grid.addEventListener('touchmove', this._onTouchMove, { passive: true });
413
+ // col/row resize
414
+ grid.hSizer.addEventListener('resizestart', this._onHorizontalResizeStart);
415
+ grid.hSizer.addEventListener('resizestop', this._onHorizontalResizeStop);
416
+ grid.hSizer.addEventListener('resize', this._onHorizontalResize);
417
+ grid.vSizer.addEventListener('resizestart', this._onVerticalResizeStart);
418
+ grid.vSizer.addEventListener('resizestop', this._onVerticalResizeStop);
419
+ grid.vSizer.addEventListener('resize', this._onVerticalResize);
420
+ // comments
421
+ grid.comment.addEventListener('comment.commit', this._onCommentCommit);
422
+ grid.addEventListener('keydown', this._onKeyDown);
423
+ grid.addEventListener('mousedown', this._onMouseDown);
424
+ grid.addEventListener('click', this._onClick);
425
+ grid.addEventListener('mouseup', () => grid.selecting.endSelecting());
426
+ grid.addEventListener('contextmenu', this._onContextMenu);
427
+ grid.addEventListener('toggle', () => grid.rendering.debounceCalculateViewport());
428
+ // table rendering
429
+ const debounceMouseMove = (0, ts_debounce_1.debounce)(this._onMouseMove, 20, { maxWait: 50, isImmediate: true });
430
+ grid.table.addEventListener('mousemove', debounceMouseMove);
431
+ grid.table.addEventListener('rendercells', () => {
432
+ grid.selecting.updateSelector(false);
433
+ grid.selecting.updateCopySelector();
434
+ this.grid.dispatchEvent(new GridEvent('render', this.grid));
435
+ if (grid.adapter && grid.options.pageSize && grid.rendering.isLastRowInViewport()) {
436
+ this.grid.rendering.loadNextPage();
437
+ }
438
+ grid.rendering.updateSliderVisibility();
439
+ });
440
+ // selector
441
+ grid.selector.addEventListener('grid.selector.autofill', this._onAutofill);
442
+ grid.selector.addEventListener('grid.selector.move', this._onMove);
443
+ // editing
444
+ core_1.dom.debounceOn(this.table, 'dblclick', 'td', (_e, _t) => grid.editing.startEdit(), { wait: 10 });
445
+ grid.addEventListener('grid.edit', this._onEdit);
446
+ }
447
+ }
448
+ exports.GridEvents = GridEvents;
449
+ //# sourceMappingURL=grid.events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.events.js","sourceRoot":"","sources":["../../src/ui/grid.events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { BaseFilter } from "../filters/baseFilter";
2
+ import { ColumnModel, FilterModel } from "@omegagrid/grid-core";
3
+ import { Grid } from "./grid";
4
+ import { TableHeaderCell } from "./table";
5
+ export declare class GridFiltering {
6
+ readonly grid: Grid;
7
+ get model(): import("@omegagrid/grid-core").GridModel;
8
+ get selection(): import("@omegagrid/grid-core").SelectionModel;
9
+ get selector(): import("./selector").Selector;
10
+ get events(): import("./grid.events").GridEvents;
11
+ get table(): import("./table").Table;
12
+ filter: FilterModel;
13
+ filterMap: Map<string, BaseFilter>;
14
+ constructor(grid: Grid);
15
+ get isCustomFilter(): boolean;
16
+ init(): void;
17
+ getFilter(column: ColumnModel): BaseFilter;
18
+ openFilter(column: ColumnModel, th: TableHeaderCell): void;
19
+ }
20
+ //# sourceMappingURL=grid.filtering.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.filtering.d.ts","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,qBAAa,aAAa;IAWb,QAAQ,CAAC,IAAI,EAAE,IAAI;IAT/B,IAAI,KAAK,6CAA6B;IACtC,IAAI,SAAS,kDAAiC;IAC9C,IAAI,QAAQ,kCAAgC;IAC5C,IAAI,MAAM,uCAA8B;IACxC,IAAI,KAAK,4BAA6B;IAEtC,MAAM,EAAE,WAAW,CAAC;IACpB,SAAS,0BAAiC;gBAErB,IAAI,EAAE,IAAI;IAE/B,IAAI,cAAc,YAA+D;IAEjF,IAAI;IAeJ,SAAS,CAAC,MAAM,EAAE,WAAW;IAW7B,UAAU,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe;CAiBnD"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GridFiltering = void 0;
4
+ const core_1 = require("@omegagrid/core");
5
+ const filters_1 = require("../filters");
6
+ const grid_core_1 = require("@omegagrid/grid-core");
7
+ class GridFiltering {
8
+ get model() { return this.grid.model; }
9
+ get selection() { return this.grid.selection; }
10
+ get selector() { return this.grid.selector; }
11
+ get events() { return this.grid.events; }
12
+ get table() { return this.grid.table; }
13
+ constructor(grid) {
14
+ this.grid = grid;
15
+ this.filterMap = new Map();
16
+ }
17
+ get isCustomFilter() { return this.grid.adapter && !this.model.rowRoot.isLoaded; }
18
+ init() {
19
+ this.filter = new grid_core_1.FilterModel(this.model);
20
+ this.filter.addEventListener('filter', async () => {
21
+ if (this.isCustomFilter) {
22
+ this.model.rowRoot.clearChildren();
23
+ this.model.rowRoot.count = Infinity;
24
+ this.model.clearRows();
25
+ this.grid.rendering.loadNextPage();
26
+ }
27
+ else {
28
+ this.table.rowOffset = 0;
29
+ this.grid.rendering.renderCells({ vertical: true, horizontal: true });
30
+ }
31
+ });
32
+ }
33
+ getFilter(column) {
34
+ if (!this.filterMap.has(column.type)) {
35
+ const filter = (0, filters_1.createFilter)(column.type);
36
+ filter.filterModel = this.filter;
37
+ filter.columnModel = column;
38
+ this.grid.shadowRoot.appendChild(filter);
39
+ this.filterMap.set(column.type, filter);
40
+ }
41
+ return this.filterMap.get(column.type);
42
+ }
43
+ openFilter(column, th) {
44
+ this.filter.custom = this.isCustomFilter;
45
+ // const th = this.table.getColumnByModelIndex(column.index);
46
+ const filter = this.getFilter(column);
47
+ const offset = core_1.dom.getElementOffset(th, this.table);
48
+ core_1.dom.setPosition(filter, { t: offset.top, l: offset.left });
49
+ core_1.dom.setSize(filter, { w: th.clientWidth, h: th.clientHeight });
50
+ core_1.dom.showElement(filter);
51
+ filter.activate();
52
+ setTimeout(() => document.addEventListener('mousedown', () => {
53
+ filter.deactivate();
54
+ core_1.dom.hideElement(filter);
55
+ }, { once: true }), 100);
56
+ }
57
+ }
58
+ exports.GridFiltering = GridFiltering;
59
+ //# sourceMappingURL=grid.filtering.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grid.filtering.js","sourceRoot":"","sources":["../../src/ui/grid.filtering.ts"],"names":[],"mappings":"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"}