@guiexpert/table 1.1.18 → 1.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/.eslintrc.json +16 -0
  2. package/dist/README.md +101 -0
  3. package/dist/css/main.css +350 -0
  4. package/dist/css/table-classes.css +42 -0
  5. package/dist/css/table-color-classes.css +98 -0
  6. package/dist/css/table-color-vars.css +158 -0
  7. package/dist/css/table-tree.css +53 -0
  8. package/dist/index.cjs +351 -0
  9. package/{index.d.ts → dist/index.d.ts} +3 -0
  10. package/{index.js → dist/index.js} +896 -831
  11. package/dist/lib/common/decorator/avoid-double-execution.decorator.d.ts +7 -0
  12. package/{lib → dist/lib}/table/event-listener.if.d.ts +3 -1
  13. package/dist/lib/table/focus/event-focus-changed-listener.if.d.ts +4 -0
  14. package/{lib → dist/lib}/table/focus/focus-model.d.ts +6 -0
  15. package/dist/lib/table/focus/focus-model.if.d.ts +12 -0
  16. package/dist/lib/table/renderer/positive-and-negative-number-renderer.d.ts +8 -0
  17. package/dist/lib/table/selection/event-selection-changed-listener.if.d.ts +4 -0
  18. package/{lib → dist/lib}/table/selection/multi-rows-selection-model.d.ts +9 -0
  19. package/{lib → dist/lib}/table/selection/selection-model.d.ts +7 -0
  20. package/{lib → dist/lib}/table/selection/selection-model.if.d.ts +4 -0
  21. package/{lib → dist/lib}/table/table-scope.d.ts +3 -1
  22. package/dist/package.json +51 -0
  23. package/doc.css +1565 -0
  24. package/package.json +27 -8
  25. package/patch.js +16 -0
  26. package/src/index.ts +176 -0
  27. package/src/lib/common/decorator/avoid-double-execution.decorator.ts +21 -0
  28. package/src/lib/table/action/action-id.type.ts +36 -0
  29. package/src/lib/table/action/on-action-triggered.if.ts +14 -0
  30. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +39 -0
  31. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +7 -0
  32. package/src/lib/table/action/shortcut.service.ts +162 -0
  33. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +35 -0
  34. package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
  35. package/src/lib/table/checkbox/checkbox-model.ts +62 -0
  36. package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
  37. package/src/lib/table/color/color-rgb.if.ts +12 -0
  38. package/src/lib/table/color/color-rgb.ts +10 -0
  39. package/src/lib/table/color/ge-css-color-util.ts +43 -0
  40. package/src/lib/table/color/three-color-gradient-arg.if.ts +15 -0
  41. package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
  42. package/src/lib/table/color/two-color-gradient-arg.if.ts +12 -0
  43. package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
  44. package/src/lib/table/css-vars.ts +243 -0
  45. package/src/lib/table/data/chunk/chunk.data-event.if.ts +8 -0
  46. package/src/lib/table/data/chunk/chunk.data-event.ts +27 -0
  47. package/src/lib/table/data/chunk/request-chunk.if.ts +9 -0
  48. package/src/lib/table/data/chunk/request-chunk.ts +15 -0
  49. package/src/lib/table/data/common/aligns.ts +42 -0
  50. package/src/lib/table/data/common/area-map-factory.ts +20 -0
  51. package/src/lib/table/data/common/area-map.ts +18 -0
  52. package/src/lib/table/data/common/area-map.type.ts +5 -0
  53. package/src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts +21 -0
  54. package/src/lib/table/data/common/args-render-cell-div.ts +34 -0
  55. package/src/lib/table/data/common/boolean-function.ts +16 -0
  56. package/src/lib/table/data/common/cell-range.ts +66 -0
  57. package/src/lib/table/data/common/checkbox-column-def.ts +31 -0
  58. package/src/lib/table/data/common/checked-type.ts +6 -0
  59. package/src/lib/table/data/common/event/ge-cell-indices.ts +12 -0
  60. package/src/lib/table/data/common/event/ge-key-event.ts +15 -0
  61. package/src/lib/table/data/common/event/ge-model-change-event.ts +16 -0
  62. package/src/lib/table/data/common/event/ge-mouse-event.ts +41 -0
  63. package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +58 -0
  64. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +27 -0
  65. package/src/lib/table/data/common/filter-function.ts +9 -0
  66. package/src/lib/table/data/common/get-t.ts +7 -0
  67. package/src/lib/table/data/common/index-and-px.ts +12 -0
  68. package/src/lib/table/data/common/size.if.ts +8 -0
  69. package/src/lib/table/data/common/size.ts +9 -0
  70. package/src/lib/table/data/common/sizes.ts +35 -0
  71. package/src/lib/table/data/common/sort-item.ts +14 -0
  72. package/src/lib/table/data/common/sort-state.type.ts +7 -0
  73. package/src/lib/table/data/common/tree-arrow.type.ts +8 -0
  74. package/src/lib/table/data/common/tree-row-if.ts +15 -0
  75. package/src/lib/table/data/common/tree-row.ts +22 -0
  76. package/src/lib/table/data/common/value-label.if.ts +6 -0
  77. package/src/lib/table/data/common/value-label.ts +13 -0
  78. package/src/lib/table/data/div-scope.type.ts +14 -0
  79. package/src/lib/table/data/event/mouse-target-data.ts +48 -0
  80. package/src/lib/table/data/geo-data.ts +16 -0
  81. package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
  82. package/src/lib/table/data/options/auto-restore-options.ts +50 -0
  83. package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
  84. package/src/lib/table/data/options/default-row-heights.ts +10 -0
  85. package/src/lib/table/data/options/header-group-options.if.ts +9 -0
  86. package/src/lib/table/data/options/header-group-options.ts +23 -0
  87. package/src/lib/table/data/options/icon.if.ts +20 -0
  88. package/src/lib/table/data/options/icon.ts +10 -0
  89. package/src/lib/table/data/options/sorted-options.if.ts +13 -0
  90. package/src/lib/table/data/options/sorted-options.ts +15 -0
  91. package/src/lib/table/data/options/table-options.if.ts +240 -0
  92. package/src/lib/table/data/options/table-options.ts +68 -0
  93. package/src/lib/table/data/options/tree-options.if.ts +10 -0
  94. package/src/lib/table/data/options/tree-options.ts +32 -0
  95. package/src/lib/table/data/side-ident.type.ts +4 -0
  96. package/src/lib/table/data/table-model-and-options.if.ts +11 -0
  97. package/src/lib/table/data/table-model-and-options.ts +16 -0
  98. package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
  99. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +184 -0
  100. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +63 -0
  101. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +236 -0
  102. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +126 -0
  103. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +28 -0
  104. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +120 -0
  105. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +224 -0
  106. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +192 -0
  107. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +117 -0
  108. package/src/lib/table/data/tablemodel/areamodel/async-area-model-object-array.ts +110 -0
  109. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +64 -0
  110. package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
  111. package/src/lib/table/data/tablemodel/areamodel/object-array-holder.if.ts +8 -0
  112. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +172 -0
  113. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
  114. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
  115. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
  116. package/src/lib/table/data/tablemodel/column/column-def.if.ts +141 -0
  117. package/src/lib/table/data/tablemodel/column/column-def.ts +108 -0
  118. package/src/lib/table/data/tablemodel/padding.ts +12 -0
  119. package/src/lib/table/data/tablemodel/table-model.if.ts +256 -0
  120. package/src/lib/table/data/tablemodel/table-model.ts +542 -0
  121. package/src/lib/table/ele-scope.ts +309 -0
  122. package/src/lib/table/event-adapter.ts +43 -0
  123. package/src/lib/table/event-listener.if.ts +32 -0
  124. package/src/lib/table/factory/table-factory.ts +379 -0
  125. package/src/lib/table/factory/tree-factory.ts +52 -0
  126. package/src/lib/table/focus/event-focus-changed-listener.if.ts +8 -0
  127. package/src/lib/table/focus/focus-model.if.ts +20 -0
  128. package/src/lib/table/focus/focus-model.ts +76 -0
  129. package/src/lib/table/focus/focus.type.ts +4 -0
  130. package/src/lib/table/input-handler.ts +48 -0
  131. package/src/lib/table/instanceof-workaround.ts +41 -0
  132. package/src/lib/table/license-manager.ts +47 -0
  133. package/src/lib/table/mouse-handler.ts +307 -0
  134. package/src/lib/table/render-scope.ts +1440 -0
  135. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +123 -0
  136. package/src/lib/table/renderer/cell-render.if.ts +16 -0
  137. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +63 -0
  138. package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
  139. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +39 -0
  140. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
  141. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
  142. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
  143. package/src/lib/table/renderer/edit/edit-cell-renderer.type.ts +3 -0
  144. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
  145. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +15 -0
  146. package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
  147. package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
  148. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
  149. package/src/lib/table/renderer/number-cell-progress-bar-cell-renderer.ts +57 -0
  150. package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
  151. package/src/lib/table/renderer/positive-and-negative-number-renderer.ts +45 -0
  152. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +60 -0
  153. package/src/lib/table/renderer/renderer-cleanup-fn.type.ts +1 -0
  154. package/src/lib/table/renderer/renderer.ts +11 -0
  155. package/src/lib/table/renderer/star-rating-cell-renderer.ts +45 -0
  156. package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
  157. package/src/lib/table/selection/event-selection-changed-listener.if.ts +8 -0
  158. package/src/lib/table/selection/multi-rows-selection-model.ts +118 -0
  159. package/src/lib/table/selection/selection-model.if.ts +56 -0
  160. package/src/lib/table/selection/selection-model.ts +182 -0
  161. package/src/lib/table/selection/selection-service.ts +129 -0
  162. package/src/lib/table/selection/selection.type.ts +6 -0
  163. package/src/lib/table/service/abstract-store-state.service.ts +105 -0
  164. package/src/lib/table/service/convenience-dom.service.ts +574 -0
  165. package/src/lib/table/service/copy-service.if.ts +45 -0
  166. package/src/lib/table/service/copy-service.ts +130 -0
  167. package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
  168. package/src/lib/table/service/data/html-style.type.ts +1 -0
  169. package/src/lib/table/service/dom-service.if.ts +18 -0
  170. package/src/lib/table/service/ge-filter.service.ts +123 -0
  171. package/src/lib/table/service/simple-dom-service.ts +55 -0
  172. package/src/lib/table/service/sorter.service.ts +30 -0
  173. package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
  174. package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
  175. package/src/lib/table/service/store-state-sorting.service.ts +41 -0
  176. package/src/lib/table/service/tree-row.service.ts +32 -0
  177. package/src/lib/table/table-api.ts +234 -0
  178. package/src/lib/table/table-scope.ts +770 -0
  179. package/tsconfig.json +21 -0
  180. package/tsconfig.lib.json +10 -0
  181. package/tsconfig.spec.json +25 -0
  182. package/vite.config.ts +56 -0
  183. package/index.cjs +0 -351
  184. package/lib/table/focus/focus-model.if.d.ts +0 -8
  185. package/lib/table/renderer/positive-and-negative-number-renderer.d.ts +0 -4
  186. /package/{lib → dist/lib}/table/action/action-id.type.d.ts +0 -0
  187. /package/{lib → dist/lib}/table/action/on-action-triggered.if.d.ts +0 -0
  188. /package/{lib → dist/lib}/table/action/osx-shortcut-actionId-mapping.d.ts +0 -0
  189. /package/{lib → dist/lib}/table/action/shortcut-actionid-mapping.type.d.ts +0 -0
  190. /package/{lib → dist/lib}/table/action/shortcut.service.d.ts +0 -0
  191. /package/{lib → dist/lib}/table/action/windows-shortcut-actionId-mapping.d.ts +0 -0
  192. /package/{lib → dist/lib}/table/checkbox/checkbox-model.d.ts +0 -0
  193. /package/{lib → dist/lib}/table/checkbox/checkbox-model.if.d.ts +0 -0
  194. /package/{lib → dist/lib}/table/checkbox/tree-checkbox-model.d.ts +0 -0
  195. /package/{lib → dist/lib}/table/color/color-rgb.d.ts +0 -0
  196. /package/{lib → dist/lib}/table/color/color-rgb.if.d.ts +0 -0
  197. /package/{lib → dist/lib}/table/color/ge-css-color-util.d.ts +0 -0
  198. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.d.ts +0 -0
  199. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.if.d.ts +0 -0
  200. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.d.ts +0 -0
  201. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.if.d.ts +0 -0
  202. /package/{lib → dist/lib}/table/css-vars.d.ts +0 -0
  203. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.d.ts +0 -0
  204. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.if.d.ts +0 -0
  205. /package/{lib → dist/lib}/table/data/chunk/request-chunk.d.ts +0 -0
  206. /package/{lib → dist/lib}/table/data/chunk/request-chunk.if.d.ts +0 -0
  207. /package/{lib → dist/lib}/table/data/common/aligns.d.ts +0 -0
  208. /package/{lib → dist/lib}/table/data/common/area-map-factory.d.ts +0 -0
  209. /package/{lib → dist/lib}/table/data/common/area-map.d.ts +0 -0
  210. /package/{lib → dist/lib}/table/data/common/area-map.type.d.ts +0 -0
  211. /package/{lib → dist/lib}/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +0 -0
  212. /package/{lib → dist/lib}/table/data/common/args-render-cell-div.d.ts +0 -0
  213. /package/{lib → dist/lib}/table/data/common/boolean-function.d.ts +0 -0
  214. /package/{lib → dist/lib}/table/data/common/cell-range.d.ts +0 -0
  215. /package/{lib → dist/lib}/table/data/common/checkbox-column-def.d.ts +0 -0
  216. /package/{lib → dist/lib}/table/data/common/checked-type.d.ts +0 -0
  217. /package/{lib → dist/lib}/table/data/common/event/ge-cell-indices.d.ts +0 -0
  218. /package/{lib → dist/lib}/table/data/common/event/ge-key-event.d.ts +0 -0
  219. /package/{lib → dist/lib}/table/data/common/event/ge-model-change-event.d.ts +0 -0
  220. /package/{lib → dist/lib}/table/data/common/event/ge-mouse-event.d.ts +0 -0
  221. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.d.ts +0 -0
  222. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.if.d.ts +0 -0
  223. /package/{lib → dist/lib}/table/data/common/filter-function.d.ts +0 -0
  224. /package/{lib → dist/lib}/table/data/common/get-t.d.ts +0 -0
  225. /package/{lib → dist/lib}/table/data/common/index-and-px.d.ts +0 -0
  226. /package/{lib → dist/lib}/table/data/common/size.d.ts +0 -0
  227. /package/{lib → dist/lib}/table/data/common/size.if.d.ts +0 -0
  228. /package/{lib → dist/lib}/table/data/common/sizes.d.ts +0 -0
  229. /package/{lib → dist/lib}/table/data/common/sort-item.d.ts +0 -0
  230. /package/{lib → dist/lib}/table/data/common/sort-state.type.d.ts +0 -0
  231. /package/{lib → dist/lib}/table/data/common/tree-arrow.type.d.ts +0 -0
  232. /package/{lib → dist/lib}/table/data/common/tree-row-if.d.ts +0 -0
  233. /package/{lib → dist/lib}/table/data/common/tree-row.d.ts +0 -0
  234. /package/{lib → dist/lib}/table/data/common/value-label.d.ts +0 -0
  235. /package/{lib → dist/lib}/table/data/common/value-label.if.d.ts +0 -0
  236. /package/{lib → dist/lib}/table/data/div-scope.type.d.ts +0 -0
  237. /package/{lib → dist/lib}/table/data/event/mouse-target-data.d.ts +0 -0
  238. /package/{lib → dist/lib}/table/data/geo-data.d.ts +0 -0
  239. /package/{lib → dist/lib}/table/data/options/auto-restore-options.d.ts +0 -0
  240. /package/{lib → dist/lib}/table/data/options/auto-restore-options.if.d.ts +0 -0
  241. /package/{lib → dist/lib}/table/data/options/default-row-heights.d.ts +0 -0
  242. /package/{lib → dist/lib}/table/data/options/default-row-heights.if.d.ts +0 -0
  243. /package/{lib → dist/lib}/table/data/options/header-group-options.d.ts +0 -0
  244. /package/{lib → dist/lib}/table/data/options/header-group-options.if.d.ts +0 -0
  245. /package/{lib → dist/lib}/table/data/options/icon.d.ts +0 -0
  246. /package/{lib → dist/lib}/table/data/options/icon.if.d.ts +0 -0
  247. /package/{lib → dist/lib}/table/data/options/sorted-options.d.ts +0 -0
  248. /package/{lib → dist/lib}/table/data/options/sorted-options.if.d.ts +0 -0
  249. /package/{lib → dist/lib}/table/data/options/table-options.d.ts +0 -0
  250. /package/{lib → dist/lib}/table/data/options/table-options.if.d.ts +0 -0
  251. /package/{lib → dist/lib}/table/data/options/tree-options.d.ts +0 -0
  252. /package/{lib → dist/lib}/table/data/options/tree-options.if.d.ts +0 -0
  253. /package/{lib → dist/lib}/table/data/side-ident.type.d.ts +0 -0
  254. /package/{lib → dist/lib}/table/data/table-model-and-options.d.ts +0 -0
  255. /package/{lib → dist/lib}/table/data/table-model-and-options.if.d.ts +0 -0
  256. /package/{lib → dist/lib}/table/data/tablemodel/area-ident.type.d.ts +0 -0
  257. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -0
  258. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +0 -0
  259. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +0 -0
  260. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -0
  261. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -0
  262. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -0
  263. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -0
  264. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.d.ts +0 -0
  265. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -0
  266. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +0 -0
  267. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -0
  268. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts +0 -0
  269. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/object-array-holder.if.d.ts +0 -0
  270. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +0 -0
  271. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.d.ts +0 -0
  272. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.if.d.ts +0 -0
  273. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +0 -0
  274. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.d.ts +0 -0
  275. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.if.d.ts +0 -0
  276. /package/{lib → dist/lib}/table/data/tablemodel/padding.d.ts +0 -0
  277. /package/{lib → dist/lib}/table/data/tablemodel/table-model.d.ts +0 -0
  278. /package/{lib → dist/lib}/table/data/tablemodel/table-model.if.d.ts +0 -0
  279. /package/{lib → dist/lib}/table/ele-scope.d.ts +0 -0
  280. /package/{lib → dist/lib}/table/event-adapter.d.ts +0 -0
  281. /package/{lib → dist/lib}/table/factory/table-factory.d.ts +0 -0
  282. /package/{lib → dist/lib}/table/factory/tree-factory.d.ts +0 -0
  283. /package/{lib → dist/lib}/table/focus/focus.type.d.ts +0 -0
  284. /package/{lib → dist/lib}/table/input-handler.d.ts +0 -0
  285. /package/{lib → dist/lib}/table/instanceof-workaround.d.ts +0 -0
  286. /package/{lib → dist/lib}/table/license-manager.d.ts +0 -0
  287. /package/{lib → dist/lib}/table/mouse-handler.d.ts +0 -0
  288. /package/{lib → dist/lib}/table/render-scope.d.ts +0 -0
  289. /package/{lib → dist/lib}/table/renderer/cell-group-ext-cell-renderer.d.ts +0 -0
  290. /package/{lib → dist/lib}/table/renderer/cell-render.if.d.ts +0 -0
  291. /package/{lib → dist/lib}/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +0 -0
  292. /package/{lib → dist/lib}/table/renderer/checkbox-cell-renderer.d.ts +0 -0
  293. /package/{lib → dist/lib}/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -0
  294. /package/{lib → dist/lib}/table/renderer/date-to-iso-cell-renderer.d.ts +0 -0
  295. /package/{lib → dist/lib}/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -0
  296. /package/{lib → dist/lib}/table/renderer/date-to-tec-cell-renderer.d.ts +0 -0
  297. /package/{lib → dist/lib}/table/renderer/edit/edit-cell-renderer.type.d.ts +0 -0
  298. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe-for-number.d.ts +0 -0
  299. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe.if.d.ts +0 -0
  300. /package/{lib → dist/lib}/table/renderer/edit/input-cell-renderer.d.ts +0 -0
  301. /package/{lib → dist/lib}/table/renderer/edit/select-cell-renderer.d.ts +0 -0
  302. /package/{lib → dist/lib}/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -0
  303. /package/{lib → dist/lib}/table/renderer/number-cell-progress-bar-cell-renderer.d.ts +0 -0
  304. /package/{lib → dist/lib}/table/renderer/number-cell-renderer.d.ts +0 -0
  305. /package/{lib → dist/lib}/table/renderer/progress-bar-cell-renderer.d.ts +0 -0
  306. /package/{lib → dist/lib}/table/renderer/renderer-cleanup-fn.type.d.ts +0 -0
  307. /package/{lib → dist/lib}/table/renderer/renderer.d.ts +0 -0
  308. /package/{lib → dist/lib}/table/renderer/star-rating-cell-renderer.d.ts +0 -0
  309. /package/{lib → dist/lib}/table/renderer/true-false-cell-renderer.d.ts +0 -0
  310. /package/{lib → dist/lib}/table/selection/selection-service.d.ts +0 -0
  311. /package/{lib → dist/lib}/table/selection/selection.type.d.ts +0 -0
  312. /package/{lib → dist/lib}/table/service/abstract-store-state.service.d.ts +0 -0
  313. /package/{lib → dist/lib}/table/service/convenience-dom.service.d.ts +0 -0
  314. /package/{lib → dist/lib}/table/service/copy-service.d.ts +0 -0
  315. /package/{lib → dist/lib}/table/service/copy-service.if.d.ts +0 -0
  316. /package/{lib → dist/lib}/table/service/data/collapsed-expanded.data.d.ts +0 -0
  317. /package/{lib → dist/lib}/table/service/data/html-style.type.d.ts +0 -0
  318. /package/{lib → dist/lib}/table/service/dom-service.if.d.ts +0 -0
  319. /package/{lib → dist/lib}/table/service/ge-filter.service.d.ts +0 -0
  320. /package/{lib → dist/lib}/table/service/simple-dom-service.d.ts +0 -0
  321. /package/{lib → dist/lib}/table/service/sorter.service.d.ts +0 -0
  322. /package/{lib → dist/lib}/table/service/store-state-collapsed-expand.service.d.ts +0 -0
  323. /package/{lib → dist/lib}/table/service/store-state-scroll-pos.service.d.ts +0 -0
  324. /package/{lib → dist/lib}/table/service/store-state-sorting.service.d.ts +0 -0
  325. /package/{lib → dist/lib}/table/service/tree-row.service.d.ts +0 -0
  326. /package/{lib → dist/lib}/table/table-api.d.ts +0 -0
@@ -0,0 +1,379 @@
1
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
2
+ import { DefaultRowHeightsIf } from "../data/options/default-row-heights.if";
3
+ import { ColumnDefIf } from "../data/tablemodel/column/column-def.if";
4
+ import { GetT } from "../data/common/get-t";
5
+ import { TableOptionsIf } from "../data/options/table-options.if";
6
+ import { TableModelIf } from "../data/tablemodel/table-model.if";
7
+ import { DefaultRowHeights } from "../data/options/default-row-heights";
8
+ import { ColumnDef } from "../data/tablemodel/column/column-def";
9
+ import { px200 } from "../data/common/sizes";
10
+ import { AreaModelArrayOfArrays } from "../data/tablemodel/areamodel/area-model-array-of-arrays";
11
+ import { AreaModelHidden } from "../data/tablemodel/areamodel/area-model-hidden";
12
+ import { TreeRow } from "../data/common/tree-row";
13
+ import { AreaModelTree } from "../data/tablemodel/areamodel/area-model-tree";
14
+ import { TreeCheckboxModel } from "../checkbox/tree-checkbox-model";
15
+ import { TableModel } from "../data/tablemodel/table-model";
16
+ import { SelectionModelIf } from "../selection/selection-model.if";
17
+ import {
18
+ AreaModelObjectArrayWithColumndefs
19
+ } from "../data/tablemodel/areamodel/area-model-object-array-with-columndefs";
20
+ import { TableOptions } from "../data/options/table-options";
21
+ import {isTreeRow} from "../instanceof-workaround";
22
+
23
+
24
+ export class TableFactory {
25
+
26
+ public static createTableModel(p: Partial<{
27
+ headerAreaModel: AreaModelIf,
28
+ bodyAreaModel: AreaModelIf,
29
+ footerAreaModel: AreaModelIf,
30
+ fixedLeftColumnCount: number,
31
+ fixedRightColumnCount: number,
32
+ rowCheckboxVisible: boolean,
33
+ defaultRowHeights: DefaultRowHeightsIf,
34
+ columnDefs: ColumnDefIf[],
35
+ columnSizes: number[],
36
+ overridingColumnWidth: number,
37
+ columnCount: number,
38
+ parentSize: number,
39
+ getSelectionModel: GetT<SelectionModelIf>,
40
+ rows: any[],
41
+ properties: string[],
42
+ bodyData: any[][],
43
+ headerData: string[][], // multi-line header
44
+ footerData: string[][], // multi-line footerData
45
+ tableOptions: TableOptionsIf
46
+
47
+ }>): TableModelIf {
48
+
49
+ if (p.defaultRowHeights === undefined) {
50
+ if (p.tableOptions?.defaultRowHeights) {
51
+ p.defaultRowHeights = p.tableOptions.defaultRowHeights;
52
+ } else {
53
+ p.defaultRowHeights = new DefaultRowHeights();
54
+
55
+ if (p.headerAreaModel && "defaultRowHeight" in p.headerAreaModel) {
56
+ const dh = p.headerAreaModel.defaultRowHeight as number;
57
+ if (dh > -1) {
58
+ p.defaultRowHeights.header = dh;
59
+ }
60
+ }
61
+
62
+ if (p.bodyAreaModel && "defaultRowHeight" in p.bodyAreaModel) {
63
+ const dh = p.bodyAreaModel.defaultRowHeight as number;
64
+ if (dh > -1) {
65
+ p.defaultRowHeights.body = dh;
66
+ }
67
+ }
68
+
69
+ if (p.footerAreaModel && "defaultRowHeight" in p.footerAreaModel) {
70
+ const dh = p.footerAreaModel.defaultRowHeight as number;
71
+ if (dh > -1) {
72
+ p.defaultRowHeights.footer = dh;
73
+ }
74
+ }
75
+ }
76
+ }
77
+
78
+ if (p.columnDefs === undefined) {
79
+ if (p.properties?.length) {
80
+ p.columnDefs = p.properties.map(p => new ColumnDef(p, p.toUpperCase(), px200));
81
+ } else if (p.rows?.length) {
82
+ p.columnDefs = Object.keys(p.rows[0]).map(p => new ColumnDef(p, p.toUpperCase(), px200));
83
+ } else {
84
+ p.columnDefs = [];
85
+ }
86
+ }
87
+
88
+ if (p.columnCount === undefined) {
89
+ if (p.columnDefs?.length) {
90
+ p.columnCount = p.columnDefs.length;
91
+ } else if (p.headerData?.length) {
92
+ p.columnCount = p.headerData[0].length;
93
+ } else if (p.columnSizes?.length) {
94
+ p.columnCount = p.columnSizes?.length;
95
+ } else {
96
+ console.warn("Property \"columnCount\" is missing and cannot be derived from other properties.");
97
+ }
98
+ }
99
+
100
+
101
+ if (!p.headerAreaModel) {
102
+ if (p.headerData?.length) {
103
+ p.headerAreaModel = new AreaModelArrayOfArrays<string>(
104
+ "header",
105
+ p.headerData,
106
+ p.defaultRowHeights.header,
107
+ p.columnDefs
108
+ );
109
+ } else if (p.columnDefs?.length) {
110
+ p.headerAreaModel = new AreaModelArrayOfArrays<string>(
111
+ "header",
112
+ [p.columnDefs.map(def => def.headerLabel)],
113
+ p.defaultRowHeights.header,
114
+ p.columnDefs
115
+ );
116
+ } else {
117
+ p.headerAreaModel = new AreaModelHidden("header");
118
+ }
119
+ }
120
+ if (!p.footerAreaModel) {
121
+ if (p.footerData?.length) {
122
+ p.footerAreaModel = new AreaModelArrayOfArrays<string>(
123
+ "footer",
124
+ p.footerData,
125
+ p.defaultRowHeights.footer,
126
+ p.columnDefs
127
+ );
128
+ } else {
129
+ p.footerAreaModel = new AreaModelHidden("footer");
130
+ }
131
+ }
132
+ if (!p.bodyAreaModel) {
133
+ if (p.rows) {
134
+
135
+ if (p.rows?.length && isTreeRow(p.rows[0])) {
136
+ // Tree:
137
+ const treeRows = p.rows as TreeRow<any>[];
138
+ p.bodyAreaModel = new AreaModelTree(
139
+ "body",
140
+ treeRows,
141
+ p.defaultRowHeights.body,
142
+ p.columnDefs
143
+ );
144
+ const checkboxExtraColumnVisible = p.columnDefs[0].property === "CheckboxColumn";
145
+ if (checkboxExtraColumnVisible || p.tableOptions?.showCheckboxWihoutExtraColumn) {
146
+ p.bodyAreaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
147
+ }
148
+ } else {
149
+ p.bodyAreaModel = new AreaModelObjectArrayWithColumndefs<any>(
150
+ "body", p.rows, p.columnDefs, p.defaultRowHeights.body
151
+ );
152
+ }
153
+
154
+ } else if (p.bodyData) {
155
+ p.bodyAreaModel = new AreaModelArrayOfArrays<any>(
156
+ "body", p.bodyData, p.defaultRowHeights.body
157
+ );
158
+ } else {
159
+ p.bodyAreaModel = new AreaModelHidden("body");
160
+ }
161
+ }
162
+
163
+ if (p.fixedLeftColumnCount === undefined) {
164
+ p.fixedLeftColumnCount = 0;
165
+ }
166
+ if (p.fixedRightColumnCount === undefined) {
167
+ p.fixedRightColumnCount = 0;
168
+ }
169
+ if (p.rowCheckboxVisible === undefined) {
170
+ p.rowCheckboxVisible = false;
171
+ }
172
+ if (p.overridingColumnWidth === undefined) {
173
+ p.overridingColumnWidth = -1;
174
+ }
175
+
176
+ if (!p.getSelectionModel && p.tableOptions?.getSelectionModel) {
177
+ p.getSelectionModel = p.tableOptions?.getSelectionModel;
178
+ }
179
+
180
+ // Flat table:
181
+ return new TableModel(
182
+ p.headerAreaModel,
183
+ p.bodyAreaModel,
184
+ p.footerAreaModel,
185
+ p.fixedLeftColumnCount,
186
+ p.fixedRightColumnCount,
187
+ p.rowCheckboxVisible,
188
+ p.defaultRowHeights,
189
+ p.columnDefs,
190
+ p.columnSizes,
191
+ p.overridingColumnWidth,
192
+ p.columnCount,
193
+ p.parentSize,
194
+ p.getSelectionModel
195
+ );
196
+ }
197
+
198
+ static buildByTypedRowsParam<T>(param: {
199
+ rows: T[],
200
+ columnDefs: ColumnDefIf[],
201
+ tableOptions?: TableOptionsIf,
202
+ fixedLeftColumnCount?: number,
203
+ fixedRightColumnCount?: number
204
+ }): TableModelIf {
205
+
206
+ return TableFactory.buildByTypedRows<T>(
207
+ param.rows ?? [],
208
+ param.columnDefs,
209
+ param.tableOptions ?? new TableOptions(),
210
+ param.fixedLeftColumnCount ?? 0,
211
+ param.fixedRightColumnCount ?? 0
212
+ );
213
+ }
214
+
215
+ static buildByTypedRows<T>(
216
+ rows: T[],
217
+ columnDefs: ColumnDefIf[],
218
+ tableOptions: TableOptionsIf = new TableOptions(),
219
+ fixedLeftColumnCount: number = 0,
220
+ fixedRightColumnCount: number = 0
221
+ ): TableModelIf {
222
+
223
+ const defaultRowHeights = tableOptions.defaultRowHeights;
224
+ const checkboxExtraColumnVisible = columnDefs[0].property === "CheckboxColumn";
225
+
226
+ if (rows?.length && isTreeRow(rows[0])) {
227
+ // Tree:
228
+ const treeRows = rows as TreeRow<T>[];
229
+ const bodyareaModel = new AreaModelTree(
230
+ "body",
231
+ treeRows,
232
+ defaultRowHeights.body,
233
+ columnDefs
234
+ );
235
+ if (checkboxExtraColumnVisible || tableOptions.showCheckboxWihoutExtraColumn) {
236
+ bodyareaModel.rowSelectionModel = new TreeCheckboxModel(treeRows);
237
+ }
238
+ return TableFactory.createByAreaModelsParam({
239
+ headerAreaModel: new AreaModelArrayOfArrays<string>("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header),
240
+ bodyAreaModel: bodyareaModel,
241
+ footerAreaModel: new AreaModelArrayOfArrays<string>("footer", [], defaultRowHeights.footer),
242
+ columnDefs,
243
+ fixedLeftColumnCount,
244
+ fixedRightColumnCount,
245
+ defaultRowHeights: tableOptions.defaultRowHeights,
246
+ rowCheckboxVisible: false,
247
+ columnSizes: [],
248
+ columnCount: columnDefs.length,
249
+ overridingColumnWidth: -1
250
+ });
251
+ }
252
+
253
+ // Flat table:
254
+ return TableFactory.createByObjectArrayParam({
255
+ rows,
256
+ columnDefs,
257
+ fixedLeftColumnCount,
258
+ fixedRightColumnCount,
259
+ defaultRowHeights: tableOptions.defaultRowHeights
260
+ });
261
+
262
+ }
263
+
264
+ public static createByObjectArrayParam<T>(param: {
265
+ rows: T[],
266
+ header?: string[][],
267
+ footer?: string[][],
268
+ fixedLeftColumnCount?: number,
269
+ fixedRightColumnCount?: number,
270
+ rowCheckboxVisible?: boolean,
271
+ defaultRowHeights?: DefaultRowHeightsIf,
272
+ columnDefs?: ColumnDefIf[],
273
+ columnSizes?: number[]
274
+ }) {
275
+ const rowCheckboxVisible = param.rowCheckboxVisible !== undefined ? param.rowCheckboxVisible : false;
276
+ return TableFactory.createByObjectArray<T>(
277
+ param.rows,
278
+ param.header ?? [],
279
+ param.footer ?? [],
280
+ param.fixedLeftColumnCount ?? 0,
281
+ param.fixedRightColumnCount ?? 0,
282
+ rowCheckboxVisible,
283
+ param.defaultRowHeights ?? new DefaultRowHeights(),
284
+ param.columnDefs ?? [],
285
+ param.columnSizes ?? []
286
+ );
287
+ }
288
+
289
+ public static createByAreaModels(
290
+ headerAreaModel: AreaModelIf = new AreaModelHidden(),
291
+ bodyAreaModel: AreaModelIf,
292
+ footerAreaModel: AreaModelIf = new AreaModelHidden(),
293
+ fixedLeftColumnCount: number = 0,
294
+ fixedRightColumnCount: number = 0,
295
+ rowCheckboxVisible: boolean = false,
296
+ defaultRowHeights: DefaultRowHeightsIf = new DefaultRowHeights(),
297
+ columnDefs: ColumnDefIf[],
298
+ columnSizes: number[] = [],
299
+ overridingColumnWidth: number = -1,
300
+ columnCount: number
301
+ ) {
302
+ return new TableModel(
303
+ headerAreaModel,
304
+ bodyAreaModel,
305
+ footerAreaModel,
306
+ fixedLeftColumnCount,
307
+ fixedRightColumnCount,
308
+ rowCheckboxVisible,
309
+ defaultRowHeights,
310
+ columnDefs,
311
+ columnSizes,
312
+ overridingColumnWidth,
313
+ columnCount
314
+ );
315
+ }
316
+
317
+ public static createByAreaModelsParam(param: {
318
+ headerAreaModel?: AreaModelIf,
319
+ bodyAreaModel: AreaModelIf,
320
+ footerAreaModel?: AreaModelIf,
321
+ fixedLeftColumnCount?: number,
322
+ fixedRightColumnCount?: number,
323
+ rowCheckboxVisible?: boolean,
324
+ defaultRowHeights?: DefaultRowHeightsIf,
325
+ columnDefs?: ColumnDefIf[],
326
+ columnSizes?: number[],
327
+ overridingColumnWidth?: number,
328
+ columnCount?: number
329
+ }) {
330
+ return TableFactory.createByAreaModels(
331
+ param.headerAreaModel ?? new AreaModelHidden(),
332
+ param.bodyAreaModel,
333
+ param.footerAreaModel ?? new AreaModelHidden(),
334
+ param.fixedLeftColumnCount ?? 0,
335
+ param.fixedRightColumnCount ?? 0,
336
+ param.rowCheckboxVisible === undefined ? false : param.rowCheckboxVisible,
337
+ param.defaultRowHeights,
338
+ param.columnDefs ?? [],
339
+ param.columnSizes ?? [],
340
+ param.overridingColumnWidth ?? -1,
341
+ param.columnCount ?? 0
342
+ );
343
+ }
344
+
345
+ public static createByObjectArray<T>(
346
+ rows: T[],
347
+ header: string[][] = [],
348
+ footer: string[][] = [],
349
+ fixedLeftColumnCount: number = 0,
350
+ fixedRightColumnCount: number = 0,
351
+ rowCheckboxVisible: boolean = false,
352
+ defaultRowHeights: DefaultRowHeightsIf = new DefaultRowHeights(),
353
+ columnDefs: ColumnDefIf[],
354
+ columnSizes: number[] = []
355
+ ) {
356
+ let headerAreaModel: AreaModelIf;
357
+ if (header?.length) {
358
+ headerAreaModel = new AreaModelArrayOfArrays<string>("header", header, defaultRowHeights.header, columnDefs);
359
+ } else if (columnDefs?.length) {
360
+ headerAreaModel = new AreaModelArrayOfArrays<string>("header", [columnDefs.map(def => def.headerLabel)], defaultRowHeights.header, columnDefs);
361
+ } else {
362
+ headerAreaModel = new AreaModelHidden();
363
+ }
364
+ const footerAreaModel = footer ? new AreaModelArrayOfArrays<string>("footer", footer, defaultRowHeights.footer, columnDefs) : new AreaModelHidden();
365
+ const bodyAreaModel = new AreaModelObjectArrayWithColumndefs<T>("body", rows, columnDefs, defaultRowHeights.body);
366
+
367
+ return new TableModel(
368
+ headerAreaModel,
369
+ bodyAreaModel,
370
+ footerAreaModel,
371
+ fixedLeftColumnCount,
372
+ fixedRightColumnCount,
373
+ rowCheckboxVisible,
374
+ defaultRowHeights,
375
+ columnDefs,
376
+ columnSizes
377
+ );
378
+ }
379
+ }
@@ -0,0 +1,52 @@
1
+ import { TreeRow } from "../data/common/tree-row";
2
+ import {TreeRowIf} from "../data/common/tree-row-if";
3
+
4
+ export class TreeFactory {
5
+
6
+
7
+ static buildTreeRows<T>(
8
+ data: T[],
9
+ childrenProperty: string = "children",
10
+ deepMaxLimit: number = 12): TreeRowIf<T>[] {
11
+
12
+ const ret: TreeRowIf<T>[] = [];
13
+ for (const r of data) {
14
+ ret.push(TreeFactory.buildTreeRow<T>(r, childrenProperty, undefined, 0, deepMaxLimit));
15
+ }
16
+ return ret;
17
+ }
18
+
19
+
20
+ static buildTreeRow<T>(
21
+ data: T,
22
+ childrenProperty: string = "children",
23
+ parent: TreeRowIf<T> = new TreeRow<T>(data, true, [], undefined, 0), //, false , '0', '0'),
24
+ deep: number = 0,
25
+ deepMaxLimit: number = 12): TreeRowIf<T> {
26
+
27
+ if (deep > deepMaxLimit) {
28
+ console.warn("Max deep limit reached: ", deep);
29
+ return parent;
30
+ }
31
+ // @ts-ignore
32
+ const children: T[] | undefined = data[childrenProperty];
33
+ if (children) {
34
+ for (const r of children) {
35
+ const tr = new TreeRow<T>(r, true, [], parent, deep + 1);
36
+ parent.children?.push(tr);
37
+ TreeFactory.buildTreeRow(
38
+ r,
39
+ childrenProperty,
40
+ tr,
41
+ deep + 1
42
+ );
43
+ if (deep > deepMaxLimit) {
44
+ console.warn("Max deep limit reached: ", deep);
45
+ return parent;
46
+ }
47
+ }
48
+ }
49
+ return parent;
50
+ }
51
+ }
52
+
@@ -0,0 +1,8 @@
1
+ import { FocusModelIf } from './focus-model.if';
2
+
3
+
4
+ export interface EventFocusChangedListenerIf {
5
+
6
+ onFocusChanged(model: FocusModelIf): void;
7
+
8
+ }
@@ -0,0 +1,20 @@
1
+ import { EventFocusChangedListenerIf } from './event-focus-changed-listener.if';
2
+
3
+ export interface FocusModelIf {
4
+
5
+ getEventFocusChangedListeners(): EventFocusChangedListenerIf[];
6
+ addEventFocusChangedListener(listener: EventFocusChangedListenerIf): void;
7
+ removeEventFocusChangedListener(listener: EventFocusChangedListenerIf): void;
8
+
9
+ clear(): void;
10
+
11
+ setFocus(rowIndex: number, columnIndex: number): void;
12
+
13
+ hasFocus(rowIndex: number, columnIndex: number): boolean;
14
+
15
+ getFocus(): [number, number];
16
+
17
+ hasChanged(): boolean;
18
+
19
+ clearChanged(): void;
20
+ }
@@ -0,0 +1,76 @@
1
+ import { FocusType } from "./focus.type";
2
+ import { FocusModelIf } from "./focus-model.if";
3
+ import { EventFocusChangedListenerIf } from './event-focus-changed-listener.if';
4
+ import { AvoidDoubleExecution } from '../../common/decorator/avoid-double-execution.decorator';
5
+
6
+ export class FocusModel implements FocusModelIf {
7
+
8
+ protected rowIndex: number = -1;
9
+ protected columnIndex: number = -1;
10
+ protected changed = false;
11
+
12
+ private listenerArr: EventFocusChangedListenerIf[] = [];
13
+
14
+ constructor(
15
+ public selectionType: FocusType = "none"
16
+ ) {
17
+ }
18
+
19
+ getEventFocusChangedListeners(): EventFocusChangedListenerIf[]{
20
+ return this.listenerArr;
21
+ }
22
+
23
+ addEventFocusChangedListener(listener: EventFocusChangedListenerIf): void {
24
+ if (!this.listenerArr.includes(listener)) {
25
+ this.listenerArr.push(listener);
26
+ }
27
+ }
28
+
29
+ removeEventFocusChangedListener(listener: EventFocusChangedListenerIf): void {
30
+ const index = this.listenerArr.indexOf(listener, 0);
31
+ if (index > -1) {
32
+ this.listenerArr.splice(index, 1);
33
+ }
34
+ }
35
+
36
+ //@AvoidDoubleExecution(100)
37
+ fireChangeEvent() {
38
+ this.listenerArr.forEach(l => l.onFocusChanged(this));
39
+ }
40
+
41
+ clearChanged(): void {
42
+ this.changed = false;
43
+ }
44
+
45
+ hasChanged(): boolean {
46
+ return this.changed;
47
+ }
48
+
49
+ clear(): void {
50
+ this.rowIndex = -1;
51
+ this.columnIndex = -1;
52
+ this.fireChangeEvent();
53
+ }
54
+
55
+
56
+ setFocus(
57
+ rowIndex: number,
58
+ columnIndex: number
59
+ ): void {
60
+ if (this.rowIndex !== rowIndex || this.columnIndex !== columnIndex) {
61
+ this.rowIndex = rowIndex;
62
+ this.columnIndex = columnIndex;
63
+ this.changed = true;
64
+ this.fireChangeEvent();
65
+ }
66
+ }
67
+
68
+ hasFocus(rowIndex: number, columnIndex: number): boolean {
69
+ return this.rowIndex === rowIndex && this.columnIndex === columnIndex;
70
+ }
71
+
72
+ getFocus(): [number, number] {
73
+ return [this.rowIndex, this.columnIndex];
74
+ }
75
+
76
+ }
@@ -0,0 +1,4 @@
1
+ export type FocusType = "none" | "cell" | "row";
2
+
3
+
4
+
@@ -0,0 +1,48 @@
1
+ import { TableScope } from "./table-scope";
2
+ import { AreaIdent, getAreaIdentByString } from "./data/tablemodel/area-ident.type";
3
+
4
+ /**
5
+ * Class representing an input handler for table input fields (HTMLSelectElement, HTMLTextAreaElement, HTMLInputElement).
6
+ *
7
+ * @class
8
+ * @memberOf module:input
9
+ */
10
+ export class InputHandler {
11
+
12
+
13
+ constructor(
14
+ protected tableScope: TableScope
15
+ ) {
16
+ this.tableScope.hostElement.addEventListener("change", this.onHostElementChanged.bind(this));
17
+ }
18
+
19
+
20
+ /**
21
+ * Handles the onHostElementChanged event.
22
+ * In case that the element is an input field, the tableScope.updateModelValueAfterEdit() method is triggered.
23
+ *
24
+ * @param {Event} event - The event object.
25
+ *
26
+ * @return {void}
27
+ */
28
+ private onHostElementChanged(event: Event) {
29
+ if (event.target instanceof HTMLInputElement
30
+ || event.target instanceof HTMLSelectElement
31
+ || event.target instanceof HTMLTextAreaElement
32
+ ) {
33
+ const htmpInputEle = event.target;
34
+ const areaIdentStr = htmpInputEle.getAttribute("data-area");
35
+ const rowIndexStr = htmpInputEle.getAttribute("data-row-index");
36
+ const columnIndexStr = htmpInputEle.getAttribute("data-col-index");
37
+
38
+ if (areaIdentStr && rowIndexStr && columnIndexStr) {
39
+ const area: AreaIdent = getAreaIdentByString(areaIdentStr);
40
+ const rowIndex = Number(rowIndexStr);
41
+ const columnIndex = Number(columnIndexStr);
42
+ this.tableScope.updateModelValueAfterEdit(area, rowIndex, columnIndex, htmpInputEle.value);
43
+ }
44
+ }
45
+ }
46
+
47
+
48
+ }
@@ -0,0 +1,41 @@
1
+
2
+
3
+ /*
4
+ * necessary because of es5 (Svelte, Astro,...)
5
+ */
6
+
7
+ /**
8
+ * Checks if the given row is a tree row.
9
+ *
10
+ * @param {any} row - The row to be checked.
11
+ *
12
+ * @return {boolean} - true if the row is a tree row, false otherwise.
13
+ */
14
+ export function isTreeRow(row: any): boolean {
15
+ return row && row['type'] === 'TreeRow';
16
+ }
17
+
18
+
19
+
20
+ /**
21
+ * Determines if the given model is an AreaModelTree.
22
+ *
23
+ * @param {any} model - The model object to check.
24
+ * @return {boolean} - True if the model is an AreaModelTree, false otherwise.
25
+ */
26
+ export function isAreaModelTree(model: any): boolean {
27
+ return model && model['type'] === 'AreaModelTree';
28
+ }
29
+
30
+
31
+ /**
32
+ * Checks if the given object is a CheckboxColumnDef.
33
+ *
34
+ * @param {any} o - The object to be checked.
35
+ * @returns {boolean} - True if the object is a CheckboxColumnDef, false otherwise.
36
+ */
37
+ export function isCheckboxColumnDef(o: any): boolean {
38
+ return o && o['type'] === 'CheckboxColumnDef';
39
+ }
40
+
41
+
@@ -0,0 +1,47 @@
1
+ /**
2
+ * LicenseManager class responsible for managing license keys.
3
+ * As it's a singleton class, it only allows one instance of itself to exist.
4
+ *
5
+ * Usage: LicenseManager.getInstance().setLicenseKey('Your API key');
6
+ */
7
+ export class LicenseManager {
8
+
9
+ private static instance: LicenseManager;
10
+ private alreadySet = false;
11
+
12
+ // The constructor is private to prevent direct construction calls
13
+ // with the `new` operator
14
+ private constructor() {
15
+ }
16
+
17
+
18
+ public static getInstance(): LicenseManager {
19
+ if (!LicenseManager.instance) {
20
+ LicenseManager.instance = new LicenseManager();
21
+ }
22
+
23
+ return LicenseManager.instance;
24
+ }
25
+
26
+ /**
27
+ * Method to set the license key for the application.
28
+ * A 'meta' element is created with content as 'guiexperttable=<license key>'
29
+ * and appended into the head section of the document
30
+ *
31
+ * @param {string} key - The license key to set for the application.
32
+ *
33
+ * @return {void} - This method does not return anything
34
+ */
35
+ public setLicenseKey(key: string | undefined) {
36
+ if (key && !this.alreadySet) {
37
+
38
+ const meta = document.createElement('meta');
39
+ meta.content = 'license=' + key;
40
+ meta.name = 'guiexperttable';
41
+ document.getElementsByTagName('head')[0].appendChild(meta);
42
+
43
+ this.alreadySet = true;
44
+ }
45
+ }
46
+
47
+ }