@guiexpert/table 1.1.17 → 1.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/.eslintrc.json +16 -0
  2. package/dist/README.md +101 -0
  3. package/dist/css/main.css +350 -0
  4. package/dist/css/table-classes.css +42 -0
  5. package/dist/css/table-color-classes.css +98 -0
  6. package/dist/css/table-color-vars.css +158 -0
  7. package/dist/css/table-tree.css +53 -0
  8. package/dist/index.cjs +351 -0
  9. package/{index.d.ts → dist/index.d.ts} +3 -0
  10. package/{index.js → dist/index.js} +902 -831
  11. package/dist/lib/common/decorator/avoid-double-execution.decorator.d.ts +7 -0
  12. package/{lib → dist/lib}/table/event-listener.if.d.ts +3 -1
  13. package/dist/lib/table/focus/event-focus-changed-listener.if.d.ts +4 -0
  14. package/{lib → dist/lib}/table/focus/focus-model.d.ts +6 -0
  15. package/dist/lib/table/focus/focus-model.if.d.ts +12 -0
  16. package/dist/lib/table/renderer/positive-and-negative-number-renderer.d.ts +8 -0
  17. package/dist/lib/table/selection/event-selection-changed-listener.if.d.ts +4 -0
  18. package/{lib → dist/lib}/table/selection/multi-rows-selection-model.d.ts +9 -0
  19. package/{lib → dist/lib}/table/selection/selection-model.d.ts +7 -0
  20. package/{lib → dist/lib}/table/selection/selection-model.if.d.ts +4 -0
  21. package/{lib → dist/lib}/table/table-scope.d.ts +6 -2
  22. package/dist/package.json +51 -0
  23. package/doc.css +1565 -0
  24. package/package.json +27 -8
  25. package/patch.js +16 -0
  26. package/src/index.ts +176 -0
  27. package/src/lib/common/decorator/avoid-double-execution.decorator.ts +21 -0
  28. package/src/lib/table/action/action-id.type.ts +36 -0
  29. package/src/lib/table/action/on-action-triggered.if.ts +14 -0
  30. package/src/lib/table/action/osx-shortcut-actionId-mapping.ts +39 -0
  31. package/src/lib/table/action/shortcut-actionid-mapping.type.ts +7 -0
  32. package/src/lib/table/action/shortcut.service.ts +162 -0
  33. package/src/lib/table/action/windows-shortcut-actionId-mapping.ts +35 -0
  34. package/src/lib/table/checkbox/checkbox-model.if.ts +16 -0
  35. package/src/lib/table/checkbox/checkbox-model.ts +62 -0
  36. package/src/lib/table/checkbox/tree-checkbox-model.ts +123 -0
  37. package/src/lib/table/color/color-rgb.if.ts +12 -0
  38. package/src/lib/table/color/color-rgb.ts +10 -0
  39. package/src/lib/table/color/ge-css-color-util.ts +43 -0
  40. package/src/lib/table/color/three-color-gradient-arg.if.ts +15 -0
  41. package/src/lib/table/color/three-color-gradient-arg.ts +14 -0
  42. package/src/lib/table/color/two-color-gradient-arg.if.ts +12 -0
  43. package/src/lib/table/color/two-color-gradient-arg.ts +12 -0
  44. package/src/lib/table/css-vars.ts +243 -0
  45. package/src/lib/table/data/chunk/chunk.data-event.if.ts +8 -0
  46. package/src/lib/table/data/chunk/chunk.data-event.ts +27 -0
  47. package/src/lib/table/data/chunk/request-chunk.if.ts +9 -0
  48. package/src/lib/table/data/chunk/request-chunk.ts +15 -0
  49. package/src/lib/table/data/common/aligns.ts +42 -0
  50. package/src/lib/table/data/common/area-map-factory.ts +20 -0
  51. package/src/lib/table/data/common/area-map.ts +18 -0
  52. package/src/lib/table/data/common/area-map.type.ts +5 -0
  53. package/src/lib/table/data/common/args-adjust-columns-to-row-parent-params.ts +21 -0
  54. package/src/lib/table/data/common/args-render-cell-div.ts +34 -0
  55. package/src/lib/table/data/common/boolean-function.ts +16 -0
  56. package/src/lib/table/data/common/cell-range.ts +66 -0
  57. package/src/lib/table/data/common/checkbox-column-def.ts +31 -0
  58. package/src/lib/table/data/common/checked-type.ts +6 -0
  59. package/src/lib/table/data/common/event/ge-cell-indices.ts +12 -0
  60. package/src/lib/table/data/common/event/ge-key-event.ts +15 -0
  61. package/src/lib/table/data/common/event/ge-model-change-event.ts +16 -0
  62. package/src/lib/table/data/common/event/ge-mouse-event.ts +41 -0
  63. package/src/lib/table/data/common/event/input/table-cell-update-event.if.ts +58 -0
  64. package/src/lib/table/data/common/event/input/table-cell-update-event.ts +27 -0
  65. package/src/lib/table/data/common/filter-function.ts +9 -0
  66. package/src/lib/table/data/common/get-t.ts +7 -0
  67. package/src/lib/table/data/common/index-and-px.ts +12 -0
  68. package/src/lib/table/data/common/size.if.ts +8 -0
  69. package/src/lib/table/data/common/size.ts +9 -0
  70. package/src/lib/table/data/common/sizes.ts +35 -0
  71. package/src/lib/table/data/common/sort-item.ts +14 -0
  72. package/src/lib/table/data/common/sort-state.type.ts +7 -0
  73. package/src/lib/table/data/common/tree-arrow.type.ts +8 -0
  74. package/src/lib/table/data/common/tree-row-if.ts +15 -0
  75. package/src/lib/table/data/common/tree-row.ts +22 -0
  76. package/src/lib/table/data/common/value-label.if.ts +6 -0
  77. package/src/lib/table/data/common/value-label.ts +13 -0
  78. package/src/lib/table/data/div-scope.type.ts +14 -0
  79. package/src/lib/table/data/event/mouse-target-data.ts +48 -0
  80. package/src/lib/table/data/geo-data.ts +16 -0
  81. package/src/lib/table/data/options/auto-restore-options.if.ts +21 -0
  82. package/src/lib/table/data/options/auto-restore-options.ts +50 -0
  83. package/src/lib/table/data/options/default-row-heights.if.ts +5 -0
  84. package/src/lib/table/data/options/default-row-heights.ts +10 -0
  85. package/src/lib/table/data/options/header-group-options.if.ts +9 -0
  86. package/src/lib/table/data/options/header-group-options.ts +23 -0
  87. package/src/lib/table/data/options/icon.if.ts +20 -0
  88. package/src/lib/table/data/options/icon.ts +10 -0
  89. package/src/lib/table/data/options/sorted-options.if.ts +13 -0
  90. package/src/lib/table/data/options/sorted-options.ts +15 -0
  91. package/src/lib/table/data/options/table-options.if.ts +240 -0
  92. package/src/lib/table/data/options/table-options.ts +68 -0
  93. package/src/lib/table/data/options/tree-options.if.ts +10 -0
  94. package/src/lib/table/data/options/tree-options.ts +32 -0
  95. package/src/lib/table/data/side-ident.type.ts +4 -0
  96. package/src/lib/table/data/table-model-and-options.if.ts +11 -0
  97. package/src/lib/table/data/table-model-and-options.ts +16 -0
  98. package/src/lib/table/data/tablemodel/area-ident.type.ts +18 -0
  99. package/src/lib/table/data/tablemodel/areamodel/abstract-area-model.ts +184 -0
  100. package/src/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.ts +63 -0
  101. package/src/lib/table/data/tablemodel/areamodel/area-model-cell-groups.ts +236 -0
  102. package/src/lib/table/data/tablemodel/areamodel/area-model-hidden.ts +126 -0
  103. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.ts +28 -0
  104. package/src/lib/table/data/tablemodel/areamodel/area-model-object-array.ts +120 -0
  105. package/src/lib/table/data/tablemodel/areamodel/area-model-tree.ts +224 -0
  106. package/src/lib/table/data/tablemodel/areamodel/area-model.if.ts +192 -0
  107. package/src/lib/table/data/tablemodel/areamodel/area-model.ts +117 -0
  108. package/src/lib/table/data/tablemodel/areamodel/async-area-model-object-array.ts +110 -0
  109. package/src/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.ts +64 -0
  110. package/src/lib/table/data/tablemodel/areamodel/has-default-row-height-if.ts +3 -0
  111. package/src/lib/table/data/tablemodel/areamodel/object-array-holder.if.ts +8 -0
  112. package/src/lib/table/data/tablemodel/cellgroup/cell-group-ext.ts +172 -0
  113. package/src/lib/table/data/tablemodel/cellgroup/cell-group.if.ts +12 -0
  114. package/src/lib/table/data/tablemodel/cellgroup/cell-group.ts +18 -0
  115. package/src/lib/table/data/tablemodel/cellgroup/cellgroup-factory.ts +148 -0
  116. package/src/lib/table/data/tablemodel/column/column-def.if.ts +141 -0
  117. package/src/lib/table/data/tablemodel/column/column-def.ts +108 -0
  118. package/src/lib/table/data/tablemodel/padding.ts +12 -0
  119. package/src/lib/table/data/tablemodel/table-model.if.ts +256 -0
  120. package/src/lib/table/data/tablemodel/table-model.ts +542 -0
  121. package/src/lib/table/ele-scope.ts +309 -0
  122. package/src/lib/table/event-adapter.ts +43 -0
  123. package/src/lib/table/event-listener.if.ts +32 -0
  124. package/src/lib/table/factory/table-factory.ts +379 -0
  125. package/src/lib/table/factory/tree-factory.ts +52 -0
  126. package/src/lib/table/focus/event-focus-changed-listener.if.ts +8 -0
  127. package/src/lib/table/focus/focus-model.if.ts +20 -0
  128. package/src/lib/table/focus/focus-model.ts +76 -0
  129. package/src/lib/table/focus/focus.type.ts +4 -0
  130. package/src/lib/table/input-handler.ts +48 -0
  131. package/src/lib/table/instanceof-workaround.ts +41 -0
  132. package/src/lib/table/license-manager.ts +47 -0
  133. package/src/lib/table/mouse-handler.ts +307 -0
  134. package/src/lib/table/render-scope.ts +1440 -0
  135. package/src/lib/table/renderer/cell-group-ext-cell-renderer.ts +123 -0
  136. package/src/lib/table/renderer/cell-render.if.ts +16 -0
  137. package/src/lib/table/renderer/checkbox-boolean-property-cell-renderer.ts +63 -0
  138. package/src/lib/table/renderer/checkbox-cell-renderer.ts +39 -0
  139. package/src/lib/table/renderer/date-to-int-date-cell-renderer.ts +39 -0
  140. package/src/lib/table/renderer/date-to-iso-cell-renderer.ts +25 -0
  141. package/src/lib/table/renderer/date-to-locale-date-cell-renderer.ts +24 -0
  142. package/src/lib/table/renderer/date-to-tec-cell-renderer.ts +28 -0
  143. package/src/lib/table/renderer/edit/edit-cell-renderer.type.ts +3 -0
  144. package/src/lib/table/renderer/edit/edit-input-pipe-for-number.ts +6 -0
  145. package/src/lib/table/renderer/edit/edit-input-pipe.if.ts +15 -0
  146. package/src/lib/table/renderer/edit/input-cell-renderer.ts +41 -0
  147. package/src/lib/table/renderer/edit/select-cell-renderer.ts +60 -0
  148. package/src/lib/table/renderer/male-female-to-icon-cell-renderer.ts +26 -0
  149. package/src/lib/table/renderer/number-cell-progress-bar-cell-renderer.ts +57 -0
  150. package/src/lib/table/renderer/number-cell-renderer.ts +38 -0
  151. package/src/lib/table/renderer/positive-and-negative-number-renderer.ts +45 -0
  152. package/src/lib/table/renderer/progress-bar-cell-renderer.ts +60 -0
  153. package/src/lib/table/renderer/renderer-cleanup-fn.type.ts +1 -0
  154. package/src/lib/table/renderer/renderer.ts +11 -0
  155. package/src/lib/table/renderer/star-rating-cell-renderer.ts +45 -0
  156. package/src/lib/table/renderer/true-false-cell-renderer.ts +28 -0
  157. package/src/lib/table/selection/event-selection-changed-listener.if.ts +8 -0
  158. package/src/lib/table/selection/multi-rows-selection-model.ts +118 -0
  159. package/src/lib/table/selection/selection-model.if.ts +56 -0
  160. package/src/lib/table/selection/selection-model.ts +182 -0
  161. package/src/lib/table/selection/selection-service.ts +129 -0
  162. package/src/lib/table/selection/selection.type.ts +6 -0
  163. package/src/lib/table/service/abstract-store-state.service.ts +105 -0
  164. package/src/lib/table/service/convenience-dom.service.ts +574 -0
  165. package/src/lib/table/service/copy-service.if.ts +45 -0
  166. package/src/lib/table/service/copy-service.ts +130 -0
  167. package/src/lib/table/service/data/collapsed-expanded.data.ts +11 -0
  168. package/src/lib/table/service/data/html-style.type.ts +1 -0
  169. package/src/lib/table/service/dom-service.if.ts +18 -0
  170. package/src/lib/table/service/ge-filter.service.ts +123 -0
  171. package/src/lib/table/service/simple-dom-service.ts +55 -0
  172. package/src/lib/table/service/sorter.service.ts +30 -0
  173. package/src/lib/table/service/store-state-collapsed-expand.service.ts +76 -0
  174. package/src/lib/table/service/store-state-scroll-pos.service.ts +40 -0
  175. package/src/lib/table/service/store-state-sorting.service.ts +41 -0
  176. package/src/lib/table/service/tree-row.service.ts +32 -0
  177. package/src/lib/table/table-api.ts +234 -0
  178. package/src/lib/table/table-scope.ts +770 -0
  179. package/tsconfig.json +21 -0
  180. package/tsconfig.lib.json +10 -0
  181. package/tsconfig.spec.json +25 -0
  182. package/vite.config.ts +56 -0
  183. package/index.cjs +0 -351
  184. package/lib/table/focus/focus-model.if.d.ts +0 -8
  185. package/lib/table/renderer/positive-and-negative-number-renderer.d.ts +0 -4
  186. /package/{lib → dist/lib}/table/action/action-id.type.d.ts +0 -0
  187. /package/{lib → dist/lib}/table/action/on-action-triggered.if.d.ts +0 -0
  188. /package/{lib → dist/lib}/table/action/osx-shortcut-actionId-mapping.d.ts +0 -0
  189. /package/{lib → dist/lib}/table/action/shortcut-actionid-mapping.type.d.ts +0 -0
  190. /package/{lib → dist/lib}/table/action/shortcut.service.d.ts +0 -0
  191. /package/{lib → dist/lib}/table/action/windows-shortcut-actionId-mapping.d.ts +0 -0
  192. /package/{lib → dist/lib}/table/checkbox/checkbox-model.d.ts +0 -0
  193. /package/{lib → dist/lib}/table/checkbox/checkbox-model.if.d.ts +0 -0
  194. /package/{lib → dist/lib}/table/checkbox/tree-checkbox-model.d.ts +0 -0
  195. /package/{lib → dist/lib}/table/color/color-rgb.d.ts +0 -0
  196. /package/{lib → dist/lib}/table/color/color-rgb.if.d.ts +0 -0
  197. /package/{lib → dist/lib}/table/color/ge-css-color-util.d.ts +0 -0
  198. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.d.ts +0 -0
  199. /package/{lib → dist/lib}/table/color/three-color-gradient-arg.if.d.ts +0 -0
  200. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.d.ts +0 -0
  201. /package/{lib → dist/lib}/table/color/two-color-gradient-arg.if.d.ts +0 -0
  202. /package/{lib → dist/lib}/table/css-vars.d.ts +0 -0
  203. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.d.ts +0 -0
  204. /package/{lib → dist/lib}/table/data/chunk/chunk.data-event.if.d.ts +0 -0
  205. /package/{lib → dist/lib}/table/data/chunk/request-chunk.d.ts +0 -0
  206. /package/{lib → dist/lib}/table/data/chunk/request-chunk.if.d.ts +0 -0
  207. /package/{lib → dist/lib}/table/data/common/aligns.d.ts +0 -0
  208. /package/{lib → dist/lib}/table/data/common/area-map-factory.d.ts +0 -0
  209. /package/{lib → dist/lib}/table/data/common/area-map.d.ts +0 -0
  210. /package/{lib → dist/lib}/table/data/common/area-map.type.d.ts +0 -0
  211. /package/{lib → dist/lib}/table/data/common/args-adjust-columns-to-row-parent-params.d.ts +0 -0
  212. /package/{lib → dist/lib}/table/data/common/args-render-cell-div.d.ts +0 -0
  213. /package/{lib → dist/lib}/table/data/common/boolean-function.d.ts +0 -0
  214. /package/{lib → dist/lib}/table/data/common/cell-range.d.ts +0 -0
  215. /package/{lib → dist/lib}/table/data/common/checkbox-column-def.d.ts +0 -0
  216. /package/{lib → dist/lib}/table/data/common/checked-type.d.ts +0 -0
  217. /package/{lib → dist/lib}/table/data/common/event/ge-cell-indices.d.ts +0 -0
  218. /package/{lib → dist/lib}/table/data/common/event/ge-key-event.d.ts +0 -0
  219. /package/{lib → dist/lib}/table/data/common/event/ge-model-change-event.d.ts +0 -0
  220. /package/{lib → dist/lib}/table/data/common/event/ge-mouse-event.d.ts +0 -0
  221. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.d.ts +0 -0
  222. /package/{lib → dist/lib}/table/data/common/event/input/table-cell-update-event.if.d.ts +0 -0
  223. /package/{lib → dist/lib}/table/data/common/filter-function.d.ts +0 -0
  224. /package/{lib → dist/lib}/table/data/common/get-t.d.ts +0 -0
  225. /package/{lib → dist/lib}/table/data/common/index-and-px.d.ts +0 -0
  226. /package/{lib → dist/lib}/table/data/common/size.d.ts +0 -0
  227. /package/{lib → dist/lib}/table/data/common/size.if.d.ts +0 -0
  228. /package/{lib → dist/lib}/table/data/common/sizes.d.ts +0 -0
  229. /package/{lib → dist/lib}/table/data/common/sort-item.d.ts +0 -0
  230. /package/{lib → dist/lib}/table/data/common/sort-state.type.d.ts +0 -0
  231. /package/{lib → dist/lib}/table/data/common/tree-arrow.type.d.ts +0 -0
  232. /package/{lib → dist/lib}/table/data/common/tree-row-if.d.ts +0 -0
  233. /package/{lib → dist/lib}/table/data/common/tree-row.d.ts +0 -0
  234. /package/{lib → dist/lib}/table/data/common/value-label.d.ts +0 -0
  235. /package/{lib → dist/lib}/table/data/common/value-label.if.d.ts +0 -0
  236. /package/{lib → dist/lib}/table/data/div-scope.type.d.ts +0 -0
  237. /package/{lib → dist/lib}/table/data/event/mouse-target-data.d.ts +0 -0
  238. /package/{lib → dist/lib}/table/data/geo-data.d.ts +0 -0
  239. /package/{lib → dist/lib}/table/data/options/auto-restore-options.d.ts +0 -0
  240. /package/{lib → dist/lib}/table/data/options/auto-restore-options.if.d.ts +0 -0
  241. /package/{lib → dist/lib}/table/data/options/default-row-heights.d.ts +0 -0
  242. /package/{lib → dist/lib}/table/data/options/default-row-heights.if.d.ts +0 -0
  243. /package/{lib → dist/lib}/table/data/options/header-group-options.d.ts +0 -0
  244. /package/{lib → dist/lib}/table/data/options/header-group-options.if.d.ts +0 -0
  245. /package/{lib → dist/lib}/table/data/options/icon.d.ts +0 -0
  246. /package/{lib → dist/lib}/table/data/options/icon.if.d.ts +0 -0
  247. /package/{lib → dist/lib}/table/data/options/sorted-options.d.ts +0 -0
  248. /package/{lib → dist/lib}/table/data/options/sorted-options.if.d.ts +0 -0
  249. /package/{lib → dist/lib}/table/data/options/table-options.d.ts +0 -0
  250. /package/{lib → dist/lib}/table/data/options/table-options.if.d.ts +0 -0
  251. /package/{lib → dist/lib}/table/data/options/tree-options.d.ts +0 -0
  252. /package/{lib → dist/lib}/table/data/options/tree-options.if.d.ts +0 -0
  253. /package/{lib → dist/lib}/table/data/side-ident.type.d.ts +0 -0
  254. /package/{lib → dist/lib}/table/data/table-model-and-options.d.ts +0 -0
  255. /package/{lib → dist/lib}/table/data/table-model-and-options.if.d.ts +0 -0
  256. /package/{lib → dist/lib}/table/data/tablemodel/area-ident.type.d.ts +0 -0
  257. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/abstract-area-model.d.ts +0 -0
  258. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-array-of-arrays.d.ts +0 -0
  259. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-cell-groups.d.ts +0 -0
  260. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-hidden.d.ts +0 -0
  261. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.d.ts +0 -0
  262. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-object-array.d.ts +0 -0
  263. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model-tree.d.ts +0 -0
  264. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.d.ts +0 -0
  265. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/area-model.if.d.ts +0 -0
  266. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +0 -0
  267. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/col-and-rowspan-model.d.ts +0 -0
  268. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/has-default-row-height-if.d.ts +0 -0
  269. /package/{lib → dist/lib}/table/data/tablemodel/areamodel/object-array-holder.if.d.ts +0 -0
  270. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group-ext.d.ts +0 -0
  271. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.d.ts +0 -0
  272. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cell-group.if.d.ts +0 -0
  273. /package/{lib → dist/lib}/table/data/tablemodel/cellgroup/cellgroup-factory.d.ts +0 -0
  274. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.d.ts +0 -0
  275. /package/{lib → dist/lib}/table/data/tablemodel/column/column-def.if.d.ts +0 -0
  276. /package/{lib → dist/lib}/table/data/tablemodel/padding.d.ts +0 -0
  277. /package/{lib → dist/lib}/table/data/tablemodel/table-model.d.ts +0 -0
  278. /package/{lib → dist/lib}/table/data/tablemodel/table-model.if.d.ts +0 -0
  279. /package/{lib → dist/lib}/table/ele-scope.d.ts +0 -0
  280. /package/{lib → dist/lib}/table/event-adapter.d.ts +0 -0
  281. /package/{lib → dist/lib}/table/factory/table-factory.d.ts +0 -0
  282. /package/{lib → dist/lib}/table/factory/tree-factory.d.ts +0 -0
  283. /package/{lib → dist/lib}/table/focus/focus.type.d.ts +0 -0
  284. /package/{lib → dist/lib}/table/input-handler.d.ts +0 -0
  285. /package/{lib → dist/lib}/table/instanceof-workaround.d.ts +0 -0
  286. /package/{lib → dist/lib}/table/license-manager.d.ts +0 -0
  287. /package/{lib → dist/lib}/table/mouse-handler.d.ts +0 -0
  288. /package/{lib → dist/lib}/table/render-scope.d.ts +0 -0
  289. /package/{lib → dist/lib}/table/renderer/cell-group-ext-cell-renderer.d.ts +0 -0
  290. /package/{lib → dist/lib}/table/renderer/cell-render.if.d.ts +0 -0
  291. /package/{lib → dist/lib}/table/renderer/checkbox-boolean-property-cell-renderer.d.ts +0 -0
  292. /package/{lib → dist/lib}/table/renderer/checkbox-cell-renderer.d.ts +0 -0
  293. /package/{lib → dist/lib}/table/renderer/date-to-int-date-cell-renderer.d.ts +0 -0
  294. /package/{lib → dist/lib}/table/renderer/date-to-iso-cell-renderer.d.ts +0 -0
  295. /package/{lib → dist/lib}/table/renderer/date-to-locale-date-cell-renderer.d.ts +0 -0
  296. /package/{lib → dist/lib}/table/renderer/date-to-tec-cell-renderer.d.ts +0 -0
  297. /package/{lib → dist/lib}/table/renderer/edit/edit-cell-renderer.type.d.ts +0 -0
  298. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe-for-number.d.ts +0 -0
  299. /package/{lib → dist/lib}/table/renderer/edit/edit-input-pipe.if.d.ts +0 -0
  300. /package/{lib → dist/lib}/table/renderer/edit/input-cell-renderer.d.ts +0 -0
  301. /package/{lib → dist/lib}/table/renderer/edit/select-cell-renderer.d.ts +0 -0
  302. /package/{lib → dist/lib}/table/renderer/male-female-to-icon-cell-renderer.d.ts +0 -0
  303. /package/{lib → dist/lib}/table/renderer/number-cell-progress-bar-cell-renderer.d.ts +0 -0
  304. /package/{lib → dist/lib}/table/renderer/number-cell-renderer.d.ts +0 -0
  305. /package/{lib → dist/lib}/table/renderer/progress-bar-cell-renderer.d.ts +0 -0
  306. /package/{lib → dist/lib}/table/renderer/renderer-cleanup-fn.type.d.ts +0 -0
  307. /package/{lib → dist/lib}/table/renderer/renderer.d.ts +0 -0
  308. /package/{lib → dist/lib}/table/renderer/star-rating-cell-renderer.d.ts +0 -0
  309. /package/{lib → dist/lib}/table/renderer/true-false-cell-renderer.d.ts +0 -0
  310. /package/{lib → dist/lib}/table/selection/selection-service.d.ts +0 -0
  311. /package/{lib → dist/lib}/table/selection/selection.type.d.ts +0 -0
  312. /package/{lib → dist/lib}/table/service/abstract-store-state.service.d.ts +0 -0
  313. /package/{lib → dist/lib}/table/service/convenience-dom.service.d.ts +0 -0
  314. /package/{lib → dist/lib}/table/service/copy-service.d.ts +0 -0
  315. /package/{lib → dist/lib}/table/service/copy-service.if.d.ts +0 -0
  316. /package/{lib → dist/lib}/table/service/data/collapsed-expanded.data.d.ts +0 -0
  317. /package/{lib → dist/lib}/table/service/data/html-style.type.d.ts +0 -0
  318. /package/{lib → dist/lib}/table/service/dom-service.if.d.ts +0 -0
  319. /package/{lib → dist/lib}/table/service/ge-filter.service.d.ts +0 -0
  320. /package/{lib → dist/lib}/table/service/simple-dom-service.d.ts +0 -0
  321. /package/{lib → dist/lib}/table/service/sorter.service.d.ts +0 -0
  322. /package/{lib → dist/lib}/table/service/store-state-collapsed-expand.service.d.ts +0 -0
  323. /package/{lib → dist/lib}/table/service/store-state-scroll-pos.service.d.ts +0 -0
  324. /package/{lib → dist/lib}/table/service/store-state-sorting.service.d.ts +0 -0
  325. /package/{lib → dist/lib}/table/service/tree-row.service.d.ts +0 -0
  326. /package/{lib → dist/lib}/table/table-api.d.ts +0 -0
@@ -0,0 +1,307 @@
1
+ import { TableScope } from "./table-scope";
2
+ import { TreeRow } from "./data/common/tree-row";
3
+ import { AreaIdent, getAreaIdentByString } from "./data/tablemodel/area-ident.type";
4
+ import { GeMouseEvent } from "./data/common/event/ge-mouse-event";
5
+ import { MouseTargetData } from "./data/event/mouse-target-data";
6
+ import {TreeRowIf} from "./data/common/tree-row-if";
7
+ import {isTreeRow} from "./instanceof-workaround";
8
+
9
+ /**
10
+ * Class representing a MouseHandler.
11
+ * @class
12
+ */
13
+ export class MouseHandler {
14
+
15
+
16
+ /**
17
+ * Represents the delay in milliseconds between two consecutive double clicks.
18
+ *
19
+ * @type {number}
20
+ */
21
+ doubleClickDelay = 500;
22
+
23
+ mouseEvent?: MouseEvent;
24
+ startMouseEvent?: GeMouseEvent;
25
+ geMouseEvent?: GeMouseEvent;
26
+ geMouseEventOld?: GeMouseEvent;
27
+
28
+ private expandedAll = true;
29
+ private mouseDown = false;
30
+ private dragging = false;
31
+
32
+ constructor(
33
+ protected tableScope: TableScope
34
+ ) {
35
+ this.tableScope.hostElement.addEventListener("click", this.onHostElementClicked.bind(this));
36
+ this.tableScope.hostElement.addEventListener("dblclick", this.onHostElementDblClicked.bind(this));
37
+ this.tableScope.hostElement.addEventListener("mousedown", this.onMouseDown.bind(this));
38
+ this.tableScope.hostElement.addEventListener("mousemove", this.onMouseMove.bind(this));
39
+ this.tableScope.hostElement.addEventListener("mouseup", this.onMouseUp.bind(this));
40
+ this.tableScope.hostElement.addEventListener("contextmenu", this.onContextmenu.bind(this));
41
+
42
+ // @ts-ignore
43
+ this.tableScope.hostElement['_MouseHandler'] = 'true';
44
+
45
+ this.tableScope.scrollViewport.addEventListener("scroll", this.tableScope.adjustAfterScrolling.bind(this.tableScope));
46
+
47
+ [window, this.tableScope.hostElement].forEach(
48
+ ele => ele.addEventListener("resize", this.tableScope.adjustContainersAndRows.bind(this.tableScope))
49
+ );
50
+ }
51
+
52
+
53
+ /**
54
+ * Handles the "contextmenu" event.
55
+ *
56
+ * @private
57
+ * @param {MouseEvent} evt - The mouse event object.
58
+ * @return {void}
59
+ */
60
+ private onContextmenu(evt: MouseEvent) {
61
+ this.mouseEvent = evt;
62
+ const mouseMoveEvent = this.tableScope.createGeMouseEvent(this.mouseEvent);
63
+ this.tableScope.contextmenu(mouseMoveEvent);
64
+ };
65
+
66
+ private lastClicked = 0;
67
+ /**
68
+ * Handles the click event on the host element.
69
+ *
70
+ * @param {MouseEvent} event - The click event.
71
+ *
72
+ * @return {void}
73
+ */
74
+ private onHostElementClicked(event: MouseEvent) {
75
+ const now = Date.now();
76
+ if (now - this.lastClicked < this.doubleClickDelay) {
77
+ return; // skipped
78
+ }
79
+ this.lastClicked = now;
80
+
81
+ const mouseTargetData: MouseTargetData = new MouseTargetData(event.target, this.tableScope);
82
+ if (mouseTargetData.action === 'toggleExpandCollapseAll') {
83
+ this.expandedAll = !this.expandedAll;
84
+ this.tableScope.toggleExpandCollapseAll(this.expandedAll);
85
+ event.preventDefault();
86
+ event.stopPropagation();
87
+
88
+ } else if (mouseTargetData.action === 'toggleHeaderGroup'){
89
+ this.tableScope.toggleHeaderGroup(mouseTargetData);
90
+ event.preventDefault();
91
+ event.stopPropagation();
92
+
93
+ } else if (mouseTargetData.inputType === 'checkbox' && mouseTargetData.areaIdent){
94
+ this.tableScope.toggleRowCheckbox(mouseTargetData.rowIdx, mouseTargetData.colIdx, mouseTargetData.areaIdent);
95
+ event.preventDefault();
96
+ event.stopPropagation();
97
+
98
+ } else if (isTreeRow(mouseTargetData.row) && mouseTargetData.areaModel) {
99
+ const altClickOnFirstCol = mouseTargetData.colIdx === this.getArrowColumnIndex() && event.altKey;
100
+ const clickOnArrow = mouseTargetData.className.includes("ge-table-tree-arrow-div");
101
+
102
+ if (altClickOnFirstCol || clickOnArrow) {
103
+ // toggle collapsed/expanded:
104
+ event.preventDefault();
105
+ event.stopPropagation();
106
+ const tr: TreeRowIf<any> = mouseTargetData.row as TreeRow<any>;
107
+ tr.expanded = !tr.expanded;
108
+
109
+ if ("recalcVisibleTreeRows" in mouseTargetData.areaModel) {
110
+ // @ts-ignore
111
+ mouseTargetData.areaModel.recalcVisibleTreeRows();
112
+ }
113
+ this.tableScope.tableModel.recalcSize(this.tableScope.hostElement.clientWidth);
114
+ this.tableScope.adjustContainersAndRows();
115
+ this.updateCollapsedExpandedState(tr);
116
+ }
117
+ }
118
+
119
+ if (mouseTargetData.areaIdent === "body" && this.tableScope.tableOptions.getFocusModel) {
120
+ const fm = this.tableScope.tableOptions.getFocusModel();
121
+ fm?.clear();
122
+ fm?.setFocus(mouseTargetData.rowIdx, mouseTargetData.colIdx);
123
+ }
124
+
125
+ this.publishGeMouseEvent(event, 1);
126
+ };
127
+
128
+
129
+ /**
130
+ * Handles the double click event on the host element.
131
+ * This method is private.
132
+ *
133
+ * @param {MouseEvent} event - The double click event.
134
+ */
135
+ private onHostElementDblClicked(event: MouseEvent) {
136
+ this.lastClicked = Date.now();
137
+
138
+ if (event.target instanceof HTMLElement) {
139
+ const target = event.target as HTMLElement;
140
+ const area = target.getAttribute("data-area");
141
+ const areaIdent: AreaIdent = getAreaIdentByString(area);
142
+ const rowIdx = Number(target.getAttribute("data-row-index"));
143
+ const colIdx = Number(target.getAttribute("data-col-index"));
144
+ const areaModel = this.tableScope.tableModel.getAreaModel(areaIdent);
145
+
146
+ if (area && areaIdent === "header") {
147
+ if (this.tableScope.tableModel.isSortable(colIdx)) {
148
+ this.tableScope.clearSelection();
149
+ this.tableScope.onHeaderDblClicked(event, rowIdx, colIdx);
150
+ }
151
+
152
+ } else if (target.getAttribute("data-row-index")) {
153
+ const row = areaModel.getRowByIndex(rowIdx);
154
+
155
+ if (area && areaIdent === "body") {
156
+ if (areaModel.isEditable(rowIdx, colIdx)) {
157
+ this.tableScope.clearSelection();
158
+ this.tableScope.initRenderEditor(rowIdx, colIdx);
159
+ }
160
+ }
161
+
162
+ if (isTreeRow(row)) {
163
+ if (colIdx === this.getArrowColumnIndex()) {
164
+ // toggle collapsed/expanded:
165
+ event.preventDefault();
166
+ event.stopPropagation();
167
+ const tr: TreeRowIf<any> = row as TreeRow<any>;
168
+ tr.expanded = !tr.expanded;
169
+
170
+ if ("recalcVisibleTreeRows" in areaModel) {
171
+ // @ts-ignore
172
+ areaModel.recalcVisibleTreeRows();
173
+ }
174
+ this.tableScope.tableModel.recalcSize(this.tableScope.hostElement.clientWidth);
175
+ this.tableScope.adjustContainersAndRows();
176
+
177
+ this.updateCollapsedExpandedState(tr);
178
+ }
179
+ }
180
+ }
181
+ }
182
+
183
+ this.publishGeMouseEvent(event, 2);
184
+ };
185
+
186
+
187
+ /**
188
+ * Publishes a GeMouseEvent.
189
+ *
190
+ * @param {MouseEvent} event - The MouseEvent to publish.
191
+ * @param {number} clickCount - The number of clicks for the GeMouseEvent.
192
+ *
193
+ * @return {void}
194
+ */
195
+ private publishGeMouseEvent(event: MouseEvent, clickCount: number) {
196
+ this.mouseEvent = event;
197
+ this.geMouseEventOld = this.geMouseEvent?.clone();
198
+ this.geMouseEvent = this.tableScope.createGeMouseEvent(event);
199
+ if (this.geMouseEvent) {
200
+ this.geMouseEvent.clickCount = clickCount;
201
+ }
202
+
203
+ this.tableScope.onMouseClicked(this.geMouseEvent, this.geMouseEventOld);
204
+ this.tableScope.publishGeMouseEvent(this.geMouseEvent);
205
+ if (clickCount===1) {
206
+ this.tableScope.debounceRepaint();
207
+ }
208
+ }
209
+
210
+
211
+ /**
212
+ * Update the collapsed/expanded state of a tree row.
213
+ *
214
+ * @param {TreeRowIf<any>} tr - The tree row object.
215
+ * @returns {void}
216
+ */
217
+ private updateCollapsedExpandedState(tr: TreeRowIf<any>) {
218
+ // store expanded/collapsed:
219
+ const getRowId = this.tableScope.tableOptions?.autoRestoreOptions?.getRowId;
220
+ if (getRowId) {
221
+ const mode = this.tableScope.storeStateCollapsedExpandService?.collapsedExpandedStateGet().mode;
222
+ const push = (mode === "collapsed" && !tr.expanded) || (mode === "expanded" && tr.expanded);
223
+ const remove = (mode === "collapsed" && tr.expanded) || (mode === "expanded" && !tr.expanded);
224
+ const rowId = getRowId(tr.data);
225
+ if (push) {
226
+ this.tableScope.storeStateCollapsedExpandService?.collapsedStateIdsPush(rowId);
227
+ } else if (remove) {
228
+ this.tableScope.storeStateCollapsedExpandService?.collapsedStateIdsRemove(rowId);
229
+ }
230
+ }
231
+ }
232
+
233
+
234
+ private getArrowColumnIndex(): number {
235
+ const rowCheckboxVisible = this.tableScope.tableModel.isRowCheckboxVisible();
236
+ return rowCheckboxVisible ? 1 : 0;
237
+ }
238
+
239
+
240
+ private onMouseDown(evt: MouseEvent) {
241
+
242
+ if (!this.dragging) {
243
+ this.mouseEvent = evt;
244
+ this.startMouseEvent = this.tableScope.createGeMouseEvent(this.mouseEvent);
245
+ this.tableScope.onMouseDown(this.startMouseEvent);
246
+ this.mouseDown = true;
247
+ }
248
+ }
249
+
250
+
251
+ private onMouseMove(evt: MouseEvent) {
252
+ this.mouseEvent = evt;
253
+ if (this.mouseDown) {
254
+ if (!this.dragging) {
255
+ this.dragging = true;
256
+ this.tableScope.setDragging(true);
257
+ }
258
+ requestAnimationFrame(this.mouseDraggingOnFrame.bind(this));
259
+ } else {
260
+ requestAnimationFrame(this.mouseMoveOnFrame.bind(this));
261
+ }
262
+ }
263
+
264
+
265
+ private onMouseUp(evt: MouseEvent) {
266
+ this.mouseEvent = evt;
267
+ if (this.dragging) {
268
+ requestAnimationFrame(this.mouseDraggingEndOnFrame.bind(this));
269
+ }
270
+ this.mouseDown = false;
271
+ this.dragging = false;
272
+ this.tableScope.setDragging(false);
273
+ }
274
+
275
+
276
+ private mouseDraggingOnFrame() {
277
+ if (this.mouseEvent) {
278
+ const mouseEvent = this.tableScope.createGeMouseEvent(this.mouseEvent);
279
+ if (this.startMouseEvent?.originalEvent) {
280
+ mouseEvent.draggingX = this.mouseEvent.clientX - this.startMouseEvent.originalEvent.clientX;
281
+ mouseEvent.draggingY = this.mouseEvent.clientY - this.startMouseEvent.originalEvent.clientY;
282
+ }
283
+ this.tableScope.mouseDraggingOnFrame(mouseEvent, this.startMouseEvent);
284
+ }
285
+ }
286
+
287
+ private mouseDraggingEndOnFrame() {
288
+ if (this.mouseEvent) {
289
+ const mouseEvent = this.tableScope.createGeMouseEvent(this.mouseEvent);
290
+ if (this.startMouseEvent?.originalEvent) {
291
+ mouseEvent.draggingX = this.mouseEvent.clientX - this.startMouseEvent.originalEvent.clientX;
292
+ mouseEvent.draggingY = this.mouseEvent.clientY - this.startMouseEvent.originalEvent.clientY;
293
+ }
294
+ this.tableScope.mouseDraggingEndOnFrame(mouseEvent);
295
+ }
296
+ }
297
+
298
+
299
+ private mouseMoveOnFrame() {
300
+ if (this.mouseEvent) {
301
+ const mouseMoveEvent = this.tableScope.createGeMouseEvent(this.mouseEvent);
302
+ this.tableScope.mouseMove(mouseMoveEvent);
303
+ }
304
+ }
305
+
306
+
307
+ }