@guiexpert/table 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/esm2022/guiexpert-table.mjs +5 -0
  2. package/esm2022/index.mjs +140 -0
  3. package/esm2022/lib/table/action/action-id.type.mjs +20 -0
  4. package/esm2022/lib/table/action/on-action-triggered.if.mjs +2 -0
  5. package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +21 -0
  6. package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +2 -0
  7. package/esm2022/lib/table/action/shortcut.service.mjs +114 -0
  8. package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +19 -0
  9. package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +2 -0
  10. package/esm2022/lib/table/checkbox/checkbox-model.mjs +50 -0
  11. package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +107 -0
  12. package/esm2022/lib/table/color/color-rgb.if.mjs +2 -0
  13. package/esm2022/lib/table/color/color-rgb.mjs +11 -0
  14. package/esm2022/lib/table/color/ge-css-color-util.mjs +26 -0
  15. package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +2 -0
  16. package/esm2022/lib/table/color/three-color-gradient-arg.mjs +17 -0
  17. package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +2 -0
  18. package/esm2022/lib/table/color/two-color-gradient-arg.mjs +13 -0
  19. package/esm2022/lib/table/css-vars.mjs +238 -0
  20. package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +2 -0
  21. package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +12 -0
  22. package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +2 -0
  23. package/esm2022/lib/table/data/chunk/request-chunk.mjs +22 -0
  24. package/esm2022/lib/table/data/common/aligns.mjs +19 -0
  25. package/esm2022/lib/table/data/common/area-map-factory.mjs +7 -0
  26. package/esm2022/lib/table/data/common/area-map.mjs +11 -0
  27. package/esm2022/lib/table/data/common/area-map.type.mjs +2 -0
  28. package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +2 -0
  29. package/esm2022/lib/table/data/common/args-render-cell-div.mjs +2 -0
  30. package/esm2022/lib/table/data/common/boolean-function.mjs +3 -0
  31. package/esm2022/lib/table/data/common/cell-range.mjs +36 -0
  32. package/esm2022/lib/table/data/common/checkbox-column-def.mjs +13 -0
  33. package/esm2022/lib/table/data/common/checked-type.mjs +2 -0
  34. package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +9 -0
  35. package/esm2022/lib/table/data/common/event/ge-key-event.mjs +9 -0
  36. package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +11 -0
  37. package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +30 -0
  38. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +2 -0
  39. package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +13 -0
  40. package/esm2022/lib/table/data/common/filter-function.mjs +2 -0
  41. package/esm2022/lib/table/data/common/get-t.mjs +2 -0
  42. package/esm2022/lib/table/data/common/index-and-px.mjs +9 -0
  43. package/esm2022/lib/table/data/common/size.if.mjs +2 -0
  44. package/esm2022/lib/table/data/common/size.mjs +9 -0
  45. package/esm2022/lib/table/data/common/sizes.mjs +33 -0
  46. package/esm2022/lib/table/data/common/sort-item.mjs +9 -0
  47. package/esm2022/lib/table/data/common/sort-state.type.mjs +2 -0
  48. package/esm2022/lib/table/data/common/tree-arrow.type.mjs +2 -0
  49. package/esm2022/lib/table/data/common/tree-row-if.mjs +2 -0
  50. package/esm2022/lib/table/data/common/tree-row.mjs +19 -0
  51. package/esm2022/lib/table/data/common/value-label.if.mjs +2 -0
  52. package/esm2022/lib/table/data/common/value-label.mjs +9 -0
  53. package/esm2022/lib/table/data/div-scope.type.mjs +2 -0
  54. package/esm2022/lib/table/data/event/mouse-target-data.mjs +36 -0
  55. package/esm2022/lib/table/data/geo-data.mjs +15 -0
  56. package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +2 -0
  57. package/esm2022/lib/table/data/options/auto-restore-options.mjs +40 -0
  58. package/esm2022/lib/table/data/options/default-row-heights.if.mjs +2 -0
  59. package/esm2022/lib/table/data/options/default-row-heights.mjs +11 -0
  60. package/esm2022/lib/table/data/options/icon.if.mjs +2 -0
  61. package/esm2022/lib/table/data/options/icon.mjs +11 -0
  62. package/esm2022/lib/table/data/options/sorted-options.if.mjs +2 -0
  63. package/esm2022/lib/table/data/options/sorted-options.mjs +12 -0
  64. package/esm2022/lib/table/data/options/table-options.if.mjs +2 -0
  65. package/esm2022/lib/table/data/options/table-options.mjs +44 -0
  66. package/esm2022/lib/table/data/options/tree-options.if.mjs +2 -0
  67. package/esm2022/lib/table/data/options/tree-options.mjs +14 -0
  68. package/esm2022/lib/table/data/side-ident.type.mjs +2 -0
  69. package/esm2022/lib/table/data/table-model-and-options.if.mjs +2 -0
  70. package/esm2022/lib/table/data/table-model-and-options.mjs +9 -0
  71. package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +14 -0
  72. package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +137 -0
  73. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +47 -0
  74. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +163 -0
  75. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +84 -0
  76. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +15 -0
  77. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +88 -0
  78. package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +181 -0
  79. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +2 -0
  80. package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +76 -0
  81. package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +51 -0
  82. package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +2 -0
  83. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +133 -0
  84. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +2 -0
  85. package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +18 -0
  86. package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +110 -0
  87. package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +2 -0
  88. package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +52 -0
  89. package/esm2022/lib/table/data/tablemodel/padding.mjs +13 -0
  90. package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +2 -0
  91. package/esm2022/lib/table/data/tablemodel/table-model.mjs +308 -0
  92. package/esm2022/lib/table/ele-scope.mjs +199 -0
  93. package/esm2022/lib/table/event-adapter.mjs +17 -0
  94. package/esm2022/lib/table/event-listener.if.mjs +2 -0
  95. package/esm2022/lib/table/factory/table-factory.mjs +186 -0
  96. package/esm2022/lib/table/factory/tree-factory.mjs +32 -0
  97. package/esm2022/lib/table/focus/focus-model.if.mjs +2 -0
  98. package/esm2022/lib/table/focus/focus-model.mjs +33 -0
  99. package/esm2022/lib/table/focus/focus.type.mjs +2 -0
  100. package/esm2022/lib/table/input-handler.mjs +25 -0
  101. package/esm2022/lib/table/mouse-handler.mjs +196 -0
  102. package/esm2022/lib/table/render-scope.mjs +719 -0
  103. package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +8 -0
  104. package/esm2022/lib/table/renderer/cell-render.if.mjs +2 -0
  105. package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +47 -0
  106. package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +22 -0
  107. package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +24 -0
  108. package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +9 -0
  109. package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +9 -0
  110. package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +12 -0
  111. package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +2 -0
  112. package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +4 -0
  113. package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +2 -0
  114. package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +23 -0
  115. package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +36 -0
  116. package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +12 -0
  117. package/esm2022/lib/table/renderer/number-cell-renderer.mjs +21 -0
  118. package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +44 -0
  119. package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +2 -0
  120. package/esm2022/lib/table/renderer/renderer.mjs +7 -0
  121. package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +27 -0
  122. package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +15 -0
  123. package/esm2022/lib/table/selection/selection-model.if.mjs +2 -0
  124. package/esm2022/lib/table/selection/selection-model.mjs +99 -0
  125. package/esm2022/lib/table/selection/selection-service.mjs +101 -0
  126. package/esm2022/lib/table/selection/selection.type.mjs +2 -0
  127. package/esm2022/lib/table/service/abstract-store-state.service.mjs +50 -0
  128. package/esm2022/lib/table/service/convenience-dom.service.mjs +405 -0
  129. package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +13 -0
  130. package/esm2022/lib/table/service/data/html-style.type.mjs +2 -0
  131. package/esm2022/lib/table/service/dom-service.if.mjs +2 -0
  132. package/esm2022/lib/table/service/ge-filter.service.mjs +98 -0
  133. package/esm2022/lib/table/service/simple-dom-service.mjs +34 -0
  134. package/esm2022/lib/table/service/sorter.service.mjs +27 -0
  135. package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +57 -0
  136. package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +29 -0
  137. package/esm2022/lib/table/service/store-state-sorting.service.mjs +29 -0
  138. package/esm2022/lib/table/service/tree-row.service.mjs +23 -0
  139. package/esm2022/lib/table/table-api.mjs +42 -0
  140. package/esm2022/lib/table/table-scope.mjs +364 -0
  141. package/{src/index.ts → index.d.ts} +4 -24
  142. package/lib/table/action/action-id.type.d.ts +2 -0
  143. package/{src/lib/table/action/on-action-triggered.if.ts → lib/table/action/on-action-triggered.if.d.ts} +1 -4
  144. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +6 -0
  145. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +4 -0
  146. package/lib/table/action/shortcut.service.d.ts +18 -0
  147. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +6 -0
  148. package/lib/table/checkbox/checkbox-model.d.ts +12 -0
  149. package/lib/table/checkbox/checkbox-model.if.d.ts +9 -0
  150. package/lib/table/checkbox/tree-checkbox-model.d.ts +17 -0
  151. package/lib/table/color/color-rgb.d.ts +7 -0
  152. package/lib/table/color/color-rgb.if.d.ts +5 -0
  153. package/lib/table/color/ge-css-color-util.d.ts +7 -0
  154. package/lib/table/color/three-color-gradient-arg.d.ts +11 -0
  155. package/lib/table/color/three-color-gradient-arg.if.d.ts +9 -0
  156. package/lib/table/color/two-color-gradient-arg.d.ts +9 -0
  157. package/lib/table/color/two-color-gradient-arg.if.d.ts +7 -0
  158. package/lib/table/css-vars.d.ts +9 -0
  159. package/lib/table/data/chunk/chunk.data-event.d.ts +9 -0
  160. package/lib/table/data/chunk/chunk.data-event.if.d.ts +4 -0
  161. package/lib/table/data/chunk/request-chunk.d.ts +14 -0
  162. package/lib/table/data/chunk/request-chunk.if.d.ts +9 -0
  163. package/lib/table/data/common/aligns.d.ts +24 -0
  164. package/lib/table/data/common/area-map-factory.d.ts +5 -0
  165. package/lib/table/data/common/area-map.d.ts +7 -0
  166. package/lib/table/data/common/area-map.type.d.ts +5 -0
  167. package/{src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts → lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts} +10 -11
  168. package/lib/table/data/common/args-render-cell-div.d.ts +17 -0
  169. package/lib/table/data/common/boolean-function.d.ts +3 -0
  170. package/lib/table/data/common/cell-range.d.ts +19 -0
  171. package/lib/table/data/common/checkbox-column-def.d.ts +13 -0
  172. package/lib/table/data/common/event/ge-cell-indices.d.ts +5 -0
  173. package/lib/table/data/common/event/ge-key-event.d.ts +5 -0
  174. package/lib/table/data/common/event/ge-model-change-event.d.ts +6 -0
  175. package/lib/table/data/common/event/ge-mouse-event.d.ts +17 -0
  176. package/lib/table/data/common/event/input/table-cell-update-event.d.ts +9 -0
  177. package/{src/lib/table/data/common/event/input/table-cell-update-event.if.ts → lib/table/data/common/event/input/table-cell-update-event.if.d.ts} +4 -7
  178. package/lib/table/data/common/index-and-px.d.ts +5 -0
  179. package/lib/table/data/common/size.d.ts +6 -0
  180. package/lib/table/data/common/size.if.d.ts +4 -0
  181. package/lib/table/data/common/sizes.d.ts +32 -0
  182. package/lib/table/data/common/sort-item.d.ts +6 -0
  183. package/lib/table/data/common/tree-row-if.d.ts +10 -0
  184. package/lib/table/data/common/tree-row.d.ts +11 -0
  185. package/lib/table/data/common/value-label.d.ts +6 -0
  186. package/lib/table/data/common/value-label.if.d.ts +4 -0
  187. package/lib/table/data/div-scope.type.d.ts +7 -0
  188. package/lib/table/data/event/mouse-target-data.d.ts +15 -0
  189. package/lib/table/data/geo-data.d.ts +8 -0
  190. package/lib/table/data/options/auto-restore-options.d.ts +11 -0
  191. package/lib/table/data/options/auto-restore-options.if.d.ts +16 -0
  192. package/lib/table/data/options/default-row-heights.d.ts +7 -0
  193. package/lib/table/data/options/default-row-heights.if.d.ts +5 -0
  194. package/lib/table/data/options/icon.d.ts +7 -0
  195. package/lib/table/data/options/icon.if.d.ts +5 -0
  196. package/lib/table/data/options/sorted-options.d.ts +8 -0
  197. package/{src/lib/table/data/options/sorted-options.if.ts → lib/table/data/options/sorted-options.if.d.ts} +3 -6
  198. package/lib/table/data/options/table-options.d.ts +41 -0
  199. package/lib/table/data/options/table-options.if.d.ts +42 -0
  200. package/lib/table/data/options/tree-options.d.ts +9 -0
  201. package/lib/table/data/options/tree-options.if.d.ts +7 -0
  202. package/lib/table/data/table-model-and-options.d.ts +8 -0
  203. package/{src/lib/table/data/table-model-and-options.if.ts → lib/table/data/table-model-and-options.if.d.ts} +2 -4
  204. package/{src/lib/table/data/tablemodel/area-ident.type.ts → lib/table/data/tablemodel/area-ident.type.d.ts} +1 -10
  205. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +47 -0
  206. package/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +19 -0
  207. package/lib/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +51 -0
  208. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +41 -0
  209. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +10 -0
  210. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +28 -0
  211. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +39 -0
  212. package/lib/table/data/tablemodel/areamodel/area-model.d.ts +37 -0
  213. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +158 -0
  214. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +12 -0
  215. package/{src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts → lib/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts} +1 -1
  216. package/lib/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +21 -0
  217. package/lib/table/data/tablemodel/cellgroup/cell-group.d.ts +11 -0
  218. package/lib/table/data/tablemodel/cellgroup/cell-group.if.d.ts +9 -0
  219. package/lib/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +10 -0
  220. package/lib/table/data/tablemodel/column/column-def.d.ts +52 -0
  221. package/lib/table/data/tablemodel/column/column-def.if.d.ts +25 -0
  222. package/lib/table/data/tablemodel/padding.d.ts +7 -0
  223. package/lib/table/data/tablemodel/table-model.d.ts +88 -0
  224. package/lib/table/data/tablemodel/table-model.if.d.ts +56 -0
  225. package/lib/table/ele-scope.d.ts +37 -0
  226. package/lib/table/event-adapter.d.ts +12 -0
  227. package/lib/table/event-listener.if.d.ts +11 -0
  228. package/lib/table/factory/table-factory.d.ts +65 -0
  229. package/lib/table/factory/tree-factory.d.ts +6 -0
  230. package/lib/table/focus/focus-model.d.ts +15 -0
  231. package/lib/table/focus/focus-model.if.d.ts +8 -0
  232. package/{src/lib/table/focus/focus.type.ts → lib/table/focus/focus.type.d.ts} +0 -3
  233. package/lib/table/input-handler.d.ts +6 -0
  234. package/lib/table/mouse-handler.d.ts +25 -0
  235. package/lib/table/render-scope.d.ts +86 -0
  236. package/lib/table/renderer/cell-group-ext-cell-renderer.d.ts +9 -0
  237. package/{src/lib/table/renderer/cell-render.if.ts → lib/table/renderer/cell-render.if.d.ts} +1 -10
  238. package/lib/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +15 -0
  239. package/lib/table/renderer/checkbox-cell-renderer.d.ts +8 -0
  240. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +9 -0
  241. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +8 -0
  242. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +8 -0
  243. package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +8 -0
  244. package/{src/lib/table/renderer/edit/edit-cell-renderer.type.ts → lib/table/renderer/edit/edit-cell-renderer.type.d.ts} +0 -1
  245. package/lib/table/renderer/edit/edit-input-pipe-for-number.d.ts +2 -0
  246. package/lib/table/renderer/edit/edit-input-pipe.if.d.ts +3 -0
  247. package/lib/table/renderer/edit/input-cell-renderer.d.ts +8 -0
  248. package/lib/table/renderer/edit/select-cell-renderer.d.ts +12 -0
  249. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +8 -0
  250. package/lib/table/renderer/number-cell-renderer.d.ts +11 -0
  251. package/lib/table/renderer/progress-bar-cell-renderer.d.ts +15 -0
  252. package/lib/table/renderer/renderer.d.ts +5 -0
  253. package/lib/table/renderer/star-rating-cell-renderer.d.ts +13 -0
  254. package/lib/table/renderer/true-false-cell-renderer.d.ts +8 -0
  255. package/lib/table/selection/selection-model.d.ts +21 -0
  256. package/lib/table/selection/selection-model.if.d.ts +11 -0
  257. package/lib/table/selection/selection-service.d.ts +17 -0
  258. package/{src/lib/table/selection/selection.type.ts → lib/table/selection/selection.type.d.ts} +0 -3
  259. package/lib/table/service/abstract-store-state.service.d.ts +10 -0
  260. package/lib/table/service/convenience-dom.service.d.ts +46 -0
  261. package/lib/table/service/data/collapsed-expanded.data.d.ts +7 -0
  262. package/lib/table/service/data/html-style.type.d.ts +3 -0
  263. package/lib/table/service/dom-service.if.d.ts +9 -0
  264. package/lib/table/service/ge-filter.service.d.ts +5 -0
  265. package/lib/table/service/simple-dom-service.d.ts +10 -0
  266. package/lib/table/service/sorter.service.d.ts +3 -0
  267. package/lib/table/service/store-state-collapsed-expand.service.d.ts +15 -0
  268. package/lib/table/service/store-state-scroll-pos.service.d.ts +10 -0
  269. package/lib/table/service/store-state-sorting.service.d.ts +11 -0
  270. package/lib/table/service/tree-row.service.d.ts +5 -0
  271. package/lib/table/table-api.d.ts +18 -0
  272. package/lib/table/table-scope.d.ts +56 -0
  273. package/package.json +17 -10
  274. package/.eslintrc.json +0 -42
  275. package/LICENSE +0 -35
  276. package/README.md +0 -102
  277. package/jest.config.ts +0 -18
  278. package/ng-package.json +0 -7
  279. package/project.json +0 -47
  280. package/src/lib/table/action/action-id.type.ts +0 -24
  281. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +0 -29
  282. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +0 -3
  283. package/src/lib/table/action/shortcut.service.ts +0 -134
  284. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +0 -27
  285. package/src/lib/table/checkbox/checkbox-model.if.ts +0 -16
  286. package/src/lib/table/checkbox/checkbox-model.ts +0 -62
  287. package/src/lib/table/checkbox/tree-checkbox-model.ts +0 -123
  288. package/src/lib/table/color/color-rgb.if.ts +0 -7
  289. package/src/lib/table/color/color-rgb.ts +0 -10
  290. package/src/lib/table/color/ge-css-color-util.ts +0 -43
  291. package/src/lib/table/color/three-color-gradient-arg.if.ts +0 -10
  292. package/src/lib/table/color/three-color-gradient-arg.ts +0 -14
  293. package/src/lib/table/color/two-color-gradient-arg.if.ts +0 -8
  294. package/src/lib/table/color/two-color-gradient-arg.ts +0 -12
  295. package/src/lib/table/css-vars.ts +0 -243
  296. package/src/lib/table/data/common/aligns.ts +0 -19
  297. package/src/lib/table/data/common/area-map-factory.ts +0 -14
  298. package/src/lib/table/data/common/area-map.ts +0 -11
  299. package/src/lib/table/data/common/area-map.type.ts +0 -5
  300. package/src/lib/table/data/common/args-render-cell-div.ts +0 -18
  301. package/src/lib/table/data/common/boolean-function.ts +0 -4
  302. package/src/lib/table/data/common/cell-range.ts +0 -57
  303. package/src/lib/table/data/common/checkbox-column-def.ts +0 -25
  304. package/src/lib/table/data/common/event/ge-cell-indices.ts +0 -9
  305. package/src/lib/table/data/common/event/ge-key-event.ts +0 -10
  306. package/src/lib/table/data/common/event/ge-model-change-event.ts +0 -13
  307. package/src/lib/table/data/common/event/ge-mouse-event.ts +0 -38
  308. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +0 -14
  309. package/src/lib/table/data/common/index-and-px.ts +0 -9
  310. package/src/lib/table/data/common/size.if.ts +0 -4
  311. package/src/lib/table/data/common/size.ts +0 -9
  312. package/src/lib/table/data/common/sizes.ts +0 -35
  313. package/src/lib/table/data/common/sort-item.ts +0 -11
  314. package/src/lib/table/data/common/tree-row-if.ts +0 -11
  315. package/src/lib/table/data/common/tree-row.ts +0 -16
  316. package/src/lib/table/data/common/value-label.if.ts +0 -6
  317. package/src/lib/table/data/common/value-label.ts +0 -13
  318. package/src/lib/table/data/div-scope.type.ts +0 -5
  319. package/src/lib/table/data/event/mouse-target-data.ts +0 -45
  320. package/src/lib/table/data/geo-data.ts +0 -13
  321. package/src/lib/table/data/options/auto-restore-options.if.ts +0 -21
  322. package/src/lib/table/data/options/auto-restore-options.ts +0 -50
  323. package/src/lib/table/data/options/default-row-heights.if.ts +0 -5
  324. package/src/lib/table/data/options/default-row-heights.ts +0 -10
  325. package/src/lib/table/data/options/icon.if.ts +0 -7
  326. package/src/lib/table/data/options/icon.ts +0 -10
  327. package/src/lib/table/data/options/sorted-options.ts +0 -15
  328. package/src/lib/table/data/options/table-options.if.ts +0 -54
  329. package/src/lib/table/data/options/table-options.ts +0 -66
  330. package/src/lib/table/data/options/tree-options.if.ts +0 -10
  331. package/src/lib/table/data/options/tree-options.ts +0 -32
  332. package/src/lib/table/data/table-model-and-options.ts +0 -13
  333. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +0 -183
  334. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +0 -59
  335. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +0 -210
  336. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +0 -120
  337. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +0 -23
  338. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +0 -105
  339. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +0 -215
  340. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +0 -186
  341. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +0 -110
  342. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +0 -61
  343. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +0 -167
  344. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +0 -12
  345. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +0 -18
  346. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +0 -148
  347. package/src/lib/table/data/tablemodel/column/column-def.if.ts +0 -28
  348. package/src/lib/table/data/tablemodel/column/column-def.ts +0 -104
  349. package/src/lib/table/data/tablemodel/padding.ts +0 -9
  350. package/src/lib/table/data/tablemodel/table-model.if.ts +0 -90
  351. package/src/lib/table/data/tablemodel/table-model.ts +0 -352
  352. package/src/lib/table/ele-scope.ts +0 -283
  353. package/src/lib/table/event-adapter.ts +0 -28
  354. package/src/lib/table/event-listener.if.ts +0 -19
  355. package/src/lib/table/factory/table-factory.ts +0 -378
  356. package/src/lib/table/factory/tree-factory.ts +0 -51
  357. package/src/lib/table/focus/focus-model.if.ts +0 -14
  358. package/src/lib/table/focus/focus-model.ts +0 -48
  359. package/src/lib/table/input-handler.ts +0 -34
  360. package/src/lib/table/mouse-handler.ts +0 -236
  361. package/src/lib/table/render-scope.ts +0 -936
  362. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +0 -27
  363. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +0 -63
  364. package/src/lib/table/renderer/checkbox-cell-renderer.ts +0 -39
  365. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +0 -39
  366. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +0 -25
  367. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +0 -24
  368. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +0 -28
  369. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +0 -6
  370. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +0 -7
  371. package/src/lib/table/renderer/edit/input-cell-renderer.ts +0 -41
  372. package/src/lib/table/renderer/edit/select-cell-renderer.ts +0 -60
  373. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +0 -26
  374. package/src/lib/table/renderer/number-cell-renderer.ts +0 -38
  375. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +0 -60
  376. package/src/lib/table/renderer/renderer.ts +0 -11
  377. package/src/lib/table/renderer/star-rating-cell-renderer.ts +0 -45
  378. package/src/lib/table/renderer/true-false-cell-renderer.ts +0 -28
  379. package/src/lib/table/selection/selection-model.if.ts +0 -20
  380. package/src/lib/table/selection/selection-model.ts +0 -109
  381. package/src/lib/table/selection/selection-service.ts +0 -120
  382. package/src/lib/table/service/abstract-store-state.service.ts +0 -105
  383. package/src/lib/table/service/convenience-dom.service.ts +0 -548
  384. package/src/lib/table/service/data/collapsed-expanded.data.ts +0 -11
  385. package/src/lib/table/service/data/html-style.type.ts +0 -1
  386. package/src/lib/table/service/dom-service.if.ts +0 -16
  387. package/src/lib/table/service/ge-filter.service.ts +0 -123
  388. package/src/lib/table/service/simple-dom-service.ts +0 -46
  389. package/src/lib/table/service/sorter.service.ts +0 -30
  390. package/src/lib/table/service/store-state-collapsed-expand.service.ts +0 -76
  391. package/src/lib/table/service/store-state-scroll-pos.service.ts +0 -40
  392. package/src/lib/table/service/store-state-sorting.service.ts +0 -41
  393. package/src/lib/table/service/tree-row.service.ts +0 -31
  394. package/src/lib/table/table-api.ts +0 -61
  395. package/src/lib/table/table-scope.ts +0 -433
  396. package/src/test-setup.ts +0 -1
  397. package/tsconfig.json +0 -22
  398. package/tsconfig.lib.json +0 -19
  399. package/tsconfig.lib.prod.json +0 -7
  400. package/tsconfig.spec.json +0 -20
  401. /package/{src/lib/table/data/common/checked-type.ts → lib/table/data/common/checked-type.d.ts} +0 -0
  402. /package/{src/lib/table/data/common/filter-function.ts → lib/table/data/common/filter-function.d.ts} +0 -0
  403. /package/{src/lib/table/data/common/get-t.ts → lib/table/data/common/get-t.d.ts} +0 -0
  404. /package/{src/lib/table/data/common/sort-state.type.ts → lib/table/data/common/sort-state.type.d.ts} +0 -0
  405. /package/{src/lib/table/data/common/tree-arrow.type.ts → lib/table/data/common/tree-arrow.type.d.ts} +0 -0
  406. /package/{src/lib/table/data/side-ident.type.ts → lib/table/data/side-ident.type.d.ts} +0 -0
  407. /package/{src/lib/table/renderer/renderer-cleanup-fn.type.ts → lib/table/renderer/renderer-cleanup-fn.type.d.ts} +0 -0
@@ -1,210 +0,0 @@
1
- import { AreaIdent } from "../area-ident.type";
2
- import { ColumnDefIf } from "../column/column-def.if";
3
- import { AreaModelIf } from "./area-model.if";
4
- import { CellGroupIf } from "../cellgroup/cell-group.if";
5
- import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
6
- import { SortItem } from "../../common/sort-item";
7
- import { FilterFunction } from "../../common/filter-function";
8
- import { CellRendererIf } from "../../../renderer/cell-render.if";
9
- import { CheckedType } from "../../common/checked-type";
10
- import { CellgroupFactory } from "../cellgroup/cellgroup-factory";
11
- import { CellGroupExt } from "../cellgroup/cell-group-ext";
12
- import { CellGroupExtCellRenderer } from "../../../renderer/cell-group-ext-cell-renderer";
13
-
14
- // TODO next steps: fix this model
15
- export class AreaModelCellGroups implements AreaModelIf {
16
-
17
- public gammaCells = true;
18
-
19
- public rowSelectionModel: CheckboxModelIf<any> | undefined;
20
- public readonly arr: (CellGroupExt | null | undefined)[][];
21
-
22
- private groupExts: CellGroupExt[] = [];
23
- private cellGroupExtCellRenderer = new CellGroupExtCellRenderer();
24
-
25
- constructor(
26
- public readonly areaIdent: AreaIdent = "header",
27
- public readonly groups: CellGroupIf[],
28
- public readonly columnDefs: ColumnDefIf[] = [],
29
- public readonly defaultRowHeight: number
30
- ) {
31
- this.groupExts = CellgroupFactory.buildGroupExts(groups);
32
- console.info(this.groupExts);
33
- console.info(this.getAllLeafs());
34
- console.info(this.getMaxRowCount());
35
- for (const g of this.groupExts) {
36
- g.log(this.getMaxRowCount());
37
- //console.info(g.getAllRowCounts(g));
38
- }
39
- this.arr = this.buildArray();
40
-
41
- if (!this.columnDefs?.length && areaIdent === "header") {
42
- this.columnDefs = CellgroupFactory.buildColumnDefs(groups);
43
- }
44
- console.info('this.columnDefs', this.columnDefs);
45
- console.info('this.arr', this.arr);
46
- }
47
-
48
- getAllLeafs(): CellGroupExt[] {
49
- const flatten = CellgroupFactory.flattenGroupExts(this.groupExts);
50
- return flatten.filter(ge => !ge.children);
51
- }
52
-
53
- getMaxRowCount(): number {
54
- const allLeafs = this.getAllLeafs();
55
- if (allLeafs?.length) {
56
- return 1 + Math.max(...allLeafs.map(c => c.getParentCount(c)));
57
- }
58
- return 0;
59
- }
60
-
61
- buildArray(): (CellGroupExt | null | undefined)[][] {
62
- console.info("");
63
- let flatten = CellgroupFactory.flattenGroupExts(this.groupExts);
64
- // console.info("flat", flatten);
65
-
66
- const maxCol = flatten.length;
67
- const maxRow = 1 + Math.max(...flatten.map(c => c.rowIndex));
68
- console.info("max row/col:", maxRow + "/" + maxCol);
69
-
70
- const sb: string[] = [];
71
- CellgroupFactory.iterateThrowColumns(sb, this.groupExts);
72
- console.info(sb);
73
-
74
- const arrs = Array.from(Array(maxRow).keys()).map((_r) => []);
75
- let ret = CellgroupFactory.buildArrayOfArrays(flatten, arrs);
76
- console.table(ret);
77
-
78
- /*
79
-
80
- Gold Hohenwarte
81
- Gold AB Gold CD HOH AB HOH CD
82
- Gold A Gold B Gold C Gold D Gold Sum HOH Loc HOH A HOH B HOH C HOH D
83
-
84
- */
85
- return ret;
86
- }
87
-
88
- changeColumnOrder(_sourceColumnIndex: number, _targetColumnIndex: number): void {
89
- // skip
90
- }
91
-
92
- doSort(_sortItems: SortItem[]): boolean {
93
- return false;
94
- }
95
-
96
- externalFilterChanged<T>(_predictFn: FilterFunction<T>): void {
97
- // skip
98
- }
99
-
100
- getCellRenderer(_rowIndex: number, _columnIndex: number): CellRendererIf | undefined {
101
- return this.cellGroupExtCellRenderer;
102
- }
103
-
104
- getColspanAt(rowIndex: number, columnIndex: number): number {
105
- // let ret = 1;
106
- //
107
- // if (this.getValueAt(rowIndex, columnIndex)){
108
- // const maxCol = this.arr[0].length;
109
- // while (ret< maxCol && this.getValueAt(rowIndex, columnIndex + ret)===null){
110
- // ret++;
111
- // }
112
- // }
113
- // return ret;
114
-
115
- const val = this.getValueAt(rowIndex, columnIndex);
116
- if (val) {
117
- return val.getColumnCount();
118
- }
119
- return 0;
120
- }
121
-
122
- getCustomClassesAt(_rowIndex: number, _columnIndex: number): string[] {
123
- return [];
124
- }
125
-
126
- getCustomStyleAt(_rowIndex: number, _columnIndex: number): { [p: string]: string } | undefined {
127
- return undefined;
128
- }
129
-
130
- getMaxColspan(): number {
131
- return 12;
132
- }
133
-
134
- getMaxRowspan(): number {
135
- return 12;
136
- }
137
-
138
- getRowByIndex(_rowIndex: number): any {
139
- return undefined;
140
- }
141
-
142
- getRowCount(): number {
143
- if (this.arr) {
144
- return this.arr.length;
145
- }
146
- return 0;
147
- }
148
-
149
-
150
- getRowspanAt(rowIndex: number, columnIndex: number): number {
151
- // TODO
152
- const cge: CellGroupExt | null | undefined = this.getValueAt(rowIndex, columnIndex);
153
- if (cge){
154
- const maxRowCount = this.getRowCount();
155
- return cge.getRowSpan(cge, maxRowCount);
156
- }
157
- return 0;
158
- }
159
-
160
- getTooltipAt(_rowIndex: number, _columnIndex: number): any {
161
- // TODO
162
- return "";
163
- }
164
-
165
- getValueAt(rowIndex: number, columnIndex: number): any {
166
- return this.arr[rowIndex][columnIndex];
167
- }
168
-
169
- getYPosByRowIndex(_rowIndex: number): number {
170
- // TODO
171
- return 0;
172
- }
173
-
174
-
175
- init(): void {
176
- }
177
-
178
- getRowHeight(_rowIndex: number): number {
179
- return this.defaultRowHeight;
180
- }
181
-
182
- isEditable(_rowIndex: number, _columnIndex: number): boolean {
183
- return false;
184
- }
185
-
186
- isFilterable(): boolean {
187
- return false;
188
- }
189
-
190
- isRowCheckable(_rowIndex: number): boolean {
191
- return false;
192
- }
193
-
194
- isRowChecked(_rowIndex: number): CheckedType | undefined {
195
- return undefined;
196
- }
197
-
198
- isSelectable(_rowIndex: number, _columnIndex: number): boolean {
199
- return false;
200
- }
201
-
202
- setRowChecked(_rowIndex: number, _checked: boolean): void {
203
- // skipped
204
- }
205
-
206
- setValue(_rowIndex: number, _columnIndex: number, _value: any): boolean {
207
- return false;
208
- }
209
-
210
- }
@@ -1,120 +0,0 @@
1
- import { AreaModelIf } from "./area-model.if";
2
- import { CellRendererIf } from "../../../renderer/cell-render.if";
3
- import { CheckedType } from "../../common/checked-type";
4
- import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
5
- import { FilterFunction } from "../../common/filter-function";
6
- import { SortItem } from "../../common/sort-item";
7
- import { AreaIdent } from "../area-ident.type";
8
-
9
- /**
10
- * An unvisible model, which is used internally for hiding a header.
11
- */
12
- export class AreaModelHidden implements AreaModelIf {
13
-
14
- rowSelectionModel: CheckboxModelIf<any> | undefined = undefined;
15
-
16
- constructor(
17
- public areaIdent: AreaIdent = "body"
18
- ) {
19
- }
20
-
21
- getRowCount(): number {
22
- return 0;
23
- }
24
-
25
- getValueAt(_rowIndex: number, _columnIndex: number): any {
26
- return "";
27
- }
28
-
29
- getCellRenderer(_rowIndex: number, _columnIndex: number): CellRendererIf | undefined {
30
- return undefined;
31
- }
32
-
33
- getRowHeight(_rowIndex: number): number {
34
- return 0;
35
- }
36
-
37
- getColspanAt(_rowIndex: number, _columnIndex: number): number {
38
- return 0;
39
- }
40
-
41
- getCustomClassesAt(_rowIndex: number, _columnIndex: number): string[] {
42
- return [];
43
- }
44
-
45
- getCustomStyleAt(_rowIndex: number, _columnIndex: number): { [key: string]: string } | undefined {
46
- return undefined;
47
- }
48
-
49
- getRowspanAt(_rowIndex: number, _columnIndex: number): number {
50
- return 0;
51
- }
52
-
53
- getRowByIndex(_idx: number): any {
54
- return undefined;
55
- }
56
-
57
- isRowCheckable(_rowIndex: number): boolean {
58
- return false;
59
- }
60
-
61
- isRowChecked(_rowIndex: number): CheckedType | undefined {
62
- return undefined;
63
- }
64
-
65
- setRowChecked(_rowIndex: number, _checked: boolean): void {
66
- // nothing
67
- }
68
-
69
- getTooltipAt(_rowIndex: number, _columnIndex: number): any {
70
- return "";
71
- }
72
-
73
- getMaxColspan(): number {
74
- return 0;
75
- }
76
-
77
- getMaxRowspan(): number {
78
- return 0;
79
- }
80
-
81
-
82
- getYPosByRowIndex(_rowIndex: number): number {
83
- return 0;
84
- }
85
-
86
- init(): void {
87
- // nothing
88
- }
89
-
90
- externalFilterChanged(_predictFn: FilterFunction<any>): void {
91
- // nothing
92
- }
93
-
94
- isFilterable(): boolean {
95
- return false;
96
- }
97
-
98
- doSort(_sortItems: SortItem[]): boolean {
99
- // do nothing
100
- return false;
101
- }
102
-
103
- isEditable(_rowIndex: number, _columnIndex: number): boolean {
104
- return false;
105
- }
106
-
107
- setValue(_rowIndex: number, _columnIndex: number, _value: string): boolean {
108
- return false;
109
- }
110
-
111
- isSelectable(_rowIndex: number, _columnIndex: number): boolean {
112
- return false;
113
- }
114
-
115
- changeColumnOrder(_sourceColumnIndex: number, _targetColumnIndex: number): void {
116
- // skip
117
- }
118
-
119
- }
120
-
@@ -1,23 +0,0 @@
1
- import { AreaModelObjectyArray } from "./area-model-object-array";
2
- import { ColumnDefIf } from "../column/column-def.if";
3
- import { AreaIdent } from "../area-ident.type";
4
-
5
- export class AreaModelObjectArrayWithColumndefs<T> extends AreaModelObjectyArray<T> {
6
-
7
-
8
- constructor(
9
- public override areaIdent: AreaIdent,
10
- protected override readonly rows: T[],
11
- protected override readonly columnDefs: ColumnDefIf[],
12
- public override defaultRowHeight: number
13
- ) {
14
- super(
15
- areaIdent,
16
- rows,
17
- defaultRowHeight,
18
- columnDefs
19
- );
20
- }
21
-
22
- }
23
-
@@ -1,105 +0,0 @@
1
- import { AbstractAreaModel } from "./abstract-area-model";
2
- import { TreeRow } from "../../common/tree-row";
3
- import { ColumnDefIf } from "../column/column-def.if";
4
- import { AreaIdent } from "../area-ident.type";
5
- import { FilterFunction } from "../../common/filter-function";
6
- import { SorterService } from "../../../service/sorter.service";
7
- import { SortItem } from "../../common/sort-item";
8
-
9
- export class AreaModelObjectyArray<T> extends AbstractAreaModel<T> {
10
-
11
- protected readonly properties: string[];
12
- protected filteredRows: T[];
13
- protected sorterService: SorterService = new SorterService();
14
-
15
- constructor(
16
- public override areaIdent: AreaIdent,
17
- protected readonly rows: T[],
18
- public override defaultRowHeight: number,
19
- protected override columnDefs: ColumnDefIf[] = []
20
- ) {
21
- super(areaIdent, columnDefs, defaultRowHeight);
22
- this.filteredRows = [...rows];
23
- this.properties = columnDefs.map(def => def.property);
24
- }
25
-
26
- getRowCount(): number {
27
- return this.filteredRows?.length ?? 0;
28
- }
29
-
30
- getValueAt(rowIndex: number, columnIndex: number): any {
31
- const property = this.properties[columnIndex];
32
- let t = this.filteredRows[rowIndex];
33
- if (t instanceof TreeRow) {
34
- t = t.data;
35
- }
36
- if (t) {
37
- return this.getValueByT(t, property);
38
- }
39
- return "";
40
- }
41
-
42
- getFilteredRows(): T[] {
43
- return this.filteredRows;
44
- }
45
-
46
- getAllRows(): T[] {
47
- return this.rows;
48
- }
49
-
50
- getRowHeight(_rowIndex: number): number {
51
- return this.defaultRowHeight;
52
- }
53
-
54
- override getRowByIndex(rowIndex: number): any {
55
- return this.filteredRows[rowIndex];
56
- }
57
-
58
- externalFilterChanged(predictFn: FilterFunction<any>): void {
59
- this.filteredRows = (this.rows ? this.rows.filter(predictFn) : []);
60
- }
61
-
62
- override doSort(sortItems: SortItem[]): boolean {
63
- for (const sortItem of sortItems) {
64
- const { columnIndex, sortState } = sortItem;
65
- const f = sortState === "asc" ? 1 :
66
- sortState === "desc" ? -1 : 0;
67
- const property = this.properties[columnIndex];
68
- this.filteredRows = this.filteredRows.sort(this.genericFlatTableSortComparator(property, f));
69
- }
70
- return true;
71
- }
72
-
73
- getValueByT(t: T, property: string) {
74
- if (property.includes(".")) {
75
- return this.getPropertyValue(t, property.split("."));
76
- }
77
- // @ts-ignore
78
- return t[property];
79
- }
80
-
81
- override changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void {
82
- this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
83
- super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
84
- }
85
-
86
- protected genericFlatTableSortComparator(property: string, f: number) {
87
- return (a: T, b: T) => {
88
- const va = this.getValueByT(a, property);
89
- const vb = this.getValueByT(b, property);
90
- return this.sorterService.genericSortComparator(va, vb, f);
91
- };
92
- }
93
-
94
-
95
- private getPropertyValue(o: any, props: string[]): any {
96
- const prop = props.shift();
97
- // @ts-ignore
98
- let o2 = o[prop];
99
- if (o2 && props.length) {
100
- return this.getPropertyValue(o2, props);
101
- }
102
- return o2;
103
- }
104
- }
105
-
@@ -1,215 +0,0 @@
1
- import { TreeRow } from "../../common/tree-row";
2
- import { TreeRowService } from "../../../service/tree-row.service";
3
- import { AbstractAreaModel } from "./abstract-area-model";
4
- import { AreaIdent } from "../area-ident.type";
5
- import { ColumnDefIf } from "../column/column-def.if";
6
- import { FilterFunction } from "../../common/filter-function";
7
- import { SorterService } from "../../../service/sorter.service";
8
- import { SortItem } from "../../common/sort-item";
9
-
10
- export class AreaModelTree<S> extends AbstractAreaModel<TreeRow<S>> {
11
-
12
- protected readonly properties: string[];
13
- protected sorterService: SorterService = new SorterService();
14
-
15
- private readonly service = new TreeRowService();
16
- private filteredFlattenRows: TreeRow<S>[];
17
- private flattenRows: TreeRow<S>[];
18
- private lastPredictFn?: FilterFunction<any>;
19
-
20
- constructor(
21
- public override areaIdent: AreaIdent,
22
- public readonly rows: TreeRow<S>[],
23
- public override defaultRowHeight: number,
24
- protected override columnDefs: ColumnDefIf[] = []
25
- ) {
26
- super(areaIdent, columnDefs, defaultRowHeight);
27
- this.properties = columnDefs.map(def => def.property);
28
- this.flattenRows = this.service.flattenTree(rows);
29
- this.filteredFlattenRows = [...this.flattenRows];
30
- }
31
-
32
- override changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void {
33
- // not this! this.arrayMove(this.columnDefs...)
34
- this.arrayMove(this.properties, sourceColumnIndex, targetColumnIndex);
35
- super.changeColumnOrder(sourceColumnIndex, targetColumnIndex);
36
- }
37
-
38
- recalcVisibleTreeRows() {
39
- this.filteredFlattenRows = this.service.flattenTree(this.rows);
40
- }
41
-
42
- getFilteredFlattenRows(): TreeRow<S>[] {
43
- return this.filteredFlattenRows;
44
- }
45
-
46
- getRowCount(): number {
47
- let n = 0;
48
- for (const r of this.filteredFlattenRows) {
49
- if (this.service.isVisible(r)) {
50
- n++;
51
- }
52
- }
53
- return n;
54
- }
55
-
56
- getValueAt(rowIndex: number, columnIndex: number): any {
57
- const row = this.getRowByIndex(rowIndex);
58
- if (row) {
59
- const prop = this.properties[columnIndex];
60
- if (prop) {
61
- if (prop.includes(".")) {
62
- return this.getPropertyValue(row.data, prop.split("."));
63
- }
64
- // @ts-ignore
65
- return row.data[prop];
66
- }
67
- }
68
- return "";
69
- }
70
-
71
- getRowHeight(_rowIndex: number): number {
72
- return this.defaultRowHeight;
73
- }
74
-
75
- override getCustomClassesAt(rowIndex: number, _columnIndex: number): string[] {
76
- const row = this.filteredFlattenRows[rowIndex];
77
- return ["ge-table-tree-cell", "ge-table-tree-deep-" + row.deep];
78
- }
79
-
80
- override getRowByIndex(idx: number): TreeRow<S> | undefined {
81
- return this.filteredFlattenRows[idx];
82
- }
83
-
84
- getValueByT(t: S, property: string) {
85
- if (property.includes(".")) {
86
- return this.getPropertyValue(t, property.split("."));
87
- }
88
- // @ts-ignore
89
- return t[property];
90
- }
91
-
92
- externalFilterChanged<S>(predictFn: FilterFunction<S>): void {
93
- this.lastPredictFn = predictFn;
94
- this.doFiltering();
95
- }
96
-
97
- override doSort(sortItems: SortItem[]): boolean {
98
- const { columnIndex, sortState } = sortItems[sortItems.length - 1];
99
- const f = sortState === "asc" ? 1 :
100
- sortState === "desc" ? -1 : 0;
101
-
102
- const property = this.properties[columnIndex];
103
- this.treeSort(this.rows, property, f);
104
-
105
- this.flattenRows = this.service.flattenTree(this.rows);
106
- this.filteredFlattenRows = [...this.flattenRows];
107
- return true;
108
- }
109
-
110
- toggleExpandCollapseAll(expanded: boolean) {
111
- this.expandAllRecursive(this.rows, expanded);
112
-
113
- this.flattenRows = this.service.flattenTree(this.rows);
114
- this.doFiltering();
115
- }
116
-
117
- setAllParentsOk(item: TreeRow<any>) {
118
- if (item.parent) {
119
- item.parent.keep = true;
120
- this.setAllParentsOk(item.parent);
121
- }
122
- return false;
123
- }
124
-
125
- override setValue(rowIndex: number, columnIndex: number, value: any): boolean {
126
- const editInputPipe = this.columnDefs[columnIndex]?.editInputPipe;
127
- if (editInputPipe) {
128
- value = editInputPipe(value, rowIndex, columnIndex);
129
- }
130
- const treeRow: TreeRow<S> | undefined = this.getRowByIndex(rowIndex);
131
- if (treeRow) {
132
- const row: S = treeRow.data;
133
- const property = this.columnDefs[columnIndex].property;
134
- if (property.includes(".")) {
135
- return this.setPropertyValue(row, property.split("."), value);
136
- }
137
- // @ts-ignore
138
- row[property] = value;
139
- return true;
140
- }
141
- return false;
142
- }
143
-
144
- protected genericTreeTableSortComparator(property: string, f: number) {
145
- return (a: TreeRow<S>, b: TreeRow<S>) => {
146
- const va = this.getValueByT(a.data, property);
147
- const vb = this.getValueByT(b.data, property);
148
- return this.sorterService.genericSortComparator(va, vb, f);
149
- };
150
- }
151
-
152
- private expandAllRecursive(arr: TreeRow<S>[], expanded: boolean) {
153
- for (const row of arr) {
154
- row.expanded = expanded;
155
- if (row.children) {
156
- this.expandAllRecursive(row.children, expanded);
157
- }
158
- }
159
- }
160
-
161
- private doFiltering() {
162
- if (!this.lastPredictFn) {
163
- this.filteredFlattenRows = [...(this.flattenRows ? this.flattenRows : [])];
164
- } else {
165
-
166
- if (!this.flattenRows) {
167
- this.flattenRows = [];
168
- }
169
-
170
- let maxDeep = 0;
171
- this.flattenRows.forEach(v => {
172
- maxDeep = Math.max(maxDeep, v.deep);
173
- });
174
-
175
- const okRows = this.flattenRows.filter(
176
- (value, index, array) => {
177
- // @ts-ignore
178
- return this.lastPredictFn(value, index, array);
179
- }
180
- );
181
- this.flattenRows.forEach(v => v.keep = false);
182
- this.flattenRows.forEach(v => {
183
- if (okRows.includes(v)) {
184
- v.keep = true;
185
- this.setAllParentsOk(v);
186
- }
187
- });
188
-
189
- this.filteredFlattenRows = this.flattenRows.filter(
190
- (value, _index, _array) => {
191
- return value.keep;
192
- }
193
- );
194
- }
195
- }
196
-
197
- private getPropertyValue(o: any, props: string[]): any {
198
- const prop = props.shift();
199
- // @ts-ignore
200
- let o2 = o[prop];
201
- if (o2 && props.length) {
202
- return this.getPropertyValue(o2, props);
203
- }
204
- return o2;
205
- }
206
-
207
- private treeSort(rows: TreeRow<S>[], property: string, f: number) {
208
- rows.sort(this.genericTreeTableSortComparator(property, f));
209
- for (const row of rows) {
210
- if (row.children) {
211
- this.treeSort(row.children, property, f);
212
- }
213
- }
214
- }
215
- }