@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,76 @@
1
+ export class AreaModelHidden {
2
+ constructor() {
3
+ this.rowSelectionModel = undefined;
4
+ }
5
+ getRowCount() {
6
+ return 0;
7
+ }
8
+ getValueAt(rowIndex, columnIndex) {
9
+ return '';
10
+ }
11
+ getCellRenderer(rowIndex, columnIndex) {
12
+ return undefined;
13
+ }
14
+ getRowHeight(rowIndex) {
15
+ return 0;
16
+ }
17
+ getColspanAt(rowIndex, columnIndex) {
18
+ return 0;
19
+ }
20
+ getCustomClassesAt(rowIndex, columnIndex) {
21
+ return [];
22
+ }
23
+ getRowspanAt(rowIndex, columnIndex) {
24
+ return 0;
25
+ }
26
+ getRowByIndex(idx) {
27
+ return undefined;
28
+ }
29
+ isRowCheckable(rowIndex) {
30
+ return false;
31
+ }
32
+ isRowChecked(rowIndex) {
33
+ return undefined;
34
+ }
35
+ setRowChecked(rowIndex, checked) {
36
+ // nothing
37
+ }
38
+ getTooltipAt(rowIndex, columnIndex) {
39
+ return '';
40
+ }
41
+ getMaxColspan() {
42
+ return 0;
43
+ }
44
+ getMaxRowspan() {
45
+ return 0;
46
+ }
47
+ getYPosByRowIndex(rowIndex) {
48
+ return 0;
49
+ }
50
+ init() {
51
+ // nothing
52
+ }
53
+ externalFilterChanged(predictFn) {
54
+ // nothing
55
+ }
56
+ isFilterable() {
57
+ return false;
58
+ }
59
+ doSort(sortItems) {
60
+ // do nothing
61
+ return false;
62
+ }
63
+ isEditable(rowIndex, columnIndex) {
64
+ return false;
65
+ }
66
+ setValue(rowIndex, columnIndex, value) {
67
+ return false;
68
+ }
69
+ isSelectable(rowIndex, columnIndex) {
70
+ return false;
71
+ }
72
+ changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
73
+ // skip
74
+ }
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC1oaWRkZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL2FyZWFtb2RlbC9hcmVhLW1vZGVsLWhpZGRlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxNQUFNLE9BQU8sZUFBZTtJQUE1QjtRQUVFLHNCQUFpQixHQUFxQyxTQUFTLENBQUM7SUFpR2xFLENBQUM7SUE5RkMsV0FBVztRQUNULE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQzlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGVBQWUsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ25ELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0I7UUFDM0IsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsWUFBWSxDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDaEQsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUN0RCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUNoRCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVztRQUN2QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWdCO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFnQjtRQUMzQixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQWdCLEVBQUUsT0FBZ0I7UUFDOUMsVUFBVTtJQUNaLENBQUM7SUFFRCxZQUFZLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUNoRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsYUFBYTtRQUNYLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUdELGlCQUFpQixDQUFDLFFBQWdCO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELElBQUk7UUFDRixVQUFVO0lBQ1osQ0FBQztJQUVELHFCQUFxQixDQUFDLFNBQThCO1FBQ2xELFVBQVU7SUFDWixDQUFDO0lBRUQsWUFBWTtRQUNWLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxTQUFxQjtRQUMxQixhQUFhO1FBQ2IsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQWdCLEVBQUUsV0FBbUI7UUFDOUMsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQsUUFBUSxDQUFDLFFBQWdCLEVBQUUsV0FBbUIsRUFBRSxLQUFhO1FBQzNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ2hELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELGlCQUFpQixDQUFDLGlCQUF5QixFQUFFLGlCQUF5QjtRQUNwRSxPQUFPO0lBQ1QsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmVhTW9kZWxJZn0gZnJvbSBcIi4vYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHtDZWxsUmVuZGVyZXJJZn0gZnJvbSBcIi4uLy4uLy4uL3JlbmRlcmVyL2NlbGwtcmVuZGVyLmlmXCI7XG5pbXBvcnQge0NoZWNrZWRUeXBlfSBmcm9tIFwiLi4vLi4vY29tbW9uL2NoZWNrZWQtdHlwZVwiO1xuaW1wb3J0IHtDaGVja2JveE1vZGVsSWZ9IGZyb20gXCIuLi8uLi8uLi9jaGVja2JveC9jaGVja2JveC1tb2RlbC5pZlwiO1xuaW1wb3J0IHtGaWx0ZXJGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9maWx0ZXItZnVuY3Rpb25cIjtcbmltcG9ydCB7U29ydEl0ZW19IGZyb20gXCIuLi8uLi9jb21tb24vc29ydC1pdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBBcmVhTW9kZWxIaWRkZW4gaW1wbGVtZW50cyBBcmVhTW9kZWxJZiB7XG5cbiAgcm93U2VsZWN0aW9uTW9kZWw6IENoZWNrYm94TW9kZWxJZjxhbnk+IHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuXG5cbiAgZ2V0Um93Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldFZhbHVlQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgZ2V0Q2VsbFJlbmRlcmVyKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBDZWxsUmVuZGVyZXJJZiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGdldFJvd0hlaWdodChyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldENvbHNwYW5BdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldEN1c3RvbUNsYXNzZXNBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGdldFJvd3NwYW5BdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIGdldFJvd0J5SW5kZXgoaWR4OiBudW1iZXIpOiBhbnkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBpc1Jvd0NoZWNrYWJsZShyb3dJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNSb3dDaGVja2VkKHJvd0luZGV4OiBudW1iZXIpOiBDaGVja2VkVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIHNldFJvd0NoZWNrZWQocm93SW5kZXg6IG51bWJlciwgY2hlY2tlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIG5vdGhpbmdcbiAgfVxuXG4gIGdldFRvb2x0aXBBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRNYXhDb2xzcGFuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBnZXRNYXhSb3dzcGFuKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuXG4gIGdldFlQb3NCeVJvd0luZGV4KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICAvLyBub3RoaW5nXG4gIH1cblxuICBleHRlcm5hbEZpbHRlckNoYW5nZWQocHJlZGljdEZuOiBGaWx0ZXJGdW5jdGlvbjxhbnk+KTogdm9pZCB7XG4gICAgLy8gbm90aGluZ1xuICB9XG5cbiAgaXNGaWx0ZXJhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGRvU29ydChzb3J0SXRlbXM6IFNvcnRJdGVtW10pOiBib29sZWFuIHtcbiAgICAvLyBkbyBub3RoaW5nXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgaXNFZGl0YWJsZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgc2V0VmFsdWUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGlzU2VsZWN0YWJsZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXg6IG51bWJlciwgdGFyZ2V0Q29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vIHNraXBcbiAgfVxuXG59XG5cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ import { AreaModelObjectyArray } from "./area-model-object-array";
2
+ export class AreaModelObjectArrayWithColumndefs extends AreaModelObjectyArray {
3
+ constructor(areaIdent, rows, columnDefs, defaultRowHeight = 40) {
4
+ super(areaIdent, rows, defaultRowHeight, columnDefs);
5
+ this.areaIdent = areaIdent;
6
+ this.rows = rows;
7
+ this.columnDefs = columnDefs;
8
+ this.defaultRowHeight = defaultRowHeight;
9
+ }
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC1vYmplY3QtYXJyYXktd2l0aC1jb2x1bW5kZWZzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC1vYmplY3QtYXJyYXktd2l0aC1jb2x1bW5kZWZzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBSWhFLE1BQU0sT0FBTyxrQ0FBc0MsU0FBUSxxQkFBd0I7SUFHakYsWUFDcUIsU0FBb0IsRUFDWCxJQUFTLEVBQ1QsVUFBeUIsRUFDbEMsbUJBQTJCLEVBQUU7UUFFaEQsS0FBSyxDQUNILFNBQVMsRUFDVCxJQUFJLEVBQ0osZ0JBQWdCLEVBQ2hCLFVBQVUsQ0FDWCxDQUFDO1FBVmlCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDWCxTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ1QsZUFBVSxHQUFWLFVBQVUsQ0FBZTtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWE7SUFRbEQsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBcmVhTW9kZWxPYmplY3R5QXJyYXl9IGZyb20gXCIuL2FyZWEtbW9kZWwtb2JqZWN0LWFycmF5XCI7XG5pbXBvcnQge0NvbHVtbkRlZklmfSBmcm9tIFwiLi4vY29sdW1uL2NvbHVtbi1kZWYuaWZcIjtcbmltcG9ydCB7QXJlYUlkZW50fSBmcm9tIFwiLi4vYXJlYS1pZGVudC50eXBlXCI7XG5cbmV4cG9ydCBjbGFzcyBBcmVhTW9kZWxPYmplY3RBcnJheVdpdGhDb2x1bW5kZWZzPFQ+IGV4dGVuZHMgQXJlYU1vZGVsT2JqZWN0eUFycmF5PFQ+IHtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBhcmVhSWRlbnQ6IEFyZWFJZGVudCxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVhZG9ubHkgcm93czogVFtdLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBjb2x1bW5EZWZzOiBDb2x1bW5EZWZJZltdLFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBkZWZhdWx0Um93SGVpZ2h0OiBudW1iZXIgPSA0MFxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIGFyZWFJZGVudCxcbiAgICAgIHJvd3MsXG4gICAgICBkZWZhdWx0Um93SGVpZ2h0LFxuICAgICAgY29sdW1uRGVmc1xuICAgICk7XG4gIH1cblxufVxuXG4iXX0=
@@ -0,0 +1,79 @@
1
+ import { AbstractAreaModel } from "./abstract-area-model";
2
+ import { TreeRow } from "../../common/tree-row";
3
+ import { SorterService } from "../../../service/sorter.service";
4
+ export class AreaModelObjectyArray extends AbstractAreaModel {
5
+ constructor(areaIdent, rows, defaultRowHeight = 40, columnDefs = []) {
6
+ super(areaIdent, columnDefs, defaultRowHeight);
7
+ this.areaIdent = areaIdent;
8
+ this.rows = rows;
9
+ this.defaultRowHeight = defaultRowHeight;
10
+ this.columnDefs = columnDefs;
11
+ this.sorterService = new SorterService();
12
+ this.filteredRows = [...rows];
13
+ this.properties = columnDefs.map(def => def.property);
14
+ }
15
+ getRowCount() {
16
+ return this.filteredRows?.length ?? 0;
17
+ }
18
+ getValueAt(rowIndex, columnIndex) {
19
+ const property = this.properties[columnIndex];
20
+ let t = this.filteredRows[rowIndex];
21
+ if (t instanceof TreeRow) {
22
+ t = t.data;
23
+ }
24
+ if (t) {
25
+ return this.getValueByT(t, property);
26
+ }
27
+ return '';
28
+ }
29
+ getFilteredRows() {
30
+ return this.filteredRows;
31
+ }
32
+ getRowHeight(rowIndex) {
33
+ return this.defaultRowHeight;
34
+ }
35
+ getRowByIndex(rowIndex) {
36
+ return this.filteredRows[rowIndex];
37
+ }
38
+ externalFilterChanged(predictFn) {
39
+ this.filteredRows = (this.rows ? this.rows.filter(predictFn) : []);
40
+ }
41
+ doSort(sortItems) {
42
+ for (const sortItem of sortItems) {
43
+ const { columnIndex, sortState } = sortItem;
44
+ const f = sortState === 'asc' ? 1 :
45
+ sortState === 'desc' ? -1 : 0;
46
+ const property = this.properties[columnIndex];
47
+ this.filteredRows = this.filteredRows.sort(this.genericFlatTableSortComparator(property, f));
48
+ }
49
+ return true;
50
+ }
51
+ getValueByT(t, property) {
52
+ if (property.includes('.')) {
53
+ return this.getPropertyValue(t, property.split('.'));
54
+ }
55
+ // @ts-ignore
56
+ return t[property];
57
+ }
58
+ changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
59
+ this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
60
+ super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
61
+ }
62
+ genericFlatTableSortComparator(property, f) {
63
+ return (a, b) => {
64
+ const va = this.getValueByT(a, property);
65
+ const vb = this.getValueByT(b, property);
66
+ return this.sorterService.genericSortComparator(va, vb, f);
67
+ };
68
+ }
69
+ getPropertyValue(o, props) {
70
+ const prop = props.shift();
71
+ // @ts-ignore
72
+ let o2 = o[prop];
73
+ if (o2 && props.length) {
74
+ return this.getPropertyValue(o2, props);
75
+ }
76
+ return o2;
77
+ }
78
+ }
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC1vYmplY3QtYXJyYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL2FyZWFtb2RlbC9hcmVhLW1vZGVsLW9iamVjdC1hcnJheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJOUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzlELE1BQU0sT0FBTyxxQkFBeUIsU0FBUSxpQkFBb0I7SUFNaEUsWUFDcUIsU0FBb0IsRUFDcEIsSUFBUyxFQUNsQixtQkFBMkIsRUFBRSxFQUNwQixhQUE0QixFQUFFO1FBRWpELEtBQUssQ0FBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFMNUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNwQixTQUFJLEdBQUosSUFBSSxDQUFLO1FBQ2xCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBYTtRQUNwQixlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQU56QyxrQkFBYSxHQUFrQixJQUFJLGFBQWEsRUFBRSxDQUFDO1FBUzNELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUM5QyxN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QUFDO0lBR08sZ0JBQWdCLENBQUMsQ0FBTSxFQUFFLEtBQWU7UUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLGFBQWE7UUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWJzdHJhY3RBcmVhTW9kZWx9IGZyb20gXCIuL2Fic3RyYWN0LWFyZWEtbW9kZWxcIjtcbmltcG9ydCB7VHJlZVJvd30gZnJvbSBcIi4uLy4uL2NvbW1vbi90cmVlLXJvd1wiO1xuaW1wb3J0IHtDb2x1bW5EZWZJZn0gZnJvbSBcIi4uL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0FyZWFJZGVudH0gZnJvbSBcIi4uL2FyZWEtaWRlbnQudHlwZVwiO1xuaW1wb3J0IHtGaWx0ZXJGdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9maWx0ZXItZnVuY3Rpb25cIjtcbmltcG9ydCB7U29ydGVyU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2Uvc29ydGVyLnNlcnZpY2VcIjtcbmltcG9ydCB7U29ydEl0ZW19IGZyb20gXCIuLi8uLi9jb21tb24vc29ydC1pdGVtXCI7XG5cbmV4cG9ydCBjbGFzcyBBcmVhTW9kZWxPYmplY3R5QXJyYXk8VD4gZXh0ZW5kcyBBYnN0cmFjdEFyZWFNb2RlbDxUPiB7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb3BlcnRpZXM6IHN0cmluZ1tdO1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRSb3dzOiBUW107XG4gIHByb3RlY3RlZCBzb3J0ZXJTZXJ2aWNlOiBTb3J0ZXJTZXJ2aWNlID0gbmV3IFNvcnRlclNlcnZpY2UoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXJlYUlkZW50OiBBcmVhSWRlbnQsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJvd3M6IFRbXSxcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyID0gNDAsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10gPSBbXVxuICApIHtcbiAgICBzdXBlcihhcmVhSWRlbnQsIGNvbHVtbkRlZnMsIGRlZmF1bHRSb3dIZWlnaHQpO1xuICAgIHRoaXMuZmlsdGVyZWRSb3dzID0gWy4uLnJvd3NdO1xuICAgIHRoaXMucHJvcGVydGllcyA9IGNvbHVtbkRlZnMubWFwKGRlZiA9PiBkZWYucHJvcGVydHkpO1xuICB9XG5cbiAgZ2V0Um93Q291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZFJvd3M/Lmxlbmd0aCA/PyAwO1xuICB9XG5cbiAgZ2V0VmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMucHJvcGVydGllc1tjb2x1bW5JbmRleF07XG4gICAgbGV0IHQgPSB0aGlzLmZpbHRlcmVkUm93c1tyb3dJbmRleF07XG4gICAgaWYgKHQgaW5zdGFuY2VvZiBUcmVlUm93KSB7XG4gICAgICB0ID0gdC5kYXRhO1xuICAgIH1cbiAgICBpZiAodCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0VmFsdWVCeVQodCwgcHJvcGVydHkpO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBnZXRGaWx0ZXJlZFJvd3MoKTogVFtdIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZFJvd3M7XG4gIH1cblxuICBnZXRSb3dIZWlnaHQocm93SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFJvd0hlaWdodDtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFJvd0J5SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRSb3dzW3Jvd0luZGV4XTtcbiAgfVxuXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPGFueT4pOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlcmVkUm93cyA9ICh0aGlzLnJvd3MgPyB0aGlzLnJvd3MuZmlsdGVyKHByZWRpY3RGbikgOiBbXSk7XG4gIH1cblxuICBvdmVycmlkZSBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbiB7XG4gICAgZm9yIChjb25zdCBzb3J0SXRlbSBvZiBzb3J0SXRlbXMpIHtcbiAgICAgIGNvbnN0IHtjb2x1bW5JbmRleCwgc29ydFN0YXRlfSA9IHNvcnRJdGVtO1xuICAgICAgY29uc3QgZiA9IHNvcnRTdGF0ZSA9PT0gJ2FzYycgPyAxIDpcbiAgICAgICAgc29ydFN0YXRlID09PSAnZGVzYycgPyAtMSA6IDA7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMucHJvcGVydGllc1tjb2x1bW5JbmRleF07XG4gICAgICB0aGlzLmZpbHRlcmVkUm93cyA9IHRoaXMuZmlsdGVyZWRSb3dzLnNvcnQodGhpcy5nZW5lcmljRmxhdFRhYmxlU29ydENvbXBhcmF0b3IocHJvcGVydHksIGYpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBnZXRWYWx1ZUJ5VCh0OiBULCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgaWYgKHByb3BlcnR5LmluY2x1ZGVzKCcuJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUodCwgcHJvcGVydHkuc3BsaXQoJy4nKSk7XG4gICAgfVxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gdFtwcm9wZXJ0eV07XG4gIH1cblxuICBvdmVycmlkZSBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5hcnJheU1vdmUodGhpcy5wcm9wZXJ0aWVzLCBzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHN1cGVyLmNoYW5nZUNvbHVtbk9yZGVyKHNvdXJjZUNvbHVtbkluZGV4LCB0YXJnZXRDb2x1bW5JbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2VuZXJpY0ZsYXRUYWJsZVNvcnRDb21wYXJhdG9yKHByb3BlcnR5OiBzdHJpbmcsIGY6IG51bWJlcikge1xuICAgIHJldHVybiAoYTogVCwgYjogVCkgPT4ge1xuICAgICAgY29uc3QgdmEgPSB0aGlzLmdldFZhbHVlQnlUKGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZiID0gdGhpcy5nZXRWYWx1ZUJ5VChiLCBwcm9wZXJ0eSk7XG4gICAgICByZXR1cm4gdGhpcy5zb3J0ZXJTZXJ2aWNlLmdlbmVyaWNTb3J0Q29tcGFyYXRvcih2YSwgdmIsIGYpO1xuICAgIH07XG4gIH1cblxuXG4gIHByaXZhdGUgZ2V0UHJvcGVydHlWYWx1ZShvOiBhbnksIHByb3BzOiBzdHJpbmdbXSk6IGFueSB7XG4gICAgY29uc3QgcHJvcCA9IHByb3BzLnNoaWZ0KCk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGxldCBvMiA9IG9bcHJvcF07XG4gICAgaWYgKG8yICYmIHByb3BzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuZ2V0UHJvcGVydHlWYWx1ZShvMiwgcHJvcHMpO1xuICAgIH1cbiAgICByZXR1cm4gbzI7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,166 @@
1
+ import { TreeRowService } from "../../../service/tree-row.service";
2
+ import { AbstractAreaModel } from "./abstract-area-model";
3
+ import { SorterService } from "../../../service/sorter.service";
4
+ export class AreaModelTree extends AbstractAreaModel {
5
+ constructor(areaIdent, rows, defaultRowHeight = 40, columnDefs = []) {
6
+ super(areaIdent, columnDefs, defaultRowHeight);
7
+ this.areaIdent = areaIdent;
8
+ this.rows = rows;
9
+ this.defaultRowHeight = defaultRowHeight;
10
+ this.columnDefs = columnDefs;
11
+ this.sorterService = new SorterService();
12
+ this.service = new TreeRowService();
13
+ this.properties = columnDefs.map(def => def.property);
14
+ this.flattenRows = this.service.flattenTree(rows);
15
+ this.filteredFlattenRows = [...this.flattenRows];
16
+ }
17
+ changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
18
+ // not this! this.arrayMove(this.columnDefs...)
19
+ this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
20
+ super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
21
+ }
22
+ recalcVisibleTreeRows() {
23
+ this.filteredFlattenRows = this.service.flattenTree(this.rows);
24
+ }
25
+ getFilteredFlattenRows() {
26
+ return this.filteredFlattenRows;
27
+ }
28
+ getRowCount() {
29
+ let n = 0;
30
+ for (const r of this.filteredFlattenRows) {
31
+ if (this.service.isVisible(r)) {
32
+ n++;
33
+ }
34
+ }
35
+ return n;
36
+ }
37
+ getValueAt(rowIndex, columnIndex) {
38
+ const row = this.getRowByIndex(rowIndex);
39
+ if (row) {
40
+ const prop = this.properties[columnIndex];
41
+ if (prop) {
42
+ if (prop.includes('.')) {
43
+ return this.getPropertyValue(row.data, prop.split('.'));
44
+ }
45
+ // @ts-ignore
46
+ return row.data[prop];
47
+ }
48
+ }
49
+ return '';
50
+ }
51
+ getRowHeight(rowIndex) {
52
+ return this.defaultRowHeight;
53
+ }
54
+ getCustomClassesAt(rowIndex, columnIndex) {
55
+ const row = this.filteredFlattenRows[rowIndex];
56
+ return ['ge-table-tree-cell', 'ge-table-tree-deep-' + row.deep];
57
+ }
58
+ getRowByIndex(idx) {
59
+ return this.filteredFlattenRows[idx];
60
+ }
61
+ getValueByT(t, property) {
62
+ if (property.includes('.')) {
63
+ return this.getPropertyValue(t, property.split('.'));
64
+ }
65
+ // @ts-ignore
66
+ return t[property];
67
+ }
68
+ externalFilterChanged(predictFn) {
69
+ this.lastPredictFn = predictFn;
70
+ this.doFiltering();
71
+ }
72
+ doSort(sortItems) {
73
+ const { columnIndex, sortState } = sortItems[sortItems.length - 1];
74
+ const f = sortState === 'asc' ? 1 :
75
+ sortState === 'desc' ? -1 : 0;
76
+ const property = this.properties[columnIndex];
77
+ this.treeSort(this.rows, property, f);
78
+ this.flattenRows = this.service.flattenTree(this.rows);
79
+ this.filteredFlattenRows = [...this.flattenRows];
80
+ return true;
81
+ }
82
+ toggleExpandCollapseAll(expanded) {
83
+ this.expandAllRecursive(this.rows, expanded);
84
+ this.flattenRows = this.service.flattenTree(this.rows);
85
+ this.doFiltering();
86
+ }
87
+ setAllParentsOk(item) {
88
+ if (item.parent) {
89
+ item.parent.keep = true;
90
+ this.setAllParentsOk(item.parent);
91
+ }
92
+ return false;
93
+ }
94
+ setValue(rowIndex, columnIndex, value) {
95
+ const treeRow = this.getRowByIndex(rowIndex);
96
+ if (treeRow) {
97
+ const row = treeRow.data;
98
+ const property = this.columnDefs[columnIndex].property;
99
+ // @ts-ignore
100
+ row[property] = value;
101
+ return true;
102
+ }
103
+ return false;
104
+ }
105
+ genericTreeTableSortComparator(property, f) {
106
+ return (a, b) => {
107
+ const va = this.getValueByT(a.data, property);
108
+ const vb = this.getValueByT(b.data, property);
109
+ return this.sorterService.genericSortComparator(va, vb, f);
110
+ };
111
+ }
112
+ expandAllRecursive(arr, expanded) {
113
+ for (const row of arr) {
114
+ row.expanded = expanded;
115
+ if (row.children) {
116
+ this.expandAllRecursive(row.children, expanded);
117
+ }
118
+ }
119
+ }
120
+ doFiltering() {
121
+ if (!this.lastPredictFn) {
122
+ this.filteredFlattenRows = [...(this.flattenRows ? this.flattenRows : [])];
123
+ }
124
+ else {
125
+ if (!this.flattenRows) {
126
+ this.flattenRows = [];
127
+ }
128
+ let maxDeep = 0;
129
+ this.flattenRows.forEach(v => {
130
+ maxDeep = Math.max(maxDeep, v.deep);
131
+ });
132
+ const okRows = this.flattenRows.filter((value, index, array) => {
133
+ // @ts-ignore
134
+ return this.lastPredictFn(value, index, array);
135
+ });
136
+ this.flattenRows.forEach(v => v.keep = false);
137
+ this.flattenRows.forEach(v => {
138
+ if (okRows.includes(v)) {
139
+ v.keep = true;
140
+ this.setAllParentsOk(v);
141
+ }
142
+ });
143
+ this.filteredFlattenRows = this.flattenRows.filter((value, index, array) => {
144
+ return value.keep;
145
+ });
146
+ }
147
+ }
148
+ getPropertyValue(o, props) {
149
+ const prop = props.shift();
150
+ // @ts-ignore
151
+ let o2 = o[prop];
152
+ if (o2 && props.length) {
153
+ return this.getPropertyValue(o2, props);
154
+ }
155
+ return o2;
156
+ }
157
+ treeSort(rows, property, f) {
158
+ rows.sort(this.genericTreeTableSortComparator(property, f));
159
+ for (const row of rows) {
160
+ if (row.children) {
161
+ this.treeSort(row.children, property, f);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC10cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFHOUQsTUFBTSxPQUFPLGFBQWlCLFNBQVEsaUJBQTZCO0lBVWpFLFlBQ3FCLFNBQW9CLEVBQ3ZCLElBQWtCLEVBQzNCLG1CQUEyQixFQUFFLEVBQ2pCLGFBQTRCLEVBQUU7UUFFakQsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUw1QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWM7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFhO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBWHpDLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFFNUMsWUFBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFZOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVRLGlC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RixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsQ0FBTSxFQUFFLEtBQWU7UUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLGFBQWE7UUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBa0IsRUFBRSxRQUFnQixFQUFFLENBQVM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyZWVSb3d9IGZyb20gXCIuLi8uLi9jb21tb24vdHJlZS1yb3dcIjtcbmltcG9ydCB7VHJlZVJvd1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyZWUtcm93LnNlcnZpY2VcIjtcbmltcG9ydCB7QWJzdHJhY3RBcmVhTW9kZWx9IGZyb20gXCIuL2Fic3RyYWN0LWFyZWEtbW9kZWxcIjtcbmltcG9ydCB7QXJlYUlkZW50fSBmcm9tIFwiLi4vYXJlYS1pZGVudC50eXBlXCI7XG5pbXBvcnQge0NvbHVtbkRlZklmfSBmcm9tIFwiLi4vY29sdW1uL2NvbHVtbi1kZWYuaWZcIjtcbmltcG9ydCB7RmlsdGVyRnVuY3Rpb259IGZyb20gXCIuLi8uLi9jb21tb24vZmlsdGVyLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRlclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3NvcnRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1NvcnRJdGVtfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NvcnQtaXRlbVwiO1xuXG5leHBvcnQgY2xhc3MgQXJlYU1vZGVsVHJlZTxTPiBleHRlbmRzIEFic3RyYWN0QXJlYU1vZGVsPFRyZWVSb3c8Uz4+IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvcGVydGllczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBzb3J0ZXJTZXJ2aWNlOiBTb3J0ZXJTZXJ2aWNlID0gbmV3IFNvcnRlclNlcnZpY2UoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBuZXcgVHJlZVJvd1NlcnZpY2UoKTtcbiAgcHJpdmF0ZSBmaWx0ZXJlZEZsYXR0ZW5Sb3dzOiBUcmVlUm93PFM+W107XG4gIHByaXZhdGUgZmxhdHRlblJvd3M6IFRyZWVSb3c8Uz5bXTtcbiAgcHJpdmF0ZSBsYXN0UHJlZGljdEZuPzogRmlsdGVyRnVuY3Rpb248YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXJlYUlkZW50OiBBcmVhSWRlbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IHJvd3M6IFRyZWVSb3c8Uz5bXSxcbiAgICBwdWJsaWMgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyID0gNDAsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10gPSBbXVxuICApIHtcbiAgICBzdXBlcihhcmVhSWRlbnQsIGNvbHVtbkRlZnMsIGRlZmF1bHRSb3dIZWlnaHQpO1xuICAgIHRoaXMucHJvcGVydGllcyA9IGNvbHVtbkRlZnMubWFwKGRlZiA9PiBkZWYucHJvcGVydHkpO1xuICAgIHRoaXMuZmxhdHRlblJvd3MgPSB0aGlzLnNlcnZpY2UuZmxhdHRlblRyZWUocm93cyk7XG4gICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gWy4uLnRoaXMuZmxhdHRlblJvd3NdO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXg6IG51bWJlciwgdGFyZ2V0Q29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vICBub3QgdGhpcyEgdGhpcy5hcnJheU1vdmUodGhpcy5jb2x1bW5EZWZzLi4uKVxuICAgIHRoaXMuYXJyYXlNb3ZlKHRoaXMucHJvcGVydGllcywgc291cmNlQ29sdW1uSW5kZXgsIHRhcmdldENvbHVtbkluZGV4KTtcbiAgICBzdXBlci5jaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICB9XG5cbiAgcmVjYWxjVmlzaWJsZVRyZWVSb3dzKCkge1xuICAgIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93cyA9IHRoaXMuc2VydmljZS5mbGF0dGVuVHJlZSh0aGlzLnJvd3MpO1xuICB9XG5cbiAgZ2V0RmlsdGVyZWRGbGF0dGVuUm93cygpOiBUcmVlUm93PFM+W10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkRmxhdHRlblJvd3M7XG4gIH1cblxuICBnZXRSb3dDb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBuID0gMDtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzKSB7XG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmlzVmlzaWJsZShyKSkge1xuICAgICAgICBuKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9XG5cbiAgZ2V0VmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0J5SW5kZXgocm93SW5kZXgpO1xuICAgIGlmIChyb3cpIHtcbiAgICAgIGNvbnN0IHByb3AgPSB0aGlzLnByb3BlcnRpZXNbY29sdW1uSW5kZXhdO1xuICAgICAgaWYgKHByb3ApIHtcbiAgICAgICAgaWYgKHByb3AuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUocm93LmRhdGEsIHByb3Auc3BsaXQoJy4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gcm93LmRhdGFbcHJvcF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFJvd0hlaWdodChyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Um93SGVpZ2h0O1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0Q3VzdG9tQ2xhc3Nlc0F0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzW3Jvd0luZGV4XTtcbiAgICByZXR1cm4gWydnZS10YWJsZS10cmVlLWNlbGwnLCAnZ2UtdGFibGUtdHJlZS1kZWVwLScgKyByb3cuZGVlcF07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSb3dCeUluZGV4KGlkeDogbnVtYmVyKTogVHJlZVJvdzxTPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93c1tpZHhdO1xuICB9XG5cbiAgZ2V0VmFsdWVCeVQodDogUywgcHJvcGVydHk6IHN0cmluZykge1xuICAgIGlmIChwcm9wZXJ0eS5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKHQsIHByb3BlcnR5LnNwbGl0KCcuJykpO1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIHRbcHJvcGVydHldO1xuICB9XG5cbiAgZXh0ZXJuYWxGaWx0ZXJDaGFuZ2VkPFM+KHByZWRpY3RGbjogRmlsdGVyRnVuY3Rpb248Uz4pOiB2b2lkIHtcbiAgICB0aGlzLmxhc3RQcmVkaWN0Rm4gPSBwcmVkaWN0Rm47XG4gICAgdGhpcy5kb0ZpbHRlcmluZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZG9Tb3J0KHNvcnRJdGVtczogU29ydEl0ZW1bXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtjb2x1bW5JbmRleCwgc29ydFN0YXRlfSA9IHNvcnRJdGVtc1tzb3J0SXRlbXMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgZiA9IHNvcnRTdGF0ZSA9PT0gJ2FzYycgPyAxIDpcbiAgICAgIHNvcnRTdGF0ZSA9PT0gJ2Rlc2MnID8gLTEgOiAwO1xuXG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNbY29sdW1uSW5kZXhdO1xuICAgIHRoaXMudHJlZVNvcnQodGhpcy5yb3dzLCBwcm9wZXJ0eSwgZik7XG5cbiAgICB0aGlzLmZsYXR0ZW5Sb3dzID0gdGhpcy5zZXJ2aWNlLmZsYXR0ZW5UcmVlKHRoaXMucm93cyk7XG4gICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gWy4uLnRoaXMuZmxhdHRlblJvd3NdO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kQ29sbGFwc2VBbGwoZXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4cGFuZEFsbFJlY3Vyc2l2ZSh0aGlzLnJvd3MsIGV4cGFuZGVkKTtcblxuICAgIHRoaXMuZmxhdHRlblJvd3MgPSB0aGlzLnNlcnZpY2UuZmxhdHRlblRyZWUodGhpcy5yb3dzKTtcbiAgICB0aGlzLmRvRmlsdGVyaW5nKCk7XG4gIH1cblxuICBzZXRBbGxQYXJlbnRzT2soaXRlbTogVHJlZVJvdzxhbnk+KSB7XG4gICAgaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICBpdGVtLnBhcmVudC5rZWVwID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0QWxsUGFyZW50c09rKGl0ZW0ucGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0VmFsdWUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRyZWVSb3c6IFRyZWVSb3c8Uz4gfCB1bmRlZmluZWQgPSB0aGlzLmdldFJvd0J5SW5kZXgocm93SW5kZXgpO1xuICAgIGlmICh0cmVlUm93KSB7XG4gICAgICBjb25zdCByb3c6IFMgPSB0cmVlUm93LmRhdGE7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY29sdW1uRGVmc1tjb2x1bW5JbmRleF0ucHJvcGVydHk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByb3dbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbmVyaWNUcmVlVGFibGVTb3J0Q29tcGFyYXRvcihwcm9wZXJ0eTogc3RyaW5nLCBmOiBudW1iZXIpIHtcbiAgICByZXR1cm4gKGE6IFRyZWVSb3c8Uz4sIGI6IFRyZWVSb3c8Uz4pID0+IHtcbiAgICAgIGNvbnN0IHZhID0gdGhpcy5nZXRWYWx1ZUJ5VChhLmRhdGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZiID0gdGhpcy5nZXRWYWx1ZUJ5VChiLmRhdGEsIHByb3BlcnR5KTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRlclNlcnZpY2UuZ2VuZXJpY1NvcnRDb21wYXJhdG9yKHZhLCB2YiwgZik7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kQWxsUmVjdXJzaXZlKGFycjogVHJlZVJvdzxTPltdLCBleHBhbmRlZDogYm9vbGVhbikge1xuICAgIGZvciAoY29uc3Qgcm93IG9mIGFycikge1xuICAgICAgcm93LmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICBpZiAocm93LmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kQWxsUmVjdXJzaXZlKHJvdy5jaGlsZHJlbiwgZXhwYW5kZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG9GaWx0ZXJpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmxhc3RQcmVkaWN0Rm4pIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93cyA9IFsuLi4odGhpcy5mbGF0dGVuUm93cyA/IHRoaXMuZmxhdHRlblJvd3MgOiBbXSldO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGlmICghdGhpcy5mbGF0dGVuUm93cykge1xuICAgICAgICB0aGlzLmZsYXR0ZW5Sb3dzID0gW107XG4gICAgICB9XG5cbiAgICAgIGxldCBtYXhEZWVwID0gMDtcbiAgICAgIHRoaXMuZmxhdHRlblJvd3MuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgbWF4RGVlcCA9IE1hdGgubWF4KG1heERlZXAsIHYuZGVlcCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgb2tSb3dzID0gdGhpcy5mbGF0dGVuUm93cy5maWx0ZXIoXG4gICAgICAgICh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RQcmVkaWN0Rm4odmFsdWUsIGluZGV4LCBhcnJheSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLmZsYXR0ZW5Sb3dzLmZvckVhY2godiA9PiB2LmtlZXAgPSBmYWxzZSk7XG4gICAgICB0aGlzLmZsYXR0ZW5Sb3dzLmZvckVhY2godiA9PiB7XG4gICAgICAgIGlmIChva1Jvd3MuaW5jbHVkZXModikpIHtcbiAgICAgICAgICB2LmtlZXAgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2V0QWxsUGFyZW50c09rKHYpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gdGhpcy5mbGF0dGVuUm93cy5maWx0ZXIoXG4gICAgICAgICh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLmtlZXA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9wZXJ0eVZhbHVlKG86IGFueSwgcHJvcHM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBwcm9wID0gcHJvcHMuc2hpZnQoKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG8yID0gb1twcm9wXTtcbiAgICBpZiAobzIgJiYgcHJvcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKG8yLCBwcm9wcyk7XG4gICAgfVxuICAgIHJldHVybiBvMjtcbiAgfVxuXG4gIHByaXZhdGUgdHJlZVNvcnQocm93czogVHJlZVJvdzxTPltdLCBwcm9wZXJ0eTogc3RyaW5nLCBmOiBudW1iZXIpIHtcbiAgICByb3dzLnNvcnQodGhpcy5nZW5lcmljVHJlZVRhYmxlU29ydENvbXBhcmF0b3IocHJvcGVydHksIGYpKTtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBpZiAocm93LmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMudHJlZVNvcnQocm93LmNoaWxkcmVuLCBwcm9wZXJ0eSwgZik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC5pZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2VsbFJlbmRlcmVySWZ9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlci5pZlwiO1xuaW1wb3J0IHtDaGVja2VkVHlwZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jaGVja2VkLXR5cGVcIjtcbmltcG9ydCB7Q2hlY2tib3hNb2RlbElmfSBmcm9tIFwiLi4vLi4vLi4vY2hlY2tib3gvY2hlY2tib3gtbW9kZWwuaWZcIjtcbmltcG9ydCB7RmlsdGVyRnVuY3Rpb259IGZyb20gXCIuLi8uLi9jb21tb24vZmlsdGVyLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRJdGVtfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NvcnQtaXRlbVwiO1xuaW1wb3J0IHtUYWJsZU1vZGVsSWZ9IGZyb20gXCIuLi90YWJsZS1tb2RlbC5pZlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZWFNb2RlbElmIHtcblxuICBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZDtcblxuICByb3dTZWxlY3Rpb25Nb2RlbDogQ2hlY2tib3hNb2RlbElmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgc2V0VmFsdWUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZywgdGFibGVNb2RlbDogVGFibGVNb2RlbElmKTogYm9vbGVhbjtcblxuICBpbml0KCk6IHZvaWQ7XG5cbiAgZ2V0Um93Q291bnQoKTogbnVtYmVyO1xuXG4gIGdldFZhbHVlQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRDb2xzcGFuQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRNYXhDb2xzcGFuKCk6IG51bWJlcjtcblxuICBnZXRSb3dzcGFuQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRNYXhSb3dzcGFuKCk6IG51bWJlcjtcblxuICBnZXRDdXN0b21DbGFzc2VzQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IHN0cmluZ1tdO1xuXG4gIGdldFZhbHVlQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRUb29sdGlwQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueVxuXG4gIGdldENlbGxSZW5kZXJlcihyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogQ2VsbFJlbmRlcmVySWYgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0Um93SGVpZ2h0KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgZ2V0Um93QnlJbmRleChyb3dJbmRleDogbnVtYmVyKTogYW55O1xuXG4gIGdldFlQb3NCeVJvd0luZGV4KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgaXNFZGl0YWJsZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbjtcblxuICBpc1NlbGVjdGFibGUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG5cbiAgaXNSb3dDaGVja2FibGUocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG5cbiAgaXNSb3dDaGVja2VkKHJvd0luZGV4OiBudW1iZXIpOiBDaGVja2VkVHlwZSB8IHVuZGVmaW5lZDtcblxuICBzZXRSb3dDaGVja2VkKHJvd0luZGV4OiBudW1iZXIsIGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIGlzRmlsdGVyYWJsZSgpOiBib29sZWFuO1xuXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPFQ+KTogdm9pZDtcblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbjtcbn1cblxuIl19
@@ -0,0 +1,48 @@
1
+ import { CellRange } from "../../common/cell-range";
2
+ export class ColAndRowspanModel {
3
+ constructor(tableModel, areaModel) {
4
+ this.tableModel = tableModel;
5
+ this.areaModel = areaModel;
6
+ this.colAndRowspanRanges = undefined;
7
+ }
8
+ init() {
9
+ if (this.areaModel.getMaxColspan() < 2 && this.areaModel.getMaxRowspan() < 2) {
10
+ return; // sip
11
+ }
12
+ this.colAndRowspanRanges = [];
13
+ const rowCount = this.areaModel.getRowCount();
14
+ const colCount = this.tableModel.getColumnCount();
15
+ for (let r = 0; r < rowCount; r++) {
16
+ for (let c = 0; c < colCount; c++) {
17
+ let cs = this.areaModel.getColspanAt(r, c);
18
+ let rs = this.areaModel.getRowspanAt(r, c);
19
+ if (cs > 1 || rs > 1) {
20
+ if (cs === 0) {
21
+ cs = 1;
22
+ }
23
+ if (rs === 0) {
24
+ rs = 1;
25
+ }
26
+ this.colAndRowspanRanges.push(new CellRange(r, c, r + rs - 1, c + cs - 1));
27
+ }
28
+ }
29
+ }
30
+ }
31
+ getRanges() {
32
+ if (this.colAndRowspanRanges) {
33
+ return this.colAndRowspanRanges;
34
+ }
35
+ return [];
36
+ }
37
+ isInRange(rowIndex, columnIndex) {
38
+ if (this.colAndRowspanRanges) {
39
+ for (const range of this.colAndRowspanRanges) {
40
+ if (range.isInRange(rowIndex, columnIndex)) {
41
+ return true;
42
+ }
43
+ }
44
+ }
45
+ return false;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLWFuZC1yb3dzcGFuLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvY29sLWFuZC1yb3dzcGFuLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQ1ksVUFBd0IsRUFDeEIsU0FBc0I7UUFEdEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBSnhCLHdCQUFtQixHQUE0QixTQUFTLENBQUM7SUFNbkUsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzVFLE9BQU8sQ0FBQyxNQUFNO1NBQ2Y7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNaLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ1I7b0JBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNaLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ1I7b0JBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDM0IsSUFBSSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUM1QyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDakM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUM3QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDNUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRTtvQkFDMUMsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NlbGxSYW5nZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jZWxsLXJhbmdlXCI7XG5pbXBvcnQge0FyZWFNb2RlbElmfSBmcm9tIFwiLi9hcmVhLW1vZGVsLmlmXCI7XG5pbXBvcnQge1RhYmxlTW9kZWxJZn0gZnJvbSBcIi4uL3RhYmxlLW1vZGVsLmlmXCI7XG5cbmV4cG9ydCBjbGFzcyBDb2xBbmRSb3dzcGFuTW9kZWwge1xuXG4gIHByb3RlY3RlZCBjb2xBbmRSb3dzcGFuUmFuZ2VzOiBDZWxsUmFuZ2VbXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdGFibGVNb2RlbDogVGFibGVNb2RlbElmLFxuICAgIHByb3RlY3RlZCBhcmVhTW9kZWw6IEFyZWFNb2RlbElmXG4gICkge1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICBpZiAodGhpcy5hcmVhTW9kZWwuZ2V0TWF4Q29sc3BhbigpIDwgMiAmJiB0aGlzLmFyZWFNb2RlbC5nZXRNYXhSb3dzcGFuKCkgPCAyKSB7XG4gICAgICByZXR1cm47IC8vIHNpcFxuICAgIH1cbiAgICB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMgPSBbXTtcbiAgICBjb25zdCByb3dDb3VudCA9IHRoaXMuYXJlYU1vZGVsLmdldFJvd0NvdW50KCk7XG4gICAgY29uc3QgY29sQ291bnQgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0Q29sdW1uQ291bnQoKTtcbiAgICBmb3IgKGxldCByID0gMDsgciA8IHJvd0NvdW50OyByKyspIHtcbiAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgY29sQ291bnQ7IGMrKykge1xuICAgICAgICBsZXQgY3MgPSB0aGlzLmFyZWFNb2RlbC5nZXRDb2xzcGFuQXQociwgYyk7XG4gICAgICAgIGxldCBycyA9IHRoaXMuYXJlYU1vZGVsLmdldFJvd3NwYW5BdChyLCBjKTtcbiAgICAgICAgaWYgKGNzID4gMSB8fCBycyA+IDEpIHtcbiAgICAgICAgICBpZiAoY3MgPT09IDApIHtcbiAgICAgICAgICAgIGNzID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJzID09PSAwKSB7XG4gICAgICAgICAgICBycyA9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29sQW5kUm93c3BhblJhbmdlcy5wdXNoKFxuICAgICAgICAgICAgbmV3IENlbGxSYW5nZShyLCBjLCByICsgcnMgLSAxLCBjICsgY3MgLSAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSYW5nZXMoKTogQ2VsbFJhbmdlW10ge1xuICAgIGlmICh0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlzSW5SYW5nZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29sQW5kUm93c3BhblJhbmdlcykge1xuICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMpIHtcbiAgICAgICAgaWYgKHJhbmdlLmlzSW5SYW5nZShyb3dJbmRleCwgY29sdW1uSW5kZXgpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5pZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2l6ZUlmfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NpemUuaWZcIjtcbmltcG9ydCB7Q2VsbFJlbmRlcmVySWZ9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlci5pZlwiO1xuaW1wb3J0IHtBcmVhT2JqZWN0TWFwVHlwZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9hcmVhLW1hcC50eXBlXCI7XG5pbXBvcnQge0Jvb2xlYW5GdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9ib29sZWFuLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRTdGF0ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zb3J0LXN0YXRlLnR5cGVcIjtcbmltcG9ydCB7R2V0RWRpdFJlbmRlcmVyfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvZWRpdC9lZGl0LWNlbGwtcmVuZGVyZXIudHlwZVwiO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVmSWYge1xuICBwcm9wZXJ0eTogc3RyaW5nO1xuICBoZWFkZXJMYWJlbDogc3RyaW5nO1xuICB3aWR0aDogU2l6ZUlmO1xuICBtaW5XaWR0aDogU2l6ZUlmO1xuICBtYXhXaWR0aDogU2l6ZUlmO1xuICByZW5kZXJlck1hcDogQXJlYU9iamVjdE1hcFR5cGU8Q2VsbFJlbmRlcmVySWY+O1xuICBjbGFzc2VzOiBBcmVhT2JqZWN0TWFwVHlwZTxzdHJpbmdbXT47XG4gIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICBzb3J0SWNvblZpc2libGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIHNvcnRDb21wYXJhdG9yPzogPFQ+KGE6IFQsIGI6IFQpID0+IG51bWJlcixcbiAgc29ydFN0YXRlPzogU29ydFN0YXRlLFxuICBzb3J0U3RhdGVzT3JkZXI/OiBTb3J0U3RhdGVbXSxcbiAgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIGdldEVkaXRSZW5kZXJlcj86IEdldEVkaXRSZW5kZXJlclxufVxuXG4iXX0=
@@ -0,0 +1,32 @@
1
+ import { Size } from "../../common/size";
2
+ import { AreaObjectMap } from "../../common/area-map";
3
+ import { FalseFn } from "../../common/boolean-function";
4
+ export class ColumnDef {
5
+ constructor(property, headerLabel, width = new Size(100, 'px'), classes = new AreaObjectMap(), rendererMap = new AreaObjectMap(), minWidth = new Size(100, 'px'), maxWidth = new Size(100, 'px'), sortable, sortComparator, sortState, sortStatesOrder, sortIconVisible, editable, getEditRenderer) {
6
+ this.property = property;
7
+ this.headerLabel = headerLabel;
8
+ this.width = width;
9
+ this.classes = classes;
10
+ this.rendererMap = rendererMap;
11
+ this.minWidth = minWidth;
12
+ this.maxWidth = maxWidth;
13
+ this.sortable = sortable;
14
+ this.sortComparator = sortComparator;
15
+ this.sortState = sortState;
16
+ this.sortStatesOrder = sortStatesOrder;
17
+ this.sortIconVisible = sortIconVisible;
18
+ this.editable = editable;
19
+ this.getEditRenderer = getEditRenderer;
20
+ }
21
+ static bodyRenderer(bodyRenderer) {
22
+ return new AreaObjectMap(undefined, bodyRenderer, undefined);
23
+ }
24
+ static create(param) {
25
+ const am = new AreaObjectMap(param.headerRenderer, param.bodyRenderer, param.footerRenderer);
26
+ const cm = new AreaObjectMap(param.headerClasses, param.bodyClasses, param.footerClasses);
27
+ const sortIconVisible = param.sortIconVisible ?? param.sortable ?? FalseFn;
28
+ const editable = param.editable ?? param.editable ?? FalseFn;
29
+ return new ColumnDef(param.property ?? '', param.headerLabel ?? '', param.width ?? new Size(100, 'px'), cm, am, param.minWidth ?? new Size(100, 'px'), param.maxWidth ?? new Size(100, 'px'), param.sortable, param.sortComparator, param.sortState, param.sortStatesOrder, sortIconVisible, editable, param.getEditRenderer);
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBS3ZDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQWtCLE9BQU8sRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBS3ZFLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQ1MsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsUUFBZ0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNuQyxVQUF1QyxJQUFJLGFBQWEsRUFBWSxFQUNwRSxjQUFpRCxJQUFJLGFBQWEsRUFBa0IsRUFDcEYsV0FBbUIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUN0QyxXQUFtQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ3RDLFFBQTBCLEVBQzFCLGNBQTBDLEVBQzFDLFNBQXFCLEVBQ3JCLGVBQTZCLEVBQzdCLGVBQWlDLEVBQ2pDLFFBQTBCLEVBQzFCLGVBQWlDO1FBYmpDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBNkQ7UUFDcEUsZ0JBQVcsR0FBWCxXQUFXLENBQXlFO1FBQ3BGLGFBQVEsR0FBUixRQUFRLENBQThCO1FBQ3RDLGFBQVEsR0FBUixRQUFRLENBQThCO1FBQ3RDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUE0QjtRQUMxQyxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7SUFFMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBNEI7UUFDOUMsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLENBQ1YsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBbUJiO1FBRUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLEtBQUssQ0FBQyxjQUFjLENBQ3JCLENBQUM7UUFFRixNQUFNLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FDMUIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFdBQVcsRUFDakIsS0FBSyxDQUFDLGFBQWEsQ0FDcEIsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUU3RCxPQUFPLElBQUksU0FBUyxDQUNsQixLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDcEIsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQ3ZCLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNsQyxFQUFFLEVBQ0YsRUFBRSxFQUNGLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNyQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFDckMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsY0FBYyxFQUNwQixLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxlQUFlLEVBQ3JCLGVBQWUsRUFDZixRQUFRLEVBQ1IsS0FBSyxDQUFDLGVBQWUsQ0FDdEIsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2l6ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zaXplXCI7XG5pbXBvcnQge1NpemVJZn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zaXplLmlmXCI7XG5pbXBvcnQge0NvbHVtbkRlZklmfSBmcm9tIFwiLi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlcklmfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvY2VsbC1yZW5kZXIuaWZcIjtcbmltcG9ydCB7QXJlYU9iamVjdE1hcFR5cGV9IGZyb20gXCIuLi8uLi9jb21tb24vYXJlYS1tYXAudHlwZVwiO1xuaW1wb3J0IHtBcmVhT2JqZWN0TWFwfSBmcm9tIFwiLi4vLi4vY29tbW9uL2FyZWEtbWFwXCI7XG5pbXBvcnQge0Jvb2xlYW5GdW5jdGlvbiwgRmFsc2VGbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9ib29sZWFuLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRTdGF0ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zb3J0LXN0YXRlLnR5cGVcIjtcbmltcG9ydCB7R2V0RWRpdFJlbmRlcmVyfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvZWRpdC9lZGl0LWNlbGwtcmVuZGVyZXIudHlwZVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5EZWY8VD4gaW1wbGVtZW50cyBDb2x1bW5EZWZJZiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHVibGljIGhlYWRlckxhYmVsOiBzdHJpbmcsXG4gICAgcHVibGljIHdpZHRoOiBTaXplSWYgPSBuZXcgU2l6ZSgxMDAsICdweCcpLFxuICAgIHB1YmxpYyBjbGFzc2VzOiBBcmVhT2JqZWN0TWFwVHlwZTxzdHJpbmdbXT4gPSBuZXcgQXJlYU9iamVjdE1hcDxzdHJpbmdbXT4oKSxcbiAgICBwdWJsaWMgcmVuZGVyZXJNYXA6IEFyZWFPYmplY3RNYXBUeXBlPENlbGxSZW5kZXJlcklmPiA9IG5ldyBBcmVhT2JqZWN0TWFwPENlbGxSZW5kZXJlcklmPigpLFxuICAgIHB1YmxpYyBtaW5XaWR0aDogU2l6ZUlmID0gbmV3IFNpemUoMTAwLCAncHgnKSxcbiAgICBwdWJsaWMgbWF4V2lkdGg6IFNpemVJZiA9IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgcHVibGljIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHB1YmxpYyBzb3J0Q29tcGFyYXRvcj86IDxUPihhOiBULCBiOiBUKSA9PiBudW1iZXIsXG4gICAgcHVibGljIHNvcnRTdGF0ZT86IFNvcnRTdGF0ZSxcbiAgICBwdWJsaWMgc29ydFN0YXRlc09yZGVyPzogU29ydFN0YXRlW10sXG4gICAgcHVibGljIHNvcnRJY29uVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgICBwdWJsaWMgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgcHVibGljIGdldEVkaXRSZW5kZXJlcj86IEdldEVkaXRSZW5kZXJlclxuICApIHtcbiAgfVxuXG4gIHN0YXRpYyBib2R5UmVuZGVyZXIoYm9keVJlbmRlcmVyOiBDZWxsUmVuZGVyZXJJZikge1xuICAgIHJldHVybiBuZXcgQXJlYU9iamVjdE1hcDxDZWxsUmVuZGVyZXJJZj4oXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBib2R5UmVuZGVyZXIsXG4gICAgICB1bmRlZmluZWRcbiAgICApXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlKHBhcmFtOiB7XG4gICAgcHJvcGVydHk/OiBzdHJpbmcsXG4gICAgaGVhZGVyTGFiZWw/OiBzdHJpbmcsXG4gICAgd2lkdGg/OiBTaXplSWYsXG4gICAgbWluV2lkdGg/OiBTaXplSWYsXG4gICAgbWF4V2lkdGg/OiBTaXplSWYsXG4gICAgaGVhZGVyUmVuZGVyZXI/OiBDZWxsUmVuZGVyZXJJZixcbiAgICBib2R5UmVuZGVyZXI/OiBDZWxsUmVuZGVyZXJJZixcbiAgICBmb290ZXJSZW5kZXJlcj86IENlbGxSZW5kZXJlcklmLFxuICAgIGhlYWRlckNsYXNzZXM/OiBzdHJpbmdbXVxuICAgIGJvZHlDbGFzc2VzPzogc3RyaW5nW11cbiAgICBmb290ZXJDbGFzc2VzPzogc3RyaW5nW10sXG4gICAgc29ydGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgc29ydEljb25WaXNpYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHNvcnRDb21wYXJhdG9yPzogPFQ+KGE6IFQsIGI6IFQpID0+IG51bWJlcixcbiAgICBzb3J0U3RhdGU/OiBTb3J0U3RhdGUsXG4gICAgc29ydFN0YXRlc09yZGVyPzogU29ydFN0YXRlW10sXG4gICAgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgZ2V0RWRpdFJlbmRlcmVyPzogR2V0RWRpdFJlbmRlcmVyXG4gIH0pOiBDb2x1bW5EZWZJZiB7XG5cbiAgICBjb25zdCBhbSA9IG5ldyBBcmVhT2JqZWN0TWFwPENlbGxSZW5kZXJlcklmPihcbiAgICAgIHBhcmFtLmhlYWRlclJlbmRlcmVyLFxuICAgICAgcGFyYW0uYm9keVJlbmRlcmVyLFxuICAgICAgcGFyYW0uZm9vdGVyUmVuZGVyZXJcbiAgICApO1xuXG4gICAgY29uc3QgY20gPSBuZXcgQXJlYU9iamVjdE1hcDxzdHJpbmdbXT4oXG4gICAgICBwYXJhbS5oZWFkZXJDbGFzc2VzLFxuICAgICAgcGFyYW0uYm9keUNsYXNzZXMsXG4gICAgICBwYXJhbS5mb290ZXJDbGFzc2VzXG4gICAgKTtcblxuICAgIGNvbnN0IHNvcnRJY29uVmlzaWJsZSA9IHBhcmFtLnNvcnRJY29uVmlzaWJsZSA/PyBwYXJhbS5zb3J0YWJsZSA/PyBGYWxzZUZuO1xuICAgIGNvbnN0IGVkaXRhYmxlID0gcGFyYW0uZWRpdGFibGUgPz8gcGFyYW0uZWRpdGFibGUgPz8gRmFsc2VGbjtcblxuICAgIHJldHVybiBuZXcgQ29sdW1uRGVmKFxuICAgICAgcGFyYW0ucHJvcGVydHkgPz8gJycsXG4gICAgICBwYXJhbS5oZWFkZXJMYWJlbCA/PyAnJyxcbiAgICAgIHBhcmFtLndpZHRoID8/IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgICBjbSxcbiAgICAgIGFtLFxuICAgICAgcGFyYW0ubWluV2lkdGggPz8gbmV3IFNpemUoMTAwLCAncHgnKSxcbiAgICAgIHBhcmFtLm1heFdpZHRoID8/IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgICBwYXJhbS5zb3J0YWJsZSxcbiAgICAgIHBhcmFtLnNvcnRDb21wYXJhdG9yLFxuICAgICAgcGFyYW0uc29ydFN0YXRlLFxuICAgICAgcGFyYW0uc29ydFN0YXRlc09yZGVyLFxuICAgICAgc29ydEljb25WaXNpYmxlLFxuICAgICAgZWRpdGFibGUsXG4gICAgICBwYXJhbS5nZXRFZGl0UmVuZGVyZXJcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ export class Padding {
2
+ constructor(top = 0, right = 0, bottom = 0, left = 0) {
3
+ this.top = top;
4
+ this.right = right;
5
+ this.bottom = bottom;
6
+ this.left = left;
7
+ }
8
+ }
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQUNsQixZQUNTLE1BQWMsQ0FBQyxFQUNmLFFBQWdCLENBQUMsRUFDakIsU0FBaUIsQ0FBQyxFQUNsQixPQUFlLENBQUM7UUFIaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBRXpCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQYWRkaW5nIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvcDogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgcmlnaHQ6IG51bWJlciA9IDAsXG4gICAgcHVibGljIGJvdHRvbTogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgbGVmdDogbnVtYmVyID0gMFxuICApIHtcbiAgfVxufVxuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLmlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhZGRpbmd9IGZyb20gXCIuL3BhZGRpbmdcIjtcbmltcG9ydCB7QXJlYUlkZW50fSBmcm9tIFwiLi9hcmVhLWlkZW50LnR5cGVcIjtcbmltcG9ydCB7Q29sdW1uRGVmSWZ9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0FyZWFNb2RlbElmfSBmcm9tIFwiLi9hcmVhbW9kZWwvYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHtGaWx0ZXJGdW5jdGlvbn0gZnJvbSBcIi4uL2NvbW1vbi9maWx0ZXItZnVuY3Rpb25cIjtcbmltcG9ydCB7U29ydEl0ZW19IGZyb20gXCIuLi9jb21tb24vc29ydC1pdGVtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVNb2RlbElmIHtcblxuICBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZDtcblxuICBpc1NvcnRhYmxlKGNvbElkeDogbnVtYmVyKTogYm9vbGVhbjtcblxuICBpbml0KCk6IHZvaWQ7XG5cbiAgZ2V0Q29sdW1uQ291bnQoKTogbnVtYmVyO1xuXG4gIGdldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgZ2V0WFBvc0J5Q29sdW1uSW5kZXgoY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRBcmVhTW9kZWwocm93QXJlYUlkZW50OiBBcmVhSWRlbnQpOiBBcmVhTW9kZWxJZjtcblxuICBnZXRCb2R5TW9kZWwoKTogQXJlYU1vZGVsSWY7XG5cbiAgZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKTogbnVtYmVyO1xuXG4gIGdldEZpeGVkUmlnaHRDb2x1bW5Db3VudCgpOiBudW1iZXI7XG5cbiAgaXNIZWFkZXJWaXNpYmUoKTogYm9vbGVhbjtcblxuICBpc0Zvb3RlclZpc2liZSgpOiBib29sZWFuO1xuXG4gIGlzUm93Q2hlY2tib3hWaXNpYmxlKCk6IGJvb2xlYW47XG5cbiAgZ2V0Um93SGVpZ2h0KHJvd0FyZWFJZGVudDogQXJlYUlkZW50LCByb3dJbmRleDogbnVtYmVyKTogbnVtYmVyO1xuXG4gIGdldENvbHVtbkRlZihpbmRleDogbnVtYmVyKTogQ29sdW1uRGVmSWYgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0Q29sdW1uRGVmcygpOiBDb2x1bW5EZWZJZltdIHwgdW5kZWZpbmVkO1xuXG4gIGdldENvbHVtblByb3BlcnR5KGNvbHVtbkluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgZ2V0Qm9keVJvd0J5SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyO1xuXG4gIHNldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIsIHdpZHRoOiBudW1iZXIpOiB2b2lkO1xuXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByZWNhbGNTaXplKGNsaWVudFdpZHRoOiBudW1iZXIpOiB2b2lkO1xuXG4gIGdldFBhZGRpbmcoKTogUGFkZGluZztcblxuICBnZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpOiBudW1iZXI7XG5cbiAgZ2V0Q29udGVudFdpZHRoSW5QaXhlbCgpOiBudW1iZXI7XG5cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPFQ+KTogdm9pZDtcblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbjtcbn1cbiJdfQ==