@sme.up/ketchup 9.2.0 → 9.3.0

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 (690) hide show
  1. package/dist/cjs/bar.helpers-f46a5a83.js +372 -0
  2. package/dist/cjs/f-button-4caf541a.js +105 -0
  3. package/dist/cjs/{f-button-declarations-3fd791a8.js → f-button-declarations-51ef6d9a.js} +5 -5
  4. package/dist/cjs/f-cell-979c26ea.js +670 -0
  5. package/dist/cjs/f-checkbox-41864e53.js +29 -0
  6. package/dist/cjs/f-chip-8957940b.js +133 -0
  7. package/dist/cjs/f-image-e16fe10d.js +115 -0
  8. package/dist/cjs/f-paginator-utils-f2dd0322.js +1577 -0
  9. package/dist/cjs/f-text-field-2fac8078.js +216 -0
  10. package/dist/cjs/{f-text-field-mdc-4fda9705.js → f-text-field-mdc-08a06162.js} +19 -19
  11. package/dist/cjs/{index-d8e5eb5f.js → index-8f2f4159.js} +27 -7
  12. package/dist/cjs/index.cjs.js +4 -3
  13. package/dist/cjs/ketchup.cjs.js +3 -3
  14. package/dist/cjs/kup-accordion.cjs.entry.js +182 -181
  15. package/dist/cjs/kup-autocomplete_27.cjs.entry.js +14562 -14561
  16. package/dist/cjs/kup-box.cjs.entry.js +1231 -1230
  17. package/dist/cjs/kup-calendar.cjs.entry.js +376 -375
  18. package/dist/cjs/kup-card-list.cjs.entry.js +233 -232
  19. package/dist/cjs/kup-cell.cjs.entry.js +153 -152
  20. package/dist/cjs/kup-custom-task-list-header_4.cjs.entry.js +1317 -0
  21. package/dist/cjs/kup-dashboard.cjs.entry.js +369 -368
  22. package/dist/cjs/kup-dates-0e59b05d.js +782 -0
  23. package/dist/cjs/kup-drawer.cjs.entry.js +122 -121
  24. package/dist/cjs/kup-echart.cjs.entry.js +1192 -1191
  25. package/dist/cjs/kup-family-tree.cjs.entry.js +400 -399
  26. package/dist/cjs/kup-gantt_10.cjs.entry.js +1076 -0
  27. package/dist/cjs/kup-grid.cjs.entry.js +82 -81
  28. package/dist/cjs/kup-iframe.cjs.entry.js +80 -79
  29. package/dist/cjs/kup-image-list.cjs.entry.js +224 -223
  30. package/dist/cjs/kup-lazy.cjs.entry.js +162 -161
  31. package/dist/cjs/kup-magic-box.cjs.entry.js +270 -269
  32. package/dist/cjs/{kup-manager-7334c396.js → kup-manager-c63f4fb9.js} +5770 -6516
  33. package/dist/cjs/kup-nav-bar.cjs.entry.js +110 -109
  34. package/dist/cjs/kup-numeric-picker.cjs.entry.js +352 -351
  35. package/dist/cjs/kup-photo-frame.cjs.entry.js +126 -125
  36. package/dist/cjs/kup-planner-declarations-d3dec885.js +93 -0
  37. package/dist/cjs/kup-planner-renderer-helper-c2394940.js +410 -0
  38. package/dist/cjs/kup-planner-renderer.cjs.entry.js +278 -0
  39. package/dist/cjs/kup-planner-time-formatter-a74e70f0.js +93 -0
  40. package/dist/cjs/kup-planner.cjs.entry.js +718 -13596
  41. package/dist/cjs/kup-probe.cjs.entry.js +228 -227
  42. package/dist/cjs/kup-qlik.cjs.entry.js +126 -125
  43. package/dist/cjs/kup-snackbar.cjs.entry.js +102 -101
  44. package/dist/cjs/loader.cjs.js +2 -2
  45. package/dist/collection/assets/index.js +16 -0
  46. package/dist/collection/assets/planner-example-1.js +6337 -0
  47. package/dist/collection/assets/planner-example-2.js +5650 -0
  48. package/dist/collection/assets/planner-example-3.js +6548 -0
  49. package/dist/collection/assets/planner-example-4.js +28473 -0
  50. package/dist/collection/assets/planner.js +3255 -4900
  51. package/dist/collection/collection-manifest.json +16 -1
  52. package/dist/collection/components/kup-accordion/kup-accordion-declarations.js +3 -3
  53. package/dist/collection/components/kup-accordion/kup-accordion.js +423 -423
  54. package/dist/collection/components/kup-autocomplete/kup-autocomplete-declarations.js +14 -14
  55. package/dist/collection/components/kup-autocomplete/kup-autocomplete.js +882 -882
  56. package/dist/collection/components/kup-badge/kup-badge-declarations.js +3 -3
  57. package/dist/collection/components/kup-badge/kup-badge.js +262 -262
  58. package/dist/collection/components/kup-box/kup-box-declarations.js +26 -26
  59. package/dist/collection/components/kup-box/kup-box-state.js +13 -13
  60. package/dist/collection/components/kup-box/kup-box.js +2068 -2068
  61. package/dist/collection/components/kup-button/kup-button-declarations.js +11 -11
  62. package/dist/collection/components/kup-button/kup-button.js +560 -560
  63. package/dist/collection/components/kup-button-list/kup-button-list-declarations.js +6 -6
  64. package/dist/collection/components/kup-button-list/kup-button-list.e2e.js +141 -141
  65. package/dist/collection/components/kup-button-list/kup-button-list.js +497 -497
  66. package/dist/collection/components/kup-calendar/kup-calendar-declarations.js +17 -17
  67. package/dist/collection/components/kup-calendar/kup-calendar.js +681 -681
  68. package/dist/collection/components/kup-card/box/kup-card-box.js +161 -161
  69. package/dist/collection/components/kup-card/built-in/kup-card-built-in.js +6 -6
  70. package/dist/collection/components/kup-card/built-in/kup-card-calendar.js +324 -324
  71. package/dist/collection/components/kup-card/built-in/kup-card-clock.js +250 -250
  72. package/dist/collection/components/kup-card/built-in/kup-card-column-drop-menu.js +141 -141
  73. package/dist/collection/components/kup-card/built-in/kup-card-message-box.js +3 -3
  74. package/dist/collection/components/kup-card/built-in/kup-card-numeric.js +98 -98
  75. package/dist/collection/components/kup-card/collapsible/kup-card-collapsible.js +44 -44
  76. package/dist/collection/components/kup-card/dialog/kup-card-dialog.js +135 -135
  77. package/dist/collection/components/kup-card/free/kup-card-free.js +6 -6
  78. package/dist/collection/components/kup-card/kup-card-declarations.js +53 -53
  79. package/dist/collection/components/kup-card/kup-card-helper.js +155 -155
  80. package/dist/collection/components/kup-card/kup-card.js +767 -767
  81. package/dist/collection/components/kup-card/scalable/kup-card-scalable.js +174 -174
  82. package/dist/collection/components/kup-card/standard/kup-card-standard.js +474 -474
  83. package/dist/collection/components/kup-card-list/kup-card-list-declarations.js +16 -16
  84. package/dist/collection/components/kup-card-list/kup-card-list.js +676 -676
  85. package/dist/collection/components/kup-cell/kup-cell-declarations.js +4 -4
  86. package/dist/collection/components/kup-cell/kup-cell.js +382 -382
  87. package/dist/collection/components/kup-chart/kup-chart-builder.js +80 -80
  88. package/dist/collection/components/kup-chart/kup-chart-declarations.js +36 -36
  89. package/dist/collection/components/kup-chart/kup-chart.js +1043 -1043
  90. package/dist/collection/components/kup-checkbox/kup-checkbox-declarations.js +6 -6
  91. package/dist/collection/components/kup-checkbox/kup-checkbox.js +417 -417
  92. package/dist/collection/components/kup-chip/kup-chip-declarations.js +5 -5
  93. package/dist/collection/components/kup-chip/kup-chip.js +538 -538
  94. package/dist/collection/components/kup-color-picker/kup-color-picker-declarations.js +5 -5
  95. package/dist/collection/components/kup-color-picker/kup-color-picker.js +511 -511
  96. package/dist/collection/components/kup-combobox/kup-combobox-declarations.js +8 -8
  97. package/dist/collection/components/kup-combobox/kup-combobox.js +796 -796
  98. package/dist/collection/components/kup-dashboard/kup-dashboard-declarations.js +3 -3
  99. package/dist/collection/components/kup-dashboard/kup-dashboard.js +562 -562
  100. package/dist/collection/components/kup-data-table/kup-data-table-declarations.js +95 -95
  101. package/dist/collection/components/kup-data-table/kup-data-table-helper.js +729 -729
  102. package/dist/collection/components/kup-data-table/kup-data-table-state.js +33 -33
  103. package/dist/collection/components/kup-data-table/kup-data-table.js +5398 -5398
  104. package/dist/collection/components/kup-date-picker/kup-date-picker-declarations.js +8 -8
  105. package/dist/collection/components/kup-date-picker/kup-date-picker.js +796 -796
  106. package/dist/collection/components/kup-dialog/kup-dialog-declarations.js +7 -7
  107. package/dist/collection/components/kup-dialog/kup-dialog.js +451 -451
  108. package/dist/collection/components/kup-drawer/kup-drawer-declarations.js +2 -2
  109. package/dist/collection/components/kup-drawer/kup-drawer.e2e.js +6 -6
  110. package/dist/collection/components/kup-drawer/kup-drawer.js +374 -374
  111. package/dist/collection/components/kup-dropdown-button/kup-dropdown-button-declarations.js +11 -11
  112. package/dist/collection/components/kup-dropdown-button/kup-dropdown-button.js +776 -776
  113. package/dist/collection/components/kup-echart/kup-echart-declarations.js +40 -40
  114. package/dist/collection/components/kup-echart/kup-echart.js +1606 -1606
  115. package/dist/collection/components/kup-family-tree/kup-family-tree-declarations.js +8 -8
  116. package/dist/collection/components/kup-family-tree/kup-family-tree.js +789 -789
  117. package/dist/collection/components/kup-form/kup-form-declarations.js +16 -16
  118. package/dist/collection/components/kup-form/kup-form.js +694 -694
  119. package/dist/collection/components/kup-gauge/kup-gauge-declarations.js +19 -19
  120. package/dist/collection/components/kup-gauge/kup-gauge.js +730 -730
  121. package/dist/collection/components/kup-grid/kup-grid-declarations.js +3 -3
  122. package/dist/collection/components/kup-grid/kup-grid.js +238 -238
  123. package/dist/collection/components/kup-iframe/kup-iframe-declarations.js +3 -3
  124. package/dist/collection/components/kup-iframe/kup-iframe.js +268 -268
  125. package/dist/collection/components/kup-image/canvas/kup-image-canvas-declarations.js +167 -167
  126. package/dist/collection/components/kup-image/canvas/kup-image-canvas-helper.js +16 -16
  127. package/dist/collection/components/kup-image/canvas/kup-image-canvas.js +221 -221
  128. package/dist/collection/components/kup-image/kup-image-declarations.js +9 -9
  129. package/dist/collection/components/kup-image/kup-image.js +471 -471
  130. package/dist/collection/components/kup-image-list/kup-image-list-declarations.js +3 -3
  131. package/dist/collection/components/kup-image-list/kup-image-list-state.js +7 -7
  132. package/dist/collection/components/kup-image-list/kup-image-list.js +502 -502
  133. package/dist/collection/components/kup-lazy/kup-lazy-declarations.js +7 -7
  134. package/dist/collection/components/kup-lazy/kup-lazy.js +417 -417
  135. package/dist/collection/components/kup-list/kup-list-declarations.js +18 -18
  136. package/dist/collection/components/kup-list/kup-list-helper.js +105 -105
  137. package/dist/collection/components/kup-list/kup-list.js +914 -914
  138. package/dist/collection/components/kup-magic-box/kup-magic-box-declarations.js +10 -10
  139. package/dist/collection/components/kup-magic-box/kup-magic-box.js +405 -405
  140. package/dist/collection/components/kup-nav-bar/kup-nav-bar-declarations.js +7 -7
  141. package/dist/collection/components/kup-nav-bar/kup-nav-bar.js +304 -304
  142. package/dist/collection/components/kup-numeric-picker/kup-numeric-picker-declarations.js +9 -9
  143. package/dist/collection/components/kup-numeric-picker/kup-numeric-picker.js +847 -847
  144. package/dist/collection/components/kup-photo-frame/kup-photo-frame-declarations.js +3 -3
  145. package/dist/collection/components/kup-photo-frame/kup-photo-frame.js +359 -359
  146. package/dist/collection/components/kup-planner/kup-planner-declarations.js +69 -66
  147. package/dist/collection/components/kup-planner/kup-planner-helper.js +39 -39
  148. package/dist/collection/components/kup-planner/kup-planner-state.js +14 -14
  149. package/dist/collection/components/kup-planner/kup-planner.css +4 -482
  150. package/dist/collection/components/kup-planner/kup-planner.js +1777 -1675
  151. package/dist/collection/components/kup-planner/utils/custom-task-list-header.js +117 -0
  152. package/dist/collection/components/kup-planner/utils/custom-task-list-header.module.css +79 -0
  153. package/dist/collection/components/kup-planner/utils/custom-task-list-table.js +280 -0
  154. package/dist/collection/components/kup-planner/utils/custom-tool-tip.js +5 -0
  155. package/dist/collection/components/kup-planner/utils/gantt-table.module.css +88 -0
  156. package/dist/collection/components/kup-planner/utils/helpers/bar.helpers.js +328 -0
  157. package/dist/collection/components/kup-planner/utils/helpers/other.helpers.js +48 -0
  158. package/dist/collection/components/kup-planner/utils/kup-gantt/kup-gantt.css +40 -0
  159. package/dist/collection/components/kup-planner/utils/kup-gantt/kup-gantt.js +2302 -0
  160. package/dist/collection/components/kup-planner/utils/kup-gantt-calendar/kup-gantt-calendar.css +31 -0
  161. package/dist/collection/components/kup-planner/utils/kup-gantt-calendar/kup-gantt-calendar.js +466 -0
  162. package/dist/collection/components/kup-planner/utils/kup-grid-renderer/kup-grid-renderer.css +60 -0
  163. package/dist/collection/components/kup-planner/utils/kup-grid-renderer/kup-grid-renderer.js +1186 -0
  164. package/dist/collection/components/kup-planner/utils/kup-horizontal-scroll/kup-horizontal-scroll.css +36 -0
  165. package/dist/collection/components/kup-planner/utils/kup-horizontal-scroll/kup-horizontal-scroll.js +177 -0
  166. package/dist/collection/components/kup-planner/utils/kup-planner-adapted-types.js +1 -0
  167. package/dist/collection/components/kup-planner/utils/kup-planner-renderer-helper.js +396 -0
  168. package/dist/collection/components/kup-planner/utils/kup-planner-renderer.js +321 -0
  169. package/dist/collection/components/kup-planner/utils/kup-planner-time-formatter.js +87 -0
  170. package/dist/collection/components/kup-planner/utils/kup-switcher/kup-switcher.css +30 -0
  171. package/dist/collection/components/kup-planner/utils/kup-switcher/kup-switcher.js +49 -0
  172. package/dist/collection/components/kup-planner/utils/kup-task-gantt/kup-task-gantt.js +215 -0
  173. package/dist/collection/components/kup-planner/utils/kup-task-list/kup-task-list-header.js +112 -0
  174. package/dist/collection/components/kup-planner/utils/kup-task-list/kup-task-list-table.js +226 -0
  175. package/dist/collection/components/kup-planner/utils/kup-task-list/kup-task-list.css +67 -0
  176. package/dist/collection/components/kup-planner/utils/kup-task-list/kup-task-list.js +638 -0
  177. package/dist/collection/components/kup-planner/utils/kup-tooltip/kup-standard-tooltip.js +82 -0
  178. package/dist/collection/components/kup-planner/utils/kup-tooltip/kup-tooltip.css +30 -0
  179. package/dist/collection/components/kup-planner/utils/kup-tooltip/kup-tooltip.js +362 -0
  180. package/dist/collection/components/kup-planner/utils/kup-vertical-scroll/kup-vertical-scroll.css +31 -0
  181. package/dist/collection/components/kup-planner/utils/kup-vertical-scroll/kup-vertical-scroll.js +170 -0
  182. package/dist/collection/components/kup-probe/kup-probe.js +335 -335
  183. package/dist/collection/components/kup-progress-bar/kup-progress-bar-declarations.js +7 -7
  184. package/dist/collection/components/kup-progress-bar/kup-progress-bar.js +346 -346
  185. package/dist/collection/components/kup-qlik/kup-qlik.js +311 -311
  186. package/dist/collection/components/kup-radio/kup-radio-declarations.js +5 -5
  187. package/dist/collection/components/kup-radio/kup-radio.js +392 -392
  188. package/dist/collection/components/kup-rating/kup-rating-declarations.js +4 -4
  189. package/dist/collection/components/kup-rating/kup-rating.js +296 -296
  190. package/dist/collection/components/kup-snackbar/kup-snackbar-declarations.js +5 -5
  191. package/dist/collection/components/kup-snackbar/kup-snackbar.js +380 -380
  192. package/dist/collection/components/kup-spinner/kup-spinner-declarations.js +8 -8
  193. package/dist/collection/components/kup-spinner/kup-spinner.js +449 -449
  194. package/dist/collection/components/kup-state/mock-store.js +10 -10
  195. package/dist/collection/components/kup-switch/kup-switch-declarations.js +5 -5
  196. package/dist/collection/components/kup-switch/kup-switch.js +387 -387
  197. package/dist/collection/components/kup-tab-bar/kup-tab-bar-declarations.js +3 -3
  198. package/dist/collection/components/kup-tab-bar/kup-tab-bar.js +423 -423
  199. package/dist/collection/components/kup-text-field/kup-text-field-declarations.js +30 -30
  200. package/dist/collection/components/kup-text-field/kup-text-field.js +1220 -1220
  201. package/dist/collection/components/kup-time-picker/kup-time-picker-declarations.js +7 -7
  202. package/dist/collection/components/kup-time-picker/kup-time-picker.js +914 -914
  203. package/dist/collection/components/kup-tree/kup-tree-declarations.js +28 -28
  204. package/dist/collection/components/kup-tree/kup-tree-faker.js +233 -233
  205. package/dist/collection/components/kup-tree/kup-tree-state.js +13 -13
  206. package/dist/collection/components/kup-tree/kup-tree.js +2424 -2424
  207. package/dist/collection/f-components/f-button/f-button-declarations.js +5 -5
  208. package/dist/collection/f-components/f-button/f-button.js +76 -76
  209. package/dist/collection/f-components/f-cell/f-cell-declarations.js +125 -125
  210. package/dist/collection/f-components/f-cell/f-cell.js +407 -407
  211. package/dist/collection/f-components/f-checkbox/f-checkbox.js +10 -10
  212. package/dist/collection/f-components/f-chip/f-chip-declarations.js +4 -4
  213. package/dist/collection/f-components/f-chip/f-chip.js +82 -82
  214. package/dist/collection/f-components/f-image/f-image-declarations.js +1 -1
  215. package/dist/collection/f-components/f-image/f-image.js +79 -79
  216. package/dist/collection/f-components/f-paginator/f-paginator-declarations.js +2 -2
  217. package/dist/collection/f-components/f-paginator/f-paginator-utils.js +21 -21
  218. package/dist/collection/f-components/f-paginator/f-paginator.js +65 -65
  219. package/dist/collection/f-components/f-progress-bar/f-progress-bar.js +70 -70
  220. package/dist/collection/f-components/f-radio/f-radio.js +21 -21
  221. package/dist/collection/f-components/f-rating/f-rating.js +17 -17
  222. package/dist/collection/f-components/f-switch/f-switch.js +6 -6
  223. package/dist/collection/f-components/f-text-field/f-text-field-mdc.js +19 -19
  224. package/dist/collection/f-components/f-text-field/f-text-field.js +165 -165
  225. package/dist/collection/index.js +1 -1
  226. package/dist/collection/managers/kup-data/kup-data-cell-helper.js +47 -47
  227. package/dist/collection/managers/kup-data/kup-data-column-helper.js +220 -220
  228. package/dist/collection/managers/kup-data/kup-data-declarations.js +4 -4
  229. package/dist/collection/managers/kup-data/kup-data-node-helper.js +107 -107
  230. package/dist/collection/managers/kup-data/kup-data-row-helper.js +11 -11
  231. package/dist/collection/managers/kup-data/kup-data.js +468 -468
  232. package/dist/collection/managers/kup-dates/kup-dates-declarations.js +19 -19
  233. package/dist/collection/managers/kup-dates/kup-dates.js +637 -605
  234. package/dist/collection/managers/kup-debug/kup-debug-declarations.js +8 -8
  235. package/dist/collection/managers/kup-debug/kup-debug.js +626 -626
  236. package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position-declarations.js +9 -9
  237. package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position.js +232 -232
  238. package/dist/collection/managers/kup-interact/kup-interact-declarations.js +11 -11
  239. package/dist/collection/managers/kup-interact/kup-interact.js +374 -374
  240. package/dist/collection/managers/kup-language/kup-language-declarations.js +127 -127
  241. package/dist/collection/managers/kup-language/kup-language.js +132 -132
  242. package/dist/collection/managers/kup-manager/kup-manager.js +257 -257
  243. package/dist/collection/managers/kup-math/kup-math-declarations.js +7 -7
  244. package/dist/collection/managers/kup-math/kup-math-helper.js +19 -19
  245. package/dist/collection/managers/kup-math/kup-math.js +374 -374
  246. package/dist/collection/managers/kup-objects/kup-objects.js +379 -379
  247. package/dist/collection/managers/kup-scroll-on-hover/kup-scroll-on-hover-declarations.js +4 -4
  248. package/dist/collection/managers/kup-scroll-on-hover/kup-scroll-on-hover.js +301 -301
  249. package/dist/collection/managers/kup-search/kup-search.js +65 -65
  250. package/dist/collection/managers/kup-theme/kup-theme-declarations.js +134 -134
  251. package/dist/collection/managers/kup-theme/kup-theme.js +696 -696
  252. package/dist/collection/managers/kup-toolbar/kup-toolbar-declarations.js +3 -3
  253. package/dist/collection/managers/kup-toolbar/kup-toolbar.js +93 -93
  254. package/dist/collection/managers/kup-tooltip/kup-tooltip.js +198 -198
  255. package/dist/collection/types/GenericTypes.js +47 -47
  256. package/dist/collection/utils/cell-utils.js +115 -115
  257. package/dist/collection/utils/filters/filters-column-menu.js +339 -339
  258. package/dist/collection/utils/filters/filters-declarations.js +4 -4
  259. package/dist/collection/utils/filters/filters-rows.js +215 -215
  260. package/dist/collection/utils/filters/filters-tree-items.js +96 -96
  261. package/dist/collection/utils/filters/filters.js +257 -257
  262. package/dist/collection/utils/kup-column-menu/kup-column-menu-declarations.js +14 -14
  263. package/dist/collection/utils/kup-column-menu/kup-column-menu.js +710 -710
  264. package/dist/collection/utils/utils.js +37 -37
  265. package/dist/components/custom-task-list-header.js +44 -0
  266. package/dist/components/custom-task-list-table.js +121 -0
  267. package/dist/components/index.js +1 -1
  268. package/dist/components/kup-accordion.d.ts +2 -2
  269. package/dist/components/kup-accordion.js +331 -331
  270. package/dist/components/kup-autocomplete.d.ts +2 -2
  271. package/dist/components/kup-autocomplete2.js +21534 -21533
  272. package/dist/components/kup-badge.d.ts +2 -2
  273. package/dist/components/kup-box.d.ts +2 -2
  274. package/dist/components/kup-box2.js +1416 -1416
  275. package/dist/components/kup-button-list.d.ts +2 -2
  276. package/dist/components/kup-button.d.ts +2 -2
  277. package/dist/components/kup-calendar.d.ts +2 -2
  278. package/dist/components/kup-calendar.js +534 -533
  279. package/dist/components/kup-card-list.d.ts +2 -2
  280. package/dist/components/kup-card-list.js +401 -401
  281. package/dist/components/kup-card.d.ts +2 -2
  282. package/dist/components/kup-cell.d.ts +2 -2
  283. package/dist/components/kup-cell.js +303 -303
  284. package/dist/components/kup-chart.d.ts +2 -2
  285. package/dist/components/kup-checkbox.d.ts +2 -2
  286. package/dist/components/kup-chip.d.ts +2 -2
  287. package/dist/components/kup-color-picker.d.ts +2 -2
  288. package/dist/components/kup-combobox.d.ts +2 -2
  289. package/dist/components/kup-custom-task-list-header.d.ts +11 -0
  290. package/dist/components/kup-custom-task-list-header.js +6 -0
  291. package/dist/components/kup-custom-task-list-table.d.ts +11 -0
  292. package/dist/components/kup-custom-task-list-table.js +6 -0
  293. package/dist/components/kup-dashboard.d.ts +2 -2
  294. package/dist/components/kup-dashboard.js +520 -520
  295. package/dist/components/kup-data-table.d.ts +2 -2
  296. package/dist/components/kup-date-picker.d.ts +2 -2
  297. package/dist/components/kup-dates.js +777 -0
  298. package/dist/components/kup-dialog.d.ts +2 -2
  299. package/dist/components/kup-drawer.d.ts +2 -2
  300. package/dist/components/kup-drawer.js +278 -278
  301. package/dist/components/kup-dropdown-button.d.ts +2 -2
  302. package/dist/components/kup-echart.d.ts +2 -2
  303. package/dist/components/kup-echart2.js +1358 -1358
  304. package/dist/components/kup-family-tree.d.ts +2 -2
  305. package/dist/components/kup-family-tree.js +564 -564
  306. package/dist/components/kup-form.d.ts +2 -2
  307. package/dist/components/kup-gantt-calendar.d.ts +11 -0
  308. package/dist/components/kup-gantt-calendar.js +6 -0
  309. package/dist/components/kup-gantt-calendar2.js +323 -0
  310. package/dist/components/kup-gantt.d.ts +11 -0
  311. package/dist/components/kup-gantt.js +6 -0
  312. package/dist/components/kup-gantt2.js +822 -0
  313. package/dist/components/kup-gauge.d.ts +2 -2
  314. package/dist/components/kup-grid-renderer.d.ts +11 -0
  315. package/dist/components/kup-grid-renderer.js +6 -0
  316. package/dist/components/kup-grid-renderer2.js +1416 -0
  317. package/dist/components/kup-grid.d.ts +2 -2
  318. package/dist/components/kup-grid2.js +236 -236
  319. package/dist/components/kup-horizontal-scroll.d.ts +11 -0
  320. package/dist/components/kup-horizontal-scroll.js +6 -0
  321. package/dist/components/kup-horizontal-scroll2.js +77 -0
  322. package/dist/components/kup-iframe.d.ts +2 -2
  323. package/dist/components/kup-iframe.js +234 -234
  324. package/dist/components/kup-image-list.d.ts +2 -2
  325. package/dist/components/kup-image-list.js +377 -377
  326. package/dist/components/kup-image.d.ts +2 -2
  327. package/dist/components/kup-lazy.d.ts +2 -2
  328. package/dist/components/kup-lazy.js +319 -319
  329. package/dist/components/kup-list.d.ts +2 -2
  330. package/dist/components/kup-magic-box.d.ts +2 -2
  331. package/dist/components/kup-magic-box.js +432 -432
  332. package/dist/components/kup-manager.js +5748 -6491
  333. package/dist/components/kup-nav-bar.d.ts +2 -2
  334. package/dist/components/kup-nav-bar.js +263 -263
  335. package/dist/components/kup-numeric-picker.d.ts +2 -2
  336. package/dist/components/kup-numeric-picker.js +514 -514
  337. package/dist/components/kup-photo-frame.d.ts +2 -2
  338. package/dist/components/kup-photo-frame.js +281 -281
  339. package/dist/components/kup-planner-renderer-helper.js +399 -0
  340. package/dist/components/kup-planner-renderer.d.ts +11 -0
  341. package/dist/components/kup-planner-renderer.js +6 -0
  342. package/dist/components/kup-planner-renderer2.js +390 -0
  343. package/dist/components/kup-planner.d.ts +2 -2
  344. package/dist/components/kup-planner.js +1005 -13792
  345. package/dist/components/kup-probe.d.ts +2 -2
  346. package/dist/components/kup-probe.js +379 -379
  347. package/dist/components/kup-progress-bar.d.ts +2 -2
  348. package/dist/components/kup-qlik.d.ts +2 -2
  349. package/dist/components/kup-qlik.js +282 -282
  350. package/dist/components/kup-radio.d.ts +2 -2
  351. package/dist/components/kup-rating.d.ts +2 -2
  352. package/dist/components/kup-snackbar.d.ts +2 -2
  353. package/dist/components/kup-snackbar.js +257 -257
  354. package/dist/components/kup-spinner.d.ts +2 -2
  355. package/dist/components/kup-standard-tooltip.d.ts +11 -0
  356. package/dist/components/kup-standard-tooltip.js +6 -0
  357. package/dist/components/kup-standard-tooltip2.js +37 -0
  358. package/dist/components/kup-switch.d.ts +2 -2
  359. package/dist/components/kup-switcher.d.ts +11 -0
  360. package/dist/components/kup-switcher.js +6 -0
  361. package/dist/components/kup-switcher2.js +36 -0
  362. package/dist/components/kup-tab-bar.d.ts +2 -2
  363. package/dist/components/kup-task-gantt.d.ts +11 -0
  364. package/dist/components/kup-task-gantt.js +6 -0
  365. package/dist/components/kup-task-gantt2.js +91 -0
  366. package/dist/components/kup-task-list-header.d.ts +11 -0
  367. package/dist/components/kup-task-list-header.js +6 -0
  368. package/dist/components/kup-task-list-header2.js +55 -0
  369. package/dist/components/kup-task-list-table.d.ts +11 -0
  370. package/dist/components/kup-task-list-table.js +6 -0
  371. package/dist/components/kup-task-list-table2.js +79 -0
  372. package/dist/components/kup-task-list.d.ts +11 -0
  373. package/dist/components/kup-task-list.js +6 -0
  374. package/dist/components/kup-task-list2.js +260 -0
  375. package/dist/components/kup-text-field.d.ts +2 -2
  376. package/dist/components/kup-time-picker.d.ts +2 -2
  377. package/dist/components/kup-tooltip.d.ts +11 -0
  378. package/dist/components/kup-tooltip.js +6 -0
  379. package/dist/components/kup-tooltip2.js +127 -0
  380. package/dist/components/kup-tree.d.ts +2 -2
  381. package/dist/components/kup-vertical-scroll.d.ts +11 -0
  382. package/dist/components/kup-vertical-scroll.js +6 -0
  383. package/dist/components/kup-vertical-scroll2.js +77 -0
  384. package/dist/esm/bar.helpers-0898efb9.js +363 -0
  385. package/dist/esm/f-button-5ccc2e50.js +103 -0
  386. package/dist/esm/{f-button-declarations-8a009df1.js → f-button-declarations-9bdc6f26.js} +5 -5
  387. package/dist/esm/f-cell-6f4290b2.js +664 -0
  388. package/dist/esm/f-checkbox-43481de2.js +27 -0
  389. package/dist/esm/f-chip-465aa432.js +131 -0
  390. package/dist/esm/f-image-c5063342.js +113 -0
  391. package/dist/esm/f-paginator-utils-6903534b.js +1564 -0
  392. package/dist/esm/f-text-field-28b2b26d.js +214 -0
  393. package/dist/esm/{f-text-field-mdc-1143cf21.js → f-text-field-mdc-c88bf688.js} +19 -19
  394. package/dist/esm/{index-99c17b08.js → index-59f83f91.js} +27 -8
  395. package/dist/esm/index.js +4 -3
  396. package/dist/esm/ketchup.js +4 -4
  397. package/dist/esm/kup-accordion.entry.js +182 -181
  398. package/dist/esm/kup-autocomplete_27.entry.js +14562 -14561
  399. package/dist/esm/kup-box.entry.js +1231 -1230
  400. package/dist/esm/kup-calendar.entry.js +376 -375
  401. package/dist/esm/kup-card-list.entry.js +233 -232
  402. package/dist/esm/kup-cell.entry.js +153 -152
  403. package/dist/esm/kup-custom-task-list-header_4.entry.js +1310 -0
  404. package/dist/esm/kup-dashboard.entry.js +369 -368
  405. package/dist/esm/kup-dates-15f89ea2.js +777 -0
  406. package/dist/esm/kup-drawer.entry.js +122 -121
  407. package/dist/esm/kup-echart.entry.js +1192 -1191
  408. package/dist/esm/kup-family-tree.entry.js +400 -399
  409. package/dist/esm/kup-gantt_10.entry.js +1063 -0
  410. package/dist/esm/kup-grid.entry.js +82 -81
  411. package/dist/esm/kup-iframe.entry.js +80 -79
  412. package/dist/esm/kup-image-list.entry.js +224 -223
  413. package/dist/esm/kup-lazy.entry.js +162 -161
  414. package/dist/esm/kup-magic-box.entry.js +270 -269
  415. package/dist/esm/{kup-manager-9a9d2dbb.js → kup-manager-bfea4e6f.js} +5749 -6492
  416. package/dist/esm/kup-nav-bar.entry.js +110 -109
  417. package/dist/esm/kup-numeric-picker.entry.js +352 -351
  418. package/dist/esm/kup-photo-frame.entry.js +126 -125
  419. package/dist/esm/kup-planner-declarations-b9345758.js +88 -0
  420. package/dist/esm/kup-planner-renderer-helper-2143d119.js +399 -0
  421. package/dist/esm/kup-planner-renderer.entry.js +274 -0
  422. package/dist/esm/kup-planner-time-formatter-a68e05ba.js +89 -0
  423. package/dist/esm/kup-planner.entry.js +718 -13596
  424. package/dist/esm/kup-probe.entry.js +228 -227
  425. package/dist/esm/kup-qlik.entry.js +126 -125
  426. package/dist/esm/kup-snackbar.entry.js +102 -101
  427. package/dist/esm/loader.js +3 -3
  428. package/dist/ketchup/index.esm.js +1 -1
  429. package/dist/ketchup/ketchup.esm.js +1 -1
  430. package/dist/ketchup/p-01a0b54c.js +1 -0
  431. package/dist/ketchup/{p-6a7df3d2.js → p-097500fe.js} +1 -1
  432. package/dist/ketchup/p-0cb5e9ae.entry.js +1 -0
  433. package/dist/ketchup/p-0f91d4de.entry.js +1 -0
  434. package/dist/ketchup/p-1872c92e.entry.js +1 -0
  435. package/dist/ketchup/p-20aa95ae.entry.js +1 -0
  436. package/dist/ketchup/{p-4e696daf.js → p-21c640a5.js} +1 -1
  437. package/dist/ketchup/p-4bc3b3a6.js +29 -0
  438. package/dist/ketchup/{p-ea56edbe.js → p-4c1ec006.js} +1 -1
  439. package/dist/ketchup/p-51f9b230.entry.js +1 -0
  440. package/dist/ketchup/p-612b46da.entry.js +1 -0
  441. package/dist/ketchup/p-69287f4a.entry.js +1 -0
  442. package/dist/ketchup/p-71acfd3c.entry.js +1 -0
  443. package/dist/ketchup/p-7a72c4fa.entry.js +1 -0
  444. package/dist/ketchup/p-7c5a1357.entry.js +1 -0
  445. package/dist/ketchup/p-829d7060.entry.js +1 -0
  446. package/dist/ketchup/p-84be8f0b.js +1 -0
  447. package/dist/ketchup/p-85279516.entry.js +9 -0
  448. package/dist/ketchup/p-8591ac0b.entry.js +1 -0
  449. package/dist/ketchup/p-8c3ad5ef.entry.js +1 -0
  450. package/dist/ketchup/p-8e180c01.entry.js +1 -0
  451. package/dist/ketchup/p-8e3b6de8.js +1 -0
  452. package/dist/ketchup/p-8ecdd076.entry.js +1 -0
  453. package/dist/ketchup/p-903d1b10.entry.js +1 -0
  454. package/dist/ketchup/p-924b841b.js +1 -0
  455. package/dist/ketchup/p-95272714.entry.js +1 -0
  456. package/dist/ketchup/p-b07ffd18.entry.js +16 -0
  457. package/dist/ketchup/p-c23731ca.js +1 -0
  458. package/dist/ketchup/p-cd9a4274.js +2 -0
  459. package/dist/ketchup/{p-34e4a985.js → p-ce9ef2d5.js} +1 -1
  460. package/dist/ketchup/{p-f1f82eef.entry.js → p-d7b8295a.entry.js} +1 -1
  461. package/dist/ketchup/p-db93bc06.entry.js +1 -0
  462. package/dist/ketchup/p-e46470a6.entry.js +1 -0
  463. package/dist/ketchup/p-e841c2ae.js +1 -0
  464. package/dist/ketchup/p-eae42bff.entry.js +1 -0
  465. package/dist/ketchup/p-ee6305f5.js +1 -0
  466. package/dist/ketchup/p-f1efab38.entry.js +1 -0
  467. package/dist/ketchup/p-f2df4ce9.entry.js +1 -0
  468. package/dist/ketchup/{p-7a876328.js → p-f51dbf68.js} +1 -1
  469. package/dist/types/components/kup-accordion/kup-accordion-declarations.d.ts +5 -5
  470. package/dist/types/components/kup-accordion/kup-accordion.d.ts +75 -75
  471. package/dist/types/components/kup-autocomplete/kup-autocomplete-declarations.d.ts +18 -18
  472. package/dist/types/components/kup-autocomplete/kup-autocomplete.d.ts +113 -113
  473. package/dist/types/components/kup-badge/kup-badge-declarations.d.ts +3 -3
  474. package/dist/types/components/kup-badge/kup-badge.d.ts +47 -47
  475. package/dist/types/components/kup-box/kup-box-declarations.d.ts +70 -70
  476. package/dist/types/components/kup-box/kup-box-state.d.ts +7 -7
  477. package/dist/types/components/kup-box/kup-box.d.ts +262 -262
  478. package/dist/types/components/kup-button/kup-button-declarations.d.ts +12 -12
  479. package/dist/types/components/kup-button/kup-button.d.ts +105 -105
  480. package/dist/types/components/kup-button-list/kup-button-list-declarations.d.ts +11 -11
  481. package/dist/types/components/kup-button-list/kup-button-list.d.ts +75 -75
  482. package/dist/types/components/kup-calendar/kup-calendar-declarations.d.ts +32 -32
  483. package/dist/types/components/kup-calendar/kup-calendar.d.ts +100 -100
  484. package/dist/types/components/kup-card/kup-card-declarations.d.ts +123 -123
  485. package/dist/types/components/kup-card/kup-card.d.ts +154 -154
  486. package/dist/types/components/kup-card-list/kup-card-list-declarations.d.ts +20 -20
  487. package/dist/types/components/kup-card-list/kup-card-list.d.ts +107 -107
  488. package/dist/types/components/kup-cell/kup-cell-declarations.d.ts +4 -4
  489. package/dist/types/components/kup-cell/kup-cell.d.ts +62 -62
  490. package/dist/types/components/kup-chart/kup-chart-builder.d.ts +2 -2
  491. package/dist/types/components/kup-chart/kup-chart-declarations.d.ts +99 -99
  492. package/dist/types/components/kup-chart/kup-chart.d.ts +164 -164
  493. package/dist/types/components/kup-checkbox/kup-checkbox-declarations.d.ts +8 -8
  494. package/dist/types/components/kup-checkbox/kup-checkbox.d.ts +80 -80
  495. package/dist/types/components/kup-chip/kup-chip-declarations.d.ts +8 -8
  496. package/dist/types/components/kup-chip/kup-chip.d.ts +82 -82
  497. package/dist/types/components/kup-color-picker/kup-color-picker-declarations.d.ts +6 -6
  498. package/dist/types/components/kup-color-picker/kup-color-picker.d.ts +83 -83
  499. package/dist/types/components/kup-combobox/kup-combobox-declarations.d.ts +12 -12
  500. package/dist/types/components/kup-combobox/kup-combobox.d.ts +89 -89
  501. package/dist/types/components/kup-dashboard/kup-dashboard-declarations.d.ts +28 -28
  502. package/dist/types/components/kup-dashboard/kup-dashboard.d.ts +74 -74
  503. package/dist/types/components/kup-data-table/kup-data-table-declarations.d.ts +156 -156
  504. package/dist/types/components/kup-data-table/kup-data-table-helper.d.ts +2 -2
  505. package/dist/types/components/kup-data-table/kup-data-table-state.d.ts +31 -31
  506. package/dist/types/components/kup-data-table/kup-data-table.d.ts +441 -441
  507. package/dist/types/components/kup-date-picker/kup-date-picker-declarations.d.ts +9 -9
  508. package/dist/types/components/kup-date-picker/kup-date-picker.d.ts +105 -105
  509. package/dist/types/components/kup-dialog/kup-dialog-declarations.d.ts +12 -12
  510. package/dist/types/components/kup-dialog/kup-dialog.d.ts +72 -72
  511. package/dist/types/components/kup-drawer/kup-drawer-declarations.d.ts +2 -2
  512. package/dist/types/components/kup-drawer/kup-drawer.d.ts +70 -70
  513. package/dist/types/components/kup-dropdown-button/kup-dropdown-button-declarations.d.ts +12 -12
  514. package/dist/types/components/kup-dropdown-button/kup-dropdown-button.d.ts +154 -154
  515. package/dist/types/components/kup-echart/kup-echart-declarations.d.ts +48 -48
  516. package/dist/types/components/kup-echart/kup-echart.d.ts +103 -103
  517. package/dist/types/components/kup-family-tree/kup-family-tree-declarations.d.ts +20 -20
  518. package/dist/types/components/kup-family-tree/kup-family-tree.d.ts +82 -82
  519. package/dist/types/components/kup-form/kup-form-declarations.d.ts +40 -40
  520. package/dist/types/components/kup-form/kup-form.d.ts +78 -78
  521. package/dist/types/components/kup-gauge/kup-gauge-declarations.d.ts +19 -19
  522. package/dist/types/components/kup-gauge/kup-gauge.d.ts +144 -144
  523. package/dist/types/components/kup-grid/kup-grid-declarations.d.ts +3 -3
  524. package/dist/types/components/kup-grid/kup-grid.d.ts +45 -45
  525. package/dist/types/components/kup-iframe/kup-iframe-declarations.d.ts +3 -3
  526. package/dist/types/components/kup-iframe/kup-iframe.d.ts +45 -45
  527. package/dist/types/components/kup-image/canvas/kup-image-canvas-declarations.d.ts +19 -19
  528. package/dist/types/components/kup-image/canvas/kup-image-canvas.d.ts +25 -25
  529. package/dist/types/components/kup-image/kup-image-declarations.d.ts +10 -10
  530. package/dist/types/components/kup-image/kup-image.d.ts +96 -96
  531. package/dist/types/components/kup-image-list/kup-image-list-declarations.d.ts +4 -4
  532. package/dist/types/components/kup-image-list/kup-image-list-state.d.ts +3 -3
  533. package/dist/types/components/kup-image-list/kup-image-list.d.ts +64 -64
  534. package/dist/types/components/kup-lazy/kup-lazy-declarations.d.ts +7 -7
  535. package/dist/types/components/kup-lazy/kup-lazy.d.ts +73 -73
  536. package/dist/types/components/kup-list/kup-list-declarations.d.ts +23 -23
  537. package/dist/types/components/kup-list/kup-list.d.ts +122 -122
  538. package/dist/types/components/kup-magic-box/kup-magic-box-declarations.d.ts +10 -10
  539. package/dist/types/components/kup-magic-box/kup-magic-box.d.ts +60 -60
  540. package/dist/types/components/kup-nav-bar/kup-nav-bar-declarations.d.ts +7 -7
  541. package/dist/types/components/kup-nav-bar/kup-nav-bar.d.ts +60 -60
  542. package/dist/types/components/kup-numeric-picker/kup-numeric-picker-declarations.d.ts +10 -10
  543. package/dist/types/components/kup-numeric-picker/kup-numeric-picker.d.ts +116 -116
  544. package/dist/types/components/kup-photo-frame/kup-photo-frame-declarations.d.ts +3 -3
  545. package/dist/types/components/kup-photo-frame/kup-photo-frame.d.ts +57 -57
  546. package/dist/types/components/kup-planner/kup-planner-declarations.d.ts +592 -96
  547. package/dist/types/components/kup-planner/kup-planner-state.d.ts +9 -9
  548. package/dist/types/components/kup-planner/kup-planner.d.ts +269 -259
  549. package/dist/types/components/kup-planner/utils/custom-task-list-header.d.ts +8 -0
  550. package/dist/types/components/kup-planner/utils/custom-task-list-table.d.ts +14 -0
  551. package/dist/types/components/kup-planner/utils/custom-tool-tip.d.ts +2 -0
  552. package/dist/types/components/kup-planner/utils/helpers/bar.helpers.d.ts +33 -0
  553. package/dist/types/components/kup-planner/utils/helpers/other.helpers.d.ts +6 -0
  554. package/dist/types/components/kup-planner/utils/kup-gantt/kup-gantt.d.ts +127 -0
  555. package/dist/types/components/kup-planner/utils/kup-gantt-calendar/kup-gantt-calendar.d.ts +27 -0
  556. package/dist/types/components/kup-planner/utils/kup-grid-renderer/kup-grid-renderer.d.ts +59 -0
  557. package/dist/types/components/kup-planner/utils/kup-horizontal-scroll/kup-horizontal-scroll.d.ts +17 -0
  558. package/dist/types/components/kup-planner/utils/kup-planner-adapted-types.d.ts +28 -0
  559. package/dist/types/components/kup-planner/utils/kup-planner-renderer-helper.d.ts +36 -0
  560. package/dist/types/components/kup-planner/utils/kup-planner-renderer.d.ts +33 -0
  561. package/dist/types/components/kup-planner/utils/kup-planner-time-formatter.d.ts +20 -0
  562. package/dist/types/components/kup-planner/utils/kup-switcher/kup-switcher.d.ts +5 -0
  563. package/dist/types/components/kup-planner/utils/kup-task-gantt/kup-task-gantt.d.ts +20 -0
  564. package/dist/types/components/kup-planner/utils/kup-task-list/kup-task-list-header.d.ts +7 -0
  565. package/dist/types/components/kup-planner/utils/kup-task-list/kup-task-list-table.d.ts +16 -0
  566. package/dist/types/components/kup-planner/utils/kup-task-list/kup-task-list.d.ts +40 -0
  567. package/dist/types/components/kup-planner/utils/kup-tooltip/kup-standard-tooltip.d.ts +7 -0
  568. package/dist/types/components/kup-planner/utils/kup-tooltip/kup-tooltip.d.ts +26 -0
  569. package/dist/types/components/kup-planner/utils/kup-vertical-scroll/kup-vertical-scroll.d.ts +16 -0
  570. package/dist/types/components/kup-probe/kup-probe.d.ts +70 -70
  571. package/dist/types/components/kup-progress-bar/kup-progress-bar-declarations.d.ts +7 -7
  572. package/dist/types/components/kup-progress-bar/kup-progress-bar.d.ts +65 -65
  573. package/dist/types/components/kup-qlik/kup-qlik-declarations.d.ts +13 -13
  574. package/dist/types/components/kup-qlik/kup-qlik.d.ts +96 -96
  575. package/dist/types/components/kup-radio/kup-radio-declarations.d.ts +6 -6
  576. package/dist/types/components/kup-radio/kup-radio.d.ts +75 -75
  577. package/dist/types/components/kup-rating/kup-rating-declarations.d.ts +5 -5
  578. package/dist/types/components/kup-rating/kup-rating.d.ts +52 -52
  579. package/dist/types/components/kup-snackbar/kup-snackbar-declarations.d.ts +5 -5
  580. package/dist/types/components/kup-snackbar/kup-snackbar.d.ts +78 -78
  581. package/dist/types/components/kup-spinner/kup-spinner-declarations.d.ts +8 -8
  582. package/dist/types/components/kup-spinner/kup-spinner.d.ts +75 -75
  583. package/dist/types/components/kup-state/kup-state.d.ts +1 -1
  584. package/dist/types/components/kup-state/kup-store.d.ts +2 -2
  585. package/dist/types/components/kup-state/mock-store.d.ts +5 -5
  586. package/dist/types/components/kup-switch/kup-switch-declarations.d.ts +6 -6
  587. package/dist/types/components/kup-switch/kup-switch.d.ts +75 -75
  588. package/dist/types/components/kup-tab-bar/kup-tab-bar-declarations.d.ts +6 -6
  589. package/dist/types/components/kup-tab-bar/kup-tab-bar.d.ts +72 -72
  590. package/dist/types/components/kup-text-field/kup-text-field-declarations.d.ts +31 -31
  591. package/dist/types/components/kup-text-field/kup-text-field.d.ts +258 -258
  592. package/dist/types/components/kup-time-picker/kup-time-picker-declarations.d.ts +8 -8
  593. package/dist/types/components/kup-time-picker/kup-time-picker.d.ts +120 -120
  594. package/dist/types/components/kup-tree/kup-tree-declarations.d.ts +56 -56
  595. package/dist/types/components/kup-tree/kup-tree-faker.d.ts +15 -15
  596. package/dist/types/components/kup-tree/kup-tree-state.d.ts +9 -9
  597. package/dist/types/components/kup-tree/kup-tree.d.ts +351 -351
  598. package/dist/types/components.d.ts +637 -4
  599. package/dist/types/f-components/f-button/f-button-declarations.d.ts +24 -24
  600. package/dist/types/f-components/f-cell/f-cell-declarations.d.ts +117 -117
  601. package/dist/types/f-components/f-checkbox/f-checkbox-declarations.d.ts +9 -9
  602. package/dist/types/f-components/f-chip/f-chip-declarations.d.ts +12 -12
  603. package/dist/types/f-components/f-image/f-image-declarations.d.ts +14 -14
  604. package/dist/types/f-components/f-paginator/f-paginator-declarations.d.ts +12 -12
  605. package/dist/types/f-components/f-progress-bar/f-progress-bar-declarations.d.ts +10 -10
  606. package/dist/types/f-components/f-radio/f-radio-declarations.d.ts +11 -11
  607. package/dist/types/f-components/f-rating/f-rating-declarations.d.ts +4 -4
  608. package/dist/types/f-components/f-switch/f-switch-declarations.d.ts +8 -8
  609. package/dist/types/f-components/f-text-field/f-text-field-declarations.d.ts +38 -38
  610. package/dist/types/managers/kup-data/kup-data-cell-helper.d.ts +3 -3
  611. package/dist/types/managers/kup-data/kup-data-declarations.d.ts +88 -88
  612. package/dist/types/managers/kup-data/kup-data.d.ts +76 -76
  613. package/dist/types/managers/kup-dates/kup-dates-declarations.d.ts +19 -19
  614. package/dist/types/managers/kup-dates/kup-dates.d.ts +217 -192
  615. package/dist/types/managers/kup-debug/kup-debug-declarations.d.ts +18 -18
  616. package/dist/types/managers/kup-debug/kup-debug.d.ts +87 -87
  617. package/dist/types/managers/kup-dynamic-position/kup-dynamic-position-declarations.d.ts +19 -19
  618. package/dist/types/managers/kup-dynamic-position/kup-dynamic-position.d.ts +53 -53
  619. package/dist/types/managers/kup-interact/kup-interact-declarations.d.ts +37 -37
  620. package/dist/types/managers/kup-interact/kup-interact.d.ts +95 -95
  621. package/dist/types/managers/kup-language/kup-language-declarations.d.ts +133 -133
  622. package/dist/types/managers/kup-language/kup-language.d.ts +44 -44
  623. package/dist/types/managers/kup-manager/kup-manager-declarations.d.ts +63 -63
  624. package/dist/types/managers/kup-manager/kup-manager.d.ts +67 -67
  625. package/dist/types/managers/kup-math/kup-math-declarations.d.ts +16 -16
  626. package/dist/types/managers/kup-math/kup-math-helper.d.ts +1 -1
  627. package/dist/types/managers/kup-math/kup-math.d.ts +132 -132
  628. package/dist/types/managers/kup-objects/kup-objects-declarations.d.ts +4 -4
  629. package/dist/types/managers/kup-objects/kup-objects.d.ts +201 -201
  630. package/dist/types/managers/kup-scroll-on-hover/kup-scroll-on-hover-declarations.d.ts +16 -16
  631. package/dist/types/managers/kup-scroll-on-hover/kup-scroll-on-hover.d.ts +55 -55
  632. package/dist/types/managers/kup-search/kup-search-declarations.d.ts +1 -1
  633. package/dist/types/managers/kup-search/kup-search.d.ts +13 -13
  634. package/dist/types/managers/kup-theme/kup-theme-declarations.d.ts +99 -99
  635. package/dist/types/managers/kup-theme/kup-theme.d.ts +119 -119
  636. package/dist/types/managers/kup-toolbar/kup-toolbar-declarations.d.ts +3 -3
  637. package/dist/types/managers/kup-toolbar/kup-toolbar.d.ts +32 -32
  638. package/dist/types/managers/kup-tooltip/kup-tooltip-declarations.d.ts +4 -4
  639. package/dist/types/managers/kup-tooltip/kup-tooltip.d.ts +43 -43
  640. package/dist/types/stencil-public-runtime.d.ts +8 -0
  641. package/dist/types/types/GenericTypes.d.ts +74 -74
  642. package/dist/types/utils/filters/filters-column-menu.d.ts +86 -86
  643. package/dist/types/utils/filters/filters-declarations.d.ts +13 -13
  644. package/dist/types/utils/filters/filters-rows.d.ts +17 -17
  645. package/dist/types/utils/filters/filters-tree-items.d.ts +7 -7
  646. package/dist/types/utils/filters/filters.d.ts +62 -62
  647. package/dist/types/utils/kup-column-menu/kup-column-menu-declarations.d.ts +14 -14
  648. package/dist/types/utils/kup-column-menu/kup-column-menu.d.ts +126 -126
  649. package/package.json +12 -16
  650. package/dist/cjs/f-button-9ccadd52.js +0 -105
  651. package/dist/cjs/f-cell-3130506f.js +0 -670
  652. package/dist/cjs/f-checkbox-9d2635d9.js +0 -29
  653. package/dist/cjs/f-chip-beb7af58.js +0 -133
  654. package/dist/cjs/f-image-66a3c3c1.js +0 -115
  655. package/dist/cjs/f-paginator-utils-c475e07f.js +0 -1576
  656. package/dist/cjs/f-text-field-c74856ff.js +0 -216
  657. package/dist/esm/f-button-0bce6587.js +0 -103
  658. package/dist/esm/f-cell-88d375e1.js +0 -664
  659. package/dist/esm/f-checkbox-31219c42.js +0 -27
  660. package/dist/esm/f-chip-ef0d4130.js +0 -131
  661. package/dist/esm/f-image-727453df.js +0 -113
  662. package/dist/esm/f-paginator-utils-4524e41c.js +0 -1563
  663. package/dist/esm/f-text-field-7b4d622c.js +0 -214
  664. package/dist/ketchup/p-042e1ed0.entry.js +0 -1
  665. package/dist/ketchup/p-0dc763af.entry.js +0 -1
  666. package/dist/ketchup/p-1ae879af.entry.js +0 -1
  667. package/dist/ketchup/p-1db0c862.entry.js +0 -1
  668. package/dist/ketchup/p-20458088.js +0 -30
  669. package/dist/ketchup/p-20c1a69f.entry.js +0 -1
  670. package/dist/ketchup/p-267dd24a.entry.js +0 -9
  671. package/dist/ketchup/p-2849af6f.js +0 -1
  672. package/dist/ketchup/p-30938d5a.entry.js +0 -1
  673. package/dist/ketchup/p-4067c71b.js +0 -2
  674. package/dist/ketchup/p-61f71872.entry.js +0 -1
  675. package/dist/ketchup/p-6b33f5de.entry.js +0 -1
  676. package/dist/ketchup/p-7f64b612.entry.js +0 -1
  677. package/dist/ketchup/p-90db42e6.entry.js +0 -1
  678. package/dist/ketchup/p-9cc1c76b.entry.js +0 -1
  679. package/dist/ketchup/p-9d3d8690.js +0 -1
  680. package/dist/ketchup/p-b4ba27da.entry.js +0 -1
  681. package/dist/ketchup/p-c046fd1c.entry.js +0 -1
  682. package/dist/ketchup/p-c120043a.entry.js +0 -1
  683. package/dist/ketchup/p-d520d757.entry.js +0 -1
  684. package/dist/ketchup/p-e9bc0749.entry.js +0 -1
  685. package/dist/ketchup/p-edd88921.entry.js +0 -1
  686. package/dist/ketchup/p-f67ee60f.entry.js +0 -25
  687. package/dist/ketchup/p-f6844304.entry.js +0 -1
  688. package/dist/ketchup/p-f8213d22.entry.js +0 -1
  689. /package/dist/ketchup/{p-cd2af1a6.js → p-b3577066.js} +0 -0
  690. /package/dist/ketchup/{p-b00f3575.js → p-c634eb82.js} +0 -0
@@ -4,95 +4,95 @@ import { FiltersRows } from "../../utils/filters/filters-rows";
4
4
  import { KupDatesFormats, } from "../../managers/kup-dates/kup-dates-declarations";
5
5
  const dom = document.documentElement;
6
6
  export function sortRows(rows = [], sort = []) {
7
- if (!rows || rows.length === 0) {
8
- return [];
9
- }
10
- // check if row is group
11
- if (rows[0].group) {
12
- return sortGroupRows(rows, sort);
13
- }
14
- // sorting rows
15
- if (!sort || sort.length === 0) {
16
- // no sort -> return rows as they are
17
- return rows;
18
- }
19
- // check multiple sort
20
- const isMultiSort = sort.length > 1;
21
- // sorting rows
22
- return rows.slice(0).sort((r1, r2) => {
23
- if (isMultiSort) {
24
- for (let i = 0; i < sort.length; i++) {
25
- const compare = compareRows(r1, r2, sort[i]);
26
- if (compare !== 0) {
27
- // not same row
28
- return compare;
29
- }
30
- }
31
- // same row
32
- return 0;
7
+ if (!rows || rows.length === 0) {
8
+ return [];
33
9
  }
34
- else {
35
- return compareRows(r1, r2, sort[0]);
10
+ // check if row is group
11
+ if (rows[0].group) {
12
+ return sortGroupRows(rows, sort);
36
13
  }
37
- });
14
+ // sorting rows
15
+ if (!sort || sort.length === 0) {
16
+ // no sort -> return rows as they are
17
+ return rows;
18
+ }
19
+ // check multiple sort
20
+ const isMultiSort = sort.length > 1;
21
+ // sorting rows
22
+ return rows.slice(0).sort((r1, r2) => {
23
+ if (isMultiSort) {
24
+ for (let i = 0; i < sort.length; i++) {
25
+ const compare = compareRows(r1, r2, sort[i]);
26
+ if (compare !== 0) {
27
+ // not same row
28
+ return compare;
29
+ }
30
+ }
31
+ // same row
32
+ return 0;
33
+ }
34
+ else {
35
+ return compareRows(r1, r2, sort[0]);
36
+ }
37
+ });
38
38
  }
39
39
  function sortGroupRows(rows = [], sort = []) {
40
- if (!rows || rows.length === 0) {
41
- return [];
42
- }
43
- // getting columm group
44
- const groupColumn = rows[0].group.column;
45
- // check if column is in sort
46
- let sortObject = getSortOnColumn(groupColumn, sort);
47
- if (!sortObject) {
48
- sortObject = {
49
- column: groupColumn,
50
- sortMode: SortMode.A,
51
- };
52
- }
53
- // sorting rows
54
- rows.sort((r1, r2) => {
55
- // creating fake cells
56
- const cell1 = {
57
- obj: r1.group.obj,
58
- value: r1.group.id,
59
- };
60
- const cell2 = {
61
- obj: r2.group.obj,
62
- value: r2.group.id,
63
- };
64
- return compareCell(cell1, cell2, sortObject.sortMode);
65
- });
66
- // sorting children
67
- rows.forEach((row) => {
68
- row.group.children = sortRows(row.group.children, sort);
69
- });
70
- return rows;
40
+ if (!rows || rows.length === 0) {
41
+ return [];
42
+ }
43
+ // getting columm group
44
+ const groupColumn = rows[0].group.column;
45
+ // check if column is in sort
46
+ let sortObject = getSortOnColumn(groupColumn, sort);
47
+ if (!sortObject) {
48
+ sortObject = {
49
+ column: groupColumn,
50
+ sortMode: SortMode.A,
51
+ };
52
+ }
53
+ // sorting rows
54
+ rows.sort((r1, r2) => {
55
+ // creating fake cells
56
+ const cell1 = {
57
+ obj: r1.group.obj,
58
+ value: r1.group.id,
59
+ };
60
+ const cell2 = {
61
+ obj: r2.group.obj,
62
+ value: r2.group.id,
63
+ };
64
+ return compareCell(cell1, cell2, sortObject.sortMode);
65
+ });
66
+ // sorting children
67
+ rows.forEach((row) => {
68
+ row.group.children = sortRows(row.group.children, sort);
69
+ });
70
+ return rows;
71
71
  }
72
72
  function getSortOnColumn(column = '', sort = []) {
73
- if (!column || !sort || sort.length === 0) {
74
- return null;
75
- }
76
- for (let sortObject of sort) {
77
- if (sortObject.column === column) {
78
- return sortObject;
73
+ if (!column || !sort || sort.length === 0) {
74
+ return null;
79
75
  }
80
- }
81
- return null;
76
+ for (let sortObject of sort) {
77
+ if (sortObject.column === column) {
78
+ return sortObject;
79
+ }
80
+ }
81
+ return null;
82
82
  }
83
83
  function compareRows(r1, r2, sortObj) {
84
- const cell1 = r1.cells[sortObj.column];
85
- const cell2 = r2.cells[sortObj.column];
86
- if (!cell1 && !cell2) {
87
- return 0;
88
- }
89
- if (!cell1) {
90
- return 1;
91
- }
92
- if (!cell2) {
93
- return -1;
94
- }
95
- return compareCell(cell1, cell2, sortObj.sortMode);
84
+ const cell1 = r1.cells[sortObj.column];
85
+ const cell2 = r2.cells[sortObj.column];
86
+ if (!cell1 && !cell2) {
87
+ return 0;
88
+ }
89
+ if (!cell1) {
90
+ return 1;
91
+ }
92
+ if (!cell2) {
93
+ return -1;
94
+ }
95
+ return compareCell(cell1, cell2, sortObj.sortMode);
96
96
  }
97
97
  //-------- FILTER FUNCTIONS --------
98
98
  /**
@@ -106,702 +106,702 @@ function compareRows(r1, r2, sortObj) {
106
106
  * single filters and global filter, all controls on a single column are done in a single cycle.
107
107
  */
108
108
  export function filterRows(rows = [], filters = {}, globalFilter = '', columns = [], columnFilters, filtersRows) {
109
- if (filtersRows == null) {
110
- filtersRows = new FiltersRows();
111
- }
112
- return filtersRows.filterRows(rows, filters, globalFilter, columns, columnFilters);
109
+ if (filtersRows == null) {
110
+ filtersRows = new FiltersRows();
111
+ }
112
+ return filtersRows.filterRows(rows, filters, globalFilter, columns, columnFilters);
113
113
  }
114
114
  export function groupRows(columns = [], rows = [], groups = [], totals = {}) {
115
- if (!rows) {
116
- return [];
117
- }
118
- if (!groups || groups.length === 0 || !columns || columns.length === 0) {
119
- return rows;
120
- }
121
- // Keeps label of the valid columns
122
- const columnLabels = {};
123
- // remove invalid groups and store column labels
124
- const validGroups = groups.filter(({ column }) => {
125
- for (let { name, title } of columns) {
126
- if (name === column) {
127
- // Store label of the columns
128
- columnLabels[name] = title;
129
- return true;
130
- }
131
- }
132
- return false;
133
- });
134
- if (validGroups.length === 0) {
135
- // no valid groups
136
- return rows;
137
- }
138
- // creating root
139
- const groupRows = [];
140
- // obj used to calculate the group distinct value
141
- let distinctObj = {};
142
- rows.forEach((row) => {
143
- // getting column name from first group
144
- const columnName = validGroups[0].column;
145
- // getting row value
146
- const cell = row.cells[columnName];
147
- if (cell) {
148
- const column = getColumnByName(columns, columnName);
149
- const cellValueForDisplay = getCellValueForDisplay(column, cell);
150
- const cellValue = cell.value;
151
- let groupRow = null;
152
- // check in already in groupedRow
153
- for (let currentGroupRow of groupRows) {
154
- if (currentGroupRow.group.label === cellValueForDisplay) {
155
- groupRow = currentGroupRow;
156
- break;
157
- }
158
- }
159
- if (groupRow === null) {
160
- // create group row
161
- groupRow = {
162
- group: {
163
- id: cellValue,
164
- parent: null,
165
- column: columnName,
166
- columnLabel: columnLabels[columnName],
167
- expanded: false,
168
- label: cellValueForDisplay,
169
- children: [],
170
- obj: cell.obj,
171
- totals: {},
172
- },
173
- cells: {},
174
- };
175
- // add group to list
176
- groupRows.push(groupRow);
177
- }
178
- for (let i = 1; i < validGroups.length; i++) {
179
- const group = validGroups[i];
180
- // getting cell value
181
- const tempCell = row.cells[group.column];
182
- if (tempCell) {
183
- const column = getColumnByName(columns, group.column);
184
- const tempCellValueForDisplay = getCellValueForDisplay(column, tempCell);
185
- const tempCellValue = tempCell.value;
186
- // check if group already exists
187
- let tempGroupingRow = null;
188
- for (let j = 0; j < groupRow.group.children.length; j++) {
189
- const childGroup = groupRow.group.children[j];
190
- const groupLabel = childGroup.group.label;
191
- if (groupLabel === tempCellValueForDisplay) {
192
- tempGroupingRow = childGroup;
193
- break;
115
+ if (!rows) {
116
+ return [];
117
+ }
118
+ if (!groups || groups.length === 0 || !columns || columns.length === 0) {
119
+ return rows;
120
+ }
121
+ // Keeps label of the valid columns
122
+ const columnLabels = {};
123
+ // remove invalid groups and store column labels
124
+ const validGroups = groups.filter(({ column }) => {
125
+ for (let { name, title } of columns) {
126
+ if (name === column) {
127
+ // Store label of the columns
128
+ columnLabels[name] = title;
129
+ return true;
194
130
  }
195
- }
196
- if (!tempGroupingRow) {
197
- tempGroupingRow = {
198
- cells: {},
199
- group: {
200
- id: tempCellValue,
201
- parent: groupRow,
202
- column: group.column,
203
- columnLabel: columnLabels[group.column],
204
- children: [],
205
- expanded: false,
206
- label: tempCellValueForDisplay,
207
- totals: {},
208
- obj: tempCell.obj,
209
- },
210
- };
211
- adjustGroupId(tempGroupingRow);
212
- groupRow.group.children.push(tempGroupingRow);
213
- }
214
- groupRow = tempGroupingRow;
215
131
  }
216
- }
217
- // adding row
218
- groupRow.group.children.push(row);
219
- updateGroupTotal(groupRow, totals, row, distinctObj);
220
- }
221
- });
222
- adjustGroupsDistinct(groupRows, totals, distinctObj);
223
- adjustGroupsAverageOrFormula(groupRows, TotalMode.AVERAGE, totals);
224
- adjustGroupsAverageOrFormula(groupRows, TotalMode.MATH, totals);
225
- return groupRows;
226
- }
227
- function updateGroupTotal(groupRow, totals, addedRow, distinctObj) {
228
- if (!groupRow || !totals) {
229
- return;
230
- }
231
- const keys = Object.keys(totals);
232
- if (keys.length === 0) {
233
- return;
234
- }
235
- keys.forEach((key) => {
236
- const cell = addedRow.cells[key];
237
- if (cell) {
238
- const _isNumber = dom.ketchup.objects.isNumber(cell.obj);
239
- const totalMode = totals[key];
240
- switch (totalMode) {
241
- case TotalMode.COUNT:
242
- let currentTotalValue = groupRow.group.totals[key] || 0;
243
- groupRow.group.totals[key] = ++currentTotalValue;
244
- // updating parents
245
- let parent = groupRow.group.parent;
246
- while (parent != null) {
247
- let currentParentCount = parent.group.totals[key] || 0;
248
- parent.group.totals[key] = ++currentParentCount;
249
- parent = parent.group.parent;
250
- }
251
- break;
252
- case TotalMode.DISTINCT:
253
- let cellValue;
254
- if (_isNumber) {
255
- cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
256
- }
257
- else {
258
- cellValue = cell.value;
259
- }
260
- let distinctGroup = distinctObj[groupRow.group.id];
261
- if (!distinctGroup) {
262
- distinctObj[groupRow.group.id] = {};
263
- distinctObj[groupRow.group.id][key] = [];
264
- distinctObj[groupRow.group.id][key].push(cellValue);
265
- }
266
- else {
267
- let distinctList = distinctObj[groupRow.group.id][key];
268
- if (!distinctList) {
269
- // first round
270
- distinctObj[groupRow.group.id][key] = [];
271
- distinctObj[groupRow.group.id][key].push(cellValue);
272
- }
273
- else {
274
- // update the list
275
- distinctList.push(cellValue);
276
- }
277
- }
278
- // updating parents
279
- let distinctParent = groupRow.group.parent;
280
- while (distinctParent != null) {
281
- // get parent value
282
- let distinctGroupParent = distinctObj[distinctParent.group.id];
283
- if (!distinctGroupParent) {
284
- distinctObj[distinctParent.group.id] = {};
285
- distinctObj[distinctParent.group.id][key] = [];
286
- distinctObj[distinctParent.group.id][key].push(cellValue);
287
- }
288
- else {
289
- let distinctParentList = distinctObj[distinctParent.group.id][key];
290
- if (!distinctParentList) {
291
- // first round
292
- distinctObj[distinctParent.group.id][key] = [];
293
- distinctObj[distinctParent.group.id][key].push(cellValue);
294
- }
295
- else {
296
- // update the list
297
- distinctParentList.push(cellValue);
298
- }
299
- }
300
- // continue
301
- distinctParent = distinctParent.group.parent;
302
- }
303
- break;
304
- case TotalMode.SUM:
305
- case TotalMode.AVERAGE:
306
- if (_isNumber && cell.value) {
307
- const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
308
- const currentTotalValue = groupRow.group.totals[key] || 0;
309
- groupRow.group.totals[key] =
310
- cellValue + currentTotalValue;
311
- // updating parents
312
- let parent = groupRow.group.parent;
313
- while (parent != null) {
314
- const currentParentSum = dom.ketchup.math.numberify(parent.group.totals[key] || 0);
315
- parent.group.totals[key] =
316
- cellValue + currentParentSum;
317
- parent = parent.group.parent;
318
- }
319
- }
320
- break;
321
- // TODO DRY the MIN and MAX functions
322
- case TotalMode.MIN:
323
- if (_isNumber && cell.value) {
324
- const currentMinValue = groupRow.group.totals[key];
325
- const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
326
- if (currentMinValue) {
327
- groupRow.group.totals[key] = Math.min(currentMinValue, cellValue);
328
- }
329
- else {
330
- // first round
331
- groupRow.group.totals[key] = cellValue;
332
- }
333
- // updating parents
334
- let parent = groupRow.group.parent;
335
- while (parent != null) {
336
- const currentParentMin = parent.group.totals[key];
337
- if (currentParentMin) {
338
- parent.group.totals[key] = Math.min(currentParentMin, cellValue);
339
- }
340
- else {
341
- // first round
342
- parent.group.totals[key] = cellValue;
343
- }
344
- parent = parent.group.parent;
345
- }
346
- }
347
- else if (cell.value &&
348
- dom.ketchup.objects.isDate(cell.obj)) {
349
- const cellValue = dom.ketchup.dates.toDayjs(cell.value);
350
- if (dom.ketchup.dates.isValid(cellValue)) {
351
- const currentMinValue = groupRow.group.totals[key];
352
- if (currentMinValue) {
353
- let moments = [];
354
- moments.push(cellValue);
355
- moments.push(dom.ketchup.dates.toDayjs(currentMinValue));
356
- groupRow.group.totals[key] =
357
- dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
358
- }
359
- else {
360
- groupRow.group.totals[key] =
361
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
362
- }
363
- // updating parents
364
- let parent = groupRow.group.parent;
365
- while (parent != null) {
366
- const currentParentMin = parent.group.totals[key];
367
- if (currentParentMin) {
368
- let moments = [];
369
- moments.push(cellValue);
370
- moments.push(dom.ketchup.dates.toDayjs(currentParentMin));
371
- parent.group.totals[key] =
372
- dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
373
- }
374
- else {
375
- // first round
376
- parent.group.totals[key] =
377
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
132
+ return false;
133
+ });
134
+ if (validGroups.length === 0) {
135
+ // no valid groups
136
+ return rows;
137
+ }
138
+ // creating root
139
+ const groupRows = [];
140
+ // obj used to calculate the group distinct value
141
+ let distinctObj = {};
142
+ rows.forEach((row) => {
143
+ // getting column name from first group
144
+ const columnName = validGroups[0].column;
145
+ // getting row value
146
+ const cell = row.cells[columnName];
147
+ if (cell) {
148
+ const column = getColumnByName(columns, columnName);
149
+ const cellValueForDisplay = getCellValueForDisplay(column, cell);
150
+ const cellValue = cell.value;
151
+ let groupRow = null;
152
+ // check in already in groupedRow
153
+ for (let currentGroupRow of groupRows) {
154
+ if (currentGroupRow.group.label === cellValueForDisplay) {
155
+ groupRow = currentGroupRow;
156
+ break;
378
157
  }
379
- parent = parent.group.parent;
380
- }
381
158
  }
382
- }
383
- break;
384
- // TODO DRY the MIN and MAX functions
385
- case TotalMode.MAX:
386
- if (_isNumber && cell.value) {
387
- const currentMaxValue = groupRow.group.totals[key];
388
- const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
389
- if (currentMaxValue) {
390
- groupRow.group.totals[key] = Math.max(currentMaxValue, cellValue);
159
+ if (groupRow === null) {
160
+ // create group row
161
+ groupRow = {
162
+ group: {
163
+ id: cellValue,
164
+ parent: null,
165
+ column: columnName,
166
+ columnLabel: columnLabels[columnName],
167
+ expanded: false,
168
+ label: cellValueForDisplay,
169
+ children: [],
170
+ obj: cell.obj,
171
+ totals: {},
172
+ },
173
+ cells: {},
174
+ };
175
+ // add group to list
176
+ groupRows.push(groupRow);
391
177
  }
392
- else {
393
- // first round
394
- groupRow.group.totals[key] = cellValue;
395
- }
396
- // updating parents
397
- let parent = groupRow.group.parent;
398
- while (parent != null) {
399
- const currentParentMax = parent.group.totals[key];
400
- if (currentParentMax) {
401
- parent.group.totals[key] = Math.max(currentParentMax, cellValue);
402
- }
403
- else {
404
- // first round
405
- parent.group.totals[key] = cellValue;
406
- }
407
- parent = parent.group.parent;
408
- }
409
- }
410
- else if (cell.value &&
411
- dom.ketchup.objects.isDate(cell.obj)) {
412
- const cellValue = dom.ketchup.dates.toDayjs(cell.value);
413
- if (dom.ketchup.dates.isValid(cellValue)) {
414
- const currentMaxValue = groupRow.group.totals[key];
415
- if (currentMaxValue) {
416
- let moments = [];
417
- moments.push(cellValue);
418
- moments.push(dom.ketchup.dates.toDayjs(currentMaxValue));
419
- groupRow.group.totals[key] =
420
- dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
421
- }
422
- else {
423
- groupRow.group.totals[key] =
424
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
425
- }
426
- // updating parents
427
- let parent = groupRow.group.parent;
428
- while (parent != null) {
429
- const currentParentMax = parent.group.totals[key];
430
- if (currentParentMax) {
431
- let moments = [];
432
- moments.push(cellValue);
433
- moments.push(dom.ketchup.dates.toDayjs(currentParentMax));
434
- parent.group.totals[key] =
435
- dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
178
+ for (let i = 1; i < validGroups.length; i++) {
179
+ const group = validGroups[i];
180
+ // getting cell value
181
+ const tempCell = row.cells[group.column];
182
+ if (tempCell) {
183
+ const column = getColumnByName(columns, group.column);
184
+ const tempCellValueForDisplay = getCellValueForDisplay(column, tempCell);
185
+ const tempCellValue = tempCell.value;
186
+ // check if group already exists
187
+ let tempGroupingRow = null;
188
+ for (let j = 0; j < groupRow.group.children.length; j++) {
189
+ const childGroup = groupRow.group.children[j];
190
+ const groupLabel = childGroup.group.label;
191
+ if (groupLabel === tempCellValueForDisplay) {
192
+ tempGroupingRow = childGroup;
193
+ break;
194
+ }
195
+ }
196
+ if (!tempGroupingRow) {
197
+ tempGroupingRow = {
198
+ cells: {},
199
+ group: {
200
+ id: tempCellValue,
201
+ parent: groupRow,
202
+ column: group.column,
203
+ columnLabel: columnLabels[group.column],
204
+ children: [],
205
+ expanded: false,
206
+ label: tempCellValueForDisplay,
207
+ totals: {},
208
+ obj: tempCell.obj,
209
+ },
210
+ };
211
+ adjustGroupId(tempGroupingRow);
212
+ groupRow.group.children.push(tempGroupingRow);
213
+ }
214
+ groupRow = tempGroupingRow;
436
215
  }
437
- else {
438
- // first round
439
- parent.group.totals[key] =
440
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
441
- }
442
- parent = parent.group.parent;
443
- }
444
216
  }
445
- }
446
- break;
447
- default: {
448
- if (totalMode.indexOf(TotalMode.MATH) != 0) {
449
- console.warn(`invalid total mode: ${totalMode}`);
450
- }
451
- break;
217
+ // adding row
218
+ groupRow.group.children.push(row);
219
+ updateGroupTotal(groupRow, totals, row, distinctObj);
452
220
  }
453
- }
221
+ });
222
+ adjustGroupsDistinct(groupRows, totals, distinctObj);
223
+ adjustGroupsAverageOrFormula(groupRows, TotalMode.AVERAGE, totals);
224
+ adjustGroupsAverageOrFormula(groupRows, TotalMode.MATH, totals);
225
+ return groupRows;
226
+ }
227
+ function updateGroupTotal(groupRow, totals, addedRow, distinctObj) {
228
+ if (!groupRow || !totals) {
229
+ return;
454
230
  }
455
- });
231
+ const keys = Object.keys(totals);
232
+ if (keys.length === 0) {
233
+ return;
234
+ }
235
+ keys.forEach((key) => {
236
+ const cell = addedRow.cells[key];
237
+ if (cell) {
238
+ const _isNumber = dom.ketchup.objects.isNumber(cell.obj);
239
+ const totalMode = totals[key];
240
+ switch (totalMode) {
241
+ case TotalMode.COUNT:
242
+ let currentTotalValue = groupRow.group.totals[key] || 0;
243
+ groupRow.group.totals[key] = ++currentTotalValue;
244
+ // updating parents
245
+ let parent = groupRow.group.parent;
246
+ while (parent != null) {
247
+ let currentParentCount = parent.group.totals[key] || 0;
248
+ parent.group.totals[key] = ++currentParentCount;
249
+ parent = parent.group.parent;
250
+ }
251
+ break;
252
+ case TotalMode.DISTINCT:
253
+ let cellValue;
254
+ if (_isNumber) {
255
+ cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
256
+ }
257
+ else {
258
+ cellValue = cell.value;
259
+ }
260
+ let distinctGroup = distinctObj[groupRow.group.id];
261
+ if (!distinctGroup) {
262
+ distinctObj[groupRow.group.id] = {};
263
+ distinctObj[groupRow.group.id][key] = [];
264
+ distinctObj[groupRow.group.id][key].push(cellValue);
265
+ }
266
+ else {
267
+ let distinctList = distinctObj[groupRow.group.id][key];
268
+ if (!distinctList) {
269
+ // first round
270
+ distinctObj[groupRow.group.id][key] = [];
271
+ distinctObj[groupRow.group.id][key].push(cellValue);
272
+ }
273
+ else {
274
+ // update the list
275
+ distinctList.push(cellValue);
276
+ }
277
+ }
278
+ // updating parents
279
+ let distinctParent = groupRow.group.parent;
280
+ while (distinctParent != null) {
281
+ // get parent value
282
+ let distinctGroupParent = distinctObj[distinctParent.group.id];
283
+ if (!distinctGroupParent) {
284
+ distinctObj[distinctParent.group.id] = {};
285
+ distinctObj[distinctParent.group.id][key] = [];
286
+ distinctObj[distinctParent.group.id][key].push(cellValue);
287
+ }
288
+ else {
289
+ let distinctParentList = distinctObj[distinctParent.group.id][key];
290
+ if (!distinctParentList) {
291
+ // first round
292
+ distinctObj[distinctParent.group.id][key] = [];
293
+ distinctObj[distinctParent.group.id][key].push(cellValue);
294
+ }
295
+ else {
296
+ // update the list
297
+ distinctParentList.push(cellValue);
298
+ }
299
+ }
300
+ // continue
301
+ distinctParent = distinctParent.group.parent;
302
+ }
303
+ break;
304
+ case TotalMode.SUM:
305
+ case TotalMode.AVERAGE:
306
+ if (_isNumber && cell.value) {
307
+ const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
308
+ const currentTotalValue = groupRow.group.totals[key] || 0;
309
+ groupRow.group.totals[key] =
310
+ cellValue + currentTotalValue;
311
+ // updating parents
312
+ let parent = groupRow.group.parent;
313
+ while (parent != null) {
314
+ const currentParentSum = dom.ketchup.math.numberify(parent.group.totals[key] || 0);
315
+ parent.group.totals[key] =
316
+ cellValue + currentParentSum;
317
+ parent = parent.group.parent;
318
+ }
319
+ }
320
+ break;
321
+ // TODO DRY the MIN and MAX functions
322
+ case TotalMode.MIN:
323
+ if (_isNumber && cell.value) {
324
+ const currentMinValue = groupRow.group.totals[key];
325
+ const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
326
+ if (currentMinValue) {
327
+ groupRow.group.totals[key] = Math.min(currentMinValue, cellValue);
328
+ }
329
+ else {
330
+ // first round
331
+ groupRow.group.totals[key] = cellValue;
332
+ }
333
+ // updating parents
334
+ let parent = groupRow.group.parent;
335
+ while (parent != null) {
336
+ const currentParentMin = parent.group.totals[key];
337
+ if (currentParentMin) {
338
+ parent.group.totals[key] = Math.min(currentParentMin, cellValue);
339
+ }
340
+ else {
341
+ // first round
342
+ parent.group.totals[key] = cellValue;
343
+ }
344
+ parent = parent.group.parent;
345
+ }
346
+ }
347
+ else if (cell.value &&
348
+ dom.ketchup.objects.isDate(cell.obj)) {
349
+ const cellValue = dom.ketchup.dates.toDayjs(cell.value);
350
+ if (dom.ketchup.dates.isValid(cellValue)) {
351
+ const currentMinValue = groupRow.group.totals[key];
352
+ if (currentMinValue) {
353
+ let moments = [];
354
+ moments.push(cellValue);
355
+ moments.push(dom.ketchup.dates.toDayjs(currentMinValue));
356
+ groupRow.group.totals[key] =
357
+ dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
358
+ }
359
+ else {
360
+ groupRow.group.totals[key] =
361
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
362
+ }
363
+ // updating parents
364
+ let parent = groupRow.group.parent;
365
+ while (parent != null) {
366
+ const currentParentMin = parent.group.totals[key];
367
+ if (currentParentMin) {
368
+ let moments = [];
369
+ moments.push(cellValue);
370
+ moments.push(dom.ketchup.dates.toDayjs(currentParentMin));
371
+ parent.group.totals[key] =
372
+ dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
373
+ }
374
+ else {
375
+ // first round
376
+ parent.group.totals[key] =
377
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
378
+ }
379
+ parent = parent.group.parent;
380
+ }
381
+ }
382
+ }
383
+ break;
384
+ // TODO DRY the MIN and MAX functions
385
+ case TotalMode.MAX:
386
+ if (_isNumber && cell.value) {
387
+ const currentMaxValue = groupRow.group.totals[key];
388
+ const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
389
+ if (currentMaxValue) {
390
+ groupRow.group.totals[key] = Math.max(currentMaxValue, cellValue);
391
+ }
392
+ else {
393
+ // first round
394
+ groupRow.group.totals[key] = cellValue;
395
+ }
396
+ // updating parents
397
+ let parent = groupRow.group.parent;
398
+ while (parent != null) {
399
+ const currentParentMax = parent.group.totals[key];
400
+ if (currentParentMax) {
401
+ parent.group.totals[key] = Math.max(currentParentMax, cellValue);
402
+ }
403
+ else {
404
+ // first round
405
+ parent.group.totals[key] = cellValue;
406
+ }
407
+ parent = parent.group.parent;
408
+ }
409
+ }
410
+ else if (cell.value &&
411
+ dom.ketchup.objects.isDate(cell.obj)) {
412
+ const cellValue = dom.ketchup.dates.toDayjs(cell.value);
413
+ if (dom.ketchup.dates.isValid(cellValue)) {
414
+ const currentMaxValue = groupRow.group.totals[key];
415
+ if (currentMaxValue) {
416
+ let moments = [];
417
+ moments.push(cellValue);
418
+ moments.push(dom.ketchup.dates.toDayjs(currentMaxValue));
419
+ groupRow.group.totals[key] =
420
+ dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
421
+ }
422
+ else {
423
+ groupRow.group.totals[key] =
424
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
425
+ }
426
+ // updating parents
427
+ let parent = groupRow.group.parent;
428
+ while (parent != null) {
429
+ const currentParentMax = parent.group.totals[key];
430
+ if (currentParentMax) {
431
+ let moments = [];
432
+ moments.push(cellValue);
433
+ moments.push(dom.ketchup.dates.toDayjs(currentParentMax));
434
+ parent.group.totals[key] =
435
+ dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
436
+ }
437
+ else {
438
+ // first round
439
+ parent.group.totals[key] =
440
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
441
+ }
442
+ parent = parent.group.parent;
443
+ }
444
+ }
445
+ }
446
+ break;
447
+ default: {
448
+ if (totalMode.indexOf(TotalMode.MATH) != 0) {
449
+ console.warn(`invalid total mode: ${totalMode}`);
450
+ }
451
+ break;
452
+ }
453
+ }
454
+ }
455
+ });
456
456
  }
457
457
  function adjustGroupsDistinct(groupRows, totals, distinctObj) {
458
- if (!groupRows || !totals) {
459
- return;
460
- }
461
- const keys = Object.keys(totals);
462
- if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {
463
- return;
464
- }
465
- let toAdjustKeys = keys.filter((key) => TotalMode.DISTINCT === totals[key]);
466
- if (toAdjustKeys.length > 0) {
467
- groupRows
468
- .filter((groupRow) => groupRow.group.children.length > 0)
469
- .forEach((groupRow) => adjustGroupDistinct(groupRow, toAdjustKeys, distinctObj));
470
- }
458
+ if (!groupRows || !totals) {
459
+ return;
460
+ }
461
+ const keys = Object.keys(totals);
462
+ if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {
463
+ return;
464
+ }
465
+ let toAdjustKeys = keys.filter((key) => TotalMode.DISTINCT === totals[key]);
466
+ if (toAdjustKeys.length > 0) {
467
+ groupRows
468
+ .filter((groupRow) => groupRow.group.children.length > 0)
469
+ .forEach((groupRow) => adjustGroupDistinct(groupRow, toAdjustKeys, distinctObj));
470
+ }
471
471
  }
472
472
  function adjustGroupsAverageOrFormula(groupRows, type, totals) {
473
- if (!groupRows || !totals) {
474
- return;
475
- }
476
- const keys = Object.keys(totals);
477
- if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {
478
- return;
479
- }
480
- let toAdjustKeys;
481
- if (type == TotalMode.AVERAGE) {
482
- toAdjustKeys = keys.filter((key) => TotalMode.AVERAGE === totals[key]);
483
- }
484
- if (type == TotalMode.MATH) {
485
- toAdjustKeys = keys.filter((key) => totals[key].indexOf(TotalMode.MATH) == 0);
486
- }
487
- if (toAdjustKeys.length > 0) {
488
- groupRows
489
- .filter((groupRow) => groupRow.group.children.length > 0)
490
- .forEach((groupRow) => adjustGroupAverageOrFormula(groupRow, type, toAdjustKeys, totals));
491
- }
473
+ if (!groupRows || !totals) {
474
+ return;
475
+ }
476
+ const keys = Object.keys(totals);
477
+ if (groupRows.length === 0 || !groupRows[0].group || keys.length === 0) {
478
+ return;
479
+ }
480
+ let toAdjustKeys;
481
+ if (type == TotalMode.AVERAGE) {
482
+ toAdjustKeys = keys.filter((key) => TotalMode.AVERAGE === totals[key]);
483
+ }
484
+ if (type == TotalMode.MATH) {
485
+ toAdjustKeys = keys.filter((key) => totals[key].indexOf(TotalMode.MATH) == 0);
486
+ }
487
+ if (toAdjustKeys.length > 0) {
488
+ groupRows
489
+ .filter((groupRow) => groupRow.group.children.length > 0)
490
+ .forEach((groupRow) => adjustGroupAverageOrFormula(groupRow, type, toAdjustKeys, totals));
491
+ }
492
492
  }
493
493
  function adjustGroupDistinct(groupRow, toAdjustKeys, distinctObj) {
494
- const children = groupRow.group.children;
495
- if (children.length === 0) {
496
- return;
497
- }
498
- if (children[0].group) {
499
- children.forEach((child) => {
500
- adjustGroupDistinct(child, toAdjustKeys, distinctObj);
494
+ const children = groupRow.group.children;
495
+ if (children.length === 0) {
496
+ return;
497
+ }
498
+ if (children[0].group) {
499
+ children.forEach((child) => {
500
+ adjustGroupDistinct(child, toAdjustKeys, distinctObj);
501
+ });
502
+ }
503
+ toAdjustKeys.forEach((key) => {
504
+ const distinctList = distinctObj[groupRow.group.id][key];
505
+ groupRow.group.totals[key] = new Set(distinctList).size;
501
506
  });
502
- }
503
- toAdjustKeys.forEach((key) => {
504
- const distinctList = distinctObj[groupRow.group.id][key];
505
- groupRow.group.totals[key] = new Set(distinctList).size;
506
- });
507
507
  }
508
508
  /**
509
509
  * @returns number of 'leaf' of group
510
510
  */
511
511
  function adjustGroupAverageOrFormula(row, type, toAdjustKeys, totals) {
512
- const children = row.group.children;
513
- if (children.length === 0) {
514
- return 0;
515
- }
516
- let numberOfLeaf = 0;
517
- // check if child is a grouping row
518
- if (children[0].group) {
519
- children.forEach((child) => {
520
- numberOfLeaf += adjustGroupAverageOrFormula(child, type, toAdjustKeys, totals);
521
- });
522
- }
523
- else {
524
- numberOfLeaf = children.length;
525
- }
526
- // adjust average/formulas
527
- toAdjustKeys.forEach((key) => {
528
- if (type == TotalMode.AVERAGE) {
529
- row.group.totals[key] = row.group.totals[key] / numberOfLeaf;
512
+ const children = row.group.children;
513
+ if (children.length === 0) {
514
+ return 0;
530
515
  }
531
- if (type == TotalMode.MATH) {
532
- let formula = totals[key].substring(TotalMode.MATH.length);
533
- row.group.totals[key] = dom.ketchup.math.formulas.custom(formula, row.group.totals);
516
+ let numberOfLeaf = 0;
517
+ // check if child is a grouping row
518
+ if (children[0].group) {
519
+ children.forEach((child) => {
520
+ numberOfLeaf += adjustGroupAverageOrFormula(child, type, toAdjustKeys, totals);
521
+ });
534
522
  }
535
- });
536
- return numberOfLeaf;
537
- }
538
- export function normalizeRows(columns, rows) {
539
- if (rows) {
540
- const normalizedrows = Object.assign(rows);
541
- rows.forEach((row) => {
542
- columns.forEach((column) => {
543
- if (row.cells) {
544
- const cell = row.cells[column.name];
545
- if (cell && column.obj && !cell.obj) {
546
- // cell.obj = Object.assign(column.obj);
547
- cell.obj = {
548
- t: column.obj.t,
549
- p: column.obj.p,
550
- k: cell.value,
551
- };
552
- }
523
+ else {
524
+ numberOfLeaf = children.length;
525
+ }
526
+ // adjust average/formulas
527
+ toAdjustKeys.forEach((key) => {
528
+ if (type == TotalMode.AVERAGE) {
529
+ row.group.totals[key] = row.group.totals[key] / numberOfLeaf;
530
+ }
531
+ if (type == TotalMode.MATH) {
532
+ let formula = totals[key].substring(TotalMode.MATH.length);
533
+ row.group.totals[key] = dom.ketchup.math.formulas.custom(formula, row.group.totals);
553
534
  }
554
- });
555
535
  });
556
- return normalizedrows;
557
- }
558
- else {
559
- return undefined;
560
- }
536
+ return numberOfLeaf;
561
537
  }
562
- export function calcTotals(rows = [], totals = {}) {
563
- if (dom.ketchup.objects.isEmptyJsObject(rows) ||
564
- dom.ketchup.objects.isEmptyJsObject(totals)) {
565
- return {};
566
- }
567
- const keys = Object.keys(totals);
568
- const footerRow = {};
569
- const dateColumns = new Array();
570
- // if there are only COUNT, no need to loop on rows
571
- let onlyCount = keys.length === 0 ||
572
- keys.every((key) => totals[key] === TotalMode.COUNT);
573
- if (onlyCount) {
574
- keys.forEach((columnName) => (footerRow[columnName] = rows.length));
575
- }
576
- else {
577
- let distinctObj = {};
578
- rows.forEach((r, index, array) => {
579
- keys.filter((key) => TotalMode.COUNT !== totals[key] &&
580
- totals[key].indexOf(TotalMode.MATH) != 0).forEach((key) => {
581
- // getting cell
582
- const cell = r.cells[key];
583
- if (cell) {
584
- if (totals[key] === TotalMode.DISTINCT) {
585
- let cellValue;
586
- if (dom.ketchup.objects.isNumber(cell.obj)) {
587
- cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
588
- }
589
- else {
590
- cellValue = cell.value;
591
- }
592
- let distinctList = distinctObj[key];
593
- if (!distinctList) {
594
- // first round
595
- distinctObj[key] = [];
596
- distinctObj[key].push(cellValue);
597
- }
598
- else {
599
- // update the list
600
- distinctList.push(cellValue);
601
- }
602
- }
603
- else if (dom.ketchup.objects.isNumber(cell.obj)) {
604
- const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
605
- let currentFooterValue = footerRow[key];
606
- switch (true) {
607
- // TODO DRY the MIN and MAX functions
608
- case totals[key] === TotalMode.MIN:
609
- if (currentFooterValue) {
610
- footerRow[key] = Math.min(currentFooterValue, cellValue);
538
+ export function normalizeRows(columns, rows) {
539
+ if (rows) {
540
+ const normalizedrows = Object.assign(rows);
541
+ rows.forEach((row) => {
542
+ columns.forEach((column) => {
543
+ if (row.cells) {
544
+ const cell = row.cells[column.name];
545
+ if (cell && column.obj && !cell.obj) {
546
+ // cell.obj = Object.assign(column.obj);
547
+ cell.obj = {
548
+ t: column.obj.t,
549
+ p: column.obj.p,
550
+ k: cell.value,
551
+ };
552
+ }
611
553
  }
612
- else {
613
- footerRow[key] = cellValue;
554
+ });
555
+ });
556
+ return normalizedrows;
557
+ }
558
+ else {
559
+ return undefined;
560
+ }
561
+ }
562
+ export function calcTotals(rows = [], totals = {}) {
563
+ if (dom.ketchup.objects.isEmptyJsObject(rows) ||
564
+ dom.ketchup.objects.isEmptyJsObject(totals)) {
565
+ return {};
566
+ }
567
+ const keys = Object.keys(totals);
568
+ const footerRow = {};
569
+ const dateColumns = new Array();
570
+ // if there are only COUNT, no need to loop on rows
571
+ let onlyCount = keys.length === 0 ||
572
+ keys.every((key) => totals[key] === TotalMode.COUNT);
573
+ if (onlyCount) {
574
+ keys.forEach((columnName) => (footerRow[columnName] = rows.length));
575
+ }
576
+ else {
577
+ let distinctObj = {};
578
+ rows.forEach((r, index, array) => {
579
+ keys.filter((key) => TotalMode.COUNT !== totals[key] &&
580
+ totals[key].indexOf(TotalMode.MATH) != 0).forEach((key) => {
581
+ // getting cell
582
+ const cell = r.cells[key];
583
+ if (cell) {
584
+ if (totals[key] === TotalMode.DISTINCT) {
585
+ let cellValue;
586
+ if (dom.ketchup.objects.isNumber(cell.obj)) {
587
+ cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
588
+ }
589
+ else {
590
+ cellValue = cell.value;
591
+ }
592
+ let distinctList = distinctObj[key];
593
+ if (!distinctList) {
594
+ // first round
595
+ distinctObj[key] = [];
596
+ distinctObj[key].push(cellValue);
597
+ }
598
+ else {
599
+ // update the list
600
+ distinctList.push(cellValue);
601
+ }
602
+ }
603
+ else if (dom.ketchup.objects.isNumber(cell.obj)) {
604
+ const cellValue = dom.ketchup.math.numberify(dom.ketchup.math.numberifySafe(cell.value));
605
+ let currentFooterValue = footerRow[key];
606
+ switch (true) {
607
+ // TODO DRY the MIN and MAX functions
608
+ case totals[key] === TotalMode.MIN:
609
+ if (currentFooterValue) {
610
+ footerRow[key] = Math.min(currentFooterValue, cellValue);
611
+ }
612
+ else {
613
+ footerRow[key] = cellValue;
614
+ }
615
+ break;
616
+ case totals[key] === TotalMode.MAX:
617
+ if (currentFooterValue) {
618
+ footerRow[key] = Math.max(currentFooterValue, cellValue);
619
+ }
620
+ else {
621
+ footerRow[key] = cellValue;
622
+ }
623
+ break;
624
+ default:
625
+ // SUM
626
+ currentFooterValue = footerRow[key] || 0;
627
+ footerRow[key] =
628
+ cellValue +
629
+ dom.ketchup.math.numberify(currentFooterValue);
630
+ }
631
+ // TODO DRY the MIN and MAX functions
632
+ }
633
+ else if (dom.ketchup.objects.isDate(cell.obj)) {
634
+ if (dateColumns.indexOf(key) == -1) {
635
+ dateColumns.push(key);
636
+ }
637
+ const momentValue = dom.ketchup.dates.toDayjs(cell.value);
638
+ if (dom.ketchup.dates.isValid(momentValue)) {
639
+ const cellValue = dom.ketchup.dates.toDate(momentValue);
640
+ const currentFooterValue = footerRow[key]
641
+ ? dom.ketchup.dates.toDate(dom.ketchup.dates.toDayjs(footerRow[key]))
642
+ : null;
643
+ switch (true) {
644
+ case totals[key] === TotalMode.MIN:
645
+ if (currentFooterValue) {
646
+ let moments = [];
647
+ moments.push(cellValue);
648
+ moments.push(currentFooterValue);
649
+ footerRow[key] =
650
+ dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
651
+ }
652
+ else {
653
+ footerRow[key] =
654
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
655
+ }
656
+ break;
657
+ case totals[key] === TotalMode.MAX:
658
+ if (currentFooterValue) {
659
+ let moments = [];
660
+ moments.push(cellValue);
661
+ moments.push(currentFooterValue);
662
+ footerRow[key] =
663
+ dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
664
+ }
665
+ else {
666
+ footerRow[key] =
667
+ dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
668
+ }
669
+ break;
670
+ default:
671
+ break;
672
+ }
673
+ }
674
+ }
614
675
  }
615
- break;
616
- case totals[key] === TotalMode.MAX:
617
- if (currentFooterValue) {
618
- footerRow[key] = Math.max(currentFooterValue, cellValue);
676
+ if (index === array.length - 1 &&
677
+ totals[key] === TotalMode.DISTINCT) {
678
+ // last round
679
+ footerRow[key] = new Set(distinctObj[key]).size;
680
+ distinctObj[key] = [];
619
681
  }
620
- else {
621
- footerRow[key] = cellValue;
682
+ });
683
+ });
684
+ }
685
+ // fixing MATH, AVERAGE and COUNT
686
+ for (let key of keys) {
687
+ switch (true) {
688
+ case totals[key] === TotalMode.AVERAGE:
689
+ const sum = footerRow[key];
690
+ if (sum && rows.length > 0) {
691
+ footerRow[key] = sum / rows.length;
622
692
  }
623
693
  break;
624
- default:
625
- // SUM
626
- currentFooterValue = footerRow[key] || 0;
627
- footerRow[key] =
628
- cellValue +
629
- dom.ketchup.math.numberify(currentFooterValue);
630
- }
631
- // TODO DRY the MIN and MAX functions
632
- }
633
- else if (dom.ketchup.objects.isDate(cell.obj)) {
634
- if (dateColumns.indexOf(key) == -1) {
635
- dateColumns.push(key);
694
+ case totals[key] === TotalMode.COUNT:
695
+ footerRow[key] = rows.length;
696
+ break;
697
+ case totals[key].indexOf(TotalMode.MATH) == 0:
698
+ footerRow[key] = dom.ketchup.math.formulas.custom(totals[key].substring(TotalMode.MATH.length), footerRow);
699
+ break;
700
+ default:
701
+ break;
702
+ }
703
+ if (footerRow[key]) {
704
+ if (dateColumns.indexOf(key) != -1) {
705
+ footerRow[key] = dom.ketchup.dates.format(footerRow[key]);
636
706
  }
637
- const momentValue = dom.ketchup.dates.toDayjs(cell.value);
638
- if (dom.ketchup.dates.isValid(momentValue)) {
639
- const cellValue = dom.ketchup.dates.toDate(momentValue);
640
- const currentFooterValue = footerRow[key]
641
- ? dom.ketchup.dates.toDate(dom.ketchup.dates.toDayjs(footerRow[key]))
642
- : null;
643
- switch (true) {
644
- case totals[key] === TotalMode.MIN:
645
- if (currentFooterValue) {
646
- let moments = [];
647
- moments.push(cellValue);
648
- moments.push(currentFooterValue);
649
- footerRow[key] =
650
- dom.ketchup.dates.format(dom.ketchup.dates.min(moments), KupDatesFormats.ISO_DATE);
651
- }
652
- else {
653
- footerRow[key] =
654
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
655
- }
656
- break;
657
- case totals[key] === TotalMode.MAX:
658
- if (currentFooterValue) {
659
- let moments = [];
660
- moments.push(cellValue);
661
- moments.push(currentFooterValue);
662
- footerRow[key] =
663
- dom.ketchup.dates.format(dom.ketchup.dates.max(moments), KupDatesFormats.ISO_DATE);
664
- }
665
- else {
666
- footerRow[key] =
667
- dom.ketchup.dates.format(cellValue, KupDatesFormats.ISO_DATE);
668
- }
669
- break;
670
- default:
671
- break;
672
- }
707
+ else if (dom.ketchup.math.isNumber(footerRow[key])) {
708
+ footerRow[key] = +footerRow[key].toFixed(2);
673
709
  }
674
- }
675
- }
676
- if (index === array.length - 1 &&
677
- totals[key] === TotalMode.DISTINCT) {
678
- // last round
679
- footerRow[key] = new Set(distinctObj[key]).size;
680
- distinctObj[key] = [];
681
- }
682
- });
683
- });
684
- }
685
- // fixing MATH, AVERAGE and COUNT
686
- for (let key of keys) {
687
- switch (true) {
688
- case totals[key] === TotalMode.AVERAGE:
689
- const sum = footerRow[key];
690
- if (sum && rows.length > 0) {
691
- footerRow[key] = sum / rows.length;
692
710
  }
693
- break;
694
- case totals[key] === TotalMode.COUNT:
695
- footerRow[key] = rows.length;
696
- break;
697
- case totals[key].indexOf(TotalMode.MATH) == 0:
698
- footerRow[key] = dom.ketchup.math.formulas.custom(totals[key].substring(TotalMode.MATH.length), footerRow);
699
- break;
700
- default:
701
- break;
702
- }
703
- if (footerRow[key]) {
704
- if (dateColumns.indexOf(key) != -1) {
705
- footerRow[key] = dom.ketchup.dates.format(footerRow[key]);
706
- }
707
- else if (dom.ketchup.math.isNumber(footerRow[key])) {
708
- footerRow[key] = +footerRow[key].toFixed(2);
709
- }
710
- }
711
- }
712
- return footerRow;
711
+ }
712
+ return footerRow;
713
713
  }
714
714
  function adjustGroupId(row) {
715
- if (!row.group) {
716
- return;
717
- }
718
- let groupID = row.group.id;
719
- let parentRow = row.group.parent;
720
- while (parentRow !== null) {
721
- groupID = `${parentRow.group.id};${groupID}`;
722
- parentRow = parentRow.group.parent;
723
- }
724
- row.group.id = groupID;
715
+ if (!row.group) {
716
+ return;
717
+ }
718
+ let groupID = row.group.id;
719
+ let parentRow = row.group.parent;
720
+ while (parentRow !== null) {
721
+ groupID = `${parentRow.group.id};${groupID}`;
722
+ parentRow = parentRow.group.parent;
723
+ }
724
+ row.group.id = groupID;
725
725
  }
726
726
  export function paginateRows(rows, currentPage, rowsPerPage, areGrouped) {
727
- const start = currentPage * rowsPerPage - rowsPerPage;
728
- const end = start + Number(rowsPerPage);
729
- if (areGrouped == false) {
730
- return rows.slice(start, end);
731
- }
732
- let pagRows = [];
733
- _paginateRows(rows, pagRows, start, Number(rowsPerPage), 0);
734
- return pagRows;
727
+ const start = currentPage * rowsPerPage - rowsPerPage;
728
+ const end = start + Number(rowsPerPage);
729
+ if (areGrouped == false) {
730
+ return rows.slice(start, end);
731
+ }
732
+ let pagRows = [];
733
+ _paginateRows(rows, pagRows, start, Number(rowsPerPage), 0);
734
+ return pagRows;
735
735
  }
736
736
  function _paginateRows(rows, pagRows, start, rowsPerPage, ci) {
737
- let added = false;
738
- for (let i = 0; i < rows.length; i++) {
739
- let originalRow = rows[i];
740
- let row = cloneRow(rows[i]);
741
- if (originalRow.group != null &&
742
- originalRow.group.children != null &&
743
- originalRow.group.children.length > 0) {
744
- row.group.children = [];
745
- let retValue = _paginateRows(originalRow.group.children, row.group.children, start, rowsPerPage, ci);
746
- ci = retValue.ci;
747
- added = retValue.added;
748
- if (added == true) {
749
- pagRows[pagRows.length] = row;
750
- }
751
- }
752
- else {
753
- if (ci >= start) {
754
- pagRows[pagRows.length] = row;
755
- added = true;
756
- }
757
- ci++;
758
- }
759
- if (ci >= start + rowsPerPage) {
760
- break;
737
+ let added = false;
738
+ for (let i = 0; i < rows.length; i++) {
739
+ let originalRow = rows[i];
740
+ let row = cloneRow(rows[i]);
741
+ if (originalRow.group != null &&
742
+ originalRow.group.children != null &&
743
+ originalRow.group.children.length > 0) {
744
+ row.group.children = [];
745
+ let retValue = _paginateRows(originalRow.group.children, row.group.children, start, rowsPerPage, ci);
746
+ ci = retValue.ci;
747
+ added = retValue.added;
748
+ if (added == true) {
749
+ pagRows[pagRows.length] = row;
750
+ }
751
+ }
752
+ else {
753
+ if (ci >= start) {
754
+ pagRows[pagRows.length] = row;
755
+ added = true;
756
+ }
757
+ ci++;
758
+ }
759
+ if (ci >= start + rowsPerPage) {
760
+ break;
761
+ }
761
762
  }
762
- }
763
- return { ci: ci, added: added };
763
+ return { ci: ci, added: added };
764
764
  }
765
765
  function cloneRow(row) {
766
- if (row == null) {
767
- return null;
768
- }
769
- else {
770
- return {
771
- id: row.id,
772
- cells: Object.assign({}, row.cells),
773
- actions: row.actions ? [...row.actions] : null,
774
- group: cloneRowGroup(row.group),
775
- clonedFrom: row,
776
- readOnly: row.readOnly,
777
- cssClass: row.cssClass,
778
- };
779
- }
766
+ if (row == null) {
767
+ return null;
768
+ }
769
+ else {
770
+ return {
771
+ id: row.id,
772
+ cells: Object.assign({}, row.cells),
773
+ actions: row.actions ? [...row.actions] : null,
774
+ group: cloneRowGroup(row.group),
775
+ clonedFrom: row,
776
+ readOnly: row.readOnly,
777
+ cssClass: row.cssClass,
778
+ };
779
+ }
780
780
  }
781
781
  function cloneRows(rows) {
782
- if (rows == null) {
783
- return null;
784
- }
785
- let cloned = [];
786
- for (let i = 0; i < rows.length; i++) {
787
- cloned[cloned.length] = cloneRow(rows[i]);
788
- }
789
- return cloned;
782
+ if (rows == null) {
783
+ return null;
784
+ }
785
+ let cloned = [];
786
+ for (let i = 0; i < rows.length; i++) {
787
+ cloned[cloned.length] = cloneRow(rows[i]);
788
+ }
789
+ return cloned;
790
790
  }
791
791
  function cloneRowGroup(group) {
792
- if (group == null) {
793
- return null;
794
- }
795
- let cloned = {
796
- id: group.id,
797
- parent: Object.assign({}, group.parent),
798
- column: group.column,
799
- columnLabel: group.columnLabel,
800
- expanded: group.expanded,
801
- label: group.label,
802
- children: cloneRows(group.children),
803
- obj: Object.assign({}, group.obj),
804
- totals: Object.assign({}, group.totals),
805
- };
806
- return cloned;
792
+ if (group == null) {
793
+ return null;
794
+ }
795
+ let cloned = {
796
+ id: group.id,
797
+ parent: Object.assign({}, group.parent),
798
+ column: group.column,
799
+ columnLabel: group.columnLabel,
800
+ expanded: group.expanded,
801
+ label: group.label,
802
+ children: cloneRows(group.children),
803
+ obj: Object.assign({}, group.obj),
804
+ totals: Object.assign({}, group.totals),
805
+ };
806
+ return cloned;
807
807
  }