@guiexpert/table 1.0.2 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/esm2022/guiexpert-table.mjs +5 -0
  2. package/esm2022/index.mjs +140 -0
  3. package/esm2022/lib/table/action/action-id.type.mjs +20 -0
  4. package/esm2022/lib/table/action/on-action-triggered.if.mjs +2 -0
  5. package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +21 -0
  6. package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
  7. package/esm2022/lib/table/action/shortcut.service.mjs +114 -0
  8. package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +19 -0
  9. package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +2 -0
  10. package/esm2022/lib/table/checkbox/checkbox-model.mjs +50 -0
  11. package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +107 -0
  12. package/esm2022/lib/table/color/color-rgb.if.mjs +2 -0
  13. package/esm2022/lib/table/color/color-rgb.mjs +11 -0
  14. package/esm2022/lib/table/color/ge-css-color-util.mjs +26 -0
  15. package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +2 -0
  16. package/esm2022/lib/table/color/three-color-gradient-arg.mjs +17 -0
  17. package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +2 -0
  18. package/esm2022/lib/table/color/two-color-gradient-arg.mjs +13 -0
  19. package/esm2022/lib/table/css-vars.mjs +238 -0
  20. package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +2 -0
  21. package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +12 -0
  22. package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +2 -0
  23. package/esm2022/lib/table/data/chunk/request-chunk.mjs +22 -0
  24. package/esm2022/lib/table/data/common/aligns.mjs +19 -0
  25. package/esm2022/lib/table/data/common/area-map-factory.mjs +7 -0
  26. package/esm2022/lib/table/data/common/area-map.mjs +11 -0
  27. package/esm2022/lib/table/data/common/area-map.type.mjs +2 -0
  28. package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
  29. package/esm2022/lib/table/data/common/args-render-cell-div.mjs +2 -0
  30. package/esm2022/lib/table/data/common/boolean-function.mjs +3 -0
  31. package/esm2022/lib/table/data/common/cell-range.mjs +36 -0
  32. package/esm2022/lib/table/data/common/checkbox-column-def.mjs +13 -0
  33. package/esm2022/lib/table/data/common/checked-type.mjs +2 -0
  34. package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +9 -0
  35. package/esm2022/lib/table/data/common/event/ge-key-event.mjs +9 -0
  36. package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +11 -0
  37. package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +30 -0
  38. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +2 -0
  39. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +13 -0
  40. package/esm2022/lib/table/data/common/filter-function.mjs +2 -0
  41. package/esm2022/lib/table/data/common/get-t.mjs +2 -0
  42. package/esm2022/lib/table/data/common/index-and-px.mjs +9 -0
  43. package/esm2022/lib/table/data/common/size.if.mjs +2 -0
  44. package/esm2022/lib/table/data/common/size.mjs +9 -0
  45. package/esm2022/lib/table/data/common/sizes.mjs +33 -0
  46. package/esm2022/lib/table/data/common/sort-item.mjs +9 -0
  47. package/esm2022/lib/table/data/common/sort-state.type.mjs +2 -0
  48. package/esm2022/lib/table/data/common/tree-arrow.type.mjs +2 -0
  49. package/esm2022/lib/table/data/common/tree-row-if.mjs +2 -0
  50. package/esm2022/lib/table/data/common/tree-row.mjs +19 -0
  51. package/esm2022/lib/table/data/common/value-label.if.mjs +2 -0
  52. package/esm2022/lib/table/data/common/value-label.mjs +9 -0
  53. package/esm2022/lib/table/data/div-scope.type.mjs +2 -0
  54. package/esm2022/lib/table/data/event/mouse-target-data.mjs +36 -0
  55. package/esm2022/lib/table/data/geo-data.mjs +15 -0
  56. package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +2 -0
  57. package/esm2022/lib/table/data/options/auto-restore-options.mjs +40 -0
  58. package/esm2022/lib/table/data/options/default-row-heights.if.mjs +2 -0
  59. package/esm2022/lib/table/data/options/default-row-heights.mjs +11 -0
  60. package/esm2022/lib/table/data/options/icon.if.mjs +2 -0
  61. package/esm2022/lib/table/data/options/icon.mjs +11 -0
  62. package/esm2022/lib/table/data/options/sorted-options.if.mjs +2 -0
  63. package/esm2022/lib/table/data/options/sorted-options.mjs +12 -0
  64. package/esm2022/lib/table/data/options/table-options.if.mjs +2 -0
  65. package/esm2022/lib/table/data/options/table-options.mjs +44 -0
  66. package/esm2022/lib/table/data/options/tree-options.if.mjs +2 -0
  67. package/esm2022/lib/table/data/options/tree-options.mjs +14 -0
  68. package/esm2022/lib/table/data/side-ident.type.mjs +2 -0
  69. package/esm2022/lib/table/data/table-model-and-options.if.mjs +2 -0
  70. package/esm2022/lib/table/data/table-model-and-options.mjs +9 -0
  71. package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +14 -0
  72. package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +137 -0
  73. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +47 -0
  74. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +163 -0
  75. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +84 -0
  76. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +15 -0
  77. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +88 -0
  78. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +181 -0
  79. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
  80. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +76 -0
  81. package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +51 -0
  82. package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +2 -0
  83. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +133 -0
  84. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +2 -0
  85. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +18 -0
  86. package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +110 -0
  87. package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
  88. package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +52 -0
  89. package/esm2022/lib/table/data/tablemodel/padding.mjs +13 -0
  90. package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +2 -0
  91. package/esm2022/lib/table/data/tablemodel/table-model.mjs +308 -0
  92. package/esm2022/lib/table/ele-scope.mjs +199 -0
  93. package/esm2022/lib/table/event-adapter.mjs +17 -0
  94. package/esm2022/lib/table/event-listener.if.mjs +2 -0
  95. package/esm2022/lib/table/factory/table-factory.mjs +186 -0
  96. package/esm2022/lib/table/factory/tree-factory.mjs +32 -0
  97. package/esm2022/lib/table/focus/focus-model.if.mjs +2 -0
  98. package/esm2022/lib/table/focus/focus-model.mjs +33 -0
  99. package/esm2022/lib/table/focus/focus.type.mjs +2 -0
  100. package/esm2022/lib/table/input-handler.mjs +25 -0
  101. package/esm2022/lib/table/mouse-handler.mjs +196 -0
  102. package/esm2022/lib/table/render-scope.mjs +719 -0
  103. package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +8 -0
  104. package/esm2022/lib/table/renderer/cell-render.if.mjs +2 -0
  105. package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +47 -0
  106. package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
  107. package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +24 -0
  108. package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
  109. package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
  110. package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +12 -0
  111. package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
  112. package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +4 -0
  113. package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +2 -0
  114. package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
  115. package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +36 -0
  116. package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
  117. package/esm2022/lib/table/renderer/number-cell-renderer.mjs +21 -0
  118. package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +44 -0
  119. package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
  120. package/esm2022/lib/table/renderer/renderer.mjs +7 -0
  121. package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +27 -0
  122. package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +15 -0
  123. package/esm2022/lib/table/selection/selection-model.if.mjs +2 -0
  124. package/esm2022/lib/table/selection/selection-model.mjs +99 -0
  125. package/esm2022/lib/table/selection/selection-service.mjs +101 -0
  126. package/esm2022/lib/table/selection/selection.type.mjs +2 -0
  127. package/esm2022/lib/table/service/abstract-store-state.service.mjs +50 -0
  128. package/esm2022/lib/table/service/convenience-dom.service.mjs +405 -0
  129. package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +13 -0
  130. package/esm2022/lib/table/service/data/html-style.type.mjs +2 -0
  131. package/esm2022/lib/table/service/dom-service.if.mjs +2 -0
  132. package/esm2022/lib/table/service/ge-filter.service.mjs +98 -0
  133. package/esm2022/lib/table/service/simple-dom-service.mjs +34 -0
  134. package/esm2022/lib/table/service/sorter.service.mjs +27 -0
  135. package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
  136. package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
  137. package/esm2022/lib/table/service/store-state-sorting.service.mjs +29 -0
  138. package/esm2022/lib/table/service/tree-row.service.mjs +23 -0
  139. package/esm2022/lib/table/table-api.mjs +42 -0
  140. package/esm2022/lib/table/table-scope.mjs +364 -0
  141. package/{src/index.ts → index.d.ts} +4 -24
  142. package/lib/table/action/action-id.type.d.ts +2 -0
  143. package/{src/lib/table/action/on-action-triggered.if.ts → lib/table/action/on-action-triggered.if.d.ts} +1 -4
  144. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
  145. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
  146. package/lib/table/action/shortcut.service.d.ts +18 -0
  147. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
  148. package/lib/table/checkbox/checkbox-model.d.ts +12 -0
  149. package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
  150. package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
  151. package/lib/table/color/color-rgb.d.ts +7 -0
  152. package/lib/table/color/color-rgb.if.d.ts +5 -0
  153. package/lib/table/color/ge-css-color-util.d.ts +7 -0
  154. package/lib/table/color/three-color-gradient-arg.d.ts +11 -0
  155. package/lib/table/color/three-color-gradient-arg.if.d.ts +9 -0
  156. package/lib/table/color/two-color-gradient-arg.d.ts +9 -0
  157. package/lib/table/color/two-color-gradient-arg.if.d.ts +7 -0
  158. package/lib/table/css-vars.d.ts +9 -0
  159. package/lib/table/data/chunk/chunk.data-event.d.ts +9 -0
  160. package/lib/table/data/chunk/chunk.data-event.if.d.ts +4 -0
  161. package/lib/table/data/chunk/request-chunk.d.ts +14 -0
  162. package/lib/table/data/chunk/request-chunk.if.d.ts +9 -0
  163. package/lib/table/data/common/aligns.d.ts +24 -0
  164. package/lib/table/data/common/area-map-factory.d.ts +5 -0
  165. package/lib/table/data/common/area-map.d.ts +7 -0
  166. package/lib/table/data/common/area-map.type.d.ts +5 -0
  167. package/{src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts → lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts} +10 -11
  168. package/lib/table/data/common/args-render-cell-div.d.ts +17 -0
  169. package/lib/table/data/common/boolean-function.d.ts +3 -0
  170. package/lib/table/data/common/cell-range.d.ts +19 -0
  171. package/lib/table/data/common/checkbox-column-def.d.ts +13 -0
  172. package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
  173. package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
  174. package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
  175. package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
  176. package/lib/table/data/common/event/input/table-cell-update-event.d.ts +9 -0
  177. package/{src/lib/table/data/common/event/input/table-cell-update-event.if.ts → lib/table/data/common/event/input/table-cell-update-event.if.d.ts} +4 -7
  178. package/lib/table/data/common/index-and-px.d.ts +5 -0
  179. package/lib/table/data/common/size.d.ts +6 -0
  180. package/lib/table/data/common/size.if.d.ts +4 -0
  181. package/lib/table/data/common/sizes.d.ts +32 -0
  182. package/lib/table/data/common/sort-item.d.ts +6 -0
  183. package/lib/table/data/common/tree-row-if.d.ts +10 -0
  184. package/lib/table/data/common/tree-row.d.ts +11 -0
  185. package/lib/table/data/common/value-label.d.ts +6 -0
  186. package/lib/table/data/common/value-label.if.d.ts +4 -0
  187. package/lib/table/data/div-scope.type.d.ts +7 -0
  188. package/lib/table/data/event/mouse-target-data.d.ts +15 -0
  189. package/lib/table/data/geo-data.d.ts +8 -0
  190. package/lib/table/data/options/auto-restore-options.d.ts +11 -0
  191. package/lib/table/data/options/auto-restore-options.if.d.ts +16 -0
  192. package/lib/table/data/options/default-row-heights.d.ts +7 -0
  193. package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
  194. package/lib/table/data/options/icon.d.ts +7 -0
  195. package/lib/table/data/options/icon.if.d.ts +5 -0
  196. package/lib/table/data/options/sorted-options.d.ts +8 -0
  197. package/{src/lib/table/data/options/sorted-options.if.ts → lib/table/data/options/sorted-options.if.d.ts} +3 -6
  198. package/lib/table/data/options/table-options.d.ts +41 -0
  199. package/lib/table/data/options/table-options.if.d.ts +42 -0
  200. package/lib/table/data/options/tree-options.d.ts +9 -0
  201. package/lib/table/data/options/tree-options.if.d.ts +7 -0
  202. package/lib/table/data/table-model-and-options.d.ts +8 -0
  203. package/{src/lib/table/data/table-model-and-options.if.ts → lib/table/data/table-model-and-options.if.d.ts} +2 -4
  204. package/{src/lib/table/data/tablemodel/area-ident.type.ts → lib/table/data/tablemodel/area-ident.type.d.ts} +1 -10
  205. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +47 -0
  206. package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +19 -0
  207. package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +51 -0
  208. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +41 -0
  209. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
  210. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +28 -0
  211. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
  212. package/lib/table/data/tablemodel/areamodel/area-model.d.ts +37 -0
  213. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +158 -0
  214. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
  215. package/{src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts → lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts} +1 -1
  216. package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +21 -0
  217. package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +11 -0
  218. package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +9 -0
  219. package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +10 -0
  220. package/lib/table/data/tablemodel/column/column-def.d.ts +52 -0
  221. package/lib/table/data/tablemodel/column/column-def.if.d.ts +25 -0
  222. package/lib/table/data/tablemodel/padding.d.ts +7 -0
  223. package/lib/table/data/tablemodel/table-model.d.ts +88 -0
  224. package/lib/table/data/tablemodel/table-model.if.d.ts +56 -0
  225. package/lib/table/ele-scope.d.ts +37 -0
  226. package/lib/table/event-adapter.d.ts +12 -0
  227. package/lib/table/event-listener.if.d.ts +11 -0
  228. package/lib/table/factory/table-factory.d.ts +65 -0
  229. package/lib/table/factory/tree-factory.d.ts +6 -0
  230. package/lib/table/focus/focus-model.d.ts +15 -0
  231. package/lib/table/focus/focus-model.if.d.ts +8 -0
  232. package/{src/lib/table/focus/focus.type.ts → lib/table/focus/focus.type.d.ts} +0 -3
  233. package/lib/table/input-handler.d.ts +6 -0
  234. package/lib/table/mouse-handler.d.ts +25 -0
  235. package/lib/table/render-scope.d.ts +86 -0
  236. package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +9 -0
  237. package/{src/lib/table/renderer/cell-render.if.ts → lib/table/renderer/cell-render.if.d.ts} +1 -10
  238. package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +15 -0
  239. package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
  240. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
  241. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
  242. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
  243. package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +8 -0
  244. package/{src/lib/table/renderer/edit/edit-cell-renderer.type.ts → lib/table/renderer/edit/edit-cell-renderer.type.d.ts} +0 -1
  245. package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -0
  246. package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +3 -0
  247. package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
  248. package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
  249. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
  250. package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
  251. package/lib/table/renderer/progress-bar-cell-renderer.d.ts +15 -0
  252. package/lib/table/renderer/renderer.d.ts +5 -0
  253. package/lib/table/renderer/star-rating-cell-renderer.d.ts +13 -0
  254. package/lib/table/renderer/true-false-cell-renderer.d.ts +8 -0
  255. package/lib/table/selection/selection-model.d.ts +21 -0
  256. package/lib/table/selection/selection-model.if.d.ts +11 -0
  257. package/lib/table/selection/selection-service.d.ts +17 -0
  258. package/{src/lib/table/selection/selection.type.ts → lib/table/selection/selection.type.d.ts} +0 -3
  259. package/lib/table/service/abstract-store-state.service.d.ts +10 -0
  260. package/lib/table/service/convenience-dom.service.d.ts +46 -0
  261. package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
  262. package/lib/table/service/data/html-style.type.d.ts +3 -0
  263. package/lib/table/service/dom-service.if.d.ts +9 -0
  264. package/lib/table/service/ge-filter.service.d.ts +5 -0
  265. package/lib/table/service/simple-dom-service.d.ts +10 -0
  266. package/lib/table/service/sorter.service.d.ts +3 -0
  267. package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
  268. package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
  269. package/lib/table/service/store-state-sorting.service.d.ts +11 -0
  270. package/lib/table/service/tree-row.service.d.ts +5 -0
  271. package/lib/table/table-api.d.ts +18 -0
  272. package/lib/table/table-scope.d.ts +56 -0
  273. package/package.json +17 -10
  274. package/.eslintrc.json +0 -42
  275. package/LICENSE +0 -35
  276. package/README.md +0 -102
  277. package/jest.config.ts +0 -18
  278. package/ng-package.json +0 -7
  279. package/project.json +0 -47
  280. package/src/lib/table/action/action-id.type.ts +0 -24
  281. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +0 -29
  282. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +0 -3
  283. package/src/lib/table/action/shortcut.service.ts +0 -134
  284. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +0 -27
  285. package/src/lib/table/checkbox/checkbox-model.if.ts +0 -16
  286. package/src/lib/table/checkbox/checkbox-model.ts +0 -62
  287. package/src/lib/table/checkbox/tree-checkbox-model.ts +0 -123
  288. package/src/lib/table/color/color-rgb.if.ts +0 -7
  289. package/src/lib/table/color/color-rgb.ts +0 -10
  290. package/src/lib/table/color/ge-css-color-util.ts +0 -43
  291. package/src/lib/table/color/three-color-gradient-arg.if.ts +0 -10
  292. package/src/lib/table/color/three-color-gradient-arg.ts +0 -14
  293. package/src/lib/table/color/two-color-gradient-arg.if.ts +0 -8
  294. package/src/lib/table/color/two-color-gradient-arg.ts +0 -12
  295. package/src/lib/table/css-vars.ts +0 -243
  296. package/src/lib/table/data/common/aligns.ts +0 -19
  297. package/src/lib/table/data/common/area-map-factory.ts +0 -14
  298. package/src/lib/table/data/common/area-map.ts +0 -11
  299. package/src/lib/table/data/common/area-map.type.ts +0 -5
  300. package/src/lib/table/data/common/args-render-cell-div.ts +0 -18
  301. package/src/lib/table/data/common/boolean-function.ts +0 -4
  302. package/src/lib/table/data/common/cell-range.ts +0 -57
  303. package/src/lib/table/data/common/checkbox-column-def.ts +0 -25
  304. package/src/lib/table/data/common/event/ge-cell-indices.ts +0 -9
  305. package/src/lib/table/data/common/event/ge-key-event.ts +0 -10
  306. package/src/lib/table/data/common/event/ge-model-change-event.ts +0 -13
  307. package/src/lib/table/data/common/event/ge-mouse-event.ts +0 -38
  308. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +0 -14
  309. package/src/lib/table/data/common/index-and-px.ts +0 -9
  310. package/src/lib/table/data/common/size.if.ts +0 -4
  311. package/src/lib/table/data/common/size.ts +0 -9
  312. package/src/lib/table/data/common/sizes.ts +0 -35
  313. package/src/lib/table/data/common/sort-item.ts +0 -11
  314. package/src/lib/table/data/common/tree-row-if.ts +0 -11
  315. package/src/lib/table/data/common/tree-row.ts +0 -16
  316. package/src/lib/table/data/common/value-label.if.ts +0 -6
  317. package/src/lib/table/data/common/value-label.ts +0 -13
  318. package/src/lib/table/data/div-scope.type.ts +0 -5
  319. package/src/lib/table/data/event/mouse-target-data.ts +0 -45
  320. package/src/lib/table/data/geo-data.ts +0 -13
  321. package/src/lib/table/data/options/auto-restore-options.if.ts +0 -21
  322. package/src/lib/table/data/options/auto-restore-options.ts +0 -50
  323. package/src/lib/table/data/options/default-row-heights.if.ts +0 -5
  324. package/src/lib/table/data/options/default-row-heights.ts +0 -10
  325. package/src/lib/table/data/options/icon.if.ts +0 -7
  326. package/src/lib/table/data/options/icon.ts +0 -10
  327. package/src/lib/table/data/options/sorted-options.ts +0 -15
  328. package/src/lib/table/data/options/table-options.if.ts +0 -54
  329. package/src/lib/table/data/options/table-options.ts +0 -66
  330. package/src/lib/table/data/options/tree-options.if.ts +0 -10
  331. package/src/lib/table/data/options/tree-options.ts +0 -32
  332. package/src/lib/table/data/table-model-and-options.ts +0 -13
  333. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +0 -183
  334. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +0 -59
  335. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +0 -210
  336. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +0 -120
  337. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +0 -23
  338. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +0 -105
  339. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +0 -215
  340. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +0 -186
  341. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +0 -110
  342. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +0 -61
  343. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +0 -167
  344. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +0 -12
  345. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +0 -18
  346. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +0 -148
  347. package/src/lib/table/data/tablemodel/column/column-def.if.ts +0 -28
  348. package/src/lib/table/data/tablemodel/column/column-def.ts +0 -104
  349. package/src/lib/table/data/tablemodel/padding.ts +0 -9
  350. package/src/lib/table/data/tablemodel/table-model.if.ts +0 -90
  351. package/src/lib/table/data/tablemodel/table-model.ts +0 -352
  352. package/src/lib/table/ele-scope.ts +0 -283
  353. package/src/lib/table/event-adapter.ts +0 -28
  354. package/src/lib/table/event-listener.if.ts +0 -19
  355. package/src/lib/table/factory/table-factory.ts +0 -378
  356. package/src/lib/table/factory/tree-factory.ts +0 -51
  357. package/src/lib/table/focus/focus-model.if.ts +0 -14
  358. package/src/lib/table/focus/focus-model.ts +0 -48
  359. package/src/lib/table/input-handler.ts +0 -34
  360. package/src/lib/table/mouse-handler.ts +0 -236
  361. package/src/lib/table/render-scope.ts +0 -936
  362. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +0 -27
  363. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +0 -63
  364. package/src/lib/table/renderer/checkbox-cell-renderer.ts +0 -39
  365. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +0 -39
  366. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +0 -25
  367. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +0 -24
  368. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +0 -28
  369. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +0 -6
  370. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +0 -7
  371. package/src/lib/table/renderer/edit/input-cell-renderer.ts +0 -41
  372. package/src/lib/table/renderer/edit/select-cell-renderer.ts +0 -60
  373. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +0 -26
  374. package/src/lib/table/renderer/number-cell-renderer.ts +0 -38
  375. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +0 -60
  376. package/src/lib/table/renderer/renderer.ts +0 -11
  377. package/src/lib/table/renderer/star-rating-cell-renderer.ts +0 -45
  378. package/src/lib/table/renderer/true-false-cell-renderer.ts +0 -28
  379. package/src/lib/table/selection/selection-model.if.ts +0 -20
  380. package/src/lib/table/selection/selection-model.ts +0 -109
  381. package/src/lib/table/selection/selection-service.ts +0 -120
  382. package/src/lib/table/service/abstract-store-state.service.ts +0 -105
  383. package/src/lib/table/service/convenience-dom.service.ts +0 -548
  384. package/src/lib/table/service/data/collapsed-expanded.data.ts +0 -11
  385. package/src/lib/table/service/data/html-style.type.ts +0 -1
  386. package/src/lib/table/service/dom-service.if.ts +0 -16
  387. package/src/lib/table/service/ge-filter.service.ts +0 -123
  388. package/src/lib/table/service/simple-dom-service.ts +0 -46
  389. package/src/lib/table/service/sorter.service.ts +0 -30
  390. package/src/lib/table/service/store-state-collapsed-expand.service.ts +0 -76
  391. package/src/lib/table/service/store-state-scroll-pos.service.ts +0 -40
  392. package/src/lib/table/service/store-state-sorting.service.ts +0 -41
  393. package/src/lib/table/service/tree-row.service.ts +0 -31
  394. package/src/lib/table/table-api.ts +0 -61
  395. package/src/lib/table/table-scope.ts +0 -433
  396. package/src/test-setup.ts +0 -1
  397. package/tsconfig.json +0 -22
  398. package/tsconfig.lib.json +0 -19
  399. package/tsconfig.lib.prod.json +0 -7
  400. package/tsconfig.spec.json +0 -20
  401. /package/{src/lib/table/data/common/checked-type.ts → lib/table/data/common/checked-type.d.ts} +0 -0
  402. /package/{src/lib/table/data/common/filter-function.ts → lib/table/data/common/filter-function.d.ts} +0 -0
  403. /package/{src/lib/table/data/common/get-t.ts → lib/table/data/common/get-t.d.ts} +0 -0
  404. /package/{src/lib/table/data/common/sort-state.type.ts → lib/table/data/common/sort-state.type.d.ts} +0 -0
  405. /package/{src/lib/table/data/common/tree-arrow.type.ts → lib/table/data/common/tree-arrow.type.d.ts} +0 -0
  406. /package/{src/lib/table/data/side-ident.type.ts → lib/table/data/side-ident.type.d.ts} +0 -0
  407. /package/{src/lib/table/renderer/renderer-cleanup-fn.type.ts → lib/table/renderer/renderer-cleanup-fn.type.d.ts} +0 -0
@@ -0,0 +1,199 @@
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=
@@ -0,0 +1,17 @@
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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtbGlzdGVuZXIuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZXZlbnQtbGlzdGVuZXIuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdlTW91c2VFdmVudCB9IGZyb20gXCIuL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBHZU1vZGVsQ2hhbmdlRXZlbnQgfSBmcm9tIFwiLi9kYXRhL2NvbW1vbi9ldmVudC9nZS1tb2RlbC1jaGFuZ2UtZXZlbnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFdmVudExpc3RlbmVySWYge1xuXG4gIG9uQ29udGV4dG1lbnUoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VNb3ZlZChldnQ6IEdlTW91c2VFdmVudCk6IHZvaWQ7XG5cbiAgb25Nb3VzZURyYWdnaW5nRW5kKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbk1vdXNlRHJhZ2dpbmcoZXZ0OiBHZU1vdXNlRXZlbnQpOiB2b2lkO1xuXG4gIG9uTW91c2VDbGlja2VkKGV2dDogR2VNb3VzZUV2ZW50KTogdm9pZDtcblxuICBvbkNoZWNrYm94Q2hhbmdlZChldnQ6IGFueVtdKTogdm9pZDtcblxuICBvbk1vZGVsQ2hhbmdlZChldnQ6IEdlTW9kZWxDaGFuZ2VFdmVudCk6IHZvaWQ7XG59XG4iXX0=
@@ -0,0 +1,186 @@
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
@@ -0,0 +1,32 @@
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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZm9jdXMvZm9jdXMtbW9kZWwuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgRm9jdXNNb2RlbElmIHtcblxuICBjbGVhcigpOiB2b2lkO1xuXG4gIHNldEZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiB2b2lkO1xuXG4gIGhhc0ZvY3VzKHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBib29sZWFuO1xuXG4gIGdldEZvY3VzKCk6IFtudW1iZXIsIG51bWJlcl07XG5cbiAgaGFzQ2hhbmdlZCgpOiBib29sZWFuO1xuXG4gIGNsZWFyQ2hhbmdlZCgpOiB2b2lkO1xufVxuIl19
@@ -0,0 +1,33 @@
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
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9mb2N1cy9mb2N1cy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGb2N1c1R5cGUgPSBcIm5vbmVcIiB8IFwiY2VsbFwiIHwgXCJyb3dcIjtcblxuXG5cbiJdfQ==