@guiexpert/table 1.1.17 → 1.1.20

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 (326) hide show
  1. package/.eslintrc.json +16 -0
  2. package/dist/README.md +101 -0
  3. package/dist/css/main.css +350 -0
  4. package/dist/css/table-classes.css +42 -0
  5. package/dist/css/table-color-classes.css +98 -0
  6. package/dist/css/table-color-vars.css +158 -0
  7. package/dist/css/table-tree.css +53 -0
  8. package/dist/index.cjs +351 -0
  9. package/{index.d.ts → dist/index.d.ts} +3 -0
  10. package/{index.js → dist/index.js} +902 -831
  11. package/dist/lib/common/decorator/avoid-double-execution.decorator.d.ts +7 -0
  12. package/{lib → dist/lib}/table/event-listener.if.d.ts +3 -1
  13. package/dist/lib/table/focus/event-focus-changed-listener.if.d.ts +4 -0
  14. package/{lib → dist/lib}/table/focus/focus-model.d.ts +6 -0
  15. package/dist/lib/table/focus/focus-model.if.d.ts +12 -0
  16. package/dist/lib/table/renderer/positive-and-negative-number-renderer.d.ts +8 -0
  17. package/dist/lib/table/selection/event-selection-changed-listener.if.d.ts +4 -0
  18. package/{lib → dist/lib}/table/selection/multi-rows-selection-model.d.ts +9 -0
  19. package/{lib → dist/lib}/table/selection/selection-model.d.ts +7 -0
  20. package/{lib → dist/lib}/table/selection/selection-model.if.d.ts +4 -0
  21. package/{lib → dist/lib}/table/table-scope.d.ts +6 -2
  22. package/dist/package.json +51 -0
  23. package/doc.css +1565 -0
  24. package/package.json +27 -8
  25. package/patch.js +16 -0
  26. package/src/index.ts +176 -0
  27. package/src/lib/common/decorator/avoid-double-execution.decorator.ts +21 -0
  28. package/src/lib/table/action/action-id.type.ts +36 -0
  29. package/src/lib/table/action/on-action-triggered.if.ts +14 -0
  30. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +39 -0
  31. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +7 -0
  32. package/src/lib/table/action/shortcut.service.ts +162 -0
  33. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +35 -0
  34. package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
  35. package/src/lib/table/checkbox/checkbox-model.ts +62 -0
  36. package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
  37. package/src/lib/table/color/color-rgb.if.ts +12 -0
  38. package/src/lib/table/color/color-rgb.ts +10 -0
  39. package/src/lib/table/color/ge-css-color-util.ts +43 -0
  40. package/src/lib/table/color/three-color-gradient-arg.if.ts +15 -0
  41. package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
  42. package/src/lib/table/color/two-color-gradient-arg.if.ts +12 -0
  43. package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
  44. package/src/lib/table/css-vars.ts +243 -0
  45. package/src/lib/table/data/chunk/chunk.data-event.if.ts +8 -0
  46. package/src/lib/table/data/chunk/chunk.data-event.ts +27 -0
  47. package/src/lib/table/data/chunk/request-chunk.if.ts +9 -0
  48. package/src/lib/table/data/chunk/request-chunk.ts +15 -0
  49. package/src/lib/table/data/common/aligns.ts +42 -0
  50. package/src/lib/table/data/common/area-map-factory.ts +20 -0
  51. package/src/lib/table/data/common/area-map.ts +18 -0
  52. package/src/lib/table/data/common/area-map.type.ts +5 -0
  53. package/src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts +21 -0
  54. package/src/lib/table/data/common/args-render-cell-div.ts +34 -0
  55. package/src/lib/table/data/common/boolean-function.ts +16 -0
  56. package/src/lib/table/data/common/cell-range.ts +66 -0
  57. package/src/lib/table/data/common/checkbox-column-def.ts +31 -0
  58. package/src/lib/table/data/common/checked-type.ts +6 -0
  59. package/src/lib/table/data/common/event/ge-cell-indices.ts +12 -0
  60. package/src/lib/table/data/common/event/ge-key-event.ts +15 -0
  61. package/src/lib/table/data/common/event/ge-model-change-event.ts +16 -0
  62. package/src/lib/table/data/common/event/ge-mouse-event.ts +41 -0
  63. package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +58 -0
  64. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +27 -0
  65. package/src/lib/table/data/common/filter-function.ts +9 -0
  66. package/src/lib/table/data/common/get-t.ts +7 -0
  67. package/src/lib/table/data/common/index-and-px.ts +12 -0
  68. package/src/lib/table/data/common/size.if.ts +8 -0
  69. package/src/lib/table/data/common/size.ts +9 -0
  70. package/src/lib/table/data/common/sizes.ts +35 -0
  71. package/src/lib/table/data/common/sort-item.ts +14 -0
  72. package/src/lib/table/data/common/sort-state.type.ts +7 -0
  73. package/src/lib/table/data/common/tree-arrow.type.ts +8 -0
  74. package/src/lib/table/data/common/tree-row-if.ts +15 -0
  75. package/src/lib/table/data/common/tree-row.ts +22 -0
  76. package/src/lib/table/data/common/value-label.if.ts +6 -0
  77. package/src/lib/table/data/common/value-label.ts +13 -0
  78. package/src/lib/table/data/div-scope.type.ts +14 -0
  79. package/src/lib/table/data/event/mouse-target-data.ts +48 -0
  80. package/src/lib/table/data/geo-data.ts +16 -0
  81. package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
  82. package/src/lib/table/data/options/auto-restore-options.ts +50 -0
  83. package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
  84. package/src/lib/table/data/options/default-row-heights.ts +10 -0
  85. package/src/lib/table/data/options/header-group-options.if.ts +9 -0
  86. package/src/lib/table/data/options/header-group-options.ts +23 -0
  87. package/src/lib/table/data/options/icon.if.ts +20 -0
  88. package/src/lib/table/data/options/icon.ts +10 -0
  89. package/src/lib/table/data/options/sorted-options.if.ts +13 -0
  90. package/src/lib/table/data/options/sorted-options.ts +15 -0
  91. package/src/lib/table/data/options/table-options.if.ts +240 -0
  92. package/src/lib/table/data/options/table-options.ts +68 -0
  93. package/src/lib/table/data/options/tree-options.if.ts +10 -0
  94. package/src/lib/table/data/options/tree-options.ts +32 -0
  95. package/src/lib/table/data/side-ident.type.ts +4 -0
  96. package/src/lib/table/data/table-model-and-options.if.ts +11 -0
  97. package/src/lib/table/data/table-model-and-options.ts +16 -0
  98. package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
  99. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +184 -0
  100. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +63 -0
  101. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +236 -0
  102. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +126 -0
  103. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +28 -0
  104. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +120 -0
  105. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +224 -0
  106. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +192 -0
  107. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +117 -0
  108. package/src/lib/table/data/tablemodel/areamodel/async-area-model-object-array.ts +110 -0
  109. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +64 -0
  110. package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
  111. package/src/lib/table/data/tablemodel/areamodel/object-array-holder.if.ts +8 -0
  112. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +172 -0
  113. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
  114. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
  115. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
  116. package/src/lib/table/data/tablemodel/column/column-def.if.ts +141 -0
  117. package/src/lib/table/data/tablemodel/column/column-def.ts +108 -0
  118. package/src/lib/table/data/tablemodel/padding.ts +12 -0
  119. package/src/lib/table/data/tablemodel/table-model.if.ts +256 -0
  120. package/src/lib/table/data/tablemodel/table-model.ts +542 -0
  121. package/src/lib/table/ele-scope.ts +309 -0
  122. package/src/lib/table/event-adapter.ts +43 -0
  123. package/src/lib/table/event-listener.if.ts +32 -0
  124. package/src/lib/table/factory/table-factory.ts +379 -0
  125. package/src/lib/table/factory/tree-factory.ts +52 -0
  126. package/src/lib/table/focus/event-focus-changed-listener.if.ts +8 -0
  127. package/src/lib/table/focus/focus-model.if.ts +20 -0
  128. package/src/lib/table/focus/focus-model.ts +76 -0
  129. package/src/lib/table/focus/focus.type.ts +4 -0
  130. package/src/lib/table/input-handler.ts +48 -0
  131. package/src/lib/table/instanceof-workaround.ts +41 -0
  132. package/src/lib/table/license-manager.ts +47 -0
  133. package/src/lib/table/mouse-handler.ts +307 -0
  134. package/src/lib/table/render-scope.ts +1440 -0
  135. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +123 -0
  136. package/src/lib/table/renderer/cell-render.if.ts +16 -0
  137. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +63 -0
  138. package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
  139. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +39 -0
  140. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
  141. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
  142. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
  143. package/src/lib/table/renderer/edit/edit-cell-renderer.type.ts +3 -0
  144. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
  145. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +15 -0
  146. package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
  147. package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
  148. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
  149. package/src/lib/table/renderer/number-cell-progress-bar-cell-renderer.ts +57 -0
  150. package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
  151. package/src/lib/table/renderer/positive-and-negative-number-renderer.ts +45 -0
  152. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +60 -0
  153. package/src/lib/table/renderer/renderer-cleanup-fn.type.ts +1 -0
  154. package/src/lib/table/renderer/renderer.ts +11 -0
  155. package/src/lib/table/renderer/star-rating-cell-renderer.ts +45 -0
  156. package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
  157. package/src/lib/table/selection/event-selection-changed-listener.if.ts +8 -0
  158. package/src/lib/table/selection/multi-rows-selection-model.ts +118 -0
  159. package/src/lib/table/selection/selection-model.if.ts +56 -0
  160. package/src/lib/table/selection/selection-model.ts +182 -0
  161. package/src/lib/table/selection/selection-service.ts +129 -0
  162. package/src/lib/table/selection/selection.type.ts +6 -0
  163. package/src/lib/table/service/abstract-store-state.service.ts +105 -0
  164. package/src/lib/table/service/convenience-dom.service.ts +574 -0
  165. package/src/lib/table/service/copy-service.if.ts +45 -0
  166. package/src/lib/table/service/copy-service.ts +130 -0
  167. package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
  168. package/src/lib/table/service/data/html-style.type.ts +1 -0
  169. package/src/lib/table/service/dom-service.if.ts +18 -0
  170. package/src/lib/table/service/ge-filter.service.ts +123 -0
  171. package/src/lib/table/service/simple-dom-service.ts +55 -0
  172. package/src/lib/table/service/sorter.service.ts +30 -0
  173. package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
  174. package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
  175. package/src/lib/table/service/store-state-sorting.service.ts +41 -0
  176. package/src/lib/table/service/tree-row.service.ts +32 -0
  177. package/src/lib/table/table-api.ts +234 -0
  178. package/src/lib/table/table-scope.ts +770 -0
  179. package/tsconfig.json +21 -0
  180. package/tsconfig.lib.json +10 -0
  181. package/tsconfig.spec.json +25 -0
  182. package/vite.config.ts +56 -0
  183. package/index.cjs +0 -351
  184. package/lib/table/focus/focus-model.if.d.ts +0 -8
  185. package/lib/table/renderer/positive-and-negative-number-renderer.d.ts +0 -4
  186. /package/{lib → dist/lib}/table/action/action-id.type.d.ts +0 -0
  187. /package/{lib → dist/lib}/table/action/on-action-triggered.if.d.ts +0 -0
  188. /package/{lib → dist/lib}/table/action/osx-shortcut-actionId-mapping.d.ts +0 -0
  189. /package/{lib → dist/lib}/table/action/shortcut-actionid-mapping.type.d.ts +0 -0
  190. /package/{lib → dist/lib}/table/action/shortcut.service.d.ts +0 -0
  191. /package/{lib → dist/lib}/table/action/windows-shortcut-actionId-mapping.d.ts +0 -0
  192. /package/{lib → dist/lib}/table/checkbox/checkbox-model.d.ts +0 -0
  193. /package/{lib → dist/lib}/table/checkbox/checkbox-model.if.d.ts +0 -0
  194. /package/{lib → dist/lib}/table/checkbox/tree-checkbox-model.d.ts +0 -0
  195. /package/{lib → dist/lib}/table/color/color-rgb.d.ts +0 -0
  196. /package/{lib → dist/lib}/table/color/color-rgb.if.d.ts +0 -0
  197. /package/{lib → dist/lib}/table/color/ge-css-color-util.d.ts +0 -0
  198. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.d.ts +0 -0
  199. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.if.d.ts +0 -0
  200. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.d.ts +0 -0
  201. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.if.d.ts +0 -0
  202. /package/{lib → dist/lib}/table/css-vars.d.ts +0 -0
  203. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.d.ts +0 -0
  204. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.if.d.ts +0 -0
  205. /package/{lib → dist/lib}/table/data/chunk/request-chunk.d.ts +0 -0
  206. /package/{lib → dist/lib}/table/data/chunk/request-chunk.if.d.ts +0 -0
  207. /package/{lib → dist/lib}/table/data/common/aligns.d.ts +0 -0
  208. /package/{lib → dist/lib}/table/data/common/area-map-factory.d.ts +0 -0
  209. /package/{lib → dist/lib}/table/data/common/area-map.d.ts +0 -0
  210. /package/{lib → dist/lib}/table/data/common/area-map.type.d.ts +0 -0
  211. /package/{lib → dist/lib}/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +0 -0
  212. /package/{lib → dist/lib}/table/data/common/args-render-cell-div.d.ts +0 -0
  213. /package/{lib → dist/lib}/table/data/common/boolean-function.d.ts +0 -0
  214. /package/{lib → dist/lib}/table/data/common/cell-range.d.ts +0 -0
  215. /package/{lib → dist/lib}/table/data/common/checkbox-column-def.d.ts +0 -0
  216. /package/{lib → dist/lib}/table/data/common/checked-type.d.ts +0 -0
  217. /package/{lib → dist/lib}/table/data/common/event/ge-cell-indices.d.ts +0 -0
  218. /package/{lib → dist/lib}/table/data/common/event/ge-key-event.d.ts +0 -0
  219. /package/{lib → dist/lib}/table/data/common/event/ge-model-change-event.d.ts +0 -0
  220. /package/{lib → dist/lib}/table/data/common/event/ge-mouse-event.d.ts +0 -0
  221. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.d.ts +0 -0
  222. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.if.d.ts +0 -0
  223. /package/{lib → dist/lib}/table/data/common/filter-function.d.ts +0 -0
  224. /package/{lib → dist/lib}/table/data/common/get-t.d.ts +0 -0
  225. /package/{lib → dist/lib}/table/data/common/index-and-px.d.ts +0 -0
  226. /package/{lib → dist/lib}/table/data/common/size.d.ts +0 -0
  227. /package/{lib → dist/lib}/table/data/common/size.if.d.ts +0 -0
  228. /package/{lib → dist/lib}/table/data/common/sizes.d.ts +0 -0
  229. /package/{lib → dist/lib}/table/data/common/sort-item.d.ts +0 -0
  230. /package/{lib → dist/lib}/table/data/common/sort-state.type.d.ts +0 -0
  231. /package/{lib → dist/lib}/table/data/common/tree-arrow.type.d.ts +0 -0
  232. /package/{lib → dist/lib}/table/data/common/tree-row-if.d.ts +0 -0
  233. /package/{lib → dist/lib}/table/data/common/tree-row.d.ts +0 -0
  234. /package/{lib → dist/lib}/table/data/common/value-label.d.ts +0 -0
  235. /package/{lib → dist/lib}/table/data/common/value-label.if.d.ts +0 -0
  236. /package/{lib → dist/lib}/table/data/div-scope.type.d.ts +0 -0
  237. /package/{lib → dist/lib}/table/data/event/mouse-target-data.d.ts +0 -0
  238. /package/{lib → dist/lib}/table/data/geo-data.d.ts +0 -0
  239. /package/{lib → dist/lib}/table/data/options/auto-restore-options.d.ts +0 -0
  240. /package/{lib → dist/lib}/table/data/options/auto-restore-options.if.d.ts +0 -0
  241. /package/{lib → dist/lib}/table/data/options/default-row-heights.d.ts +0 -0
  242. /package/{lib → dist/lib}/table/data/options/default-row-heights.if.d.ts +0 -0
  243. /package/{lib → dist/lib}/table/data/options/header-group-options.d.ts +0 -0
  244. /package/{lib → dist/lib}/table/data/options/header-group-options.if.d.ts +0 -0
  245. /package/{lib → dist/lib}/table/data/options/icon.d.ts +0 -0
  246. /package/{lib → dist/lib}/table/data/options/icon.if.d.ts +0 -0
  247. /package/{lib → dist/lib}/table/data/options/sorted-options.d.ts +0 -0
  248. /package/{lib → dist/lib}/table/data/options/sorted-options.if.d.ts +0 -0
  249. /package/{lib → dist/lib}/table/data/options/table-options.d.ts +0 -0
  250. /package/{lib → dist/lib}/table/data/options/table-options.if.d.ts +0 -0
  251. /package/{lib → dist/lib}/table/data/options/tree-options.d.ts +0 -0
  252. /package/{lib → dist/lib}/table/data/options/tree-options.if.d.ts +0 -0
  253. /package/{lib → dist/lib}/table/data/side-ident.type.d.ts +0 -0
  254. /package/{lib → dist/lib}/table/data/table-model-and-options.d.ts +0 -0
  255. /package/{lib → dist/lib}/table/data/table-model-and-options.if.d.ts +0 -0
  256. /package/{lib → dist/lib}/table/data/tablemodel/area-ident.type.d.ts +0 -0
  257. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -0
  258. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +0 -0
  259. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +0 -0
  260. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -0
  261. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -0
  262. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -0
  263. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -0
  264. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.d.ts +0 -0
  265. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -0
  266. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +0 -0
  267. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -0
  268. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts +0 -0
  269. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/object-array-holder.if.d.ts +0 -0
  270. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +0 -0
  271. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.d.ts +0 -0
  272. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.if.d.ts +0 -0
  273. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +0 -0
  274. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.d.ts +0 -0
  275. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.if.d.ts +0 -0
  276. /package/{lib → dist/lib}/table/data/tablemodel/padding.d.ts +0 -0
  277. /package/{lib → dist/lib}/table/data/tablemodel/table-model.d.ts +0 -0
  278. /package/{lib → dist/lib}/table/data/tablemodel/table-model.if.d.ts +0 -0
  279. /package/{lib → dist/lib}/table/ele-scope.d.ts +0 -0
  280. /package/{lib → dist/lib}/table/event-adapter.d.ts +0 -0
  281. /package/{lib → dist/lib}/table/factory/table-factory.d.ts +0 -0
  282. /package/{lib → dist/lib}/table/factory/tree-factory.d.ts +0 -0
  283. /package/{lib → dist/lib}/table/focus/focus.type.d.ts +0 -0
  284. /package/{lib → dist/lib}/table/input-handler.d.ts +0 -0
  285. /package/{lib → dist/lib}/table/instanceof-workaround.d.ts +0 -0
  286. /package/{lib → dist/lib}/table/license-manager.d.ts +0 -0
  287. /package/{lib → dist/lib}/table/mouse-handler.d.ts +0 -0
  288. /package/{lib → dist/lib}/table/render-scope.d.ts +0 -0
  289. /package/{lib → dist/lib}/table/renderer/cell-group-ext-cell-renderer.d.ts +0 -0
  290. /package/{lib → dist/lib}/table/renderer/cell-render.if.d.ts +0 -0
  291. /package/{lib → dist/lib}/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +0 -0
  292. /package/{lib → dist/lib}/table/renderer/checkbox-cell-renderer.d.ts +0 -0
  293. /package/{lib → dist/lib}/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -0
  294. /package/{lib → dist/lib}/table/renderer/date-to-iso-cell-renderer.d.ts +0 -0
  295. /package/{lib → dist/lib}/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -0
  296. /package/{lib → dist/lib}/table/renderer/date-to-tec-cell-renderer.d.ts +0 -0
  297. /package/{lib → dist/lib}/table/renderer/edit/edit-cell-renderer.type.d.ts +0 -0
  298. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe-for-number.d.ts +0 -0
  299. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe.if.d.ts +0 -0
  300. /package/{lib → dist/lib}/table/renderer/edit/input-cell-renderer.d.ts +0 -0
  301. /package/{lib → dist/lib}/table/renderer/edit/select-cell-renderer.d.ts +0 -0
  302. /package/{lib → dist/lib}/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -0
  303. /package/{lib → dist/lib}/table/renderer/number-cell-progress-bar-cell-renderer.d.ts +0 -0
  304. /package/{lib → dist/lib}/table/renderer/number-cell-renderer.d.ts +0 -0
  305. /package/{lib → dist/lib}/table/renderer/progress-bar-cell-renderer.d.ts +0 -0
  306. /package/{lib → dist/lib}/table/renderer/renderer-cleanup-fn.type.d.ts +0 -0
  307. /package/{lib → dist/lib}/table/renderer/renderer.d.ts +0 -0
  308. /package/{lib → dist/lib}/table/renderer/star-rating-cell-renderer.d.ts +0 -0
  309. /package/{lib → dist/lib}/table/renderer/true-false-cell-renderer.d.ts +0 -0
  310. /package/{lib → dist/lib}/table/selection/selection-service.d.ts +0 -0
  311. /package/{lib → dist/lib}/table/selection/selection.type.d.ts +0 -0
  312. /package/{lib → dist/lib}/table/service/abstract-store-state.service.d.ts +0 -0
  313. /package/{lib → dist/lib}/table/service/convenience-dom.service.d.ts +0 -0
  314. /package/{lib → dist/lib}/table/service/copy-service.d.ts +0 -0
  315. /package/{lib → dist/lib}/table/service/copy-service.if.d.ts +0 -0
  316. /package/{lib → dist/lib}/table/service/data/collapsed-expanded.data.d.ts +0 -0
  317. /package/{lib → dist/lib}/table/service/data/html-style.type.d.ts +0 -0
  318. /package/{lib → dist/lib}/table/service/dom-service.if.d.ts +0 -0
  319. /package/{lib → dist/lib}/table/service/ge-filter.service.d.ts +0 -0
  320. /package/{lib → dist/lib}/table/service/simple-dom-service.d.ts +0 -0
  321. /package/{lib → dist/lib}/table/service/sorter.service.d.ts +0 -0
  322. /package/{lib → dist/lib}/table/service/store-state-collapsed-expand.service.d.ts +0 -0
  323. /package/{lib → dist/lib}/table/service/store-state-scroll-pos.service.d.ts +0 -0
  324. /package/{lib → dist/lib}/table/service/store-state-sorting.service.d.ts +0 -0
  325. /package/{lib → dist/lib}/table/service/tree-row.service.d.ts +0 -0
  326. /package/{lib → dist/lib}/table/table-api.d.ts +0 -0
@@ -0,0 +1,542 @@
1
+ import { TableModelIf } from "./table-model.if";
2
+ import { Padding } from "./padding";
3
+ import { AreaIdent } from "./area-ident.type";
4
+ import { AreaModelIf } from "./areamodel/area-model.if";
5
+ import { SideIdent } from "../side-ident.type";
6
+ import { DefaultRowHeightsIf } from "../options/default-row-heights.if";
7
+ import { DefaultRowHeights } from "../options/default-row-heights";
8
+ import { ColumnDefIf } from "./column/column-def.if";
9
+ import { FilterFunction } from "../common/filter-function";
10
+ import { SortItem } from "../common/sort-item";
11
+ import { SelectionModelIf } from "../../selection/selection-model.if";
12
+ import { GetT } from "../common/get-t";
13
+ import { CheckboxModel } from "../../checkbox/checkbox-model";
14
+ import {isCheckboxColumnDef} from "../../instanceof-workaround";
15
+
16
+
17
+ /**
18
+ * This is a default implementation of TableModelIf.
19
+ * Ths TableModel is on one hand a container for the header, body, and footer models
20
+ * (see : #getAreaModel, and #AreaModelIf), and on the other hand the master of
21
+ * the column information (#getColumnCount(), #getColumnWidth(columnIndex: number)).
22
+ *
23
+ * If getFixedLeftColumnCount() returns a value greater than 0, a fixed west area will be rendered in the
24
+ * header, body, and footer. A value greater than 0 for getFixedLeftColumnCount()
25
+ * will result in the presence of an east area.
26
+ *
27
+ * <pre>
28
+ * +----------------+-------------------+--------------+
29
+ * | header/west | header/center | header/east |
30
+ * +----------------+-------------------+--------------+
31
+ * | body/west | body/center | body/east |
32
+ * +----------------+-------------------+--------------+
33
+ * | footer/west | footer/center | footer/east |
34
+ * +----------------+-------------------+--------------+ </pre>
35
+ *
36
+ */
37
+ export class TableModel implements TableModelIf {
38
+
39
+ protected rowCount = 0;
40
+ protected contentHeightInPx = 0;
41
+ protected contentWidthInPx = 0;
42
+
43
+ // in case of a fixed header, left or right column, footer:
44
+ protected padding = new Padding(0, 0, 0, 0); // the dimension of the 'body/center'
45
+ protected xPositions: number[] = [];
46
+
47
+ constructor(
48
+ public readonly headerAreaModel: AreaModelIf,
49
+ public readonly bodyAreaModel: AreaModelIf,
50
+ public readonly footerAreaModel: AreaModelIf,
51
+ public readonly fixedLeftColumnCount: number = 0,
52
+ public readonly fixedRightColumnCount: number = 0,
53
+ public readonly rowCheckboxVisible: boolean = false,
54
+ public readonly defaultRowHeights: DefaultRowHeightsIf = new DefaultRowHeights(),
55
+ public columnDefs: ColumnDefIf[] = [],
56
+ public columnSizes: number[] = [],
57
+ protected overridingColumnWidth: number = -1,
58
+ protected columnCount: number = 0,
59
+ protected parentSize: number = 400, // can be important when we have percentage widthes,
60
+ public readonly getSelectionModel: GetT<SelectionModelIf> = () => undefined
61
+ ) {
62
+ headerAreaModel.areaIdent = "header";
63
+ bodyAreaModel.areaIdent = "body";
64
+ footerAreaModel.areaIdent = "footer";
65
+ if (!this.columnCount) {
66
+ if (this.columnDefs?.length) {
67
+ this.columnCount = this.columnDefs.length;
68
+ } else if (this.columnSizes?.length) {
69
+ this.columnCount = this.columnSizes?.length;
70
+ }
71
+ }
72
+ if (this.columnDefs?.length
73
+ && isCheckboxColumnDef(this.columnDefs[0])
74
+ && !bodyAreaModel.rowSelectionModel) {
75
+ bodyAreaModel.rowSelectionModel = new CheckboxModel();
76
+ }
77
+ }
78
+
79
+ init() {
80
+ this.recalcSize(this.parentSize);
81
+ if (this.overridingColumnWidth === -1) {
82
+ this.calcXPositions();
83
+ }
84
+ if (this.headerAreaModel) {
85
+ this.headerAreaModel.init();
86
+ }
87
+ if (this.bodyAreaModel) {
88
+ this.bodyAreaModel.init();
89
+ }
90
+ if (this.footerAreaModel) {
91
+ this.footerAreaModel.init();
92
+ }
93
+ }
94
+
95
+ /**
96
+ * Retrieves the count of columns in the current instance.
97
+ *
98
+ * @return {number} The count of columns.
99
+ */
100
+ getColumnCount(): number {
101
+ return this.columnCount;
102
+ };
103
+
104
+ /**
105
+ * Sets the width in pixel of a column (by columnIndex) in a table.
106
+ *
107
+ * @param {number} columnIndex - The index of the column.
108
+ * @param {number} width - The desired width of the column.
109
+ * @return {void}
110
+ */
111
+ setColumnWidth(columnIndex: number, width: number): void {
112
+ width = Math.max(0, width);
113
+ if (this.overridingColumnWidth !== -1) {
114
+ this.overridingColumnWidth = width;
115
+ }
116
+ if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
117
+ this.columnSizes[columnIndex] = width;
118
+ }
119
+ this.recalcContentWidthInPx();
120
+ }
121
+
122
+ /**
123
+ * Retrieves the width of a column specified by its index.
124
+ *
125
+ * @param {number} columnIndex - The index of the desired column.
126
+ * @return {number} - The width of the specified column.
127
+ */
128
+ getColumnWidth(columnIndex: number): number {
129
+ const cd = this.getColumnDef(columnIndex);
130
+ if (cd && cd.isVisible && !cd.isVisible()) {
131
+ return 0;
132
+ }
133
+ if (this.overridingColumnWidth !== -1) {
134
+ return this.overridingColumnWidth;
135
+ }
136
+ if (columnIndex > -1 && columnIndex < this.columnSizes?.length) {
137
+ return this.columnSizes[columnIndex];
138
+ }
139
+ return 0;
140
+ };
141
+
142
+ /**
143
+ * Retrieves the x position for a given column index.
144
+ *
145
+ * @param {number} columnIndex - The index of the column.
146
+ * @return {number} - The x position of the column.
147
+ */
148
+ getXPosByColumnIndex(columnIndex: number): number {
149
+ if (columnIndex === 0) {
150
+ return 0;
151
+ }
152
+ if (this.overridingColumnWidth > -1) {
153
+ return this.overridingColumnWidth * columnIndex;
154
+ }
155
+ return this.xPositions[columnIndex];
156
+ }
157
+
158
+ /**
159
+ * Recalculates the size (width, height, padding) of the elements based on the client width.
160
+ *
161
+ * @param {number} clientWidth - The width of the client area.
162
+ *
163
+ * @return {void} - This method does not return a value.
164
+ */
165
+ recalcSize(clientWidth: number) {
166
+ this.recalcColumnWidthes(clientWidth);
167
+ this.recalcHeightAndPadding();
168
+ }
169
+
170
+ /**
171
+ * Recalculates the height and padding for the body area.
172
+ *
173
+ * This method retrieves the area model for the "body" area,
174
+ * and updates the rowCount property with the row count of the model.
175
+ *
176
+ * The contentHeightInPx property is then updated with the height of the "body" area.
177
+ *
178
+ * The method calls the recalcContentWidthInPx() method to recalculate the content width.
179
+ *
180
+ * Finally, the method calls the recalcPadding() method to recalculate the padding.
181
+ *
182
+ * @return {void}
183
+ */
184
+ recalcHeightAndPadding() {
185
+ const bodyModel = this.getAreaModel("body");
186
+ this.rowCount = bodyModel.getRowCount();
187
+ this.contentHeightInPx = this.getAreaHeight("body");
188
+ this.recalcContentWidthInPx();
189
+
190
+ this.recalcPadding();
191
+ }
192
+
193
+ /**
194
+ * Recalculates the padding of an element based on the width and height of its surrounding areas.
195
+ *
196
+ * @method recalcPadding
197
+ *
198
+ * @returns {void}
199
+ */
200
+ recalcPadding() {
201
+ const westWidth = this.getSideAreaWidth("west");
202
+ const eastWidth = this.getSideAreaWidth("east");
203
+ const headerHeight = this.getAreaHeight("header");
204
+ const footerHeight = this.getAreaHeight("footer");
205
+
206
+ this.padding = new Padding(
207
+ headerHeight,
208
+ eastWidth,
209
+ footerHeight,
210
+ westWidth);
211
+ }
212
+
213
+ /**
214
+ * Retrieves the padding value.
215
+ *
216
+ * @returns {Padding} The padding value.
217
+ */
218
+ getPadding(): Padding {
219
+ return this.padding;
220
+ }
221
+
222
+ /**
223
+ * Returns the height of the content in pixels.
224
+ *
225
+ * @returns {number} The height of the content in pixels.
226
+ */
227
+ getContentHeightInPixel(): number {
228
+ return this.contentHeightInPx;
229
+ }
230
+
231
+ /**
232
+ * Returns the width of the content in pixels.
233
+ *
234
+ * @returns {number} The width of the content in pixels.
235
+ */
236
+ getContentWidthInPixel(): number {
237
+ return this.contentWidthInPx;
238
+ }
239
+
240
+ /**
241
+ * Returns the height of the specified row in the given row area identifier.
242
+ *
243
+ * @param {AreaIdent} rowAreaIdent - The row area identifier.
244
+ * @param {number} rowIndex - The index of the row.
245
+ * @return {number} - The height of the specified row.
246
+ */
247
+ getRowHeight(rowAreaIdent: AreaIdent, rowIndex: number): number {
248
+ return this.getAreaModel(rowAreaIdent).getRowHeight(rowIndex);
249
+ }
250
+
251
+ /**
252
+ * Retrieves the model for the given row area identifier.
253
+ *
254
+ * @param {AreaIdent} rowAreaIdent - The identifier of the row area.
255
+ * @return {AreaModelIf} - The model of the specified row area.
256
+ */
257
+ getModel(rowAreaIdent: AreaIdent): AreaModelIf {
258
+ return this.getAreaModel(rowAreaIdent);
259
+ }
260
+
261
+ /**
262
+ * Calculates the height of the area identified by the given area identifier.
263
+ *
264
+ * @param {AreaIdent} areaIdent - The identifier of the area.
265
+ * @return {number} - The height of the area.
266
+ */
267
+ getAreaHeight(areaIdent: AreaIdent): number {
268
+ const model = this.getModel(areaIdent);
269
+ const rowCount = model.getRowCount();
270
+ if (this.defaultRowHeights[areaIdent]) {
271
+ return rowCount * this.defaultRowHeights[areaIdent];
272
+ }
273
+
274
+ let ret = 0;
275
+ for (let i = 0; i < rowCount; i++) {
276
+ ret = ret + model.getRowHeight(i);
277
+ }
278
+ return ret;
279
+ }
280
+
281
+ /**
282
+ * Returns the total width of the side area identified by sideIdent.
283
+ *
284
+ * @param {SideIdent} sideIdent - The identifier of the side area ("west" | "center" | "east").
285
+ * @return {number} - The total width in pixels of the side area.
286
+ */
287
+ getSideAreaWidth(sideIdent: SideIdent): number {
288
+ const [cStart, cEnd] = this.getSideStartAndEndColumnIndex(sideIdent);
289
+ let ret = 0;
290
+ for (let i = cStart; i <= cEnd; i++) {
291
+ ret = ret + this.getColumnWidth(i);
292
+ }
293
+ return ret;
294
+ }
295
+
296
+ /**
297
+ * Retrieves the start and end column indices based on the given side identifier.
298
+ *
299
+ * @param {SideIdent} sideIdent - The side identifier, which can be "west", "east", or "center".
300
+ * @return {[number, number]} - An array containing the start and end column indices.
301
+ */
302
+ getSideStartAndEndColumnIndex(sideIdent: SideIdent): [number, number] {
303
+ const c1 = this.getFixedLeftColumnCount();
304
+ const c2 = this.getFixedRightColumnCount();
305
+
306
+ let cStart = 0;
307
+ let cEnd = this.columnCount - 1;
308
+ if (sideIdent === "west") {
309
+ cEnd = c1 - 1;
310
+ } else if (sideIdent === "east") {
311
+ cStart = this.columnCount - c2;
312
+ } else {
313
+ // center:
314
+ cStart = c1;
315
+ cEnd = this.columnCount - c2 - 1;
316
+ }
317
+ return [cStart, cEnd];
318
+ }
319
+
320
+ /**
321
+ * Returns the column definition at the specified index.
322
+ *
323
+ * @param {number} index - The index of the column definition to retrieve.
324
+ * @returns {ColumnDefIf | undefined} - The column definition at the specified index, or undefined if no ColumnDef is specified for the given column
325
+ */
326
+ getColumnDef(index: number): ColumnDefIf | undefined {
327
+ if (index < this.columnDefs.length) {
328
+ return this.columnDefs[index];
329
+ }
330
+ return undefined;
331
+ }
332
+
333
+ /**
334
+ * Retrieves the count of fixed left columns.
335
+ *
336
+ * @returns {number} The count of fixed left columns.
337
+ */
338
+ getFixedLeftColumnCount(): number {
339
+ return this.fixedLeftColumnCount;
340
+ }
341
+
342
+ /**
343
+ * Returns the number of fixed right columns.
344
+ *
345
+ * @returns {number} The number of fixed right columns.
346
+ */
347
+ getFixedRightColumnCount(): number {
348
+ return this.fixedRightColumnCount;
349
+ }
350
+
351
+ /**
352
+ * Retrieves the area model (header, body or footer) based on the area identification.
353
+ *
354
+ * @param {AreaIdent} area - The identifier of the area.
355
+ * @return {AreaModelIf} The area model corresponding to the given area identification.
356
+ * @throws {Error} If the area identification is invalid.
357
+ */
358
+ getAreaModel(area: AreaIdent): AreaModelIf {
359
+ if (area === "header") {
360
+ return this.headerAreaModel;
361
+ }
362
+ if (area === "body") {
363
+ return this.bodyAreaModel;
364
+ }
365
+ if (area === "footer") {
366
+ return this.footerAreaModel;
367
+ }
368
+ throw new Error("Wrong ident.");
369
+ }
370
+
371
+ /**
372
+ * Returns the body area model.
373
+ *
374
+ * @returns {AreaModelIf} The body area model.
375
+ */
376
+ getBodyModel(): AreaModelIf {
377
+ return this.bodyAreaModel;
378
+ }
379
+
380
+ /**
381
+ * Checks if the footer is visible.
382
+ *
383
+ * @returns {boolean} True if the footer is visible, false otherwise.
384
+ */
385
+ isFooterVisibe(): boolean {
386
+ return (this.footerAreaModel?.getRowCount() ?? 0) > 0;
387
+ }
388
+
389
+ /**
390
+ * Checks if the header area is visible.
391
+ * @return {boolean} Returns true if the header area is visible, otherwise false.
392
+ */
393
+ isHeaderVisibe(): boolean {
394
+ return (this.headerAreaModel?.getRowCount() ?? 0) > 0;
395
+ }
396
+
397
+ /**
398
+ * Checks whether the row checkbox is visible.
399
+ *
400
+ * @returns {boolean} True if the row checkbox is visible, otherwise false.
401
+ */
402
+ isRowCheckboxVisible(): boolean {
403
+ return this.rowCheckboxVisible;
404
+ }
405
+
406
+ /**
407
+ * This method is called when an external filter is changed.
408
+ *
409
+ * @param {FilterFunction<T>} predictFn - The function used to predict whether an element should be filtered or not.
410
+ * @return {void}
411
+ */
412
+ externalFilterChanged<T>(predictFn: FilterFunction<T>): void {
413
+ this.getAreaModel("body").externalFilterChanged(predictFn);
414
+ }
415
+
416
+ /**
417
+ * Sorts the items using the given sortItems array.
418
+ *
419
+ * @param {SortItem[]} sortItems - An array of sort items to sort the items.
420
+ * @return {boolean} - Returns true if the sorting is successful, otherwise false.
421
+ */
422
+ doSort(sortItems: SortItem[]): boolean {
423
+ return this.getAreaModel("body").doSort(sortItems);
424
+ }
425
+
426
+ /**
427
+ * Returns an array of ColumnDefIf objects or undefined.
428
+ *
429
+ * @return {ColumnDefIf[] | undefined} An array of ColumnDefIf objects or undefined.
430
+ */
431
+ getColumnDefs(): ColumnDefIf[] | undefined {
432
+ return this.columnDefs;
433
+ }
434
+
435
+ /**
436
+ * Retrieves the property key of the table row business object associated with the specified column index.
437
+ * It's only available when columnDefs are specified.
438
+ *
439
+ * @param {number} columnIndex - The index of the column to retrieve the property from.
440
+ * @return {string} The property associated with the specified column index.
441
+ */
442
+ getColumnProperty(columnIndex: number): string {
443
+ if (!this.columnDefs) {
444
+ return '';
445
+ }
446
+ return this.columnDefs[columnIndex].property;
447
+ }
448
+
449
+ /**
450
+ * Retrieves the row object from the body model at the specified index.
451
+ *
452
+ * @param {number} rowIndex - The index of the row to retrieve.
453
+ *
454
+ * @return {any} The row object at the specified index.
455
+ */
456
+ getBodyRowByIndex(rowIndex: number): any {
457
+ return this.getBodyModel().getRowByIndex(rowIndex);
458
+ }
459
+
460
+ /**
461
+ * Checks if a column at the given index is sortable.
462
+ *
463
+ * @param {number} columnIndex - The index of the column to check.
464
+ *
465
+ * @returns {boolean} - `true` if the column is sortable, `false` otherwise.
466
+ */
467
+ isSortable(columnIndex: number): boolean {
468
+ if (this.columnDefs &&
469
+ columnIndex < this.columnDefs.length) {
470
+ const checkSortability = this.columnDefs[columnIndex]?.sortable;
471
+ if (typeof checkSortability === 'function') {
472
+ return checkSortability();
473
+ }
474
+ }
475
+ return false;
476
+ }
477
+
478
+ /**
479
+ * Moves a column in the column order.
480
+ *
481
+ * @param {number} sourceColumnIndex - The index of the column to be moved.
482
+ * @param {number} targetColumnIndex - The index where the column should be moved to.
483
+ *
484
+ * @returns {void}
485
+ */
486
+ changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void {
487
+ this.arrayMove(this.columnDefs, sourceColumnIndex, targetColumnIndex);
488
+ this.arrayMove(this.columnSizes, sourceColumnIndex, targetColumnIndex);
489
+ this.headerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
490
+ this.bodyAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
491
+ this.footerAreaModel?.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
492
+ this.calcXPositions();
493
+ }
494
+
495
+
496
+ private recalcColumnWidthes(clientWidth: number) {
497
+ if (!this.columnDefs?.length && !this.columnSizes?.length) {
498
+ this.columnSizes = new Array(this.getColumnCount()).fill(this.overridingColumnWidth);
499
+ }
500
+ if (this.columnDefs?.length) {
501
+ this.columnSizes = this.columnDefs.map(def => {
502
+ if (def.width.unit === "%" && clientWidth) {
503
+ // only for a % value we have to check min and max:
504
+ let px = Math.floor(def.width.value * clientWidth / 100);
505
+ if (def.minWidth) {
506
+ const pxMin = def.minWidth.unit === "px" ? def.minWidth.value : Math.floor(def.minWidth.value * clientWidth / 100);
507
+ px = Math.max(pxMin, px);
508
+ }
509
+ if (def.maxWidth) {
510
+ const pxMax = def.maxWidth.unit === "px" ? def.maxWidth.value : Math.floor(def.maxWidth.value * clientWidth / 100);
511
+ px = Math.min(pxMax, px);
512
+ }
513
+ return px;
514
+ }
515
+ return def.width.value;
516
+ });
517
+ }
518
+ }
519
+
520
+ private arrayMove(arr: any[], fromIndex: number, toIndex: number) {
521
+ const element = arr.splice(fromIndex, 1)[0];
522
+ arr.splice(toIndex, 0, element);
523
+ return arr;
524
+ }
525
+
526
+ private recalcContentWidthInPx() {
527
+ this.contentWidthInPx = this.getSideAreaWidth("center");
528
+ }
529
+
530
+ private calcXPositions() {
531
+ const columnCount = this.getColumnCount();
532
+ this.xPositions = new Array(columnCount + 1);
533
+ this.xPositions[0] = 0;
534
+ for (let i = 0; i < columnCount; i++) {
535
+ this.xPositions[i + 1] = this.getColumnWidth(i) + this.xPositions[i];
536
+ }
537
+ }
538
+
539
+
540
+ }
541
+
542
+