@guiexpert/table 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/esm2020/guiexpert-table.mjs +5 -0
  2. package/esm2020/index.mjs +102 -0
  3. package/esm2020/lib/table/action/action-id.type.mjs +20 -0
  4. package/esm2020/lib/table/action/on-action-triggered.if.mjs +2 -0
  5. package/esm2020/lib/table/action/osx-shortcut-actionId-mapping.mjs +17 -0
  6. package/esm2020/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
  7. package/esm2020/lib/table/action/shortcut.service.mjs +105 -0
  8. package/esm2020/lib/table/action/windows-shortcut-actionId-mapping.mjs +15 -0
  9. package/esm2020/lib/table/checkbox/checkbox-model.if.mjs +2 -0
  10. package/esm2020/lib/table/checkbox/checkbox-model.mjs +52 -0
  11. package/esm2020/lib/table/checkbox/tree-checkbox-model.mjs +106 -0
  12. package/esm2020/lib/table/data/common/aligns.mjs +19 -0
  13. package/esm2020/lib/table/data/common/area-map-factory.mjs +7 -0
  14. package/esm2020/lib/table/data/common/area-map.mjs +8 -0
  15. package/esm2020/lib/table/data/common/area-map.type.mjs +2 -0
  16. package/esm2020/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
  17. package/esm2020/lib/table/data/common/args-render-cell-div.mjs +2 -0
  18. package/esm2020/lib/table/data/common/boolean-function.mjs +3 -0
  19. package/esm2020/lib/table/data/common/cell-range.mjs +27 -0
  20. package/esm2020/lib/table/data/common/checkbox-column.mjs +15 -0
  21. package/esm2020/lib/table/data/common/checked-type.mjs +2 -0
  22. package/esm2020/lib/table/data/common/event/ge-cell-indices.mjs +7 -0
  23. package/esm2020/lib/table/data/common/event/ge-key-event.mjs +7 -0
  24. package/esm2020/lib/table/data/common/event/ge-model-change-event.mjs +10 -0
  25. package/esm2020/lib/table/data/common/event/ge-mouse-event.mjs +19 -0
  26. package/esm2020/lib/table/data/common/filter-function.mjs +2 -0
  27. package/esm2020/lib/table/data/common/get-t.mjs +2 -0
  28. package/esm2020/lib/table/data/common/index-and-px.mjs +7 -0
  29. package/esm2020/lib/table/data/common/size.if.mjs +2 -0
  30. package/esm2020/lib/table/data/common/size.mjs +7 -0
  31. package/esm2020/lib/table/data/common/sizes.mjs +33 -0
  32. package/esm2020/lib/table/data/common/sort-item.mjs +7 -0
  33. package/esm2020/lib/table/data/common/sort-state.type.mjs +2 -0
  34. package/esm2020/lib/table/data/common/tree-arrow.type.mjs +2 -0
  35. package/esm2020/lib/table/data/common/tree-row-if.mjs +2 -0
  36. package/esm2020/lib/table/data/common/tree-row.mjs +12 -0
  37. package/esm2020/lib/table/data/common/value-label.if.mjs +2 -0
  38. package/esm2020/lib/table/data/common/value-label.mjs +7 -0
  39. package/esm2020/lib/table/data/div-scope.type.mjs +2 -0
  40. package/esm2020/lib/table/data/geo-data.mjs +10 -0
  41. package/esm2020/lib/table/data/options/auto-restore-options.if.mjs +2 -0
  42. package/esm2020/lib/table/data/options/auto-restore-options.mjs +42 -0
  43. package/esm2020/lib/table/data/options/default-row-heights.if.mjs +2 -0
  44. package/esm2020/lib/table/data/options/default-row-heights.mjs +8 -0
  45. package/esm2020/lib/table/data/options/icon.if.mjs +2 -0
  46. package/esm2020/lib/table/data/options/icon.mjs +8 -0
  47. package/esm2020/lib/table/data/options/sorted-options.if.mjs +2 -0
  48. package/esm2020/lib/table/data/options/sorted-options.mjs +9 -0
  49. package/esm2020/lib/table/data/options/table-options.if.mjs +2 -0
  50. package/esm2020/lib/table/data/options/table-options.mjs +38 -0
  51. package/esm2020/lib/table/data/options/tree-options.if.mjs +2 -0
  52. package/esm2020/lib/table/data/options/tree-options.mjs +10 -0
  53. package/esm2020/lib/table/data/side-ident.type.mjs +2 -0
  54. package/esm2020/lib/table/data/tablemodel/area-ident.type.mjs +10 -0
  55. package/esm2020/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +108 -0
  56. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-array-array.mjs +34 -0
  57. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +76 -0
  58. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +11 -0
  59. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +79 -0
  60. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +166 -0
  61. package/esm2020/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
  62. package/esm2020/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +48 -0
  63. package/esm2020/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
  64. package/esm2020/lib/table/data/tablemodel/column/column-def.mjs +32 -0
  65. package/esm2020/lib/table/data/tablemodel/padding.mjs +9 -0
  66. package/esm2020/lib/table/data/tablemodel/table-model.if.mjs +2 -0
  67. package/esm2020/lib/table/data/tablemodel/table-model.mjs +262 -0
  68. package/esm2020/lib/table/ele-scope.mjs +173 -0
  69. package/esm2020/lib/table/event-listener.if.mjs +2 -0
  70. package/esm2020/lib/table/focus/focus-model.if.mjs +2 -0
  71. package/esm2020/lib/table/focus/focus-model.mjs +22 -0
  72. package/esm2020/lib/table/focus/focus.type.mjs +2 -0
  73. package/esm2020/lib/table/input-handler.mjs +24 -0
  74. package/esm2020/lib/table/mouse-handler.mjs +197 -0
  75. package/esm2020/lib/table/render-scope.mjs +575 -0
  76. package/esm2020/lib/table/renderer/cell-render.if.mjs +2 -0
  77. package/esm2020/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
  78. package/esm2020/lib/table/renderer/date-to-int-date-cell-renderer.mjs +21 -0
  79. package/esm2020/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
  80. package/esm2020/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
  81. package/esm2020/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
  82. package/esm2020/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
  83. package/esm2020/lib/table/renderer/edit/select-cell-renderer.mjs +35 -0
  84. package/esm2020/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
  85. package/esm2020/lib/table/renderer/number-cell-renderer.mjs +19 -0
  86. package/esm2020/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
  87. package/esm2020/lib/table/renderer/renderer.mjs +7 -0
  88. package/esm2020/lib/table/selection/selection-model.if.mjs +2 -0
  89. package/esm2020/lib/table/selection/selection-model.mjs +97 -0
  90. package/esm2020/lib/table/selection/selection-service.mjs +97 -0
  91. package/esm2020/lib/table/selection/selection.type.mjs +2 -0
  92. package/esm2020/lib/table/service/abstract-store-state.service.mjs +49 -0
  93. package/esm2020/lib/table/service/convenience-dom.service.mjs +386 -0
  94. package/esm2020/lib/table/service/data/collapsed-expanded.data.mjs +9 -0
  95. package/esm2020/lib/table/service/data/html-style.type.mjs +2 -0
  96. package/esm2020/lib/table/service/dom-service.if.mjs +2 -0
  97. package/esm2020/lib/table/service/ge-filter.service.mjs +98 -0
  98. package/esm2020/lib/table/service/sorter.service.mjs +27 -0
  99. package/esm2020/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
  100. package/esm2020/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
  101. package/esm2020/lib/table/service/store-state-sorting.service.mjs +29 -0
  102. package/esm2020/lib/table/service/tree-row.service.mjs +23 -0
  103. package/esm2020/lib/table/table-api.mjs +38 -0
  104. package/esm2020/lib/table/table-model-factory.mjs +125 -0
  105. package/esm2020/lib/table/table-scope.mjs +307 -0
  106. package/index.d.ts +103 -0
  107. package/lib/table/action/action-id.type.d.ts +2 -0
  108. package/lib/table/action/on-action-triggered.if.d.ts +4 -0
  109. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
  110. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
  111. package/lib/table/action/shortcut.service.d.ts +17 -0
  112. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
  113. package/lib/table/checkbox/checkbox-model.d.ts +12 -0
  114. package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
  115. package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
  116. package/lib/table/data/common/aligns.d.ts +24 -0
  117. package/lib/table/data/common/area-map-factory.d.ts +5 -0
  118. package/lib/table/data/common/area-map.d.ts +7 -0
  119. package/lib/table/data/common/area-map.type.d.ts +5 -0
  120. package/lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +16 -0
  121. package/lib/table/data/common/args-render-cell-div.d.ts +13 -0
  122. package/lib/table/data/common/boolean-function.d.ts +3 -0
  123. package/lib/table/data/common/cell-range.d.ts +17 -0
  124. package/lib/table/data/common/checkbox-column.d.ts +13 -0
  125. package/lib/table/data/common/checked-type.d.ts +1 -0
  126. package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
  127. package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
  128. package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
  129. package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
  130. package/lib/table/data/common/filter-function.d.ts +1 -0
  131. package/lib/table/data/common/get-t.d.ts +1 -0
  132. package/lib/table/data/common/index-and-px.d.ts +5 -0
  133. package/lib/table/data/common/size.d.ts +6 -0
  134. package/lib/table/data/common/size.if.d.ts +4 -0
  135. package/lib/table/data/common/sizes.d.ts +32 -0
  136. package/lib/table/data/common/sort-item.d.ts +6 -0
  137. package/lib/table/data/common/sort-state.type.d.ts +1 -0
  138. package/lib/table/data/common/tree-arrow.type.d.ts +1 -0
  139. package/lib/table/data/common/tree-row-if.d.ts +10 -0
  140. package/lib/table/data/common/tree-row.d.ts +11 -0
  141. package/lib/table/data/common/value-label.d.ts +6 -0
  142. package/lib/table/data/common/value-label.if.d.ts +4 -0
  143. package/lib/table/data/div-scope.type.d.ts +7 -0
  144. package/lib/table/data/geo-data.d.ts +8 -0
  145. package/lib/table/data/options/auto-restore-options.d.ts +11 -0
  146. package/lib/table/data/options/auto-restore-options.if.d.ts +13 -0
  147. package/lib/table/data/options/default-row-heights.d.ts +7 -0
  148. package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
  149. package/lib/table/data/options/icon.d.ts +7 -0
  150. package/lib/table/data/options/icon.if.d.ts +5 -0
  151. package/lib/table/data/options/sorted-options.d.ts +8 -0
  152. package/lib/table/data/options/sorted-options.if.d.ts +6 -0
  153. package/lib/table/data/options/table-options.d.ts +36 -0
  154. package/lib/table/data/options/table-options.if.d.ts +37 -0
  155. package/lib/table/data/options/tree-options.d.ts +9 -0
  156. package/lib/table/data/options/tree-options.if.d.ts +7 -0
  157. package/lib/table/data/side-ident.type.d.ts +1 -0
  158. package/lib/table/data/tablemodel/area-ident.type.d.ts +2 -0
  159. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +43 -0
  160. package/lib/table/data/tablemodel/areamodel/area-model-array-array.d.ts +18 -0
  161. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +32 -0
  162. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
  163. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +27 -0
  164. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
  165. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +33 -0
  166. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
  167. package/lib/table/data/tablemodel/column/column-def.d.ts +46 -0
  168. package/lib/table/data/tablemodel/column/column-def.if.d.ts +22 -0
  169. package/lib/table/data/tablemodel/padding.d.ts +7 -0
  170. package/lib/table/data/tablemodel/table-model.d.ts +60 -0
  171. package/lib/table/data/tablemodel/table-model.if.d.ts +34 -0
  172. package/lib/table/ele-scope.d.ts +37 -0
  173. package/lib/table/event-listener.if.d.ts +11 -0
  174. package/lib/table/focus/focus-model.d.ts +12 -0
  175. package/lib/table/focus/focus-model.if.d.ts +6 -0
  176. package/lib/table/focus/focus.type.d.ts +1 -0
  177. package/lib/table/input-handler.d.ts +6 -0
  178. package/lib/table/mouse-handler.d.ts +27 -0
  179. package/lib/table/render-scope.d.ts +77 -0
  180. package/lib/table/renderer/cell-render.if.d.ts +7 -0
  181. package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
  182. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
  183. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
  184. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
  185. package/lib/table/renderer/edit/edit-cell-renderer.type.d.ts +2 -0
  186. package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
  187. package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
  188. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
  189. package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
  190. package/lib/table/renderer/renderer-cleanup-fn.type.d.ts +1 -0
  191. package/lib/table/renderer/renderer.d.ts +5 -0
  192. package/lib/table/selection/selection-model.d.ts +21 -0
  193. package/lib/table/selection/selection-model.if.d.ts +11 -0
  194. package/lib/table/selection/selection-service.d.ts +17 -0
  195. package/lib/table/selection/selection.type.d.ts +2 -0
  196. package/lib/table/service/abstract-store-state.service.d.ts +10 -0
  197. package/lib/table/service/convenience-dom.service.d.ts +44 -0
  198. package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
  199. package/lib/table/service/data/html-style.type.d.ts +3 -0
  200. package/lib/table/service/dom-service.if.d.ts +9 -0
  201. package/lib/table/service/ge-filter.service.d.ts +5 -0
  202. package/lib/table/service/sorter.service.d.ts +3 -0
  203. package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
  204. package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
  205. package/lib/table/service/store-state-sorting.service.d.ts +11 -0
  206. package/lib/table/service/tree-row.service.d.ts +5 -0
  207. package/lib/table/table-api.d.ts +16 -0
  208. package/lib/table/table-model-factory.d.ts +61 -0
  209. package/lib/table/table-scope.d.ts +55 -0
  210. package/package.json +25 -0
@@ -0,0 +1,307 @@
1
+ import { GeMouseEvent } from "./data/common/event/ge-mouse-event";
2
+ import { ConvenienceDomService } from "./service/convenience-dom.service";
3
+ import { MouseHandler } from "./mouse-handler";
4
+ import { TableApi } from "./table-api";
5
+ import { AreaModelTree } from "./data/tablemodel/areamodel/area-model-tree";
6
+ import { StoreStateScrollPosService } from "./service/store-state-scroll-pos.service";
7
+ import { StoreStateCollapsedExpandService } from "./service/store-state-collapsed-expand.service";
8
+ import { StoreStateSortingService } from "./service/store-state-sorting.service";
9
+ import { RenderScope } from "./render-scope";
10
+ import { SortItem } from "./data/common/sort-item";
11
+ import { InputHandler } from "./input-handler";
12
+ import { GeModelChangeEvent } from "./data/common/event/ge-model-change-event";
13
+ import { SelectionService } from "./selection/selection-service";
14
+ import { ShortcutService } from "./action/shortcut.service";
15
+ export class TableScope extends RenderScope {
16
+ constructor(hostElement, tableModel, domService, tableOptions, eventListener) {
17
+ super(hostElement, tableModel, new ConvenienceDomService(domService), tableOptions);
18
+ this.eventListener = eventListener;
19
+ this.selectionService = new SelectionService(this);
20
+ this.api = new TableApi(this);
21
+ this.mouseStartAction = '';
22
+ this.mouseStartWidth = -1;
23
+ this.mouseStartColumnIndex = -1;
24
+ this.dragFrom = -1;
25
+ this.dragTo = -1;
26
+ if (this.tableOptions?.autoRestoreOptions) {
27
+ const autoRestoreOptions = this.tableOptions.autoRestoreOptions;
28
+ const keyFn = autoRestoreOptions.getStorageKeyFn;
29
+ if (keyFn) {
30
+ if (autoRestoreOptions.autoRestoreScrollPosition) {
31
+ this.storeScrollPosStateService = new StoreStateScrollPosService(keyFn);
32
+ }
33
+ if (autoRestoreOptions.autoRestoreCollapsedExpandedState) {
34
+ this.storeStateCollapsedExpandService = new StoreStateCollapsedExpandService(keyFn);
35
+ }
36
+ if (autoRestoreOptions.autoRestoreSortingState) {
37
+ this.storeSortingService = new StoreStateSortingService(keyFn);
38
+ }
39
+ }
40
+ }
41
+ this.mouseHandler = new MouseHandler(this);
42
+ this.inputHandler = new InputHandler(this);
43
+ this.shortcutService = new ShortcutService(this);
44
+ this.shortcutService.addListener(this.selectionService);
45
+ }
46
+ onActionTriggered(actionId) {
47
+ if (actionId === 'START_EDITING') {
48
+ if (this.getFocusModel) {
49
+ const fm = this.getFocusModel();
50
+ if (fm) {
51
+ const [rowIdx, colIdx] = fm.getFocus();
52
+ if (this.tableModel.getBodyModel().isEditable(rowIdx, colIdx)) {
53
+ this.clearSelection();
54
+ this.initRenderEditor(rowIdx, colIdx);
55
+ }
56
+ }
57
+ }
58
+ }
59
+ return false;
60
+ }
61
+ updateModelValue(areaIdent, rowIndex, columnIndex, value) {
62
+ if (areaIdent === 'body') {
63
+ const bodyAreaModel = this.tableModel.getAreaModel(areaIdent);
64
+ const ok = bodyAreaModel.setValue(rowIndex, columnIndex, value, this.tableModel);
65
+ if (ok) {
66
+ this.resetEditorRenderer();
67
+ this.repaint();
68
+ this.eventListener.onModelChanged(GeModelChangeEvent.createSingle(rowIndex, columnIndex));
69
+ }
70
+ }
71
+ }
72
+ getApi() {
73
+ return this.api;
74
+ }
75
+ /*
76
+ * Called by the table component
77
+ */
78
+ firstInit() {
79
+ this.tableModel.init();
80
+ this.autoRestoreCollapsedExpandedState();
81
+ this.autoRestoreSortingState();
82
+ this.resetSizeOfWrapperDiv();
83
+ this.adjustContainersAndRows();
84
+ this.autoRestoreScrollPosition();
85
+ }
86
+ createGeMouseEvent(mouseEvent) {
87
+ const ret = new GeMouseEvent();
88
+ ret.originalEvent = mouseEvent;
89
+ if (mouseEvent) {
90
+ const target = mouseEvent.target;
91
+ [ret.areaIdent, ret.sideIdent] = this.getAreaAndSideIdentByAttr(target);
92
+ ret.rowIndex = this.getNumberByAttr(target, 'data-row-index');
93
+ ret.columnIndex = this.getNumberByAttr(target, 'data-col-index');
94
+ ret.action = target.closest('[data-ge-action]')?.getAttribute('data-ge-action') ?? '';
95
+ if (mouseEvent.ctrlKey && mouseEvent.altKey) {
96
+ const bodyY = mouseEvent.clientY - this.hostElement.offsetTop - this.areaHeaderCenter.parent.clientHeight;
97
+ const bodyX = mouseEvent.clientX - this.hostElement.offsetLeft - this.areaBodyWestGeo.width;
98
+ this.debugOnce(bodyX, bodyY);
99
+ }
100
+ }
101
+ return ret;
102
+ }
103
+ onMouseDown(mouseEvent) {
104
+ if (mouseEvent.columnIndex > -1
105
+ && mouseEvent.action
106
+ && ['resize-column', 'drag-column'].includes(mouseEvent.action)) {
107
+ let w = this.tableModel.getColumnWidth(mouseEvent.columnIndex);
108
+ this.mouseStartWidth = w;
109
+ this.mouseStartAction = mouseEvent.action;
110
+ this.mouseStartColumnIndex = mouseEvent.columnIndex;
111
+ if (this.mouseStartAction === 'drag-column') {
112
+ this.dragFrom = this.mouseStartColumnIndex;
113
+ }
114
+ }
115
+ }
116
+ mouseDraggingOnFrame(mouseEvent) {
117
+ this.eventListener.onMouseDragging(mouseEvent);
118
+ this.mouseEvent = mouseEvent;
119
+ if (this.mouseStartColumnIndex > -1 && this.mouseStartAction === 'resize-column') {
120
+ let w = this.tableModel.getColumnWidth(this.mouseStartColumnIndex);
121
+ this.tableModel.setColumnWidth(this.mouseStartColumnIndex, this.mouseStartWidth + mouseEvent.draggingX);
122
+ this.resetSizeOfWrapperDiv();
123
+ this.adjustContainersAndRows();
124
+ }
125
+ else if (this.mouseStartAction === 'drag-column' && mouseEvent.columnIndex > -1) {
126
+ this.draggingTargetColumnIndex = mouseEvent.columnIndex;
127
+ this.dragTo = this.draggingTargetColumnIndex;
128
+ if (this.dragFrom > -1 && this.dragTo > -1 && this.dragFrom !== this.dragTo) {
129
+ this.tableModel.changeColumnOrder(this.dragFrom, this.dragTo);
130
+ this.dragFrom = this.dragTo;
131
+ this.resetSizeOfWrapperDiv();
132
+ this.adjustContainersAndRows();
133
+ }
134
+ this.repaint();
135
+ }
136
+ }
137
+ mouseDraggingEndOnFrame(mouseEvent) {
138
+ this.eventListener.onMouseDraggingEnd(mouseEvent);
139
+ this.draggingTargetColumnIndex = -1;
140
+ if (this.mouseStartAction === 'resize-column') {
141
+ let w = this.tableModel.getColumnWidth(this.mouseStartColumnIndex);
142
+ this.tableModel.setColumnWidth(this.mouseStartColumnIndex, this.mouseStartWidth + mouseEvent.draggingX);
143
+ this.resetSizeOfWrapperDiv();
144
+ this.adjustContainersAndRows();
145
+ }
146
+ else if (this.mouseStartAction === 'drag-column') {
147
+ // this.draggingTargetColumnIndex = mouseEvent.columnIndex;
148
+ // this.dragTo = this.draggingTargetColumnIndex;
149
+ // if (this.dragFrom !== this.dragTo) {
150
+ // this.tableModel.changeColumnOrder(this.dragFrom, this.dragTo);
151
+ // this.dragFrom = this.dragTo;
152
+ // this.resetSizeOfWrapperDiv();
153
+ // this.adjustContainersAndRows();
154
+ // }
155
+ this.repaint();
156
+ }
157
+ this.mouseStartWidth = -1;
158
+ this.mouseStartColumnIndex = -1;
159
+ this.dragFrom = -1;
160
+ this.dragTo = -1;
161
+ this.mouseStartAction = '';
162
+ }
163
+ mouseMove(mouseMoveEvent) {
164
+ this.eventListener.onMouseMoved(mouseMoveEvent);
165
+ this.adjustHoverRows(mouseMoveEvent);
166
+ this.adjustHoverColumns(mouseMoveEvent);
167
+ }
168
+ contextmenu(mouseMoveEvent) {
169
+ this.eventListener.onContextmenu(mouseMoveEvent);
170
+ }
171
+ toggleExpandCollapseAll(expand = true) {
172
+ const bodyAreaModel = this.tableModel.getBodyModel();
173
+ if (bodyAreaModel instanceof AreaModelTree) {
174
+ const amt = bodyAreaModel;
175
+ amt.toggleExpandCollapseAll(expand);
176
+ this.repaint();
177
+ this.storeStateCollapsedExpandService?.collapsedStateAll(expand);
178
+ }
179
+ }
180
+ toggleRowCheckbox(rowIdx, colIdx, areaIdent) {
181
+ const areaModel = this.tableModel.getAreaModel(areaIdent);
182
+ const state = areaModel.isRowChecked(rowIdx);
183
+ const sel = (state === undefined || state === 'semi' || state === 'none');
184
+ areaModel.setRowChecked(rowIdx, sel);
185
+ this.repaint();
186
+ const selectedRows = areaModel.rowSelectionModel?.getCheckedRows();
187
+ this.eventListener.onCheckboxChanged(selectedRows ? selectedRows : []);
188
+ }
189
+ onMouseClicked(evt, previousEvt) {
190
+ const dirty = this.selectionService.onMouseClicked(evt, previousEvt);
191
+ this.eventListener.onMouseClicked(evt);
192
+ if (dirty) {
193
+ this.debounce(this.repaint.bind(this), 10);
194
+ }
195
+ }
196
+ externalFilterChanged() {
197
+ const predictFn = this.tableOptions.externalFilterFunction;
198
+ if (predictFn) {
199
+ this.clearSelectionModel();
200
+ this.tableModel.externalFilterChanged(predictFn);
201
+ this.repaint();
202
+ }
203
+ }
204
+ onHeaderDblClicked(event, rowIdx, colIdx) {
205
+ const colDef = this.tableModel.getColumnDef(colIdx);
206
+ if (colDef?.sortable && colDef.sortable()) {
207
+ event.preventDefault();
208
+ const states = colDef.sortStatesOrder ? colDef.sortStatesOrder : this.tableOptions.sortOrder;
209
+ const currentState = colDef.sortState ?? '';
210
+ const newState = states[(states.indexOf(currentState) + 1) % states.length];
211
+ const sortItem = new SortItem(colIdx, newState);
212
+ const done = this.tableModel.doSort([sortItem]);
213
+ if (done) {
214
+ this.tableModel.getColumnDefs()?.forEach(cd => cd.sortState = '');
215
+ colDef.sortState = newState;
216
+ }
217
+ this.repaint();
218
+ this.storeSortingService?.setSortItems([sortItem]);
219
+ }
220
+ }
221
+ onKeyEvent(evt) {
222
+ this.keyEvent = evt;
223
+ console.info(this.keyEvent); // TODO
224
+ if (this.keyEvent.status === 'up' && this.keyEvent.originalEvent?.code === 'F2') {
225
+ this.keyEvent.originalEvent.stopPropagation();
226
+ console.info('F2...');
227
+ // TODO check, if we can start to edit a cell
228
+ }
229
+ }
230
+ clearSelectionModel() {
231
+ if (this.getSelectionModel) {
232
+ this.getSelectionModel()?.clear();
233
+ }
234
+ }
235
+ debugOnce(bodyX, bodyY) {
236
+ console.clear();
237
+ console.info('this.hostElement.offsetTop', this.hostElement.offsetTop); // pageY of table tag
238
+ console.info('this.hostElement.scrollHeight', this.hostElement.scrollHeight); // height of visible scroll area
239
+ console.info('this.scrollViewportTop', this.scrollTop); // amount of px scrolled to top (initial : 0)
240
+ console.info('this.areaHeaderCenter.parent.clientHeight', this.areaHeaderCenter.parent.clientHeight);
241
+ console.info('bodyY', bodyY);
242
+ console.info('bodyX', bodyX);
243
+ console.info('rows', this.firstVisibleRowIndex);
244
+ console.info('');
245
+ console.info('this.tableModel', this.tableModel);
246
+ console.info('');
247
+ console.info('this.mouseMoveEvent.clientX', this.mouseHandler.mouseEvent?.clientX);
248
+ console.info('this.hostElement.offsetLeft', this.hostElement.offsetLeft);
249
+ console.info('this.areaBodyWestGeo.width', this.areaBodyWestGeo.width);
250
+ }
251
+ autoRestoreScrollPosition() {
252
+ if (this.tableOptions?.autoRestoreOptions && this.storeScrollPosStateService) {
253
+ const autoRestoreOptions = this.tableOptions.autoRestoreOptions;
254
+ if (autoRestoreOptions.autoRestoreScrollPosition) {
255
+ const scrollOffset = this.storeScrollPosStateService.getScrollOffset();
256
+ if (scrollOffset) {
257
+ this.scrollViewport.scrollTo(...scrollOffset);
258
+ }
259
+ }
260
+ }
261
+ }
262
+ autoRestoreSortingState() {
263
+ if (this.tableOptions?.autoRestoreOptions?.autoRestoreSortingState && this.storeSortingService) {
264
+ const sortItems = this.storeSortingService.getSortItems();
265
+ if (sortItems?.length) {
266
+ const areaModel = this.tableModel.getBodyModel();
267
+ areaModel.doSort(sortItems);
268
+ }
269
+ }
270
+ }
271
+ autoRestoreCollapsedExpandedState() {
272
+ if (this.tableOptions?.autoRestoreOptions?.getRowId && this.storeStateCollapsedExpandService) {
273
+ const autoRestoreOptions = this.tableOptions.autoRestoreOptions;
274
+ const getRowId = autoRestoreOptions.getRowId;
275
+ if (autoRestoreOptions.autoRestoreCollapsedExpandedState && getRowId) {
276
+ const state = this.storeStateCollapsedExpandService.collapsedExpandedStateGet();
277
+ const areaModel = this.tableModel.getAreaModel('body');
278
+ if (areaModel instanceof AreaModelTree) {
279
+ const amtr = areaModel;
280
+ const rowCount = areaModel.getRowCount();
281
+ for (let i = 0; i < rowCount; i++) {
282
+ const row = areaModel.getRowByIndex(i);
283
+ if (row) {
284
+ if (state.allExpanded) {
285
+ row.expanded = true;
286
+ }
287
+ else if (state.allCollapsed) {
288
+ row.expanded = false;
289
+ }
290
+ else {
291
+ const rowId = getRowId(row.data);
292
+ if (state.mode === 'expanded') {
293
+ row.expanded = (this.storeStateCollapsedExpandService.collapsedExpandedStateIncludes(rowId));
294
+ }
295
+ else if (state.mode === 'collapsed') {
296
+ row.expanded = (!this.storeStateCollapsedExpandService.collapsedExpandedStateIncludes(rowId));
297
+ }
298
+ }
299
+ }
300
+ }
301
+ amtr.recalcVisibleTreeRows();
302
+ }
303
+ }
304
+ }
305
+ }
306
+ }
307
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtc2NvcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvdGFibGUtc2NvcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBRWhFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBR3hFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSxnREFBZ0QsQ0FBQztBQUNoRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMvRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUkvRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFVBQVcsU0FBUSxXQUFXO0lBb0J6QyxZQUNFLFdBQTJCLEVBQzNCLFVBQXdCLEVBQ3hCLFVBQXdCLEVBQ3hCLFlBQTRCLEVBQ1QsYUFBOEI7UUFFakQsS0FBSyxDQUNILFdBQVcsRUFDWCxVQUFVLEVBQ1YsSUFBSSxxQkFB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b0NBQ3JDLEdBQUcsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2lDQUMvRjs2QkFDRjt5QkFDRjtxQkFDRjtvQkFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztpQkFDOUI7YUFDRjtTQUNGO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUYWJsZU1vZGVsSWZ9IGZyb20gXCIuL2RhdGEvdGFibGVtb2RlbC90YWJsZS1tb2RlbC5pZlwiO1xuaW1wb3J0IHtBcmVhSWRlbnR9IGZyb20gXCIuL2RhdGEvdGFibGVtb2RlbC9hcmVhLWlkZW50LnR5cGVcIjtcbmltcG9ydCB7R2VNb3VzZUV2ZW50fSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb3VzZS1ldmVudFwiO1xuaW1wb3J0IHtEb21TZXJ2aWNlSWZ9IGZyb20gXCIuL3NlcnZpY2UvZG9tLXNlcnZpY2UuaWZcIjtcbmltcG9ydCB7Q29udmVuaWVuY2VEb21TZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlL2NvbnZlbmllbmNlLWRvbS5zZXJ2aWNlXCI7XG5pbXBvcnQge1RhYmxlT3B0aW9uc0lmfSBmcm9tIFwiLi9kYXRhL29wdGlvbnMvdGFibGUtb3B0aW9ucy5pZlwiO1xuaW1wb3J0IHtUcmVlUm93fSBmcm9tIFwiLi9kYXRhL2NvbW1vbi90cmVlLXJvd1wiO1xuaW1wb3J0IHtNb3VzZUhhbmRsZXJ9IGZyb20gXCIuL21vdXNlLWhhbmRsZXJcIjtcbmltcG9ydCB7RXZlbnRMaXN0ZW5lcklmfSBmcm9tIFwiLi9ldmVudC1saXN0ZW5lci5pZlwiO1xuaW1wb3J0IHtUYWJsZUFwaX0gZnJvbSBcIi4vdGFibGUtYXBpXCI7XG5pbXBvcnQge1NvcnRTdGF0ZX0gZnJvbSBcIi4vZGF0YS9jb21tb24vc29ydC1zdGF0ZS50eXBlXCI7XG5pbXBvcnQge0FyZWFNb2RlbFRyZWV9IGZyb20gXCIuL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC10cmVlXCI7XG5pbXBvcnQge1N0b3JlU3RhdGVTY3JvbGxQb3NTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlL3N0b3JlLXN0YXRlLXNjcm9sbC1wb3Muc2VydmljZVwiO1xuaW1wb3J0IHtTdG9yZVN0YXRlQ29sbGFwc2VkRXhwYW5kU2VydmljZX0gZnJvbSBcIi4vc2VydmljZS9zdG9yZS1zdGF0ZS1jb2xsYXBzZWQtZXhwYW5kLnNlcnZpY2VcIjtcbmltcG9ydCB7U3RvcmVTdGF0ZVNvcnRpbmdTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlL3N0b3JlLXN0YXRlLXNvcnRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHtSZW5kZXJTY29wZX0gZnJvbSBcIi4vcmVuZGVyLXNjb3BlXCI7XG5pbXBvcnQge1NvcnRJdGVtfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9zb3J0LWl0ZW1cIjtcbmltcG9ydCB7SW5wdXRIYW5kbGVyfSBmcm9tIFwiLi9pbnB1dC1oYW5kbGVyXCI7XG5pbXBvcnQge0dlTW9kZWxDaGFuZ2VFdmVudH0gZnJvbSBcIi4vZGF0YS9jb21tb24vZXZlbnQvZ2UtbW9kZWwtY2hhbmdlLWV2ZW50XCI7XG5pbXBvcnQge1NlbGVjdGlvblNlcnZpY2V9IGZyb20gXCIuL3NlbGVjdGlvbi9zZWxlY3Rpb24tc2VydmljZVwiO1xuaW1wb3J0IHtHZUtleUV2ZW50fSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1rZXktZXZlbnRcIjtcbmltcG9ydCB7T25BY3Rpb25UcmlnZ2VyZWRJZn0gZnJvbSBcIi4vYWN0aW9uL29uLWFjdGlvbi10cmlnZ2VyZWQuaWZcIjtcbmltcG9ydCB7QWN0aW9uSWR9IGZyb20gXCIuL2FjdGlvbi9hY3Rpb24taWQudHlwZVwiO1xuaW1wb3J0IHtTaG9ydGN1dFNlcnZpY2V9IGZyb20gXCIuL2FjdGlvbi9zaG9ydGN1dC5zZXJ2aWNlXCI7XG5cblxuZXhwb3J0IGNsYXNzIFRhYmxlU2NvcGUgZXh0ZW5kcyBSZW5kZXJTY29wZSBpbXBsZW1lbnRzIE9uQWN0aW9uVHJpZ2dlcmVkSWYge1xuXG5cbiAgcHVibGljIG1vdXNlSGFuZGxlcjogTW91c2VIYW5kbGVyO1xuICBwdWJsaWMgaW5wdXRIYW5kbGVyOiBJbnB1dEhhbmRsZXI7XG4gIHB1YmxpYyBzaG9ydGN1dFNlcnZpY2U6IFNob3J0Y3V0U2VydmljZTtcblxuICBwdWJsaWMgc3RvcmVTdGF0ZUNvbGxhcHNlZEV4cGFuZFNlcnZpY2U/OiBTdG9yZVN0YXRlQ29sbGFwc2VkRXhwYW5kU2VydmljZTtcbiAgcHVibGljIHN0b3JlU29ydGluZ1NlcnZpY2U/OiBTdG9yZVN0YXRlU29ydGluZ1NlcnZpY2U7XG5cbiAgcHJvdGVjdGVkIHNlbGVjdGlvblNlcnZpY2U6IFNlbGVjdGlvblNlcnZpY2UgPSBuZXcgU2VsZWN0aW9uU2VydmljZSh0aGlzKTtcbiAgcHJvdGVjdGVkIGtleUV2ZW50PzogR2VLZXlFdmVudDtcbiAgcHJpdmF0ZSBhcGkgPSBuZXcgVGFibGVBcGkodGhpcyk7XG5cbiAgcHJpdmF0ZSBtb3VzZVN0YXJ0QWN0aW9uID0gJyc7XG4gIHByaXZhdGUgbW91c2VTdGFydFdpZHRoID0gLTE7XG4gIHByaXZhdGUgbW91c2VTdGFydENvbHVtbkluZGV4ID0gLTE7XG4gIHByaXZhdGUgZHJhZ0Zyb20gPSAtMTtcbiAgcHJpdmF0ZSBkcmFnVG8gPSAtMTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBob3N0RWxlbWVudDogSFRNTERpdkVsZW1lbnQsXG4gICAgdGFibGVNb2RlbDogVGFibGVNb2RlbElmLFxuICAgIGRvbVNlcnZpY2U6IERvbVNlcnZpY2VJZixcbiAgICB0YWJsZU9wdGlvbnM6IFRhYmxlT3B0aW9uc0lmLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBldmVudExpc3RlbmVyOiBFdmVudExpc3RlbmVySWYsXG4gICkge1xuICAgIHN1cGVyKFxuICAgICAgaG9zdEVsZW1lbnQsXG4gICAgICB0YWJsZU1vZGVsLFxuICAgICAgbmV3IENvbnZlbmllbmNlRG9tU2VydmljZShkb21TZXJ2aWNlKSxcbiAgICAgIHRhYmxlT3B0aW9uc1xuICAgICk7XG4gICAgaWYgKHRoaXMudGFibGVPcHRpb25zPy5hdXRvUmVzdG9yZU9wdGlvbnMpIHtcbiAgICAgIGNvbnN0IGF1dG9SZXN0b3JlT3B0aW9ucyA9IHRoaXMudGFibGVPcHRpb25zLmF1dG9SZXN0b3JlT3B0aW9ucztcbiAgICAgIGNvbnN0IGtleUZuID0gYXV0b1Jlc3RvcmVPcHRpb25zLmdldFN0b3JhZ2VLZXlGbjtcbiAgICAgIGlmIChrZXlGbikge1xuICAgICAgICBpZiAoYXV0b1Jlc3RvcmVPcHRpb25zLmF1dG9SZXN0b3JlU2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgICAgICB0aGlzLnN0b3JlU2Nyb2xsUG9zU3RhdGVTZXJ2aWNlID0gbmV3IFN0b3JlU3RhdGVTY3JvbGxQb3NTZXJ2aWNlKGtleUZuKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXV0b1Jlc3RvcmVPcHRpb25zLmF1dG9SZXN0b3JlQ29sbGFwc2VkRXhwYW5kZWRTdGF0ZSkge1xuICAgICAgICAgIHRoaXMuc3RvcmVTdGF0ZUNvbGxhcHNlZEV4cGFuZFNlcnZpY2UgPSBuZXcgU3RvcmVTdGF0ZUNvbGxhcHNlZEV4cGFuZFNlcnZpY2Uoa2V5Rm4pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdXRvUmVzdG9yZU9wdGlvbnMuYXV0b1Jlc3RvcmVTb3J0aW5nU3RhdGUpIHtcbiAgICAgICAgICB0aGlzLnN0b3JlU29ydGluZ1NlcnZpY2UgPSBuZXcgU3RvcmVTdGF0ZVNvcnRpbmdTZXJ2aWNlKGtleUZuKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm1vdXNlSGFuZGxlciA9IG5ldyBNb3VzZUhhbmRsZXIodGhpcyk7XG4gICAgdGhpcy5pbnB1dEhhbmRsZXIgPSBuZXcgSW5wdXRIYW5kbGVyKHRoaXMpO1xuXG4gICAgdGhpcy5zaG9ydGN1dFNlcnZpY2UgPSBuZXcgU2hvcnRjdXRTZXJ2aWNlKHRoaXMpO1xuICAgIHRoaXMuc2hvcnRjdXRTZXJ2aWNlLmFkZExpc3RlbmVyKHRoaXMuc2VsZWN0aW9uU2VydmljZSk7XG4gIH1cblxuICBvbkFjdGlvblRyaWdnZXJlZChhY3Rpb25JZDogQWN0aW9uSWQpOiBib29sZWFuIHtcbiAgICBpZiAoYWN0aW9uSWQgPT09ICdTVEFSVF9FRElUSU5HJykge1xuICAgICAgaWYgKHRoaXMuZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgICBjb25zdCBmbSA9IHRoaXMuZ2V0Rm9jdXNNb2RlbCgpO1xuICAgICAgICBpZiAoZm0pIHtcbiAgICAgICAgICBjb25zdCBbcm93SWR4LCBjb2xJZHhdID0gZm0uZ2V0Rm9jdXMoKTtcbiAgICAgICAgICBpZiAodGhpcy50YWJsZU1vZGVsLmdldEJvZHlNb2RlbCgpLmlzRWRpdGFibGUocm93SWR4LCBjb2xJZHgpKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRSZW5kZXJFZGl0b3Iocm93SWR4LCBjb2xJZHgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICB1cGRhdGVNb2RlbFZhbHVlKGFyZWFJZGVudDogQXJlYUlkZW50LCByb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKGFyZWFJZGVudCA9PT0gJ2JvZHknKSB7XG4gICAgICBjb25zdCBib2R5QXJlYU1vZGVsID0gdGhpcy50YWJsZU1vZGVsLmdldEFyZWFNb2RlbChhcmVhSWRlbnQpO1xuICAgICAgY29uc3Qgb2s6IGJvb2xlYW4gPSBib2R5QXJlYU1vZGVsLnNldFZhbHVlKHJvd0luZGV4LCBjb2x1bW5JbmRleCwgdmFsdWUsIHRoaXMudGFibGVNb2RlbCk7XG4gICAgICBpZiAob2spIHtcbiAgICAgICAgdGhpcy5yZXNldEVkaXRvclJlbmRlcmVyKCk7XG4gICAgICAgIHRoaXMucmVwYWludCgpO1xuICAgICAgICB0aGlzLmV2ZW50TGlzdGVuZXIub25Nb2RlbENoYW5nZWQoR2VNb2RlbENoYW5nZUV2ZW50LmNyZWF0ZVNpbmdsZShyb3dJbmRleCwgY29sdW1uSW5kZXgpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRBcGkoKTogVGFibGVBcGkge1xuICAgIHJldHVybiB0aGlzLmFwaTtcbiAgfVxuXG4gIC8qXG4gICAqIENhbGxlZCBieSB0aGUgdGFibGUgY29tcG9uZW50XG4gICAqL1xuICBmaXJzdEluaXQoKSB7XG4gICAgdGhpcy50YWJsZU1vZGVsLmluaXQoKTtcbiAgICB0aGlzLmF1dG9SZXN0b3JlQ29sbGFwc2VkRXhwYW5kZWRTdGF0ZSgpO1xuICAgIHRoaXMuYXV0b1Jlc3RvcmVTb3J0aW5nU3RhdGUoKTtcbiAgICB0aGlzLnJlc2V0U2l6ZU9mV3JhcHBlckRpdigpO1xuICAgIHRoaXMuYWRqdXN0Q29udGFpbmVyc0FuZFJvd3MoKTtcbiAgICB0aGlzLmF1dG9SZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTtcbiAgfVxuXG4gIGNyZWF0ZUdlTW91c2VFdmVudChtb3VzZUV2ZW50OiBNb3VzZUV2ZW50KTogR2VNb3VzZUV2ZW50IHtcbiAgICBjb25zdCByZXQ6IEdlTW91c2VFdmVudCA9IG5ldyBHZU1vdXNlRXZlbnQoKTtcbiAgICByZXQub3JpZ2luYWxFdmVudCA9IG1vdXNlRXZlbnQ7XG5cbiAgICBpZiAobW91c2VFdmVudCkge1xuICAgICAgY29uc3QgdGFyZ2V0ID0gbW91c2VFdmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBbcmV0LmFyZWFJZGVudCwgcmV0LnNpZGVJZGVudF0gPSB0aGlzLmdldEFyZWFBbmRTaWRlSWRlbnRCeUF0dHIodGFyZ2V0KTtcbiAgICAgIHJldC5yb3dJbmRleCA9IHRoaXMuZ2V0TnVtYmVyQnlBdHRyKHRhcmdldCwgJ2RhdGEtcm93LWluZGV4Jyk7XG4gICAgICByZXQuY29sdW1uSW5kZXggPSB0aGlzLmdldE51bWJlckJ5QXR0cih0YXJnZXQsICdkYXRhLWNvbC1pbmRleCcpO1xuICAgICAgcmV0LmFjdGlvbiA9IHRhcmdldC5jbG9zZXN0KCdbZGF0YS1nZS1hY3Rpb25dJyk/LmdldEF0dHJpYnV0ZSgnZGF0YS1nZS1hY3Rpb24nKSA/PyAnJztcblxuICAgICAgaWYgKG1vdXNlRXZlbnQuY3RybEtleSAmJiBtb3VzZUV2ZW50LmFsdEtleSkge1xuICAgICAgICBjb25zdCBib2R5WSA9IG1vdXNlRXZlbnQuY2xpZW50WSAtIHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0VG9wIC0gdGhpcy5hcmVhSGVhZGVyQ2VudGVyLnBhcmVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgIGNvbnN0IGJvZHlYID0gbW91c2VFdmVudC5jbGllbnRYIC0gdGhpcy5ob3N0RWxlbWVudC5vZmZzZXRMZWZ0IC0gdGhpcy5hcmVhQm9keVdlc3RHZW8ud2lkdGg7XG4gICAgICAgIHRoaXMuZGVidWdPbmNlKGJvZHlYLCBib2R5WSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBvbk1vdXNlRG93bihtb3VzZUV2ZW50OiBHZU1vdXNlRXZlbnQpIHtcbiAgICBpZiAobW91c2VFdmVudC5jb2x1bW5JbmRleCA+IC0xXG4gICAgICAmJiBtb3VzZUV2ZW50LmFjdGlvblxuICAgICAgJiYgWydyZXNpemUtY29sdW1uJywgJ2RyYWctY29sdW1uJ10uaW5jbHVkZXMobW91c2VFdmVudC5hY3Rpb24pKSB7XG4gICAgICBsZXQgdyA9IHRoaXMudGFibGVNb2RlbC5nZXRDb2x1bW5XaWR0aChtb3VzZUV2ZW50LmNvbHVtbkluZGV4KTtcbiAgICAgIHRoaXMubW91c2VTdGFydFdpZHRoID0gdztcbiAgICAgIHRoaXMubW91c2VTdGFydEFjdGlvbiA9IG1vdXNlRXZlbnQuYWN0aW9uO1xuICAgICAgdGhpcy5tb3VzZVN0YXJ0Q29sdW1uSW5kZXggPSBtb3VzZUV2ZW50LmNvbHVtbkluZGV4O1xuXG4gICAgICBpZiAodGhpcy5tb3VzZVN0YXJ0QWN0aW9uID09PSAnZHJhZy1jb2x1bW4nKSB7XG4gICAgICAgIHRoaXMuZHJhZ0Zyb20gPSB0aGlzLm1vdXNlU3RhcnRDb2x1bW5JbmRleDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBtb3VzZURyYWdnaW5nT25GcmFtZShtb3VzZUV2ZW50OiBHZU1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXIub25Nb3VzZURyYWdnaW5nKG1vdXNlRXZlbnQpO1xuICAgIHRoaXMubW91c2VFdmVudCA9IG1vdXNlRXZlbnQ7XG5cbiAgICBpZiAodGhpcy5tb3VzZVN0YXJ0Q29sdW1uSW5kZXggPiAtMSAmJiB0aGlzLm1vdXNlU3RhcnRBY3Rpb24gPT09ICdyZXNpemUtY29sdW1uJykge1xuICAgICAgbGV0IHcgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0Q29sdW1uV2lkdGgodGhpcy5tb3VzZVN0YXJ0Q29sdW1uSW5kZXgpO1xuICAgICAgdGhpcy50YWJsZU1vZGVsLnNldENvbHVtbldpZHRoKHRoaXMubW91c2VTdGFydENvbHVtbkluZGV4LCB0aGlzLm1vdXNlU3RhcnRXaWR0aCArIG1vdXNlRXZlbnQuZHJhZ2dpbmdYKTtcblxuICAgICAgdGhpcy5yZXNldFNpemVPZldyYXBwZXJEaXYoKTtcbiAgICAgIHRoaXMuYWRqdXN0Q29udGFpbmVyc0FuZFJvd3MoKTtcblxuICAgIH0gZWxzZSBpZiAodGhpcy5tb3VzZVN0YXJ0QWN0aW9uID09PSAnZHJhZy1jb2x1bW4nICYmIG1vdXNlRXZlbnQuY29sdW1uSW5kZXggPiAtMSkge1xuXG4gICAgICB0aGlzLmRyYWdnaW5nVGFyZ2V0Q29sdW1uSW5kZXggPSBtb3VzZUV2ZW50LmNvbHVtbkluZGV4O1xuICAgICAgdGhpcy5kcmFnVG8gPSB0aGlzLmRyYWdnaW5nVGFyZ2V0Q29sdW1uSW5kZXg7XG5cbiAgICAgIGlmICh0aGlzLmRyYWdGcm9tID4gLTEgJiYgdGhpcy5kcmFnVG8gPiAtMSAmJiB0aGlzLmRyYWdGcm9tICE9PSB0aGlzLmRyYWdUbykge1xuICAgICAgICB0aGlzLnRhYmxlTW9kZWwuY2hhbmdlQ29sdW1uT3JkZXIodGhpcy5kcmFnRnJvbSwgdGhpcy5kcmFnVG8pO1xuICAgICAgICB0aGlzLmRyYWdGcm9tID0gdGhpcy5kcmFnVG87XG4gICAgICAgIHRoaXMucmVzZXRTaXplT2ZXcmFwcGVyRGl2KCk7XG4gICAgICAgIHRoaXMuYWRqdXN0Q29udGFpbmVyc0FuZFJvd3MoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVwYWludCgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdXNlRHJhZ2dpbmdFbmRPbkZyYW1lKG1vdXNlRXZlbnQ6IEdlTW91c2VFdmVudCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lci5vbk1vdXNlRHJhZ2dpbmdFbmQobW91c2VFdmVudCk7XG5cbiAgICB0aGlzLmRyYWdnaW5nVGFyZ2V0Q29sdW1uSW5kZXggPSAtMTtcbiAgICBpZiAodGhpcy5tb3VzZVN0YXJ0QWN0aW9uID09PSAncmVzaXplLWNvbHVtbicpIHtcbiAgICAgIGxldCB3ID0gdGhpcy50YWJsZU1vZGVsLmdldENvbHVtbldpZHRoKHRoaXMubW91c2VTdGFydENvbHVtbkluZGV4KTtcbiAgICAgIHRoaXMudGFibGVNb2RlbC5zZXRDb2x1bW5XaWR0aCh0aGlzLm1vdXNlU3RhcnRDb2x1bW5JbmRleCwgdGhpcy5tb3VzZVN0YXJ0V2lkdGggKyBtb3VzZUV2ZW50LmRyYWdnaW5nWCk7XG5cbiAgICAgIHRoaXMucmVzZXRTaXplT2ZXcmFwcGVyRGl2KCk7XG4gICAgICB0aGlzLmFkanVzdENvbnRhaW5lcnNBbmRSb3dzKCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLm1vdXNlU3RhcnRBY3Rpb24gPT09ICdkcmFnLWNvbHVtbicpIHtcbiAgICAgIC8vIHRoaXMuZHJhZ2dpbmdUYXJnZXRDb2x1bW5JbmRleCA9IG1vdXNlRXZlbnQuY29sdW1uSW5kZXg7XG4gICAgICAvLyB0aGlzLmRyYWdUbyA9IHRoaXMuZHJhZ2dpbmdUYXJnZXRDb2x1bW5JbmRleDtcbiAgICAgIC8vIGlmICh0aGlzLmRyYWdGcm9tICE9PSB0aGlzLmRyYWdUbykge1xuICAgICAgLy8gICB0aGlzLnRhYmxlTW9kZWwuY2hhbmdlQ29sdW1uT3JkZXIodGhpcy5kcmFnRnJvbSwgdGhpcy5kcmFnVG8pO1xuICAgICAgLy8gICB0aGlzLmRyYWdGcm9tID0gdGhpcy5kcmFnVG87XG4gICAgICAvLyAgIHRoaXMucmVzZXRTaXplT2ZXcmFwcGVyRGl2KCk7XG4gICAgICAvLyAgIHRoaXMuYWRqdXN0Q29udGFpbmVyc0FuZFJvd3MoKTtcbiAgICAgIC8vIH1cbiAgICAgIHRoaXMucmVwYWludCgpO1xuICAgIH1cbiAgICB0aGlzLm1vdXNlU3RhcnRXaWR0aCA9IC0xO1xuICAgIHRoaXMubW91c2VTdGFydENvbHVtbkluZGV4ID0gLTE7XG4gICAgdGhpcy5kcmFnRnJvbSA9IC0xO1xuICAgIHRoaXMuZHJhZ1RvID0gLTE7XG4gICAgdGhpcy5tb3VzZVN0YXJ0QWN0aW9uID0gJyc7XG4gIH1cblxuICBtb3VzZU1vdmUobW91c2VNb3ZlRXZlbnQ6IEdlTW91c2VFdmVudCkge1xuICAgIHRoaXMuZXZlbnRMaXN0ZW5lci5vbk1vdXNlTW92ZWQobW91c2VNb3ZlRXZlbnQpO1xuICAgIHRoaXMuYWRqdXN0SG92ZXJSb3dzKG1vdXNlTW92ZUV2ZW50KTtcbiAgICB0aGlzLmFkanVzdEhvdmVyQ29sdW1ucyhtb3VzZU1vdmVFdmVudCk7XG4gIH1cblxuICBjb250ZXh0bWVudShtb3VzZU1vdmVFdmVudDogR2VNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5ldmVudExpc3RlbmVyLm9uQ29udGV4dG1lbnUobW91c2VNb3ZlRXZlbnQpO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kQ29sbGFwc2VBbGwoZXhwYW5kOiBib29sZWFuID0gdHJ1ZSkge1xuICAgIGNvbnN0IGJvZHlBcmVhTW9kZWwgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0Qm9keU1vZGVsKCk7XG4gICAgaWYgKGJvZHlBcmVhTW9kZWwgaW5zdGFuY2VvZiBBcmVhTW9kZWxUcmVlKSB7XG4gICAgICBjb25zdCBhbXQ6IEFyZWFNb2RlbFRyZWU8YW55PiA9IGJvZHlBcmVhTW9kZWw7XG4gICAgICBhbXQudG9nZ2xlRXhwYW5kQ29sbGFwc2VBbGwoZXhwYW5kKTtcbiAgICAgIHRoaXMucmVwYWludCgpO1xuICAgICAgdGhpcy5zdG9yZVN0YXRlQ29sbGFwc2VkRXhwYW5kU2VydmljZT8uY29sbGFwc2VkU3RhdGVBbGwoZXhwYW5kKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVSb3dDaGVja2JveChyb3dJZHg6IG51bWJlciwgY29sSWR4OiBudW1iZXIsIGFyZWFJZGVudDogQXJlYUlkZW50KSB7XG4gICAgY29uc3QgYXJlYU1vZGVsID0gdGhpcy50YWJsZU1vZGVsLmdldEFyZWFNb2RlbChhcmVhSWRlbnQpO1xuICAgIGNvbnN0IHN0YXRlID0gYXJlYU1vZGVsLmlzUm93Q2hlY2tlZChyb3dJZHgpO1xuICAgIGNvbnN0IHNlbCA9IChzdGF0ZSA9PT0gdW5kZWZpbmVkIHx8IHN0YXRlID09PSAnc2VtaScgfHwgc3RhdGUgPT09ICdub25lJyk7XG4gICAgYXJlYU1vZGVsLnNldFJvd0NoZWNrZWQocm93SWR4LCBzZWwpO1xuICAgIHRoaXMucmVwYWludCgpO1xuICAgIGNvbnN0IHNlbGVjdGVkUm93cyA9IGFyZWFNb2RlbC5yb3dTZWxlY3Rpb25Nb2RlbD8uZ2V0Q2hlY2tlZFJvd3MoKTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXIub25DaGVja2JveENoYW5nZWQoc2VsZWN0ZWRSb3dzID8gc2VsZWN0ZWRSb3dzIDogW10pO1xuICB9XG5cbiAgb25Nb3VzZUNsaWNrZWQoZXZ0OiBHZU1vdXNlRXZlbnQsIHByZXZpb3VzRXZ0OiBHZU1vdXNlRXZlbnQgfCB1bmRlZmluZWQpIHtcbiAgICBjb25zdCBkaXJ0eSA9IHRoaXMuc2VsZWN0aW9uU2VydmljZS5vbk1vdXNlQ2xpY2tlZChldnQsIHByZXZpb3VzRXZ0KTtcbiAgICB0aGlzLmV2ZW50TGlzdGVuZXIub25Nb3VzZUNsaWNrZWQoZXZ0KTtcbiAgICBpZiAoZGlydHkpIHtcbiAgICAgIHRoaXMuZGVib3VuY2UodGhpcy5yZXBhaW50LmJpbmQodGhpcyksIDEwKTtcbiAgICB9XG4gIH1cblxuICBleHRlcm5hbEZpbHRlckNoYW5nZWQoKSB7XG4gICAgY29uc3QgcHJlZGljdEZuID0gdGhpcy50YWJsZU9wdGlvbnMuZXh0ZXJuYWxGaWx0ZXJGdW5jdGlvbjtcbiAgICBpZiAocHJlZGljdEZuKSB7XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uTW9kZWwoKTtcbiAgICAgIHRoaXMudGFibGVNb2RlbC5leHRlcm5hbEZpbHRlckNoYW5nZWQocHJlZGljdEZuKTtcbiAgICAgIHRoaXMucmVwYWludCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uSGVhZGVyRGJsQ2xpY2tlZChldmVudDogTW91c2VFdmVudCwgcm93SWR4OiBudW1iZXIsIGNvbElkeDogbnVtYmVyKSB7XG4gICAgY29uc3QgY29sRGVmID0gdGhpcy50YWJsZU1vZGVsLmdldENvbHVtbkRlZihjb2xJZHgpO1xuICAgIGlmIChjb2xEZWY/LnNvcnRhYmxlICYmIGNvbERlZi5zb3J0YWJsZSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgY29uc3Qgc3RhdGVzOiBTb3J0U3RhdGVbXSA9IGNvbERlZi5zb3J0U3RhdGVzT3JkZXIgPyBjb2xEZWYuc29ydFN0YXRlc09yZGVyIDogdGhpcy50YWJsZU9wdGlvbnMuc29ydE9yZGVyO1xuICAgICAgY29uc3QgY3VycmVudFN0YXRlOiBTb3J0U3RhdGUgPSBjb2xEZWYuc29ydFN0YXRlID8/ICcnO1xuICAgICAgY29uc3QgbmV3U3RhdGUgPSBzdGF0ZXNbKHN0YXRlcy5pbmRleE9mKGN1cnJlbnRTdGF0ZSkgKyAxKSAlIHN0YXRlcy5sZW5ndGhdO1xuXG4gICAgICBjb25zdCBzb3J0SXRlbSA9IG5ldyBTb3J0SXRlbShjb2xJZHgsIG5ld1N0YXRlKTtcbiAgICAgIGNvbnN0IGRvbmUgPSB0aGlzLnRhYmxlTW9kZWwuZG9Tb3J0KFtzb3J0SXRlbV0pO1xuICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgdGhpcy50YWJsZU1vZGVsLmdldENvbHVtbkRlZnMoKT8uZm9yRWFjaChjZCA9PiBjZC5zb3J0U3RhdGUgPSAnJyk7XG4gICAgICAgIGNvbERlZi5zb3J0U3RhdGUgPSBuZXdTdGF0ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMucmVwYWludCgpO1xuICAgICAgdGhpcy5zdG9yZVNvcnRpbmdTZXJ2aWNlPy5zZXRTb3J0SXRlbXMoW3NvcnRJdGVtXSk7XG4gICAgfVxuICB9XG5cbiAgb25LZXlFdmVudChldnQ6IEdlS2V5RXZlbnQpIHtcbiAgICB0aGlzLmtleUV2ZW50ID0gZXZ0O1xuICAgIGNvbnNvbGUuaW5mbyh0aGlzLmtleUV2ZW50KTsgLy8gVE9ET1xuICAgIGlmICh0aGlzLmtleUV2ZW50LnN0YXR1cyA9PT0gJ3VwJyAmJiB0aGlzLmtleUV2ZW50Lm9yaWdpbmFsRXZlbnQ/LmNvZGUgPT09ICdGMicpIHtcbiAgICAgIHRoaXMua2V5RXZlbnQub3JpZ2luYWxFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIGNvbnNvbGUuaW5mbygnRjIuLi4nKTtcbiAgICAgIC8vIFRPRE8gIGNoZWNrLCBpZiB3ZSBjYW4gc3RhcnQgdG8gZWRpdCBhIGNlbGxcbiAgICB9XG4gIH1cblxuXG4gIHByaXZhdGUgY2xlYXJTZWxlY3Rpb25Nb2RlbCgpIHtcbiAgICBpZiAodGhpcy5nZXRTZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgdGhpcy5nZXRTZWxlY3Rpb25Nb2RlbCgpPy5jbGVhcigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVidWdPbmNlKFxuICAgIGJvZHlYOiBudW1iZXIsXG4gICAgYm9keVk6IG51bWJlcixcbiAgKSB7XG4gICAgY29uc29sZS5jbGVhcigpO1xuICAgIGNvbnNvbGUuaW5mbygndGhpcy5ob3N0RWxlbWVudC5vZmZzZXRUb3AnLCB0aGlzLmhvc3RFbGVtZW50Lm9mZnNldFRvcCk7IC8vIHBhZ2VZIG9mIHRhYmxlIHRhZ1xuICAgIGNvbnNvbGUuaW5mbygndGhpcy5ob3N0RWxlbWVudC5zY3JvbGxIZWlnaHQnLCB0aGlzLmhvc3RFbGVtZW50LnNjcm9sbEhlaWdodCk7IC8vIGhlaWdodCBvZiB2aXNpYmxlIHNjcm9sbCBhcmVhXG4gICAgY29uc29sZS5pbmZvKCd0aGlzLnNjcm9sbFZpZXdwb3J0VG9wJywgdGhpcy5zY3JvbGxUb3ApOyAvLyBhbW91bnQgb2YgcHggc2Nyb2xsZWQgdG8gdG9wIChpbml0aWFsIDogMClcbiAgICBjb25zb2xlLmluZm8oJ3RoaXMuYXJlYUhlYWRlckNlbnRlci5wYXJlbnQuY2xpZW50SGVpZ2h0JywgdGhpcy5hcmVhSGVhZGVyQ2VudGVyLnBhcmVudC5jbGllbnRIZWlnaHQpO1xuICAgIGNvbnNvbGUuaW5mbygnYm9keVknLCBib2R5WSk7XG4gICAgY29uc29sZS5pbmZvKCdib2R5WCcsIGJvZHlYKTtcbiAgICBjb25zb2xlLmluZm8oJ3Jvd3MnLCB0aGlzLmZpcnN0VmlzaWJsZVJvd0luZGV4KTtcbiAgICBjb25zb2xlLmluZm8oJycsKTtcbiAgICBjb25zb2xlLmluZm8oJ3RoaXMudGFibGVNb2RlbCcsIHRoaXMudGFibGVNb2RlbCk7XG4gICAgY29uc29sZS5pbmZvKCcnLCk7XG4gICAgY29uc29sZS5pbmZvKCd0aGlzLm1vdXNlTW92ZUV2ZW50LmNsaWVudFgnLCB0aGlzLm1vdXNlSGFuZGxlci5tb3VzZUV2ZW50Py5jbGllbnRYKTtcbiAgICBjb25zb2xlLmluZm8oJ3RoaXMuaG9zdEVsZW1lbnQub2Zmc2V0TGVmdCcsIHRoaXMuaG9zdEVsZW1lbnQub2Zmc2V0TGVmdCk7XG4gICAgY29uc29sZS5pbmZvKCd0aGlzLmFyZWFCb2R5V2VzdEdlby53aWR0aCcsIHRoaXMuYXJlYUJvZHlXZXN0R2VvLndpZHRoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXV0b1Jlc3RvcmVTY3JvbGxQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy50YWJsZU9wdGlvbnM/LmF1dG9SZXN0b3JlT3B0aW9ucyAmJiB0aGlzLnN0b3JlU2Nyb2xsUG9zU3RhdGVTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBhdXRvUmVzdG9yZU9wdGlvbnMgPSB0aGlzLnRhYmxlT3B0aW9ucy5hdXRvUmVzdG9yZU9wdGlvbnM7XG4gICAgICBpZiAoYXV0b1Jlc3RvcmVPcHRpb25zLmF1dG9SZXN0b3JlU2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgICAgY29uc3Qgc2Nyb2xsT2Zmc2V0ID0gdGhpcy5zdG9yZVNjcm9sbFBvc1N0YXRlU2VydmljZS5nZXRTY3JvbGxPZmZzZXQoKTtcbiAgICAgICAgaWYgKHNjcm9sbE9mZnNldCkge1xuICAgICAgICAgIHRoaXMuc2Nyb2xsVmlld3BvcnQuc2Nyb2xsVG8oLi4uc2Nyb2xsT2Zmc2V0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b1Jlc3RvcmVTb3J0aW5nU3RhdGUoKSB7XG4gICAgaWYgKHRoaXMudGFibGVPcHRpb25zPy5hdXRvUmVzdG9yZU9wdGlvbnM/LmF1dG9SZXN0b3JlU29ydGluZ1N0YXRlICYmIHRoaXMuc3RvcmVTb3J0aW5nU2VydmljZSkge1xuICAgICAgY29uc3Qgc29ydEl0ZW1zID0gdGhpcy5zdG9yZVNvcnRpbmdTZXJ2aWNlLmdldFNvcnRJdGVtcygpO1xuICAgICAgaWYgKHNvcnRJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IGFyZWFNb2RlbCA9IHRoaXMudGFibGVNb2RlbC5nZXRCb2R5TW9kZWwoKTtcbiAgICAgICAgYXJlYU1vZGVsLmRvU29ydChzb3J0SXRlbXMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXV0b1Jlc3RvcmVDb2xsYXBzZWRFeHBhbmRlZFN0YXRlKCkge1xuICAgIGlmICh0aGlzLnRhYmxlT3B0aW9ucz8uYXV0b1Jlc3RvcmVPcHRpb25zPy5nZXRSb3dJZCAmJiB0aGlzLnN0b3JlU3RhdGVDb2xsYXBzZWRFeHBhbmRTZXJ2aWNlKSB7XG4gICAgICBjb25zdCBhdXRvUmVzdG9yZU9wdGlvbnMgPSB0aGlzLnRhYmxlT3B0aW9ucy5hdXRvUmVzdG9yZU9wdGlvbnM7XG4gICAgICBjb25zdCBnZXRSb3dJZCA9IGF1dG9SZXN0b3JlT3B0aW9ucy5nZXRSb3dJZDtcbiAgICAgIGlmIChhdXRvUmVzdG9yZU9wdGlvbnMuYXV0b1Jlc3RvcmVDb2xsYXBzZWRFeHBhbmRlZFN0YXRlICYmIGdldFJvd0lkKSB7XG4gICAgICAgIGNvbnN0IHN0YXRlID0gdGhpcy5zdG9yZVN0YXRlQ29sbGFwc2VkRXhwYW5kU2VydmljZS5jb2xsYXBzZWRFeHBhbmRlZFN0YXRlR2V0KCk7XG4gICAgICAgIGNvbnN0IGFyZWFNb2RlbCA9IHRoaXMudGFibGVNb2RlbC5nZXRBcmVhTW9kZWwoJ2JvZHknKTtcbiAgICAgICAgaWYgKGFyZWFNb2RlbCBpbnN0YW5jZW9mIEFyZWFNb2RlbFRyZWUpIHtcbiAgICAgICAgICBjb25zdCBhbXRyOiBBcmVhTW9kZWxUcmVlPGFueT4gPSBhcmVhTW9kZWw7XG4gICAgICAgICAgY29uc3Qgcm93Q291bnQgPSBhcmVhTW9kZWwuZ2V0Um93Q291bnQoKTtcblxuXG4gICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3dDb3VudDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCByb3c6IFRyZWVSb3c8YW55PiB8IHVuZGVmaW5lZCA9IGFyZWFNb2RlbC5nZXRSb3dCeUluZGV4KGkpO1xuICAgICAgICAgICAgaWYgKHJvdykge1xuICAgICAgICAgICAgICBpZiAoc3RhdGUuYWxsRXhwYW5kZWQpIHtcbiAgICAgICAgICAgICAgICByb3cuZXhwYW5kZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3RhdGUuYWxsQ29sbGFwc2VkKSB7XG4gICAgICAgICAgICAgICAgcm93LmV4cGFuZGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3dJZCA9IGdldFJvd0lkKHJvdy5kYXRhKTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGUubW9kZSA9PT0gJ2V4cGFuZGVkJykge1xuICAgICAgICAgICAgICAgICAgcm93LmV4cGFuZGVkID0gKHRoaXMuc3RvcmVTdGF0ZUNvbGxhcHNlZEV4cGFuZFNlcnZpY2UuY29sbGFwc2VkRXhwYW5kZWRTdGF0ZUluY2x1ZGVzKHJvd0lkKSk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXRlLm1vZGUgPT09ICdjb2xsYXBzZWQnKSB7XG4gICAgICAgICAgICAgICAgICByb3cuZXhwYW5kZWQgPSAoIXRoaXMuc3RvcmVTdGF0ZUNvbGxhcHNlZEV4cGFuZFNlcnZpY2UuY29sbGFwc2VkRXhwYW5kZWRTdGF0ZUluY2x1ZGVzKHJvd0lkKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGFtdHIucmVjYWxjVmlzaWJsZVRyZWVSb3dzKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIl19
package/index.d.ts ADDED
@@ -0,0 +1,103 @@
1
+ export * from './lib/table/table-scope';
2
+ export * from './lib/table/table-model-factory';
3
+ export * from './lib/table/table-api';
4
+ export * from './lib/table/ele-scope';
5
+ export * from './lib/table/render-scope';
6
+ export * from './lib/table/mouse-handler';
7
+ export * from './lib/table/input-handler';
8
+ export * from './lib/table/event-listener.if';
9
+ export * from './lib/table/action/action-id.type';
10
+ export * from './lib/table/action/shortcut.service';
11
+ export * from './lib/table/action/shortcut-actionid-mapping.type';
12
+ export * from './lib/table/action/windows-shortcut-actionId-mapping';
13
+ export * from './lib/table/action/osx-shortcut-actionId-mapping';
14
+ export * from './lib/table/action/on-action-triggered.if';
15
+ export * from './lib/table/renderer/renderer';
16
+ export * from './lib/table/data/side-ident.type';
17
+ export * from './lib/table/data/div-scope.type';
18
+ export * from './lib/table/data/geo-data';
19
+ export * from './lib/table/data/common/get-t';
20
+ export * from './lib/table/data/common/value-label.if';
21
+ export * from './lib/table/data/common/value-label';
22
+ export * from './lib/table/data/common/sort-item';
23
+ export * from './lib/table/data/common/sort-state.type';
24
+ export * from './lib/table/data/common/index-and-px';
25
+ export * from './lib/table/data/common/cell-range';
26
+ export * from './lib/table/data/common/checked-type';
27
+ export * from './lib/table/data/common/sizes';
28
+ export * from './lib/table/data/common/aligns';
29
+ export * from './lib/table/data/common/boolean-function';
30
+ export * from './lib/table/data/common/checkbox-column';
31
+ export * from './lib/table/data/common/size';
32
+ export * from './lib/table/data/common/size.if';
33
+ export * from './lib/table/data/common/area-map';
34
+ export * from './lib/table/data/common/area-map.type';
35
+ export * from './lib/table/data/common/area-map-factory';
36
+ export * from './lib/table/data/common/filter-function';
37
+ export * from './lib/table/data/common/args-render-cell-div';
38
+ export * from './lib/table/data/common/args-adjust-columns-to-row-parent-params';
39
+ export * from './lib/table/data/common/event/ge-mouse-event';
40
+ export * from './lib/table/data/common/event/ge-model-change-event';
41
+ export * from './lib/table/data/common/event/ge-cell-indices';
42
+ export * from './lib/table/data/common/event/ge-key-event';
43
+ export * from './lib/table/focus/focus-model';
44
+ export * from './lib/table/focus/focus-model.if';
45
+ export * from './lib/table/focus/focus.type';
46
+ export * from './lib/table/checkbox/checkbox-model';
47
+ export * from './lib/table/checkbox/tree-checkbox-model';
48
+ export * from './lib/table/checkbox/checkbox-model.if';
49
+ export * from './lib/table/data/options/auto-restore-options.if';
50
+ export * from './lib/table/data/options/auto-restore-options';
51
+ export * from './lib/table/data/options/table-options';
52
+ export * from './lib/table/data/options/table-options.if';
53
+ export * from './lib/table/data/options/default-row-heights.if';
54
+ export * from './lib/table/data/options/default-row-heights';
55
+ export * from './lib/table/data/options/tree-options';
56
+ export * from './lib/table/data/options/tree-options.if';
57
+ export * from './lib/table/data/options/icon';
58
+ export * from './lib/table/data/options/icon.if';
59
+ export * from './lib/table/data/options/sorted-options.if';
60
+ export * from './lib/table/data/options/sorted-options';
61
+ export * from './lib/table/data/tablemodel/padding';
62
+ export * from './lib/table/data/tablemodel/table-model.if';
63
+ export * from './lib/table/data/tablemodel/table-model';
64
+ export * from './lib/table/data/tablemodel/area-ident.type';
65
+ export * from './lib/table/data/tablemodel/column/column-def';
66
+ export * from './lib/table/data/tablemodel/column/column-def.if';
67
+ export * from './lib/table/data/tablemodel/areamodel/area-model.if';
68
+ export * from './lib/table/data/tablemodel/areamodel/abstract-area-model';
69
+ export * from './lib/table/data/tablemodel/areamodel/area-model-array-array';
70
+ export * from './lib/table/data/tablemodel/areamodel/area-model-hidden';
71
+ export * from './lib/table/data/tablemodel/areamodel/area-model-object-array';
72
+ export * from './lib/table/data/tablemodel/areamodel/area-model-tree';
73
+ export * from './lib/table/data/tablemodel/areamodel/col-and-rowspan-model';
74
+ export * from './lib/table/data/common/tree-row';
75
+ export * from './lib/table/data/common/tree-row-if';
76
+ export * from './lib/table/data/common/tree-arrow.type';
77
+ export * from './lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs';
78
+ export * from './lib/table/service/convenience-dom.service';
79
+ export * from './lib/table/service/dom-service.if';
80
+ export * from './lib/table/service/tree-row.service';
81
+ export * from './lib/table/service/store-state-scroll-pos.service';
82
+ export * from './lib/table/service/store-state-collapsed-expand.service';
83
+ export * from './lib/table/service/store-state-sorting.service';
84
+ export * from './lib/table/service/data/collapsed-expanded.data';
85
+ export * from './lib/table/service/data/html-style.type';
86
+ export * from './lib/table/service/ge-filter.service';
87
+ export * from './lib/table/renderer/cell-render.if';
88
+ export * from './lib/table/renderer/checkbox-cell-renderer';
89
+ export * from './lib/table/renderer/date-to-iso-cell-renderer';
90
+ export * from './lib/table/renderer/date-to-int-date-cell-renderer';
91
+ export * from './lib/table/renderer/date-to-locale-date-cell-renderer';
92
+ export * from './lib/table/renderer/male-female-to-icon-cell-renderer';
93
+ export * from './lib/table/renderer/renderer-cleanup-fn.type';
94
+ export * from './lib/table/renderer/number-cell-renderer';
95
+ export * from './lib/table/renderer/edit/edit-cell-renderer.type';
96
+ export * from './lib/table/renderer/edit/input-cell-renderer';
97
+ export * from './lib/table/renderer/edit/select-cell-renderer';
98
+ export * from './lib/table/selection/selection-model';
99
+ export * from './lib/table/selection/selection-model.if';
100
+ export * from './lib/table/selection/selection.type';
101
+ export * from './lib/table/selection/selection-service';
102
+ export { ArgsRenderCellDiv } from "./lib/table/data/common/args-render-cell-div";
103
+ export { ArgsAdjustColumnsToRowParentParams } from "./lib/table/data/common/args-adjust-columns-to-row-parent-params";
@@ -0,0 +1,2 @@
1
+ export declare const actionIds: readonly ["START_EDITING", "TOGGLE_SELECTION", "SELECT_ALL", "DESELECT_ALL"];
2
+ export declare type ActionId = typeof actionIds[number];
@@ -0,0 +1,4 @@
1
+ import { ActionId } from "./action-id.type";
2
+ export interface OnActionTriggeredIf {
3
+ onActionTriggered(actionId: ActionId): boolean;
4
+ }
@@ -0,0 +1,6 @@
1
+ import { ActionId } from "./action-id.type";
2
+ export declare class OsxShortcutActionIdMapping {
3
+ get(): {
4
+ [key: string]: ActionId;
5
+ };
6
+ }
@@ -0,0 +1,4 @@
1
+ import { ActionId } from "./action-id.type";
2
+ export declare type ShortcutActionIdMapping = {
3
+ [key: string]: ActionId;
4
+ };
@@ -0,0 +1,17 @@
1
+ import { TableScope } from "../table-scope";
2
+ import { OnActionTriggeredIf } from "./on-action-triggered.if";
3
+ export declare class ShortcutService {
4
+ protected tableScope: TableScope;
5
+ private shortcutActionIdMapping;
6
+ private listener;
7
+ constructor(tableScope: TableScope);
8
+ addListener(listener: OnActionTriggeredIf): void;
9
+ init(): void;
10
+ private isMacintosh;
11
+ private isLocalhost;
12
+ private onKeyDown;
13
+ private emit;
14
+ private findEnty;
15
+ private areTokensEquals;
16
+ private getTokenByEvent;
17
+ }
@@ -0,0 +1,6 @@
1
+ import { ActionId } from "./action-id.type";
2
+ export declare class WindowsShortcutActionIdMapping {
3
+ get(): {
4
+ [key: string]: ActionId;
5
+ };
6
+ }
@@ -0,0 +1,12 @@
1
+ import { CheckedType } from "../data/common/checked-type";
2
+ import { CheckboxModelIf } from "./checkbox-model.if";
3
+ export declare class CheckboxModel<T> implements CheckboxModelIf<T> {
4
+ protected checkedRows: Array<T>;
5
+ getCheckedRows(): T[];
6
+ setCheckedRows(rows: T[]): void;
7
+ addCheckedRows(rows: T[]): void;
8
+ checkRow(row: T, sel: boolean): void;
9
+ isRowChecked(row: T): CheckedType;
10
+ checkAll(_rows: T[]): void;
11
+ private removeSelectedRow;
12
+ }
@@ -0,0 +1,9 @@
1
+ import { CheckedType } from "../data/common/checked-type";
2
+ export interface CheckboxModelIf<T> {
3
+ getCheckedRows(): T[];
4
+ setCheckedRows(value: T[]): void;
5
+ addCheckedRows(value: T[]): void;
6
+ checkRow(row: T, check: boolean): void;
7
+ isRowChecked(row: T): CheckedType;
8
+ checkAll(value: T[]): void;
9
+ }
@@ -0,0 +1,17 @@
1
+ import { CheckedType } from "../data/common/checked-type";
2
+ import { CheckboxModelIf } from "./checkbox-model.if";
3
+ import { TreeRowIf } from "../data/common/tree-row-if";
4
+ export declare class TreeCheckboxModel<T extends TreeRowIf<any>> implements CheckboxModelIf<T> {
5
+ protected allRootNodes: T[];
6
+ constructor(allRootNodes?: T[]);
7
+ checkRow(row: T, sel: boolean): void;
8
+ checkAll(arr: T[]): void;
9
+ getCheckedRows(): T[];
10
+ isRowChecked(row: T): CheckedType;
11
+ setCheckedRows(rows: T[]): void;
12
+ addCheckedRows(rows: T[]): void;
13
+ private autoCheckParent;
14
+ private areAllChildrenChecked;
15
+ private areAllChildrenUnchecked;
16
+ private addSelectedRecursive;
17
+ }
@@ -0,0 +1,24 @@
1
+ export declare const bodyLeft: {
2
+ body: string[];
3
+ };
4
+ export declare const bodyCenter: {
5
+ body: string[];
6
+ };
7
+ export declare const bodyRight: {
8
+ body: string[];
9
+ };
10
+ export declare const allLeft: {
11
+ header: string[];
12
+ body: string[];
13
+ footer: string[];
14
+ };
15
+ export declare const allCenter: {
16
+ header: string[];
17
+ body: string[];
18
+ footer: string[];
19
+ };
20
+ export declare const allRight: {
21
+ header: string[];
22
+ body: string[];
23
+ footer: string[];
24
+ };
@@ -0,0 +1,5 @@
1
+ import { AreaObjectMap } from "./area-map";
2
+ import { CellRendererIf } from "../../renderer/cell-render.if";
3
+ export declare class AreaMapFactory {
4
+ static body(bodyRenderer: CellRendererIf): AreaObjectMap<CellRendererIf>;
5
+ }
@@ -0,0 +1,7 @@
1
+ import { AreaObjectMapType } from "./area-map.type";
2
+ export declare class AreaObjectMap<T> implements AreaObjectMapType<T> {
3
+ header?: T | undefined;
4
+ body?: T | undefined;
5
+ footer?: T | undefined;
6
+ constructor(header?: T | undefined, body?: T | undefined, footer?: T | undefined);
7
+ }
@@ -0,0 +1,5 @@
1
+ export declare type AreaObjectMapType<T> = {
2
+ header?: T | undefined;
3
+ body?: T | undefined;
4
+ footer?: T | undefined;
5
+ };
@@ -0,0 +1,16 @@
1
+ import { AreaIdent } from "../tablemodel/area-ident.type";
2
+ import { SideIdent } from "../side-ident.type";
3
+ import { AreaModelIf } from "../tablemodel/areamodel/area-model.if";
4
+ import { GeoData } from "../geo-data";
5
+ export interface ArgsAdjustColumnsToRowParentParams {
6
+ areaIdent: AreaIdent;
7
+ sideIdent: SideIdent;
8
+ areaModel: AreaModelIf;
9
+ geo: GeoData;
10
+ parent: HTMLDivElement;
11
+ rowIndex: number;
12
+ columnIndexStart: number;
13
+ columnIndexEnd: number;
14
+ verticalFixed?: boolean;
15
+ firstVisibleRow?: boolean;
16
+ }