@guiexpert/table 1.0.11 → 1.0.13

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 (145) hide show
  1. package/README.md +3 -3
  2. package/index.cjs +314 -0
  3. package/index.js +3721 -0
  4. package/lib/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +28 -0
  5. package/package.json +14 -13
  6. package/esm2022/guiexpert-table.mjs +0 -5
  7. package/esm2022/index.mjs +0 -140
  8. package/esm2022/lib/table/action/action-id.type.mjs +0 -20
  9. package/esm2022/lib/table/action/on-action-triggered.if.mjs +0 -2
  10. package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -21
  11. package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
  12. package/esm2022/lib/table/action/shortcut.service.mjs +0 -114
  13. package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -19
  14. package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +0 -2
  15. package/esm2022/lib/table/checkbox/checkbox-model.mjs +0 -50
  16. package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +0 -107
  17. package/esm2022/lib/table/color/color-rgb.if.mjs +0 -2
  18. package/esm2022/lib/table/color/color-rgb.mjs +0 -11
  19. package/esm2022/lib/table/color/ge-css-color-util.mjs +0 -26
  20. package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +0 -2
  21. package/esm2022/lib/table/color/three-color-gradient-arg.mjs +0 -17
  22. package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +0 -2
  23. package/esm2022/lib/table/color/two-color-gradient-arg.mjs +0 -13
  24. package/esm2022/lib/table/css-vars.mjs +0 -238
  25. package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +0 -2
  26. package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +0 -12
  27. package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +0 -2
  28. package/esm2022/lib/table/data/chunk/request-chunk.mjs +0 -22
  29. package/esm2022/lib/table/data/common/aligns.mjs +0 -19
  30. package/esm2022/lib/table/data/common/area-map-factory.mjs +0 -7
  31. package/esm2022/lib/table/data/common/area-map.mjs +0 -11
  32. package/esm2022/lib/table/data/common/area-map.type.mjs +0 -2
  33. package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
  34. package/esm2022/lib/table/data/common/args-render-cell-div.mjs +0 -2
  35. package/esm2022/lib/table/data/common/boolean-function.mjs +0 -3
  36. package/esm2022/lib/table/data/common/cell-range.mjs +0 -36
  37. package/esm2022/lib/table/data/common/checkbox-column-def.mjs +0 -13
  38. package/esm2022/lib/table/data/common/checked-type.mjs +0 -2
  39. package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +0 -9
  40. package/esm2022/lib/table/data/common/event/ge-key-event.mjs +0 -9
  41. package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +0 -11
  42. package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +0 -30
  43. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +0 -2
  44. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +0 -13
  45. package/esm2022/lib/table/data/common/filter-function.mjs +0 -2
  46. package/esm2022/lib/table/data/common/get-t.mjs +0 -2
  47. package/esm2022/lib/table/data/common/index-and-px.mjs +0 -9
  48. package/esm2022/lib/table/data/common/size.if.mjs +0 -2
  49. package/esm2022/lib/table/data/common/size.mjs +0 -9
  50. package/esm2022/lib/table/data/common/sizes.mjs +0 -33
  51. package/esm2022/lib/table/data/common/sort-item.mjs +0 -9
  52. package/esm2022/lib/table/data/common/sort-state.type.mjs +0 -2
  53. package/esm2022/lib/table/data/common/tree-arrow.type.mjs +0 -2
  54. package/esm2022/lib/table/data/common/tree-row-if.mjs +0 -2
  55. package/esm2022/lib/table/data/common/tree-row.mjs +0 -19
  56. package/esm2022/lib/table/data/common/value-label.if.mjs +0 -2
  57. package/esm2022/lib/table/data/common/value-label.mjs +0 -9
  58. package/esm2022/lib/table/data/div-scope.type.mjs +0 -2
  59. package/esm2022/lib/table/data/event/mouse-target-data.mjs +0 -36
  60. package/esm2022/lib/table/data/geo-data.mjs +0 -15
  61. package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +0 -2
  62. package/esm2022/lib/table/data/options/auto-restore-options.mjs +0 -40
  63. package/esm2022/lib/table/data/options/default-row-heights.if.mjs +0 -2
  64. package/esm2022/lib/table/data/options/default-row-heights.mjs +0 -11
  65. package/esm2022/lib/table/data/options/icon.if.mjs +0 -2
  66. package/esm2022/lib/table/data/options/icon.mjs +0 -11
  67. package/esm2022/lib/table/data/options/sorted-options.if.mjs +0 -2
  68. package/esm2022/lib/table/data/options/sorted-options.mjs +0 -12
  69. package/esm2022/lib/table/data/options/table-options.if.mjs +0 -2
  70. package/esm2022/lib/table/data/options/table-options.mjs +0 -44
  71. package/esm2022/lib/table/data/options/tree-options.if.mjs +0 -2
  72. package/esm2022/lib/table/data/options/tree-options.mjs +0 -14
  73. package/esm2022/lib/table/data/side-ident.type.mjs +0 -2
  74. package/esm2022/lib/table/data/table-model-and-options.if.mjs +0 -2
  75. package/esm2022/lib/table/data/table-model-and-options.mjs +0 -9
  76. package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +0 -14
  77. package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -137
  78. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +0 -47
  79. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +0 -163
  80. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -84
  81. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -15
  82. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -88
  83. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -181
  84. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
  85. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +0 -76
  86. package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -51
  87. package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +0 -2
  88. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +0 -133
  89. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +0 -2
  90. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +0 -18
  91. package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +0 -110
  92. package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
  93. package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +0 -52
  94. package/esm2022/lib/table/data/tablemodel/padding.mjs +0 -13
  95. package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +0 -2
  96. package/esm2022/lib/table/data/tablemodel/table-model.mjs +0 -308
  97. package/esm2022/lib/table/ele-scope.mjs +0 -199
  98. package/esm2022/lib/table/event-adapter.mjs +0 -17
  99. package/esm2022/lib/table/event-listener.if.mjs +0 -2
  100. package/esm2022/lib/table/factory/table-factory.mjs +0 -186
  101. package/esm2022/lib/table/factory/tree-factory.mjs +0 -32
  102. package/esm2022/lib/table/focus/focus-model.if.mjs +0 -2
  103. package/esm2022/lib/table/focus/focus-model.mjs +0 -33
  104. package/esm2022/lib/table/focus/focus.type.mjs +0 -2
  105. package/esm2022/lib/table/input-handler.mjs +0 -25
  106. package/esm2022/lib/table/mouse-handler.mjs +0 -196
  107. package/esm2022/lib/table/render-scope.mjs +0 -719
  108. package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +0 -8
  109. package/esm2022/lib/table/renderer/cell-render.if.mjs +0 -2
  110. package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +0 -47
  111. package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
  112. package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -24
  113. package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
  114. package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
  115. package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +0 -12
  116. package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
  117. package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +0 -4
  118. package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +0 -2
  119. package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
  120. package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +0 -36
  121. package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
  122. package/esm2022/lib/table/renderer/number-cell-renderer.mjs +0 -21
  123. package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +0 -44
  124. package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
  125. package/esm2022/lib/table/renderer/renderer.mjs +0 -7
  126. package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +0 -27
  127. package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +0 -15
  128. package/esm2022/lib/table/selection/selection-model.if.mjs +0 -2
  129. package/esm2022/lib/table/selection/selection-model.mjs +0 -99
  130. package/esm2022/lib/table/selection/selection-service.mjs +0 -101
  131. package/esm2022/lib/table/selection/selection.type.mjs +0 -2
  132. package/esm2022/lib/table/service/abstract-store-state.service.mjs +0 -50
  133. package/esm2022/lib/table/service/convenience-dom.service.mjs +0 -405
  134. package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +0 -13
  135. package/esm2022/lib/table/service/data/html-style.type.mjs +0 -2
  136. package/esm2022/lib/table/service/dom-service.if.mjs +0 -2
  137. package/esm2022/lib/table/service/ge-filter.service.mjs +0 -98
  138. package/esm2022/lib/table/service/simple-dom-service.mjs +0 -34
  139. package/esm2022/lib/table/service/sorter.service.mjs +0 -27
  140. package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
  141. package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
  142. package/esm2022/lib/table/service/store-state-sorting.service.mjs +0 -29
  143. package/esm2022/lib/table/service/tree-row.service.mjs +0 -23
  144. package/esm2022/lib/table/table-api.mjs +0 -42
  145. package/esm2022/lib/table/table-scope.mjs +0 -364
@@ -1,199 +0,0 @@
1
- import { GeoData } from "./data/geo-data";
2
- export class EleScope {
3
- hostElement;
4
- tableModel;
5
- dom;
6
- tableOptions;
7
- scrollViewport;
8
- contentWrapperDiv; // the big one. height: sum of rows height == tableModel.getContentHeightInPixel()
9
- contentDiv;
10
- areaHeaderCenter;
11
- areaHeaderWest;
12
- areaHeaderEast;
13
- areaBodyCenter;
14
- areaBodyWest;
15
- areaBodyEast;
16
- areaFooterCenter;
17
- areaFooterWest;
18
- areaFooterEast;
19
- borderHeaderBottom;
20
- borderFooterTop;
21
- borderFixedWest;
22
- borderFixedEast;
23
- hoverRow;
24
- hoverColumn;
25
- scrollTop = 0;
26
- areaBodyWestGeo = new GeoData();
27
- areaBodyCenterGeo = new GeoData();
28
- areaBodyEastGeo = new GeoData();
29
- constructor(hostElement, tableModel, dom, tableOptions) {
30
- this.hostElement = hostElement;
31
- this.tableModel = tableModel;
32
- this.dom = dom;
33
- this.tableOptions = tableOptions;
34
- const hostEle = this.hostElement;
35
- hostEle.innerText = ""; // clear
36
- this.dom.setAttribute(hostEle, "tabindex", "0"); // needed for getting key events
37
- this.dom.setStyle(this.dom.addClass("ge-table", hostEle), "position", "relative");
38
- this.hoverRow =
39
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-hover-row", hostEle));
40
- this.hoverColumn =
41
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-hover-column", hostEle));
42
- this.areaHeaderWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-west", hostEle, "header", "west")));
43
- this.areaHeaderCenter = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-center", hostEle, "header", "center")));
44
- this.areaHeaderEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-header ge-table-header-east", hostEle, "body", "east")));
45
- this.areaBodyWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-body ge-table-body-west", hostEle, "body", "west")));
46
- this.areaBodyEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-body ge-table-body-east", hostEle, "body", "east")));
47
- this.areaFooterWest = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-west", hostEle, "footer", "west")));
48
- this.areaFooterCenter = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-center", hostEle, "footer", "center")));
49
- this.areaFooterEast = dom.appendRelativeChildDiv(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-footer ge-table-footer-east", hostEle, "footer", "east")));
50
- this.scrollViewport =
51
- dom.applyStyleOverflowAuto(this.tableOptions.overflowX ?? "auto", this.tableOptions.overflowY ?? "auto", dom.applyStyleNoPadding(dom.applyStylePosistionAbsolute(dom.createAreaDivWithClass("ge-table-scroll-viewport", hostEle, "body", "center"))));
52
- this.contentWrapperDiv = dom.applyStyleNoPadding(dom.applyStylePosistionRelative(dom.createDivWithClass("ge-table-scroll-content-wrapper", this.scrollViewport)));
53
- this.contentDiv = dom.applyStyleNoPadding(dom.applyStylePosistionRelative(dom.createDivWithClass("ge-table-scroll-content", this.contentWrapperDiv)));
54
- this.areaBodyCenter = dom.appendRelativeChildDiv(dom.createDivWithClass("ge-table-body-center", this.contentDiv));
55
- this.borderHeaderBottom =
56
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-header-border", hostEle));
57
- this.borderFixedWest =
58
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-west-fixed-column-border", hostEle));
59
- this.borderFixedEast =
60
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-east-fixed-column-border", hostEle));
61
- this.borderFooterTop =
62
- dom.applyStylePosistionAbsolute(dom.createDivWithClass("ge-table-footer-border", hostEle));
63
- }
64
- adjustContainersAndRows() {
65
- const padding = this.tableModel.getPadding();
66
- const w = this.hostElement.clientWidth;
67
- const h = this.hostElement.clientHeight;
68
- this.dom.applyStyle(this.scrollViewport, {
69
- width: `${(w - padding.left)}px`,
70
- height: `${(h - padding.top)}px`,
71
- top: `${padding.top}px`,
72
- left: `${padding.left}px`
73
- });
74
- this.scrollTop = this.scrollViewport.scrollTop;
75
- // Content:
76
- this.dom.applyStyle(this.contentDiv, {
77
- width: `${this.scrollViewport.clientWidth}px`,
78
- height: `${this.scrollViewport.clientHeight}px`,
79
- top: `${this.scrollTop}px`,
80
- left: `${this.scrollViewport.scrollLeft}px`
81
- });
82
- // Body:
83
- // Body/West:
84
- this.areaBodyWestGeo.width = padding.left;
85
- this.areaBodyWestGeo.height = (h - padding.top - padding.bottom);
86
- this.areaBodyWestGeo.top = padding.top;
87
- this.areaBodyWestGeo.left = 0;
88
- this.dom.applyStyleInPx(this.areaBodyWest.parent, this.areaBodyWestGeo);
89
- if (this.tableOptions.fixedWestSeparatorBorderVisible &&
90
- this.tableModel.getFixedLeftColumnCount()) {
91
- this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFixedWest, {
92
- width: `1px`,
93
- height: `${this.areaBodyWestGeo.height}px`,
94
- top: `${this.areaBodyWestGeo.top}px`,
95
- left: `${this.areaBodyWestGeo.width}px`
96
- }));
97
- }
98
- else {
99
- this.dom.applyDisplayNoneStyle(this.borderFixedWest);
100
- }
101
- // Body/East:
102
- this.areaBodyEastGeo.width = padding.right;
103
- this.areaBodyEastGeo.height = (h - padding.top - padding.bottom);
104
- this.areaBodyEastGeo.top = padding.top;
105
- this.areaBodyEastGeo.left = w - padding.right;
106
- this.dom.applyStyleInPx(this.areaBodyEast.parent, this.areaBodyEastGeo);
107
- if (this.tableOptions.fixedEastSeparatorBorderVisible &&
108
- this.tableModel.getFixedLeftColumnCount()) {
109
- this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFixedEast, {
110
- width: `1px`,
111
- height: `${this.areaBodyEastGeo.height}px`,
112
- top: `${this.areaBodyEastGeo.top}px`,
113
- left: `${this.areaBodyEastGeo.left}px`
114
- }));
115
- }
116
- else {
117
- this.dom.applyDisplayNoneStyle(this.borderFixedEast);
118
- }
119
- // Body/Center:
120
- this.areaBodyCenterGeo.width = (w - padding.left - padding.right);
121
- this.areaBodyCenterGeo.height = (h - padding.top - padding.bottom);
122
- this.areaBodyCenterGeo.top = 0;
123
- this.areaBodyCenterGeo.left = 0;
124
- this.dom.applyStyleInPx(this.areaBodyCenter.parent, this.areaBodyCenterGeo);
125
- // Header:
126
- this.dom.applyStyle(this.areaHeaderCenter.parent, {
127
- width: `${w - padding.left - padding.right}px`,
128
- height: `${padding.top}px`,
129
- top: "0",
130
- left: `${padding.left}px`
131
- });
132
- this.dom.applyStyle(this.areaHeaderWest.parent, {
133
- width: `${padding.left}px`,
134
- height: `${padding.top}px`,
135
- top: "0",
136
- left: "0"
137
- });
138
- this.dom.applyStyle(this.areaHeaderEast.parent, {
139
- width: `${padding.right}px`,
140
- height: `${padding.top}px`,
141
- top: "0",
142
- left: `${w - padding.right}px`
143
- });
144
- if (this.tableOptions.headerSeparatorBorderVisible &&
145
- this.tableModel.isHeaderVisibe()) {
146
- this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderHeaderBottom, {
147
- width: `${w}px`,
148
- height: "1px",
149
- top: `${padding.top}px`,
150
- left: "0px"
151
- }));
152
- }
153
- else {
154
- this.dom.applyDisplayNoneStyle(this.borderHeaderBottom);
155
- }
156
- // Footer:
157
- this.dom.applyStyle(this.areaFooterWest.parent, {
158
- width: `${padding.left}px`,
159
- height: `${padding.bottom}px`,
160
- top: `${h - padding.bottom}px`,
161
- left: "0"
162
- });
163
- this.dom.applyStyle(this.areaFooterCenter.parent, {
164
- width: `${w - padding.left - padding.right}px`,
165
- height: `${padding.bottom}px`,
166
- top: `${h - padding.bottom}px`,
167
- left: `${padding.left}px`
168
- });
169
- this.dom.applyStyle(this.areaFooterEast.parent, {
170
- width: `${padding.right}px`,
171
- height: `${padding.bottom}px`,
172
- top: `${h - padding.bottom}px`,
173
- left: `${w - padding.right}px`
174
- });
175
- if (this.tableOptions.footerSeparatorBorderVisible &&
176
- this.tableModel.isFooterVisibe()) {
177
- this.dom.applyDisplayBlockStyle(this.dom.applyStyle(this.borderFooterTop, {
178
- width: `${w}px`,
179
- height: "1px",
180
- top: `${h - padding.bottom}px`,
181
- left: "0px"
182
- }));
183
- }
184
- else {
185
- this.dom.applyDisplayNoneStyle(this.borderFooterTop);
186
- }
187
- this.adjustAfterScrolling();
188
- }
189
- adjustAfterScrolling() {
190
- // must be overwritten
191
- }
192
- resetSizeOfWrapperDiv() {
193
- const w = `${this.tableModel.getContentWidthInPixel()}px`;
194
- const h = `${this.tableModel.getContentHeightInPixel() + 1}px`; // + 1, we want to see the last horizontal border
195
- this.dom.setStyle(this.contentWrapperDiv, "width", w);
196
- this.dom.setStyle(this.contentWrapperDiv, "height", h);
197
- }
198
- }
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlLXNjb3BlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2VsZS1zY29wZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHMUMsTUFBTSxPQUFPLFFBQVE7SUFvQ1I7SUFDQTtJQUNVO0lBQ1Y7SUFyQ0osY0FBYyxDQUFpQjtJQUU1QixpQkFBaUIsQ0FBaUIsQ0FBQyxrRkFBa0Y7SUFDckgsVUFBVSxDQUFpQjtJQUUzQixnQkFBZ0IsQ0FBVztJQUMzQixjQUFjLENBQVc7SUFDekIsY0FBYyxDQUFXO0lBRXpCLGNBQWMsQ0FBVztJQUN6QixZQUFZLENBQVc7SUFDdkIsWUFBWSxDQUFXO0lBR3ZCLGdCQUFnQixDQUFXO0lBQzNCLGNBQWMsQ0FBVztJQUN6QixjQUFjLENBQVc7SUFFekIsa0JBQWtCLENBQWlCO0lBQ25DLGVBQWUsQ0FBaUI7SUFDaEMsZUFBZSxDQUFpQjtJQUNoQyxlQUFlLENBQWlCO0lBRWhDLFFBQVEsQ0FBaUI7SUFDekIsV0FBVyxDQUFpQjtJQUU1QixTQUFTLEdBQUcsQ0FBQyxDQUFDO0lBRWQsZUFBZSxHQUFZLElBQUksT0FBTyxFQUFFLENBQUM7SUFDekMsaUJBQWlCLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxlQUFlLEdBQVksSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUduRCxZQUNXLFdBQTJCLEVBQzNCLFVBQXdCLEVBQ2QsR0FBMEIsRUFDcEMsWUFBNEI7UUFINUIsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQzNCLGVBQVUsR0FBVixVQUFVLENBQWM7UUFDZCxRQUFHLEdBQUgsR0FBRyxDQUF1QjtRQUNwQyxpQkFBWSxHQUFaLFlBQVksQ0FBZ0I7UUFFckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUVqQyxPQUFPLENBQUMsU0FB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SSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnZlbmllbmNlRG9tU2VydmljZSB9IGZyb20gXCIuL3NlcnZpY2UvY29udmVuaWVuY2UtZG9tLnNlcnZpY2VcIjtcbmltcG9ydCB7IERpdlNjb3BlIH0gZnJvbSBcIi4vZGF0YS9kaXYtc2NvcGUudHlwZVwiO1xuaW1wb3J0IHsgVGFibGVNb2RlbElmIH0gZnJvbSBcIi4vZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBUYWJsZU9wdGlvbnNJZiB9IGZyb20gXCIuL2RhdGEvb3B0aW9ucy90YWJsZS1vcHRpb25zLmlmXCI7XG5pbXBvcnQgeyBHZW9EYXRhIH0gZnJvbSBcIi4vZGF0YS9nZW8tZGF0YVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBFbGVTY29wZSB7XG5cbiAgcHVibGljIHNjcm9sbFZpZXdwb3J0OiBIVE1MRGl2RWxlbWVudDtcblxuICBwcm90ZWN0ZWQgY29udGVudFdyYXBwZXJEaXY6IEhUTUxEaXZFbGVtZW50OyAvLyB0aGUgYmlnIG9uZS4gaGVpZ2h0OiBzdW0gb2Ygcm93cyBoZWlnaHQgPT0gdGFibGVNb2RlbC5nZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpXG4gIHByb3RlY3RlZCBjb250ZW50RGl2OiBIVE1MRGl2RWxlbWVudDtcblxuICBwcm90ZWN0ZWQgYXJlYUhlYWRlckNlbnRlcjogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhSGVhZGVyV2VzdDogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhSGVhZGVyRWFzdDogRGl2U2NvcGU7XG5cbiAgcHJvdGVjdGVkIGFyZWFCb2R5Q2VudGVyOiBEaXZTY29wZTtcbiAgcHJvdGVjdGVkIGFyZWFCb2R5V2VzdDogRGl2U2NvcGU7XG4gIHByb3RlY3RlZCBhcmVhQm9keUVhc3Q6IERpdlNjb3BlO1xuXG5cbiAgcHJvdGVjdGVkIGFyZWFGb290ZXJDZW50ZXI6IERpdlNjb3BlO1xuICBwcm90ZWN0ZWQgYXJlYUZvb3Rlcldlc3Q6IERpdlNjb3BlO1xuICBwcm90ZWN0ZWQgYXJlYUZvb3RlckVhc3Q6IERpdlNjb3BlO1xuXG4gIHByb3RlY3RlZCBib3JkZXJIZWFkZXJCb3R0b206IEhUTUxEaXZFbGVtZW50O1xuICBwcm90ZWN0ZWQgYm9yZGVyRm9vdGVyVG9wOiBIVE1MRGl2RWxlbWVudDtcbiAgcHJvdGVjdGVkIGJvcmRlckZpeGVkV2VzdDogSFRNTERpdkVsZW1lbnQ7XG4gIHByb3RlY3RlZCBib3JkZXJGaXhlZEVhc3Q6IEhUTUxEaXZFbGVtZW50O1xuXG4gIHByb3RlY3RlZCBob3ZlclJvdzogSFRNTERpdkVsZW1lbnQ7XG4gIHByb3RlY3RlZCBob3ZlckNvbHVtbjogSFRNTERpdkVsZW1lbnQ7XG5cbiAgcHJvdGVjdGVkIHNjcm9sbFRvcCA9IDA7XG5cbiAgcHJvdGVjdGVkIGFyZWFCb2R5V2VzdEdlbzogR2VvRGF0YSA9IG5ldyBHZW9EYXRhKCk7XG4gIHByb3RlY3RlZCBhcmVhQm9keUNlbnRlckdlbzogR2VvRGF0YSA9IG5ldyBHZW9EYXRhKCk7XG4gIHByb3RlY3RlZCBhcmVhQm9keUVhc3RHZW86IEdlb0RhdGEgPSBuZXcgR2VvRGF0YSgpO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50LFxuICAgIHJlYWRvbmx5IHRhYmxlTW9kZWw6IFRhYmxlTW9kZWxJZixcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9tOiBDb252ZW5pZW5jZURvbVNlcnZpY2UsXG4gICAgcmVhZG9ubHkgdGFibGVPcHRpb25zOiBUYWJsZU9wdGlvbnNJZlxuICApIHtcbiAgICBjb25zdCBob3N0RWxlID0gdGhpcy5ob3N0RWxlbWVudDtcblxuICAgIGhvc3RFbGUuaW5uZXJUZXh0ID0gXCJcIjsgLy8gY2xlYXJcbiAgICB0aGlzLmRvbS5zZXRBdHRyaWJ1dGUoaG9zdEVsZSwgXCJ0YWJpbmRleFwiLCBcIjBcIik7IC8vIG5lZWRlZCBmb3IgZ2V0dGluZyBrZXkgZXZlbnRzXG5cbiAgICB0aGlzLmRvbS5zZXRTdHlsZShcbiAgICAgIHRoaXMuZG9tLmFkZENsYXNzKFwiZ2UtdGFibGVcIiwgaG9zdEVsZSlcbiAgICAgICwgXCJwb3NpdGlvblwiLCBcInJlbGF0aXZlXCIpO1xuXG5cbiAgICB0aGlzLmhvdmVyUm93ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ob3Zlci1yb3dcIiwgaG9zdEVsZSkpO1xuICAgIHRoaXMuaG92ZXJDb2x1bW4gPVxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhvdmVyLWNvbHVtblwiLCBob3N0RWxlKSk7XG5cbiAgICB0aGlzLmFyZWFIZWFkZXJXZXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhlYWRlciBnZS10YWJsZS1oZWFkZXItd2VzdFwiLCBob3N0RWxlLCBcImhlYWRlclwiLCBcIndlc3RcIikpKTtcbiAgICB0aGlzLmFyZWFIZWFkZXJDZW50ZXIgPSBkb20uYXBwZW5kUmVsYXRpdmVDaGlsZERpdihcbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVBcmVhRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtaGVhZGVyIGdlLXRhYmxlLWhlYWRlci1jZW50ZXJcIiwgaG9zdEVsZSwgXCJoZWFkZXJcIiwgXCJjZW50ZXJcIikpKTtcbiAgICB0aGlzLmFyZWFIZWFkZXJFYXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWhlYWRlciBnZS10YWJsZS1oZWFkZXItZWFzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFCb2R5V2VzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5IGdlLXRhYmxlLWJvZHktd2VzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJ3ZXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFCb2R5RWFzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5IGdlLXRhYmxlLWJvZHktZWFzdFwiLCBob3N0RWxlLCBcImJvZHlcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLmFyZWFGb290ZXJXZXN0ID0gZG9tLmFwcGVuZFJlbGF0aXZlQ2hpbGREaXYoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlQXJlYURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWZvb3RlciBnZS10YWJsZS1mb290ZXItd2VzdFwiLCBob3N0RWxlLCBcImZvb3RlclwiLCBcIndlc3RcIikpKTtcblxuICAgIHRoaXMuYXJlYUZvb3RlckNlbnRlciA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1mb290ZXIgZ2UtdGFibGUtZm9vdGVyLWNlbnRlclwiLCBob3N0RWxlLCBcImZvb3RlclwiLCBcImNlbnRlclwiKSkpO1xuXG4gICAgdGhpcy5hcmVhRm9vdGVyRWFzdCA9IGRvbS5hcHBlbmRSZWxhdGl2ZUNoaWxkRGl2KFxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZUFyZWFEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1mb290ZXIgZ2UtdGFibGUtZm9vdGVyLWVhc3RcIiwgaG9zdEVsZSwgXCJmb290ZXJcIiwgXCJlYXN0XCIpKSk7XG5cbiAgICB0aGlzLnNjcm9sbFZpZXdwb3J0ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlT3ZlcmZsb3dBdXRvKFxuICAgICAgICB0aGlzLnRhYmxlT3B0aW9ucy5vdmVyZmxvd1ggPz8gXCJhdXRvXCIsXG4gICAgICAgIHRoaXMudGFibGVPcHRpb25zLm92ZXJmbG93WSA/PyBcImF1dG9cIixcbiAgICAgICAgZG9tLmFwcGx5U3R5bGVOb1BhZGRpbmcoXG4gICAgICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgICAgIGRvbS5jcmVhdGVBcmVhRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtc2Nyb2xsLXZpZXdwb3J0XCIsIGhvc3RFbGUsIFwiYm9keVwiLCBcImNlbnRlclwiKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgIHRoaXMuY29udGVudFdyYXBwZXJEaXYgPSBkb20uYXBwbHlTdHlsZU5vUGFkZGluZyhcbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uUmVsYXRpdmUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1zY3JvbGwtY29udGVudC13cmFwcGVyXCIsIHRoaXMuc2Nyb2xsVmlld3BvcnQpKSk7XG4gICAgdGhpcy5jb250ZW50RGl2ID0gZG9tLmFwcGx5U3R5bGVOb1BhZGRpbmcoXG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvblJlbGF0aXZlKFxuICAgICAgICBkb20uY3JlYXRlRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtc2Nyb2xsLWNvbnRlbnRcIiwgdGhpcy5jb250ZW50V3JhcHBlckRpdikpKTtcblxuICAgIHRoaXMuYXJlYUJvZHlDZW50ZXIgPSBkb20uYXBwZW5kUmVsYXRpdmVDaGlsZERpdihcbiAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1ib2R5LWNlbnRlclwiLCB0aGlzLmNvbnRlbnREaXYpKTtcblxuICAgIHRoaXMuYm9yZGVySGVhZGVyQm90dG9tID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS1oZWFkZXItYm9yZGVyXCIsIGhvc3RFbGUpKTtcblxuICAgIHRoaXMuYm9yZGVyRml4ZWRXZXN0ID1cbiAgICAgIGRvbS5hcHBseVN0eWxlUG9zaXN0aW9uQWJzb2x1dGUoXG4gICAgICAgIGRvbS5jcmVhdGVEaXZXaXRoQ2xhc3MoXCJnZS10YWJsZS13ZXN0LWZpeGVkLWNvbHVtbi1ib3JkZXJcIiwgaG9zdEVsZSkpO1xuXG4gICAgdGhpcy5ib3JkZXJGaXhlZEVhc3QgPVxuICAgICAgZG9tLmFwcGx5U3R5bGVQb3Npc3Rpb25BYnNvbHV0ZShcbiAgICAgICAgZG9tLmNyZWF0ZURpdldpdGhDbGFzcyhcImdlLXRhYmxlLWVhc3QtZml4ZWQtY29sdW1uLWJvcmRlclwiLCBob3N0RWxlKSk7XG5cbiAgICB0aGlzLmJvcmRlckZvb3RlclRvcCA9XG4gICAgICBkb20uYXBwbHlTdHlsZVBvc2lzdGlvbkFic29sdXRlKFxuICAgICAgICBkb20uY3JlYXRlRGl2V2l0aENsYXNzKFwiZ2UtdGFibGUtZm9vdGVyLWJvcmRlclwiLCBob3N0RWxlKSk7XG4gIH1cblxuXG4gIGFkanVzdENvbnRhaW5lcnNBbmRSb3dzKCkge1xuICAgIGNvbnN0IHBhZGRpbmcgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0UGFkZGluZygpO1xuICAgIGNvbnN0IHcgPSB0aGlzLmhvc3RFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGggPSB0aGlzLmhvc3RFbGVtZW50LmNsaWVudEhlaWdodDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuc2Nyb2xsVmlld3BvcnQsIHtcbiAgICAgIHdpZHRoOiBgJHsodyAtIHBhZGRpbmcubGVmdCl9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHsoaCAtIHBhZGRpbmcudG9wKX1weGAsXG4gICAgICB0b3A6IGAke3BhZGRpbmcudG9wfXB4YCxcbiAgICAgIGxlZnQ6IGAke3BhZGRpbmcubGVmdH1weGBcbiAgICB9KTtcblxuICAgIHRoaXMuc2Nyb2xsVG9wID0gdGhpcy5zY3JvbGxWaWV3cG9ydC5zY3JvbGxUb3A7XG5cbiAgICAvLyBDb250ZW50OlxuICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5jb250ZW50RGl2LCB7XG4gICAgICB3aWR0aDogYCR7dGhpcy5zY3JvbGxWaWV3cG9ydC5jbGllbnRXaWR0aH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3RoaXMuc2Nyb2xsVmlld3BvcnQuY2xpZW50SGVpZ2h0fXB4YCxcbiAgICAgIHRvcDogYCR7dGhpcy5zY3JvbGxUb3B9cHhgLFxuICAgICAgbGVmdDogYCR7dGhpcy5zY3JvbGxWaWV3cG9ydC5zY3JvbGxMZWZ0fXB4YFxuICAgIH0pO1xuXG4gICAgLy8gQm9keTpcbiAgICAvLyBCb2R5L1dlc3Q6XG4gICAgdGhpcy5hcmVhQm9keVdlc3RHZW8ud2lkdGggPSBwYWRkaW5nLmxlZnQ7XG4gICAgdGhpcy5hcmVhQm9keVdlc3RHZW8uaGVpZ2h0ID0gKGggLSBwYWRkaW5nLnRvcCAtIHBhZGRpbmcuYm90dG9tKTtcbiAgICB0aGlzLmFyZWFCb2R5V2VzdEdlby50b3AgPSBwYWRkaW5nLnRvcDtcbiAgICB0aGlzLmFyZWFCb2R5V2VzdEdlby5sZWZ0ID0gMDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlSW5QeCh0aGlzLmFyZWFCb2R5V2VzdC5wYXJlbnQsIHRoaXMuYXJlYUJvZHlXZXN0R2VvKTtcbiAgICBpZiAodGhpcy50YWJsZU9wdGlvbnMuZml4ZWRXZXN0U2VwYXJhdG9yQm9yZGVyVmlzaWJsZSAmJlxuICAgICAgdGhpcy50YWJsZU1vZGVsLmdldEZpeGVkTGVmdENvbHVtbkNvdW50KCkpIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheUJsb2NrU3R5bGUoXG4gICAgICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5ib3JkZXJGaXhlZFdlc3QsIHtcbiAgICAgICAgICB3aWR0aDogYDFweGAsXG4gICAgICAgICAgaGVpZ2h0OiBgJHt0aGlzLmFyZWFCb2R5V2VzdEdlby5oZWlnaHR9cHhgLFxuICAgICAgICAgIHRvcDogYCR7dGhpcy5hcmVhQm9keVdlc3RHZW8udG9wfXB4YCxcbiAgICAgICAgICBsZWZ0OiBgJHt0aGlzLmFyZWFCb2R5V2VzdEdlby53aWR0aH1weGBcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheU5vbmVTdHlsZSh0aGlzLmJvcmRlckZpeGVkV2VzdCk7XG4gICAgfVxuXG4gICAgLy8gQm9keS9FYXN0OlxuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLndpZHRoID0gcGFkZGluZy5yaWdodDtcbiAgICB0aGlzLmFyZWFCb2R5RWFzdEdlby5oZWlnaHQgPSAoaCAtIHBhZGRpbmcudG9wIC0gcGFkZGluZy5ib3R0b20pO1xuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLnRvcCA9IHBhZGRpbmcudG9wO1xuICAgIHRoaXMuYXJlYUJvZHlFYXN0R2VvLmxlZnQgPSB3IC0gcGFkZGluZy5yaWdodDtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlSW5QeCh0aGlzLmFyZWFCb2R5RWFzdC5wYXJlbnQsIHRoaXMuYXJlYUJvZHlFYXN0R2VvKTtcblxuICAgIGlmICh0aGlzLnRhYmxlT3B0aW9ucy5maXhlZEVhc3RTZXBhcmF0b3JCb3JkZXJWaXNpYmxlICYmXG4gICAgICB0aGlzLnRhYmxlTW9kZWwuZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKSkge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5QmxvY2tTdHlsZShcbiAgICAgICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmJvcmRlckZpeGVkRWFzdCwge1xuICAgICAgICAgIHdpZHRoOiBgMXB4YCxcbiAgICAgICAgICBoZWlnaHQ6IGAke3RoaXMuYXJlYUJvZHlFYXN0R2VvLmhlaWdodH1weGAsXG4gICAgICAgICAgdG9wOiBgJHt0aGlzLmFyZWFCb2R5RWFzdEdlby50b3B9cHhgLFxuICAgICAgICAgIGxlZnQ6IGAke3RoaXMuYXJlYUJvZHlFYXN0R2VvLmxlZnR9cHhgXG4gICAgICAgIH0pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5Tm9uZVN0eWxlKHRoaXMuYm9yZGVyRml4ZWRFYXN0KTtcbiAgICB9XG5cbiAgICAvLyBCb2R5L0NlbnRlcjpcbiAgICB0aGlzLmFyZWFCb2R5Q2VudGVyR2VvLndpZHRoID0gKHcgLSBwYWRkaW5nLmxlZnQgLSBwYWRkaW5nLnJpZ2h0KTtcbiAgICB0aGlzLmFyZWFCb2R5Q2VudGVyR2VvLmhlaWdodCA9IChoIC0gcGFkZGluZy50b3AgLSBwYWRkaW5nLmJvdHRvbSk7XG4gICAgdGhpcy5hcmVhQm9keUNlbnRlckdlby50b3AgPSAwO1xuICAgIHRoaXMuYXJlYUJvZHlDZW50ZXJHZW8ubGVmdCA9IDA7XG4gICAgdGhpcy5kb20uYXBwbHlTdHlsZUluUHgodGhpcy5hcmVhQm9keUNlbnRlci5wYXJlbnQsIHRoaXMuYXJlYUJvZHlDZW50ZXJHZW8pO1xuXG5cbiAgICAvLyBIZWFkZXI6XG4gICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmFyZWFIZWFkZXJDZW50ZXIucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7dyAtIHBhZGRpbmcubGVmdCAtIHBhZGRpbmcucmlnaHR9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHtwYWRkaW5nLnRvcH1weGAsXG4gICAgICB0b3A6IFwiMFwiLFxuICAgICAgbGVmdDogYCR7cGFkZGluZy5sZWZ0fXB4YFxuICAgIH0pO1xuICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5hcmVhSGVhZGVyV2VzdC5wYXJlbnQsIHtcbiAgICAgIHdpZHRoOiBgJHtwYWRkaW5nLmxlZnR9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHtwYWRkaW5nLnRvcH1weGAsXG4gICAgICB0b3A6IFwiMFwiLFxuICAgICAgbGVmdDogXCIwXCJcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUhlYWRlckVhc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcudG9wfXB4YCxcbiAgICAgIHRvcDogXCIwXCIsXG4gICAgICBsZWZ0OiBgJHt3IC0gcGFkZGluZy5yaWdodH1weGBcbiAgICB9KTtcbiAgICBpZiAodGhpcy50YWJsZU9wdGlvbnMuaGVhZGVyU2VwYXJhdG9yQm9yZGVyVmlzaWJsZSAmJlxuICAgICAgdGhpcy50YWJsZU1vZGVsLmlzSGVhZGVyVmlzaWJlKCkpIHtcbiAgICAgIHRoaXMuZG9tLmFwcGx5RGlzcGxheUJsb2NrU3R5bGUoXG4gICAgICAgIHRoaXMuZG9tLmFwcGx5U3R5bGUodGhpcy5ib3JkZXJIZWFkZXJCb3R0b20sIHtcbiAgICAgICAgICB3aWR0aDogYCR7d31weGAsXG4gICAgICAgICAgaGVpZ2h0OiBcIjFweFwiLFxuICAgICAgICAgIHRvcDogYCR7cGFkZGluZy50b3B9cHhgLFxuICAgICAgICAgIGxlZnQ6IFwiMHB4XCJcbiAgICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvbS5hcHBseURpc3BsYXlOb25lU3R5bGUodGhpcy5ib3JkZXJIZWFkZXJCb3R0b20pO1xuICAgIH1cblxuICAgIC8vIEZvb3RlcjpcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3Rlcldlc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5sZWZ0fXB4YCxcbiAgICAgIGhlaWdodDogYCR7cGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgdG9wOiBgJHtoIC0gcGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgbGVmdDogXCIwXCJcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3RlckNlbnRlci5wYXJlbnQsIHtcbiAgICAgIHdpZHRoOiBgJHt3IC0gcGFkZGluZy5sZWZ0IC0gcGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIHRvcDogYCR7aCAtIHBhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIGxlZnQ6IGAke3BhZGRpbmcubGVmdH1weGBcbiAgICB9KTtcbiAgICB0aGlzLmRvbS5hcHBseVN0eWxlKHRoaXMuYXJlYUZvb3RlckVhc3QucGFyZW50LCB7XG4gICAgICB3aWR0aDogYCR7cGFkZGluZy5yaWdodH1weGAsXG4gICAgICBoZWlnaHQ6IGAke3BhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIHRvcDogYCR7aCAtIHBhZGRpbmcuYm90dG9tfXB4YCxcbiAgICAgIGxlZnQ6IGAke3cgLSBwYWRkaW5nLnJpZ2h0fXB4YFxuICAgIH0pO1xuICAgIGlmICh0aGlzLnRhYmxlT3B0aW9ucy5mb290ZXJTZXBhcmF0b3JCb3JkZXJWaXNpYmxlICYmXG4gICAgICB0aGlzLnRhYmxlTW9kZWwuaXNGb290ZXJWaXNpYmUoKSkge1xuICAgICAgdGhpcy5kb20uYXBwbHlEaXNwbGF5QmxvY2tTdHlsZShcbiAgICAgICAgdGhpcy5kb20uYXBwbHlTdHlsZSh0aGlzLmJvcmRlckZvb3RlclRvcCwge1xuICAgICAgICAgIHdpZHRoOiBgJHt3fXB4YCxcbiAgICAgICAgICBoZWlnaHQ6IFwiMXB4XCIsXG4gICAgICAgICAgdG9wOiBgJHtoIC0gcGFkZGluZy5ib3R0b219cHhgLFxuICAgICAgICAgIGxlZnQ6IFwiMHB4XCJcbiAgICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRvbS5hcHBseURpc3BsYXlOb25lU3R5bGUodGhpcy5ib3JkZXJGb290ZXJUb3ApO1xuICAgIH1cblxuICAgIHRoaXMuYWRqdXN0QWZ0ZXJTY3JvbGxpbmcoKTtcbiAgfVxuXG4gIGFkanVzdEFmdGVyU2Nyb2xsaW5nKCkge1xuICAgIC8vIG11c3QgYmUgb3ZlcndyaXR0ZW5cbiAgfVxuXG4gIHByb3RlY3RlZCByZXNldFNpemVPZldyYXBwZXJEaXYoKSB7XG4gICAgY29uc3QgdyA9IGAke3RoaXMudGFibGVNb2RlbC5nZXRDb250ZW50V2lkdGhJblBpeGVsKCl9cHhgO1xuICAgIGNvbnN0IGggPSBgJHt0aGlzLnRhYmxlTW9kZWwuZ2V0Q29udGVudEhlaWdodEluUGl4ZWwoKSArIDF9cHhgOyAvLyArIDEsIHdlIHdhbnQgdG8gc2VlIHRoZSBsYXN0IGhvcml6b250YWwgYm9yZGVyXG4gICAgdGhpcy5kb20uc2V0U3R5bGUodGhpcy5jb250ZW50V3JhcHBlckRpdiwgXCJ3aWR0aFwiLCB3KTtcbiAgICB0aGlzLmRvbS5zZXRTdHlsZSh0aGlzLmNvbnRlbnRXcmFwcGVyRGl2LCBcImhlaWdodFwiLCBoKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,17 +0,0 @@
1
- export class EventAdapter {
2
- onCheckboxChanged(_evt) {
3
- }
4
- onContextmenu(_evt) {
5
- }
6
- onModelChanged(_evt) {
7
- }
8
- onMouseClicked(_evt) {
9
- }
10
- onMouseDragging(_evt) {
11
- }
12
- onMouseDraggingEnd(_evt) {
13
- }
14
- onMouseMoved(_evt) {
15
- }
16
- }
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9ldmVudC1hZGFwdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBTyxZQUFZO0lBRXZCLGlCQUFpQixDQUFDLElBQVc7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFrQjtJQUNoQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQXdCO0lBQ3ZDLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBa0I7SUFDakMsQ0FBQztJQUVELGVBQWUsQ0FBQyxJQUFrQjtJQUNsQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBa0I7SUFDckMsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFrQjtJQUMvQixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZU1vZGVsQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb2RlbC1jaGFuZ2UtZXZlbnRcIjtcbmltcG9ydCB7IEdlTW91c2VFdmVudCB9IGZyb20gXCIuL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBFdmVudExpc3RlbmVySWYgfSBmcm9tIFwiLi9ldmVudC1saXN0ZW5lci5pZlwiO1xuXG5leHBvcnQgY2xhc3MgRXZlbnRBZGFwdGVyIGltcGxlbWVudHMgRXZlbnRMaXN0ZW5lcklmIHtcblxuICBvbkNoZWNrYm94Q2hhbmdlZChfZXZ0OiBhbnlbXSk6IHZvaWQge1xuICB9XG5cbiAgb25Db250ZXh0bWVudShfZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgfVxuXG4gIG9uTW9kZWxDaGFuZ2VkKF9ldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQge1xuICB9XG5cbiAgb25Nb3VzZUNsaWNrZWQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlRHJhZ2dpbmcoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlRHJhZ2dpbmdFbmQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxuICBvbk1vdXNlTW92ZWQoX2V2dDogR2VNb3VzZUV2ZW50KTogdm9pZCB7XG4gIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdGVuZXIuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZXZlbnQtbGlzdGVuZXIuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlTW91c2VFdmVudCB9IGZyb20gXCIuL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBHZU1vZGVsQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb2RlbC1jaGFuZ2UtZXZlbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudExpc3RlbmVySWYge1xuXG4gIG9uQ29udGV4dG1lbnUoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VNb3ZlZChldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgb25Nb3VzZURyYWdnaW5nRW5kKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbk1vdXNlRHJhZ2dpbmcoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VDbGlja2VkKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbkNoZWNrYm94Q2hhbmdlZChldnQ6IGFueVtdKTogdm9pZDtcblxuICBvbk1vZGVsQ2hhbmdlZChldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQ7XG59XG4iXX0=
@@ -1,186 +0,0 @@
1
- import { DefaultRowHeights } from "../data/options/default-row-heights";
2
- import { ColumnDef } from "../data/tablemodel/column/column-def";
3
- import { px200 } from "../data/common/sizes";
4
- import { AreaModelArrayOfArrays } from "../data/tablemodel/areamodel/area-model-array-of-arrays";
5
- import { AreaModelHidden } from "../data/tablemodel/areamodel/area-model-hidden";
6
- import { TreeRow } from "../data/common/tree-row";
7
- import { AreaModelTree } from "../data/tablemodel/areamodel/area-model-tree";
8
- import { TreeCheckboxModel } from "../checkbox/tree-checkbox-model";
9
- import { TableModel } from "../data/tablemodel/table-model";
10
- import { AreaModelObjectArrayWithColumndefs } from "../data/tablemodel/areamodel/area-model-object-array-with-columndefs";
11
- import { TableOptions } from "../data/options/table-options";
12
- export class TableFactory {
13
- static createTableModel(p) {
14
- if (p.defaultRowHeights === undefined) {
15
- if (p.tableOptions?.defaultRowHeights) {
16
- p.defaultRowHeights = p.tableOptions.defaultRowHeights;
17
- }
18
- else {
19
- p.defaultRowHeights = new DefaultRowHeights();
20
- if (p.headerAreaModel && "defaultRowHeight" in p.headerAreaModel) {
21
- const dh = p.headerAreaModel.defaultRowHeight;
22
- if (dh > -1) {
23
- p.defaultRowHeights.header = dh;
24
- }
25
- }
26
- if (p.bodyAreaModel && "defaultRowHeight" in p.bodyAreaModel) {
27
- const dh = p.bodyAreaModel.defaultRowHeight;
28
- if (dh > -1) {
29
- p.defaultRowHeights.body = dh;
30
- }
31
- }
32
- if (p.footerAreaModel && "defaultRowHeight" in p.footerAreaModel) {
33
- const dh = p.footerAreaModel.defaultRowHeight;
34
- if (dh > -1) {
35
- p.defaultRowHeights.footer = dh;
36
- }
37
- }
38
- }
39
- }
40
- if (p.columnDefs === undefined) {
41
- if (p.properties?.length) {
42
- p.columnDefs = p.properties.map(p => new ColumnDef(p, p.toUpperCase(), px200));
43
- }
44
- else if (p.rows?.length) {
45
- p.columnDefs = Object.keys(p.rows[0]).map(p => new ColumnDef(p, p.toUpperCase(), px200));
46
- }
47
- else {
48
- p.columnDefs = [];
49
- }
50
- }
51
- if (p.columnCount === undefined) {
52
- if (p.columnDefs?.length) {
53
- p.columnCount = p.columnDefs.length;
54
- }
55
- else if (p.headerData?.length) {
56
- p.columnCount = p.headerData[0].length;
57
- }
58
- else if (p.columnSizes?.length) {
59
- p.columnCount = p.columnSizes?.length;
60
- }
61
- else {
62
- console.warn("Property \"columnCount\" is missing and cannot be derived from other properties.");
63
- }
64
- }
65
- if (!p.headerAreaModel) {
66
- if (p.headerData?.length) {
67
- p.headerAreaModel = new AreaModelArrayOfArrays("header", p.headerData, p.defaultRowHeights.header, p.columnDefs);
68
- }
69
- else if (p.columnDefs?.length) {
70
- p.headerAreaModel = new AreaModelArrayOfArrays("header", [p.columnDefs.map(def => def.headerLabel)], p.defaultRowHeights.header, p.columnDefs);
71
- }
72
- else {
73
- p.headerAreaModel = new AreaModelHidden("header");
74
- }
75
- }
76
- if (!p.footerAreaModel) {
77
- if (p.footerData?.length) {
78
- p.footerAreaModel = new AreaModelArrayOfArrays("footer", p.footerData, p.defaultRowHeights.footer, p.columnDefs);
79
- }
80
- else {
81
- p.footerAreaModel = new AreaModelHidden("footer");
82
- }
83
- }
84
- if (!p.bodyAreaModel) {
85
- if (p.rows) {
86
- if (p.rows?.length && p.rows[0] instanceof TreeRow) {
87
- // Tree:
88
- const treeRows = p.rows;
89
- p.bodyAreaModel = new AreaModelTree("body", treeRows, p.defaultRowHeights.body, p.columnDefs);
90
- const checkboxExtraColumnVisible = p.columnDefs[0].property === "CheckboxColumn";
91
- if (checkboxExtraColumnVisible || p.tableOptions?.showCheckboxWihoutExtraColumn) {
92
- p.bodyAreaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
93
- }
94
- }
95
- else {
96
- p.bodyAreaModel = new AreaModelObjectArrayWithColumndefs("body", p.rows, p.columnDefs, p.defaultRowHeights.body);
97
- }
98
- }
99
- else if (p.bodyData) {
100
- p.bodyAreaModel = new AreaModelArrayOfArrays("body", p.bodyData, p.defaultRowHeights.body);
101
- }
102
- else {
103
- p.bodyAreaModel = new AreaModelHidden("body");
104
- }
105
- }
106
- if (p.fixedLeftColumnCount === undefined) {
107
- p.fixedLeftColumnCount = 0;
108
- }
109
- if (p.fixedRightColumnCount === undefined) {
110
- p.fixedRightColumnCount = 0;
111
- }
112
- if (p.rowCheckboxVisible === undefined) {
113
- p.rowCheckboxVisible = false;
114
- }
115
- if (p.overridingColumnWidth === undefined) {
116
- p.overridingColumnWidth = -1;
117
- }
118
- if (!p.getSelectionModel && p.tableOptions?.getSelectionModel) {
119
- p.getSelectionModel = p.tableOptions?.getSelectionModel;
120
- }
121
- // Flat table:
122
- return new TableModel(p.headerAreaModel, p.bodyAreaModel, p.footerAreaModel, p.fixedLeftColumnCount, p.fixedRightColumnCount, p.rowCheckboxVisible, p.defaultRowHeights, p.columnDefs, p.columnSizes, p.overridingColumnWidth, p.columnCount, p.parentSize, p.getSelectionModel);
123
- }
124
- static buildByTypedRowsParam(param) {
125
- return TableFactory.buildByTypedRows(param.rows ?? [], param.columnDefs, param.tableOptions ?? new TableOptions(), param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0);
126
- }
127
- static buildByTypedRows(rows, columnDefs, tableOptions = new TableOptions(), fixedLeftColumnCount = 0, fixedRightColumnCount = 0) {
128
- const defaultRowHeights = tableOptions.defaultRowHeights;
129
- const checkboxExtraColumnVisible = columnDefs[0].property === "CheckboxColumn";
130
- if (rows?.length && rows[0] instanceof TreeRow) {
131
- // Tree:
132
- const treeRows = rows;
133
- const bodyareaModel = new AreaModelTree("body", treeRows, defaultRowHeights.body, columnDefs);
134
- if (checkboxExtraColumnVisible || tableOptions.showCheckboxWihoutExtraColumn) {
135
- bodyareaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
136
- }
137
- return TableFactory.createByAreaModelsParam({
138
- headerAreaModel: new AreaModelArrayOfArrays("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header),
139
- bodyAreaModel: bodyareaModel,
140
- footerAreaModel: new AreaModelArrayOfArrays("footer", [], defaultRowHeights.footer),
141
- columnDefs,
142
- fixedLeftColumnCount,
143
- fixedRightColumnCount,
144
- defaultRowHeights: tableOptions.defaultRowHeights,
145
- rowCheckboxVisible: false,
146
- columnSizes: [],
147
- columnCount: columnDefs.length,
148
- overridingColumnWidth: -1
149
- });
150
- }
151
- // Flat table:
152
- return TableFactory.createByObjectArrayParam({
153
- rows,
154
- columnDefs,
155
- fixedLeftColumnCount,
156
- fixedRightColumnCount,
157
- defaultRowHeights: tableOptions.defaultRowHeights
158
- });
159
- }
160
- static createByObjectArrayParam(param) {
161
- const rowCheckboxVisible = param.rowCheckboxVisible !== undefined ? param.rowCheckboxVisible : false;
162
- return TableFactory.createByObjectArray(param.rows, param.header ?? [], param.footer ?? [], param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0, rowCheckboxVisible, param.defaultRowHeights ?? new DefaultRowHeights(), param.columnDefs ?? [], param.columnSizes ?? []);
163
- }
164
- static createByAreaModels(headerAreaModel = new AreaModelHidden(), bodyAreaModel, footerAreaModel = new AreaModelHidden(), fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs, columnSizes = [], overridingColumnWidth = -1, columnCount) {
165
- return new TableModel(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount, fixedRightColumnCount, rowCheckboxVisible, defaultRowHeights, columnDefs, columnSizes, overridingColumnWidth, columnCount);
166
- }
167
- static createByAreaModelsParam(param) {
168
- return TableFactory.createByAreaModels(param.headerAreaModel ?? new AreaModelHidden(), param.bodyAreaModel, param.footerAreaModel ?? new AreaModelHidden(), param.fixedLeftColumnCount ?? 0, param.fixedRightColumnCount ?? 0, param.rowCheckboxVisible === undefined ? false : param.rowCheckboxVisible, param.defaultRowHeights, param.columnDefs ?? [], param.columnSizes ?? [], param.overridingColumnWidth ?? -1, param.columnCount ?? 0);
169
- }
170
- static createByObjectArray(rows, header = [], footer = [], fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs, columnSizes = []) {
171
- let headerAreaModel;
172
- if (header?.length) {
173
- headerAreaModel = new AreaModelArrayOfArrays("header", header, defaultRowHeights.header, columnDefs);
174
- }
175
- else if (columnDefs?.length) {
176
- headerAreaModel = new AreaModelArrayOfArrays("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header, columnDefs);
177
- }
178
- else {
179
- headerAreaModel = new AreaModelHidden();
180
- }
181
- const footerAreaModel = footer ? new AreaModelArrayOfArrays("footer", footer, defaultRowHeights.footer, columnDefs) : new AreaModelHidden();
182
- const bodyAreaModel = new AreaModelObjectArrayWithColumndefs("body", rows, columnDefs, defaultRowHeights.body);
183
- return new TableModel(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount, fixedRightColumnCount, rowCheckboxVisible, defaultRowHeights, columnDefs, columnSizes);
184
- }
185
- }
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9mYWN0b3J5L3RhYmxlLWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNqRyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDakYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFNUQsT0FBTyxFQUNMLGtDQUFrQyxFQUNuQyxNQUFNLHNFQUFzRSxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUc3RCxNQUFNLE9BQU8sWUFBWTtJQUVoQixNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FxQjdCO1FBRUEsSUFBSSxDQUFDLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFO1lBQ3JDLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRTtnQkFDckMsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7YUFDeEQ7aUJBQU07Z0JBQ0wsQ0FBQyxDQUFDLGlCQUFpQixHQUFHLElBQUksaUJBQWlCLEVB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QWlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1NBQzlHO2FBQU0sSUFBSSxVQUFVLEVBQUUsTUFBTSxFQUFFO1lBQzdCLGVBQWUsR0FBRyxJQUFJLHNCQUFzQixDQUFTLFFBQVEsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7U0FDaEo7YUFBTTtZQUNMLGVBQWUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1NBQ3pDO1FBQ0QsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLHNCQUFzQixDQUFTLFFBQVEsRUFBRSxNQUFNLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQ3BKLE1BQU0sYUFBYSxHQUFHLElBQUksa0NBQWtDLENBQUksTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFbEgsT0FBTyxJQUFJLFVBQVUsQ0FDbkIsZUFBZSxFQUNmLGFBQWEsRUFDYixlQUFlLEVBQ2Ysb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixrQkFBa0IsRUFDbEIsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixXQUFXLENBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyZWFNb2RlbElmIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvd0hlaWdodHNJZiB9IGZyb20gXCIuLi9kYXRhL29wdGlvbnMvZGVmYXVsdC1yb3ctaGVpZ2h0cy5pZlwiO1xuaW1wb3J0IHsgQ29sdW1uRGVmSWYgfSBmcm9tIFwiLi4vZGF0YS90YWJsZW1vZGVsL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQgeyBHZXRUIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2dldC10XCI7XG5pbXBvcnQgeyBUYWJsZU9wdGlvbnNJZiB9IGZyb20gXCIuLi9kYXRhL29wdGlvbnMvdGFibGUtb3B0aW9ucy5pZlwiO1xuaW1wb3J0IHsgVGFibGVNb2RlbElmIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC90YWJsZS1tb2RlbC5pZlwiO1xuaW1wb3J0IHsgRGVmYXVsdFJvd0hlaWdodHMgfSBmcm9tIFwiLi4vZGF0YS9vcHRpb25zL2RlZmF1bHQtcm93LWhlaWdodHNcIjtcbmltcG9ydCB7IENvbHVtbkRlZiB9IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWZcIjtcbmltcG9ydCB7IHB4MjAwIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL3NpemVzXCI7XG5pbXBvcnQgeyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC1hcnJheS1vZi1hcnJheXNcIjtcbmltcG9ydCB7IEFyZWFNb2RlbEhpZGRlbiB9IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwtaGlkZGVuXCI7XG5pbXBvcnQgeyBUcmVlUm93IH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL3RyZWUtcm93XCI7XG5pbXBvcnQgeyBBcmVhTW9kZWxUcmVlIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC10cmVlXCI7XG5pbXBvcnQgeyBUcmVlQ2hlY2tib3hNb2RlbCB9IGZyb20gXCIuLi9jaGVja2JveC90cmVlLWNoZWNrYm94LW1vZGVsXCI7XG5pbXBvcnQgeyBUYWJsZU1vZGVsIH0gZnJvbSBcIi4uL2RhdGEvdGFibGVtb2RlbC90YWJsZS1tb2RlbFwiO1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWxJZiB9IGZyb20gXCIuLi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsLmlmXCI7XG5pbXBvcnQge1xuICBBcmVhTW9kZWxPYmplY3RBcnJheVdpdGhDb2x1bW5kZWZzXG59IGZyb20gXCIuLi9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwtb2JqZWN0LWFycmF5LXdpdGgtY29sdW1uZGVmc1wiO1xuaW1wb3J0IHsgVGFibGVPcHRpb25zIH0gZnJvbSBcIi4uL2RhdGEvb3B0aW9ucy90YWJsZS1vcHRpb25zXCI7XG5cblxuZXhwb3J0IGNsYXNzIFRhYmxlRmFjdG9yeSB7XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVUYWJsZU1vZGVsKHA6IFBhcnRpYWw8e1xuICAgIGhlYWRlckFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgYm9keUFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgZm9vdGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZixcbiAgICBmaXhlZExlZnRDb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIHJvd0NoZWNrYm94VmlzaWJsZTogYm9vbGVhbixcbiAgICBkZWZhdWx0Um93SGVpZ2h0czogRGVmYXVsdFJvd0hlaWdodHNJZixcbiAgICBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdLFxuICAgIGNvbHVtblNpemVzOiBudW1iZXJbXSxcbiAgICBvdmVycmlkaW5nQ29sdW1uV2lkdGg6IG51bWJlcixcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyLFxuICAgIHBhcmVudFNpemU6IG51bWJlcixcbiAgICBnZXRTZWxlY3Rpb25Nb2RlbDogR2V0VDxTZWxlY3Rpb25Nb2RlbElmPixcbiAgICByb3dzOiBhbnlbXSxcbiAgICBwcm9wZXJ0aWVzOiBzdHJpbmdbXSxcbiAgICBib2R5RGF0YTogYW55W11bXSxcbiAgICBoZWFkZXJEYXRhOiBzdHJpbmdbXVtdLCAvLyBtdWx0aS1saW5lIGhlYWRlclxuICAgIGZvb3RlckRhdGE6IHN0cmluZ1tdW10sIC8vIG11bHRpLWxpbmUgZm9vdGVyRGF0YVxuICAgIHRhYmxlT3B0aW9uczogVGFibGVPcHRpb25zSWZcblxuICB9Pik6IFRhYmxlTW9kZWxJZiB7XG5cbiAgICBpZiAocC5kZWZhdWx0Um93SGVpZ2h0cyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocC50YWJsZU9wdGlvbnM/LmRlZmF1bHRSb3dIZWlnaHRzKSB7XG4gICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMgPSBwLnRhYmxlT3B0aW9ucy5kZWZhdWx0Um93SGVpZ2h0cztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMgPSBuZXcgRGVmYXVsdFJvd0hlaWdodHMoKTtcblxuICAgICAgICBpZiAocC5oZWFkZXJBcmVhTW9kZWwgJiYgXCJkZWZhdWx0Um93SGVpZ2h0XCIgaW4gcC5oZWFkZXJBcmVhTW9kZWwpIHtcbiAgICAgICAgICBjb25zdCBkaCA9IHAuaGVhZGVyQXJlYU1vZGVsLmRlZmF1bHRSb3dIZWlnaHQgYXMgbnVtYmVyO1xuICAgICAgICAgIGlmIChkaCA+IC0xKSB7XG4gICAgICAgICAgICBwLmRlZmF1bHRSb3dIZWlnaHRzLmhlYWRlciA9IGRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwLmJvZHlBcmVhTW9kZWwgJiYgXCJkZWZhdWx0Um93SGVpZ2h0XCIgaW4gcC5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICAgICAgY29uc3QgZGggPSBwLmJvZHlBcmVhTW9kZWwuZGVmYXVsdFJvd0hlaWdodCBhcyBudW1iZXI7XG4gICAgICAgICAgaWYgKGRoID4gLTEpIHtcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuYm9keSA9IGRoO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwLmZvb3RlckFyZWFNb2RlbCAmJiBcImRlZmF1bHRSb3dIZWlnaHRcIiBpbiBwLmZvb3RlckFyZWFNb2RlbCkge1xuICAgICAgICAgIGNvbnN0IGRoID0gcC5mb290ZXJBcmVhTW9kZWwuZGVmYXVsdFJvd0hlaWdodCBhcyBudW1iZXI7XG4gICAgICAgICAgaWYgKGRoID4gLTEpIHtcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuZm9vdGVyID0gZGg7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHAuY29sdW1uRGVmcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICBpZiAocC5wcm9wZXJ0aWVzPy5sZW5ndGgpIHtcbiAgICAgICAgcC5jb2x1bW5EZWZzID0gcC5wcm9wZXJ0aWVzLm1hcChwID0+IG5ldyBDb2x1bW5EZWYocCwgcC50b1VwcGVyQ2FzZSgpLCBweDIwMCkpO1xuICAgICAgfSBlbHNlIGlmIChwLnJvd3M/Lmxlbmd0aCkge1xuICAgICAgICBwLmNvbHVtbkRlZnMgPSBPYmplY3Qua2V5cyhwLnJvd3NbMF0pLm1hcChwID0+IG5ldyBDb2x1bW5EZWYocCwgcC50b1VwcGVyQ2FzZSgpLCBweDIwMCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcC5jb2x1bW5EZWZzID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHAuY29sdW1uQ291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHAuY29sdW1uRGVmcz8ubGVuZ3RoKSB7XG4gICAgICAgIHAuY29sdW1uQ291bnQgPSBwLmNvbHVtbkRlZnMubGVuZ3RoO1xuICAgICAgfSBlbHNlIGlmIChwLmhlYWRlckRhdGE/Lmxlbmd0aCkge1xuICAgICAgICBwLmNvbHVtbkNvdW50ID0gcC5oZWFkZXJEYXRhWzBdLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAocC5jb2x1bW5TaXplcz8ubGVuZ3RoKSB7XG4gICAgICAgIHAuY29sdW1uQ291bnQgPSBwLmNvbHVtblNpemVzPy5sZW5ndGg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oXCJQcm9wZXJ0eSBcXFwiY29sdW1uQ291bnRcXFwiIGlzIG1pc3NpbmcgYW5kIGNhbm5vdCBiZSBkZXJpdmVkIGZyb20gb3RoZXIgcHJvcGVydGllcy5cIik7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICBpZiAoIXAuaGVhZGVyQXJlYU1vZGVsKSB7XG4gICAgICBpZiAocC5oZWFkZXJEYXRhPy5sZW5ndGgpIHtcbiAgICAgICAgcC5oZWFkZXJBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxzdHJpbmc+KFxuICAgICAgICAgIFwiaGVhZGVyXCIsXG4gICAgICAgICAgcC5oZWFkZXJEYXRhLFxuICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuaGVhZGVyLFxuICAgICAgICAgIHAuY29sdW1uRGVmc1xuICAgICAgICApO1xuICAgICAgfSBlbHNlIGlmIChwLmNvbHVtbkRlZnM/Lmxlbmd0aCkge1xuICAgICAgICBwLmhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXG4gICAgICAgICAgXCJoZWFkZXJcIixcbiAgICAgICAgICBbcC5jb2x1bW5EZWZzLm1hcChkZWYgPT4gZGVmLmhlYWRlckxhYmVsKV0sXG4gICAgICAgICAgcC5kZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIsXG4gICAgICAgICAgcC5jb2x1bW5EZWZzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwLmhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJoZWFkZXJcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcC5mb290ZXJBcmVhTW9kZWwpIHtcbiAgICAgIGlmIChwLmZvb3RlckRhdGE/Lmxlbmd0aCkge1xuICAgICAgICBwLmZvb3RlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXG4gICAgICAgICAgXCJmb290ZXJcIixcbiAgICAgICAgICBwLmZvb3RlckRhdGEsXG4gICAgICAgICAgcC5kZWZhdWx0Um93SGVpZ2h0cy5mb290ZXIsXG4gICAgICAgICAgcC5jb2x1bW5EZWZzXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwLmZvb3RlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJmb290ZXJcIik7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICghcC5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICBpZiAocC5yb3dzKSB7XG5cbiAgICAgICAgaWYgKHAucm93cz8ubGVuZ3RoICYmIHAucm93c1swXSBpbnN0YW5jZW9mIFRyZWVSb3cpIHtcbiAgICAgICAgICAvLyBUcmVlOlxuICAgICAgICAgIGNvbnN0IHRyZWVSb3dzID0gcC5yb3dzIGFzIFRyZWVSb3c8YW55PltdO1xuICAgICAgICAgIHAuYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxUcmVlKFxuICAgICAgICAgICAgXCJib2R5XCIsXG4gICAgICAgICAgICB0cmVlUm93cyxcbiAgICAgICAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMuYm9keSxcbiAgICAgICAgICAgIHAuY29sdW1uRGVmc1xuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgPSBwLmNvbHVtbkRlZnNbMF0ucHJvcGVydHkgPT09IFwiQ2hlY2tib3hDb2x1bW5cIjtcbiAgICAgICAgICBpZiAoY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgfHwgcC50YWJsZU9wdGlvbnM/LnNob3dDaGVja2JveFdpaG91dEV4dHJhQ29sdW1uKSB7XG4gICAgICAgICAgICBwLmJvZHlBcmVhTW9kZWwucm93U2VsZWN0aW9uTW9kZWwgPSBuZXcgVHJlZUNoZWNrYm94TW9kZWwodHJlZVJvd3MpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwLmJvZHlBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsT2JqZWN0QXJyYXlXaXRoQ29sdW1uZGVmczxhbnk+KFxuICAgICAgICAgICAgXCJib2R5XCIsIHAucm93cywgcC5jb2x1bW5EZWZzLCBwLmRlZmF1bHRSb3dIZWlnaHRzLmJvZHlcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgIH0gZWxzZSBpZiAocC5ib2R5RGF0YSkge1xuICAgICAgICBwLmJvZHlBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxhbnk+KFxuICAgICAgICAgIFwiYm9keVwiLCBwLmJvZHlEYXRhLCBwLmRlZmF1bHRSb3dIZWlnaHRzLmJvZHlcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHAuYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oXCJib2R5XCIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChwLmZpeGVkTGVmdENvbHVtbkNvdW50ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHAuZml4ZWRMZWZ0Q29sdW1uQ291bnQgPSAwO1xuICAgIH1cbiAgICBpZiAocC5maXhlZFJpZ2h0Q29sdW1uQ291bnQgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcC5maXhlZFJpZ2h0Q29sdW1uQ291bnQgPSAwO1xuICAgIH1cbiAgICBpZiAocC5yb3dDaGVja2JveFZpc2libGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcC5yb3dDaGVja2JveFZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHAub3ZlcnJpZGluZ0NvbHVtbldpZHRoID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHAub3ZlcnJpZGluZ0NvbHVtbldpZHRoID0gLTE7XG4gICAgfVxuXG4gICAgaWYgKCFwLmdldFNlbGVjdGlvbk1vZGVsICYmIHAudGFibGVPcHRpb25zPy5nZXRTZWxlY3Rpb25Nb2RlbCkge1xuICAgICAgcC5nZXRTZWxlY3Rpb25Nb2RlbCA9IHAudGFibGVPcHRpb25zPy5nZXRTZWxlY3Rpb25Nb2RlbDtcbiAgICB9XG5cbiAgICAvLyBGbGF0IHRhYmxlOlxuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIHAuaGVhZGVyQXJlYU1vZGVsLFxuICAgICAgcC5ib2R5QXJlYU1vZGVsLFxuICAgICAgcC5mb290ZXJBcmVhTW9kZWwsXG4gICAgICBwLmZpeGVkTGVmdENvbHVtbkNvdW50LFxuICAgICAgcC5maXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICBwLnJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIHAuZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICBwLmNvbHVtbkRlZnMsXG4gICAgICBwLmNvbHVtblNpemVzLFxuICAgICAgcC5vdmVycmlkaW5nQ29sdW1uV2lkdGgsXG4gICAgICBwLmNvbHVtbkNvdW50LFxuICAgICAgcC5wYXJlbnRTaXplLFxuICAgICAgcC5nZXRTZWxlY3Rpb25Nb2RlbFxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgYnVpbGRCeVR5cGVkUm93c1BhcmFtPFQ+KHBhcmFtOiB7XG4gICAgcm93czogVFtdLFxuICAgIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10sXG4gICAgdGFibGVPcHRpb25zPzogVGFibGVPcHRpb25zSWYsXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ/OiBudW1iZXIsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50PzogbnVtYmVyXG4gIH0pOiBUYWJsZU1vZGVsSWYge1xuXG4gICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5idWlsZEJ5VHlwZWRSb3dzPFQ+KFxuICAgICAgcGFyYW0ucm93cyA/PyBbXSxcbiAgICAgIHBhcmFtLmNvbHVtbkRlZnMsXG4gICAgICBwYXJhbS50YWJsZU9wdGlvbnMgPz8gbmV3IFRhYmxlT3B0aW9ucygpLFxuICAgICAgcGFyYW0uZml4ZWRMZWZ0Q29sdW1uQ291bnQgPz8gMCxcbiAgICAgIHBhcmFtLmZpeGVkUmlnaHRDb2x1bW5Db3VudCA/PyAwXG4gICAgKTtcbiAgfVxuXG4gIHN0YXRpYyBidWlsZEJ5VHlwZWRSb3dzPFQ+KFxuICAgIHJvd3M6IFRbXSxcbiAgICBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdLFxuICAgIHRhYmxlT3B0aW9uczogVGFibGVPcHRpb25zSWYgPSBuZXcgVGFibGVPcHRpb25zKCksXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ6IG51bWJlciA9IDAsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50OiBudW1iZXIgPSAwXG4gICk6IFRhYmxlTW9kZWxJZiB7XG5cbiAgICBjb25zdCBkZWZhdWx0Um93SGVpZ2h0cyA9IHRhYmxlT3B0aW9ucy5kZWZhdWx0Um93SGVpZ2h0cztcbiAgICBjb25zdCBjaGVja2JveEV4dHJhQ29sdW1uVmlzaWJsZSA9IGNvbHVtbkRlZnNbMF0ucHJvcGVydHkgPT09IFwiQ2hlY2tib3hDb2x1bW5cIjtcblxuICAgIGlmIChyb3dzPy5sZW5ndGggJiYgcm93c1swXSBpbnN0YW5jZW9mIFRyZWVSb3cpIHtcbiAgICAgIC8vIFRyZWU6XG4gICAgICBjb25zdCB0cmVlUm93cyA9IHJvd3MgYXMgVHJlZVJvdzxUPltdO1xuICAgICAgY29uc3QgYm9keWFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxUcmVlKFxuICAgICAgICBcImJvZHlcIixcbiAgICAgICAgdHJlZVJvd3MsXG4gICAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLmJvZHksXG4gICAgICAgIGNvbHVtbkRlZnNcbiAgICAgICk7XG4gICAgICBpZiAoY2hlY2tib3hFeHRyYUNvbHVtblZpc2libGUgfHwgdGFibGVPcHRpb25zLnNob3dDaGVja2JveFdpaG91dEV4dHJhQ29sdW1uKSB7XG4gICAgICAgIGJvZHlhcmVhTW9kZWwucm93U2VsZWN0aW9uTW9kZWwgPSBuZXcgVHJlZUNoZWNrYm94TW9kZWwodHJlZVJvd3MpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5jcmVhdGVCeUFyZWFNb2RlbHNQYXJhbSh7XG4gICAgICAgIGhlYWRlckFyZWFNb2RlbDogbmV3IEFyZWFNb2RlbEFycmF5T2ZBcnJheXM8c3RyaW5nPihcImhlYWRlclwiLCBbY29sdW1uRGVmcy5tYXAoZGVmID0+IGRlZi5oZWFkZXJMYWJlbCldLCBkZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIpLFxuICAgICAgICBib2R5QXJlYU1vZGVsOiBib2R5YXJlYU1vZGVsLFxuICAgICAgICBmb290ZXJBcmVhTW9kZWw6IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXCJmb290ZXJcIiwgW10sIGRlZmF1bHRSb3dIZWlnaHRzLmZvb3RlciksXG4gICAgICAgIGNvbHVtbkRlZnMsXG4gICAgICAgIGZpeGVkTGVmdENvbHVtbkNvdW50LFxuICAgICAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICAgIGRlZmF1bHRSb3dIZWlnaHRzOiB0YWJsZU9wdGlvbnMuZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICAgIHJvd0NoZWNrYm94VmlzaWJsZTogZmFsc2UsXG4gICAgICAgIGNvbHVtblNpemVzOiBbXSxcbiAgICAgICAgY29sdW1uQ291bnQ6IGNvbHVtbkRlZnMubGVuZ3RoLFxuICAgICAgICBvdmVycmlkaW5nQ29sdW1uV2lkdGg6IC0xXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBGbGF0IHRhYmxlOlxuICAgIHJldHVybiBUYWJsZUZhY3RvcnkuY3JlYXRlQnlPYmplY3RBcnJheVBhcmFtKHtcbiAgICAgIHJvd3MsXG4gICAgICBjb2x1bW5EZWZzLFxuICAgICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQsXG4gICAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQsXG4gICAgICBkZWZhdWx0Um93SGVpZ2h0czogdGFibGVPcHRpb25zLmRlZmF1bHRSb3dIZWlnaHRzXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQnlPYmplY3RBcnJheVBhcmFtPFQ+KHBhcmFtOiB7XG4gICAgcm93czogVFtdLFxuICAgIGhlYWRlcj86IHN0cmluZ1tdW10sXG4gICAgZm9vdGVyPzogc3RyaW5nW11bXSxcbiAgICBmaXhlZExlZnRDb2x1bW5Db3VudD86IG51bWJlcixcbiAgICBmaXhlZFJpZ2h0Q29sdW1uQ291bnQ/OiBudW1iZXIsXG4gICAgcm93Q2hlY2tib3hWaXNpYmxlPzogYm9vbGVhbixcbiAgICBkZWZhdWx0Um93SGVpZ2h0cz86IERlZmF1bHRSb3dIZWlnaHRzSWYsXG4gICAgY29sdW1uRGVmcz86IENvbHVtbkRlZklmW10sXG4gICAgY29sdW1uU2l6ZXM/OiBudW1iZXJbXVxuICB9KSB7XG4gICAgY29uc3Qgcm93Q2hlY2tib3hWaXNpYmxlID0gcGFyYW0ucm93Q2hlY2tib3hWaXNpYmxlICE9PSB1bmRlZmluZWQgPyBwYXJhbS5yb3dDaGVja2JveFZpc2libGUgOiBmYWxzZTtcbiAgICByZXR1cm4gVGFibGVGYWN0b3J5LmNyZWF0ZUJ5T2JqZWN0QXJyYXk8VD4oXG4gICAgICBwYXJhbS5yb3dzLFxuICAgICAgcGFyYW0uaGVhZGVyID8/IFtdLFxuICAgICAgcGFyYW0uZm9vdGVyID8/IFtdLFxuICAgICAgcGFyYW0uZml4ZWRMZWZ0Q29sdW1uQ291bnQgPz8gMCxcbiAgICAgIHBhcmFtLmZpeGVkUmlnaHRDb2x1bW5Db3VudCA/PyAwLFxuICAgICAgcm93Q2hlY2tib3hWaXNpYmxlLFxuICAgICAgcGFyYW0uZGVmYXVsdFJvd0hlaWdodHMgPz8gbmV3IERlZmF1bHRSb3dIZWlnaHRzKCksXG4gICAgICBwYXJhbS5jb2x1bW5EZWZzID8/IFtdLFxuICAgICAgcGFyYW0uY29sdW1uU2l6ZXMgPz8gW11cbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVCeUFyZWFNb2RlbHMoXG4gICAgaGVhZGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZiA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oKSxcbiAgICBib2R5QXJlYU1vZGVsOiBBcmVhTW9kZWxJZixcbiAgICBmb290ZXJBcmVhTW9kZWw6IEFyZWFNb2RlbElmID0gbmV3IEFyZWFNb2RlbEhpZGRlbigpLFxuICAgIGZpeGVkTGVmdENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudDogbnVtYmVyID0gMCxcbiAgICByb3dDaGVja2JveFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBkZWZhdWx0Um93SGVpZ2h0czogRGVmYXVsdFJvd0hlaWdodHNJZiA9IG5ldyBEZWZhdWx0Um93SGVpZ2h0cygpLFxuICAgIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10sXG4gICAgY29sdW1uU2l6ZXM6IG51bWJlcltdID0gW10sXG4gICAgb3ZlcnJpZGluZ0NvbHVtbldpZHRoOiBudW1iZXIgPSAtMSxcbiAgICBjb2x1bW5Db3VudDogbnVtYmVyXG4gICkge1xuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIGhlYWRlckFyZWFNb2RlbCxcbiAgICAgIGJvZHlBcmVhTW9kZWwsXG4gICAgICBmb290ZXJBcmVhTW9kZWwsXG4gICAgICBmaXhlZExlZnRDb2x1bW5Db3VudCxcbiAgICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudCxcbiAgICAgIHJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLFxuICAgICAgY29sdW1uRGVmcyxcbiAgICAgIGNvbHVtblNpemVzLFxuICAgICAgb3ZlcnJpZGluZ0NvbHVtbldpZHRoLFxuICAgICAgY29sdW1uQ291bnRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjcmVhdGVCeUFyZWFNb2RlbHNQYXJhbShwYXJhbToge1xuICAgIGhlYWRlckFyZWFNb2RlbD86IEFyZWFNb2RlbElmLFxuICAgIGJvZHlBcmVhTW9kZWw6IEFyZWFNb2RlbElmLFxuICAgIGZvb3RlckFyZWFNb2RlbD86IEFyZWFNb2RlbElmLFxuICAgIGZpeGVkTGVmdENvbHVtbkNvdW50PzogbnVtYmVyLFxuICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudD86IG51bWJlcixcbiAgICByb3dDaGVja2JveFZpc2libGU/OiBib29sZWFuLFxuICAgIGRlZmF1bHRSb3dIZWlnaHRzPzogRGVmYXVsdFJvd0hlaWdodHNJZixcbiAgICBjb2x1bW5EZWZzPzogQ29sdW1uRGVmSWZbXSxcbiAgICBjb2x1bW5TaXplcz86IG51bWJlcltdLFxuICAgIG92ZXJyaWRpbmdDb2x1bW5XaWR0aD86IG51bWJlcixcbiAgICBjb2x1bW5Db3VudD86IG51bWJlclxuICB9KSB7XG4gICAgcmV0dXJuIFRhYmxlRmFjdG9yeS5jcmVhdGVCeUFyZWFNb2RlbHMoXG4gICAgICBwYXJhbS5oZWFkZXJBcmVhTW9kZWwgPz8gbmV3IEFyZWFNb2RlbEhpZGRlbigpLFxuICAgICAgcGFyYW0uYm9keUFyZWFNb2RlbCxcbiAgICAgIHBhcmFtLmZvb3RlckFyZWFNb2RlbCA/PyBuZXcgQXJlYU1vZGVsSGlkZGVuKCksXG4gICAgICBwYXJhbS5maXhlZExlZnRDb2x1bW5Db3VudCA/PyAwLFxuICAgICAgcGFyYW0uZml4ZWRSaWdodENvbHVtbkNvdW50ID8/IDAsXG4gICAgICBwYXJhbS5yb3dDaGVja2JveFZpc2libGUgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogcGFyYW0ucm93Q2hlY2tib3hWaXNpYmxlLFxuICAgICAgcGFyYW0uZGVmYXVsdFJvd0hlaWdodHMsXG4gICAgICBwYXJhbS5jb2x1bW5EZWZzID8/IFtdLFxuICAgICAgcGFyYW0uY29sdW1uU2l6ZXMgPz8gW10sXG4gICAgICBwYXJhbS5vdmVycmlkaW5nQ29sdW1uV2lkdGggPz8gLTEsXG4gICAgICBwYXJhbS5jb2x1bW5Db3VudCA/PyAwXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgY3JlYXRlQnlPYmplY3RBcnJheTxUPihcbiAgICByb3dzOiBUW10sXG4gICAgaGVhZGVyOiBzdHJpbmdbXVtdID0gW10sXG4gICAgZm9vdGVyOiBzdHJpbmdbXVtdID0gW10sXG4gICAgZml4ZWRMZWZ0Q29sdW1uQ291bnQ6IG51bWJlciA9IDAsXG4gICAgZml4ZWRSaWdodENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIHJvd0NoZWNrYm94VmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlLFxuICAgIGRlZmF1bHRSb3dIZWlnaHRzOiBEZWZhdWx0Um93SGVpZ2h0c0lmID0gbmV3IERlZmF1bHRSb3dIZWlnaHRzKCksXG4gICAgY29sdW1uRGVmczogQ29sdW1uRGVmSWZbXSxcbiAgICBjb2x1bW5TaXplczogbnVtYmVyW10gPSBbXVxuICApIHtcbiAgICBsZXQgaGVhZGVyQXJlYU1vZGVsOiBBcmVhTW9kZWxJZjtcbiAgICBpZiAoaGVhZGVyPy5sZW5ndGgpIHtcbiAgICAgIGhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxBcnJheU9mQXJyYXlzPHN0cmluZz4oXCJoZWFkZXJcIiwgaGVhZGVyLCBkZWZhdWx0Um93SGVpZ2h0cy5oZWFkZXIsIGNvbHVtbkRlZnMpO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uRGVmcz8ubGVuZ3RoKSB7XG4gICAgICBoZWFkZXJBcmVhTW9kZWwgPSBuZXcgQXJlYU1vZGVsQXJyYXlPZkFycmF5czxzdHJpbmc+KFwiaGVhZGVyXCIsIFtjb2x1bW5EZWZzLm1hcChkZWYgPT4gZGVmLmhlYWRlckxhYmVsKV0sIGRlZmF1bHRSb3dIZWlnaHRzLmhlYWRlciwgY29sdW1uRGVmcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhlYWRlckFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxIaWRkZW4oKTtcbiAgICB9XG4gICAgY29uc3QgZm9vdGVyQXJlYU1vZGVsID0gZm9vdGVyID8gbmV3IEFyZWFNb2RlbEFycmF5T2ZBcnJheXM8c3RyaW5nPihcImZvb3RlclwiLCBmb290ZXIsIGRlZmF1bHRSb3dIZWlnaHRzLmZvb3RlciwgY29sdW1uRGVmcykgOiBuZXcgQXJlYU1vZGVsSGlkZGVuKCk7XG4gICAgY29uc3QgYm9keUFyZWFNb2RlbCA9IG5ldyBBcmVhTW9kZWxPYmplY3RBcnJheVdpdGhDb2x1bW5kZWZzPFQ+KFwiYm9keVwiLCByb3dzLCBjb2x1bW5EZWZzLCBkZWZhdWx0Um93SGVpZ2h0cy5ib2R5KTtcblxuICAgIHJldHVybiBuZXcgVGFibGVNb2RlbChcbiAgICAgIGhlYWRlckFyZWFNb2RlbCxcbiAgICAgIGJvZHlBcmVhTW9kZWwsXG4gICAgICBmb290ZXJBcmVhTW9kZWwsXG4gICAgICBmaXhlZExlZnRDb2x1bW5Db3VudCxcbiAgICAgIGZpeGVkUmlnaHRDb2x1bW5Db3VudCxcbiAgICAgIHJvd0NoZWNrYm94VmlzaWJsZSxcbiAgICAgIGRlZmF1bHRSb3dIZWlnaHRzLFxuICAgICAgY29sdW1uRGVmcyxcbiAgICAgIGNvbHVtblNpemVzXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,32 +0,0 @@
1
- import { TreeRow } from "../data/common/tree-row";
2
- export class TreeFactory {
3
- static buildTreeRows(data, childrenProperty = "children", deepMaxLimit = 12) {
4
- const ret = [];
5
- for (const r of data) {
6
- ret.push(TreeFactory.buildTreeRow(r, childrenProperty, undefined, 0, deepMaxLimit));
7
- }
8
- return ret;
9
- }
10
- static buildTreeRow(data, childrenProperty = "children", parent = new TreeRow(data, true, [], undefined, 0), //, false , '0', '0'),
11
- deep = 0, deepMaxLimit = 12) {
12
- if (deep > deepMaxLimit) {
13
- console.warn("Max deep limit reached: ", deep);
14
- return parent;
15
- }
16
- // @ts-ignore
17
- const children = data[childrenProperty];
18
- if (children) {
19
- for (const r of children) {
20
- const tr = new TreeRow(r, true, [], parent, deep + 1);
21
- parent.children?.push(tr);
22
- TreeFactory.buildTreeRow(r, childrenProperty, tr, deep + 1);
23
- if (deep > deepMaxLimit) {
24
- console.warn("Max deep limit reached: ", deep);
25
- return parent;
26
- }
27
- }
28
- }
29
- return parent;
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2ZhY3RvcnkvdHJlZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRCxNQUFNLE9BQU8sV0FBVztJQUd0QixNQUFNLENBQUMsYUFBYSxDQUNsQixJQUFTLEVBQ1QsbUJBQTJCLFVBQVUsRUFDckMsZUFBdUIsRUFBRTtRQUV6QixNQUFNLEdBQUcsR0FBaUIsRUFBRSxDQUFDO1FBQzdCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQ3BCLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBSSxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1NBQ3hGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBR0QsTUFBTSxDQUFDLFlBQVksQ0FDakIsSUFBTyxFQUNQLG1CQUEyQixVQUFVLEVBQ3JDLFNBQXFCLElBQUksT0FBTyxDQUFJLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxzQkFBc0I7SUFDekYsT0FBZSxDQUFDLEVBQ2hCLGVBQXVCLEVBQUU7UUFFekIsSUFBSSxJQUFJLEdBQUcsWUFBWSxFQUFFO1lBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsT0FBTyxNQUFNLENBQUM7U0FDZjtRQUNELGFBQWE7UUFDYixNQUFNLFFBQVEsR0FBb0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxRQUFRLEVBQUU7WUFDWixLQUFLLE1BQU0sQ0FBQyxJQUFJLFFBQVEsRUFBRTtnQkFDeEIsTUFBTSxFQUFFLEdBQUcsSUFBSSxPQUFPLENBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDekQsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzFCLFdBQVcsQ0FBQyxZQUFZLENBQ3RCLENBQUMsRUFDRCxnQkFBZ0IsRUFDaEIsRUFBRSxFQUNGLElBQUksR0FBRyxDQUFDLENBQ1QsQ0FBQztnQkFDRixJQUFJLElBQUksR0FBRyxZQUFZLEVBQUU7b0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQy9DLE9BQU8sTUFBTSxDQUFDO2lCQUNmO2FBQ0Y7U0FDRjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyZWVSb3cgfSBmcm9tIFwiLi4vZGF0YS9jb21tb24vdHJlZS1yb3dcIjtcblxuZXhwb3J0IGNsYXNzIFRyZWVGYWN0b3J5IHtcblxuXG4gIHN0YXRpYyBidWlsZFRyZWVSb3dzPFQ+KFxuICAgIGRhdGE6IFRbXSxcbiAgICBjaGlsZHJlblByb3BlcnR5OiBzdHJpbmcgPSBcImNoaWxkcmVuXCIsXG4gICAgZGVlcE1heExpbWl0OiBudW1iZXIgPSAxMik6IFRyZWVSb3c8VD5bXSB7XG5cbiAgICBjb25zdCByZXQ6IFRyZWVSb3c8VD5bXSA9IFtdO1xuICAgIGZvciAoY29uc3QgciBvZiBkYXRhKSB7XG4gICAgICByZXQucHVzaChUcmVlRmFjdG9yeS5idWlsZFRyZWVSb3c8VD4ociwgY2hpbGRyZW5Qcm9wZXJ0eSwgdW5kZWZpbmVkLCAwLCBkZWVwTWF4TGltaXQpKTtcbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG5cbiAgc3RhdGljIGJ1aWxkVHJlZVJvdzxUPihcbiAgICBkYXRhOiBULFxuICAgIGNoaWxkcmVuUHJvcGVydHk6IHN0cmluZyA9IFwiY2hpbGRyZW5cIixcbiAgICBwYXJlbnQ6IFRyZWVSb3c8VD4gPSBuZXcgVHJlZVJvdzxUPihkYXRhLCB0cnVlLCBbXSwgdW5kZWZpbmVkLCAwKSwgLy8sIGZhbHNlICwgJzAnLCAnMCcpLFxuICAgIGRlZXA6IG51bWJlciA9IDAsXG4gICAgZGVlcE1heExpbWl0OiBudW1iZXIgPSAxMik6IFRyZWVSb3c8VD4ge1xuXG4gICAgaWYgKGRlZXAgPiBkZWVwTWF4TGltaXQpIHtcbiAgICAgIGNvbnNvbGUud2FybihcIk1heCBkZWVwIGxpbWl0IHJlYWNoZWQ6IFwiLCBkZWVwKTtcbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBjb25zdCBjaGlsZHJlbjogVFtdIHwgdW5kZWZpbmVkID0gZGF0YVtjaGlsZHJlblByb3BlcnR5XTtcbiAgICBpZiAoY2hpbGRyZW4pIHtcbiAgICAgIGZvciAoY29uc3QgciBvZiBjaGlsZHJlbikge1xuICAgICAgICBjb25zdCB0ciA9IG5ldyBUcmVlUm93PFQ+KHIsIHRydWUsIFtdLCBwYXJlbnQsIGRlZXAgKyAxKTtcbiAgICAgICAgcGFyZW50LmNoaWxkcmVuPy5wdXNoKHRyKTtcbiAgICAgICAgVHJlZUZhY3RvcnkuYnVpbGRUcmVlUm93KFxuICAgICAgICAgIHIsXG4gICAgICAgICAgY2hpbGRyZW5Qcm9wZXJ0eSxcbiAgICAgICAgICB0cixcbiAgICAgICAgICBkZWVwICsgMVxuICAgICAgICApO1xuICAgICAgICBpZiAoZGVlcCA+IGRlZXBNYXhMaW1pdCkge1xuICAgICAgICAgIGNvbnNvbGUud2FybihcIk1heCBkZWVwIGxpbWl0IHJlYWNoZWQ6IFwiLCBkZWVwKTtcbiAgICAgICAgICByZXR1cm4gcGFyZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBwYXJlbnQ7XG4gIH1cbn1cblxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZm9jdXMvZm9jdXMtbW9kZWwuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9jdXNNb2RlbElmIHtcblxuICBjbGVhcigpOiB2b2lkO1xuXG4gIHNldEZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gIGhhc0ZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBib29sZWFuO1xuXG4gIGdldEZvY3VzKCk6IFtudW1iZXIsIG51bWJlcl07XG5cbiAgaGFzQ2hhbmdlZCgpOiBib29sZWFuO1xuXG4gIGNsZWFyQ2hhbmdlZCgpOiB2b2lkO1xufVxuIl19
@@ -1,33 +0,0 @@
1
- export class FocusModel {
2
- selectionType;
3
- rowIndex = -1;
4
- columnIndex = -1;
5
- changed = false;
6
- constructor(selectionType = "none") {
7
- this.selectionType = selectionType;
8
- }
9
- clearChanged() {
10
- this.changed = false;
11
- }
12
- hasChanged() {
13
- return this.changed;
14
- }
15
- clear() {
16
- this.rowIndex = -1;
17
- this.columnIndex = -1;
18
- }
19
- setFocus(rowIndex, columnIndex) {
20
- if (this.rowIndex !== rowIndex || this.columnIndex !== columnIndex) {
21
- this.rowIndex = rowIndex;
22
- this.columnIndex = columnIndex;
23
- this.changed = true;
24
- }
25
- }
26
- hasFocus(rowIndex, columnIndex) {
27
- return this.rowIndex === rowIndex && this.columnIndex === columnIndex;
28
- }
29
- getFocus() {
30
- return [this.rowIndex, this.columnIndex];
31
- }
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZm9jdXMvZm9jdXMtbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLFVBQVU7SUFPWjtJQUxDLFFBQVEsR0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0QixXQUFXLEdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDekIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUUxQixZQUNTLGdCQUEyQixNQUFNO1FBQWpDLGtCQUFhLEdBQWIsYUFBYSxDQUFvQjtJQUUxQyxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFHRCxRQUFRLENBQ04sUUFBZ0IsRUFDaEIsV0FBbUI7UUFFbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUNsRSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxRQUFRLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzVHlwZSB9IGZyb20gXCIuL2ZvY3VzLnR5cGVcIjtcbmltcG9ydCB7IEZvY3VzTW9kZWxJZiB9IGZyb20gXCIuL2ZvY3VzLW1vZGVsLmlmXCI7XG5cbmV4cG9ydCBjbGFzcyBGb2N1c01vZGVsIGltcGxlbWVudHMgRm9jdXNNb2RlbElmIHtcblxuICBwcm90ZWN0ZWQgcm93SW5kZXg6IG51bWJlciA9IC0xO1xuICBwcm90ZWN0ZWQgY29sdW1uSW5kZXg6IG51bWJlciA9IC0xO1xuICBwcm90ZWN0ZWQgY2hhbmdlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZWxlY3Rpb25UeXBlOiBGb2N1c1R5cGUgPSBcIm5vbmVcIlxuICApIHtcbiAgfVxuXG4gIGNsZWFyQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIGhhc0NoYW5nZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY2hhbmdlZDtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMucm93SW5kZXggPSAtMTtcbiAgICB0aGlzLmNvbHVtbkluZGV4ID0gLTE7XG4gIH1cblxuXG4gIHNldEZvY3VzKFxuICAgIHJvd0luZGV4OiBudW1iZXIsXG4gICAgY29sdW1uSW5kZXg6IG51bWJlclxuICApOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yb3dJbmRleCAhPT0gcm93SW5kZXggfHwgdGhpcy5jb2x1bW5JbmRleCAhPT0gY29sdW1uSW5kZXgpIHtcbiAgICAgIHRoaXMucm93SW5kZXggPSByb3dJbmRleDtcbiAgICAgIHRoaXMuY29sdW1uSW5kZXggPSBjb2x1bW5JbmRleDtcbiAgICAgIHRoaXMuY2hhbmdlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgaGFzRm9jdXMocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJvd0luZGV4ID09PSByb3dJbmRleCAmJiB0aGlzLmNvbHVtbkluZGV4ID09PSBjb2x1bW5JbmRleDtcbiAgfVxuXG4gIGdldEZvY3VzKCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIHJldHVybiBbdGhpcy5yb3dJbmRleCwgdGhpcy5jb2x1bW5JbmRleF07XG4gIH1cblxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9mb2N1cy9mb2N1cy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGb2N1c1R5cGUgPSBcIm5vbmVcIiB8IFwiY2VsbFwiIHwgXCJyb3dcIjtcblxuXG5cbiJdfQ==