@guiexpert/table 1.1.18 → 1.1.21

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 +47 -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,123 @@
1
+ import { AreaModelIf } from '../data/tablemodel/areamodel/area-model.if';
2
+ import { CellRendererIf } from './cell-render.if';
3
+ import { DomServiceIf } from '../service/dom-service.if';
4
+ import { AreaIdent } from '../data/tablemodel/area-ident.type';
5
+ import { RendererCleanupFnType } from './renderer-cleanup-fn.type';
6
+ import { CellGroupExt } from '../data/tablemodel/cellgroup/cell-group-ext';
7
+ import { HeaderGroupOptions } from '../data/options/header-group-options';
8
+ import { HeaderGroupOptionsIf } from '../data/options/header-group-options.if';
9
+ import { IconIf } from '../data/options/icon.if';
10
+
11
+
12
+ export class CellGroupExtCellRenderer implements CellRendererIf {
13
+
14
+ private static toggleHeaderGroup = 'toggleHeaderGroup';
15
+
16
+ constructor(
17
+ private headerGroupOptions: HeaderGroupOptionsIf = new HeaderGroupOptions()
18
+ ) {
19
+ }
20
+
21
+
22
+ render(
23
+ cellDiv: HTMLDivElement,
24
+ rowIndex: number,
25
+ columnIndex: number,
26
+ areaIdent: AreaIdent,
27
+ _areaModel: AreaModelIf,
28
+ cellValue: CellGroupExt | undefined | null,
29
+ domService: DomServiceIf,
30
+
31
+ ): RendererCleanupFnType | undefined {
32
+
33
+ const label = cellValue?.data ? cellValue.data : '';
34
+ if (cellValue) {
35
+ const { toggle, visibility, closed } = cellValue;
36
+
37
+ const action = toggle ? CellGroupExtCellRenderer.toggleHeaderGroup : '';
38
+ this.addText(cellDiv, areaIdent, rowIndex, columnIndex, label, action);
39
+ if (toggle && visibility !== 'always') {
40
+ this.addArrowDiv(domService, cellDiv, !closed, rowIndex, columnIndex, areaIdent, action);
41
+ }
42
+ } else {
43
+ this.addText(cellDiv, areaIdent, rowIndex, columnIndex, label, '');
44
+ }
45
+ return undefined;
46
+ }
47
+
48
+
49
+ private addText(
50
+ cellDiv: HTMLDivElement,
51
+ areaIdent: 'header' | 'body' | 'footer',
52
+ rowIndex: number,
53
+ columnIndex: number,
54
+ label: string,
55
+ action:string) {
56
+
57
+ cellDiv.innerHTML = `<span
58
+ data-ge-action="${action}"
59
+ data-area="${areaIdent}"
60
+ data-row-index="${rowIndex}"
61
+ data-col-index="${columnIndex}"
62
+ >${label}</span>`;
63
+ }
64
+
65
+ private addArrowDiv(
66
+ domService: DomServiceIf,
67
+ parent: HTMLDivElement,
68
+ expanded: boolean = true,
69
+ rowIndex: number = -1,
70
+ columnIndex: number = -1,
71
+ areaIdent: AreaIdent = 'header',
72
+ action:string
73
+ ): HTMLDivElement {
74
+
75
+ const div = domService.createElement<HTMLDivElement>('div');
76
+ domService.addClass(div, 'ge-table-toggle-icon-div');
77
+ domService.setStyle(div, 'display', 'inline-block');
78
+ domService.setStyle(div, 'position', '');
79
+ domService.setStyle(div, 'width', '20px');
80
+ domService.setStyle(div, 'background', 'transparent');
81
+ domService.setStyle(div, 'cursor', 'pointer');
82
+ domService.setAttribute(div, 'data-row-index', `${rowIndex}`);
83
+ domService.setAttribute(div, 'data-col-index', `${columnIndex}`);
84
+ domService.setAttribute(div, 'data-area', `${areaIdent}`);
85
+ domService.setAttribute(div, 'data-ge-action', `${action}`);
86
+
87
+ let treeOptionsArrow: IconIf;
88
+ if (expanded) {
89
+ treeOptionsArrow = this.headerGroupOptions.iconExpanded;
90
+ } else {
91
+ treeOptionsArrow = this.headerGroupOptions.iconCollapsed;
92
+ }
93
+ // Text:
94
+ const content = treeOptionsArrow.content;
95
+ const textElement = domService.createText(content);
96
+ domService.appendChild(div, textElement);
97
+
98
+ // Style:
99
+ if (treeOptionsArrow.style) {
100
+ this.applyStyleString(domService, div, treeOptionsArrow.style);
101
+ }
102
+
103
+ // Classes:
104
+ for (const clazz of treeOptionsArrow.classes) {
105
+ domService.addClass(div, clazz);
106
+ }
107
+
108
+ domService.appendChild(parent, div);
109
+ return div;
110
+ }
111
+
112
+
113
+ applyStyleString(domService: DomServiceIf, div: HTMLDivElement, style: string) {
114
+ // transform: rotate(-90deg) translate(-100%, 0); transform-origin: left top; font-size: 1.5em;
115
+ const cmds = style.split(';').map(s => s.trim()).filter(s => s);
116
+ for (const cmd of cmds) {
117
+ const [key, value] = cmd.split(':');
118
+ domService.setStyle(div, key.trim(), value.trim());
119
+ }
120
+ }
121
+
122
+
123
+ }
@@ -0,0 +1,16 @@
1
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
2
+ import { DomServiceIf } from "../service/dom-service.if";
3
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
4
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
5
+
6
+ export interface CellRendererIf {
7
+
8
+ render(
9
+ cellDiv: HTMLDivElement,
10
+ rowIndex: number,
11
+ columnIndex: number,
12
+ areaIdent: AreaIdent,
13
+ areaModel: AreaModelIf,
14
+ cellValue: any,
15
+ domService: DomServiceIf): RendererCleanupFnType | undefined;
16
+ }
@@ -0,0 +1,63 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { DomServiceIf } from "../service/dom-service.if";
3
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
4
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
5
+ import { AreaModelObjectArray } from "../data/tablemodel/areamodel/area-model-object-array";
6
+
7
+ /**
8
+ * Works with AreaModelObjectArray only
9
+ */
10
+ export class CheckboxBooleanPropertyCellRenderer<T> implements CellRendererIf {
11
+
12
+ constructor(
13
+ public property: string,
14
+ public skipCheckableCheck: boolean = true,
15
+ public readonly: boolean = false
16
+ ) {
17
+ }
18
+
19
+ render(
20
+ cellDiv: HTMLDivElement,
21
+ rowIndex: number,
22
+ columnIndex: number,
23
+ areaIdent: AreaIdent,
24
+ areaModel: AreaModelObjectArray<T>,
25
+ _cellValue: any,
26
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
27
+
28
+ if (this.readonly || this.skipCheckableCheck || areaModel.isRowCheckable(rowIndex)) {
29
+ domService.addClass(cellDiv, "ge-table-row-checkbox-div");
30
+ const row = areaModel.getRowByIndex(rowIndex);
31
+ const boxChecked = areaModel.getValueByT(row, this.property) === true;
32
+ const checked = boxChecked ? "checked" : "";
33
+ const readonly = this.readonly ? " readonly " : "";
34
+
35
+ domService.addClass(cellDiv, "ge-padding-property-checkbox");
36
+ cellDiv.innerHTML = `
37
+ <input
38
+ type="checkbox"
39
+ data-area="${areaIdent}"
40
+ data-row-index="${rowIndex}"
41
+ data-col-index="${columnIndex}"
42
+ data-property-index="${this.property}"
43
+ data-input-type="checkbox"
44
+ ${checked}
45
+ ${readonly}
46
+ class="ge-input-checkbox">`;
47
+
48
+ if (!this.readonly) {
49
+ const inputEle = cellDiv.querySelector<HTMLInputElement>(".ge-input-checkbox");
50
+ if (inputEle) {
51
+ // @ts-ignore
52
+ inputEle.addEventListener("click", (_ele: HTMLInputElement, _evt: MouseEvent) => {
53
+ // @ts-ignore
54
+ row[this.property] = !row[this.property];
55
+ return true;
56
+ });
57
+ }
58
+ }
59
+ }
60
+ return undefined;
61
+ }
62
+
63
+ }
@@ -0,0 +1,39 @@
1
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
2
+ import { CellRendererIf } from "./cell-render.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class CheckboxCellRenderer implements CellRendererIf {
9
+
10
+ render(
11
+ cellDiv: HTMLDivElement,
12
+ rowIndex: number,
13
+ columnIndex: number,
14
+ areaIdent: AreaIdent,
15
+ areaModel: AreaModelIf,
16
+ _cellValue: any,
17
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
18
+
19
+ if (areaModel.isRowCheckable(rowIndex)) {
20
+ domService.addClass(cellDiv, "ge-table-row-checkbox-div");
21
+ const rowChecked = areaModel.isRowChecked(rowIndex);
22
+ const checked = (rowChecked === "full") ? "checked" : "";
23
+ const semi = (rowChecked === "semi") ? "<span style=\"opacity: 0.4;\">✓<span>" : "";
24
+ cellDiv.innerHTML = `
25
+ <input
26
+ type="checkbox"
27
+ data-area="${areaIdent}"
28
+ data-row-index="${rowIndex}"
29
+ data-col-index="${columnIndex}"
30
+ data-input-type="checkbox"
31
+ ${checked}
32
+ class="ge-table-row-checkbox">
33
+ ${semi} `;
34
+ }
35
+ return undefined;
36
+ }
37
+
38
+
39
+ }
@@ -0,0 +1,39 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class DateToIntlDDMMYYYYCellRenderer implements CellRendererIf {
9
+
10
+ readonly formatter = new Intl.DateTimeFormat("de-DE", {
11
+ year: "numeric",
12
+ month: "2-digit",
13
+ day: "2-digit"
14
+ });
15
+
16
+ render(
17
+ cellDiv: HTMLDivElement,
18
+ rowIndex: number,
19
+ columnIndex: number,
20
+ areaIdent: AreaIdent,
21
+ _areaModel: AreaModelIf,
22
+ cellValue: any,
23
+ _domService: DomServiceIf): RendererCleanupFnType | undefined {
24
+ if (cellValue) {
25
+ let dateStr = '';
26
+ try {
27
+ dateStr = this.formatter.format(new Date(cellValue));
28
+ } catch (e) {
29
+ dateStr = cellValue;
30
+ }
31
+ cellDiv.innerHTML = `
32
+ <div class="ge-table-label-div" data-row-index="${rowIndex}" data-col-index="${columnIndex}" data-area="${areaIdent}" style="position: relative; background: transparent; width: 100%; height: 100%;">
33
+ <div class="ge-table-label" data-row-index="${rowIndex}" data-col-index="${columnIndex}" data-area="${areaIdent}">${dateStr}</div>
34
+ </div>`;
35
+ }
36
+ return undefined;
37
+ }
38
+
39
+ }
@@ -0,0 +1,25 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class DateToIsoCellRenderer implements CellRendererIf {
9
+
10
+ render(
11
+ cellDiv: HTMLDivElement,
12
+ _rowIndex: number,
13
+ _columnIndex: number,
14
+ _areaIdent: AreaIdent,
15
+ _areaModel: AreaModelIf,
16
+ cellValue: any,
17
+ _domService: DomServiceIf): RendererCleanupFnType | undefined {
18
+ if (cellValue) {
19
+ cellDiv.innerText = new Date(cellValue).toISOString();
20
+ }
21
+ return undefined;
22
+ }
23
+
24
+ }
25
+
@@ -0,0 +1,24 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class DateToLocaleDateCellRenderer implements CellRendererIf {
9
+
10
+ render(
11
+ cellDiv: HTMLDivElement,
12
+ _rowIndex: number,
13
+ _columnIndex: number,
14
+ _areaIdent: AreaIdent,
15
+ _areaModel: AreaModelIf,
16
+ cellValue: any,
17
+ _domService: DomServiceIf): RendererCleanupFnType | undefined {
18
+ if (cellValue) {
19
+ cellDiv.innerText = new Date(cellValue).toLocaleDateString();
20
+ }
21
+ return undefined;
22
+ }
23
+
24
+ }
@@ -0,0 +1,28 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class DateToTecCellRenderer implements CellRendererIf {
9
+
10
+ render(
11
+ cellDiv: HTMLDivElement,
12
+ _rowIndex: number,
13
+ _columnIndex: number,
14
+ _areaIdent: AreaIdent,
15
+ _areaModel: AreaModelIf,
16
+ cellValue: any,
17
+ _domService: DomServiceIf): RendererCleanupFnType | undefined {
18
+ if (cellValue) {
19
+ cellDiv.innerText = new Date(cellValue)
20
+ .toISOString()
21
+ .replace(/T/g, " ")
22
+ .replace(/\..*/g, "");
23
+ }
24
+ return undefined;
25
+ }
26
+
27
+ }
28
+
@@ -0,0 +1,3 @@
1
+ import { CellRendererIf } from "../cell-render.if";
2
+
3
+ export type GetEditRenderer = (rowIndex: number, columnIndex: number) => CellRendererIf | undefined;
@@ -0,0 +1,6 @@
1
+ import { editInputPipe } from "./edit-input-pipe.if";
2
+
3
+ export const editInputPipeForNumber: editInputPipe = function(value: any, _rowIndex: number, _columnIndex: number) {
4
+ return value ? Number(value) : "";
5
+ }
6
+
@@ -0,0 +1,15 @@
1
+
2
+
3
+ /**
4
+ * Represents an editInputPipe function.
5
+ * @typedef {Function} editInputPipe
6
+ * @param {any} input - The input object.
7
+ * @param {number} rowIndex - The index of the row.
8
+ * @param {number} columnIndex - The index of the column.
9
+ * @returns {any|undefined} - The modified input object or undefined.
10
+ */
11
+ export interface editInputPipe {
12
+ (input: any, rowIndex: number, columnIndex: number): any | undefined;
13
+ }
14
+
15
+
@@ -0,0 +1,41 @@
1
+ import { CellRendererIf } from "../cell-render.if";
2
+ import { AreaIdent } from "../../data/tablemodel/area-ident.type";
3
+ import { AreaModelIf } from "../../data/tablemodel/areamodel/area-model.if";
4
+ import { DomServiceIf } from "../../service/dom-service.if";
5
+ import { RendererCleanupFnType } from "../renderer-cleanup-fn.type";
6
+
7
+
8
+ export class InputCellRenderer implements CellRendererIf {
9
+
10
+
11
+ render(
12
+ cellDiv: HTMLDivElement,
13
+ rowIndex: number,
14
+ columnIndex: number,
15
+ areaIdent: AreaIdent,
16
+ areaModel: AreaModelIf,
17
+ _cellValue: any,
18
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
19
+
20
+ if (areaModel.isEditable(rowIndex, columnIndex)) {
21
+ domService.addClass(cellDiv, "ge-table-row-input-div");
22
+
23
+ const val = areaModel.getValueAt(rowIndex, columnIndex);
24
+ cellDiv.innerHTML = `
25
+ <input
26
+ type="text"
27
+ value="${val}"
28
+ autofocus
29
+ onfocus="this.setSelectionRange(0, this.value.length)"
30
+ data-listen="change"
31
+ data-area="${areaIdent}"
32
+ data-row-index="${rowIndex}"
33
+ data-col-index="${columnIndex}"
34
+ data-input-type="text"
35
+ style="width:calc(100% - 8px);height:100%;border:0;padding:0 0 0 8px;"
36
+ class="ge-table-cell-editor-input">`;
37
+ }
38
+ return undefined;
39
+ }
40
+
41
+ }
@@ -0,0 +1,60 @@
1
+ import { CellRendererIf } from "../cell-render.if";
2
+ import { AreaIdent } from "../../data/tablemodel/area-ident.type";
3
+ import { AreaModelIf } from "../../data/tablemodel/areamodel/area-model.if";
4
+ import { DomServiceIf } from "../../service/dom-service.if";
5
+ import { RendererCleanupFnType } from "../renderer-cleanup-fn.type";
6
+ import { ValueLabelIf } from "../../data/common/value-label.if";
7
+ import { ValueLabel } from "../../data/common/value-label";
8
+
9
+
10
+ export class SelectCellRenderer implements CellRendererIf {
11
+
12
+ constructor(
13
+ protected options: ValueLabelIf[]
14
+ ) {
15
+ }
16
+
17
+ static create(values: string[]) {
18
+ return new SelectCellRenderer(
19
+ values.map(v => new ValueLabel(v, v))
20
+ );
21
+ }
22
+
23
+ render(
24
+ cellDiv: HTMLDivElement,
25
+ rowIndex: number,
26
+ columnIndex: number,
27
+ areaIdent: AreaIdent,
28
+ areaModel: AreaModelIf,
29
+ _cellValue: any,
30
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
31
+
32
+ if (areaModel.isEditable(rowIndex, columnIndex)) {
33
+ domService.addClass(cellDiv, "ge-table-row-select-div");
34
+
35
+ const val = areaModel.getValueAt(rowIndex, columnIndex);
36
+
37
+ let opts = [];
38
+ for (let option of this.options) {
39
+ const selected = (option.value === val) ? " selected " : "";
40
+ opts.push(`<option value="${option.value}" ${selected}>${option.label}</option>`);
41
+ }
42
+ const o = opts.join("");
43
+
44
+ cellDiv.innerHTML = `
45
+ <select
46
+ type="text"
47
+ value="${val}"
48
+ autofocus
49
+ data-listen="change"
50
+ data-area="${areaIdent}"
51
+ data-row-index="${rowIndex}"
52
+ data-col-index="${columnIndex}"
53
+ data-input-type="text"
54
+ style="width:100%;height:100%;border:0;padding:0 0 0 8px;"
55
+ class="ge-table-cell-editor-select">${o}</select>`;
56
+ }
57
+ return undefined;
58
+ }
59
+
60
+ }
@@ -0,0 +1,26 @@
1
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
2
+ import { CellRendererIf } from "./cell-render.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class MaleFemaleToIconCellRenderer implements CellRendererIf {
9
+
10
+ render(
11
+ cellDiv: HTMLDivElement,
12
+ _rowIndex: number,
13
+ _columnIndex: number,
14
+ _areaIdent: AreaIdent,
15
+ _areaModel: AreaModelIf,
16
+ cellValue: any,
17
+ _domService: DomServiceIf): RendererCleanupFnType | undefined {
18
+ if (cellValue === "male" || cellValue === "m") {
19
+ cellDiv.innerText = "♂";
20
+ } else if (cellValue === "female" || cellValue === "f") {
21
+ cellDiv.innerText = "♀";
22
+ }
23
+ return undefined;
24
+ }
25
+
26
+ }
@@ -0,0 +1,57 @@
1
+ import {CellRendererIf} from "./cell-render.if";
2
+ import {DomServiceIf} from "../service/dom-service.if";
3
+ import {AreaIdent} from "../data/tablemodel/area-ident.type";
4
+ import {RendererCleanupFnType} from "./renderer-cleanup-fn.type";
5
+ import {AreaModelObjectArray} from "../data/tablemodel/areamodel/area-model-object-array";
6
+
7
+
8
+ export class NumberCellProgressBarCellRenderer<T> implements CellRendererIf {
9
+
10
+ constructor(
11
+ public maxValue: number=100,
12
+ public labelVisible:boolean = false
13
+ ) {
14
+ }
15
+
16
+ render(
17
+ cellDiv: HTMLDivElement,
18
+ rowIndex: number,
19
+ columnIndex: number,
20
+ areaIdent: AreaIdent,
21
+ _areaModel: AreaModelObjectArray<T>,
22
+ cellValue: number,
23
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
24
+
25
+ domService.addClass(cellDiv, "ge-progressbar-div");
26
+
27
+ if (!isNaN(cellValue)) {
28
+ const count: number = Number(cellValue);
29
+ const per = count * 100 / this.maxValue;
30
+ const label = this.labelVisible ? (Math.round(per) + '%'):'';
31
+
32
+ cellDiv.innerHTML = `
33
+ <div class="ge-table-label-div"
34
+ data-row-index="${rowIndex}"
35
+ data-col-index="${columnIndex}"
36
+ data-area="${areaIdent}"
37
+ title="${label}"
38
+ style="position: relative; background: transparent; width: 100%; height: 100%;">
39
+ <div class="ge-table-progress-container"
40
+ style="width:100%;height:50%;padding:0;margin-top:6px;"
41
+ data-row-index="${rowIndex}"
42
+ data-col-index="${columnIndex}"
43
+ data-area="${areaIdent}">
44
+ <div class="ge-table-progress-bar"
45
+ style="width:${per}%;height:100%;padding:0;margin:0;"
46
+ data-row-index="${rowIndex}"
47
+ data-col-index="${columnIndex}"
48
+ data-area="${areaIdent}">&nbsp;
49
+ </div>
50
+ </div>
51
+ </div>`;
52
+ }
53
+
54
+ return undefined;
55
+ }
56
+
57
+ }
@@ -0,0 +1,38 @@
1
+ import { CellRendererIf } from "./cell-render.if";
2
+ import { AreaModelIf } from "../data/tablemodel/areamodel/area-model.if";
3
+ import { DomServiceIf } from "../service/dom-service.if";
4
+ import { AreaIdent } from "../data/tablemodel/area-ident.type";
5
+ import { RendererCleanupFnType } from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class NumberCellRenderer implements CellRendererIf {
9
+
10
+ constructor(
11
+ protected min: number = Number.MIN_SAFE_INTEGER,
12
+ protected max: number = Number.MAX_SAFE_INTEGER) {
13
+ }
14
+
15
+ render(
16
+ cellDiv: HTMLDivElement,
17
+ _rowIndex: number,
18
+ _columnIndex: number,
19
+ _areaIdent: AreaIdent,
20
+ _areaModel: AreaModelIf,
21
+ cellValue: any,
22
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
23
+
24
+ if (cellValue) {
25
+ cellDiv.innerText = cellValue;
26
+ if (typeof cellValue === "string"
27
+ || isNaN(cellValue)
28
+ || cellValue < this.min
29
+ || cellValue > this.max
30
+ ) {
31
+ domService.addClass(cellDiv, "ge-cell-error");
32
+ }
33
+ }
34
+ return undefined;
35
+ }
36
+
37
+ }
38
+
@@ -0,0 +1,45 @@
1
+ import {CellRendererIf} from "./cell-render.if";
2
+ import {AreaIdent} from "../data/tablemodel/area-ident.type";
3
+ import {AreaModelIf} from "../data/tablemodel/areamodel/area-model.if";
4
+ import {DomServiceIf} from "../service/dom-service.if";
5
+ import {RendererCleanupFnType} from "./renderer-cleanup-fn.type";
6
+
7
+
8
+ export class PositiveAndNegativeNumberRenderer implements CellRendererIf {
9
+
10
+
11
+ render(
12
+ cellDiv: HTMLDivElement,
13
+ rowIndex: number,
14
+ columnIndex: number,
15
+ areaIdent: AreaIdent,
16
+ _areaModel: AreaModelIf,
17
+ cellValue: any,
18
+ domService: DomServiceIf): RendererCleanupFnType | undefined {
19
+
20
+ if (cellValue) {
21
+ cellDiv.innerHTML = `
22
+ <div
23
+ class="ge-table-label-div"
24
+ data-row-index=${rowIndex}"
25
+ data-col-index="${columnIndex}"
26
+ data-area="${areaIdent}"
27
+ style="position: relative; background: transparent; width: 100%; height: 100%;">
28
+ <div
29
+ class="ge-table-label"
30
+ data-row-index="${rowIndex}"
31
+ data-col-index="${columnIndex}"
32
+ data-area="${areaIdent}">${cellValue}</div></div>`;
33
+ const n = Number(cellValue);
34
+ if (n > 0) {
35
+ domService.addClass(cellDiv, "ge-positive-text-color");
36
+
37
+ } else if (n < 0) {
38
+ domService.addClass(cellDiv, "ge-negative-text-color");
39
+ }
40
+ }
41
+ return undefined;
42
+ }
43
+
44
+ }
45
+