@guiexpert/table 1.0.3 → 1.0.6

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 (411) hide show
  1. package/css/table-classes.css +36 -0
  2. package/css/table-color-classes.css +90 -0
  3. package/css/table-color-vars.css +141 -0
  4. package/css/table-tree.css +53 -0
  5. package/esm2022/guiexpert-table.mjs +5 -0
  6. package/esm2022/index.mjs +140 -0
  7. package/esm2022/lib/table/action/action-id.type.mjs +20 -0
  8. package/esm2022/lib/table/action/on-action-triggered.if.mjs +2 -0
  9. package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +21 -0
  10. package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
  11. package/esm2022/lib/table/action/shortcut.service.mjs +114 -0
  12. package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +19 -0
  13. package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +2 -0
  14. package/esm2022/lib/table/checkbox/checkbox-model.mjs +50 -0
  15. package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +107 -0
  16. package/esm2022/lib/table/color/color-rgb.if.mjs +2 -0
  17. package/esm2022/lib/table/color/color-rgb.mjs +11 -0
  18. package/esm2022/lib/table/color/ge-css-color-util.mjs +26 -0
  19. package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +2 -0
  20. package/esm2022/lib/table/color/three-color-gradient-arg.mjs +17 -0
  21. package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +2 -0
  22. package/esm2022/lib/table/color/two-color-gradient-arg.mjs +13 -0
  23. package/esm2022/lib/table/css-vars.mjs +238 -0
  24. package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +2 -0
  25. package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +12 -0
  26. package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +2 -0
  27. package/esm2022/lib/table/data/chunk/request-chunk.mjs +22 -0
  28. package/esm2022/lib/table/data/common/aligns.mjs +19 -0
  29. package/esm2022/lib/table/data/common/area-map-factory.mjs +7 -0
  30. package/esm2022/lib/table/data/common/area-map.mjs +11 -0
  31. package/esm2022/lib/table/data/common/area-map.type.mjs +2 -0
  32. package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
  33. package/esm2022/lib/table/data/common/args-render-cell-div.mjs +2 -0
  34. package/esm2022/lib/table/data/common/boolean-function.mjs +3 -0
  35. package/esm2022/lib/table/data/common/cell-range.mjs +36 -0
  36. package/esm2022/lib/table/data/common/checkbox-column-def.mjs +13 -0
  37. package/esm2022/lib/table/data/common/checked-type.mjs +2 -0
  38. package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +9 -0
  39. package/esm2022/lib/table/data/common/event/ge-key-event.mjs +9 -0
  40. package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +11 -0
  41. package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +30 -0
  42. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +2 -0
  43. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +13 -0
  44. package/esm2022/lib/table/data/common/filter-function.mjs +2 -0
  45. package/esm2022/lib/table/data/common/get-t.mjs +2 -0
  46. package/esm2022/lib/table/data/common/index-and-px.mjs +9 -0
  47. package/esm2022/lib/table/data/common/size.if.mjs +2 -0
  48. package/esm2022/lib/table/data/common/size.mjs +9 -0
  49. package/esm2022/lib/table/data/common/sizes.mjs +33 -0
  50. package/esm2022/lib/table/data/common/sort-item.mjs +9 -0
  51. package/esm2022/lib/table/data/common/sort-state.type.mjs +2 -0
  52. package/esm2022/lib/table/data/common/tree-arrow.type.mjs +2 -0
  53. package/esm2022/lib/table/data/common/tree-row-if.mjs +2 -0
  54. package/esm2022/lib/table/data/common/tree-row.mjs +19 -0
  55. package/esm2022/lib/table/data/common/value-label.if.mjs +2 -0
  56. package/esm2022/lib/table/data/common/value-label.mjs +9 -0
  57. package/esm2022/lib/table/data/div-scope.type.mjs +2 -0
  58. package/esm2022/lib/table/data/event/mouse-target-data.mjs +36 -0
  59. package/esm2022/lib/table/data/geo-data.mjs +15 -0
  60. package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +2 -0
  61. package/esm2022/lib/table/data/options/auto-restore-options.mjs +40 -0
  62. package/esm2022/lib/table/data/options/default-row-heights.if.mjs +2 -0
  63. package/esm2022/lib/table/data/options/default-row-heights.mjs +11 -0
  64. package/esm2022/lib/table/data/options/icon.if.mjs +2 -0
  65. package/esm2022/lib/table/data/options/icon.mjs +11 -0
  66. package/esm2022/lib/table/data/options/sorted-options.if.mjs +2 -0
  67. package/esm2022/lib/table/data/options/sorted-options.mjs +12 -0
  68. package/esm2022/lib/table/data/options/table-options.if.mjs +2 -0
  69. package/esm2022/lib/table/data/options/table-options.mjs +44 -0
  70. package/esm2022/lib/table/data/options/tree-options.if.mjs +2 -0
  71. package/esm2022/lib/table/data/options/tree-options.mjs +14 -0
  72. package/esm2022/lib/table/data/side-ident.type.mjs +2 -0
  73. package/esm2022/lib/table/data/table-model-and-options.if.mjs +2 -0
  74. package/esm2022/lib/table/data/table-model-and-options.mjs +9 -0
  75. package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +14 -0
  76. package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +137 -0
  77. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +47 -0
  78. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +163 -0
  79. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +84 -0
  80. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +15 -0
  81. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +88 -0
  82. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +181 -0
  83. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
  84. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +76 -0
  85. package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +51 -0
  86. package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +2 -0
  87. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +133 -0
  88. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +2 -0
  89. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +18 -0
  90. package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +110 -0
  91. package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
  92. package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +52 -0
  93. package/esm2022/lib/table/data/tablemodel/padding.mjs +13 -0
  94. package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +2 -0
  95. package/esm2022/lib/table/data/tablemodel/table-model.mjs +308 -0
  96. package/esm2022/lib/table/ele-scope.mjs +199 -0
  97. package/esm2022/lib/table/event-adapter.mjs +17 -0
  98. package/esm2022/lib/table/event-listener.if.mjs +2 -0
  99. package/esm2022/lib/table/factory/table-factory.mjs +186 -0
  100. package/esm2022/lib/table/factory/tree-factory.mjs +32 -0
  101. package/esm2022/lib/table/focus/focus-model.if.mjs +2 -0
  102. package/esm2022/lib/table/focus/focus-model.mjs +33 -0
  103. package/esm2022/lib/table/focus/focus.type.mjs +2 -0
  104. package/esm2022/lib/table/input-handler.mjs +25 -0
  105. package/esm2022/lib/table/mouse-handler.mjs +196 -0
  106. package/esm2022/lib/table/render-scope.mjs +719 -0
  107. package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +8 -0
  108. package/esm2022/lib/table/renderer/cell-render.if.mjs +2 -0
  109. package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +47 -0
  110. package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
  111. package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +24 -0
  112. package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
  113. package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
  114. package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +12 -0
  115. package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
  116. package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +4 -0
  117. package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +2 -0
  118. package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
  119. package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +36 -0
  120. package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
  121. package/esm2022/lib/table/renderer/number-cell-renderer.mjs +21 -0
  122. package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +44 -0
  123. package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
  124. package/esm2022/lib/table/renderer/renderer.mjs +7 -0
  125. package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +27 -0
  126. package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +15 -0
  127. package/esm2022/lib/table/selection/selection-model.if.mjs +2 -0
  128. package/esm2022/lib/table/selection/selection-model.mjs +99 -0
  129. package/esm2022/lib/table/selection/selection-service.mjs +101 -0
  130. package/esm2022/lib/table/selection/selection.type.mjs +2 -0
  131. package/esm2022/lib/table/service/abstract-store-state.service.mjs +50 -0
  132. package/esm2022/lib/table/service/convenience-dom.service.mjs +405 -0
  133. package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +13 -0
  134. package/esm2022/lib/table/service/data/html-style.type.mjs +2 -0
  135. package/esm2022/lib/table/service/dom-service.if.mjs +2 -0
  136. package/esm2022/lib/table/service/ge-filter.service.mjs +98 -0
  137. package/esm2022/lib/table/service/simple-dom-service.mjs +34 -0
  138. package/esm2022/lib/table/service/sorter.service.mjs +27 -0
  139. package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
  140. package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
  141. package/esm2022/lib/table/service/store-state-sorting.service.mjs +29 -0
  142. package/esm2022/lib/table/service/tree-row.service.mjs +23 -0
  143. package/esm2022/lib/table/table-api.mjs +42 -0
  144. package/esm2022/lib/table/table-scope.mjs +364 -0
  145. package/{src/index.ts → index.d.ts} +4 -24
  146. package/lib/table/action/action-id.type.d.ts +2 -0
  147. package/{src/lib/table/action/on-action-triggered.if.ts → lib/table/action/on-action-triggered.if.d.ts} +1 -4
  148. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
  149. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
  150. package/lib/table/action/shortcut.service.d.ts +18 -0
  151. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
  152. package/lib/table/checkbox/checkbox-model.d.ts +12 -0
  153. package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
  154. package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
  155. package/lib/table/color/color-rgb.d.ts +7 -0
  156. package/lib/table/color/color-rgb.if.d.ts +5 -0
  157. package/lib/table/color/ge-css-color-util.d.ts +7 -0
  158. package/lib/table/color/three-color-gradient-arg.d.ts +11 -0
  159. package/lib/table/color/three-color-gradient-arg.if.d.ts +9 -0
  160. package/lib/table/color/two-color-gradient-arg.d.ts +9 -0
  161. package/lib/table/color/two-color-gradient-arg.if.d.ts +7 -0
  162. package/lib/table/css-vars.d.ts +9 -0
  163. package/lib/table/data/chunk/chunk.data-event.d.ts +9 -0
  164. package/lib/table/data/chunk/chunk.data-event.if.d.ts +4 -0
  165. package/lib/table/data/chunk/request-chunk.d.ts +14 -0
  166. package/lib/table/data/chunk/request-chunk.if.d.ts +9 -0
  167. package/lib/table/data/common/aligns.d.ts +24 -0
  168. package/lib/table/data/common/area-map-factory.d.ts +5 -0
  169. package/lib/table/data/common/area-map.d.ts +7 -0
  170. package/lib/table/data/common/area-map.type.d.ts +5 -0
  171. package/{src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts → lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts} +10 -11
  172. package/lib/table/data/common/args-render-cell-div.d.ts +17 -0
  173. package/lib/table/data/common/boolean-function.d.ts +3 -0
  174. package/lib/table/data/common/cell-range.d.ts +19 -0
  175. package/lib/table/data/common/checkbox-column-def.d.ts +13 -0
  176. package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
  177. package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
  178. package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
  179. package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
  180. package/lib/table/data/common/event/input/table-cell-update-event.d.ts +9 -0
  181. package/{src/lib/table/data/common/event/input/table-cell-update-event.if.ts → lib/table/data/common/event/input/table-cell-update-event.if.d.ts} +4 -7
  182. package/lib/table/data/common/index-and-px.d.ts +5 -0
  183. package/lib/table/data/common/size.d.ts +6 -0
  184. package/lib/table/data/common/size.if.d.ts +4 -0
  185. package/lib/table/data/common/sizes.d.ts +32 -0
  186. package/lib/table/data/common/sort-item.d.ts +6 -0
  187. package/lib/table/data/common/tree-row-if.d.ts +10 -0
  188. package/lib/table/data/common/tree-row.d.ts +11 -0
  189. package/lib/table/data/common/value-label.d.ts +6 -0
  190. package/lib/table/data/common/value-label.if.d.ts +4 -0
  191. package/lib/table/data/div-scope.type.d.ts +7 -0
  192. package/lib/table/data/event/mouse-target-data.d.ts +15 -0
  193. package/lib/table/data/geo-data.d.ts +8 -0
  194. package/lib/table/data/options/auto-restore-options.d.ts +11 -0
  195. package/lib/table/data/options/auto-restore-options.if.d.ts +16 -0
  196. package/lib/table/data/options/default-row-heights.d.ts +7 -0
  197. package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
  198. package/lib/table/data/options/icon.d.ts +7 -0
  199. package/lib/table/data/options/icon.if.d.ts +5 -0
  200. package/lib/table/data/options/sorted-options.d.ts +8 -0
  201. package/{src/lib/table/data/options/sorted-options.if.ts → lib/table/data/options/sorted-options.if.d.ts} +3 -6
  202. package/lib/table/data/options/table-options.d.ts +41 -0
  203. package/lib/table/data/options/table-options.if.d.ts +42 -0
  204. package/lib/table/data/options/tree-options.d.ts +9 -0
  205. package/lib/table/data/options/tree-options.if.d.ts +7 -0
  206. package/lib/table/data/table-model-and-options.d.ts +8 -0
  207. package/{src/lib/table/data/table-model-and-options.if.ts → lib/table/data/table-model-and-options.if.d.ts} +2 -4
  208. package/{src/lib/table/data/tablemodel/area-ident.type.ts → lib/table/data/tablemodel/area-ident.type.d.ts} +1 -10
  209. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +47 -0
  210. package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +19 -0
  211. package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +51 -0
  212. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +41 -0
  213. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
  214. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +28 -0
  215. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
  216. package/lib/table/data/tablemodel/areamodel/area-model.d.ts +37 -0
  217. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +158 -0
  218. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
  219. package/{src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts → lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts} +1 -1
  220. package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +21 -0
  221. package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +11 -0
  222. package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +9 -0
  223. package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +10 -0
  224. package/lib/table/data/tablemodel/column/column-def.d.ts +52 -0
  225. package/lib/table/data/tablemodel/column/column-def.if.d.ts +25 -0
  226. package/lib/table/data/tablemodel/padding.d.ts +7 -0
  227. package/lib/table/data/tablemodel/table-model.d.ts +88 -0
  228. package/lib/table/data/tablemodel/table-model.if.d.ts +56 -0
  229. package/lib/table/ele-scope.d.ts +37 -0
  230. package/lib/table/event-adapter.d.ts +12 -0
  231. package/lib/table/event-listener.if.d.ts +11 -0
  232. package/lib/table/factory/table-factory.d.ts +65 -0
  233. package/lib/table/factory/tree-factory.d.ts +6 -0
  234. package/lib/table/focus/focus-model.d.ts +15 -0
  235. package/lib/table/focus/focus-model.if.d.ts +8 -0
  236. package/{src/lib/table/focus/focus.type.ts → lib/table/focus/focus.type.d.ts} +0 -3
  237. package/lib/table/input-handler.d.ts +6 -0
  238. package/lib/table/mouse-handler.d.ts +25 -0
  239. package/lib/table/render-scope.d.ts +86 -0
  240. package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +9 -0
  241. package/{src/lib/table/renderer/cell-render.if.ts → lib/table/renderer/cell-render.if.d.ts} +1 -10
  242. package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +15 -0
  243. package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
  244. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
  245. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
  246. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
  247. package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +8 -0
  248. package/{src/lib/table/renderer/edit/edit-cell-renderer.type.ts → lib/table/renderer/edit/edit-cell-renderer.type.d.ts} +0 -1
  249. package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -0
  250. package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +3 -0
  251. package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
  252. package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
  253. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
  254. package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
  255. package/lib/table/renderer/progress-bar-cell-renderer.d.ts +15 -0
  256. package/lib/table/renderer/renderer.d.ts +5 -0
  257. package/lib/table/renderer/star-rating-cell-renderer.d.ts +13 -0
  258. package/lib/table/renderer/true-false-cell-renderer.d.ts +8 -0
  259. package/lib/table/selection/selection-model.d.ts +21 -0
  260. package/lib/table/selection/selection-model.if.d.ts +11 -0
  261. package/lib/table/selection/selection-service.d.ts +17 -0
  262. package/{src/lib/table/selection/selection.type.ts → lib/table/selection/selection.type.d.ts} +0 -3
  263. package/lib/table/service/abstract-store-state.service.d.ts +10 -0
  264. package/lib/table/service/convenience-dom.service.d.ts +46 -0
  265. package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
  266. package/lib/table/service/data/html-style.type.d.ts +3 -0
  267. package/lib/table/service/dom-service.if.d.ts +9 -0
  268. package/lib/table/service/ge-filter.service.d.ts +5 -0
  269. package/lib/table/service/simple-dom-service.d.ts +10 -0
  270. package/lib/table/service/sorter.service.d.ts +3 -0
  271. package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
  272. package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
  273. package/lib/table/service/store-state-sorting.service.d.ts +11 -0
  274. package/lib/table/service/tree-row.service.d.ts +5 -0
  275. package/lib/table/table-api.d.ts +18 -0
  276. package/lib/table/table-scope.d.ts +56 -0
  277. package/package.json +17 -10
  278. package/.eslintrc.json +0 -42
  279. package/LICENSE +0 -35
  280. package/README.md +0 -102
  281. package/jest.config.ts +0 -18
  282. package/ng-package.json +0 -7
  283. package/project.json +0 -47
  284. package/src/lib/table/action/action-id.type.ts +0 -24
  285. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +0 -29
  286. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +0 -3
  287. package/src/lib/table/action/shortcut.service.ts +0 -134
  288. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +0 -27
  289. package/src/lib/table/checkbox/checkbox-model.if.ts +0 -16
  290. package/src/lib/table/checkbox/checkbox-model.ts +0 -62
  291. package/src/lib/table/checkbox/tree-checkbox-model.ts +0 -123
  292. package/src/lib/table/color/color-rgb.if.ts +0 -7
  293. package/src/lib/table/color/color-rgb.ts +0 -10
  294. package/src/lib/table/color/ge-css-color-util.ts +0 -43
  295. package/src/lib/table/color/three-color-gradient-arg.if.ts +0 -10
  296. package/src/lib/table/color/three-color-gradient-arg.ts +0 -14
  297. package/src/lib/table/color/two-color-gradient-arg.if.ts +0 -8
  298. package/src/lib/table/color/two-color-gradient-arg.ts +0 -12
  299. package/src/lib/table/css-vars.ts +0 -243
  300. package/src/lib/table/data/common/aligns.ts +0 -19
  301. package/src/lib/table/data/common/area-map-factory.ts +0 -14
  302. package/src/lib/table/data/common/area-map.ts +0 -11
  303. package/src/lib/table/data/common/area-map.type.ts +0 -5
  304. package/src/lib/table/data/common/args-render-cell-div.ts +0 -18
  305. package/src/lib/table/data/common/boolean-function.ts +0 -4
  306. package/src/lib/table/data/common/cell-range.ts +0 -57
  307. package/src/lib/table/data/common/checkbox-column-def.ts +0 -25
  308. package/src/lib/table/data/common/event/ge-cell-indices.ts +0 -9
  309. package/src/lib/table/data/common/event/ge-key-event.ts +0 -10
  310. package/src/lib/table/data/common/event/ge-model-change-event.ts +0 -13
  311. package/src/lib/table/data/common/event/ge-mouse-event.ts +0 -38
  312. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +0 -14
  313. package/src/lib/table/data/common/index-and-px.ts +0 -9
  314. package/src/lib/table/data/common/size.if.ts +0 -4
  315. package/src/lib/table/data/common/size.ts +0 -9
  316. package/src/lib/table/data/common/sizes.ts +0 -35
  317. package/src/lib/table/data/common/sort-item.ts +0 -11
  318. package/src/lib/table/data/common/tree-row-if.ts +0 -11
  319. package/src/lib/table/data/common/tree-row.ts +0 -16
  320. package/src/lib/table/data/common/value-label.if.ts +0 -6
  321. package/src/lib/table/data/common/value-label.ts +0 -13
  322. package/src/lib/table/data/div-scope.type.ts +0 -5
  323. package/src/lib/table/data/event/mouse-target-data.ts +0 -45
  324. package/src/lib/table/data/geo-data.ts +0 -13
  325. package/src/lib/table/data/options/auto-restore-options.if.ts +0 -21
  326. package/src/lib/table/data/options/auto-restore-options.ts +0 -50
  327. package/src/lib/table/data/options/default-row-heights.if.ts +0 -5
  328. package/src/lib/table/data/options/default-row-heights.ts +0 -10
  329. package/src/lib/table/data/options/icon.if.ts +0 -7
  330. package/src/lib/table/data/options/icon.ts +0 -10
  331. package/src/lib/table/data/options/sorted-options.ts +0 -15
  332. package/src/lib/table/data/options/table-options.if.ts +0 -54
  333. package/src/lib/table/data/options/table-options.ts +0 -66
  334. package/src/lib/table/data/options/tree-options.if.ts +0 -10
  335. package/src/lib/table/data/options/tree-options.ts +0 -32
  336. package/src/lib/table/data/table-model-and-options.ts +0 -13
  337. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +0 -183
  338. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +0 -59
  339. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +0 -210
  340. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +0 -120
  341. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +0 -23
  342. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +0 -105
  343. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +0 -215
  344. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +0 -186
  345. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +0 -110
  346. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +0 -61
  347. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +0 -167
  348. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +0 -12
  349. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +0 -18
  350. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +0 -148
  351. package/src/lib/table/data/tablemodel/column/column-def.if.ts +0 -28
  352. package/src/lib/table/data/tablemodel/column/column-def.ts +0 -104
  353. package/src/lib/table/data/tablemodel/padding.ts +0 -9
  354. package/src/lib/table/data/tablemodel/table-model.if.ts +0 -90
  355. package/src/lib/table/data/tablemodel/table-model.ts +0 -352
  356. package/src/lib/table/ele-scope.ts +0 -283
  357. package/src/lib/table/event-adapter.ts +0 -28
  358. package/src/lib/table/event-listener.if.ts +0 -19
  359. package/src/lib/table/factory/table-factory.ts +0 -378
  360. package/src/lib/table/factory/tree-factory.ts +0 -51
  361. package/src/lib/table/focus/focus-model.if.ts +0 -14
  362. package/src/lib/table/focus/focus-model.ts +0 -48
  363. package/src/lib/table/input-handler.ts +0 -34
  364. package/src/lib/table/mouse-handler.ts +0 -236
  365. package/src/lib/table/render-scope.ts +0 -936
  366. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +0 -27
  367. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +0 -63
  368. package/src/lib/table/renderer/checkbox-cell-renderer.ts +0 -39
  369. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +0 -39
  370. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +0 -25
  371. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +0 -24
  372. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +0 -28
  373. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +0 -6
  374. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +0 -7
  375. package/src/lib/table/renderer/edit/input-cell-renderer.ts +0 -41
  376. package/src/lib/table/renderer/edit/select-cell-renderer.ts +0 -60
  377. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +0 -26
  378. package/src/lib/table/renderer/number-cell-renderer.ts +0 -38
  379. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +0 -60
  380. package/src/lib/table/renderer/renderer.ts +0 -11
  381. package/src/lib/table/renderer/star-rating-cell-renderer.ts +0 -45
  382. package/src/lib/table/renderer/true-false-cell-renderer.ts +0 -28
  383. package/src/lib/table/selection/selection-model.if.ts +0 -20
  384. package/src/lib/table/selection/selection-model.ts +0 -109
  385. package/src/lib/table/selection/selection-service.ts +0 -120
  386. package/src/lib/table/service/abstract-store-state.service.ts +0 -105
  387. package/src/lib/table/service/convenience-dom.service.ts +0 -548
  388. package/src/lib/table/service/data/collapsed-expanded.data.ts +0 -11
  389. package/src/lib/table/service/data/html-style.type.ts +0 -1
  390. package/src/lib/table/service/dom-service.if.ts +0 -16
  391. package/src/lib/table/service/ge-filter.service.ts +0 -123
  392. package/src/lib/table/service/simple-dom-service.ts +0 -46
  393. package/src/lib/table/service/sorter.service.ts +0 -30
  394. package/src/lib/table/service/store-state-collapsed-expand.service.ts +0 -76
  395. package/src/lib/table/service/store-state-scroll-pos.service.ts +0 -40
  396. package/src/lib/table/service/store-state-sorting.service.ts +0 -41
  397. package/src/lib/table/service/tree-row.service.ts +0 -31
  398. package/src/lib/table/table-api.ts +0 -61
  399. package/src/lib/table/table-scope.ts +0 -433
  400. package/src/test-setup.ts +0 -1
  401. package/tsconfig.json +0 -22
  402. package/tsconfig.lib.json +0 -19
  403. package/tsconfig.lib.prod.json +0 -7
  404. package/tsconfig.spec.json +0 -20
  405. /package/{src/lib/table/data/common/checked-type.ts → lib/table/data/common/checked-type.d.ts} +0 -0
  406. /package/{src/lib/table/data/common/filter-function.ts → lib/table/data/common/filter-function.d.ts} +0 -0
  407. /package/{src/lib/table/data/common/get-t.ts → lib/table/data/common/get-t.d.ts} +0 -0
  408. /package/{src/lib/table/data/common/sort-state.type.ts → lib/table/data/common/sort-state.type.d.ts} +0 -0
  409. /package/{src/lib/table/data/common/tree-arrow.type.ts → lib/table/data/common/tree-arrow.type.d.ts} +0 -0
  410. /package/{src/lib/table/data/side-ident.type.ts → lib/table/data/side-ident.type.d.ts} +0 -0
  411. /package/{src/lib/table/renderer/renderer-cleanup-fn.type.ts → lib/table/renderer/renderer-cleanup-fn.type.d.ts} +0 -0
@@ -1,283 +0,0 @@
1
- import { ConvenienceDomService } from "./service/convenience-dom.service";
2
- import { DivScope } from "./data/div-scope.type";
3
- import { TableModelIf } from "./data/tablemodel/table-model.if";
4
- import { TableOptionsIf } from "./data/options/table-options.if";
5
- import { GeoData } from "./data/geo-data";
6
-
7
-
8
- export class EleScope {
9
-
10
- public scrollViewport: HTMLDivElement;
11
-
12
- protected contentWrapperDiv: HTMLDivElement; // the big one. height: sum of rows height == tableModel.getContentHeightInPixel()
13
- protected contentDiv: HTMLDivElement;
14
-
15
- protected areaHeaderCenter: DivScope;
16
- protected areaHeaderWest: DivScope;
17
- protected areaHeaderEast: DivScope;
18
-
19
- protected areaBodyCenter: DivScope;
20
- protected areaBodyWest: DivScope;
21
- protected areaBodyEast: DivScope;
22
-
23
-
24
- protected areaFooterCenter: DivScope;
25
- protected areaFooterWest: DivScope;
26
- protected areaFooterEast: DivScope;
27
-
28
- protected borderHeaderBottom: HTMLDivElement;
29
- protected borderFooterTop: HTMLDivElement;
30
- protected borderFixedWest: HTMLDivElement;
31
- protected borderFixedEast: HTMLDivElement;
32
-
33
- protected hoverRow: HTMLDivElement;
34
- protected hoverColumn: HTMLDivElement;
35
-
36
- protected scrollTop = 0;
37
-
38
- protected areaBodyWestGeo: GeoData = new GeoData();
39
- protected areaBodyCenterGeo: GeoData = new GeoData();
40
- protected areaBodyEastGeo: GeoData = new GeoData();
41
-
42
-
43
- constructor(
44
- readonly hostElement: HTMLDivElement,
45
- readonly tableModel: TableModelIf,
46
- protected readonly dom: ConvenienceDomService,
47
- readonly tableOptions: TableOptionsIf
48
- ) {
49
- const hostEle = this.hostElement;
50
-
51
- hostEle.innerText = ""; // clear
52
- this.dom.setAttribute(hostEle, "tabindex", "0"); // needed for getting key events
53
-
54
- this.dom.setStyle(
55
- this.dom.addClass("ge-table", hostEle)
56
- , "position", "relative");
57
-
58
-
59
- this.hoverRow =
60
- dom.applyStylePosistionAbsolute(
61
- dom.createDivWithClass("ge-table-hover-row", hostEle));
62
- this.hoverColumn =
63
- dom.applyStylePosistionAbsolute(
64
- dom.createDivWithClass("ge-table-hover-column", hostEle));
65
-
66
- this.areaHeaderWest = dom.appendRelativeChildDiv(
67
- dom.applyStylePosistionAbsolute(
68
- dom.createAreaDivWithClass("ge-table-header ge-table-header-west", hostEle, "header", "west")));
69
- this.areaHeaderCenter = dom.appendRelativeChildDiv(
70
- dom.applyStylePosistionAbsolute(
71
- dom.createAreaDivWithClass("ge-table-header ge-table-header-center", hostEle, "header", "center")));
72
- this.areaHeaderEast = dom.appendRelativeChildDiv(
73
- dom.applyStylePosistionAbsolute(
74
- dom.createAreaDivWithClass("ge-table-header ge-table-header-east", hostEle, "body", "east")));
75
-
76
- this.areaBodyWest = dom.appendRelativeChildDiv(
77
- dom.applyStylePosistionAbsolute(
78
- dom.createAreaDivWithClass("ge-table-body ge-table-body-west", hostEle, "body", "west")));
79
-
80
- this.areaBodyEast = dom.appendRelativeChildDiv(
81
- dom.applyStylePosistionAbsolute(
82
- dom.createAreaDivWithClass("ge-table-body ge-table-body-east", hostEle, "body", "east")));
83
-
84
- this.areaFooterWest = dom.appendRelativeChildDiv(
85
- dom.applyStylePosistionAbsolute(
86
- dom.createAreaDivWithClass("ge-table-footer ge-table-footer-west", hostEle, "footer", "west")));
87
-
88
- this.areaFooterCenter = dom.appendRelativeChildDiv(
89
- dom.applyStylePosistionAbsolute(
90
- dom.createAreaDivWithClass("ge-table-footer ge-table-footer-center", hostEle, "footer", "center")));
91
-
92
- this.areaFooterEast = dom.appendRelativeChildDiv(
93
- dom.applyStylePosistionAbsolute(
94
- dom.createAreaDivWithClass("ge-table-footer ge-table-footer-east", hostEle, "footer", "east")));
95
-
96
- this.scrollViewport =
97
- dom.applyStyleOverflowAuto(
98
- this.tableOptions.overflowX ?? "auto",
99
- this.tableOptions.overflowY ?? "auto",
100
- dom.applyStyleNoPadding(
101
- dom.applyStylePosistionAbsolute(
102
- dom.createAreaDivWithClass("ge-table-scroll-viewport", hostEle, "body", "center")
103
- )
104
- )
105
- );
106
-
107
- this.contentWrapperDiv = dom.applyStyleNoPadding(
108
- dom.applyStylePosistionRelative(
109
- dom.createDivWithClass("ge-table-scroll-content-wrapper", this.scrollViewport)));
110
- this.contentDiv = dom.applyStyleNoPadding(
111
- dom.applyStylePosistionRelative(
112
- dom.createDivWithClass("ge-table-scroll-content", this.contentWrapperDiv)));
113
-
114
- this.areaBodyCenter = dom.appendRelativeChildDiv(
115
- dom.createDivWithClass("ge-table-body-center", this.contentDiv));
116
-
117
- this.borderHeaderBottom =
118
- dom.applyStylePosistionAbsolute(
119
- dom.createDivWithClass("ge-table-header-border", hostEle));
120
-
121
- this.borderFixedWest =
122
- dom.applyStylePosistionAbsolute(
123
- dom.createDivWithClass("ge-table-west-fixed-column-border", hostEle));
124
-
125
- this.borderFixedEast =
126
- dom.applyStylePosistionAbsolute(
127
- dom.createDivWithClass("ge-table-east-fixed-column-border", hostEle));
128
-
129
- this.borderFooterTop =
130
- dom.applyStylePosistionAbsolute(
131
- dom.createDivWithClass("ge-table-footer-border", hostEle));
132
- }
133
-
134
-
135
- adjustContainersAndRows() {
136
- const padding = this.tableModel.getPadding();
137
- const w = this.hostElement.clientWidth;
138
- const h = this.hostElement.clientHeight;
139
- this.dom.applyStyle(this.scrollViewport, {
140
- width: `${(w - padding.left)}px`,
141
- height: `${(h - padding.top)}px`,
142
- top: `${padding.top}px`,
143
- left: `${padding.left}px`
144
- });
145
-
146
- this.scrollTop = this.scrollViewport.scrollTop;
147
-
148
- // Content:
149
- this.dom.applyStyle(this.contentDiv, {
150
- width: `${this.scrollViewport.clientWidth}px`,
151
- height: `${this.scrollViewport.clientHeight}px`,
152
- top: `${this.scrollTop}px`,
153
- left: `${this.scrollViewport.scrollLeft}px`
154
- });
155
-
156
- // Body:
157
- // Body/West:
158
- this.areaBodyWestGeo.width = padding.left;
159
- this.areaBodyWestGeo.height = (h - padding.top - padding.bottom);
160
- this.areaBodyWestGeo.top = padding.top;
161
- this.areaBodyWestGeo.left = 0;
162
- this.dom.applyStyleInPx(this.areaBodyWest.parent, this.areaBodyWestGeo);
163
- if (this.tableOptions.fixedWestSeparatorBorderVisible &&
164
- this.tableModel.getFixedLeftColumnCount()) {
165
- this.dom.applyDisplayBlockStyle(
166
- this.dom.applyStyle(this.borderFixedWest, {
167
- width: `1px`,
168
- height: `${this.areaBodyWestGeo.height}px`,
169
- top: `${this.areaBodyWestGeo.top}px`,
170
- left: `${this.areaBodyWestGeo.width}px`
171
- })
172
- );
173
- } else {
174
- this.dom.applyDisplayNoneStyle(this.borderFixedWest);
175
- }
176
-
177
- // Body/East:
178
- this.areaBodyEastGeo.width = padding.right;
179
- this.areaBodyEastGeo.height = (h - padding.top - padding.bottom);
180
- this.areaBodyEastGeo.top = padding.top;
181
- this.areaBodyEastGeo.left = w - padding.right;
182
- this.dom.applyStyleInPx(this.areaBodyEast.parent, this.areaBodyEastGeo);
183
-
184
- if (this.tableOptions.fixedEastSeparatorBorderVisible &&
185
- this.tableModel.getFixedLeftColumnCount()) {
186
- this.dom.applyDisplayBlockStyle(
187
- this.dom.applyStyle(this.borderFixedEast, {
188
- width: `1px`,
189
- height: `${this.areaBodyEastGeo.height}px`,
190
- top: `${this.areaBodyEastGeo.top}px`,
191
- left: `${this.areaBodyEastGeo.left}px`
192
- }));
193
- } else {
194
- this.dom.applyDisplayNoneStyle(this.borderFixedEast);
195
- }
196
-
197
- // Body/Center:
198
- this.areaBodyCenterGeo.width = (w - padding.left - padding.right);
199
- this.areaBodyCenterGeo.height = (h - padding.top - padding.bottom);
200
- this.areaBodyCenterGeo.top = 0;
201
- this.areaBodyCenterGeo.left = 0;
202
- this.dom.applyStyleInPx(this.areaBodyCenter.parent, this.areaBodyCenterGeo);
203
-
204
-
205
- // Header:
206
- this.dom.applyStyle(this.areaHeaderCenter.parent, {
207
- width: `${w - padding.left - padding.right}px`,
208
- height: `${padding.top}px`,
209
- top: "0",
210
- left: `${padding.left}px`
211
- });
212
- this.dom.applyStyle(this.areaHeaderWest.parent, {
213
- width: `${padding.left}px`,
214
- height: `${padding.top}px`,
215
- top: "0",
216
- left: "0"
217
- });
218
- this.dom.applyStyle(this.areaHeaderEast.parent, {
219
- width: `${padding.right}px`,
220
- height: `${padding.top}px`,
221
- top: "0",
222
- left: `${w - padding.right}px`
223
- });
224
- if (this.tableOptions.headerSeparatorBorderVisible &&
225
- this.tableModel.isHeaderVisibe()) {
226
- this.dom.applyDisplayBlockStyle(
227
- this.dom.applyStyle(this.borderHeaderBottom, {
228
- width: `${w}px`,
229
- height: "1px",
230
- top: `${padding.top}px`,
231
- left: "0px"
232
- }));
233
- } else {
234
- this.dom.applyDisplayNoneStyle(this.borderHeaderBottom);
235
- }
236
-
237
- // Footer:
238
- this.dom.applyStyle(this.areaFooterWest.parent, {
239
- width: `${padding.left}px`,
240
- height: `${padding.bottom}px`,
241
- top: `${h - padding.bottom}px`,
242
- left: "0"
243
- });
244
- this.dom.applyStyle(this.areaFooterCenter.parent, {
245
- width: `${w - padding.left - padding.right}px`,
246
- height: `${padding.bottom}px`,
247
- top: `${h - padding.bottom}px`,
248
- left: `${padding.left}px`
249
- });
250
- this.dom.applyStyle(this.areaFooterEast.parent, {
251
- width: `${padding.right}px`,
252
- height: `${padding.bottom}px`,
253
- top: `${h - padding.bottom}px`,
254
- left: `${w - padding.right}px`
255
- });
256
- if (this.tableOptions.footerSeparatorBorderVisible &&
257
- this.tableModel.isFooterVisibe()) {
258
- this.dom.applyDisplayBlockStyle(
259
- this.dom.applyStyle(this.borderFooterTop, {
260
- width: `${w}px`,
261
- height: "1px",
262
- top: `${h - padding.bottom}px`,
263
- left: "0px"
264
- }));
265
- } else {
266
- this.dom.applyDisplayNoneStyle(this.borderFooterTop);
267
- }
268
-
269
- this.adjustAfterScrolling();
270
- }
271
-
272
- adjustAfterScrolling() {
273
- // must be overwritten
274
- }
275
-
276
- protected resetSizeOfWrapperDiv() {
277
- const w = `${this.tableModel.getContentWidthInPixel()}px`;
278
- const h = `${this.tableModel.getContentHeightInPixel() + 1}px`; // + 1, we want to see the last horizontal border
279
- this.dom.setStyle(this.contentWrapperDiv, "width", w);
280
- this.dom.setStyle(this.contentWrapperDiv, "height", h);
281
- }
282
-
283
- }
@@ -1,28 +0,0 @@
1
- import { GeModelChangeEvent } from "./data/common/event/ge-model-change-event";
2
- import { GeMouseEvent } from "./data/common/event/ge-mouse-event";
3
- import { EventListenerIf } from "./event-listener.if";
4
-
5
- export class EventAdapter implements EventListenerIf {
6
-
7
- onCheckboxChanged(_evt: any[]): void {
8
- }
9
-
10
- onContextmenu(_evt: GeMouseEvent): void {
11
- }
12
-
13
- onModelChanged(_evt: GeModelChangeEvent): void {
14
- }
15
-
16
- onMouseClicked(_evt: GeMouseEvent): void {
17
- }
18
-
19
- onMouseDragging(_evt: GeMouseEvent): void {
20
- }
21
-
22
- onMouseDraggingEnd(_evt: GeMouseEvent): void {
23
- }
24
-
25
- onMouseMoved(_evt: GeMouseEvent): void {
26
- }
27
-
28
- }
@@ -1,19 +0,0 @@
1
- import { GeMouseEvent } from "./data/common/event/ge-mouse-event";
2
- import { GeModelChangeEvent } from "./data/common/event/ge-model-change-event";
3
-
4
- export interface EventListenerIf {
5
-
6
- onContextmenu(evt: GeMouseEvent): void;
7
-
8
- onMouseMoved(evt: GeMouseEvent): void;
9
-
10
- onMouseDraggingEnd(evt: GeMouseEvent): void;
11
-
12
- onMouseDragging(evt: GeMouseEvent): void;
13
-
14
- onMouseClicked(evt: GeMouseEvent): void;
15
-
16
- onCheckboxChanged(evt: any[]): void;
17
-
18
- onModelChanged(evt: GeModelChangeEvent): void;
19
- }
@@ -1,378 +0,0 @@
1
- import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
2
- import { DefaultRowHeightsIf } from "../data/options/default-row-heights.if";
3
- import { ColumnDefIf } from "../data/tablemodel/column/column-def.if";
4
- import { GetT } from "../data/common/get-t";
5
- import { TableOptionsIf } from "../data/options/table-options.if";
6
- import { TableModelIf } from "../data/tablemodel/table-model.if";
7
- import { DefaultRowHeights } from "../data/options/default-row-heights";
8
- import { ColumnDef } from "../data/tablemodel/column/column-def";
9
- import { px200 } from "../data/common/sizes";
10
- import { AreaModelArrayOfArrays } from "../data/tablemodel/areamodel/area-model-array-of-arrays";
11
- import { AreaModelHidden } from "../data/tablemodel/areamodel/area-model-hidden";
12
- import { TreeRow } from "../data/common/tree-row";
13
- import { AreaModelTree } from "../data/tablemodel/areamodel/area-model-tree";
14
- import { TreeCheckboxModel } from "../checkbox/tree-checkbox-model";
15
- import { TableModel } from "../data/tablemodel/table-model";
16
- import { SelectionModelIf } from "../selection/selection-model.if";
17
- import {
18
- AreaModelObjectArrayWithColumndefs
19
- } from "../data/tablemodel/areamodel/area-model-object-array-with-columndefs";
20
- import { TableOptions } from "../data/options/table-options";
21
-
22
-
23
- export class TableFactory {
24
-
25
- public static createTableModel(p: Partial<{
26
- headerAreaModel: AreaModelIf,
27
- bodyAreaModel: AreaModelIf,
28
- footerAreaModel: AreaModelIf,
29
- fixedLeftColumnCount: number,
30
- fixedRightColumnCount: number,
31
- rowCheckboxVisible: boolean,
32
- defaultRowHeights: DefaultRowHeightsIf,
33
- columnDefs: ColumnDefIf[],
34
- columnSizes: number[],
35
- overridingColumnWidth: number,
36
- columnCount: number,
37
- parentSize: number,
38
- getSelectionModel: GetT<SelectionModelIf>,
39
- rows: any[],
40
- properties: string[],
41
- bodyData: any[][],
42
- headerData: string[][], // multi-line header
43
- footerData: string[][], // multi-line footerData
44
- tableOptions: TableOptionsIf
45
-
46
- }>): TableModelIf {
47
-
48
- if (p.defaultRowHeights === undefined) {
49
- if (p.tableOptions?.defaultRowHeights) {
50
- p.defaultRowHeights = p.tableOptions.defaultRowHeights;
51
- } else {
52
- p.defaultRowHeights = new DefaultRowHeights();
53
-
54
- if (p.headerAreaModel && "defaultRowHeight" in p.headerAreaModel) {
55
- const dh = p.headerAreaModel.defaultRowHeight as number;
56
- if (dh > -1) {
57
- p.defaultRowHeights.header = dh;
58
- }
59
- }
60
-
61
- if (p.bodyAreaModel && "defaultRowHeight" in p.bodyAreaModel) {
62
- const dh = p.bodyAreaModel.defaultRowHeight as number;
63
- if (dh > -1) {
64
- p.defaultRowHeights.body = dh;
65
- }
66
- }
67
-
68
- if (p.footerAreaModel && "defaultRowHeight" in p.footerAreaModel) {
69
- const dh = p.footerAreaModel.defaultRowHeight as number;
70
- if (dh > -1) {
71
- p.defaultRowHeights.footer = dh;
72
- }
73
- }
74
- }
75
- }
76
-
77
- if (p.columnDefs === undefined) {
78
- if (p.properties?.length) {
79
- p.columnDefs = p.properties.map(p => new ColumnDef(p, p.toUpperCase(), px200));
80
- } else if (p.rows?.length) {
81
- p.columnDefs = Object.keys(p.rows[0]).map(p => new ColumnDef(p, p.toUpperCase(), px200));
82
- } else {
83
- p.columnDefs = [];
84
- }
85
- }
86
-
87
- if (p.columnCount === undefined) {
88
- if (p.columnDefs?.length) {
89
- p.columnCount = p.columnDefs.length;
90
- } else if (p.headerData?.length) {
91
- p.columnCount = p.headerData[0].length;
92
- } else if (p.columnSizes?.length) {
93
- p.columnCount = p.columnSizes?.length;
94
- } else {
95
- console.warn("Property \"columnCount\" is missing and cannot be derived from other properties.");
96
- }
97
- }
98
-
99
-
100
- if (!p.headerAreaModel) {
101
- if (p.headerData?.length) {
102
- p.headerAreaModel = new AreaModelArrayOfArrays<string>(
103
- "header",
104
- p.headerData,
105
- p.defaultRowHeights.header,
106
- p.columnDefs
107
- );
108
- } else if (p.columnDefs?.length) {
109
- p.headerAreaModel = new AreaModelArrayOfArrays<string>(
110
- "header",
111
- [p.columnDefs.map(def => def.headerLabel)],
112
- p.defaultRowHeights.header,
113
- p.columnDefs
114
- );
115
- } else {
116
- p.headerAreaModel = new AreaModelHidden("header");
117
- }
118
- }
119
- if (!p.footerAreaModel) {
120
- if (p.footerData?.length) {
121
- p.footerAreaModel = new AreaModelArrayOfArrays<string>(
122
- "footer",
123
- p.footerData,
124
- p.defaultRowHeights.footer,
125
- p.columnDefs
126
- );
127
- } else {
128
- p.footerAreaModel = new AreaModelHidden("footer");
129
- }
130
- }
131
- if (!p.bodyAreaModel) {
132
- if (p.rows) {
133
-
134
- if (p.rows?.length && p.rows[0] instanceof TreeRow) {
135
- // Tree:
136
- const treeRows = p.rows as TreeRow<any>[];
137
- p.bodyAreaModel = new AreaModelTree(
138
- "body",
139
- treeRows,
140
- p.defaultRowHeights.body,
141
- p.columnDefs
142
- );
143
- const checkboxExtraColumnVisible = p.columnDefs[0].property === "CheckboxColumn";
144
- if (checkboxExtraColumnVisible || p.tableOptions?.showCheckboxWihoutExtraColumn) {
145
- p.bodyAreaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
146
- }
147
- } else {
148
- p.bodyAreaModel = new AreaModelObjectArrayWithColumndefs<any>(
149
- "body", p.rows, p.columnDefs, p.defaultRowHeights.body
150
- );
151
- }
152
-
153
- } else if (p.bodyData) {
154
- p.bodyAreaModel = new AreaModelArrayOfArrays<any>(
155
- "body", p.bodyData, p.defaultRowHeights.body
156
- );
157
- } else {
158
- p.bodyAreaModel = new AreaModelHidden("body");
159
- }
160
- }
161
-
162
- if (p.fixedLeftColumnCount === undefined) {
163
- p.fixedLeftColumnCount = 0;
164
- }
165
- if (p.fixedRightColumnCount === undefined) {
166
- p.fixedRightColumnCount = 0;
167
- }
168
- if (p.rowCheckboxVisible === undefined) {
169
- p.rowCheckboxVisible = false;
170
- }
171
- if (p.overridingColumnWidth === undefined) {
172
- p.overridingColumnWidth = -1;
173
- }
174
-
175
- if (!p.getSelectionModel && p.tableOptions?.getSelectionModel) {
176
- p.getSelectionModel = p.tableOptions?.getSelectionModel;
177
- }
178
-
179
- // Flat table:
180
- return new TableModel(
181
- p.headerAreaModel,
182
- p.bodyAreaModel,
183
- p.footerAreaModel,
184
- p.fixedLeftColumnCount,
185
- p.fixedRightColumnCount,
186
- p.rowCheckboxVisible,
187
- p.defaultRowHeights,
188
- p.columnDefs,
189
- p.columnSizes,
190
- p.overridingColumnWidth,
191
- p.columnCount,
192
- p.parentSize,
193
- p.getSelectionModel
194
- );
195
- }
196
-
197
- static buildByTypedRowsParam<T>(param: {
198
- rows: T[],
199
- columnDefs: ColumnDefIf[],
200
- tableOptions?: TableOptionsIf,
201
- fixedLeftColumnCount?: number,
202
- fixedRightColumnCount?: number
203
- }): TableModelIf {
204
-
205
- return TableFactory.buildByTypedRows<T>(
206
- param.rows ?? [],
207
- param.columnDefs,
208
- param.tableOptions ?? new TableOptions(),
209
- param.fixedLeftColumnCount ?? 0,
210
- param.fixedRightColumnCount ?? 0
211
- );
212
- }
213
-
214
- static buildByTypedRows<T>(
215
- rows: T[],
216
- columnDefs: ColumnDefIf[],
217
- tableOptions: TableOptionsIf = new TableOptions(),
218
- fixedLeftColumnCount: number = 0,
219
- fixedRightColumnCount: number = 0
220
- ): TableModelIf {
221
-
222
- const defaultRowHeights = tableOptions.defaultRowHeights;
223
- const checkboxExtraColumnVisible = columnDefs[0].property === "CheckboxColumn";
224
-
225
- if (rows?.length && rows[0] instanceof TreeRow) {
226
- // Tree:
227
- const treeRows = rows as TreeRow<T>[];
228
- const bodyareaModel = new AreaModelTree(
229
- "body",
230
- treeRows,
231
- defaultRowHeights.body,
232
- columnDefs
233
- );
234
- if (checkboxExtraColumnVisible || tableOptions.showCheckboxWihoutExtraColumn) {
235
- bodyareaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
236
- }
237
- return TableFactory.createByAreaModelsParam({
238
- headerAreaModel: new AreaModelArrayOfArrays<string>("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header),
239
- bodyAreaModel: bodyareaModel,
240
- footerAreaModel: new AreaModelArrayOfArrays<string>("footer", [], defaultRowHeights.footer),
241
- columnDefs,
242
- fixedLeftColumnCount,
243
- fixedRightColumnCount,
244
- defaultRowHeights: tableOptions.defaultRowHeights,
245
- rowCheckboxVisible: false,
246
- columnSizes: [],
247
- columnCount: columnDefs.length,
248
- overridingColumnWidth: -1
249
- });
250
- }
251
-
252
- // Flat table:
253
- return TableFactory.createByObjectArrayParam({
254
- rows,
255
- columnDefs,
256
- fixedLeftColumnCount,
257
- fixedRightColumnCount,
258
- defaultRowHeights: tableOptions.defaultRowHeights
259
- });
260
-
261
- }
262
-
263
- public static createByObjectArrayParam<T>(param: {
264
- rows: T[],
265
- header?: string[][],
266
- footer?: string[][],
267
- fixedLeftColumnCount?: number,
268
- fixedRightColumnCount?: number,
269
- rowCheckboxVisible?: boolean,
270
- defaultRowHeights?: DefaultRowHeightsIf,
271
- columnDefs?: ColumnDefIf[],
272
- columnSizes?: number[]
273
- }) {
274
- const rowCheckboxVisible = param.rowCheckboxVisible !== undefined ? param.rowCheckboxVisible : false;
275
- return TableFactory.createByObjectArray<T>(
276
- param.rows,
277
- param.header ?? [],
278
- param.footer ?? [],
279
- param.fixedLeftColumnCount ?? 0,
280
- param.fixedRightColumnCount ?? 0,
281
- rowCheckboxVisible,
282
- param.defaultRowHeights ?? new DefaultRowHeights(),
283
- param.columnDefs ?? [],
284
- param.columnSizes ?? []
285
- );
286
- }
287
-
288
- public static createByAreaModels(
289
- headerAreaModel: AreaModelIf = new AreaModelHidden(),
290
- bodyAreaModel: AreaModelIf,
291
- footerAreaModel: AreaModelIf = new AreaModelHidden(),
292
- fixedLeftColumnCount: number = 0,
293
- fixedRightColumnCount: number = 0,
294
- rowCheckboxVisible: boolean = false,
295
- defaultRowHeights: DefaultRowHeightsIf = new DefaultRowHeights(),
296
- columnDefs: ColumnDefIf[],
297
- columnSizes: number[] = [],
298
- overridingColumnWidth: number = -1,
299
- columnCount: number
300
- ) {
301
- return new TableModel(
302
- headerAreaModel,
303
- bodyAreaModel,
304
- footerAreaModel,
305
- fixedLeftColumnCount,
306
- fixedRightColumnCount,
307
- rowCheckboxVisible,
308
- defaultRowHeights,
309
- columnDefs,
310
- columnSizes,
311
- overridingColumnWidth,
312
- columnCount
313
- );
314
- }
315
-
316
- public static createByAreaModelsParam(param: {
317
- headerAreaModel?: AreaModelIf,
318
- bodyAreaModel: AreaModelIf,
319
- footerAreaModel?: AreaModelIf,
320
- fixedLeftColumnCount?: number,
321
- fixedRightColumnCount?: number,
322
- rowCheckboxVisible?: boolean,
323
- defaultRowHeights?: DefaultRowHeightsIf,
324
- columnDefs?: ColumnDefIf[],
325
- columnSizes?: number[],
326
- overridingColumnWidth?: number,
327
- columnCount?: number
328
- }) {
329
- return TableFactory.createByAreaModels(
330
- param.headerAreaModel ?? new AreaModelHidden(),
331
- param.bodyAreaModel,
332
- param.footerAreaModel ?? new AreaModelHidden(),
333
- param.fixedLeftColumnCount ?? 0,
334
- param.fixedRightColumnCount ?? 0,
335
- param.rowCheckboxVisible === undefined ? false : param.rowCheckboxVisible,
336
- param.defaultRowHeights,
337
- param.columnDefs ?? [],
338
- param.columnSizes ?? [],
339
- param.overridingColumnWidth ?? -1,
340
- param.columnCount ?? 0
341
- );
342
- }
343
-
344
- public static createByObjectArray<T>(
345
- rows: T[],
346
- header: string[][] = [],
347
- footer: string[][] = [],
348
- fixedLeftColumnCount: number = 0,
349
- fixedRightColumnCount: number = 0,
350
- rowCheckboxVisible: boolean = false,
351
- defaultRowHeights: DefaultRowHeightsIf = new DefaultRowHeights(),
352
- columnDefs: ColumnDefIf[],
353
- columnSizes: number[] = []
354
- ) {
355
- let headerAreaModel: AreaModelIf;
356
- if (header?.length) {
357
- headerAreaModel = new AreaModelArrayOfArrays<string>("header", header, defaultRowHeights.header, columnDefs);
358
- } else if (columnDefs?.length) {
359
- headerAreaModel = new AreaModelArrayOfArrays<string>("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header, columnDefs);
360
- } else {
361
- headerAreaModel = new AreaModelHidden();
362
- }
363
- const footerAreaModel = footer ? new AreaModelArrayOfArrays<string>("footer", footer, defaultRowHeights.footer, columnDefs) : new AreaModelHidden();
364
- const bodyAreaModel = new AreaModelObjectArrayWithColumndefs<T>("body", rows, columnDefs, defaultRowHeights.body);
365
-
366
- return new TableModel(
367
- headerAreaModel,
368
- bodyAreaModel,
369
- footerAreaModel,
370
- fixedLeftColumnCount,
371
- fixedRightColumnCount,
372
- rowCheckboxVisible,
373
- defaultRowHeights,
374
- columnDefs,
375
- columnSizes
376
- );
377
- }
378
- }