@guiexpert/table 0.0.2 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (348) hide show
  1. package/.eslintrc.json +42 -0
  2. package/LICENSE +35 -0
  3. package/README.md +102 -0
  4. package/jest.config.ts +18 -0
  5. package/ng-package.json +7 -0
  6. package/package.json +10 -20
  7. package/project.json +47 -0
  8. package/{index.d.ts → src/index.ts} +69 -20
  9. package/src/lib/table/action/action-id.type.ts +24 -0
  10. package/{lib/table/action/on-action-triggered.if.d.ts → src/lib/table/action/on-action-triggered.if.ts} +4 -1
  11. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +29 -0
  12. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +3 -0
  13. package/src/lib/table/action/shortcut.service.ts +134 -0
  14. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +27 -0
  15. package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
  16. package/src/lib/table/checkbox/checkbox-model.ts +62 -0
  17. package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
  18. package/src/lib/table/color/color-rgb.if.ts +7 -0
  19. package/src/lib/table/color/color-rgb.ts +10 -0
  20. package/src/lib/table/color/ge-css-color-util.ts +43 -0
  21. package/src/lib/table/color/three-color-gradient-arg.if.ts +10 -0
  22. package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
  23. package/src/lib/table/color/two-color-gradient-arg.if.ts +8 -0
  24. package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
  25. package/src/lib/table/css-vars.ts +243 -0
  26. package/src/lib/table/data/common/aligns.ts +19 -0
  27. package/src/lib/table/data/common/area-map-factory.ts +14 -0
  28. package/src/lib/table/data/common/area-map.ts +11 -0
  29. package/src/lib/table/data/common/area-map.type.ts +5 -0
  30. package/{lib/table/data/common/args-adjust-columns-to-row-parent-params.d.ts → src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts} +11 -9
  31. package/src/lib/table/data/common/args-render-cell-div.ts +18 -0
  32. package/src/lib/table/data/common/boolean-function.ts +4 -0
  33. package/src/lib/table/data/common/cell-range.ts +57 -0
  34. package/src/lib/table/data/common/checkbox-column-def.ts +25 -0
  35. package/src/lib/table/data/common/checked-type.ts +1 -0
  36. package/src/lib/table/data/common/event/ge-cell-indices.ts +9 -0
  37. package/src/lib/table/data/common/event/ge-key-event.ts +10 -0
  38. package/src/lib/table/data/common/event/ge-model-change-event.ts +13 -0
  39. package/src/lib/table/data/common/event/ge-mouse-event.ts +38 -0
  40. package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +10 -0
  41. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +14 -0
  42. package/src/lib/table/data/common/index-and-px.ts +9 -0
  43. package/src/lib/table/data/common/size.if.ts +4 -0
  44. package/src/lib/table/data/common/size.ts +9 -0
  45. package/src/lib/table/data/common/sizes.ts +35 -0
  46. package/src/lib/table/data/common/sort-item.ts +11 -0
  47. package/src/lib/table/data/common/tree-row-if.ts +11 -0
  48. package/src/lib/table/data/common/tree-row.ts +16 -0
  49. package/src/lib/table/data/common/value-label.if.ts +6 -0
  50. package/src/lib/table/data/common/value-label.ts +13 -0
  51. package/src/lib/table/data/div-scope.type.ts +5 -0
  52. package/src/lib/table/data/event/mouse-target-data.ts +45 -0
  53. package/src/lib/table/data/geo-data.ts +13 -0
  54. package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
  55. package/src/lib/table/data/options/auto-restore-options.ts +50 -0
  56. package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
  57. package/src/lib/table/data/options/default-row-heights.ts +10 -0
  58. package/src/lib/table/data/options/icon.if.ts +7 -0
  59. package/src/lib/table/data/options/icon.ts +10 -0
  60. package/{lib/table/data/options/sorted-options.if.d.ts → src/lib/table/data/options/sorted-options.if.ts} +6 -3
  61. package/src/lib/table/data/options/sorted-options.ts +15 -0
  62. package/src/lib/table/data/options/table-options.if.ts +54 -0
  63. package/src/lib/table/data/options/table-options.ts +66 -0
  64. package/src/lib/table/data/options/tree-options.if.ts +10 -0
  65. package/src/lib/table/data/options/tree-options.ts +32 -0
  66. package/src/lib/table/data/table-model-and-options.if.ts +8 -0
  67. package/src/lib/table/data/table-model-and-options.ts +13 -0
  68. package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
  69. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +183 -0
  70. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +59 -0
  71. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +210 -0
  72. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +120 -0
  73. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +23 -0
  74. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +105 -0
  75. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +215 -0
  76. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +186 -0
  77. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +110 -0
  78. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +61 -0
  79. package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
  80. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +167 -0
  81. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
  82. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
  83. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
  84. package/src/lib/table/data/tablemodel/column/column-def.if.ts +28 -0
  85. package/src/lib/table/data/tablemodel/column/column-def.ts +104 -0
  86. package/src/lib/table/data/tablemodel/padding.ts +9 -0
  87. package/src/lib/table/data/tablemodel/table-model.if.ts +90 -0
  88. package/src/lib/table/data/tablemodel/table-model.ts +352 -0
  89. package/src/lib/table/ele-scope.ts +283 -0
  90. package/src/lib/table/event-adapter.ts +28 -0
  91. package/src/lib/table/event-listener.if.ts +19 -0
  92. package/src/lib/table/factory/table-factory.ts +378 -0
  93. package/src/lib/table/factory/tree-factory.ts +51 -0
  94. package/src/lib/table/focus/focus-model.if.ts +14 -0
  95. package/src/lib/table/focus/focus-model.ts +48 -0
  96. package/{lib/table/focus/focus.type.d.ts → src/lib/table/focus/focus.type.ts} +3 -0
  97. package/src/lib/table/input-handler.ts +34 -0
  98. package/src/lib/table/mouse-handler.ts +237 -0
  99. package/src/lib/table/render-scope.ts +936 -0
  100. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +27 -0
  101. package/{lib/table/renderer/cell-render.if.d.ts → src/lib/table/renderer/cell-render.if.ts} +10 -1
  102. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +58 -0
  103. package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
  104. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +34 -0
  105. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
  106. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
  107. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
  108. package/{lib/table/renderer/edit/edit-cell-renderer.type.d.ts → src/lib/table/renderer/edit/edit-cell-renderer.type.ts} +1 -0
  109. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
  110. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +7 -0
  111. package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
  112. package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
  113. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
  114. package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
  115. package/src/lib/table/renderer/renderer.ts +11 -0
  116. package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
  117. package/src/lib/table/selection/selection-model.if.ts +20 -0
  118. package/src/lib/table/selection/selection-model.ts +109 -0
  119. package/src/lib/table/selection/selection-service.ts +120 -0
  120. package/{lib/table/selection/selection.type.d.ts → src/lib/table/selection/selection.type.ts} +3 -0
  121. package/src/lib/table/service/abstract-store-state.service.ts +105 -0
  122. package/src/lib/table/service/convenience-dom.service.ts +548 -0
  123. package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
  124. package/src/lib/table/service/data/html-style.type.ts +1 -0
  125. package/src/lib/table/service/dom-service.if.ts +16 -0
  126. package/src/lib/table/service/ge-filter.service.ts +123 -0
  127. package/src/lib/table/service/simple-dom-service.ts +46 -0
  128. package/src/lib/table/service/sorter.service.ts +30 -0
  129. package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
  130. package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
  131. package/src/lib/table/service/store-state-sorting.service.ts +41 -0
  132. package/src/lib/table/service/tree-row.service.ts +31 -0
  133. package/src/lib/table/table-api.ts +61 -0
  134. package/src/lib/table/table-scope.ts +433 -0
  135. package/src/test-setup.ts +1 -0
  136. package/tsconfig.json +22 -0
  137. package/tsconfig.lib.json +19 -0
  138. package/tsconfig.lib.prod.json +7 -0
  139. package/tsconfig.spec.json +20 -0
  140. package/esm2020/guiexpert-table.mjs +0 -5
  141. package/esm2020/index.mjs +0 -108
  142. package/esm2020/lib/table/action/action-id.type.mjs +0 -20
  143. package/esm2020/lib/table/action/on-action-triggered.if.mjs +0 -2
  144. package/esm2020/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -17
  145. package/esm2020/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
  146. package/esm2020/lib/table/action/shortcut.service.mjs +0 -105
  147. package/esm2020/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -15
  148. package/esm2020/lib/table/checkbox/checkbox-model.if.mjs +0 -2
  149. package/esm2020/lib/table/checkbox/checkbox-model.mjs +0 -52
  150. package/esm2020/lib/table/checkbox/tree-checkbox-model.mjs +0 -106
  151. package/esm2020/lib/table/data/common/aligns.mjs +0 -19
  152. package/esm2020/lib/table/data/common/area-map-factory.mjs +0 -7
  153. package/esm2020/lib/table/data/common/area-map.mjs +0 -8
  154. package/esm2020/lib/table/data/common/area-map.type.mjs +0 -2
  155. package/esm2020/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
  156. package/esm2020/lib/table/data/common/args-render-cell-div.mjs +0 -2
  157. package/esm2020/lib/table/data/common/boolean-function.mjs +0 -3
  158. package/esm2020/lib/table/data/common/cell-range.mjs +0 -27
  159. package/esm2020/lib/table/data/common/checkbox-column.mjs +0 -15
  160. package/esm2020/lib/table/data/common/checked-type.mjs +0 -2
  161. package/esm2020/lib/table/data/common/event/ge-cell-indices.mjs +0 -7
  162. package/esm2020/lib/table/data/common/event/ge-key-event.mjs +0 -7
  163. package/esm2020/lib/table/data/common/event/ge-model-change-event.mjs +0 -10
  164. package/esm2020/lib/table/data/common/event/ge-mouse-event.mjs +0 -19
  165. package/esm2020/lib/table/data/common/filter-function.mjs +0 -2
  166. package/esm2020/lib/table/data/common/get-t.mjs +0 -2
  167. package/esm2020/lib/table/data/common/index-and-px.mjs +0 -7
  168. package/esm2020/lib/table/data/common/size.if.mjs +0 -2
  169. package/esm2020/lib/table/data/common/size.mjs +0 -7
  170. package/esm2020/lib/table/data/common/sizes.mjs +0 -33
  171. package/esm2020/lib/table/data/common/sort-item.mjs +0 -7
  172. package/esm2020/lib/table/data/common/sort-state.type.mjs +0 -2
  173. package/esm2020/lib/table/data/common/tree-arrow.type.mjs +0 -2
  174. package/esm2020/lib/table/data/common/tree-row-if.mjs +0 -2
  175. package/esm2020/lib/table/data/common/tree-row.mjs +0 -12
  176. package/esm2020/lib/table/data/common/value-label.if.mjs +0 -2
  177. package/esm2020/lib/table/data/common/value-label.mjs +0 -7
  178. package/esm2020/lib/table/data/div-scope.type.mjs +0 -2
  179. package/esm2020/lib/table/data/geo-data.mjs +0 -10
  180. package/esm2020/lib/table/data/options/auto-restore-options.if.mjs +0 -2
  181. package/esm2020/lib/table/data/options/auto-restore-options.mjs +0 -42
  182. package/esm2020/lib/table/data/options/default-row-heights.if.mjs +0 -2
  183. package/esm2020/lib/table/data/options/default-row-heights.mjs +0 -8
  184. package/esm2020/lib/table/data/options/icon.if.mjs +0 -2
  185. package/esm2020/lib/table/data/options/icon.mjs +0 -8
  186. package/esm2020/lib/table/data/options/sorted-options.if.mjs +0 -2
  187. package/esm2020/lib/table/data/options/sorted-options.mjs +0 -9
  188. package/esm2020/lib/table/data/options/table-options.if.mjs +0 -2
  189. package/esm2020/lib/table/data/options/table-options.mjs +0 -37
  190. package/esm2020/lib/table/data/options/tree-options.if.mjs +0 -2
  191. package/esm2020/lib/table/data/options/tree-options.mjs +0 -10
  192. package/esm2020/lib/table/data/side-ident.type.mjs +0 -2
  193. package/esm2020/lib/table/data/tablemodel/area-ident.type.mjs +0 -10
  194. package/esm2020/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -108
  195. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-array-array.mjs +0 -34
  196. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -80
  197. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -11
  198. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -79
  199. package/esm2020/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -166
  200. package/esm2020/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
  201. package/esm2020/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -48
  202. package/esm2020/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
  203. package/esm2020/lib/table/data/tablemodel/column/column-def.mjs +0 -32
  204. package/esm2020/lib/table/data/tablemodel/padding.mjs +0 -9
  205. package/esm2020/lib/table/data/tablemodel/table-model.if.mjs +0 -2
  206. package/esm2020/lib/table/data/tablemodel/table-model.mjs +0 -268
  207. package/esm2020/lib/table/ele-scope.mjs +0 -173
  208. package/esm2020/lib/table/event-adapter.mjs +0 -17
  209. package/esm2020/lib/table/event-listener.if.mjs +0 -2
  210. package/esm2020/lib/table/focus/focus-model.if.mjs +0 -2
  211. package/esm2020/lib/table/focus/focus-model.mjs +0 -22
  212. package/esm2020/lib/table/focus/focus.type.mjs +0 -2
  213. package/esm2020/lib/table/input-handler.mjs +0 -24
  214. package/esm2020/lib/table/mouse-handler.mjs +0 -191
  215. package/esm2020/lib/table/render-scope.mjs +0 -595
  216. package/esm2020/lib/table/renderer/cell-render.if.mjs +0 -2
  217. package/esm2020/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
  218. package/esm2020/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -21
  219. package/esm2020/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
  220. package/esm2020/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
  221. package/esm2020/lib/table/renderer/date-to-tec-cell-renderer.mjs +0 -12
  222. package/esm2020/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
  223. package/esm2020/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
  224. package/esm2020/lib/table/renderer/edit/select-cell-renderer.mjs +0 -35
  225. package/esm2020/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
  226. package/esm2020/lib/table/renderer/number-cell-renderer.mjs +0 -19
  227. package/esm2020/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
  228. package/esm2020/lib/table/renderer/renderer.mjs +0 -7
  229. package/esm2020/lib/table/renderer/true-false-cell-renderer.mjs +0 -15
  230. package/esm2020/lib/table/selection/selection-model.if.mjs +0 -2
  231. package/esm2020/lib/table/selection/selection-model.mjs +0 -97
  232. package/esm2020/lib/table/selection/selection-service.mjs +0 -97
  233. package/esm2020/lib/table/selection/selection.type.mjs +0 -2
  234. package/esm2020/lib/table/service/abstract-store-state.service.mjs +0 -49
  235. package/esm2020/lib/table/service/convenience-dom.service.mjs +0 -394
  236. package/esm2020/lib/table/service/data/collapsed-expanded.data.mjs +0 -9
  237. package/esm2020/lib/table/service/data/html-style.type.mjs +0 -2
  238. package/esm2020/lib/table/service/dom-service.if.mjs +0 -2
  239. package/esm2020/lib/table/service/ge-filter.service.mjs +0 -98
  240. package/esm2020/lib/table/service/simple-dom-service.mjs +0 -34
  241. package/esm2020/lib/table/service/sorter.service.mjs +0 -27
  242. package/esm2020/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
  243. package/esm2020/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
  244. package/esm2020/lib/table/service/store-state-sorting.service.mjs +0 -29
  245. package/esm2020/lib/table/service/tree-row.service.mjs +0 -23
  246. package/esm2020/lib/table/table-api.mjs +0 -38
  247. package/esm2020/lib/table/table-model-factory.mjs +0 -124
  248. package/esm2020/lib/table/table-scope.mjs +0 -313
  249. package/lib/table/action/action-id.type.d.ts +0 -2
  250. package/lib/table/action/osx-shortcut-actionId-mapping.d.ts +0 -6
  251. package/lib/table/action/shortcut-actionid-mapping.type.d.ts +0 -4
  252. package/lib/table/action/shortcut.service.d.ts +0 -17
  253. package/lib/table/action/windows-shortcut-actionId-mapping.d.ts +0 -6
  254. package/lib/table/checkbox/checkbox-model.d.ts +0 -12
  255. package/lib/table/checkbox/checkbox-model.if.d.ts +0 -9
  256. package/lib/table/checkbox/tree-checkbox-model.d.ts +0 -17
  257. package/lib/table/data/common/aligns.d.ts +0 -24
  258. package/lib/table/data/common/area-map-factory.d.ts +0 -5
  259. package/lib/table/data/common/area-map.d.ts +0 -7
  260. package/lib/table/data/common/area-map.type.d.ts +0 -5
  261. package/lib/table/data/common/args-render-cell-div.d.ts +0 -13
  262. package/lib/table/data/common/boolean-function.d.ts +0 -3
  263. package/lib/table/data/common/cell-range.d.ts +0 -17
  264. package/lib/table/data/common/checkbox-column.d.ts +0 -13
  265. package/lib/table/data/common/checked-type.d.ts +0 -1
  266. package/lib/table/data/common/event/ge-cell-indices.d.ts +0 -5
  267. package/lib/table/data/common/event/ge-key-event.d.ts +0 -5
  268. package/lib/table/data/common/event/ge-model-change-event.d.ts +0 -6
  269. package/lib/table/data/common/event/ge-mouse-event.d.ts +0 -17
  270. package/lib/table/data/common/index-and-px.d.ts +0 -5
  271. package/lib/table/data/common/size.d.ts +0 -6
  272. package/lib/table/data/common/size.if.d.ts +0 -4
  273. package/lib/table/data/common/sizes.d.ts +0 -32
  274. package/lib/table/data/common/sort-item.d.ts +0 -6
  275. package/lib/table/data/common/tree-row-if.d.ts +0 -10
  276. package/lib/table/data/common/tree-row.d.ts +0 -11
  277. package/lib/table/data/common/value-label.d.ts +0 -6
  278. package/lib/table/data/common/value-label.if.d.ts +0 -4
  279. package/lib/table/data/div-scope.type.d.ts +0 -7
  280. package/lib/table/data/geo-data.d.ts +0 -8
  281. package/lib/table/data/options/auto-restore-options.d.ts +0 -11
  282. package/lib/table/data/options/auto-restore-options.if.d.ts +0 -16
  283. package/lib/table/data/options/default-row-heights.d.ts +0 -7
  284. package/lib/table/data/options/default-row-heights.if.d.ts +0 -5
  285. package/lib/table/data/options/icon.d.ts +0 -7
  286. package/lib/table/data/options/icon.if.d.ts +0 -5
  287. package/lib/table/data/options/sorted-options.d.ts +0 -8
  288. package/lib/table/data/options/table-options.d.ts +0 -35
  289. package/lib/table/data/options/table-options.if.d.ts +0 -36
  290. package/lib/table/data/options/tree-options.d.ts +0 -9
  291. package/lib/table/data/options/tree-options.if.d.ts +0 -7
  292. package/lib/table/data/tablemodel/area-ident.type.d.ts +0 -2
  293. package/lib/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -43
  294. package/lib/table/data/tablemodel/areamodel/area-model-array-array.d.ts +0 -18
  295. package/lib/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -37
  296. package/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -10
  297. package/lib/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -27
  298. package/lib/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -39
  299. package/lib/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -146
  300. package/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -12
  301. package/lib/table/data/tablemodel/column/column-def.d.ts +0 -46
  302. package/lib/table/data/tablemodel/column/column-def.if.d.ts +0 -22
  303. package/lib/table/data/tablemodel/padding.d.ts +0 -7
  304. package/lib/table/data/tablemodel/table-model.d.ts +0 -61
  305. package/lib/table/data/tablemodel/table-model.if.d.ts +0 -35
  306. package/lib/table/ele-scope.d.ts +0 -37
  307. package/lib/table/event-adapter.d.ts +0 -12
  308. package/lib/table/event-listener.if.d.ts +0 -11
  309. package/lib/table/focus/focus-model.d.ts +0 -12
  310. package/lib/table/focus/focus-model.if.d.ts +0 -6
  311. package/lib/table/input-handler.d.ts +0 -6
  312. package/lib/table/mouse-handler.d.ts +0 -25
  313. package/lib/table/render-scope.d.ts +0 -82
  314. package/lib/table/renderer/checkbox-cell-renderer.d.ts +0 -8
  315. package/lib/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -9
  316. package/lib/table/renderer/date-to-iso-cell-renderer.d.ts +0 -8
  317. package/lib/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -8
  318. package/lib/table/renderer/date-to-tec-cell-renderer.d.ts +0 -8
  319. package/lib/table/renderer/edit/input-cell-renderer.d.ts +0 -8
  320. package/lib/table/renderer/edit/select-cell-renderer.d.ts +0 -12
  321. package/lib/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -8
  322. package/lib/table/renderer/number-cell-renderer.d.ts +0 -11
  323. package/lib/table/renderer/renderer.d.ts +0 -5
  324. package/lib/table/renderer/true-false-cell-renderer.d.ts +0 -8
  325. package/lib/table/selection/selection-model.d.ts +0 -21
  326. package/lib/table/selection/selection-model.if.d.ts +0 -11
  327. package/lib/table/selection/selection-service.d.ts +0 -17
  328. package/lib/table/service/abstract-store-state.service.d.ts +0 -10
  329. package/lib/table/service/convenience-dom.service.d.ts +0 -46
  330. package/lib/table/service/data/collapsed-expanded.data.d.ts +0 -7
  331. package/lib/table/service/data/html-style.type.d.ts +0 -3
  332. package/lib/table/service/dom-service.if.d.ts +0 -9
  333. package/lib/table/service/ge-filter.service.d.ts +0 -5
  334. package/lib/table/service/simple-dom-service.d.ts +0 -10
  335. package/lib/table/service/sorter.service.d.ts +0 -3
  336. package/lib/table/service/store-state-collapsed-expand.service.d.ts +0 -15
  337. package/lib/table/service/store-state-scroll-pos.service.d.ts +0 -10
  338. package/lib/table/service/store-state-sorting.service.d.ts +0 -11
  339. package/lib/table/service/tree-row.service.d.ts +0 -5
  340. package/lib/table/table-api.d.ts +0 -16
  341. package/lib/table/table-model-factory.d.ts +0 -60
  342. package/lib/table/table-scope.d.ts +0 -56
  343. /package/{lib/table/data/common/filter-function.d.ts → src/lib/table/data/common/filter-function.ts} +0 -0
  344. /package/{lib/table/data/common/get-t.d.ts → src/lib/table/data/common/get-t.ts} +0 -0
  345. /package/{lib/table/data/common/sort-state.type.d.ts → src/lib/table/data/common/sort-state.type.ts} +0 -0
  346. /package/{lib/table/data/common/tree-arrow.type.d.ts → src/lib/table/data/common/tree-arrow.type.ts} +0 -0
  347. /package/{lib/table/data/side-ident.type.d.ts → src/lib/table/data/side-ident.type.ts} +0 -0
  348. /package/{lib/table/renderer/renderer-cleanup-fn.type.d.ts → src/lib/table/renderer/renderer-cleanup-fn.type.ts} +0 -0
@@ -0,0 +1,105 @@
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
+
@@ -0,0 +1,215 @@
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
+ }
@@ -0,0 +1,186 @@
1
+ import { CellRendererIf } from "../../../renderer/cell-render.if";
2
+ import { CheckedType } from "../../common/checked-type";
3
+ import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
4
+ import { FilterFunction } from "../../common/filter-function";
5
+ import { SortItem } from "../../common/sort-item";
6
+ import { AreaIdent } from "../area-ident.type";
7
+
8
+ /**
9
+ * This is the model interface for an area model. A table can have three of these models, one for the header,
10
+ * one for the body , and one for the footer.
11
+ * An AreaModelIf gives you information about the rows and cell contents.
12
+ * The column information is given by the TableModelIf.
13
+ */
14
+ export interface AreaModelIf {
15
+
16
+
17
+ /**
18
+ * The identifier for one of the areas: header, body, footer.
19
+ */
20
+ areaIdent: AreaIdent;
21
+
22
+ /**
23
+ * A model and controller for a row checkbox selection
24
+ */
25
+ rowSelectionModel: CheckboxModelIf<any> | undefined;
26
+
27
+ /**
28
+ * Method for moving a column from position sourceColumnIndex to targetColumnIndex.
29
+ */
30
+ changeColumnOrder(sourceColumnIndex: number, targetColumnIndex: number): void;
31
+
32
+ /**
33
+ * Method for changing a cell value.
34
+ */
35
+ setValue(rowIndex: number, columnIndex: number, value: any): boolean;
36
+
37
+ /**
38
+ * Internally used by TableModel.
39
+ */
40
+ init(): void;
41
+
42
+ /**
43
+ * Returns the number of rows of the area
44
+ */
45
+ getRowCount(): number;
46
+
47
+ /**
48
+ * Returns the value of the cell at position rowIndex/columnIndex.
49
+ */
50
+ getValueAt(rowIndex: number, columnIndex: number): any;
51
+
52
+ /**
53
+ * Returns the value of a colspan of the cell at position rowIndex/columnIndex.
54
+ * A value below 2 is ignored.
55
+ */
56
+ getColspanAt(rowIndex: number, columnIndex: number): number;
57
+
58
+ /**
59
+ * This return value is internally used to optimize the render performance.
60
+ * Set this value to the lowest possible value. If the model has no colspan,
61
+ * a value of 0 would be good. The dafault is 32. If your model has a colspan
62
+ * cell greater 32, don't forget to increase this value.
63
+ */
64
+ getMaxColspan(): number;
65
+
66
+ /**
67
+ * Returns the value of a rowspan of the cell at position rowIndex/columnIndex.
68
+ * A value below 2 is ignored.
69
+ */
70
+ getRowspanAt(rowIndex: number, columnIndex: number): number;
71
+
72
+ /**
73
+ * This return value is internally used to optimize the render performance.
74
+ * Set this value to the lowest possible value. If the model has no rowspan,
75
+ * a value of 0 would be good. The dafault is 32. If your model has a rowspan
76
+ * cell greater 32, don't forget to increase this value.
77
+ */
78
+ getMaxRowspan(): number;
79
+
80
+ /**
81
+ * This method can be used to return a list of css classes for the given cell
82
+ * @param rowIndex row index of the cell
83
+ * @param columnIndex column index of the cell
84
+ */
85
+ getCustomClassesAt(rowIndex: number, columnIndex: number): string[];
86
+
87
+ /**
88
+ * This method can be used to return an object with css style information for the given cell
89
+ * @param rowIndex row index of the cell
90
+ * @param columnIndex column index of the cell
91
+ */
92
+ getCustomStyleAt(rowIndex: number, columnIndex: number): { [key: string]: string } | undefined;
93
+
94
+ /**
95
+ * Returns the cell value of the given cell. This value will be rendered
96
+ * directly in the cell or rendered by a cell renderer: see {@link getCellRenderer}.
97
+ * @param rowIndex
98
+ * @param columnIndex
99
+ */
100
+ getValueAt(rowIndex: number, columnIndex: number): any;
101
+
102
+ /**
103
+ * Returns the value of a tooltip of the given cell (rowIndex/columnIndex).
104
+ * @param rowIndex
105
+ * @param columnIndex
106
+ */
107
+ getTooltipAt(rowIndex: number, columnIndex: number): any;
108
+
109
+ /**
110
+ * Returns a cell renderer class for the given cell (rowIndex/columnIndex).
111
+ * If the return value is undefined, no renderer is used and the model value will be rendered directly in the cell.
112
+ * @param rowIndex
113
+ * @param columnIndex
114
+ */
115
+ getCellRenderer(rowIndex: number, columnIndex: number): CellRendererIf | undefined;
116
+
117
+ /**
118
+ * Returns the row height in pixel of the given row (rowIndex).
119
+ * @param rowIndex
120
+ */
121
+ getRowHeight(rowIndex: number): number;
122
+
123
+ /**
124
+ * Returns the row of the model, which correspond to the rowIndex.
125
+ * @param rowIndex
126
+ */
127
+ getRowByIndex(rowIndex: number): any;
128
+
129
+ /**
130
+ * Return the y-position in pixel of the top of the row on the scrollpane.
131
+ * For big tables it can be a big value (greate than the height of the viewport).
132
+ * @param rowIndex
133
+ */
134
+ getYPosByRowIndex(rowIndex: number): number;
135
+
136
+ /**
137
+ * If this method returns true, the cell can be edited by the user.
138
+ * @param rowIndex
139
+ * @param columnIndex
140
+ */
141
+ isEditable(rowIndex: number, columnIndex: number): boolean;
142
+
143
+ /**
144
+ * If true, the cell is selectable.
145
+ * @param rowIndex
146
+ * @param columnIndex
147
+ */
148
+ isSelectable(rowIndex: number, columnIndex: number): boolean;
149
+
150
+ /**
151
+ * If true, the row is checkable and a checkbox is rendered at the beginning of the row.
152
+ * @param rowIndex
153
+ */
154
+ isRowCheckable(rowIndex: number): boolean;
155
+
156
+ /**
157
+ * Returns the checked state of an row.
158
+ * @param rowIndex
159
+ */
160
+ isRowChecked(rowIndex: number): CheckedType | undefined;
161
+
162
+ /**
163
+ * Set the checked state of the row (rowIndex) to #checked.
164
+ * @param rowIndex
165
+ * @param checked
166
+ */
167
+ setRowChecked(rowIndex: number, checked: boolean): void;
168
+
169
+ /**
170
+ * If true, the table is filterable. Rows can be filtered with help of {@link #externalFilterChanged()}
171
+ */
172
+ isFilterable(): boolean;
173
+
174
+ /**
175
+ * Will be called internally, when a filtering is trigger.
176
+ * @param predictFn Defines, what row are invisible or visible after filtering.
177
+ */
178
+ externalFilterChanged<T>(predictFn: FilterFunction<T>): void;
179
+
180
+ /**
181
+ * If the 'restore sort' option is set (see), this method will be triggered automatically by the table,
182
+ * @param sortItems
183
+ */
184
+ doSort(sortItems: SortItem[]): boolean;
185
+ }
186
+
@@ -0,0 +1,110 @@
1
+ import { AreaModelIf } from "./area-model.if";
2
+ import { AreaIdent } from "../area-ident.type";
3
+ import { CheckboxModelIf } from "../../../checkbox/checkbox-model.if";
4
+ import { SortItem } from "../../common/sort-item";
5
+ import { FilterFunction } from "../../common/filter-function";
6
+ import { CellRendererIf } from "../../../renderer/cell-render.if";
7
+ import { CheckedType } from "../../common/checked-type";
8
+
9
+
10
+ export class AreaModel implements AreaModelIf {
11
+
12
+ areaIdent: AreaIdent = "body";
13
+ rowSelectionModel: CheckboxModelIf<any> | undefined = undefined;
14
+
15
+ changeColumnOrder(_sourceColumnIndex: number, _targetColumnIndex: number): void {
16
+ // ignore
17
+ }
18
+
19
+ doSort(_sortItems: SortItem[]): boolean {
20
+ return false;
21
+ }
22
+
23
+ externalFilterChanged<T>(_predictFn: FilterFunction<T>): void {
24
+ // ignore
25
+ }
26
+
27
+ getCellRenderer(_rowIndex: number, _columnIndex: number): CellRendererIf | undefined {
28
+ return undefined;
29
+ }
30
+
31
+ getColspanAt(_rowIndex: number, _columnIndex: number): number {
32
+ return 0;
33
+ }
34
+
35
+ getCustomClassesAt(_rowIndex: number, _columnIndex: number): string[] {
36
+ return [];
37
+ }
38
+
39
+ getCustomStyleAt(_rowIndex: number, _columnIndex: number): { [p: string]: string } | undefined {
40
+ return undefined;
41
+ }
42
+
43
+ getMaxColspan(): number {
44
+ return 0;
45
+ }
46
+
47
+ getMaxRowspan(): number {
48
+ return 0;
49
+ }
50
+
51
+ getRowByIndex(_rowIndex: number): any {
52
+ }
53
+
54
+ getRowCount(): number {
55
+ return 0;
56
+ }
57
+
58
+ getRowHeight(_rowIndex: number): number {
59
+ return 0;
60
+ }
61
+
62
+ getRowspanAt(_rowIndex: number, _columnIndex: number): number {
63
+ return 0;
64
+ }
65
+
66
+ getTooltipAt(_rowIndex: number, _columnIndex: number): any {
67
+ return undefined;
68
+ }
69
+
70
+ getValueAt(_rowIndex: number, _columnIndex: number): any {
71
+ return undefined;
72
+ }
73
+
74
+ getYPosByRowIndex(_rowIndex: number): number {
75
+ return 0;
76
+ }
77
+
78
+ init(): void {
79
+ // ignore
80
+ }
81
+
82
+ isEditable(_rowIndex: number, _columnIndex: number): boolean {
83
+ return false;
84
+ }
85
+
86
+ isFilterable(): boolean {
87
+ return false;
88
+ }
89
+
90
+ isRowCheckable(_rowIndex: number): boolean {
91
+ return false;
92
+ }
93
+
94
+ isRowChecked(_rowIndex: number): CheckedType | undefined {
95
+ return undefined;
96
+ }
97
+
98
+ isSelectable(_rowIndex: number, _columnIndex: number): boolean {
99
+ return false;
100
+ }
101
+
102
+ setRowChecked(_rowIndex: number, _checked: boolean): void {
103
+ // ignore
104
+ }
105
+
106
+ setValue(_rowIndex: number, _columnIndex: number, _value: any): boolean {
107
+ return false;
108
+ }
109
+
110
+ }
@@ -0,0 +1,61 @@
1
+ import { CellRange } from "../../common/cell-range";
2
+ import { AreaModelIf } from "./area-model.if";
3
+ import { TableModelIf } from "../table-model.if";
4
+
5
+ export class ColAndRowspanModel {
6
+
7
+ protected colAndRowspanRanges: CellRange[] | undefined = undefined;
8
+
9
+ constructor(
10
+ protected tableModel: TableModelIf,
11
+ protected areaModel: AreaModelIf
12
+ ) {
13
+ }
14
+
15
+ init() {
16
+ if (this.areaModel.getMaxColspan() < 2 && this.areaModel.getMaxRowspan() < 2) {
17
+ return; // sip
18
+ }
19
+ this.colAndRowspanRanges = [];
20
+ const rowCount = this.areaModel.getRowCount();
21
+ const colCount = this.tableModel.getColumnCount();
22
+ for (let r = 0; r < rowCount; r++) {
23
+ for (let c = 0; c < colCount; c++) {
24
+ let cs = this.areaModel.getColspanAt(r, c);
25
+ let rs = this.areaModel.getRowspanAt(r, c);
26
+ if (cs > 1 || rs > 1) {
27
+ if (cs === 0) {
28
+ cs = 1;
29
+ }
30
+ if (rs === 0) {
31
+ rs = 1;
32
+ }
33
+
34
+ const gammaRange = this.areaModel.hasOwnProperty('gammaCells');
35
+ this.colAndRowspanRanges.push(
36
+ new CellRange(r, c, r + rs - 1, c + cs - 1, gammaRange)
37
+ );
38
+ }
39
+ }
40
+ }
41
+ }
42
+
43
+ getRanges(): CellRange[] {
44
+ if (this.colAndRowspanRanges) {
45
+ return this.colAndRowspanRanges;
46
+ }
47
+ return [];
48
+ }
49
+
50
+ isInRange(rowIndex: number, columnIndex: number): boolean {
51
+ if (this.colAndRowspanRanges) {
52
+ for (const range of this.colAndRowspanRanges) {
53
+ if (range.isInRange(rowIndex, columnIndex)) {
54
+ return true;
55
+ }
56
+ }
57
+ }
58
+ return false;
59
+ }
60
+
61
+ }
@@ -0,0 +1,3 @@
1
+ export interface HasDefaultRowHeightIf {
2
+ defaultRowHeight: number;
3
+ }