@guiexpert/table 0.0.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (350) hide show
  1. package/.eslintrc.json +42 -0
  2. package/LICENSE +35 -0
  3. package/README.md +102 -0
  4. package/jest.config.ts +18 -0
  5. package/ng-package.json +7 -0
  6. package/package.json +9 -20
  7. package/project.json +47 -0
  8. package/src/index.ts +156 -0
  9. package/src/lib/table/action/action-id.type.ts +24 -0
  10. package/{lib/table/action/on-action-triggered.if.d.ts → src/lib/table/action/on-action-triggered.if.ts} +4 -1
  11. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +29 -0
  12. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +3 -0
  13. package/src/lib/table/action/shortcut.service.ts +134 -0
  14. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +27 -0
  15. package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
  16. package/src/lib/table/checkbox/checkbox-model.ts +62 -0
  17. package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
  18. package/src/lib/table/color/color-rgb.if.ts +7 -0
  19. package/src/lib/table/color/color-rgb.ts +10 -0
  20. package/src/lib/table/color/ge-css-color-util.ts +43 -0
  21. package/src/lib/table/color/three-color-gradient-arg.if.ts +10 -0
  22. package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
  23. package/src/lib/table/color/two-color-gradient-arg.if.ts +8 -0
  24. package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
  25. package/src/lib/table/css-vars.ts +243 -0
  26. package/src/lib/table/data/common/aligns.ts +19 -0
  27. package/src/lib/table/data/common/area-map-factory.ts +14 -0
  28. package/src/lib/table/data/common/area-map.ts +11 -0
  29. package/src/lib/table/data/common/area-map.type.ts +5 -0
  30. package/{lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts → src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts} +11 -10
  31. package/src/lib/table/data/common/args-render-cell-div.ts +18 -0
  32. package/src/lib/table/data/common/boolean-function.ts +4 -0
  33. package/src/lib/table/data/common/cell-range.ts +57 -0
  34. package/src/lib/table/data/common/checkbox-column-def.ts +25 -0
  35. package/src/lib/table/data/common/checked-type.ts +1 -0
  36. package/src/lib/table/data/common/event/ge-cell-indices.ts +9 -0
  37. package/src/lib/table/data/common/event/ge-key-event.ts +10 -0
  38. package/src/lib/table/data/common/event/ge-model-change-event.ts +13 -0
  39. package/src/lib/table/data/common/event/ge-mouse-event.ts +38 -0
  40. package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +10 -0
  41. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +14 -0
  42. package/src/lib/table/data/common/filter-function.ts +1 -0
  43. package/src/lib/table/data/common/get-t.ts +1 -0
  44. package/src/lib/table/data/common/index-and-px.ts +9 -0
  45. package/src/lib/table/data/common/size.if.ts +4 -0
  46. package/src/lib/table/data/common/size.ts +9 -0
  47. package/src/lib/table/data/common/sizes.ts +35 -0
  48. package/src/lib/table/data/common/sort-item.ts +11 -0
  49. package/src/lib/table/data/common/sort-state.type.ts +1 -0
  50. package/src/lib/table/data/common/tree-arrow.type.ts +1 -0
  51. package/src/lib/table/data/common/tree-row-if.ts +11 -0
  52. package/src/lib/table/data/common/tree-row.ts +16 -0
  53. package/src/lib/table/data/common/value-label.if.ts +6 -0
  54. package/src/lib/table/data/common/value-label.ts +13 -0
  55. package/src/lib/table/data/div-scope.type.ts +5 -0
  56. package/src/lib/table/data/event/mouse-target-data.ts +45 -0
  57. package/src/lib/table/data/geo-data.ts +13 -0
  58. package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
  59. package/src/lib/table/data/options/auto-restore-options.ts +50 -0
  60. package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
  61. package/src/lib/table/data/options/default-row-heights.ts +10 -0
  62. package/src/lib/table/data/options/icon.if.ts +7 -0
  63. package/src/lib/table/data/options/icon.ts +10 -0
  64. package/{lib/table/data/options/sorted-options.if.d.ts → src/lib/table/data/options/sorted-options.if.ts} +6 -3
  65. package/src/lib/table/data/options/sorted-options.ts +15 -0
  66. package/src/lib/table/data/options/table-options.if.ts +54 -0
  67. package/src/lib/table/data/options/table-options.ts +66 -0
  68. package/src/lib/table/data/options/tree-options.if.ts +10 -0
  69. package/src/lib/table/data/options/tree-options.ts +32 -0
  70. package/src/lib/table/data/side-ident.type.ts +1 -0
  71. package/src/lib/table/data/table-model-and-options.if.ts +8 -0
  72. package/src/lib/table/data/table-model-and-options.ts +13 -0
  73. package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
  74. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +183 -0
  75. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +59 -0
  76. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +210 -0
  77. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +120 -0
  78. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +23 -0
  79. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +105 -0
  80. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +215 -0
  81. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +186 -0
  82. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +110 -0
  83. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +61 -0
  84. package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
  85. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +167 -0
  86. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
  87. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
  88. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
  89. package/src/lib/table/data/tablemodel/column/column-def.if.ts +28 -0
  90. package/src/lib/table/data/tablemodel/column/column-def.ts +104 -0
  91. package/src/lib/table/data/tablemodel/padding.ts +9 -0
  92. package/src/lib/table/data/tablemodel/table-model.if.ts +90 -0
  93. package/src/lib/table/data/tablemodel/table-model.ts +352 -0
  94. package/src/lib/table/ele-scope.ts +283 -0
  95. package/src/lib/table/event-adapter.ts +28 -0
  96. package/src/lib/table/event-listener.if.ts +19 -0
  97. package/src/lib/table/factory/table-factory.ts +378 -0
  98. package/src/lib/table/factory/tree-factory.ts +51 -0
  99. package/src/lib/table/focus/focus-model.if.ts +14 -0
  100. package/src/lib/table/focus/focus-model.ts +48 -0
  101. package/src/lib/table/focus/focus.type.ts +4 -0
  102. package/src/lib/table/input-handler.ts +34 -0
  103. package/src/lib/table/mouse-handler.ts +237 -0
  104. package/src/lib/table/render-scope.ts +936 -0
  105. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +27 -0
  106. package/{lib/table/renderer/cell-render.if.d.ts → src/lib/table/renderer/cell-render.if.ts} +10 -1
  107. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +58 -0
  108. package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
  109. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +34 -0
  110. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
  111. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
  112. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
  113. package/src/lib/table/renderer/edit/edit-cell-renderer.type.ts +3 -0
  114. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
  115. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +7 -0
  116. package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
  117. package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
  118. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
  119. package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
  120. package/src/lib/table/renderer/renderer-cleanup-fn.type.ts +1 -0
  121. package/src/lib/table/renderer/renderer.ts +11 -0
  122. package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
  123. package/src/lib/table/selection/selection-model.if.ts +20 -0
  124. package/src/lib/table/selection/selection-model.ts +109 -0
  125. package/src/lib/table/selection/selection-service.ts +120 -0
  126. package/src/lib/table/selection/selection.type.ts +5 -0
  127. package/src/lib/table/service/abstract-store-state.service.ts +105 -0
  128. package/src/lib/table/service/convenience-dom.service.ts +548 -0
  129. package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
  130. package/src/lib/table/service/data/html-style.type.ts +1 -0
  131. package/src/lib/table/service/dom-service.if.ts +16 -0
  132. package/src/lib/table/service/ge-filter.service.ts +123 -0
  133. package/src/lib/table/service/simple-dom-service.ts +46 -0
  134. package/src/lib/table/service/sorter.service.ts +30 -0
  135. package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
  136. package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
  137. package/src/lib/table/service/store-state-sorting.service.ts +41 -0
  138. package/src/lib/table/service/tree-row.service.ts +31 -0
  139. package/src/lib/table/table-api.ts +61 -0
  140. package/src/lib/table/table-scope.ts +433 -0
  141. package/src/test-setup.ts +1 -0
  142. package/tsconfig.json +22 -0
  143. package/tsconfig.lib.json +19 -0
  144. package/tsconfig.lib.prod.json +7 -0
  145. package/tsconfig.spec.json +20 -0
  146. package/esm2020/guiexpert-table.mjs +0 -5
  147. package/esm2020/index.mjs +0 -102
  148. package/esm2020/lib/table/action/action-id.type.mjs +0 -20
  149. package/esm2020/lib/table/action/on-action-triggered.if.mjs +0 -2
  150. package/esm2020/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -17
  151. package/esm2020/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
  152. package/esm2020/lib/table/action/shortcut.service.mjs +0 -105
  153. package/esm2020/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -15
  154. package/esm2020/lib/table/checkbox/checkbox-model.if.mjs +0 -2
  155. package/esm2020/lib/table/checkbox/checkbox-model.mjs +0 -52
  156. package/esm2020/lib/table/checkbox/tree-checkbox-model.mjs +0 -106
  157. package/esm2020/lib/table/data/common/aligns.mjs +0 -19
  158. package/esm2020/lib/table/data/common/area-map-factory.mjs +0 -7
  159. package/esm2020/lib/table/data/common/area-map.mjs +0 -8
  160. package/esm2020/lib/table/data/common/area-map.type.mjs +0 -2
  161. package/esm2020/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
  162. package/esm2020/lib/table/data/common/args-render-cell-div.mjs +0 -2
  163. package/esm2020/lib/table/data/common/boolean-function.mjs +0 -3
  164. package/esm2020/lib/table/data/common/cell-range.mjs +0 -27
  165. package/esm2020/lib/table/data/common/checkbox-column.mjs +0 -15
  166. package/esm2020/lib/table/data/common/checked-type.mjs +0 -2
  167. package/esm2020/lib/table/data/common/event/ge-cell-indices.mjs +0 -7
  168. package/esm2020/lib/table/data/common/event/ge-key-event.mjs +0 -7
  169. package/esm2020/lib/table/data/common/event/ge-model-change-event.mjs +0 -10
  170. package/esm2020/lib/table/data/common/event/ge-mouse-event.mjs +0 -19
  171. package/esm2020/lib/table/data/common/filter-function.mjs +0 -2
  172. package/esm2020/lib/table/data/common/get-t.mjs +0 -2
  173. package/esm2020/lib/table/data/common/index-and-px.mjs +0 -7
  174. package/esm2020/lib/table/data/common/size.if.mjs +0 -2
  175. package/esm2020/lib/table/data/common/size.mjs +0 -7
  176. package/esm2020/lib/table/data/common/sizes.mjs +0 -33
  177. package/esm2020/lib/table/data/common/sort-item.mjs +0 -7
  178. package/esm2020/lib/table/data/common/sort-state.type.mjs +0 -2
  179. package/esm2020/lib/table/data/common/tree-arrow.type.mjs +0 -2
  180. package/esm2020/lib/table/data/common/tree-row-if.mjs +0 -2
  181. package/esm2020/lib/table/data/common/tree-row.mjs +0 -12
  182. package/esm2020/lib/table/data/common/value-label.if.mjs +0 -2
  183. package/esm2020/lib/table/data/common/value-label.mjs +0 -7
  184. package/esm2020/lib/table/data/div-scope.type.mjs +0 -2
  185. package/esm2020/lib/table/data/geo-data.mjs +0 -10
  186. package/esm2020/lib/table/data/options/auto-restore-options.if.mjs +0 -2
  187. package/esm2020/lib/table/data/options/auto-restore-options.mjs +0 -42
  188. package/esm2020/lib/table/data/options/default-row-heights.if.mjs +0 -2
  189. package/esm2020/lib/table/data/options/default-row-heights.mjs +0 -8
  190. package/esm2020/lib/table/data/options/icon.if.mjs +0 -2
  191. package/esm2020/lib/table/data/options/icon.mjs +0 -8
  192. package/esm2020/lib/table/data/options/sorted-options.if.mjs +0 -2
  193. package/esm2020/lib/table/data/options/sorted-options.mjs +0 -9
  194. package/esm2020/lib/table/data/options/table-options.if.mjs +0 -2
  195. package/esm2020/lib/table/data/options/table-options.mjs +0 -38
  196. package/esm2020/lib/table/data/options/tree-options.if.mjs +0 -2
  197. package/esm2020/lib/table/data/options/tree-options.mjs +0 -10
  198. package/esm2020/lib/table/data/side-ident.type.mjs +0 -2
  199. package/esm2020/lib/table/data/tablemodel/area-ident.type.mjs +0 -10
  200. package/esm2020/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -108
  201. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-array-array.mjs +0 -34
  202. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -76
  203. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -11
  204. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -79
  205. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -166
  206. package/esm2020/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
  207. package/esm2020/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -48
  208. package/esm2020/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
  209. package/esm2020/lib/table/data/tablemodel/column/column-def.mjs +0 -32
  210. package/esm2020/lib/table/data/tablemodel/padding.mjs +0 -9
  211. package/esm2020/lib/table/data/tablemodel/table-model.if.mjs +0 -2
  212. package/esm2020/lib/table/data/tablemodel/table-model.mjs +0 -262
  213. package/esm2020/lib/table/ele-scope.mjs +0 -173
  214. package/esm2020/lib/table/event-listener.if.mjs +0 -2
  215. package/esm2020/lib/table/focus/focus-model.if.mjs +0 -2
  216. package/esm2020/lib/table/focus/focus-model.mjs +0 -22
  217. package/esm2020/lib/table/focus/focus.type.mjs +0 -2
  218. package/esm2020/lib/table/input-handler.mjs +0 -24
  219. package/esm2020/lib/table/mouse-handler.mjs +0 -197
  220. package/esm2020/lib/table/render-scope.mjs +0 -575
  221. package/esm2020/lib/table/renderer/cell-render.if.mjs +0 -2
  222. package/esm2020/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
  223. package/esm2020/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -21
  224. package/esm2020/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
  225. package/esm2020/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
  226. package/esm2020/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
  227. package/esm2020/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
  228. package/esm2020/lib/table/renderer/edit/select-cell-renderer.mjs +0 -35
  229. package/esm2020/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
  230. package/esm2020/lib/table/renderer/number-cell-renderer.mjs +0 -19
  231. package/esm2020/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
  232. package/esm2020/lib/table/renderer/renderer.mjs +0 -7
  233. package/esm2020/lib/table/selection/selection-model.if.mjs +0 -2
  234. package/esm2020/lib/table/selection/selection-model.mjs +0 -97
  235. package/esm2020/lib/table/selection/selection-service.mjs +0 -97
  236. package/esm2020/lib/table/selection/selection.type.mjs +0 -2
  237. package/esm2020/lib/table/service/abstract-store-state.service.mjs +0 -49
  238. package/esm2020/lib/table/service/convenience-dom.service.mjs +0 -386
  239. package/esm2020/lib/table/service/data/collapsed-expanded.data.mjs +0 -9
  240. package/esm2020/lib/table/service/data/html-style.type.mjs +0 -2
  241. package/esm2020/lib/table/service/dom-service.if.mjs +0 -2
  242. package/esm2020/lib/table/service/ge-filter.service.mjs +0 -98
  243. package/esm2020/lib/table/service/sorter.service.mjs +0 -27
  244. package/esm2020/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
  245. package/esm2020/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
  246. package/esm2020/lib/table/service/store-state-sorting.service.mjs +0 -29
  247. package/esm2020/lib/table/service/tree-row.service.mjs +0 -23
  248. package/esm2020/lib/table/table-api.mjs +0 -38
  249. package/esm2020/lib/table/table-model-factory.mjs +0 -125
  250. package/esm2020/lib/table/table-scope.mjs +0 -307
  251. package/index.d.ts +0 -103
  252. package/lib/table/action/action-id.type.d.ts +0 -2
  253. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +0 -6
  254. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +0 -4
  255. package/lib/table/action/shortcut.service.d.ts +0 -17
  256. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +0 -6
  257. package/lib/table/checkbox/checkbox-model.d.ts +0 -12
  258. package/lib/table/checkbox/checkbox-model.if.d.ts +0 -9
  259. package/lib/table/checkbox/tree-checkbox-model.d.ts +0 -17
  260. package/lib/table/data/common/aligns.d.ts +0 -24
  261. package/lib/table/data/common/area-map-factory.d.ts +0 -5
  262. package/lib/table/data/common/area-map.d.ts +0 -7
  263. package/lib/table/data/common/area-map.type.d.ts +0 -5
  264. package/lib/table/data/common/args-render-cell-div.d.ts +0 -13
  265. package/lib/table/data/common/boolean-function.d.ts +0 -3
  266. package/lib/table/data/common/cell-range.d.ts +0 -17
  267. package/lib/table/data/common/checkbox-column.d.ts +0 -13
  268. package/lib/table/data/common/checked-type.d.ts +0 -1
  269. package/lib/table/data/common/event/ge-cell-indices.d.ts +0 -5
  270. package/lib/table/data/common/event/ge-key-event.d.ts +0 -5
  271. package/lib/table/data/common/event/ge-model-change-event.d.ts +0 -6
  272. package/lib/table/data/common/event/ge-mouse-event.d.ts +0 -17
  273. package/lib/table/data/common/filter-function.d.ts +0 -1
  274. package/lib/table/data/common/get-t.d.ts +0 -1
  275. package/lib/table/data/common/index-and-px.d.ts +0 -5
  276. package/lib/table/data/common/size.d.ts +0 -6
  277. package/lib/table/data/common/size.if.d.ts +0 -4
  278. package/lib/table/data/common/sizes.d.ts +0 -32
  279. package/lib/table/data/common/sort-item.d.ts +0 -6
  280. package/lib/table/data/common/sort-state.type.d.ts +0 -1
  281. package/lib/table/data/common/tree-arrow.type.d.ts +0 -1
  282. package/lib/table/data/common/tree-row-if.d.ts +0 -10
  283. package/lib/table/data/common/tree-row.d.ts +0 -11
  284. package/lib/table/data/common/value-label.d.ts +0 -6
  285. package/lib/table/data/common/value-label.if.d.ts +0 -4
  286. package/lib/table/data/div-scope.type.d.ts +0 -7
  287. package/lib/table/data/geo-data.d.ts +0 -8
  288. package/lib/table/data/options/auto-restore-options.d.ts +0 -11
  289. package/lib/table/data/options/auto-restore-options.if.d.ts +0 -13
  290. package/lib/table/data/options/default-row-heights.d.ts +0 -7
  291. package/lib/table/data/options/default-row-heights.if.d.ts +0 -5
  292. package/lib/table/data/options/icon.d.ts +0 -7
  293. package/lib/table/data/options/icon.if.d.ts +0 -5
  294. package/lib/table/data/options/sorted-options.d.ts +0 -8
  295. package/lib/table/data/options/table-options.d.ts +0 -36
  296. package/lib/table/data/options/table-options.if.d.ts +0 -37
  297. package/lib/table/data/options/tree-options.d.ts +0 -9
  298. package/lib/table/data/options/tree-options.if.d.ts +0 -7
  299. package/lib/table/data/side-ident.type.d.ts +0 -1
  300. package/lib/table/data/tablemodel/area-ident.type.d.ts +0 -2
  301. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -43
  302. package/lib/table/data/tablemodel/areamodel/area-model-array-array.d.ts +0 -18
  303. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -32
  304. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -10
  305. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -27
  306. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -39
  307. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -33
  308. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -12
  309. package/lib/table/data/tablemodel/column/column-def.d.ts +0 -46
  310. package/lib/table/data/tablemodel/column/column-def.if.d.ts +0 -22
  311. package/lib/table/data/tablemodel/padding.d.ts +0 -7
  312. package/lib/table/data/tablemodel/table-model.d.ts +0 -60
  313. package/lib/table/data/tablemodel/table-model.if.d.ts +0 -34
  314. package/lib/table/ele-scope.d.ts +0 -37
  315. package/lib/table/event-listener.if.d.ts +0 -11
  316. package/lib/table/focus/focus-model.d.ts +0 -12
  317. package/lib/table/focus/focus-model.if.d.ts +0 -6
  318. package/lib/table/focus/focus.type.d.ts +0 -1
  319. package/lib/table/input-handler.d.ts +0 -6
  320. package/lib/table/mouse-handler.d.ts +0 -27
  321. package/lib/table/render-scope.d.ts +0 -77
  322. package/lib/table/renderer/checkbox-cell-renderer.d.ts +0 -8
  323. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -9
  324. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +0 -8
  325. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -8
  326. package/lib/table/renderer/edit/edit-cell-renderer.type.d.ts +0 -2
  327. package/lib/table/renderer/edit/input-cell-renderer.d.ts +0 -8
  328. package/lib/table/renderer/edit/select-cell-renderer.d.ts +0 -12
  329. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -8
  330. package/lib/table/renderer/number-cell-renderer.d.ts +0 -11
  331. package/lib/table/renderer/renderer-cleanup-fn.type.d.ts +0 -1
  332. package/lib/table/renderer/renderer.d.ts +0 -5
  333. package/lib/table/selection/selection-model.d.ts +0 -21
  334. package/lib/table/selection/selection-model.if.d.ts +0 -11
  335. package/lib/table/selection/selection-service.d.ts +0 -17
  336. package/lib/table/selection/selection.type.d.ts +0 -2
  337. package/lib/table/service/abstract-store-state.service.d.ts +0 -10
  338. package/lib/table/service/convenience-dom.service.d.ts +0 -44
  339. package/lib/table/service/data/collapsed-expanded.data.d.ts +0 -7
  340. package/lib/table/service/data/html-style.type.d.ts +0 -3
  341. package/lib/table/service/dom-service.if.d.ts +0 -9
  342. package/lib/table/service/ge-filter.service.d.ts +0 -5
  343. package/lib/table/service/sorter.service.d.ts +0 -3
  344. package/lib/table/service/store-state-collapsed-expand.service.d.ts +0 -15
  345. package/lib/table/service/store-state-scroll-pos.service.d.ts +0 -10
  346. package/lib/table/service/store-state-sorting.service.d.ts +0 -11
  347. package/lib/table/service/tree-row.service.d.ts +0 -5
  348. package/lib/table/table-api.d.ts +0 -16
  349. package/lib/table/table-model-factory.d.ts +0 -61
  350. package/lib/table/table-scope.d.ts +0 -55
@@ -1,166 +0,0 @@
1
- import { TreeRowService } from "../../../service/tree-row.service";
2
- import { AbstractAreaModel } from "./abstract-area-model";
3
- import { SorterService } from "../../../service/sorter.service";
4
- export class AreaModelTree extends AbstractAreaModel {
5
- constructor(areaIdent, rows, defaultRowHeight = 40, columnDefs = []) {
6
- super(areaIdent, columnDefs, defaultRowHeight);
7
- this.areaIdent = areaIdent;
8
- this.rows = rows;
9
- this.defaultRowHeight = defaultRowHeight;
10
- this.columnDefs = columnDefs;
11
- this.sorterService = new SorterService();
12
- this.service = new TreeRowService();
13
- this.properties = columnDefs.map(def => def.property);
14
- this.flattenRows = this.service.flattenTree(rows);
15
- this.filteredFlattenRows = [...this.flattenRows];
16
- }
17
- changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
18
- // not this! this.arrayMove(this.columnDefs...)
19
- this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
20
- super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
21
- }
22
- recalcVisibleTreeRows() {
23
- this.filteredFlattenRows = this.service.flattenTree(this.rows);
24
- }
25
- getFilteredFlattenRows() {
26
- return this.filteredFlattenRows;
27
- }
28
- getRowCount() {
29
- let n = 0;
30
- for (const r of this.filteredFlattenRows) {
31
- if (this.service.isVisible(r)) {
32
- n++;
33
- }
34
- }
35
- return n;
36
- }
37
- getValueAt(rowIndex, columnIndex) {
38
- const row = this.getRowByIndex(rowIndex);
39
- if (row) {
40
- const prop = this.properties[columnIndex];
41
- if (prop) {
42
- if (prop.includes('.')) {
43
- return this.getPropertyValue(row.data, prop.split('.'));
44
- }
45
- // @ts-ignore
46
- return row.data[prop];
47
- }
48
- }
49
- return '';
50
- }
51
- getRowHeight(rowIndex) {
52
- return this.defaultRowHeight;
53
- }
54
- getCustomClassesAt(rowIndex, columnIndex) {
55
- const row = this.filteredFlattenRows[rowIndex];
56
- return ['ge-table-tree-cell', 'ge-table-tree-deep-' + row.deep];
57
- }
58
- getRowByIndex(idx) {
59
- return this.filteredFlattenRows[idx];
60
- }
61
- getValueByT(t, property) {
62
- if (property.includes('.')) {
63
- return this.getPropertyValue(t, property.split('.'));
64
- }
65
- // @ts-ignore
66
- return t[property];
67
- }
68
- externalFilterChanged(predictFn) {
69
- this.lastPredictFn = predictFn;
70
- this.doFiltering();
71
- }
72
- doSort(sortItems) {
73
- const { columnIndex, sortState } = sortItems[sortItems.length - 1];
74
- const f = sortState === 'asc' ? 1 :
75
- sortState === 'desc' ? -1 : 0;
76
- const property = this.properties[columnIndex];
77
- this.treeSort(this.rows, property, f);
78
- this.flattenRows = this.service.flattenTree(this.rows);
79
- this.filteredFlattenRows = [...this.flattenRows];
80
- return true;
81
- }
82
- toggleExpandCollapseAll(expanded) {
83
- this.expandAllRecursive(this.rows, expanded);
84
- this.flattenRows = this.service.flattenTree(this.rows);
85
- this.doFiltering();
86
- }
87
- setAllParentsOk(item) {
88
- if (item.parent) {
89
- item.parent.keep = true;
90
- this.setAllParentsOk(item.parent);
91
- }
92
- return false;
93
- }
94
- setValue(rowIndex, columnIndex, value) {
95
- const treeRow = this.getRowByIndex(rowIndex);
96
- if (treeRow) {
97
- const row = treeRow.data;
98
- const property = this.columnDefs[columnIndex].property;
99
- // @ts-ignore
100
- row[property] = value;
101
- return true;
102
- }
103
- return false;
104
- }
105
- genericTreeTableSortComparator(property, f) {
106
- return (a, b) => {
107
- const va = this.getValueByT(a.data, property);
108
- const vb = this.getValueByT(b.data, property);
109
- return this.sorterService.genericSortComparator(va, vb, f);
110
- };
111
- }
112
- expandAllRecursive(arr, expanded) {
113
- for (const row of arr) {
114
- row.expanded = expanded;
115
- if (row.children) {
116
- this.expandAllRecursive(row.children, expanded);
117
- }
118
- }
119
- }
120
- doFiltering() {
121
- if (!this.lastPredictFn) {
122
- this.filteredFlattenRows = [...(this.flattenRows ? this.flattenRows : [])];
123
- }
124
- else {
125
- if (!this.flattenRows) {
126
- this.flattenRows = [];
127
- }
128
- let maxDeep = 0;
129
- this.flattenRows.forEach(v => {
130
- maxDeep = Math.max(maxDeep, v.deep);
131
- });
132
- const okRows = this.flattenRows.filter((value, index, array) => {
133
- // @ts-ignore
134
- return this.lastPredictFn(value, index, array);
135
- });
136
- this.flattenRows.forEach(v => v.keep = false);
137
- this.flattenRows.forEach(v => {
138
- if (okRows.includes(v)) {
139
- v.keep = true;
140
- this.setAllParentsOk(v);
141
- }
142
- });
143
- this.filteredFlattenRows = this.flattenRows.filter((value, index, array) => {
144
- return value.keep;
145
- });
146
- }
147
- }
148
- getPropertyValue(o, props) {
149
- const prop = props.shift();
150
- // @ts-ignore
151
- let o2 = o[prop];
152
- if (o2 && props.length) {
153
- return this.getPropertyValue(o2, props);
154
- }
155
- return o2;
156
- }
157
- treeSort(rows, property, f) {
158
- rows.sort(this.genericTreeTableSortComparator(property, f));
159
- for (const row of rows) {
160
- if (row.children) {
161
- this.treeSort(row.children, property, f);
162
- }
163
- }
164
- }
165
- }
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC10cmVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvYXJlYS1tb2RlbC10cmVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl4RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFHOUQsTUFBTSxPQUFPLGFBQWlCLFNBQVEsaUJBQTZCO0lBVWpFLFlBQ3FCLFNBQW9CLEVBQ3ZCLElBQWtCLEVBQzNCLG1CQUEyQixFQUFFLEVBQ2pCLGFBQTRCLEVBQUU7UUFFakQsS0FBSyxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUw1QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3ZCLFNBQUksR0FBSixJQUFJLENBQWM7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFhO1FBQ2pCLGVBQVUsR0FBVixVQUFVLENBQW9CO1FBWHpDLGtCQUFhLEdBQWtCLElBQUksYUFBYSxFQUFFLENBQUM7UUFFNUMsWUFBTyxHQUFHLElBQUksY0FBYyxFQUFFLENBQUM7UUFZOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVRLGlC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RixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsQ0FBTSxFQUFFLEtBQWU7UUFDOUMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzNCLGFBQWE7UUFDYixJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsSUFBSSxFQUFFLElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDekM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBa0IsRUFBRSxRQUFnQixFQUFFLENBQVM7UUFDOUQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQzFDO1NBQ0Y7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RyZWVSb3d9IGZyb20gXCIuLi8uLi9jb21tb24vdHJlZS1yb3dcIjtcbmltcG9ydCB7VHJlZVJvd1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3RyZWUtcm93LnNlcnZpY2VcIjtcbmltcG9ydCB7QWJzdHJhY3RBcmVhTW9kZWx9IGZyb20gXCIuL2Fic3RyYWN0LWFyZWEtbW9kZWxcIjtcbmltcG9ydCB7QXJlYUlkZW50fSBmcm9tIFwiLi4vYXJlYS1pZGVudC50eXBlXCI7XG5pbXBvcnQge0NvbHVtbkRlZklmfSBmcm9tIFwiLi4vY29sdW1uL2NvbHVtbi1kZWYuaWZcIjtcbmltcG9ydCB7RmlsdGVyRnVuY3Rpb259IGZyb20gXCIuLi8uLi9jb21tb24vZmlsdGVyLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRlclNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL3NvcnRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge1NvcnRJdGVtfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NvcnQtaXRlbVwiO1xuXG5leHBvcnQgY2xhc3MgQXJlYU1vZGVsVHJlZTxTPiBleHRlbmRzIEFic3RyYWN0QXJlYU1vZGVsPFRyZWVSb3c8Uz4+IHtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcHJvcGVydGllczogc3RyaW5nW107XG4gIHByb3RlY3RlZCBzb3J0ZXJTZXJ2aWNlOiBTb3J0ZXJTZXJ2aWNlID0gbmV3IFNvcnRlclNlcnZpY2UoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2UgPSBuZXcgVHJlZVJvd1NlcnZpY2UoKTtcbiAgcHJpdmF0ZSBmaWx0ZXJlZEZsYXR0ZW5Sb3dzOiBUcmVlUm93PFM+W107XG4gIHByaXZhdGUgZmxhdHRlblJvd3M6IFRyZWVSb3c8Uz5bXTtcbiAgcHJpdmF0ZSBsYXN0UHJlZGljdEZuPzogRmlsdGVyRnVuY3Rpb248YW55PjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXJlYUlkZW50OiBBcmVhSWRlbnQsXG4gICAgcHVibGljIHJlYWRvbmx5IHJvd3M6IFRyZWVSb3c8Uz5bXSxcbiAgICBwdWJsaWMgZGVmYXVsdFJvd0hlaWdodDogbnVtYmVyID0gNDAsXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGNvbHVtbkRlZnM6IENvbHVtbkRlZklmW10gPSBbXVxuICApIHtcbiAgICBzdXBlcihhcmVhSWRlbnQsIGNvbHVtbkRlZnMsIGRlZmF1bHRSb3dIZWlnaHQpO1xuICAgIHRoaXMucHJvcGVydGllcyA9IGNvbHVtbkRlZnMubWFwKGRlZiA9PiBkZWYucHJvcGVydHkpO1xuICAgIHRoaXMuZmxhdHRlblJvd3MgPSB0aGlzLnNlcnZpY2UuZmxhdHRlblRyZWUocm93cyk7XG4gICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gWy4uLnRoaXMuZmxhdHRlblJvd3NdO1xuICB9XG5cbiAgb3ZlcnJpZGUgY2hhbmdlQ29sdW1uT3JkZXIoc291cmNlQ29sdW1uSW5kZXg6IG51bWJlciwgdGFyZ2V0Q29sdW1uSW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIC8vICBub3QgdGhpcyEgdGhpcy5hcnJheU1vdmUodGhpcy5jb2x1bW5EZWZzLi4uKVxuICAgIHRoaXMuYXJyYXlNb3ZlKHRoaXMucHJvcGVydGllcywgc291cmNlQ29sdW1uSW5kZXgsIHRhcmdldENvbHVtbkluZGV4KTtcbiAgICBzdXBlci5jaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICB9XG5cbiAgcmVjYWxjVmlzaWJsZVRyZWVSb3dzKCkge1xuICAgIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93cyA9IHRoaXMuc2VydmljZS5mbGF0dGVuVHJlZSh0aGlzLnJvd3MpO1xuICB9XG5cbiAgZ2V0RmlsdGVyZWRGbGF0dGVuUm93cygpOiBUcmVlUm93PFM+W10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkRmxhdHRlblJvd3M7XG4gIH1cblxuICBnZXRSb3dDb3VudCgpOiBudW1iZXIge1xuICAgIGxldCBuID0gMDtcbiAgICBmb3IgKGNvbnN0IHIgb2YgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzKSB7XG4gICAgICBpZiAodGhpcy5zZXJ2aWNlLmlzVmlzaWJsZShyKSkge1xuICAgICAgICBuKys7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9XG5cbiAgZ2V0VmFsdWVBdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYW55IHtcbiAgICBjb25zdCByb3cgPSB0aGlzLmdldFJvd0J5SW5kZXgocm93SW5kZXgpO1xuICAgIGlmIChyb3cpIHtcbiAgICAgIGNvbnN0IHByb3AgPSB0aGlzLnByb3BlcnRpZXNbY29sdW1uSW5kZXhdO1xuICAgICAgaWYgKHByb3ApIHtcbiAgICAgICAgaWYgKHByb3AuaW5jbHVkZXMoJy4nKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFByb3BlcnR5VmFsdWUocm93LmRhdGEsIHByb3Auc3BsaXQoJy4nKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICByZXR1cm4gcm93LmRhdGFbcHJvcF07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIGdldFJvd0hlaWdodChyb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5kZWZhdWx0Um93SGVpZ2h0O1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0Q3VzdG9tQ2xhc3Nlc0F0KHJvd0luZGV4OiBudW1iZXIsIGNvbHVtbkluZGV4OiBudW1iZXIpOiBzdHJpbmdbXSB7XG4gICAgY29uc3Qgcm93ID0gdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzW3Jvd0luZGV4XTtcbiAgICByZXR1cm4gWydnZS10YWJsZS10cmVlLWNlbGwnLCAnZ2UtdGFibGUtdHJlZS1kZWVwLScgKyByb3cuZGVlcF07XG4gIH1cblxuICBvdmVycmlkZSBnZXRSb3dCeUluZGV4KGlkeDogbnVtYmVyKTogVHJlZVJvdzxTPiB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93c1tpZHhdO1xuICB9XG5cbiAgZ2V0VmFsdWVCeVQodDogUywgcHJvcGVydHk6IHN0cmluZykge1xuICAgIGlmIChwcm9wZXJ0eS5pbmNsdWRlcygnLicpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKHQsIHByb3BlcnR5LnNwbGl0KCcuJykpO1xuICAgIH1cbiAgICAvLyBAdHMtaWdub3JlXG4gICAgcmV0dXJuIHRbcHJvcGVydHldO1xuICB9XG5cbiAgZXh0ZXJuYWxGaWx0ZXJDaGFuZ2VkPFM+KHByZWRpY3RGbjogRmlsdGVyRnVuY3Rpb248Uz4pOiB2b2lkIHtcbiAgICB0aGlzLmxhc3RQcmVkaWN0Rm4gPSBwcmVkaWN0Rm47XG4gICAgdGhpcy5kb0ZpbHRlcmluZygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZG9Tb3J0KHNvcnRJdGVtczogU29ydEl0ZW1bXSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHtjb2x1bW5JbmRleCwgc29ydFN0YXRlfSA9IHNvcnRJdGVtc1tzb3J0SXRlbXMubGVuZ3RoIC0gMV07XG4gICAgY29uc3QgZiA9IHNvcnRTdGF0ZSA9PT0gJ2FzYycgPyAxIDpcbiAgICAgIHNvcnRTdGF0ZSA9PT0gJ2Rlc2MnID8gLTEgOiAwO1xuXG4gICAgY29uc3QgcHJvcGVydHkgPSB0aGlzLnByb3BlcnRpZXNbY29sdW1uSW5kZXhdO1xuICAgIHRoaXMudHJlZVNvcnQodGhpcy5yb3dzLCBwcm9wZXJ0eSwgZik7XG5cbiAgICB0aGlzLmZsYXR0ZW5Sb3dzID0gdGhpcy5zZXJ2aWNlLmZsYXR0ZW5UcmVlKHRoaXMucm93cyk7XG4gICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gWy4uLnRoaXMuZmxhdHRlblJvd3NdO1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgdG9nZ2xlRXhwYW5kQ29sbGFwc2VBbGwoZXhwYW5kZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmV4cGFuZEFsbFJlY3Vyc2l2ZSh0aGlzLnJvd3MsIGV4cGFuZGVkKTtcblxuICAgIHRoaXMuZmxhdHRlblJvd3MgPSB0aGlzLnNlcnZpY2UuZmxhdHRlblRyZWUodGhpcy5yb3dzKTtcbiAgICB0aGlzLmRvRmlsdGVyaW5nKCk7XG4gIH1cblxuICBzZXRBbGxQYXJlbnRzT2soaXRlbTogVHJlZVJvdzxhbnk+KSB7XG4gICAgaWYgKGl0ZW0ucGFyZW50KSB7XG4gICAgICBpdGVtLnBhcmVudC5rZWVwID0gdHJ1ZTtcbiAgICAgIHRoaXMuc2V0QWxsUGFyZW50c09rKGl0ZW0ucGFyZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgb3ZlcnJpZGUgc2V0VmFsdWUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHRyZWVSb3c6IFRyZWVSb3c8Uz4gfCB1bmRlZmluZWQgPSB0aGlzLmdldFJvd0J5SW5kZXgocm93SW5kZXgpO1xuICAgIGlmICh0cmVlUm93KSB7XG4gICAgICBjb25zdCByb3c6IFMgPSB0cmVlUm93LmRhdGE7XG4gICAgICBjb25zdCBwcm9wZXJ0eSA9IHRoaXMuY29sdW1uRGVmc1tjb2x1bW5JbmRleF0ucHJvcGVydHk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByb3dbcHJvcGVydHldID0gdmFsdWU7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdlbmVyaWNUcmVlVGFibGVTb3J0Q29tcGFyYXRvcihwcm9wZXJ0eTogc3RyaW5nLCBmOiBudW1iZXIpIHtcbiAgICByZXR1cm4gKGE6IFRyZWVSb3c8Uz4sIGI6IFRyZWVSb3c8Uz4pID0+IHtcbiAgICAgIGNvbnN0IHZhID0gdGhpcy5nZXRWYWx1ZUJ5VChhLmRhdGEsIHByb3BlcnR5KTtcbiAgICAgIGNvbnN0IHZiID0gdGhpcy5nZXRWYWx1ZUJ5VChiLmRhdGEsIHByb3BlcnR5KTtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRlclNlcnZpY2UuZ2VuZXJpY1NvcnRDb21wYXJhdG9yKHZhLCB2YiwgZik7XG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kQWxsUmVjdXJzaXZlKGFycjogVHJlZVJvdzxTPltdLCBleHBhbmRlZDogYm9vbGVhbikge1xuICAgIGZvciAoY29uc3Qgcm93IG9mIGFycikge1xuICAgICAgcm93LmV4cGFuZGVkID0gZXhwYW5kZWQ7XG4gICAgICBpZiAocm93LmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kQWxsUmVjdXJzaXZlKHJvdy5jaGlsZHJlbiwgZXhwYW5kZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZG9GaWx0ZXJpbmcoKSB7XG4gICAgaWYgKCF0aGlzLmxhc3RQcmVkaWN0Rm4pIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRGbGF0dGVuUm93cyA9IFsuLi4odGhpcy5mbGF0dGVuUm93cyA/IHRoaXMuZmxhdHRlblJvd3MgOiBbXSldO1xuICAgIH0gZWxzZSB7XG5cbiAgICAgIGlmICghdGhpcy5mbGF0dGVuUm93cykge1xuICAgICAgICB0aGlzLmZsYXR0ZW5Sb3dzID0gW107XG4gICAgICB9XG5cbiAgICAgIGxldCBtYXhEZWVwID0gMDtcbiAgICAgIHRoaXMuZmxhdHRlblJvd3MuZm9yRWFjaCh2ID0+IHtcbiAgICAgICAgbWF4RGVlcCA9IE1hdGgubWF4KG1heERlZXAsIHYuZGVlcCk7XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgb2tSb3dzID0gdGhpcy5mbGF0dGVuUm93cy5maWx0ZXIoXG4gICAgICAgICh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgIHJldHVybiB0aGlzLmxhc3RQcmVkaWN0Rm4odmFsdWUsIGluZGV4LCBhcnJheSk7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgICB0aGlzLmZsYXR0ZW5Sb3dzLmZvckVhY2godiA9PiB2LmtlZXAgPSBmYWxzZSk7XG4gICAgICB0aGlzLmZsYXR0ZW5Sb3dzLmZvckVhY2godiA9PiB7XG4gICAgICAgIGlmIChva1Jvd3MuaW5jbHVkZXModikpIHtcbiAgICAgICAgICB2LmtlZXAgPSB0cnVlO1xuICAgICAgICAgIHRoaXMuc2V0QWxsUGFyZW50c09rKHYpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5maWx0ZXJlZEZsYXR0ZW5Sb3dzID0gdGhpcy5mbGF0dGVuUm93cy5maWx0ZXIoXG4gICAgICAgICh2YWx1ZSwgaW5kZXgsIGFycmF5KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLmtlZXA7XG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQcm9wZXJ0eVZhbHVlKG86IGFueSwgcHJvcHM6IHN0cmluZ1tdKTogYW55IHtcbiAgICBjb25zdCBwcm9wID0gcHJvcHMuc2hpZnQoKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbGV0IG8yID0gb1twcm9wXTtcbiAgICBpZiAobzIgJiYgcHJvcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRQcm9wZXJ0eVZhbHVlKG8yLCBwcm9wcyk7XG4gICAgfVxuICAgIHJldHVybiBvMjtcbiAgfVxuXG4gIHByaXZhdGUgdHJlZVNvcnQocm93czogVHJlZVJvdzxTPltdLCBwcm9wZXJ0eTogc3RyaW5nLCBmOiBudW1iZXIpIHtcbiAgICByb3dzLnNvcnQodGhpcy5nZW5lcmljVHJlZVRhYmxlU29ydENvbXBhcmF0b3IocHJvcGVydHksIGYpKTtcbiAgICBmb3IgKGNvbnN0IHJvdyBvZiByb3dzKSB7XG4gICAgICBpZiAocm93LmNoaWxkcmVuKSB7XG4gICAgICAgIHRoaXMudHJlZVNvcnQocm93LmNoaWxkcmVuLCBwcm9wZXJ0eSwgZik7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJlYS1tb2RlbC5pZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvYXJlYW1vZGVsL2FyZWEtbW9kZWwuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2VsbFJlbmRlcmVySWZ9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlci5pZlwiO1xuaW1wb3J0IHtDaGVja2VkVHlwZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jaGVja2VkLXR5cGVcIjtcbmltcG9ydCB7Q2hlY2tib3hNb2RlbElmfSBmcm9tIFwiLi4vLi4vLi4vY2hlY2tib3gvY2hlY2tib3gtbW9kZWwuaWZcIjtcbmltcG9ydCB7RmlsdGVyRnVuY3Rpb259IGZyb20gXCIuLi8uLi9jb21tb24vZmlsdGVyLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRJdGVtfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NvcnQtaXRlbVwiO1xuaW1wb3J0IHtUYWJsZU1vZGVsSWZ9IGZyb20gXCIuLi90YWJsZS1tb2RlbC5pZlwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFyZWFNb2RlbElmIHtcblxuICBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZDtcblxuICByb3dTZWxlY3Rpb25Nb2RlbDogQ2hlY2tib3hNb2RlbElmPGFueT4gfCB1bmRlZmluZWQ7XG5cbiAgc2V0VmFsdWUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZywgdGFibGVNb2RlbDogVGFibGVNb2RlbElmKTogYm9vbGVhbjtcblxuICBpbml0KCk6IHZvaWQ7XG5cbiAgZ2V0Um93Q291bnQoKTogbnVtYmVyO1xuXG4gIGdldFZhbHVlQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRDb2xzcGFuQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRNYXhDb2xzcGFuKCk6IG51bWJlcjtcblxuICBnZXRSb3dzcGFuQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRNYXhSb3dzcGFuKCk6IG51bWJlcjtcblxuICBnZXRDdXN0b21DbGFzc2VzQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IHN0cmluZ1tdO1xuXG4gIGdldFZhbHVlQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRUb29sdGlwQXQocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGFueVxuXG4gIGdldENlbGxSZW5kZXJlcihyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogQ2VsbFJlbmRlcmVySWYgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0Um93SGVpZ2h0KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgZ2V0Um93QnlJbmRleChyb3dJbmRleDogbnVtYmVyKTogYW55O1xuXG4gIGdldFlQb3NCeVJvd0luZGV4KHJvd0luZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgaXNFZGl0YWJsZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbjtcblxuICBpc1NlbGVjdGFibGUocm93SW5kZXg6IG51bWJlciwgY29sdW1uSW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG5cbiAgaXNSb3dDaGVja2FibGUocm93SW5kZXg6IG51bWJlcik6IGJvb2xlYW47XG5cbiAgaXNSb3dDaGVja2VkKHJvd0luZGV4OiBudW1iZXIpOiBDaGVja2VkVHlwZSB8IHVuZGVmaW5lZDtcblxuICBzZXRSb3dDaGVja2VkKHJvd0luZGV4OiBudW1iZXIsIGNoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkO1xuXG4gIGlzRmlsdGVyYWJsZSgpOiBib29sZWFuO1xuXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPFQ+KTogdm9pZDtcblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbjtcbn1cblxuIl19
@@ -1,48 +0,0 @@
1
- import { CellRange } from "../../common/cell-range";
2
- export class ColAndRowspanModel {
3
- constructor(tableModel, areaModel) {
4
- this.tableModel = tableModel;
5
- this.areaModel = areaModel;
6
- this.colAndRowspanRanges = undefined;
7
- }
8
- init() {
9
- if (this.areaModel.getMaxColspan() < 2 && this.areaModel.getMaxRowspan() < 2) {
10
- return; // sip
11
- }
12
- this.colAndRowspanRanges = [];
13
- const rowCount = this.areaModel.getRowCount();
14
- const colCount = this.tableModel.getColumnCount();
15
- for (let r = 0; r < rowCount; r++) {
16
- for (let c = 0; c < colCount; c++) {
17
- let cs = this.areaModel.getColspanAt(r, c);
18
- let rs = this.areaModel.getRowspanAt(r, c);
19
- if (cs > 1 || rs > 1) {
20
- if (cs === 0) {
21
- cs = 1;
22
- }
23
- if (rs === 0) {
24
- rs = 1;
25
- }
26
- this.colAndRowspanRanges.push(new CellRange(r, c, r + rs - 1, c + cs - 1));
27
- }
28
- }
29
- }
30
- }
31
- getRanges() {
32
- if (this.colAndRowspanRanges) {
33
- return this.colAndRowspanRanges;
34
- }
35
- return [];
36
- }
37
- isInRange(rowIndex, columnIndex) {
38
- if (this.colAndRowspanRanges) {
39
- for (const range of this.colAndRowspanRanges) {
40
- if (range.isInRange(rowIndex, columnIndex)) {
41
- return true;
42
- }
43
- }
44
- }
45
- return false;
46
- }
47
- }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sLWFuZC1yb3dzcGFuLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy90YWJsZS9zcmMvbGliL3RhYmxlL2RhdGEvdGFibGVtb2RlbC9hcmVhbW9kZWwvY29sLWFuZC1yb3dzcGFuLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUlsRCxNQUFNLE9BQU8sa0JBQWtCO0lBSTdCLFlBQ1ksVUFBd0IsRUFDeEIsU0FBc0I7UUFEdEIsZUFBVSxHQUFWLFVBQVUsQ0FBYztRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFhO1FBSnhCLHdCQUFtQixHQUE0QixTQUFTLENBQUM7SUFNbkUsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQzVFLE9BQU8sQ0FBQyxNQUFNO1NBQ2Y7UUFDRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsRUFBRSxDQUFDO1FBQzlCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsUUFBUSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ2pDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2pDLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUMzQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTtvQkFDcEIsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNaLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ1I7b0JBQ0QsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFO3dCQUNaLEVBQUUsR0FBRyxDQUFDLENBQUM7cUJBQ1I7b0JBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FDM0IsSUFBSSxTQUFTLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUM1QyxDQUFDO2lCQUNIO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDNUIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7U0FDakM7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxTQUFTLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUM3QyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDNUMsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsRUFBRTtvQkFDMUMsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NlbGxSYW5nZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9jZWxsLXJhbmdlXCI7XG5pbXBvcnQge0FyZWFNb2RlbElmfSBmcm9tIFwiLi9hcmVhLW1vZGVsLmlmXCI7XG5pbXBvcnQge1RhYmxlTW9kZWxJZn0gZnJvbSBcIi4uL3RhYmxlLW1vZGVsLmlmXCI7XG5cbmV4cG9ydCBjbGFzcyBDb2xBbmRSb3dzcGFuTW9kZWwge1xuXG4gIHByb3RlY3RlZCBjb2xBbmRSb3dzcGFuUmFuZ2VzOiBDZWxsUmFuZ2VbXSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgdGFibGVNb2RlbDogVGFibGVNb2RlbElmLFxuICAgIHByb3RlY3RlZCBhcmVhTW9kZWw6IEFyZWFNb2RlbElmXG4gICkge1xuICB9XG5cbiAgaW5pdCgpIHtcbiAgICBpZiAodGhpcy5hcmVhTW9kZWwuZ2V0TWF4Q29sc3BhbigpIDwgMiAmJiB0aGlzLmFyZWFNb2RlbC5nZXRNYXhSb3dzcGFuKCkgPCAyKSB7XG4gICAgICByZXR1cm47IC8vIHNpcFxuICAgIH1cbiAgICB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMgPSBbXTtcbiAgICBjb25zdCByb3dDb3VudCA9IHRoaXMuYXJlYU1vZGVsLmdldFJvd0NvdW50KCk7XG4gICAgY29uc3QgY29sQ291bnQgPSB0aGlzLnRhYmxlTW9kZWwuZ2V0Q29sdW1uQ291bnQoKTtcbiAgICBmb3IgKGxldCByID0gMDsgciA8IHJvd0NvdW50OyByKyspIHtcbiAgICAgIGZvciAobGV0IGMgPSAwOyBjIDwgY29sQ291bnQ7IGMrKykge1xuICAgICAgICBsZXQgY3MgPSB0aGlzLmFyZWFNb2RlbC5nZXRDb2xzcGFuQXQociwgYyk7XG4gICAgICAgIGxldCBycyA9IHRoaXMuYXJlYU1vZGVsLmdldFJvd3NwYW5BdChyLCBjKTtcbiAgICAgICAgaWYgKGNzID4gMSB8fCBycyA+IDEpIHtcbiAgICAgICAgICBpZiAoY3MgPT09IDApIHtcbiAgICAgICAgICAgIGNzID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHJzID09PSAwKSB7XG4gICAgICAgICAgICBycyA9IDE7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuY29sQW5kUm93c3BhblJhbmdlcy5wdXNoKFxuICAgICAgICAgICAgbmV3IENlbGxSYW5nZShyLCBjLCByICsgcnMgLSAxLCBjICsgY3MgLSAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXRSYW5nZXMoKTogQ2VsbFJhbmdlW10ge1xuICAgIGlmICh0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXM7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGlzSW5SYW5nZShyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29sQW5kUm93c3BhblJhbmdlcykge1xuICAgICAgZm9yIChjb25zdCByYW5nZSBvZiB0aGlzLmNvbEFuZFJvd3NwYW5SYW5nZXMpIHtcbiAgICAgICAgaWYgKHJhbmdlLmlzSW5SYW5nZShyb3dJbmRleCwgY29sdW1uSW5kZXgpKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5pZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYuaWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2l6ZUlmfSBmcm9tIFwiLi4vLi4vY29tbW9uL3NpemUuaWZcIjtcbmltcG9ydCB7Q2VsbFJlbmRlcmVySWZ9IGZyb20gXCIuLi8uLi8uLi9yZW5kZXJlci9jZWxsLXJlbmRlci5pZlwiO1xuaW1wb3J0IHtBcmVhT2JqZWN0TWFwVHlwZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9hcmVhLW1hcC50eXBlXCI7XG5pbXBvcnQge0Jvb2xlYW5GdW5jdGlvbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9ib29sZWFuLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRTdGF0ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zb3J0LXN0YXRlLnR5cGVcIjtcbmltcG9ydCB7R2V0RWRpdFJlbmRlcmVyfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvZWRpdC9lZGl0LWNlbGwtcmVuZGVyZXIudHlwZVwiO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVmSWYge1xuICBwcm9wZXJ0eTogc3RyaW5nO1xuICBoZWFkZXJMYWJlbDogc3RyaW5nO1xuICB3aWR0aDogU2l6ZUlmO1xuICBtaW5XaWR0aDogU2l6ZUlmO1xuICBtYXhXaWR0aDogU2l6ZUlmO1xuICByZW5kZXJlck1hcDogQXJlYU9iamVjdE1hcFR5cGU8Q2VsbFJlbmRlcmVySWY+O1xuICBjbGFzc2VzOiBBcmVhT2JqZWN0TWFwVHlwZTxzdHJpbmdbXT47XG4gIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICBzb3J0SWNvblZpc2libGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIHNvcnRDb21wYXJhdG9yPzogPFQ+KGE6IFQsIGI6IFQpID0+IG51bWJlcixcbiAgc29ydFN0YXRlPzogU29ydFN0YXRlLFxuICBzb3J0U3RhdGVzT3JkZXI/OiBTb3J0U3RhdGVbXSxcbiAgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gIGdldEVkaXRSZW5kZXJlcj86IEdldEVkaXRSZW5kZXJlclxufVxuXG4iXX0=
@@ -1,32 +0,0 @@
1
- import { Size } from "../../common/size";
2
- import { AreaObjectMap } from "../../common/area-map";
3
- import { FalseFn } from "../../common/boolean-function";
4
- export class ColumnDef {
5
- constructor(property, headerLabel, width = new Size(100, 'px'), classes = new AreaObjectMap(), rendererMap = new AreaObjectMap(), minWidth = new Size(100, 'px'), maxWidth = new Size(100, 'px'), sortable, sortComparator, sortState, sortStatesOrder, sortIconVisible, editable, getEditRenderer) {
6
- this.property = property;
7
- this.headerLabel = headerLabel;
8
- this.width = width;
9
- this.classes = classes;
10
- this.rendererMap = rendererMap;
11
- this.minWidth = minWidth;
12
- this.maxWidth = maxWidth;
13
- this.sortable = sortable;
14
- this.sortComparator = sortComparator;
15
- this.sortState = sortState;
16
- this.sortStatesOrder = sortStatesOrder;
17
- this.sortIconVisible = sortIconVisible;
18
- this.editable = editable;
19
- this.getEditRenderer = getEditRenderer;
20
- }
21
- static bodyRenderer(bodyRenderer) {
22
- return new AreaObjectMap(undefined, bodyRenderer, undefined);
23
- }
24
- static create(param) {
25
- const am = new AreaObjectMap(param.headerRenderer, param.bodyRenderer, param.footerRenderer);
26
- const cm = new AreaObjectMap(param.headerClasses, param.bodyClasses, param.footerClasses);
27
- const sortIconVisible = param.sortIconVisible ?? param.sortable ?? FalseFn;
28
- const editable = param.editable ?? param.editable ?? FalseFn;
29
- return new ColumnDef(param.property ?? '', param.headerLabel ?? '', param.width ?? new Size(100, 'px'), cm, am, param.minWidth ?? new Size(100, 'px'), param.maxWidth ?? new Size(100, 'px'), param.sortable, param.sortComparator, param.sortState, param.sortStatesOrder, sortIconVisible, editable, param.getEditRenderer);
30
- }
31
- }
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWRlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvY29sdW1uL2NvbHVtbi1kZWYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBS3ZDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQWtCLE9BQU8sRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBS3ZFLE1BQU0sT0FBTyxTQUFTO0lBRXBCLFlBQ1MsUUFBZ0IsRUFDaEIsV0FBbUIsRUFDbkIsUUFBZ0IsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNuQyxVQUF1QyxJQUFJLGFBQWEsRUFBWSxFQUNwRSxjQUFpRCxJQUFJLGFBQWEsRUFBa0IsRUFDcEYsV0FBbUIsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUN0QyxXQUFtQixJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQ3RDLFFBQTBCLEVBQzFCLGNBQTBDLEVBQzFDLFNBQXFCLEVBQ3JCLGVBQTZCLEVBQzdCLGVBQWlDLEVBQ2pDLFFBQTBCLEVBQzFCLGVBQWlDO1FBYmpDLGFBQVEsR0FBUixRQUFRLENBQVE7UUFDaEIsZ0JBQVcsR0FBWCxXQUFXLENBQVE7UUFDbkIsVUFBSyxHQUFMLEtBQUssQ0FBOEI7UUFDbkMsWUFBTyxHQUFQLE9BQU8sQ0FBNkQ7UUFDcEUsZ0JBQVcsR0FBWCxXQUFXLENBQXlFO1FBQ3BGLGFBQVEsR0FBUixRQUFRLENBQThCO1FBQ3RDLGFBQVEsR0FBUixRQUFRLENBQThCO1FBQ3RDLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLG1CQUFjLEdBQWQsY0FBYyxDQUE0QjtRQUMxQyxjQUFTLEdBQVQsU0FBUyxDQUFZO1FBQ3JCLG9CQUFlLEdBQWYsZUFBZSxDQUFjO1FBQzdCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUNqQyxhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7SUFFMUMsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZLENBQUMsWUFBNEI7UUFDOUMsT0FBTyxJQUFJLGFBQWEsQ0FDdEIsU0FBUyxFQUNULFlBQVksRUFDWixTQUFTLENBQ1YsQ0FBQTtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsTUFBTSxDQUFDLEtBbUJiO1FBRUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxhQUFhLENBQzFCLEtBQUssQ0FBQyxjQUFjLEVBQ3BCLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLEtBQUssQ0FBQyxjQUFjLENBQ3JCLENBQUM7UUFFRixNQUFNLEVBQUUsR0FBRyxJQUFJLGFBQWEsQ0FDMUIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLFdBQVcsRUFDakIsS0FBSyxDQUFDLGFBQWEsQ0FDcEIsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxPQUFPLENBQUM7UUFDM0UsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sQ0FBQztRQUU3RCxPQUFPLElBQUksU0FBUyxDQUNsQixLQUFLLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFDcEIsS0FBSyxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQ3ZCLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNsQyxFQUFFLEVBQ0YsRUFBRSxFQUNGLEtBQUssQ0FBQyxRQUFRLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxFQUNyQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFDckMsS0FBSyxDQUFDLFFBQVEsRUFDZCxLQUFLLENBQUMsY0FBYyxFQUNwQixLQUFLLENBQUMsU0FBUyxFQUNmLEtBQUssQ0FBQyxlQUFlLEVBQ3JCLGVBQWUsRUFDZixRQUFRLEVBQ1IsS0FBSyxDQUFDLGVBQWUsQ0FDdEIsQ0FBQztJQUNKLENBQUM7Q0FFRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7U2l6ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zaXplXCI7XG5pbXBvcnQge1NpemVJZn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zaXplLmlmXCI7XG5pbXBvcnQge0NvbHVtbkRlZklmfSBmcm9tIFwiLi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0NlbGxSZW5kZXJlcklmfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvY2VsbC1yZW5kZXIuaWZcIjtcbmltcG9ydCB7QXJlYU9iamVjdE1hcFR5cGV9IGZyb20gXCIuLi8uLi9jb21tb24vYXJlYS1tYXAudHlwZVwiO1xuaW1wb3J0IHtBcmVhT2JqZWN0TWFwfSBmcm9tIFwiLi4vLi4vY29tbW9uL2FyZWEtbWFwXCI7XG5pbXBvcnQge0Jvb2xlYW5GdW5jdGlvbiwgRmFsc2VGbn0gZnJvbSBcIi4uLy4uL2NvbW1vbi9ib29sZWFuLWZ1bmN0aW9uXCI7XG5pbXBvcnQge1NvcnRTdGF0ZX0gZnJvbSBcIi4uLy4uL2NvbW1vbi9zb3J0LXN0YXRlLnR5cGVcIjtcbmltcG9ydCB7R2V0RWRpdFJlbmRlcmVyfSBmcm9tIFwiLi4vLi4vLi4vcmVuZGVyZXIvZWRpdC9lZGl0LWNlbGwtcmVuZGVyZXIudHlwZVwiO1xuXG5cbmV4cG9ydCBjbGFzcyBDb2x1bW5EZWY8VD4gaW1wbGVtZW50cyBDb2x1bW5EZWZJZiB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgcHVibGljIGhlYWRlckxhYmVsOiBzdHJpbmcsXG4gICAgcHVibGljIHdpZHRoOiBTaXplSWYgPSBuZXcgU2l6ZSgxMDAsICdweCcpLFxuICAgIHB1YmxpYyBjbGFzc2VzOiBBcmVhT2JqZWN0TWFwVHlwZTxzdHJpbmdbXT4gPSBuZXcgQXJlYU9iamVjdE1hcDxzdHJpbmdbXT4oKSxcbiAgICBwdWJsaWMgcmVuZGVyZXJNYXA6IEFyZWFPYmplY3RNYXBUeXBlPENlbGxSZW5kZXJlcklmPiA9IG5ldyBBcmVhT2JqZWN0TWFwPENlbGxSZW5kZXJlcklmPigpLFxuICAgIHB1YmxpYyBtaW5XaWR0aDogU2l6ZUlmID0gbmV3IFNpemUoMTAwLCAncHgnKSxcbiAgICBwdWJsaWMgbWF4V2lkdGg6IFNpemVJZiA9IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgcHVibGljIHNvcnRhYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHB1YmxpYyBzb3J0Q29tcGFyYXRvcj86IDxUPihhOiBULCBiOiBUKSA9PiBudW1iZXIsXG4gICAgcHVibGljIHNvcnRTdGF0ZT86IFNvcnRTdGF0ZSxcbiAgICBwdWJsaWMgc29ydFN0YXRlc09yZGVyPzogU29ydFN0YXRlW10sXG4gICAgcHVibGljIHNvcnRJY29uVmlzaWJsZT86IEJvb2xlYW5GdW5jdGlvbixcbiAgICBwdWJsaWMgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgcHVibGljIGdldEVkaXRSZW5kZXJlcj86IEdldEVkaXRSZW5kZXJlclxuICApIHtcbiAgfVxuXG4gIHN0YXRpYyBib2R5UmVuZGVyZXIoYm9keVJlbmRlcmVyOiBDZWxsUmVuZGVyZXJJZikge1xuICAgIHJldHVybiBuZXcgQXJlYU9iamVjdE1hcDxDZWxsUmVuZGVyZXJJZj4oXG4gICAgICB1bmRlZmluZWQsXG4gICAgICBib2R5UmVuZGVyZXIsXG4gICAgICB1bmRlZmluZWRcbiAgICApXG4gIH1cblxuICBzdGF0aWMgY3JlYXRlKHBhcmFtOiB7XG4gICAgcHJvcGVydHk/OiBzdHJpbmcsXG4gICAgaGVhZGVyTGFiZWw/OiBzdHJpbmcsXG4gICAgd2lkdGg/OiBTaXplSWYsXG4gICAgbWluV2lkdGg/OiBTaXplSWYsXG4gICAgbWF4V2lkdGg/OiBTaXplSWYsXG4gICAgaGVhZGVyUmVuZGVyZXI/OiBDZWxsUmVuZGVyZXJJZixcbiAgICBib2R5UmVuZGVyZXI/OiBDZWxsUmVuZGVyZXJJZixcbiAgICBmb290ZXJSZW5kZXJlcj86IENlbGxSZW5kZXJlcklmLFxuICAgIGhlYWRlckNsYXNzZXM/OiBzdHJpbmdbXVxuICAgIGJvZHlDbGFzc2VzPzogc3RyaW5nW11cbiAgICBmb290ZXJDbGFzc2VzPzogc3RyaW5nW10sXG4gICAgc29ydGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgc29ydEljb25WaXNpYmxlPzogQm9vbGVhbkZ1bmN0aW9uLFxuICAgIHNvcnRDb21wYXJhdG9yPzogPFQ+KGE6IFQsIGI6IFQpID0+IG51bWJlcixcbiAgICBzb3J0U3RhdGU/OiBTb3J0U3RhdGUsXG4gICAgc29ydFN0YXRlc09yZGVyPzogU29ydFN0YXRlW10sXG4gICAgZWRpdGFibGU/OiBCb29sZWFuRnVuY3Rpb24sXG4gICAgZ2V0RWRpdFJlbmRlcmVyPzogR2V0RWRpdFJlbmRlcmVyXG4gIH0pOiBDb2x1bW5EZWZJZiB7XG5cbiAgICBjb25zdCBhbSA9IG5ldyBBcmVhT2JqZWN0TWFwPENlbGxSZW5kZXJlcklmPihcbiAgICAgIHBhcmFtLmhlYWRlclJlbmRlcmVyLFxuICAgICAgcGFyYW0uYm9keVJlbmRlcmVyLFxuICAgICAgcGFyYW0uZm9vdGVyUmVuZGVyZXJcbiAgICApO1xuXG4gICAgY29uc3QgY20gPSBuZXcgQXJlYU9iamVjdE1hcDxzdHJpbmdbXT4oXG4gICAgICBwYXJhbS5oZWFkZXJDbGFzc2VzLFxuICAgICAgcGFyYW0uYm9keUNsYXNzZXMsXG4gICAgICBwYXJhbS5mb290ZXJDbGFzc2VzXG4gICAgKTtcblxuICAgIGNvbnN0IHNvcnRJY29uVmlzaWJsZSA9IHBhcmFtLnNvcnRJY29uVmlzaWJsZSA/PyBwYXJhbS5zb3J0YWJsZSA/PyBGYWxzZUZuO1xuICAgIGNvbnN0IGVkaXRhYmxlID0gcGFyYW0uZWRpdGFibGUgPz8gcGFyYW0uZWRpdGFibGUgPz8gRmFsc2VGbjtcblxuICAgIHJldHVybiBuZXcgQ29sdW1uRGVmKFxuICAgICAgcGFyYW0ucHJvcGVydHkgPz8gJycsXG4gICAgICBwYXJhbS5oZWFkZXJMYWJlbCA/PyAnJyxcbiAgICAgIHBhcmFtLndpZHRoID8/IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgICBjbSxcbiAgICAgIGFtLFxuICAgICAgcGFyYW0ubWluV2lkdGggPz8gbmV3IFNpemUoMTAwLCAncHgnKSxcbiAgICAgIHBhcmFtLm1heFdpZHRoID8/IG5ldyBTaXplKDEwMCwgJ3B4JyksXG4gICAgICBwYXJhbS5zb3J0YWJsZSxcbiAgICAgIHBhcmFtLnNvcnRDb21wYXJhdG9yLFxuICAgICAgcGFyYW0uc29ydFN0YXRlLFxuICAgICAgcGFyYW0uc29ydFN0YXRlc09yZGVyLFxuICAgICAgc29ydEljb25WaXNpYmxlLFxuICAgICAgZWRpdGFibGUsXG4gICAgICBwYXJhbS5nZXRFZGl0UmVuZGVyZXJcbiAgICApO1xuICB9XG5cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export class Padding {
2
- constructor(top = 0, right = 0, bottom = 0, left = 0) {
3
- this.top = top;
4
- this.right = right;
5
- this.bottom = bottom;
6
- this.left = left;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFkZGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9kYXRhL3RhYmxlbW9kZWwvcGFkZGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sT0FBTztJQUNsQixZQUNTLE1BQWMsQ0FBQyxFQUNmLFFBQWdCLENBQUMsRUFDakIsU0FBaUIsQ0FBQyxFQUNsQixPQUFlLENBQUM7UUFIaEIsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUNsQixTQUFJLEdBQUosSUFBSSxDQUFZO0lBRXpCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBQYWRkaW5nIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRvcDogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgcmlnaHQ6IG51bWJlciA9IDAsXG4gICAgcHVibGljIGJvdHRvbTogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgbGVmdDogbnVtYmVyID0gMFxuICApIHtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuaWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLmlmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1BhZGRpbmd9IGZyb20gXCIuL3BhZGRpbmdcIjtcbmltcG9ydCB7QXJlYUlkZW50fSBmcm9tIFwiLi9hcmVhLWlkZW50LnR5cGVcIjtcbmltcG9ydCB7Q29sdW1uRGVmSWZ9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0FyZWFNb2RlbElmfSBmcm9tIFwiLi9hcmVhbW9kZWwvYXJlYS1tb2RlbC5pZlwiO1xuaW1wb3J0IHtGaWx0ZXJGdW5jdGlvbn0gZnJvbSBcIi4uL2NvbW1vbi9maWx0ZXItZnVuY3Rpb25cIjtcbmltcG9ydCB7U29ydEl0ZW19IGZyb20gXCIuLi9jb21tb24vc29ydC1pdGVtXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVNb2RlbElmIHtcblxuICBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZDtcblxuICBpc1NvcnRhYmxlKGNvbElkeDogbnVtYmVyKTogYm9vbGVhbjtcblxuICBpbml0KCk6IHZvaWQ7XG5cbiAgZ2V0Q29sdW1uQ291bnQoKTogbnVtYmVyO1xuXG4gIGdldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIpOiBudW1iZXI7XG5cbiAgZ2V0WFBvc0J5Q29sdW1uSW5kZXgoY29sdW1uSW5kZXg6IG51bWJlcik6IG51bWJlcjtcblxuICBnZXRBcmVhTW9kZWwocm93QXJlYUlkZW50OiBBcmVhSWRlbnQpOiBBcmVhTW9kZWxJZjtcblxuICBnZXRCb2R5TW9kZWwoKTogQXJlYU1vZGVsSWY7XG5cbiAgZ2V0Rml4ZWRMZWZ0Q29sdW1uQ291bnQoKTogbnVtYmVyO1xuXG4gIGdldEZpeGVkUmlnaHRDb2x1bW5Db3VudCgpOiBudW1iZXI7XG5cbiAgaXNIZWFkZXJWaXNpYmUoKTogYm9vbGVhbjtcblxuICBpc0Zvb3RlclZpc2liZSgpOiBib29sZWFuO1xuXG4gIGlzUm93Q2hlY2tib3hWaXNpYmxlKCk6IGJvb2xlYW47XG5cbiAgZ2V0Um93SGVpZ2h0KHJvd0FyZWFJZGVudDogQXJlYUlkZW50LCByb3dJbmRleDogbnVtYmVyKTogbnVtYmVyO1xuXG4gIGdldENvbHVtbkRlZihpbmRleDogbnVtYmVyKTogQ29sdW1uRGVmSWYgfCB1bmRlZmluZWQ7XG5cbiAgZ2V0Q29sdW1uRGVmcygpOiBDb2x1bW5EZWZJZltdIHwgdW5kZWZpbmVkO1xuXG4gIGdldENvbHVtblByb3BlcnR5KGNvbHVtbkluZGV4OiBudW1iZXIpOiBzdHJpbmc7XG5cbiAgZ2V0Qm9keVJvd0J5SW5kZXgocm93SW5kZXg6IG51bWJlcik6IGFueTtcblxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyO1xuXG4gIHNldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIsIHdpZHRoOiBudW1iZXIpOiB2b2lkO1xuXG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICByZWNhbGNTaXplKGNsaWVudFdpZHRoOiBudW1iZXIpOiB2b2lkO1xuXG4gIGdldFBhZGRpbmcoKTogUGFkZGluZztcblxuICBnZXRDb250ZW50SGVpZ2h0SW5QaXhlbCgpOiBudW1iZXI7XG5cbiAgZ2V0Q29udGVudFdpZHRoSW5QaXhlbCgpOiBudW1iZXI7XG5cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIGV4dGVybmFsRmlsdGVyQ2hhbmdlZDxUPihwcmVkaWN0Rm46IEZpbHRlckZ1bmN0aW9uPFQ+KTogdm9pZDtcblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,262 +0,0 @@
1
- import { Padding } from "./padding";
2
- import { DefaultRowHeights } from "../options/default-row-heights";
3
- /*
4
-
5
- +----------------+-------------------+--------------+
6
- | header/west | header/center | header/east |
7
- +----------------+-------------------+--------------+
8
- | | | |
9
- | body/west | body/center | body/east |
10
- | | | |
11
- +----------------+-------------------+--------------+
12
- | footer/west | footer/center | footer/east |
13
- +----------------+-------------------+--------------+
14
-
15
- */
16
- export class TableModel {
17
- constructor(headerAreaModel, bodyAreaModel, footerAreaModel, fixedLeftColumnCount = 0, fixedRightColumnCount = 0, rowCheckboxVisible = false, defaultRowHeights = new DefaultRowHeights(), columnDefs = [], columnSizes = [], overridingColumnWidth = -1, columnCount = 0) {
18
- this.headerAreaModel = headerAreaModel;
19
- this.bodyAreaModel = bodyAreaModel;
20
- this.footerAreaModel = footerAreaModel;
21
- this.fixedLeftColumnCount = fixedLeftColumnCount;
22
- this.fixedRightColumnCount = fixedRightColumnCount;
23
- this.rowCheckboxVisible = rowCheckboxVisible;
24
- this.defaultRowHeights = defaultRowHeights;
25
- this.columnDefs = columnDefs;
26
- this.columnSizes = columnSizes;
27
- this.overridingColumnWidth = overridingColumnWidth;
28
- this.columnCount = columnCount;
29
- this.rowCount = 0;
30
- this.contentHeightInPx = 0;
31
- this.contentWidthInPx = 0;
32
- // in case of a fixed header, left or right column, footer:
33
- this.padding = new Padding(0, 0, 0, 0); // the dimension of the 'body/center'
34
- this.xPositions = [];
35
- if (!this.columnCount) {
36
- if (this.columnDefs?.length) {
37
- this.columnCount = this.columnDefs.length;
38
- }
39
- else if (this.columnSizes?.length) {
40
- this.columnCount = this.columnSizes?.length;
41
- }
42
- }
43
- }
44
- init() {
45
- this.recalcSize(400);
46
- if (this.overridingColumnWidth === -1) {
47
- this.calcXPositions();
48
- }
49
- if (this.headerAreaModel) {
50
- this.headerAreaModel.init();
51
- }
52
- if (this.bodyAreaModel) {
53
- this.bodyAreaModel.init();
54
- }
55
- if (this.footerAreaModel) {
56
- this.footerAreaModel.init();
57
- }
58
- }
59
- getColumnCount() {
60
- return this.columnCount;
61
- }
62
- ;
63
- setColumnWidth(columnIndex, width) {
64
- width = Math.max(0, width);
65
- if (this.overridingColumnWidth !== -1) {
66
- this.overridingColumnWidth = width;
67
- }
68
- if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
69
- this.columnSizes[columnIndex] = width;
70
- }
71
- this.recalcContentWidthInPx();
72
- }
73
- getColumnWidth(columnIndex) {
74
- if (this.overridingColumnWidth !== -1) {
75
- return this.overridingColumnWidth;
76
- }
77
- if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
78
- return this.columnSizes[columnIndex];
79
- }
80
- return 0;
81
- }
82
- ;
83
- getXPosByColumnIndex(columnIndex) {
84
- if (columnIndex === 0) {
85
- return 0;
86
- }
87
- if (this.overridingColumnWidth > -1) {
88
- return this.overridingColumnWidth * columnIndex;
89
- }
90
- return this.xPositions[columnIndex];
91
- }
92
- recalcSize(clientWidth) {
93
- if (!this.columnDefs?.length && !this.columnSizes?.length) {
94
- this.columnSizes = new Array(this.getColumnCount()).fill(this.overridingColumnWidth);
95
- }
96
- if (this.columnDefs?.length) {
97
- this.columnSizes = this.columnDefs.map(def => {
98
- if (def.width.unit === '%' && clientWidth) {
99
- // only for a % value we have to check min and max:
100
- let px = Math.floor(def.width.value * clientWidth / 100);
101
- if (def.minWidth) {
102
- let pxMin = def.minWidth.unit === 'px' ? def.minWidth.value : Math.floor(def.minWidth.value * clientWidth / 100);
103
- px = Math.max(pxMin, px);
104
- }
105
- if (def.maxWidth) {
106
- let pxMax = def.maxWidth.unit === 'px' ? def.maxWidth.value : Math.floor(def.maxWidth.value * clientWidth / 100);
107
- px = Math.min(pxMax, px);
108
- }
109
- return px;
110
- }
111
- return def.width.value;
112
- });
113
- }
114
- const bodyModel = this.getAreaModel('body');
115
- this.rowCount = bodyModel.getRowCount();
116
- this.contentHeightInPx = this.getAreaHeight('body');
117
- this.recalcContentWidthInPx();
118
- const westWidth = this.getSideAreaWidth('west');
119
- const eastWidth = this.getSideAreaWidth('east');
120
- const headerHeight = this.getAreaHeight('header');
121
- const footerHeight = this.getAreaHeight('footer');
122
- this.padding = new Padding(headerHeight, eastWidth, footerHeight, westWidth);
123
- }
124
- getPadding() {
125
- return this.padding;
126
- }
127
- getContentHeightInPixel() {
128
- return this.contentHeightInPx;
129
- }
130
- getContentWidthInPixel() {
131
- return this.contentWidthInPx;
132
- }
133
- getRowHeight(rowAreaIdent, rowIndex) {
134
- return this.getAreaModel(rowAreaIdent).getRowHeight(rowIndex);
135
- }
136
- getModel(rowAreaIdent) {
137
- return this.getAreaModel(rowAreaIdent);
138
- }
139
- getAreaHeight(areaIdent) {
140
- const model = this.getModel(areaIdent);
141
- const rowCount = model.getRowCount();
142
- if (this.defaultRowHeights[areaIdent]) {
143
- return rowCount * this.defaultRowHeights[areaIdent];
144
- }
145
- let ret = 0;
146
- for (let i = 0; i < rowCount; i++) {
147
- ret = ret + model.getRowHeight(i);
148
- }
149
- return ret;
150
- }
151
- getSideAreaWidth(sideIdent) {
152
- const [cStart, cEnd] = this.getSideStartAndEndColumnIndex(sideIdent);
153
- let ret = 0;
154
- for (let i = cStart; i <= cEnd; i++) {
155
- ret = ret + this.getColumnWidth(i);
156
- }
157
- return ret;
158
- }
159
- getSideStartAndEndColumnIndex(sideIdent) {
160
- const c1 = this.getFixedLeftColumnCount();
161
- const c2 = this.getFixedRightColumnCount();
162
- let cStart = 0;
163
- let cEnd = this.columnCount - 1;
164
- if (sideIdent === 'west') {
165
- cEnd = c1 - 1;
166
- }
167
- else if (sideIdent === 'east') {
168
- cStart = this.columnCount - c2;
169
- }
170
- else {
171
- // center:
172
- cStart = c1;
173
- cEnd = this.columnCount - c2 - 1;
174
- }
175
- return [cStart, cEnd];
176
- }
177
- getColumnDef(index) {
178
- if (index < this.columnDefs.length) {
179
- return this.columnDefs[index];
180
- }
181
- return undefined;
182
- }
183
- getFixedLeftColumnCount() {
184
- return this.fixedLeftColumnCount;
185
- }
186
- getFixedRightColumnCount() {
187
- return this.fixedRightColumnCount;
188
- }
189
- getAreaModel(area) {
190
- if (area === 'header') {
191
- return this.headerAreaModel;
192
- }
193
- if (area === 'body') {
194
- return this.bodyAreaModel;
195
- }
196
- if (area === 'footer') {
197
- return this.footerAreaModel;
198
- }
199
- throw new Error("Wrong ident.");
200
- }
201
- getBodyModel() {
202
- return this.bodyAreaModel;
203
- }
204
- isFooterVisibe() {
205
- return (this.footerAreaModel?.getRowCount() ?? 0) > 0;
206
- }
207
- isHeaderVisibe() {
208
- return (this.headerAreaModel?.getRowCount() ?? 0) > 0;
209
- }
210
- isRowCheckboxVisible() {
211
- return this.rowCheckboxVisible;
212
- }
213
- externalFilterChanged(predictFn) {
214
- this.getAreaModel('body').externalFilterChanged(predictFn);
215
- }
216
- doSort(sortItems) {
217
- return this.getAreaModel('body').doSort(sortItems);
218
- }
219
- getColumnDefs() {
220
- return this.columnDefs;
221
- }
222
- getColumnProperty(columnIndex) {
223
- return this.columnDefs[columnIndex].property;
224
- }
225
- getBodyRowByIndex(rowIndex) {
226
- return this.getBodyModel().getRowByIndex(rowIndex);
227
- }
228
- isSortable(columnIndex) {
229
- if (this.columnDefs
230
- && columnIndex < this.columnDefs.length
231
- && this.columnDefs[columnIndex].sortable) {
232
- // @ts-ignore
233
- return this.columnDefs[columnIndex].sortable();
234
- }
235
- return false;
236
- }
237
- changeColumnOrder(sourceColumnIndex, targetColumnIndex) {
238
- this.arrayMove(this.columnDefs, sourceColumnIndex, targetColumnIndex);
239
- this.arrayMove(this.columnSizes, sourceColumnIndex, targetColumnIndex);
240
- this.headerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
241
- this.bodyAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
242
- this.footerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
243
- this.calcXPositions();
244
- }
245
- arrayMove(arr, fromIndex, toIndex) {
246
- const element = arr.splice(fromIndex, 1)[0];
247
- arr.splice(toIndex, 0, element);
248
- return arr;
249
- }
250
- recalcContentWidthInPx() {
251
- this.contentWidthInPx = this.getSideAreaWidth('center');
252
- }
253
- calcXPositions() {
254
- const columnCount = this.getColumnCount();
255
- this.xPositions = new Array(columnCount + 1);
256
- this.xPositions[0] = 0;
257
- for (let i = 0; i < columnCount; i++) {
258
- this.xPositions[i + 1] = this.getColumnWidth(i) + this.xPositions[i];
259
- }
260
- }
261
- }
262
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtbW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvZGF0YS90YWJsZW1vZGVsL3RhYmxlLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFLbEMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFNakU7Ozs7Ozs7Ozs7OztFQVlFO0FBQ0YsTUFBTSxPQUFPLFVBQVU7SUFVckIsWUFDa0IsZUFBNEIsRUFDNUIsYUFBMEIsRUFDMUIsZUFBNEIsRUFDNUIsdUJBQStCLENBQUMsRUFDaEMsd0JBQWdDLENBQUMsRUFDakMscUJBQThCLEtBQUssRUFDbkMsb0JBQXlDLElBQUksaUJBQWlCLEVBQUUsRUFDekUsYUFBNEIsRUFBRSxFQUM5QixjQUF3QixFQUFFLEVBQ3ZCLHdCQUFnQyxDQUFDLENBQUMsRUFDbEMsY0FBc0IsQ0FBQztRQVZqQixvQkFBZSxHQUFmLGVBQWUsQ0FBYTtRQUM1QixrQkFBYSxHQUFiLGFBQWEsQ0FBYTtRQUMxQixvQkFBZSxHQUFmLGVBQWUsQ0FBYTtRQUM1Qix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQVk7UUFDaEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFZO1FBQ2pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBaUI7UUFDbkMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUErQztRQUN6RSxlQUFVLEdBQVYsVUFBVSxDQUFvQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUN2QiwwQkFBcUIsR0FBckIscUJBQXFCLENBQWE7UUFDbEMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFuQnpCLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixzQkFBaUIsR0FBRyxDQUFDLENBQUM7UUFDdEIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FB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Q0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sY0FBYztRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNwQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEU7SUFDSCxDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RhYmxlTW9kZWxJZn0gZnJvbSBcIi4vdGFibGUtbW9kZWwuaWZcIjtcbmltcG9ydCB7UGFkZGluZ30gZnJvbSBcIi4vcGFkZGluZ1wiO1xuaW1wb3J0IHtBcmVhSWRlbnR9IGZyb20gXCIuL2FyZWEtaWRlbnQudHlwZVwiO1xuaW1wb3J0IHtBcmVhTW9kZWxJZn0gZnJvbSBcIi4vYXJlYW1vZGVsL2FyZWEtbW9kZWwuaWZcIjtcbmltcG9ydCB7U2lkZUlkZW50fSBmcm9tIFwiLi4vc2lkZS1pZGVudC50eXBlXCI7XG5pbXBvcnQge0RlZmF1bHRSb3dIZWlnaHRzSWZ9IGZyb20gXCIuLi9vcHRpb25zL2RlZmF1bHQtcm93LWhlaWdodHMuaWZcIjtcbmltcG9ydCB7RGVmYXVsdFJvd0hlaWdodHN9IGZyb20gXCIuLi9vcHRpb25zL2RlZmF1bHQtcm93LWhlaWdodHNcIjtcbmltcG9ydCB7Q29sdW1uRGVmSWZ9IGZyb20gXCIuL2NvbHVtbi9jb2x1bW4tZGVmLmlmXCI7XG5pbXBvcnQge0ZpbHRlckZ1bmN0aW9ufSBmcm9tIFwiLi4vY29tbW9uL2ZpbHRlci1mdW5jdGlvblwiO1xuaW1wb3J0IHtTb3J0SXRlbX0gZnJvbSBcIi4uL2NvbW1vbi9zb3J0LWl0ZW1cIjtcblxuXG4vKlxuXG4gKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLStcbiB8ICBoZWFkZXIvd2VzdCAgIHwgIGhlYWRlci9jZW50ZXIgICAgfCBoZWFkZXIvZWFzdCAgfFxuICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rXG4gfCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIHxcbiB8ICBib2R5L3dlc3QgICAgIHwgIGJvZHkvY2VudGVyICAgICAgfCBib2R5L2Vhc3QgICAgfFxuIHwgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICB8XG4gKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLStcbiB8ICBmb290ZXIvd2VzdCAgIHwgIGZvb3Rlci9jZW50ZXIgICAgfCBmb290ZXIvZWFzdCAgfFxuICstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rXG5cbiovXG5leHBvcnQgY2xhc3MgVGFibGVNb2RlbCBpbXBsZW1lbnRzIFRhYmxlTW9kZWxJZiB7XG5cbiAgcHJvdGVjdGVkIHJvd0NvdW50ID0gMDtcbiAgcHJvdGVjdGVkIGNvbnRlbnRIZWlnaHRJblB4ID0gMDtcbiAgcHJvdGVjdGVkIGNvbnRlbnRXaWR0aEluUHggPSAwO1xuXG4gIC8vIGluIGNhc2Ugb2YgYSBmaXhlZCBoZWFkZXIsIGxlZnQgb3IgcmlnaHQgY29sdW1uLCBmb290ZXI6XG4gIHByb3RlY3RlZCBwYWRkaW5nID0gbmV3IFBhZGRpbmcoMCwgMCwgMCwgMCk7IC8vIHRoZSBkaW1lbnNpb24gb2YgdGhlICdib2R5L2NlbnRlcidcbiAgcHJvdGVjdGVkIHhQb3NpdGlvbnM6IG51bWJlcltdID0gW107XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IGhlYWRlckFyZWFNb2RlbDogQXJlYU1vZGVsSWYsXG4gICAgcHVibGljIHJlYWRvbmx5IGJvZHlBcmVhTW9kZWw6IEFyZWFNb2RlbElmLFxuICAgIHB1YmxpYyByZWFkb25seSBmb290ZXJBcmVhTW9kZWw6IEFyZWFNb2RlbElmLFxuICAgIHB1YmxpYyByZWFkb25seSBmaXhlZExlZnRDb2x1bW5Db3VudDogbnVtYmVyID0gMCxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZml4ZWRSaWdodENvbHVtbkNvdW50OiBudW1iZXIgPSAwLFxuICAgIHB1YmxpYyByZWFkb25seSByb3dDaGVja2JveFZpc2libGU6IGJvb2xlYW4gPSBmYWxzZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVmYXVsdFJvd0hlaWdodHM6IERlZmF1bHRSb3dIZWlnaHRzSWYgPSBuZXcgRGVmYXVsdFJvd0hlaWdodHMoKSxcbiAgICBwdWJsaWMgY29sdW1uRGVmczogQ29sdW1uRGVmSWZbXSA9IFtdLFxuICAgIHB1YmxpYyBjb2x1bW5TaXplczogbnVtYmVyW10gPSBbXSxcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGluZ0NvbHVtbldpZHRoOiBudW1iZXIgPSAtMSxcbiAgICBwcm90ZWN0ZWQgY29sdW1uQ291bnQ6IG51bWJlciA9IDBcbiAgKSB7XG5cbiAgICBpZiAoIXRoaXMuY29sdW1uQ291bnQpIHtcbiAgICAgIGlmICh0aGlzLmNvbHVtbkRlZnM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50ID0gdGhpcy5jb2x1bW5EZWZzLmxlbmd0aDtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5jb2x1bW5TaXplcz8ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuY29sdW1uQ291bnQgPSB0aGlzLmNvbHVtblNpemVzPy5sZW5ndGg7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5pdCgpIHtcbiAgICB0aGlzLnJlY2FsY1NpemUoNDAwKTtcbiAgICBpZiAodGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggPT09IC0xKSB7XG4gICAgICB0aGlzLmNhbGNYUG9zaXRpb25zKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmhlYWRlckFyZWFNb2RlbCkge1xuICAgICAgdGhpcy5oZWFkZXJBcmVhTW9kZWwuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5ib2R5QXJlYU1vZGVsKSB7XG4gICAgICB0aGlzLmJvZHlBcmVhTW9kZWwuaW5pdCgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb290ZXJBcmVhTW9kZWwpIHtcbiAgICAgIHRoaXMuZm9vdGVyQXJlYU1vZGVsLmluaXQoKTtcbiAgICB9XG4gIH1cblxuICBnZXRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbkNvdW50O1xuICB9O1xuXG4gIHNldENvbHVtbldpZHRoKGNvbHVtbkluZGV4OiBudW1iZXIsIHdpZHRoOiBudW1iZXIpOiB2b2lkIHtcbiAgICB3aWR0aCA9IE1hdGgubWF4KDAsIHdpZHRoKTtcbiAgICBpZiAodGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggIT09IC0xKSB7XG4gICAgICB0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCA9IHdpZHRoO1xuICAgIH1cbiAgICBpZiAoY29sdW1uSW5kZXggPiAtMSAmJiBjb2x1bW5JbmRleCA8IHRoaXMuY29sdW1uU2l6ZXM/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5jb2x1bW5TaXplc1tjb2x1bW5JbmRleF0gPSB3aWR0aDtcbiAgICB9XG4gICAgdGhpcy5yZWNhbGNDb250ZW50V2lkdGhJblB4KCk7XG4gIH1cblxuICBnZXRDb2x1bW5XaWR0aChjb2x1bW5JbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBpZiAodGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggIT09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGg7XG4gICAgfVxuICAgIGlmIChjb2x1bW5JbmRleCA+IC0xICYmIGNvbHVtbkluZGV4IDwgdGhpcy5jb2x1bW5TaXplcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW5TaXplc1tjb2x1bW5JbmRleF07XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9O1xuXG4gIGdldFhQb3NCeUNvbHVtbkluZGV4KGNvbHVtbkluZGV4OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGlmIChjb2x1bW5JbmRleCA9PT0gMCkge1xuICAgICAgcmV0dXJuIDA7XG4gICAgfVxuICAgIGlmICh0aGlzLm92ZXJyaWRpbmdDb2x1bW5XaWR0aCA+IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcy5vdmVycmlkaW5nQ29sdW1uV2lkdGggKiBjb2x1bW5JbmRleDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMueFBvc2l0aW9uc1tjb2x1bW5JbmRleF07XG4gIH1cblxuICByZWNhbGNTaXplKGNsaWVudFdpZHRoOiBudW1iZXIpIHtcbiAgICBpZiAoIXRoaXMuY29sdW1uRGVmcz8ubGVuZ3RoICYmICF0aGlzLmNvbHVtblNpemVzPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuY29sdW1uU2l6ZXMgPSBuZXcgQXJyYXkodGhpcy5nZXRDb2x1bW5Db3VudCgpKS5maWxsKHRoaXMub3ZlcnJpZGluZ0NvbHVtbldpZHRoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY29sdW1uRGVmcz8ubGVuZ3RoKSB7XG4gICAgICB0aGlzLmNvbHVtblNpemVzID0gdGhpcy5jb2x1bW5EZWZzLm1hcChkZWYgPT4ge1xuICAgICAgICBpZiAoZGVmLndpZHRoLnVuaXQgPT09ICclJyAmJiBjbGllbnRXaWR0aCkge1xuICAgICAgICAgIC8vIG9ubHkgZm9yIGEgJSB2YWx1ZSB3ZSBoYXZlIHRvIGNoZWNrIG1pbiBhbmQgbWF4OlxuICAgICAgICAgIGxldCBweCA9IE1hdGguZmxvb3IoZGVmLndpZHRoLnZhbHVlICogY2xpZW50V2lkdGggLyAxMDApO1xuICAgICAgICAgIGlmIChkZWYubWluV2lkdGgpIHtcbiAgICAgICAgICAgIGxldCBweE1pbiA9IGRlZi5taW5XaWR0aC51bml0ID09PSAncHgnID8gZGVmLm1pbldpZHRoLnZhbHVlIDogTWF0aC5mbG9vcihkZWYubWluV2lkdGgudmFsdWUgKiBjbGllbnRXaWR0aCAvIDEwMCk7XG4gICAgICAgICAgICBweCA9IE1hdGgubWF4KHB4TWluLCBweCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkZWYubWF4V2lkdGgpIHtcbiAgICAgICAgICAgIGxldCBweE1heCA9IGRlZi5tYXhXaWR0aC51bml0ID09PSAncHgnID8gZGVmLm1heFdpZHRoLnZhbHVlIDogTWF0aC5mbG9vcihkZWYubWF4V2lkdGgudmFsdWUgKiBjbGllbnRXaWR0aCAvIDEwMCk7XG4gICAgICAgICAgICBweCA9IE1hdGgubWluKHB4TWF4LCBweCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBweDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGVmLndpZHRoLnZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYm9keU1vZGVsID0gdGhpcy5nZXRBcmVhTW9kZWwoJ2JvZHknKTtcbiAgICB0aGlzLnJvd0NvdW50ID0gYm9keU1vZGVsLmdldFJvd0NvdW50KCk7XG4gICAgdGhpcy5jb250ZW50SGVpZ2h0SW5QeCA9IHRoaXMuZ2V0QXJlYUhlaWdodCgnYm9keScpO1xuICAgIHRoaXMucmVjYWxjQ29udGVudFdpZHRoSW5QeCgpO1xuXG4gICAgY29uc3Qgd2VzdFdpZHRoID0gdGhpcy5nZXRTaWRlQXJlYVdpZHRoKCd3ZXN0Jyk7XG4gICAgY29uc3QgZWFzdFdpZHRoID0gdGhpcy5nZXRTaWRlQXJlYVdpZHRoKCdlYXN0Jyk7XG4gICAgY29uc3QgaGVhZGVySGVpZ2h0ID0gdGhpcy5nZXRBcmVhSGVpZ2h0KCdoZWFkZXInKTtcbiAgICBjb25zdCBmb290ZXJIZWlnaHQgPSB0aGlzLmdldEFyZWFIZWlnaHQoJ2Zvb3RlcicpO1xuXG4gICAgdGhpcy5wYWRkaW5nID0gbmV3IFBhZGRpbmcoXG4gICAgICBoZWFkZXJIZWlnaHQsXG4gICAgICBlYXN0V2lkdGgsXG4gICAgICBmb290ZXJIZWlnaHQsXG4gICAgICB3ZXN0V2lkdGgpO1xuICB9XG5cbiAgZ2V0UGFkZGluZygpOiBQYWRkaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wYWRkaW5nO1xuICB9XG5cbiAgZ2V0Q29udGVudEhlaWdodEluUGl4ZWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50SGVpZ2h0SW5QeDtcbiAgfVxuXG4gIGdldENvbnRlbnRXaWR0aEluUGl4ZWwoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50V2lkdGhJblB4O1xuICB9XG5cbiAgZ2V0Um93SGVpZ2h0KHJvd0FyZWFJZGVudDogQXJlYUlkZW50LCByb3dJbmRleDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5nZXRBcmVhTW9kZWwocm93QXJlYUlkZW50KS5nZXRSb3dIZWlnaHQocm93SW5kZXgpO1xuICB9XG5cbiAgZ2V0TW9kZWwocm93QXJlYUlkZW50OiBBcmVhSWRlbnQpOiBBcmVhTW9kZWxJZiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXJlYU1vZGVsKHJvd0FyZWFJZGVudCk7XG4gIH1cblxuICBnZXRBcmVhSGVpZ2h0KGFyZWFJZGVudDogQXJlYUlkZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBtb2RlbCA9IHRoaXMuZ2V0TW9kZWwoYXJlYUlkZW50KTtcbiAgICBjb25zdCByb3dDb3VudCA9IG1vZGVsLmdldFJvd0NvdW50KCk7XG4gICAgaWYgKHRoaXMuZGVmYXVsdFJvd0hlaWdodHNbYXJlYUlkZW50XSkge1xuICAgICAgcmV0dXJuIHJvd0NvdW50ICogdGhpcy5kZWZhdWx0Um93SGVpZ2h0c1thcmVhSWRlbnRdO1xuICAgIH1cblxuICAgIGxldCByZXQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcm93Q291bnQ7IGkrKykge1xuICAgICAgcmV0ID0gcmV0ICsgbW9kZWwuZ2V0Um93SGVpZ2h0KGkpO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgZ2V0U2lkZUFyZWFXaWR0aChzaWRlSWRlbnQ6IFNpZGVJZGVudCk6IG51bWJlciB7XG4gICAgY29uc3QgW2NTdGFydCwgY0VuZF0gPSB0aGlzLmdldFNpZGVTdGFydEFuZEVuZENvbHVtbkluZGV4KHNpZGVJZGVudCk7XG4gICAgbGV0IHJldCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IGNTdGFydDsgaSA8PSBjRW5kOyBpKyspIHtcbiAgICAgIHJldCA9IHJldCArIHRoaXMuZ2V0Q29sdW1uV2lkdGgoaSk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBnZXRTaWRlU3RhcnRBbmRFbmRDb2x1bW5JbmRleChzaWRlSWRlbnQ6IFNpZGVJZGVudCk6IFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGNvbnN0IGMxID0gdGhpcy5nZXRGaXhlZExlZnRDb2x1bW5Db3VudCgpO1xuICAgIGNvbnN0IGMyID0gdGhpcy5nZXRGaXhlZFJpZ2h0Q29sdW1uQ291bnQoKTtcblxuICAgIGxldCBjU3RhcnQgPSAwO1xuICAgIGxldCBjRW5kID0gdGhpcy5jb2x1bW5Db3VudCAtIDE7XG4gICAgaWYgKHNpZGVJZGVudCA9PT0gJ3dlc3QnKSB7XG4gICAgICBjRW5kID0gYzEgLSAxO1xuICAgIH0gZWxzZSBpZiAoc2lkZUlkZW50ID09PSAnZWFzdCcpIHtcbiAgICAgIGNTdGFydCA9IHRoaXMuY29sdW1uQ291bnQgLSBjMjtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2VudGVyOlxuICAgICAgY1N0YXJ0ID0gYzE7XG4gICAgICBjRW5kID0gdGhpcy5jb2x1bW5Db3VudCAtIGMyIC0gMTtcbiAgICB9XG4gICAgcmV0dXJuIFtjU3RhcnQsIGNFbmRdO1xuICB9XG5cbiAgZ2V0Q29sdW1uRGVmKGluZGV4OiBudW1iZXIpOiBDb2x1bW5EZWZJZiB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKGluZGV4IDwgdGhpcy5jb2x1bW5EZWZzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHRoaXMuY29sdW1uRGVmc1tpbmRleF07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXRGaXhlZExlZnRDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmZpeGVkTGVmdENvbHVtbkNvdW50O1xuICB9XG5cbiAgZ2V0Rml4ZWRSaWdodENvbHVtbkNvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZml4ZWRSaWdodENvbHVtbkNvdW50O1xuICB9XG5cbiAgZ2V0QXJlYU1vZGVsKGFyZWE6IEFyZWFJZGVudCk6IEFyZWFNb2RlbElmIHtcbiAgICBpZiAoYXJlYSA9PT0gJ2hlYWRlcicpIHtcbiAgICAgIHJldHVybiB0aGlzLmhlYWRlckFyZWFNb2RlbDtcbiAgICB9XG4gICAgaWYgKGFyZWEgPT09ICdib2R5Jykge1xuICAgICAgcmV0dXJuIHRoaXMuYm9keUFyZWFNb2RlbDtcbiAgICB9XG4gICAgaWYgKGFyZWEgPT09ICdmb290ZXInKSB7XG4gICAgICByZXR1cm4gdGhpcy5mb290ZXJBcmVhTW9kZWw7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihcIldyb25nIGlkZW50LlwiKTtcbiAgfVxuXG4gIGdldEJvZHlNb2RlbCgpOiBBcmVhTW9kZWxJZiB7XG4gICAgcmV0dXJuIHRoaXMuYm9keUFyZWFNb2RlbDtcbiAgfVxuXG4gIGlzRm9vdGVyVmlzaWJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5mb290ZXJBcmVhTW9kZWw/LmdldFJvd0NvdW50KCkgPz8gMCkgPiAwO1xuICB9XG5cbiAgaXNIZWFkZXJWaXNpYmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhlYWRlckFyZWFNb2RlbD8uZ2V0Um93Q291bnQoKSA/PyAwKSA+IDA7XG4gIH1cblxuICBpc1Jvd0NoZWNrYm94VmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5yb3dDaGVja2JveFZpc2libGU7XG4gIH1cblxuICBleHRlcm5hbEZpbHRlckNoYW5nZWQ8VD4ocHJlZGljdEZuOiBGaWx0ZXJGdW5jdGlvbjxUPik6IHZvaWQge1xuICAgIHRoaXMuZ2V0QXJlYU1vZGVsKCdib2R5JykuZXh0ZXJuYWxGaWx0ZXJDaGFuZ2VkKHByZWRpY3RGbik7XG4gIH1cblxuICBkb1NvcnQoc29ydEl0ZW1zOiBTb3J0SXRlbVtdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0QXJlYU1vZGVsKCdib2R5JykuZG9Tb3J0KHNvcnRJdGVtcyk7XG4gIH1cblxuICBnZXRDb2x1bW5EZWZzKCk6IENvbHVtbkRlZklmW10gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmNvbHVtbkRlZnM7XG4gIH1cblxuICBnZXRDb2x1bW5Qcm9wZXJ0eShjb2x1bW5JbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWZzW2NvbHVtbkluZGV4XS5wcm9wZXJ0eTtcbiAgfVxuXG4gIGdldEJvZHlSb3dCeUluZGV4KHJvd0luZGV4OiBudW1iZXIpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLmdldEJvZHlNb2RlbCgpLmdldFJvd0J5SW5kZXgocm93SW5kZXgpO1xuICB9XG5cbiAgaXNTb3J0YWJsZShjb2x1bW5JbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29sdW1uRGVmc1xuICAgICAgJiYgY29sdW1uSW5kZXggPCB0aGlzLmNvbHVtbkRlZnMubGVuZ3RoXG4gICAgICAmJiB0aGlzLmNvbHVtbkRlZnNbY29sdW1uSW5kZXhdLnNvcnRhYmxlKSB7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gdGhpcy5jb2x1bW5EZWZzW2NvbHVtbkluZGV4XS5zb3J0YWJsZSgpO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleDogbnVtYmVyLCB0YXJnZXRDb2x1bW5JbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5hcnJheU1vdmUodGhpcy5jb2x1bW5EZWZzLCBzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHRoaXMuYXJyYXlNb3ZlKHRoaXMuY29sdW1uU2l6ZXMsIHNvdXJjZUNvbHVtbkluZGV4LCB0YXJnZXRDb2x1bW5JbmRleCk7XG4gICAgdGhpcy5oZWFkZXJBcmVhTW9kZWw/LmNoYW5nZUNvbHVtbk9yZGVyKHNvdXJjZUNvbHVtbkluZGV4LCB0YXJnZXRDb2x1bW5JbmRleCk7XG4gICAgdGhpcy5ib2R5QXJlYU1vZGVsPy5jaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHRoaXMuZm9vdGVyQXJlYU1vZGVsPy5jaGFuZ2VDb2x1bW5PcmRlcihzb3VyY2VDb2x1bW5JbmRleCwgdGFyZ2V0Q29sdW1uSW5kZXgpO1xuICAgIHRoaXMuY2FsY1hQb3NpdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXJyYXlNb3ZlKGFycjogYW55W10sIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gYXJyLnNwbGljZShmcm9tSW5kZXgsIDEpWzBdO1xuICAgIGFyci5zcGxpY2UodG9JbmRleCwgMCwgZWxlbWVudCk7XG4gICAgcmV0dXJuIGFycjtcbiAgfVxuXG4gIHByaXZhdGUgcmVjYWxjQ29udGVudFdpZHRoSW5QeCgpIHtcbiAgICB0aGlzLmNvbnRlbnRXaWR0aEluUHggPSB0aGlzLmdldFNpZGVBcmVhV2lkdGgoJ2NlbnRlcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjWFBvc2l0aW9ucygpIHtcbiAgICBjb25zdCBjb2x1bW5Db3VudCA9IHRoaXMuZ2V0Q29sdW1uQ291bnQoKTtcbiAgICB0aGlzLnhQb3NpdGlvbnMgPSBuZXcgQXJyYXkoY29sdW1uQ291bnQgKyAxKTtcbiAgICB0aGlzLnhQb3NpdGlvbnNbMF0gPSAwO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sdW1uQ291bnQ7IGkrKykge1xuICAgICAgdGhpcy54UG9zaXRpb25zW2kgKyAxXSA9IHRoaXMuZ2V0Q29sdW1uV2lkdGgoaSkgKyB0aGlzLnhQb3NpdGlvbnNbaV07XG4gICAgfVxuICB9XG5cblxufVxuXG5cbiJdfQ==