@sme.up/ketchup 8.0.1 → 8.1.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 (558) hide show
  1. package/dist/cjs/{GenericVariables-a9ed17ee.js → GenericVariables-9cd88034.js} +3 -3
  2. package/dist/cjs/{component-85c2bd4d.js → component-2c7ddef7.js} +91 -10
  3. package/dist/cjs/{f-button-c0ede055.js → f-button-a5f661f2.js} +99 -99
  4. package/dist/cjs/{f-button-declarations-b611587f.js → f-button-declarations-76b4fb4c.js} +16 -16
  5. package/dist/cjs/{f-cell-1c17dbac.js → f-cell-ca9e4352.js} +472 -470
  6. package/dist/cjs/{f-checkbox-1148e791.js → f-checkbox-e2c6ecef.js} +23 -23
  7. package/dist/cjs/{f-chip-bace36bb.js → f-chip-e941fa19.js} +125 -125
  8. package/dist/cjs/{f-image-22174590.js → f-image-466b724f.js} +107 -107
  9. package/dist/cjs/{f-paginator-utils-e21e1f06.js → f-paginator-utils-f775ce67.js} +1548 -1547
  10. package/dist/cjs/{f-text-field-503f2bb0.js → f-text-field-ddb47dda.js} +172 -172
  11. package/dist/cjs/{f-text-field-mdc-0e22f3e3.js → f-text-field-mdc-d38d80b5.js} +59 -60
  12. package/dist/cjs/{index-1f177abc.js → index-26fb8571.js} +78 -24
  13. package/dist/cjs/ketchup.cjs.js +3 -3
  14. package/dist/cjs/kup-accordion.cjs.entry.js +199 -200
  15. package/dist/cjs/kup-autocomplete_27.cjs.entry.js +17546 -17563
  16. package/dist/cjs/kup-box.cjs.entry.js +1294 -1232
  17. package/dist/cjs/kup-calendar.cjs.entry.js +9542 -10035
  18. package/dist/cjs/kup-cell.cjs.entry.js +172 -172
  19. package/dist/cjs/kup-dash-list.cjs.entry.js +106 -106
  20. package/dist/cjs/kup-dash_2.cjs.entry.js +162 -162
  21. package/dist/cjs/kup-dashboard.cjs.entry.js +400 -401
  22. package/dist/cjs/kup-drawer.cjs.entry.js +138 -138
  23. package/dist/cjs/kup-echart.cjs.entry.js +7145 -6598
  24. package/dist/cjs/kup-family-tree.cjs.entry.js +439 -439
  25. package/dist/cjs/kup-iframe.cjs.entry.js +94 -94
  26. package/dist/cjs/kup-image-list.cjs.entry.js +255 -256
  27. package/dist/cjs/kup-lazy.cjs.entry.js +186 -186
  28. package/dist/cjs/kup-magic-box.cjs.entry.js +298 -298
  29. package/dist/cjs/{kup-manager-b994cf71.js → kup-manager-16b684bd.js} +7273 -7126
  30. package/dist/cjs/kup-nav-bar.cjs.entry.js +130 -130
  31. package/dist/cjs/kup-numeric-picker.cjs.entry.js +367 -368
  32. package/dist/cjs/kup-photo-frame.cjs.entry.js +144 -144
  33. package/dist/cjs/kup-planner.cjs.entry.js +1151 -1009
  34. package/dist/cjs/kup-probe.cjs.entry.js +246 -246
  35. package/dist/cjs/kup-qlik.cjs.entry.js +138 -138
  36. package/dist/cjs/kup-snackbar.cjs.entry.js +116 -116
  37. package/dist/cjs/loader.cjs.js +3 -3
  38. package/dist/collection/assets/dash-list.js +466 -293
  39. package/dist/collection/assets/data-table.js +0 -44
  40. package/dist/collection/assets/index.js +4 -0
  41. package/dist/collection/assets/planner.js +8189 -0
  42. package/dist/collection/collection-manifest.json +2 -2
  43. package/dist/collection/components/kup-accordion/kup-accordion-declarations.js +10 -10
  44. package/dist/collection/components/kup-accordion/kup-accordion.js +445 -445
  45. package/dist/collection/components/kup-autocomplete/kup-autocomplete-declarations.js +27 -27
  46. package/dist/collection/components/kup-autocomplete/kup-autocomplete.js +908 -908
  47. package/dist/collection/components/kup-badge/kup-badge-declarations.js +10 -10
  48. package/dist/collection/components/kup-badge/kup-badge.js +276 -276
  49. package/dist/collection/components/kup-box/kup-box-declarations.js +34 -33
  50. package/dist/collection/components/kup-box/kup-box-state.js +15 -15
  51. package/dist/collection/components/kup-box/kup-box.js +2159 -2079
  52. package/dist/collection/components/kup-button/kup-button-declarations.js +18 -18
  53. package/dist/collection/components/kup-button/kup-button.js +580 -580
  54. package/dist/collection/components/kup-button-list/kup-button-list-declarations.js +13 -13
  55. package/dist/collection/components/kup-button-list/kup-button-list.e2e.js +144 -0
  56. package/dist/collection/components/kup-button-list/kup-button-list.js +527 -527
  57. package/dist/collection/components/kup-calendar/kup-calendar-declarations.js +35 -35
  58. package/dist/collection/components/kup-calendar/kup-calendar.css +0 -4
  59. package/dist/collection/components/kup-calendar/kup-calendar.js +690 -690
  60. package/dist/collection/components/kup-card/box/kup-card-box.js +227 -227
  61. package/dist/collection/components/kup-card/built-in/kup-card-built-in.js +56 -56
  62. package/dist/collection/components/kup-card/built-in/kup-card-calendar.js +393 -449
  63. package/dist/collection/components/kup-card/built-in/kup-card-clock.js +308 -308
  64. package/dist/collection/components/kup-card/built-in/kup-card-column-drop-menu.js +165 -165
  65. package/dist/collection/components/kup-card/built-in/kup-card-message-box.js +10 -10
  66. package/dist/collection/components/kup-card/built-in/kup-card-numeric.js +118 -118
  67. package/dist/collection/components/kup-card/collapsible/kup-card-collapsible.js +64 -64
  68. package/dist/collection/components/kup-card/dialog/kup-card-dialog.js +217 -217
  69. package/dist/collection/components/kup-card/free/kup-card-free.js +22 -22
  70. package/dist/collection/components/kup-card/kup-card-declarations.js +98 -98
  71. package/dist/collection/components/kup-card/kup-card-helper.js +196 -196
  72. package/dist/collection/components/kup-card/kup-card.js +809 -809
  73. package/dist/collection/components/kup-card/scalable/kup-card-scalable.js +251 -251
  74. package/dist/collection/components/kup-card/standard/kup-card-standard.js +593 -593
  75. package/dist/collection/components/kup-cell/kup-cell-declarations.js +11 -11
  76. package/dist/collection/components/kup-cell/kup-cell.js +401 -401
  77. package/dist/collection/components/kup-chart/kup-chart-builder.js +93 -93
  78. package/dist/collection/components/kup-chart/kup-chart-declarations.js +49 -49
  79. package/dist/collection/components/kup-chart/kup-chart.js +1080 -1080
  80. package/dist/collection/components/kup-checkbox/kup-checkbox-declarations.js +13 -13
  81. package/dist/collection/components/kup-checkbox/kup-checkbox.js +433 -433
  82. package/dist/collection/components/kup-chip/kup-chip-declarations.js +12 -12
  83. package/dist/collection/components/kup-chip/kup-chip.js +558 -558
  84. package/dist/collection/components/kup-color-picker/kup-color-picker-declarations.js +12 -12
  85. package/dist/collection/components/kup-color-picker/kup-color-picker.js +546 -546
  86. package/dist/collection/components/kup-combobox/kup-combobox-declarations.js +15 -15
  87. package/dist/collection/components/kup-combobox/kup-combobox.js +821 -821
  88. package/dist/collection/components/kup-dash/kup-dash.js +171 -171
  89. package/dist/collection/components/kup-dash-list/kup-dash-list.js +327 -327
  90. package/dist/collection/components/kup-dashboard/kup-dashboard-declarations.js +10 -10
  91. package/dist/collection/components/kup-dashboard/kup-dashboard.js +588 -588
  92. package/dist/collection/components/kup-data-table/kup-data-table-declarations.js +156 -156
  93. package/dist/collection/components/kup-data-table/kup-data-table-helper.js +808 -809
  94. package/dist/collection/components/kup-data-table/kup-data-table-state.js +36 -36
  95. package/dist/collection/components/kup-data-table/kup-data-table.js +5527 -5526
  96. package/dist/collection/components/kup-date-picker/kup-date-picker-declarations.js +18 -18
  97. package/dist/collection/components/kup-date-picker/kup-date-picker.js +816 -816
  98. package/dist/collection/components/kup-dialog/kup-dialog-declarations.js +14 -14
  99. package/dist/collection/components/kup-dialog/kup-dialog.js +467 -467
  100. package/dist/collection/components/kup-drawer/kup-drawer-declarations.js +10 -10
  101. package/dist/collection/components/kup-drawer/kup-drawer.e2e.js +9 -0
  102. package/dist/collection/components/kup-drawer/kup-drawer.js +383 -383
  103. package/dist/collection/components/kup-dropdown-button/kup-dropdown-button-declarations.js +18 -18
  104. package/dist/collection/components/kup-dropdown-button/kup-dropdown-button.js +800 -800
  105. package/dist/collection/components/kup-echart/kup-echart-declarations.js +52 -52
  106. package/dist/collection/components/kup-echart/kup-echart.js +1437 -1437
  107. package/dist/collection/components/kup-family-tree/kup-family-tree-declarations.js +15 -15
  108. package/dist/collection/components/kup-family-tree/kup-family-tree.js +829 -829
  109. package/dist/collection/components/kup-form/kup-form-declarations.js +29 -29
  110. package/dist/collection/components/kup-form/kup-form.js +731 -731
  111. package/dist/collection/components/kup-gauge/kup-gauge-declarations.js +26 -26
  112. package/dist/collection/components/kup-gauge/kup-gauge.js +764 -764
  113. package/dist/collection/components/kup-grid/kup-grid-declarations.js +10 -10
  114. package/dist/collection/components/kup-grid/kup-grid.js +253 -253
  115. package/dist/collection/components/kup-iframe/kup-iframe-declarations.js +10 -10
  116. package/dist/collection/components/kup-iframe/kup-iframe.js +281 -281
  117. package/dist/collection/components/kup-image/canvas/kup-image-canvas-declarations.js +184 -184
  118. package/dist/collection/components/kup-image/canvas/kup-image-canvas-helper.js +19 -19
  119. package/dist/collection/components/kup-image/canvas/kup-image-canvas.js +225 -225
  120. package/dist/collection/components/kup-image/kup-image-declarations.js +16 -16
  121. package/dist/collection/components/kup-image/kup-image.js +491 -491
  122. package/dist/collection/components/kup-image-list/kup-image-list-declarations.js +10 -10
  123. package/dist/collection/components/kup-image-list/kup-image-list-state.js +9 -9
  124. package/dist/collection/components/kup-image-list/kup-image-list.js +533 -533
  125. package/dist/collection/components/kup-lazy/kup-lazy-declarations.js +20 -20
  126. package/dist/collection/components/kup-lazy/kup-lazy.js +430 -430
  127. package/dist/collection/components/kup-list/kup-list-declarations.js +34 -34
  128. package/dist/collection/components/kup-list/kup-list-helper.js +121 -121
  129. package/dist/collection/components/kup-list/kup-list.js +949 -949
  130. package/dist/collection/components/kup-magic-box/kup-magic-box-declarations.js +23 -23
  131. package/dist/collection/components/kup-magic-box/kup-magic-box.js +431 -431
  132. package/dist/collection/components/kup-nav-bar/kup-nav-bar-declarations.js +21 -21
  133. package/dist/collection/components/kup-nav-bar/kup-nav-bar.js +315 -315
  134. package/dist/collection/components/kup-numeric-picker/kup-numeric-picker-declarations.js +16 -16
  135. package/dist/collection/components/kup-numeric-picker/kup-numeric-picker.js +864 -864
  136. package/dist/collection/components/kup-photo-frame/kup-photo-frame-declarations.js +10 -10
  137. package/dist/collection/components/kup-photo-frame/kup-photo-frame.js +372 -372
  138. package/dist/collection/components/kup-planner/kup-planner-declarations.js +83 -76
  139. package/dist/collection/components/kup-planner/kup-planner-helper.js +54 -54
  140. package/dist/collection/components/kup-planner/kup-planner-state.js +16 -0
  141. package/dist/collection/components/kup-planner/kup-planner.js +1725 -1352
  142. package/dist/collection/components/kup-probe/kup-probe.js +358 -358
  143. package/dist/collection/components/kup-progress-bar/kup-progress-bar-declarations.js +14 -14
  144. package/dist/collection/components/kup-progress-bar/kup-progress-bar.js +405 -405
  145. package/dist/collection/components/kup-qlik/kup-qlik-declarations.js +1 -1
  146. package/dist/collection/components/kup-qlik/kup-qlik.js +326 -326
  147. package/dist/collection/components/kup-radio/kup-radio-declarations.js +12 -12
  148. package/dist/collection/components/kup-radio/kup-radio.js +398 -398
  149. package/dist/collection/components/kup-rating/kup-rating-declarations.js +11 -11
  150. package/dist/collection/components/kup-rating/kup-rating.js +332 -332
  151. package/dist/collection/components/kup-snackbar/kup-snackbar-declarations.js +13 -13
  152. package/dist/collection/components/kup-snackbar/kup-snackbar.js +389 -389
  153. package/dist/collection/components/kup-spinner/kup-spinner-declarations.js +15 -15
  154. package/dist/collection/components/kup-spinner/kup-spinner.js +468 -468
  155. package/dist/collection/components/kup-state/kup-state.js +1 -1
  156. package/dist/collection/components/kup-state/kup-store.js +1 -1
  157. package/dist/collection/components/kup-state/mock-store.js +13 -13
  158. package/dist/collection/components/kup-switch/kup-switch-declarations.js +12 -12
  159. package/dist/collection/components/kup-switch/kup-switch.js +402 -402
  160. package/dist/collection/components/kup-tab-bar/kup-tab-bar-declarations.js +10 -10
  161. package/dist/collection/components/kup-tab-bar/kup-tab-bar.js +443 -443
  162. package/dist/collection/components/kup-text-field/kup-text-field-declarations.js +35 -35
  163. package/dist/collection/components/kup-text-field/kup-text-field.js +1193 -1190
  164. package/dist/collection/components/kup-time-picker/kup-time-picker-declarations.js +14 -14
  165. package/dist/collection/components/kup-time-picker/kup-time-picker.js +921 -921
  166. package/dist/collection/components/kup-tree/kup-tree-declarations.js +43 -43
  167. package/dist/collection/components/kup-tree/kup-tree-faker.js +305 -305
  168. package/dist/collection/components/kup-tree/kup-tree-state.js +15 -15
  169. package/dist/collection/components/kup-tree/kup-tree.js +2479 -2479
  170. package/dist/collection/f-components/f-button/f-button-declarations.js +17 -17
  171. package/dist/collection/f-components/f-button/f-button.js +91 -91
  172. package/dist/collection/f-components/f-cell/f-cell-declarations.js +158 -158
  173. package/dist/collection/f-components/f-cell/f-cell.js +429 -428
  174. package/dist/collection/f-components/f-checkbox/f-checkbox-declarations.js +1 -1
  175. package/dist/collection/f-components/f-checkbox/f-checkbox.js +16 -16
  176. package/dist/collection/f-components/f-chip/f-chip-declarations.js +15 -15
  177. package/dist/collection/f-components/f-chip/f-chip.js +101 -101
  178. package/dist/collection/f-components/f-image/f-image-declarations.js +8 -8
  179. package/dist/collection/f-components/f-image/f-image.js +100 -100
  180. package/dist/collection/f-components/f-paginator/f-paginator-declarations.js +5 -5
  181. package/dist/collection/f-components/f-paginator/f-paginator-utils.js +28 -28
  182. package/dist/collection/f-components/f-paginator/f-paginator.js +86 -86
  183. package/dist/collection/f-components/f-switch/f-switch-declarations.js +1 -1
  184. package/dist/collection/f-components/f-switch/f-switch.js +12 -12
  185. package/dist/collection/f-components/f-text-field/f-text-field-declarations.js +1 -1
  186. package/dist/collection/f-components/f-text-field/f-text-field-mdc.js +29 -29
  187. package/dist/collection/f-components/f-text-field/f-text-field.js +151 -151
  188. package/dist/collection/managers/kup-data/kup-data-cell-helper.js +86 -86
  189. package/dist/collection/managers/kup-data/kup-data-column-helper.js +300 -300
  190. package/dist/collection/managers/kup-data/kup-data-declarations.js +10 -10
  191. package/dist/collection/managers/kup-data/kup-data-node-helper.js +165 -165
  192. package/dist/collection/managers/kup-data/kup-data-row-helper.js +28 -28
  193. package/dist/collection/managers/kup-data/kup-data.js +499 -497
  194. package/dist/collection/managers/kup-dates/kup-dates-declarations.js +43 -32
  195. package/dist/collection/managers/kup-dates/kup-dates.js +654 -343
  196. package/dist/collection/managers/kup-debug/kup-debug-declarations.js +20 -20
  197. package/dist/collection/managers/kup-debug/kup-debug.js +670 -670
  198. package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position-declarations.js +27 -27
  199. package/dist/collection/managers/kup-dynamic-position/kup-dynamic-position.js +244 -244
  200. package/dist/collection/managers/kup-interact/kup-interact-declarations.js +49 -49
  201. package/dist/collection/managers/kup-interact/kup-interact.js +397 -397
  202. package/dist/collection/managers/kup-language/kup-language-declarations.js +211 -211
  203. package/dist/collection/managers/kup-language/kup-language.js +151 -151
  204. package/dist/collection/managers/kup-manager/kup-manager-declarations.js +1 -1
  205. package/dist/collection/managers/kup-manager/kup-manager.js +303 -303
  206. package/dist/collection/managers/kup-math/kup-math-declarations.js +13 -13
  207. package/dist/collection/managers/kup-math/kup-math-helper.js +39 -39
  208. package/dist/collection/managers/kup-math/kup-math.js +413 -242
  209. package/dist/collection/managers/kup-objects/kup-objects-declarations.js +1 -1
  210. package/dist/collection/managers/kup-objects/kup-objects.js +387 -387
  211. package/dist/collection/managers/kup-scroll-on-hover/kup-scroll-on-hover-declarations.js +10 -10
  212. package/dist/collection/managers/kup-scroll-on-hover/kup-scroll-on-hover.js +334 -334
  213. package/dist/collection/managers/kup-search/kup-search-declarations.js +1 -1
  214. package/dist/collection/managers/kup-search/kup-search.js +75 -75
  215. package/dist/collection/managers/kup-theme/kup-theme-declarations.js +177 -177
  216. package/dist/collection/managers/kup-theme/kup-theme.js +715 -715
  217. package/dist/collection/managers/kup-toolbar/kup-toolbar-declarations.js +9 -9
  218. package/dist/collection/managers/kup-toolbar/kup-toolbar.js +111 -111
  219. package/dist/collection/managers/kup-tooltip/kup-tooltip-declarations.js +1 -1
  220. package/dist/collection/managers/kup-tooltip/kup-tooltip.js +229 -229
  221. package/dist/collection/types/GenericTypes.js +54 -54
  222. package/dist/collection/utils/cell-utils.js +156 -157
  223. package/dist/collection/utils/filters/filters-column-menu.js +360 -360
  224. package/dist/collection/utils/filters/filters-declarations.js +25 -25
  225. package/dist/collection/utils/filters/filters-rows.js +238 -238
  226. package/dist/collection/utils/filters/filters-tree-items.js +117 -117
  227. package/dist/collection/utils/filters/filters.js +287 -289
  228. package/dist/collection/utils/kup-column-menu/kup-column-menu-declarations.js +20 -20
  229. package/dist/collection/utils/kup-column-menu/kup-column-menu.js +751 -751
  230. package/dist/collection/utils/utils.js +84 -497
  231. package/dist/collection/variables/GenericVariables.js +4 -4
  232. package/dist/components/kup-accordion.js +355 -355
  233. package/dist/components/kup-autocomplete2.js +31828 -31684
  234. package/dist/components/kup-box2.js +1470 -1406
  235. package/dist/components/kup-calendar.js +9788 -10280
  236. package/dist/components/kup-card.js +1 -1
  237. package/dist/components/kup-cell.js +325 -325
  238. package/dist/components/kup-chart.js +1 -1
  239. package/dist/components/kup-checkbox.js +1 -1
  240. package/dist/components/kup-chip.js +1 -1
  241. package/dist/components/kup-color-picker.js +1 -1
  242. package/dist/components/kup-combobox.js +1 -1
  243. package/dist/components/kup-dash-list.js +276 -276
  244. package/dist/components/kup-dash2.js +220 -220
  245. package/dist/components/kup-dashboard.js +549 -549
  246. package/dist/components/kup-data-table.js +1 -1
  247. package/dist/components/kup-date-picker.js +1 -1
  248. package/dist/components/kup-dialog.js +1 -1
  249. package/dist/components/kup-drawer.js +295 -295
  250. package/dist/components/kup-dropdown-button.js +1 -1
  251. package/dist/components/kup-echart2.js +7312 -6765
  252. package/dist/components/kup-family-tree.js +604 -604
  253. package/dist/components/kup-form.js +1 -1
  254. package/dist/components/kup-gauge.js +1 -1
  255. package/dist/components/kup-grid2.js +252 -252
  256. package/dist/components/kup-iframe.js +250 -250
  257. package/dist/components/kup-image-list.js +407 -407
  258. package/dist/components/kup-image.js +1 -1
  259. package/dist/components/kup-lazy.js +344 -344
  260. package/dist/components/kup-list.js +1 -1
  261. package/dist/components/kup-magic-box.js +461 -461
  262. package/dist/components/kup-nav-bar.js +284 -284
  263. package/dist/components/kup-numeric-picker.js +529 -529
  264. package/dist/components/kup-photo-frame.js +300 -300
  265. package/dist/components/kup-planner.js +1342 -1189
  266. package/dist/components/kup-probe.js +399 -399
  267. package/dist/components/kup-progress-bar.js +1 -1
  268. package/dist/components/kup-qlik.js +296 -296
  269. package/dist/components/kup-radio.js +1 -1
  270. package/dist/components/kup-rating.js +1 -1
  271. package/dist/components/kup-snackbar.js +273 -273
  272. package/dist/components/kup-spinner.js +1 -1
  273. package/dist/components/kup-switch.js +1 -1
  274. package/dist/components/kup-tab-bar.js +1 -1
  275. package/dist/components/kup-text-field.js +1 -1
  276. package/dist/components/kup-time-picker.js +1 -1
  277. package/dist/components/kup-tree.js +1 -1
  278. package/dist/esm/{GenericVariables-665de00a.js → GenericVariables-6dfdd433.js} +3 -3
  279. package/dist/esm/{component-120651a0.js → component-e86c51ea.js} +81 -2
  280. package/dist/esm/{f-button-c377973d.js → f-button-c6a69f75.js} +99 -99
  281. package/dist/esm/{f-button-declarations-b1b4cac4.js → f-button-declarations-fd4965d1.js} +16 -16
  282. package/dist/esm/{f-cell-e5a98bc8.js → f-cell-5822ea68.js} +472 -470
  283. package/dist/esm/{f-checkbox-9b3f5f5b.js → f-checkbox-c15911de.js} +23 -23
  284. package/dist/esm/{f-chip-c8a18c48.js → f-chip-f46a03f5.js} +125 -125
  285. package/dist/esm/{f-image-5cbdf39d.js → f-image-f57832fa.js} +107 -107
  286. package/dist/esm/{f-paginator-utils-a1dab059.js → f-paginator-utils-bafc463d.js} +1548 -1547
  287. package/dist/esm/{f-text-field-dafb7c8b.js → f-text-field-15850e05.js} +172 -172
  288. package/dist/esm/{f-text-field-mdc-cee583ea.js → f-text-field-mdc-a1b4a919.js} +27 -28
  289. package/dist/esm/{index-8bd38435.js → index-238342f2.js} +78 -24
  290. package/dist/esm/ketchup.js +4 -4
  291. package/dist/esm/kup-accordion.entry.js +199 -200
  292. package/dist/esm/kup-autocomplete_27.entry.js +17546 -17563
  293. package/dist/esm/kup-box.entry.js +1294 -1232
  294. package/dist/esm/kup-calendar.entry.js +9557 -10050
  295. package/dist/esm/kup-cell.entry.js +172 -172
  296. package/dist/esm/kup-dash-list.entry.js +106 -106
  297. package/dist/esm/kup-dash_2.entry.js +162 -162
  298. package/dist/esm/kup-dashboard.entry.js +400 -401
  299. package/dist/esm/kup-drawer.entry.js +138 -138
  300. package/dist/esm/kup-echart.entry.js +7145 -6598
  301. package/dist/esm/kup-family-tree.entry.js +439 -439
  302. package/dist/esm/kup-iframe.entry.js +94 -94
  303. package/dist/esm/kup-image-list.entry.js +255 -256
  304. package/dist/esm/kup-lazy.entry.js +186 -186
  305. package/dist/esm/kup-magic-box.entry.js +298 -298
  306. package/dist/esm/{kup-manager-3594cde8.js → kup-manager-89dd9137.js} +7273 -7116
  307. package/dist/esm/kup-nav-bar.entry.js +130 -130
  308. package/dist/esm/kup-numeric-picker.entry.js +367 -368
  309. package/dist/esm/kup-photo-frame.entry.js +144 -144
  310. package/dist/esm/kup-planner.entry.js +1151 -1009
  311. package/dist/esm/kup-probe.entry.js +246 -246
  312. package/dist/esm/kup-qlik.entry.js +138 -138
  313. package/dist/esm/kup-snackbar.entry.js +116 -116
  314. package/dist/esm/loader.js +4 -4
  315. package/dist/ketchup/ketchup.esm.js +1 -1
  316. package/dist/ketchup/{p-d1164680.entry.js → p-01d44efe.entry.js} +1 -1
  317. package/dist/ketchup/{p-6762d447.js → p-1a8a06de.js} +1 -1
  318. package/dist/ketchup/p-206245c0.js +1 -0
  319. package/dist/ketchup/p-4bd63e97.entry.js +25 -0
  320. package/dist/ketchup/{p-cf322853.entry.js → p-4da77173.entry.js} +1 -1
  321. package/dist/ketchup/{p-7be5ef32.entry.js → p-514dcb7d.entry.js} +1 -1
  322. package/dist/ketchup/{p-22e72f06.entry.js → p-51573263.entry.js} +1 -1
  323. package/dist/ketchup/{p-9f9b6656.js → p-54248440.js} +1 -1
  324. package/dist/ketchup/{p-37ada0f0.entry.js → p-5dfa5c49.entry.js} +1 -1
  325. package/dist/ketchup/{p-10d84b1b.js → p-6507e9eb.js} +7 -6
  326. package/dist/ketchup/p-673bb93e.js +1 -0
  327. package/dist/ketchup/{p-31abf4b6.entry.js → p-688478e9.entry.js} +1 -1
  328. package/dist/ketchup/p-6a5d95df.entry.js +1 -0
  329. package/dist/ketchup/p-6ec8629e.js +30 -0
  330. package/dist/ketchup/p-785e8d74.entry.js +1 -0
  331. package/dist/ketchup/{p-d76be079.entry.js → p-78cc5a2d.entry.js} +1 -1
  332. package/dist/ketchup/{p-ce5b6ce7.entry.js → p-799f7f10.entry.js} +1 -1
  333. package/dist/ketchup/p-7e757c27.entry.js +1 -0
  334. package/dist/ketchup/p-843253dd.entry.js +1 -0
  335. package/dist/ketchup/{p-473d2bea.entry.js → p-84d3f676.entry.js} +1 -1
  336. package/dist/ketchup/p-8c1edebd.js +2 -0
  337. package/dist/ketchup/{p-2d32e3cd.js → p-a5f15864.js} +1 -1
  338. package/dist/ketchup/p-af7202ff.entry.js +1 -0
  339. package/dist/ketchup/{p-7f4f5f0f.entry.js → p-ba959bb5.entry.js} +1 -1
  340. package/dist/ketchup/p-c1931214.js +1 -0
  341. package/dist/ketchup/{p-8b248655.js → p-c354c5d0.js} +1 -1
  342. package/dist/ketchup/p-cd8512d9.entry.js +39 -0
  343. package/dist/ketchup/p-d4f86197.entry.js +9 -0
  344. package/dist/ketchup/{p-b718af72.entry.js → p-e59c2bc0.entry.js} +1 -1
  345. package/dist/ketchup/{p-afff7a6e.entry.js → p-f2fda43b.entry.js} +1 -1
  346. package/dist/ketchup/p-f4b6aa3f.entry.js +1 -0
  347. package/dist/ketchup/p-f4f5170c.entry.js +1 -0
  348. package/dist/ketchup/{p-27a56c87.js → p-fb03f2f5.js} +2 -2
  349. package/dist/loader/index.d.ts +1 -1
  350. package/dist/types/components/kup-accordion/kup-accordion-declarations.d.ts +20 -20
  351. package/dist/types/components/kup-accordion/kup-accordion.d.ts +80 -80
  352. package/dist/types/components/kup-autocomplete/kup-autocomplete-declarations.d.ts +35 -35
  353. package/dist/types/components/kup-autocomplete/kup-autocomplete.d.ts +119 -119
  354. package/dist/types/components/kup-badge/kup-badge-declarations.d.ts +9 -9
  355. package/dist/types/components/kup-badge/kup-badge.d.ts +51 -51
  356. package/dist/types/components/kup-box/kup-box-declarations.d.ts +114 -113
  357. package/dist/types/components/kup-box/kup-box-state.d.ts +10 -10
  358. package/dist/types/components/kup-box/kup-box.d.ts +275 -270
  359. package/dist/types/components/kup-button/kup-button-declarations.d.ts +24 -24
  360. package/dist/types/components/kup-button/kup-button.d.ts +111 -111
  361. package/dist/types/components/kup-button-list/kup-button-list-declarations.d.ts +24 -24
  362. package/dist/types/components/kup-button-list/kup-button-list.d.ts +82 -82
  363. package/dist/types/components/kup-calendar/kup-calendar-declarations.d.ts +70 -70
  364. package/dist/types/components/kup-calendar/kup-calendar.d.ts +100 -100
  365. package/dist/types/components/kup-card/box/kup-card-box.d.ts +50 -50
  366. package/dist/types/components/kup-card/built-in/kup-card-built-in.d.ts +39 -39
  367. package/dist/types/components/kup-card/built-in/kup-card-calendar.d.ts +2 -2
  368. package/dist/types/components/kup-card/built-in/kup-card-clock.d.ts +2 -2
  369. package/dist/types/components/kup-card/built-in/kup-card-column-drop-menu.d.ts +3 -3
  370. package/dist/types/components/kup-card/built-in/kup-card-message-box.d.ts +3 -3
  371. package/dist/types/components/kup-card/built-in/kup-card-numeric.d.ts +2 -2
  372. package/dist/types/components/kup-card/collapsible/kup-card-collapsible.d.ts +14 -14
  373. package/dist/types/components/kup-card/dialog/kup-card-dialog.d.ts +44 -44
  374. package/dist/types/components/kup-card/free/kup-card-free.d.ts +14 -14
  375. package/dist/types/components/kup-card/kup-card-declarations.d.ts +236 -236
  376. package/dist/types/components/kup-card/kup-card-helper.d.ts +27 -27
  377. package/dist/types/components/kup-card/kup-card.d.ts +159 -159
  378. package/dist/types/components/kup-card/scalable/kup-card-scalable.d.ts +56 -56
  379. package/dist/types/components/kup-card/standard/kup-card-standard.d.ts +92 -92
  380. package/dist/types/components/kup-cell/kup-cell-declarations.d.ts +10 -10
  381. package/dist/types/components/kup-cell/kup-cell.d.ts +67 -67
  382. package/dist/types/components/kup-chart/kup-chart-builder.d.ts +7 -7
  383. package/dist/types/components/kup-chart/kup-chart-declarations.d.ts +135 -135
  384. package/dist/types/components/kup-chart/kup-chart.d.ts +170 -170
  385. package/dist/types/components/kup-checkbox/kup-checkbox-declarations.d.ts +17 -17
  386. package/dist/types/components/kup-checkbox/kup-checkbox.d.ts +85 -85
  387. package/dist/types/components/kup-chip/kup-chip-declarations.d.ts +22 -22
  388. package/dist/types/components/kup-chip/kup-chip.d.ts +89 -89
  389. package/dist/types/components/kup-color-picker/kup-color-picker-declarations.d.ts +15 -15
  390. package/dist/types/components/kup-color-picker/kup-color-picker.d.ts +89 -89
  391. package/dist/types/components/kup-combobox/kup-combobox-declarations.d.ts +24 -24
  392. package/dist/types/components/kup-combobox/kup-combobox.d.ts +95 -95
  393. package/dist/types/components/kup-dash/kup-dash.d.ts +33 -33
  394. package/dist/types/components/kup-dash-list/kup-dash-list.d.ts +22 -22
  395. package/dist/types/components/kup-dashboard/kup-dashboard-declarations.d.ts +61 -61
  396. package/dist/types/components/kup-dashboard/kup-dashboard.d.ts +80 -80
  397. package/dist/types/components/kup-data-table/kup-data-table-declarations.d.ts +254 -254
  398. package/dist/types/components/kup-data-table/kup-data-table-helper.d.ts +25 -25
  399. package/dist/types/components/kup-data-table/kup-data-table-state.d.ts +36 -36
  400. package/dist/types/components/kup-data-table/kup-data-table.d.ts +444 -444
  401. package/dist/types/components/kup-date-picker/kup-date-picker-declarations.d.ts +20 -20
  402. package/dist/types/components/kup-date-picker/kup-date-picker.d.ts +110 -110
  403. package/dist/types/components/kup-dialog/kup-dialog-declarations.d.ts +26 -26
  404. package/dist/types/components/kup-dialog/kup-dialog.d.ts +77 -77
  405. package/dist/types/components/kup-drawer/kup-drawer-declarations.d.ts +9 -9
  406. package/dist/types/components/kup-drawer/kup-drawer.d.ts +74 -74
  407. package/dist/types/components/kup-dropdown-button/kup-dropdown-button-declarations.d.ts +21 -21
  408. package/dist/types/components/kup-dropdown-button/kup-dropdown-button.d.ts +161 -161
  409. package/dist/types/components/kup-echart/kup-echart-declarations.d.ts +62 -62
  410. package/dist/types/components/kup-echart/kup-echart.d.ts +111 -111
  411. package/dist/types/components/kup-family-tree/kup-family-tree-declarations.d.ts +38 -38
  412. package/dist/types/components/kup-family-tree/kup-family-tree.d.ts +87 -87
  413. package/dist/types/components/kup-form/kup-form-declarations.d.ts +64 -64
  414. package/dist/types/components/kup-form/kup-form.d.ts +83 -83
  415. package/dist/types/components/kup-gauge/kup-gauge-declarations.d.ts +25 -25
  416. package/dist/types/components/kup-gauge/kup-gauge.d.ts +147 -147
  417. package/dist/types/components/kup-grid/kup-grid-declarations.d.ts +9 -9
  418. package/dist/types/components/kup-grid/kup-grid.d.ts +48 -48
  419. package/dist/types/components/kup-iframe/kup-iframe-declarations.d.ts +9 -9
  420. package/dist/types/components/kup-iframe/kup-iframe.d.ts +49 -49
  421. package/dist/types/components/kup-image/canvas/kup-image-canvas-declarations.d.ts +23 -23
  422. package/dist/types/components/kup-image/canvas/kup-image-canvas-helper.d.ts +2 -2
  423. package/dist/types/components/kup-image/canvas/kup-image-canvas.d.ts +28 -28
  424. package/dist/types/components/kup-image/kup-image-declarations.d.ts +19 -19
  425. package/dist/types/components/kup-image/kup-image.d.ts +103 -103
  426. package/dist/types/components/kup-image-list/kup-image-list-declarations.d.ts +14 -14
  427. package/dist/types/components/kup-image-list/kup-image-list-state.d.ts +6 -6
  428. package/dist/types/components/kup-image-list/kup-image-list.d.ts +73 -73
  429. package/dist/types/components/kup-lazy/kup-lazy-declarations.d.ts +18 -18
  430. package/dist/types/components/kup-lazy/kup-lazy.d.ts +78 -78
  431. package/dist/types/components/kup-list/kup-list-declarations.d.ts +48 -48
  432. package/dist/types/components/kup-list/kup-list-helper.d.ts +6 -6
  433. package/dist/types/components/kup-list/kup-list.d.ts +128 -128
  434. package/dist/types/components/kup-magic-box/kup-magic-box-declarations.d.ts +21 -21
  435. package/dist/types/components/kup-magic-box/kup-magic-box.d.ts +65 -65
  436. package/dist/types/components/kup-nav-bar/kup-nav-bar-declarations.d.ts +19 -19
  437. package/dist/types/components/kup-nav-bar/kup-nav-bar.d.ts +65 -65
  438. package/dist/types/components/kup-numeric-picker/kup-numeric-picker-declarations.d.ts +19 -19
  439. package/dist/types/components/kup-numeric-picker/kup-numeric-picker.d.ts +121 -121
  440. package/dist/types/components/kup-photo-frame/kup-photo-frame-declarations.d.ts +9 -9
  441. package/dist/types/components/kup-photo-frame/kup-photo-frame.d.ts +61 -61
  442. package/dist/types/components/kup-planner/kup-planner-declarations.d.ts +127 -106
  443. package/dist/types/components/kup-planner/kup-planner-helper.d.ts +6 -6
  444. package/dist/types/components/kup-planner/kup-planner-state.d.ts +13 -0
  445. package/dist/types/components/kup-planner/kup-planner.d.ts +266 -212
  446. package/dist/types/components/kup-probe/kup-probe.d.ts +72 -72
  447. package/dist/types/components/kup-progress-bar/kup-progress-bar-declarations.d.ts +13 -13
  448. package/dist/types/components/kup-progress-bar/kup-progress-bar.d.ts +69 -69
  449. package/dist/types/components/kup-qlik/kup-qlik-declarations.d.ts +19 -19
  450. package/dist/types/components/kup-qlik/kup-qlik.d.ts +100 -100
  451. package/dist/types/components/kup-radio/kup-radio-declarations.d.ts +23 -23
  452. package/dist/types/components/kup-radio/kup-radio.d.ts +80 -80
  453. package/dist/types/components/kup-rating/kup-rating-declarations.d.ts +14 -14
  454. package/dist/types/components/kup-rating/kup-rating.d.ts +62 -62
  455. package/dist/types/components/kup-snackbar/kup-snackbar-declarations.d.ts +12 -12
  456. package/dist/types/components/kup-snackbar/kup-snackbar.d.ts +84 -84
  457. package/dist/types/components/kup-spinner/kup-spinner-declarations.d.ts +14 -14
  458. package/dist/types/components/kup-spinner/kup-spinner.d.ts +79 -79
  459. package/dist/types/components/kup-state/kup-state.d.ts +3 -3
  460. package/dist/types/components/kup-state/kup-store.d.ts +4 -4
  461. package/dist/types/components/kup-state/mock-store.d.ts +8 -8
  462. package/dist/types/components/kup-switch/kup-switch-declarations.d.ts +15 -15
  463. package/dist/types/components/kup-switch/kup-switch.d.ts +80 -80
  464. package/dist/types/components/kup-tab-bar/kup-tab-bar-declarations.d.ts +21 -21
  465. package/dist/types/components/kup-tab-bar/kup-tab-bar.d.ts +77 -77
  466. package/dist/types/components/kup-text-field/kup-text-field-declarations.d.ts +38 -38
  467. package/dist/types/components/kup-text-field/kup-text-field.d.ts +253 -253
  468. package/dist/types/components/kup-time-picker/kup-time-picker-declarations.d.ts +17 -17
  469. package/dist/types/components/kup-time-picker/kup-time-picker.d.ts +125 -125
  470. package/dist/types/components/kup-tree/kup-tree-declarations.d.ts +97 -97
  471. package/dist/types/components/kup-tree/kup-tree-faker.d.ts +54 -54
  472. package/dist/types/components/kup-tree/kup-tree-state.d.ts +14 -14
  473. package/dist/types/components/kup-tree/kup-tree.d.ts +362 -362
  474. package/dist/types/components.d.ts +98 -2
  475. package/dist/types/f-components/f-button/f-button-declarations.d.ts +41 -41
  476. package/dist/types/f-components/f-button/f-button.d.ts +3 -3
  477. package/dist/types/f-components/f-cell/f-cell-declarations.d.ts +162 -162
  478. package/dist/types/f-components/f-cell/f-cell.d.ts +3 -3
  479. package/dist/types/f-components/f-checkbox/f-checkbox-declarations.d.ts +15 -15
  480. package/dist/types/f-components/f-checkbox/f-checkbox.d.ts +3 -3
  481. package/dist/types/f-components/f-chip/f-chip-declarations.d.ts +29 -29
  482. package/dist/types/f-components/f-chip/f-chip.d.ts +3 -3
  483. package/dist/types/f-components/f-image/f-image-declarations.d.ts +36 -36
  484. package/dist/types/f-components/f-image/f-image.d.ts +3 -3
  485. package/dist/types/f-components/f-paginator/f-paginator-declarations.d.ts +22 -22
  486. package/dist/types/f-components/f-paginator/f-paginator-utils.d.ts +2 -2
  487. package/dist/types/f-components/f-paginator/f-paginator.d.ts +3 -3
  488. package/dist/types/f-components/f-switch/f-switch-declarations.d.ts +14 -14
  489. package/dist/types/f-components/f-switch/f-switch.d.ts +3 -3
  490. package/dist/types/f-components/f-text-field/f-text-field-declarations.d.ts +42 -42
  491. package/dist/types/f-components/f-text-field/f-text-field-mdc.d.ts +6 -6
  492. package/dist/types/f-components/f-text-field/f-text-field.d.ts +3 -3
  493. package/dist/types/managers/kup-data/kup-data-cell-helper.d.ts +31 -31
  494. package/dist/types/managers/kup-data/kup-data-column-helper.d.ts +39 -39
  495. package/dist/types/managers/kup-data/kup-data-declarations.d.ts +173 -173
  496. package/dist/types/managers/kup-data/kup-data-node-helper.d.ts +44 -44
  497. package/dist/types/managers/kup-data/kup-data-row-helper.d.ts +14 -14
  498. package/dist/types/managers/kup-data/kup-data.d.ts +86 -86
  499. package/dist/types/managers/kup-dates/kup-dates-declarations.d.ts +39 -29
  500. package/dist/types/managers/kup-dates/kup-dates.d.ts +207 -114
  501. package/dist/types/managers/kup-debug/kup-debug-declarations.d.ts +38 -38
  502. package/dist/types/managers/kup-debug/kup-debug.d.ts +95 -95
  503. package/dist/types/managers/kup-dynamic-position/kup-dynamic-position-declarations.d.ts +50 -50
  504. package/dist/types/managers/kup-dynamic-position/kup-dynamic-position.d.ts +61 -61
  505. package/dist/types/managers/kup-interact/kup-interact-declarations.d.ts +128 -128
  506. package/dist/types/managers/kup-interact/kup-interact.d.ts +105 -105
  507. package/dist/types/managers/kup-language/kup-language-declarations.d.ts +225 -225
  508. package/dist/types/managers/kup-language/kup-language.d.ts +52 -52
  509. package/dist/types/managers/kup-manager/kup-manager-declarations.d.ts +162 -162
  510. package/dist/types/managers/kup-manager/kup-manager.d.ts +95 -95
  511. package/dist/types/managers/kup-math/kup-math-declarations.d.ts +33 -33
  512. package/dist/types/managers/kup-math/kup-math-helper.d.ts +17 -17
  513. package/dist/types/managers/kup-math/kup-math.d.ts +147 -85
  514. package/dist/types/managers/kup-objects/kup-objects-declarations.d.ts +15 -15
  515. package/dist/types/managers/kup-objects/kup-objects.d.ts +210 -210
  516. package/dist/types/managers/kup-scroll-on-hover/kup-scroll-on-hover-declarations.d.ts +28 -28
  517. package/dist/types/managers/kup-scroll-on-hover/kup-scroll-on-hover.d.ts +62 -62
  518. package/dist/types/managers/kup-search/kup-search-declarations.d.ts +7 -7
  519. package/dist/types/managers/kup-search/kup-search.d.ts +20 -20
  520. package/dist/types/managers/kup-theme/kup-theme-declarations.d.ts +185 -185
  521. package/dist/types/managers/kup-theme/kup-theme.d.ts +127 -127
  522. package/dist/types/managers/kup-toolbar/kup-toolbar-declarations.d.ts +8 -8
  523. package/dist/types/managers/kup-toolbar/kup-toolbar.d.ts +39 -39
  524. package/dist/types/managers/kup-tooltip/kup-tooltip-declarations.d.ts +8 -8
  525. package/dist/types/managers/kup-tooltip/kup-tooltip.d.ts +51 -51
  526. package/dist/types/stencil-public-runtime.d.ts +1 -0
  527. package/dist/types/types/GenericTypes.d.ts +110 -110
  528. package/dist/types/utils/cell-utils.d.ts +10 -10
  529. package/dist/types/utils/filters/filters-column-menu.d.ts +96 -96
  530. package/dist/types/utils/filters/filters-declarations.d.ts +39 -39
  531. package/dist/types/utils/filters/filters-rows.d.ts +30 -30
  532. package/dist/types/utils/filters/filters-tree-items.d.ts +19 -19
  533. package/dist/types/utils/filters/filters.d.ts +72 -72
  534. package/dist/types/utils/kup-column-menu/kup-column-menu-declarations.d.ts +19 -19
  535. package/dist/types/utils/kup-column-menu/kup-column-menu.d.ts +142 -142
  536. package/dist/types/utils/utils.d.ts +37 -124
  537. package/dist/types/variables/GenericVariables.d.ts +4 -4
  538. package/package.json +21 -16
  539. package/dist/cjs/tslib.es6-386654de.js +0 -87
  540. package/dist/esm/tslib.es6-8c2af864.js +0 -82
  541. package/dist/ketchup/p-017418e7.entry.js +0 -27
  542. package/dist/ketchup/p-38f16697.entry.js +0 -9
  543. package/dist/ketchup/p-4638fbff.js +0 -1
  544. package/dist/ketchup/p-4c56e199.entry.js +0 -1
  545. package/dist/ketchup/p-5205286a.entry.js +0 -25
  546. package/dist/ketchup/p-61319cfa.js +0 -1
  547. package/dist/ketchup/p-6c726886.entry.js +0 -1
  548. package/dist/ketchup/p-7f59211b.js +0 -1
  549. package/dist/ketchup/p-80815edf.entry.js +0 -1
  550. package/dist/ketchup/p-9dcfbb1e.js +0 -2
  551. package/dist/ketchup/p-9fc6a9a8.entry.js +0 -1
  552. package/dist/ketchup/p-acaa171f.js +0 -30
  553. package/dist/ketchup/p-bf4a881b.js +0 -1
  554. package/dist/ketchup/p-d4eb9a76.entry.js +0 -1
  555. package/dist/ketchup/p-ed7e118e.entry.js +0 -1
  556. package/dist/ketchup/p-ef0b4f19.entry.js +0 -39
  557. /package/dist/ketchup/{p-6c77a36c.js → p-0fd98ab4.js} +0 -0
  558. /package/dist/ketchup/{p-97e8ea42.js → p-ad2e21d2.js} +0 -0
@@ -1,1417 +1,1481 @@
1
1
  import { proxyCustomElement, HTMLElement, createEvent, forceUpdate, h, Host } from '@stencil/core/internal/client';
2
- import { k as kupManagerInstance, J as identify, g as getProps, s as setProps, L as filterRows, N as paginateRows, O as sortRows, P as getColumnByName, Q as KupLanguageGeneric, F as FImage, a as KupThemeIconValues, R as FCell, S as KupDebugCategory, T as FChip, U as KupPointerEventTypes, V as KupDragEffect, W as kupDraggableCellAttr, X as KupDropEventTypes, Y as FTextFieldMDC, Z as KupLanguageSearch, _ as FPaginator, $ as FPaginatorMode, c as componentWrapperId, d as defineCustomElement$1, b as defineCustomElement$2, e as defineCustomElement$3, f as defineCustomElement$4, h as defineCustomElement$5, i as defineCustomElement$6, j as defineCustomElement$7, l as defineCustomElement$8, m as defineCustomElement$9, n as defineCustomElement$a, o as defineCustomElement$b, p as defineCustomElement$c, q as defineCustomElement$d, r as defineCustomElement$e, t as defineCustomElement$f, u as defineCustomElement$g, v as defineCustomElement$h, w as defineCustomElement$i, x as defineCustomElement$j, y as defineCustomElement$k, z as defineCustomElement$l, A as defineCustomElement$m, B as defineCustomElement$n, C as defineCustomElement$o, D as defineCustomElement$p, E as defineCustomElement$q, G as defineCustomElement$r, a0 as pageChange, a1 as rowsPerPageChange, a2 as SortMode } from './kup-autocomplete2.js';
2
+ import { k as kupManagerInstance, J as identify, g as getProps, s as setProps, L as filterRows, N as paginateRows, O as sortRows, P as getColumnByName, Q as pageChange, R as rowsPerPageChange, S as KupLanguageGeneric, F as FImage, a as KupThemeIconValues, T as FCell, U as KupDebugCategory, V as FChip, W as KupPointerEventTypes, X as KupDragEffect, Y as kupDraggableCellAttr, Z as KupDropEventTypes, _ as FTextFieldMDC, $ as KupLanguageSearch, a0 as FPaginator, a1 as FPaginatorMode, c as componentWrapperId, d as defineCustomElement$1, b as defineCustomElement$2, e as defineCustomElement$3, f as defineCustomElement$4, h as defineCustomElement$5, i as defineCustomElement$6, j as defineCustomElement$7, l as defineCustomElement$8, m as defineCustomElement$9, n as defineCustomElement$a, o as defineCustomElement$b, p as defineCustomElement$c, q as defineCustomElement$d, r as defineCustomElement$e, t as defineCustomElement$f, u as defineCustomElement$g, v as defineCustomElement$h, w as defineCustomElement$i, x as defineCustomElement$j, y as defineCustomElement$k, z as defineCustomElement$l, A as defineCustomElement$m, B as defineCustomElement$n, C as defineCustomElement$o, D as defineCustomElement$p, E as defineCustomElement$q, G as defineCustomElement$r, a2 as SortMode } from './kup-autocomplete2.js';
3
3
 
4
- /**
5
- * Props of the kup-box component.
6
- * Used to export every prop in an object.
7
- */
8
- var KupBoxProps;
9
- (function (KupBoxProps) {
10
- KupBoxProps["cardData"] = "Data of the card linked to the box when the latter's layout must be a premade template.";
11
- KupBoxProps["columns"] = "Number of columns.";
12
- KupBoxProps["customStyle"] = "Custom style of the component.";
13
- KupBoxProps["data"] = "Actual data of the box.";
14
- KupBoxProps["dragEnabled"] = "Enable dragging.";
15
- KupBoxProps["dropEnabled"] = "Enable dropping.";
16
- KupBoxProps["dropOnSection"] = "Drop can be done in section.";
17
- KupBoxProps["enableRowActions"] = "If enabled, a button to load / display the row actions will be displayed on the right of every box.";
18
- KupBoxProps["globalFilter"] = "When set to true it activates the global filter.";
19
- KupBoxProps["globalFilterValue"] = "The value of the global filter.";
20
- KupBoxProps["kanban"] = "Displays the boxlist as a Kanban.";
21
- KupBoxProps["layout"] = "How the field will be displayed. If not present, a default one will be created.";
22
- KupBoxProps["multiSelection"] = "Enable multi selection.";
23
- KupBoxProps["pageSelected"] = "Current page number.";
24
- KupBoxProps["pageSize"] = "Number of boxes per page.";
25
- KupBoxProps["pagination"] = "Enables pagination.";
26
- KupBoxProps["rowsPerPage"] = "Number of current rows per page.";
27
- KupBoxProps["scrollOnHover"] = "Activates the scroll on hover function.";
28
- KupBoxProps["selectBox"] = "Automatically selects the box at the specified index.";
29
- KupBoxProps["selectedRowsState"] = "Multiple selection.";
30
- KupBoxProps["showSelection"] = "If enabled, highlights the selected box/boxes.";
31
- KupBoxProps["sortBy"] = "If sorting is enabled, specifies which column to sort.";
32
- KupBoxProps["sortEnabled"] = "Enable sorting.";
33
- KupBoxProps["stateId"] = "";
34
- KupBoxProps["store"] = "";
35
- KupBoxProps["swipeDisabled"] = "Disable swipe.";
4
+ /**
5
+ * Props of the kup-box component.
6
+ * Used to export every prop in an object.
7
+ */
8
+ var KupBoxProps;
9
+ (function (KupBoxProps) {
10
+ KupBoxProps["cardData"] = "Data of the card linked to the box when the latter's layout must be a premade template.";
11
+ KupBoxProps["columns"] = "Number of columns.";
12
+ KupBoxProps["customStyle"] = "Custom style of the component.";
13
+ KupBoxProps["data"] = "Actual data of the box.";
14
+ KupBoxProps["dragEnabled"] = "Enable dragging.";
15
+ KupBoxProps["dropEnabled"] = "Enable dropping.";
16
+ KupBoxProps["dropOnSection"] = "Drop can be done in section.";
17
+ KupBoxProps["enableRowActions"] = "If enabled, a button to load / display the row actions will be displayed on the right of every box.";
18
+ KupBoxProps["globalFilter"] = "When set to true it activates the global filter.";
19
+ KupBoxProps["globalFilterValue"] = "The value of the global filter.";
20
+ KupBoxProps["kanban"] = "Displays the boxlist as a Kanban.";
21
+ KupBoxProps["layout"] = "How the field will be displayed. If not present, a default one will be created.";
22
+ KupBoxProps["lazyLoadRows"] = "When set to true, extra rows will be automatically loaded once the last row enters the viewport.";
23
+ KupBoxProps["multiSelection"] = "Enable multi selection.";
24
+ KupBoxProps["pageSelected"] = "Current page number.";
25
+ KupBoxProps["pageSize"] = "Number of boxes per page.";
26
+ KupBoxProps["pagination"] = "Enables pagination.";
27
+ KupBoxProps["rowsPerPage"] = "Number of current rows per page.";
28
+ KupBoxProps["scrollOnHover"] = "Activates the scroll on hover function.";
29
+ KupBoxProps["selectBox"] = "Automatically selects the box at the specified index.";
30
+ KupBoxProps["selectedRowsState"] = "Multiple selection.";
31
+ KupBoxProps["showSelection"] = "If enabled, highlights the selected box/boxes.";
32
+ KupBoxProps["sortBy"] = "If sorting is enabled, specifies which column to sort.";
33
+ KupBoxProps["sortEnabled"] = "Enable sorting.";
34
+ KupBoxProps["stateId"] = "";
35
+ KupBoxProps["store"] = "";
36
+ KupBoxProps["swipeDisabled"] = "Disable swipe.";
36
37
  })(KupBoxProps || (KupBoxProps = {}));
37
38
 
38
- class KupBoxState {
39
- constructor() {
40
- this.globalFilterValue = '';
41
- this.sortBy = '';
42
- this.selectedRowsState = '';
43
- this.pageSelected = 1;
44
- this.rowsPerPage = 0;
45
- this.load = false;
46
- }
47
- /*Add attribute*/
48
- toDebugString() {
49
- // TODO
50
- return 'box state';
51
- }
39
+ class KupBoxState {
40
+ constructor() {
41
+ this.globalFilterValue = '';
42
+ this.sortBy = '';
43
+ this.selectedRowsState = '';
44
+ this.pageSelected = 1;
45
+ this.rowsPerPage = 0;
46
+ this.load = false;
47
+ }
48
+ /*Add attribute*/
49
+ toDebugString() {
50
+ // TODO
51
+ return 'box state';
52
+ }
52
53
  }
53
54
 
54
55
  const kupBoxCss = ":host{--kup_box_background_color:var(\n --kup-box-background-color,\n var(--kup-background-color)\n );--kup_box_color:var(--kup-box-color, var(--kup-text-color));--kup_box_font_family:var(--kup-box-font-family, var(--kup-font-family));--kup_box_font_size:var(--kup-box-font-size, var(--kup-font-size));--kup_box_grid_gap:var(--kup-box-grid-gap, 1em);--kup_box_hover_box_shadow:var(\n --kup-box-hover-box-shadow,\n 0px 0px 7.5px 0px rgba(128, 128, 128, 0.5)\n );--kup_box_primary_color_rgb:var(\n --kup-box-primary-color-rgb,\n var(--kup-primary-color-rgb)\n );--kup_box_transition:var(--kup-box-transition, 0.25s);display:block;font-family:var(--kup_box_font_family);font-size:var(--kup_box_font_size)}.box-component{background:var(--kup_box_background_color);transition:border var(--kup_box_transition) ease}.box-component[kup-drag-over]{position:relative;border:3px dashed var(--kup-border-color)}#box-container{display:grid;grid-gap:var(--kup_box_grid_gap);color:var(--kup_box_color);overflow:auto}#box-container.is-kanban .kanban-section{overflow:auto}#box-container.is-kanban .box-wrapper{padding-top:1em}#box-container.is-kanban .box-wrapper .box{overflow:auto}#box-container *{box-sizing:border-box}#box-container .box-wrapper{display:flex;align-items:center}#box-container .box-wrapper .box{flex-grow:1;cursor:pointer;position:relative;display:flex;transition:background-color var(--kup_box_transition) ease, box-shadow var(--kup_box_transition) ease, border var(--kup_box_transition) ease}#box-container .box-wrapper .box.draggable{touch-action:none;user-select:none}#box-container .box-wrapper .box.column{flex-direction:column}#box-container .box-wrapper .box:hover{box-shadow:var(--kup_box_hover_box_shadow)}#box-container .box-wrapper .box.selected{background-color:rgba(var(--kup_box_primary_color_rgb), 0.175)}#box-container .box-wrapper .box.selected .box-section.titled>h3{background-color:transparent}#box-container .box-wrapper .box[kup-draggable]{opacity:0.5}#box-container .box-wrapper .box[kup-drag-over]{border:3px dashed var(--kup-border-color);position:relative;z-index:2}#box-container .box-wrapper .box .box-section{display:flex;flex-direction:row;flex:1 1 1%;flex-wrap:wrap}#box-container .box-wrapper .box .box-section.column{flex-direction:column;justify-content:center;flex-wrap:unset}#box-container .box-wrapper .box .box-section.column>.box-section{flex:0 0 auto}#box-container .box-wrapper .box .box-section.grid{display:grid}#box-container .box-wrapper .box .box-section .box-object{min-height:16px}#box-container .box-wrapper .box .box-section .box-object img{height:auto}#box-container .box-wrapper .box .box-section.collapse-section .header{border-top:1px solid var(--kup-border-color);color:rgba(var(--kup-text-color-rgb), 0.75);display:flex;justify-content:space-around;width:100%}#box-container .box-wrapper .box .box-section.collapse-section .header .header-content{margin:0.5em;display:flex;align-items:center}#box-container .box-wrapper .box .box-section.collapse-section .header .header-content .f-image{transition:transform 0.15s}#box-container .box-wrapper .box .box-section.collapse-section .header .header-content .f-image.toggled{transform:rotate(-180deg)}#box-container .box-wrapper .box .box-section.collapse-section .header .header-content .kup-icon.kup-dropdown-icon{margin:0;-webkit-mask:var(--kup-dropdown-icon);mask:var(--kup-dropdown-icon)}#box-container .box-wrapper .box .box-section.collapse-section .content{display:none;width:100%}#box-container .box-wrapper .box .box-section.collapse-section.open .content{display:block}#box-container .box-wrapper .box .box-section.titled{border:1px solid var(--kup-border-color);padding-top:5px;position:relative;margin:10px}#box-container .box-wrapper .box .box-section.titled>h3{background:var(--kup-background-color);font-size:calc(var(--kup-font-size) * 1.15);position:absolute;margin:0px;padding:0 8px;top:-11px;left:5px;transition:background-color 0.25s ease}#box-container .box-wrapper .box .box-selection{position:absolute;top:0.5em;right:0.5em;z-index:1}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler{position:relative;width:24px;height:24px;margin-left:3px}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler svg{cursor:pointer;opacity:0;fill:var(--kup-text-color);transition:opacity 500ms ease-out}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler .row-action-menu{background:var(--kup-background-color);border:1px solid var(--kup-border-color);box-shadow:0px 0px 7.5px 0px rgba(128, 128, 128, 0.5);position:absolute;top:0;right:24px;display:none;z-index:10}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler .row-action-menu ul{list-style-type:none;margin:0;padding:0}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler .row-action-menu ul>li{cursor:pointer;white-space:nowrap;padding:0 12px;display:flex;align-items:center;line-height:30px}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler .row-action-menu ul>li:not(:last-child){border-bottom:1px solid var(--kup-border-color)}#box-container .box-wrapper .row-actions-wrapper .row-actions-toggler .row-action-menu.open{display:block}#box-container .box-wrapper:hover .row-actions-wrapper .row-actions-toggler svg{opacity:1}#sort-panel,#global-filter{margin-bottom:1em}:host(.kup-center-aligned) #kup-component .box-section{text-align:center}:host(.kup-center-aligned) #kup-component .box-section .f-cell{justify-content:center;margin:auto;text-align:center}:host(.kup-center-aligned) #kup-component .box-section .f-cell .f-cell__content{justify-content:center;margin:auto;text-align:center}:host(.kup-center-aligned) #kup-component .box-section .f-cell img{margin:auto}:host(.kup-right-aligned) #kup-component .box-section{text-align:right}:host(.kup-right-aligned) #kup-component .box-section .f-cell{justify-content:flex-end;margin-left:auto;margin-right:0;text-align:right}:host(.kup-right-aligned) #kup-component .box-section .f-cell .f-cell__content{justify-content:flex-end;margin-left:auto;margin-right:0;text-align:right}:host(.kup-right-aligned) #kup-component .box-section .f-cell img{margin-left:auto;margin-right:0}:host(.kup-top-aligned) #box-container .box-wrapper .box .box-section .column{justify-content:flex-start}:host(.kup-bottom-aligned) #box-container .box-wrapper .box .box-section .column{justify-content:flex-end}:host(:not(.kup-borderless)) .box{border:1px solid var(--kup-border-color)}:host(.kup-flat-on-hover) #box-container .box-wrapper .box:hover{box-shadow:none}:host(.kup-shaped) .box{border-radius:10px}:host(.kup-round) .box{border-radius:25px}:host(.kup-dashed-sections) .box-section{border:2px dashed var(--kup-text-color)}:host(:not(.kup-paddingless)) #box-container .box{padding:3px}:host(:not(.kup-paddingless)) #box-container .box .box-section .box-object{padding:1px 4px}:host(:not(.kup-paddingless)) #box-container .box .box-section.last-child{margin:3px 4px}:host(.kup-danger){--kup-box-primary-color-rgb:var(--kup-danger-color-rgb)}:host(.kup-info){--kup-box-primary-color-rgb:var(--kup-info-color-rgb)}:host(.kup-secondary){--kup-box-primary-color-rgb:var(--kup-secondary-color-rgb)}:host(.kup-success){--kup-box-primary-color-rgb:var(--kup-success-color-rgb)}:host(.kup-warning){--kup-box-primary-color-rgb:var(--kup-warning-color-rgb)}";
55
56
 
56
- const KupBox = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
57
- constructor() {
58
- super();
59
- this.__registerHost();
60
- this.__attachShadow();
61
- this.kupBoxClick = createEvent(this, "kup-box-click", 6);
62
- this.kupBoxSelected = createEvent(this, "kup-box-selected", 6);
63
- this.kupAutoBoxSelect = createEvent(this, "kup-box-autoselect", 6);
64
- this.kupRowActionMenuClick = createEvent(this, "kup-box-rowactionmenuclick", 6);
65
- this.kupRowActionClick = createEvent(this, "kup-box-rowactionclick", 6);
66
- this.kupDidLoad = createEvent(this, "kup-box-didload", 6);
67
- this.kupDidUnload = createEvent(this, "kup-box-didunload", 6);
68
- this.kupBoxContextMenu = createEvent(this, "kup-box-contextmenu", 6);
69
- this.state = new KupBoxState();
70
- /*-------------------------------------------------*/
71
- /* I n t e r n a l V a r i a b l e s */
72
- /*-------------------------------------------------*/
73
- /**
74
- * Instance of the KupManager class.
75
- */
76
- this.kupManager = kupManagerInstance();
77
- this.visibleColumns = [];
78
- this.rows = [];
79
- this.filteredRows = [];
80
- this.sectionRef = null;
81
- this.rowsRefs = [];
82
- this.hold = false;
83
- this.interactableDrag = [];
84
- this.interactableDrop = [];
85
- this.interactableTouch = [];
86
- this.collapsedSection = {};
87
- this.selectedRows = [];
88
- this.rowActionMenuOpened = undefined;
89
- this.currentPage = 1;
90
- this.currentRowsPerPage = 10;
91
- this.cardData = null;
92
- this.columns = 1;
93
- this.customStyle = '';
94
- this.data = null;
95
- this.dragEnabled = false;
96
- this.dropEnabled = false;
97
- this.dropOnSection = false;
98
- this.editableData = false;
99
- this.enableRowActions = false;
100
- this.globalFilter = false;
101
- this.globalFilterValue = '';
102
- this.kanban = null;
103
- this.layout = undefined;
104
- this.multiSelection = false;
105
- this.pageSelected = 1;
106
- this.pageSize = 10;
107
- this.pagination = false;
108
- this.rowsPerPage = undefined;
109
- this.scrollOnHover = false;
110
- this.selectBox = undefined;
111
- this.selectedRowsState = undefined;
112
- this.showSelection = true;
113
- this.sortBy = undefined;
114
- this.sortEnabled = false;
115
- this.stateId = '';
116
- this.store = undefined;
117
- this.swipeDisabled = false;
118
- }
119
- initWithPersistedState() {
120
- if (this.store && this.stateId) {
121
- const state = this.store.getState(this.stateId);
122
- if (state != null) {
123
- this.kupManager.debug.logMessage(this, 'Initialize with state for stateId ' +
124
- this.stateId +
125
- ': ' +
126
- state);
127
- // *** PROPS ***
128
- this.sortBy = this.state.sortBy;
129
- this.globalFilterValue = this.state.globalFilterValue;
130
- this.selectedRowsState = this.state.selectedRowsState;
131
- this.pageSelected = this.state.pageSelected;
132
- this.rowsPerPage = this.state.rowsPerPage;
133
- }
134
- }
135
- }
136
- persistState() {
137
- if (this.store && this.stateId) {
138
- let somethingChanged = false;
139
- if (!this.kupManager.objects.deepEqual(this.state.sortBy, this.sortBy)) {
140
- this.state.sortBy = this.sortBy;
141
- somethingChanged = true;
142
- }
143
- if (!this.kupManager.objects.deepEqual(this.state.globalFilterValue, this.globalFilterValue)) {
144
- this.state.globalFilterValue = this.globalFilterValue;
145
- somethingChanged = true;
146
- }
147
- if (!this.kupManager.objects.deepEqual(this.state.pageSelected, this.currentPage)) {
148
- this.state.pageSelected = this.currentPage;
149
- somethingChanged = true;
150
- }
151
- if (!this.kupManager.objects.deepEqual(this.state.rowsPerPage, this.currentRowsPerPage)) {
152
- this.state.rowsPerPage = this.currentRowsPerPage;
153
- somethingChanged = true;
154
- }
155
- const selectedRowsState = this.selectedRows.reduce((accumulator, row, currentIndex) => {
156
- const prefix = currentIndex > 0 ? ';' : '';
157
- return accumulator + prefix + row.id;
158
- }, '');
159
- if (!this.kupManager.objects.deepEqual(this.state.selectedRowsState, selectedRowsState)) {
160
- this.state.selectedRowsState = selectedRowsState;
161
- somethingChanged = true;
162
- }
163
- if (!this.state.load) {
164
- this.state.load = true;
165
- return;
166
- }
167
- if (somethingChanged) {
168
- this.kupManager.debug.logMessage(this, 'Persisting state for stateId ' +
169
- this.stateId +
170
- ': ' +
171
- this.state);
172
- this.store.persistState(this.stateId, this.state);
173
- }
174
- }
175
- }
176
- /*-------------------------------------------------*/
177
- /* W a t c h e r s */
178
- /*-------------------------------------------------*/
179
- rowsPerPageHandler(newValue) {
180
- this.currentRowsPerPage = newValue;
181
- }
182
- recalculateRows() {
183
- this.initRows();
184
- }
185
- onDataChanged() {
186
- identify(this.getRows());
187
- this.initVisibleColumns();
188
- this.initRows();
189
- this.checkLayout();
190
- }
191
- onLayoutChanged() {
192
- this.checkLayout();
193
- }
194
- onSelectBoxChanged() {
195
- this.handleAutomaticBoxSelection();
196
- }
197
- /*-------------------------------------------------*/
198
- /* P u b l i c M e t h o d s */
199
- /*-------------------------------------------------*/
200
- /**
201
- * Used to retrieve component's props values.
202
- * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.
203
- * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.
204
- */
205
- async getProps(descriptions) {
206
- return getProps(this, KupBoxProps, descriptions);
207
- }
208
- async loadRowActions(row, actions) {
209
- row.actions = actions;
210
- // show menu
211
- this.rowActionMenuOpened = row;
212
- }
213
- /**
214
- * This method is used to trigger a new render of the component.
215
- */
216
- async refresh() {
217
- forceUpdate(this);
218
- }
219
- /**
220
- * Sets the props to the component.
221
- * @param {GenericObject} props - Object containing props that will be set to the component.
222
- */
223
- async setProps(props) {
224
- setProps(this, KupBoxProps, props);
225
- }
226
- /*-------------------------------------------------*/
227
- /* P r i v a t e M e t h o d s */
228
- /*-------------------------------------------------*/
229
- getColumns() {
230
- return this.data && this.data.columns
231
- ? this.data.columns
232
- : [{ title: '', name: '', size: undefined }];
233
- }
234
- initVisibleColumns() {
235
- this.visibleColumns = this.getColumns().filter((column) => {
236
- if (column.hasOwnProperty('visible')) {
237
- return column.visible;
238
- }
239
- return true;
240
- });
241
- }
242
- getRows() {
243
- return this.data && this.data.rows ? this.data.rows : [];
244
- }
245
- initRows() {
246
- this.filteredRows = this.getRows();
247
- if (this.globalFilter && this.globalFilterValue) {
248
- // filtering rows
249
- this.filteredRows = filterRows(this.filteredRows, null, this.globalFilterValue, this.visibleColumns);
250
- }
251
- this.rows = this.sortRows(this.filteredRows);
252
- if (this.pagination) {
253
- this.rows = paginateRows(this.rows, this.currentPage, this.currentRowsPerPage, false);
254
- }
255
- }
256
- sortRows(rows) {
257
- let sortedRows = rows;
258
- if (this.sortBy) {
259
- // create 'fake' sortObject
260
- const sortObject = {
261
- column: this.sortBy,
262
- sortMode: SortMode.A,
263
- };
264
- sortedRows = sortRows(sortedRows, [sortObject]);
265
- }
266
- return sortedRows;
267
- }
268
- checkScrollOnHover() {
269
- if (!this.kupManager.scrollOnHover.isRegistered(this.boxContainer)) {
270
- if (this.scrollOnHover) {
271
- this.kupManager.scrollOnHover.register(this.boxContainer);
272
- }
273
- }
274
- else {
275
- if (!this.scrollOnHover) {
276
- this.kupManager.scrollOnHover.unregister(this.boxContainer);
277
- }
278
- }
279
- }
280
- checkLayout() {
281
- // check if there is a layout.
282
- // if not, create a default layout
283
- if (this.layout) {
284
- this.boxLayout = this.layout;
285
- return;
286
- }
287
- // only one section, containing all visible fields
288
- const section = {
289
- horizontal: false,
290
- sections: [],
291
- };
292
- // adding box objects to section
293
- const visibleColumns = this.visibleColumns;
294
- let size = visibleColumns.length;
295
- let content = [];
296
- let cnt = 0;
297
- while (size-- > 0) {
298
- content.push({
299
- column: visibleColumns[cnt++].name,
300
- });
301
- }
302
- section.content = content;
303
- // creating a new layout
304
- this.boxLayout = {
305
- sections: [section],
306
- };
307
- }
308
- onSortChange(e) {
309
- let column = getColumnByName(this.visibleColumns, e.detail.value);
310
- this.sortBy = column.name;
311
- }
312
- onGlobalFilterChange({ detail }) {
313
- let value = '';
314
- if (detail && detail.value) {
315
- value = detail.value;
316
- }
317
- this.globalFilterValue = value;
318
- }
319
- isSectionExpanded(row, section) {
320
- if (!row.id || !section.id) {
321
- return false;
322
- }
323
- return (this.collapsedSection[section.id] &&
324
- this.collapsedSection[section.id][row.id]);
325
- }
326
- handleAutomaticBoxSelection() {
327
- if (this.selectBox &&
328
- this.selectBox > 0 &&
329
- this.selectBox <= this.data.rows.length) {
330
- this.selectedRows = [];
331
- for (let boxRow of this.data.rows) {
332
- if (boxRow.id === (this.selectBox - 1).toString()) {
333
- this.selectedRows.push(boxRow);
334
- break;
335
- }
336
- }
337
- this.kupAutoBoxSelect.emit({
338
- comp: this,
339
- id: this.rootElement.id,
340
- row: this.selectedRows[0],
341
- });
342
- }
343
- }
344
- getEventDetails(el, e) {
345
- let boxObject = null;
346
- let cell = null;
347
- let row = null;
348
- let column = null;
349
- if (el) {
350
- boxObject =
351
- el.closest('.box-object') ||
352
- el.querySelector('.box-object') ||
353
- el.closest('.f-cell');
354
- }
355
- if (boxObject) {
356
- if (boxObject.classList.contains('f-cell')) {
357
- const props = boxObject['kup-get-cell-props']();
358
- cell = props.cell;
359
- column = props.column;
360
- row = props.row;
361
- }
362
- else {
363
- cell = boxObject['data-cell'];
364
- row = boxObject['data-row'];
365
- column = getColumnByName(this.visibleColumns, boxObject.dataset.column);
366
- }
367
- }
368
- return {
369
- boxObject: boxObject ? boxObject : null,
370
- column: column ? column : null,
371
- cell: cell ? cell : null,
372
- originalEvent: e,
373
- row: row ? row : null,
374
- };
375
- }
376
- contextMenuHandler(e) {
377
- const details = this.getEventDetails(e.target, e);
378
- return details;
379
- }
380
- /**
381
- * Checks if the element is the svg that opens the "row actions menu"
382
- * @param element the element to check
383
- */
384
- checkIfElementIsActionMenuIcon(element) {
385
- if (element.tagName && element.parentElement) {
386
- return (element.tagName === 'svg' &&
387
- element.parentElement.classList.contains('row-actions-toggler'));
388
- }
389
- return false;
390
- }
391
- // event listeners
392
- onBoxClick({ target }, row) {
393
- if (!(target instanceof HTMLElement)) {
394
- return;
395
- }
396
- // searching parent
397
- let element = target;
398
- let classList = element.classList;
399
- while (!classList.contains('box-object') &&
400
- !classList.contains('box-section') &&
401
- !classList.contains('box')) {
402
- element = element.parentElement;
403
- if (element === null) {
404
- break;
405
- }
406
- classList = element.classList;
407
- }
408
- // evaluating column
409
- let column = null;
410
- if (classList.contains('box-object')) {
411
- column = element.dataset.column;
412
- }
413
- this.kupBoxClick.emit({
414
- comp: this,
415
- id: this.rootElement.id,
416
- row,
417
- column,
418
- });
419
- // selecting box
420
- if (this.multiSelection) {
421
- // triggering multi selection
422
- this.onSelectionCheckChange(row);
423
- }
424
- else {
425
- this.selectedRows = [row];
426
- }
427
- }
428
- onSelectionCheckChange(row) {
429
- var index = -1;
430
- for (let i = 0; i < this.selectedRows.length; i++) {
431
- const select = this.selectedRows[i];
432
- if (select.id === row.id) {
433
- index = i;
434
- break;
435
- }
436
- }
437
- if (index >= 0) {
438
- // remove row
439
- this.selectedRows.splice(index, 1);
440
- this.selectedRows = [...this.selectedRows];
441
- }
442
- else {
443
- // add row
444
- this.selectedRows = [...this.selectedRows, row];
445
- }
446
- this.kupBoxSelected.emit({
447
- comp: this,
448
- id: this.rootElement.id,
449
- rows: this.selectedRows,
450
- });
451
- }
452
- toggleSectionExpand(row, section) {
453
- // check if section / row has id
454
- if (!section.id) {
455
- // error
456
- console.error('cannot expand / collapse a section withoun an ID');
457
- return;
458
- }
459
- if (!row.id) {
460
- // error
461
- console.error('cannot expand / collapse a section of a row without ad id');
462
- return;
463
- }
464
- // check if section already in collapsedSection
465
- if (!this.collapsedSection[section.id]) {
466
- // adding element and row, setting it to expanded
467
- this.collapsedSection[section.id] = {};
468
- this.collapsedSection[section.id][row.id] = true;
469
- }
470
- else {
471
- const s = this.collapsedSection[section.id];
472
- if (!s[row.id]) {
473
- s[row.id] = true;
474
- }
475
- else {
476
- s[row.id] = !s[row.id];
477
- }
478
- }
479
- // triggering rendering
480
- this.collapsedSection = Object.assign({}, this.collapsedSection);
481
- }
482
- onRowAction(row) {
483
- if (!row) {
484
- return;
485
- }
486
- if (row === this.rowActionMenuOpened) {
487
- // closing menu
488
- this.rowActionMenuOpened = null;
489
- return;
490
- }
491
- if (row.actions) {
492
- // actions already loaded -> show menu
493
- this.rowActionMenuOpened = row;
494
- }
495
- else {
496
- // no actions -> triggering event
497
- this.kupRowActionMenuClick.emit({
498
- comp: this,
499
- id: this.rootElement.id,
500
- row,
501
- });
502
- }
503
- }
504
- onRowActionClick(row, action, index) {
505
- this.kupRowActionClick.emit({
506
- comp: this,
507
- id: this.rootElement.id,
508
- row,
509
- action,
510
- index,
511
- });
512
- }
513
- /**
514
- * see onDocumentClick in kup-combo
515
- */
516
- clickFunction(event) {
517
- try {
518
- const targets = event.composedPath();
519
- for (let target of targets) {
520
- if (this.checkIfElementIsActionMenuIcon(target)) {
521
- return;
522
- }
523
- }
524
- }
525
- catch (err) {
526
- if (this.checkIfElementIsActionMenuIcon(event.target)) {
527
- return;
528
- }
529
- }
530
- this.rowActionMenuOpened = null;
531
- }
532
- handlePageChange(pageNumber) {
533
- const newPage = pageChange(pageNumber, this.filteredRows.length, this.currentRowsPerPage);
534
- if (newPage) {
535
- this.currentPage = newPage;
536
- }
537
- }
538
- handleRowsPerPageChange(rowsNumber) {
539
- const newRows = rowsPerPageChange(rowsNumber, this.filteredRows.length);
540
- if (newRows) {
541
- this.currentRowsPerPage = newRows;
542
- this.adjustPaginator();
543
- }
544
- }
545
- adjustPaginator() {
546
- const numberOfRows = this.rows.length;
547
- // check if current page is valid
548
- const numberOfPages = Math.ceil(numberOfRows / this.currentRowsPerPage);
549
- if (this.currentPage > numberOfPages) {
550
- // reset page
551
- this.currentPage = 1;
552
- }
553
- }
554
- // render methods
555
- renderSectionAsCard(row) {
556
- let skipPush = false;
557
- const cardData = {
558
- button: [],
559
- cell: [],
560
- columns: [],
561
- image: [],
562
- progressbar: [],
563
- text: [],
564
- };
565
- for (let index = 0; index < this.data.columns.length; index++) {
566
- const column = this.data.columns[index];
567
- if (column.visible !== false) {
568
- cardData.cell.push(row.cells[column.name]);
569
- cardData.columns.push(column);
570
- }
571
- }
572
- //First cycle sets specific binds between cardIDs and cells
573
- for (const key in row.cells) {
574
- if (row.cells.hasOwnProperty(key)) {
575
- const cell = row.cells[key];
576
- if (cell.cardID !== undefined && cell.obj) {
577
- switch (cell.obj.p) {
578
- case 'BTN':
579
- do {
580
- cardData.button.push({});
581
- } while (cardData.button.length < cell.cardID);
582
- cardData.button[cell.cardID] = {
583
- label: cell.value,
584
- };
585
- break;
586
- case 'IMG':
587
- do {
588
- cardData.image.push({});
589
- } while (cardData.image.length < cell.cardID);
590
- cardData.image[cell.cardID] = {
591
- resource: cell.value,
592
- };
593
- break;
594
- case 'PGB':
595
- do {
596
- cardData.progressbar.push({});
597
- } while (cardData.progressbar.length < cell.cardID);
598
- cardData.progressbar[cell.cardID] = {
599
- value: cell.value,
600
- };
601
- break;
602
- default:
603
- do {
604
- cardData.text.push('');
605
- } while (cardData.text.length < cell.cardID);
606
- cardData.text[cell.cardID] = cell.value;
607
- break;
608
- }
609
- }
610
- }
611
- }
612
- //Second cycle sets leftover binds automatically
613
- for (const key in row.cells) {
614
- if (row.cells.hasOwnProperty(key)) {
615
- const cell = row.cells[key];
616
- if (cell.cardID === undefined && cell.obj) {
617
- skipPush = false;
618
- switch (cell.obj.p) {
619
- case 'BTN':
620
- for (let index = 0; index < cardData.button.length; index++) {
621
- //If there are empty elements, the first one will be used
622
- if (!Object.keys(cardData.button[index]).length) {
623
- cardData.button[index] = {
624
- label: cell.value,
625
- };
626
- skipPush = true;
627
- break;
628
- }
629
- }
630
- //Otherwise a new element will be pushed
631
- if (!skipPush) {
632
- cardData.button.push({
633
- label: cell.value,
634
- });
635
- }
636
- break;
637
- case 'IMG':
638
- for (let index = 0; index < cardData.image.length; index++) {
639
- //If there are empty elements, the first one will be used
640
- if (!Object.keys(cardData.image[index]).length) {
641
- cardData.image[index] = {
642
- resource: cell.value,
643
- };
644
- skipPush = true;
645
- break;
646
- }
647
- }
648
- //Otherwise a new element will be pushed
649
- if (!skipPush) {
650
- cardData.image.push({
651
- resource: cell.value,
652
- });
653
- }
654
- break;
655
- case 'PGB':
656
- for (let index = 0; index < cardData.progressbar.length; index++) {
657
- //If there are empty elements, the first one will be used
658
- if (!Object.keys(cardData.progressbar[index])
659
- .length) {
660
- cardData.progressbar[index] = {
661
- value: cell.value,
662
- };
663
- skipPush = true;
664
- break;
665
- }
666
- }
667
- //Otherwise a new element will be pushed
668
- if (!skipPush) {
669
- cardData.progressbar.push({
670
- value: cell.value,
671
- });
672
- }
673
- break;
674
- default:
675
- for (let index = 0; index < cardData.text.length; index++) {
676
- //If there are empty elements, the first one will be used
677
- if (cardData.text[index] === '') {
678
- cardData.text[index] = cell.value;
679
- skipPush = true;
680
- break;
681
- }
682
- }
683
- //Otherwise a new element will be pushed
684
- if (!skipPush) {
685
- cardData.text.push(cell.value);
686
- }
687
- break;
688
- }
689
- }
690
- }
691
- }
692
- return h("kup-card", Object.assign({ data: cardData }, this.cardData));
693
- }
694
- renderRow(row) {
695
- const visibleColumns = [...this.visibleColumns];
696
- let boxContent = null;
697
- // if layout in row, use that one
698
- let rowLayout = row.layout;
699
- if (!rowLayout) {
700
- // otherwise, use 'default' layout
701
- rowLayout = this.boxLayout;
702
- }
703
- let horizontal = false;
704
- if (rowLayout) {
705
- if (rowLayout.horizontal) {
706
- horizontal = true;
707
- }
708
- const sections = rowLayout.sections;
709
- let size = sections.length;
710
- let cnt = 0;
711
- if (size > 0) {
712
- boxContent = [];
713
- }
714
- // create fake parent section
715
- const parent = {
716
- horizontal: horizontal,
717
- };
718
- while (size-- > 0) {
719
- if (this.cardData !== null &&
720
- this.cardData !== undefined &&
721
- typeof this.cardData === 'object') {
722
- boxContent.push(this.renderSectionAsCard(row));
723
- }
724
- else {
725
- boxContent.push(this.renderSection(sections[cnt++], parent, row, visibleColumns));
726
- }
727
- }
728
- }
729
- var isSelected = false;
730
- for (let select of this.selectedRows) {
731
- if (select.id === row.id) {
732
- isSelected = true;
733
- }
734
- }
735
- let multiSel = null;
736
- if (this.multiSelection) {
737
- multiSel = (h("div", { class: "box-selection" }, h("kup-checkbox", { checked: isSelected })));
738
- }
739
- let rowObject = null;
740
- if (this.enableRowActions && !this.swipeDisabled) {
741
- const menuClass = {
742
- 'row-action-menu': true,
743
- open: row === this.rowActionMenuOpened,
744
- };
745
- let rowActionMenuContent = null;
746
- if (row.actions) {
747
- const actionItems = row.actions.map((item, index) => {
748
- const iconClass = `icon ${item.icon}`;
749
- return (h("li", { tabindex: "0", onClick: () => this.onRowActionClick(row, item, index) }, h("div", { class: iconClass }), h("div", { class: "text" }, item.text)));
750
- });
751
- rowActionMenuContent = h("ul", null, actionItems);
752
- }
753
- rowObject = (h("div", { class: "row-actions-wrapper" }, h("div", { class: "row-actions-toggler" }, h("svg", { version: "1.1", width: "24", height: "24", viewBox: "0 0 24 24", onClick: () => this.onRowAction(row) }, h("path", { d: "M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z" })), h("div", { class: menuClass }, rowActionMenuContent))));
754
- }
755
- let badges = null;
756
- if (row.badgeData && row.badgeData.length > 0) {
757
- badges = row.badgeData.map((badge) => (h("kup-badge", { text: badge.text, class: badge['className']
758
- ? `centered ${badge['className']}`
759
- : 'centered', imageData: badge.imageData })));
760
- }
761
- const boxClass = {
762
- box: true,
763
- draggable: this.dragEnabled,
764
- selected: this.showSelection && isSelected,
765
- column: !horizontal,
766
- };
767
- const rowStyle = row.style || {};
768
- return (h("div", { class: "box-wrapper", style: rowStyle }, h("div", { class: boxClass, onClick: (e) => this.onBoxClick(e, row), ref: (el) => this.rowsRefs.push(el) }, multiSel, boxContent, badges), rowObject));
769
- }
770
- renderSection(section, parent, row, visibleColumns) {
771
- let sectionContent = null;
772
- if (section.sections && section.sections.length > 0) {
773
- // rendering child
774
- const sections = section.sections;
775
- let size = sections.length;
776
- let cnt = 0;
777
- if (size > 0) {
778
- sectionContent = [];
779
- }
780
- while (size-- > 0) {
781
- sectionContent.push(this.renderSection(sections[cnt++], section, row, visibleColumns));
782
- }
783
- }
784
- else if (section.content) {
785
- // rendering box objects
786
- const content = section.content;
787
- let size = content.length;
788
- let cnt = 0;
789
- if (size > 0) {
790
- sectionContent = [];
791
- }
792
- while (size-- > 0) {
793
- sectionContent.push(this.renderBoxObject({
794
- boxObject: content[cnt++],
795
- row,
796
- visibleColumns,
797
- }, true));
798
- }
799
- }
800
- else if (visibleColumns.length > 0) {
801
- const column = visibleColumns[0];
802
- sectionContent = this.renderBoxObject({
803
- boxObject: { column: column.name },
804
- row,
805
- visibleColumns,
806
- });
807
- }
808
- const sectionExpanded = this.isSectionExpanded(row, section);
809
- const isGrid = !!section.columns;
810
- const sectionClass = {
811
- 'box-section': true,
812
- open: sectionExpanded,
813
- column: !isGrid && !section.horizontal,
814
- grid: isGrid,
815
- titled: !!section.title,
816
- 'last-child': !section.sections || section.sections.length === 0,
817
- };
818
- const sectionStyle = section.style || {};
819
- if (section.dim && parent) {
820
- sectionStyle.flex = `0 0 ${section.dim}`;
821
- if (parent.horizontal) {
822
- sectionStyle.maxWidth = section.dim;
823
- }
824
- else {
825
- sectionStyle.maxHeight = section.dim;
826
- }
827
- }
828
- if (isGrid) {
829
- sectionStyle['grid-template-columns'] = `repeat(${section.columns}, 1fr)`;
830
- }
831
- let sectionContainer = null;
832
- if (section.collapsible) {
833
- sectionClass['collapse-section'] = true;
834
- const contentClass = {
835
- content: true,
836
- };
837
- // TODO I18N
838
- let headerTitle = '';
839
- if (section.title) {
840
- headerTitle = section.title;
841
- }
842
- else if (sectionExpanded) {
843
- headerTitle = this.kupManager.language.translate(KupLanguageGeneric.COLLAPSE);
844
- }
845
- else {
846
- headerTitle = this.kupManager.language.translate(KupLanguageGeneric.EXPAND);
847
- }
848
- sectionContainer = (h("div", { class: sectionClass, style: sectionStyle }, h("div", { class: contentClass }, sectionContent), h("div", { class: "header", role: "button", onClick: (e) => {
849
- e.stopPropagation();
850
- this.toggleSectionExpand(row, section);
851
- } }, h("div", { class: "header-content" }, h("span", null, headerTitle), h(FImage, { resource: `${KupThemeIconValues.DROPDOWN}`, sizeX: "1.25em", sizeY: "1.25em", wrapperClass: sectionExpanded ? 'toggled' : '' })))));
852
- }
853
- else {
854
- const title = section.title ? h("h3", null, section.title) : null;
855
- sectionContainer = (h("div", { class: sectionClass, style: sectionStyle }, title, sectionContent));
856
- }
857
- return sectionContainer;
858
- }
859
- renderBoxObject({ boxObject, row, visibleColumns, }, fromSection) {
860
- const classObj = {
861
- 'box-object': true,
862
- };
863
- const boStyle = {};
864
- let column = null;
865
- let index = -1;
866
- for (let i = 0; i < visibleColumns.length; i++) {
867
- const c = visibleColumns[i];
868
- if (c.name === boxObject.column) {
869
- index = i;
870
- break;
871
- }
872
- }
873
- if (index >= 0) {
874
- column = visibleColumns[index];
875
- visibleColumns.splice(index, 1);
876
- }
877
- else if (fromSection) {
878
- column = this.data.columns.find((x) => x.name === boxObject.column);
879
- }
880
- const cell = row.cells[boxObject.column];
881
- let title = undefined;
882
- if (cell && !this.kupManager.objects.isEmptyKupObj(cell.obj)) {
883
- classObj['is-obj'] = true;
884
- if (this.kupManager.debug.isDebug()) {
885
- title =
886
- cell.obj.t + '; ' + cell.obj.p + '; ' + cell.obj.k + ';';
887
- }
888
- }
889
- const cellProps = {
890
- cell: cell,
891
- column: column,
892
- component: this,
893
- editable: this.editableData,
894
- renderKup: true,
895
- row: row,
896
- setSizes: true,
897
- shape: boxObject.shape,
898
- };
899
- return (h("div", { "data-cell": cell, "data-row": row, "data-column": boxObject.column, class: classObj, style: boStyle, title: title }, cell && column ? (h(FCell, Object.assign({}, cellProps))) : (h("span", null, boxObject.value))));
900
- }
901
- /**
902
- * Prepares the kanban sections by sorting the boxlist's data.
903
- * @returns {{jsx: VNode[], style: { [index: string]: string }}} jsx contains the virtual nodes of the Kanban sections, style contains the grid CSS settings.
904
- */
905
- kanbanMode() {
906
- // Testing whether there are columns to group by
907
- if (!this.kanban.columns || this.kanban.columns.length === 0) {
908
- this.kupManager.debug.logMessage(this, 'No columns to group by detected.', KupDebugCategory.ERROR);
909
- return {
910
- jsx: (h("div", { id: "empty-data-message", class: "box-wrapper" }, h("div", { ref: (el) => this.rowsRefs.push(el) }), this.kupManager.language.translate(KupLanguageGeneric.EMPTY_DATA))),
911
- style: { 'grid-template-columns': `repeat(1, 1fr)` },
912
- };
913
- }
914
- const kanbanSections = [];
915
- // Creating empty sections from prop-defined labels
916
- if (this.kanban.labels) {
917
- for (let index = 0; index < this.kanban.labels.length; index++) {
918
- const key = this.kanban.labels[index];
919
- kanbanSections.push({ labels: key, nodes: [] });
920
- }
921
- }
922
- // Browsing all rows
923
- for (let index = 0; index < this.rows.length; index++) {
924
- let key = [];
925
- // Creating the key for the current row
926
- for (let j = 0; j < this.kanban.columns.length; j++) {
927
- try {
928
- key.push(this.rows[index].cells[this.kanban.columns[j]].value);
929
- }
930
- catch (error) {
931
- this.kupManager.debug.logMessage(this, error, KupDebugCategory.WARNING);
932
- }
933
- }
934
- const check = {
935
- found: false,
936
- index: null,
937
- };
938
- // Browsing key array to search whether the current key exists or not
939
- for (let j = 0; j < kanbanSections.length; j++) {
940
- let sortingKey = kanbanSections[j].labels;
941
- let found = true;
942
- for (let i = 0; i < sortingKey.length; i++) {
943
- if (key[i] !== sortingKey[i]) {
944
- found = false;
945
- break;
946
- }
947
- }
948
- if (found) {
949
- check.found = true;
950
- check.index = j;
951
- break;
952
- }
953
- }
954
- // If current key exists, box will be pushed into the existing array of virtual nodes
955
- if (check.found) {
956
- kanbanSections[check.index].nodes.push(this.renderRow(this.rows[index]));
957
- }
958
- else {
959
- // Otherwise, a new section will be defined starting with just the current virtal node
960
- kanbanSections.push({
961
- labels: key,
962
- nodes: [this.renderRow(this.rows[index])],
963
- });
964
- }
965
- }
966
- // Once the arrays are set, they need to be emptied into columns
967
- const kanbanJSX = [];
968
- for (let index = 0; index < kanbanSections.length; index++) {
969
- const sortingKey = kanbanSections[index].labels;
970
- const props = {
971
- data: [],
972
- };
973
- for (let index = 0; index < sortingKey.length; index++) {
974
- props.data.push({
975
- value: sortingKey[index],
976
- id: sortingKey[index],
977
- });
978
- }
979
- kanbanJSX.push(h("div", { class: "kanban-section" }, h(FChip, Object.assign({}, props)), kanbanSections[index].nodes));
980
- }
981
- return {
982
- jsx: kanbanJSX,
983
- style: {
984
- 'grid-template-columns': this.kanban.isStacked
985
- ? 'repeat(1fr)'
986
- : this.kanban.size
987
- ? `repeat(${Object.keys(kanbanSections).length}, ${this.kanban.size})`
988
- : `repeat(${Object.keys(kanbanSections).length}, 1fr)`,
989
- },
990
- };
991
- }
992
- didLoadInteractables() {
993
- this.interactableTouch.push(this.boxContainer);
994
- const tapCb = (e) => {
995
- if (this.hold) {
996
- this.hold = false;
997
- return;
998
- }
999
- switch (e.button) {
1000
- case 2:
1001
- this.kupBoxContextMenu.emit({
1002
- comp: this,
1003
- id: this.rootElement.id,
1004
- details: this.contextMenuHandler(e),
1005
- });
1006
- break;
1007
- }
1008
- };
1009
- const holdCb = (e) => {
1010
- if (e.pointerType === 'pen' || e.pointerType === 'touch') {
1011
- this.hold = true;
1012
- this.kupBoxContextMenu.emit({
1013
- comp: this,
1014
- id: this.rootElement.id,
1015
- details: this.contextMenuHandler(e),
1016
- });
1017
- }
1018
- };
1019
- this.kupManager.interact.on(this.boxContainer, KupPointerEventTypes.TAP, tapCb);
1020
- this.kupManager.interact.on(this.boxContainer, KupPointerEventTypes.HOLD, holdCb);
1021
- }
1022
- didRenderInteractables() {
1023
- if (this.dragEnabled) {
1024
- for (let index = 0; index < this.rowsRefs.length; index++) {
1025
- const row = this.rowsRefs[index];
1026
- const dataCb = () => {
1027
- const cellEl = this.rootElement.shadowRoot.querySelector('.box-object:hover');
1028
- return {
1029
- cell: cellEl['data-cell'],
1030
- column: getColumnByName(this.visibleColumns, cellEl.dataset.column),
1031
- id: this.rootElement.id,
1032
- multiple: this.multiSelection,
1033
- row: cellEl['data-row'],
1034
- selectedRows: this.selectedRows,
1035
- };
1036
- };
1037
- if (row && !this.interactableDrag.includes(row)) {
1038
- this.interactableDrag.push(row);
1039
- this.kupManager.interact.draggable(row, {
1040
- allowFrom: '.box-object',
1041
- cursorChecker() {
1042
- return null;
1043
- },
1044
- }, {
1045
- callback: dataCb,
1046
- }, KupDragEffect.BADGE);
1047
- }
1048
- }
1049
- }
1050
- if (this.dropEnabled) {
1051
- const dataCb = () => {
1052
- const receivingDetails = this.getEventDetails(this.rootElement.shadowRoot.querySelector('.box:hover'));
1053
- return {
1054
- cell: receivingDetails.cell,
1055
- column: receivingDetails.column,
1056
- id: this.rootElement.id,
1057
- row: receivingDetails.row,
1058
- };
1059
- };
1060
- if (!this.interactableDrop.includes(this.sectionRef)) {
1061
- this.interactableDrop.push(this.sectionRef);
1062
- this.kupManager.interact.dropzone(this.sectionRef, {
1063
- accept: `[${kupDraggableCellAttr}]`,
1064
- }, {
1065
- dispatcher: this.rootElement,
1066
- type: KupDropEventTypes.BOX,
1067
- });
1068
- }
1069
- for (let index = 0; index < this.rowsRefs.length; index++) {
1070
- const row = this.rowsRefs[index];
1071
- if (row && !this.interactableDrop.includes(row)) {
1072
- this.interactableDrop.push(row);
1073
- this.kupManager.interact.dropzone(row, {
1074
- accept: `[${kupDraggableCellAttr}]`,
1075
- }, {
1076
- callback: dataCb,
1077
- dispatcher: this.rootElement,
1078
- type: KupDropEventTypes.BOX,
1079
- });
1080
- }
1081
- }
1082
- }
1083
- }
1084
- /*-------------------------------------------------*/
1085
- /* L i f e c y c l e H o o k s */
1086
- /*-------------------------------------------------*/
1087
- componentWillLoad() {
1088
- this.kupManager.debug.logLoad(this, false);
1089
- if (this.rowsPerPage) {
1090
- this.currentRowsPerPage = this.rowsPerPage;
1091
- }
1092
- else if (this.pageSize) {
1093
- this.currentRowsPerPage = this.pageSize;
1094
- }
1095
- if (this.data &&
1096
- this.data.rows &&
1097
- this.currentRowsPerPage > this.data.rows.length) {
1098
- this.currentRowsPerPage = this.data.rows.length;
1099
- }
1100
- this.kupManager.language.register(this);
1101
- this.kupManager.theme.register(this);
1102
- this.onDataChanged();
1103
- this.adjustPaginator();
1104
- }
1105
- componentDidLoad() {
1106
- this.handleAutomaticBoxSelection();
1107
- // When component is created, then the listener is set. @See clickFunction for more details
1108
- document.addEventListener('click', this.clickFunction.bind(this));
1109
- this.currentPage = this.pageSelected;
1110
- if (this.multiSelection && this.selectedRowsState) {
1111
- this.selectedRows = [];
1112
- let selectedIds = this.selectedRowsState.split(';');
1113
- this.selectedRows = this.data.rows.filter((r) => {
1114
- return selectedIds.indexOf(r.id) >= 0;
1115
- });
1116
- }
1117
- this.didLoadInteractables();
1118
- this.kupDidLoad.emit({ comp: this, id: this.rootElement.id });
1119
- this.kupManager.debug.logLoad(this, true);
1120
- }
1121
- componentWillRender() {
1122
- this.kupManager.debug.logRender(this, false);
1123
- }
1124
- componentDidRender() {
1125
- const root = this.rootElement.shadowRoot;
1126
- if (root) {
1127
- const fs = root.querySelectorAll('.f-text-field');
1128
- for (let index = 0; index < fs.length; index++) {
1129
- FTextFieldMDC(fs[index]);
1130
- }
1131
- }
1132
- this.checkScrollOnHover();
1133
- this.persistState();
1134
- this.didRenderInteractables();
1135
- this.kupManager.debug.logRender(this, true);
1136
- }
1137
- render() {
1138
- const isKanban = !!(typeof this.kanban === 'object' && this.kanban !== null);
1139
- let sortPanel = null;
1140
- if (this.sortEnabled) {
1141
- // creating items
1142
- const visibleColumnsItems = this.visibleColumns.map((column) => {
1143
- const item = {
1144
- value: column.title,
1145
- id: column.name,
1146
- selected: column.name === this.sortBy,
1147
- };
1148
- return item;
1149
- });
1150
- const items = [{ value: '', id: '' }, ...visibleColumnsItems];
1151
- let textfieldData = {
1152
- label: this.kupManager.language.translate(KupLanguageGeneric.SORT_BY),
1153
- trailingIcon: true,
1154
- };
1155
- let listData = {
1156
- data: items,
1157
- selectable: true,
1158
- };
1159
- let data = {
1160
- 'kup-text-field': textfieldData,
1161
- 'kup-list': listData,
1162
- };
1163
- sortPanel = (h("div", { id: "sort-panel" }, h("kup-combobox", { data: data, initialValue: this.sortBy, "onkup-combobox-itemclick": (e) => this.onSortChange(e) })));
1164
- }
1165
- let filterPanel = null;
1166
- if (this.globalFilter) {
1167
- filterPanel = (h("div", { id: "global-filter" }, h("kup-text-field", { fullWidth: true, label: this.kupManager.language.translate(KupLanguageSearch.SEARCH), icon: KupThemeIconValues.SEARCH, initialValue: this.globalFilterValue, "onkup-textfield-input": (event) => {
1168
- window.clearTimeout(this.globalFilterTimeout);
1169
- this.globalFilterTimeout = window.setTimeout(() => this.onGlobalFilterChange(event), 600);
1170
- } })));
1171
- }
1172
- let paginator = null;
1173
- if (this.pagination) {
1174
- paginator = (h(FPaginator, { id: top ? 'top-paginator' : 'bottom-paginator', currentPage: this.currentPage, max: this.filteredRows.length, mode: FPaginatorMode.SIMPLE, perPage: this.currentRowsPerPage
1175
- ? this.currentRowsPerPage
1176
- : this.pageSize, onPageChange: (e) => this.handlePageChange(e.detail.value), onRowsChange: (e) => this.handleRowsPerPageChange(e.detail.value) }));
1177
- }
1178
- let boxContent = null;
1179
- let containerStyle = {};
1180
- if (this.rows.length === 0) {
1181
- boxContent = (h("div", { id: "empty-data-message", class: "box-wrapper" }, h("div", { class: "box", ref: (el) => this.rowsRefs.push(el) }, this.kupManager.language.translate(KupLanguageGeneric.EMPTY_DATA))));
1182
- containerStyle = { 'grid-template-columns': `repeat(1, 1fr)` };
1183
- }
1184
- else if (isKanban) {
1185
- const kanban = this.kanbanMode();
1186
- boxContent = kanban.jsx;
1187
- containerStyle = kanban.style;
1188
- }
1189
- else {
1190
- containerStyle = {
1191
- 'grid-template-columns': `repeat(${this.columns}, 1fr)`,
1192
- };
1193
- const rows = this.rows;
1194
- let size = rows.length;
1195
- let cnt = 0;
1196
- boxContent = [];
1197
- while (size-- > 0) {
1198
- boxContent.push(this.renderRow(rows[cnt++]));
1199
- }
1200
- }
1201
- return (h(Host, null, h("style", null, this.kupManager.theme.setKupStyle(this.rootElement)), h("div", { id: componentWrapperId }, h("div", { class: 'box-component', ref: (el) => (this.sectionRef = el) }, sortPanel, filterPanel, paginator, h("div", { class: isKanban ? 'is-kanban' : '', id: 'box-container', style: containerStyle, onContextMenu: (e) => {
1202
- e.preventDefault();
1203
- }, ref: (el) => (this.boxContainer =
1204
- el) }, boxContent)))));
1205
- }
1206
- disconnectedCallback() {
1207
- this.kupManager.interact.unregister(this.interactableDrag.concat(this.interactableDrop));
1208
- this.kupManager.language.unregister(this);
1209
- this.kupManager.theme.unregister(this);
1210
- if (this.scrollOnHover) {
1211
- this.kupManager.scrollOnHover.unregister(this.boxContainer);
1212
- }
1213
- // When component is destroyed, then the listener is removed. @See clickFunction for more details
1214
- document.removeEventListener('click', this.clickFunction.bind(this));
1215
- this.kupDidUnload.emit({ comp: this, id: this.rootElement.id });
1216
- }
1217
- get rootElement() { return this; }
1218
- static get watchers() { return {
1219
- "pageSize": ["rowsPerPageHandler", "recalculateRows"],
1220
- "globalFilterValue": ["recalculateRows"],
1221
- "sortBy": ["recalculateRows"],
1222
- "pagination": ["recalculateRows"],
1223
- "currentPage": ["recalculateRows"],
1224
- "currentRowsPerPage": ["recalculateRows"],
1225
- "data": ["onDataChanged"],
1226
- "layout": ["onLayoutChanged"],
1227
- "selectBox": ["onSelectBoxChanged"]
1228
- }; }
1229
- static get style() { return kupBoxCss; }
1230
- }, [1, "kup-box", {
1231
- "cardData": [16],
1232
- "columns": [2],
1233
- "customStyle": [1, "custom-style"],
1234
- "data": [16],
1235
- "dragEnabled": [4, "drag-enabled"],
1236
- "dropEnabled": [4, "drop-enabled"],
1237
- "dropOnSection": [4, "drop-on-section"],
1238
- "editableData": [4, "editable-data"],
1239
- "enableRowActions": [4, "enable-row-actions"],
1240
- "globalFilter": [4, "global-filter"],
1241
- "globalFilterValue": [1537, "global-filter-value"],
1242
- "kanban": [16],
1243
- "layout": [16],
1244
- "multiSelection": [4, "multi-selection"],
1245
- "pageSelected": [2, "page-selected"],
1246
- "pageSize": [2, "page-size"],
1247
- "pagination": [4],
1248
- "rowsPerPage": [2, "rows-per-page"],
1249
- "scrollOnHover": [4, "scroll-on-hover"],
1250
- "selectBox": [2, "select-box"],
1251
- "selectedRowsState": [1025, "selected-rows-state"],
1252
- "showSelection": [4, "show-selection"],
1253
- "sortBy": [1025, "sort-by"],
1254
- "sortEnabled": [4, "sort-enabled"],
1255
- "stateId": [1, "state-id"],
1256
- "store": [16],
1257
- "swipeDisabled": [4, "swipe-disabled"],
1258
- "collapsedSection": [32],
1259
- "selectedRows": [32],
1260
- "rowActionMenuOpened": [32],
1261
- "currentPage": [32],
1262
- "currentRowsPerPage": [32],
1263
- "getProps": [64],
1264
- "loadRowActions": [64],
1265
- "refresh": [64],
1266
- "setProps": [64]
1267
- }]);
1268
- function defineCustomElement() {
1269
- if (typeof customElements === "undefined") {
1270
- return;
1271
- }
1272
- const components = ["kup-box", "kup-autocomplete", "kup-badge", "kup-button", "kup-button-list", "kup-card", "kup-chart", "kup-checkbox", "kup-chip", "kup-color-picker", "kup-combobox", "kup-data-table", "kup-date-picker", "kup-dialog", "kup-dropdown-button", "kup-form", "kup-gauge", "kup-image", "kup-list", "kup-progress-bar", "kup-radio", "kup-rating", "kup-spinner", "kup-switch", "kup-tab-bar", "kup-text-field", "kup-time-picker", "kup-tree"];
1273
- components.forEach(tagName => { switch (tagName) {
1274
- case "kup-box":
1275
- if (!customElements.get(tagName)) {
1276
- customElements.define(tagName, KupBox);
1277
- }
1278
- break;
1279
- case "kup-autocomplete":
1280
- if (!customElements.get(tagName)) {
1281
- defineCustomElement$r();
1282
- }
1283
- break;
1284
- case "kup-badge":
1285
- if (!customElements.get(tagName)) {
1286
- defineCustomElement$q();
1287
- }
1288
- break;
1289
- case "kup-button":
1290
- if (!customElements.get(tagName)) {
1291
- defineCustomElement$p();
1292
- }
1293
- break;
1294
- case "kup-button-list":
1295
- if (!customElements.get(tagName)) {
1296
- defineCustomElement$o();
1297
- }
1298
- break;
1299
- case "kup-card":
1300
- if (!customElements.get(tagName)) {
1301
- defineCustomElement$n();
1302
- }
1303
- break;
1304
- case "kup-chart":
1305
- if (!customElements.get(tagName)) {
1306
- defineCustomElement$m();
1307
- }
1308
- break;
1309
- case "kup-checkbox":
1310
- if (!customElements.get(tagName)) {
1311
- defineCustomElement$l();
1312
- }
1313
- break;
1314
- case "kup-chip":
1315
- if (!customElements.get(tagName)) {
1316
- defineCustomElement$k();
1317
- }
1318
- break;
1319
- case "kup-color-picker":
1320
- if (!customElements.get(tagName)) {
1321
- defineCustomElement$j();
1322
- }
1323
- break;
1324
- case "kup-combobox":
1325
- if (!customElements.get(tagName)) {
1326
- defineCustomElement$i();
1327
- }
1328
- break;
1329
- case "kup-data-table":
1330
- if (!customElements.get(tagName)) {
1331
- defineCustomElement$h();
1332
- }
1333
- break;
1334
- case "kup-date-picker":
1335
- if (!customElements.get(tagName)) {
1336
- defineCustomElement$g();
1337
- }
1338
- break;
1339
- case "kup-dialog":
1340
- if (!customElements.get(tagName)) {
1341
- defineCustomElement$f();
1342
- }
1343
- break;
1344
- case "kup-dropdown-button":
1345
- if (!customElements.get(tagName)) {
1346
- defineCustomElement$e();
1347
- }
1348
- break;
1349
- case "kup-form":
1350
- if (!customElements.get(tagName)) {
1351
- defineCustomElement$d();
1352
- }
1353
- break;
1354
- case "kup-gauge":
1355
- if (!customElements.get(tagName)) {
1356
- defineCustomElement$c();
1357
- }
1358
- break;
1359
- case "kup-image":
1360
- if (!customElements.get(tagName)) {
1361
- defineCustomElement$b();
1362
- }
1363
- break;
1364
- case "kup-list":
1365
- if (!customElements.get(tagName)) {
1366
- defineCustomElement$a();
1367
- }
1368
- break;
1369
- case "kup-progress-bar":
1370
- if (!customElements.get(tagName)) {
1371
- defineCustomElement$9();
1372
- }
1373
- break;
1374
- case "kup-radio":
1375
- if (!customElements.get(tagName)) {
1376
- defineCustomElement$8();
1377
- }
1378
- break;
1379
- case "kup-rating":
1380
- if (!customElements.get(tagName)) {
1381
- defineCustomElement$7();
1382
- }
1383
- break;
1384
- case "kup-spinner":
1385
- if (!customElements.get(tagName)) {
1386
- defineCustomElement$6();
1387
- }
1388
- break;
1389
- case "kup-switch":
1390
- if (!customElements.get(tagName)) {
1391
- defineCustomElement$5();
1392
- }
1393
- break;
1394
- case "kup-tab-bar":
1395
- if (!customElements.get(tagName)) {
1396
- defineCustomElement$4();
1397
- }
1398
- break;
1399
- case "kup-text-field":
1400
- if (!customElements.get(tagName)) {
1401
- defineCustomElement$3();
1402
- }
1403
- break;
1404
- case "kup-time-picker":
1405
- if (!customElements.get(tagName)) {
1406
- defineCustomElement$2();
1407
- }
1408
- break;
1409
- case "kup-tree":
1410
- if (!customElements.get(tagName)) {
1411
- defineCustomElement$1();
1412
- }
1413
- break;
1414
- } });
57
+ var __classPrivateFieldGet = (undefined && undefined.__classPrivateFieldGet) || function (receiver, state, kind, f) {
58
+ if (kind === "a" && !f)
59
+ throw new TypeError("Private accessor was defined without a getter");
60
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
61
+ throw new TypeError("Cannot read private member from an object whose class did not declare it");
62
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
63
+ };
64
+ var __classPrivateFieldSet = (undefined && undefined.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
65
+ if (kind === "m")
66
+ throw new TypeError("Private method is not writable");
67
+ if (kind === "a" && !f)
68
+ throw new TypeError("Private accessor was defined without a setter");
69
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver))
70
+ throw new TypeError("Cannot write private member to an object whose class did not declare it");
71
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
72
+ };
73
+ var _KupBox_instances, _KupBox_intObserver, _KupBox_rowsRefs, _KupBox_navBarHeight, _KupBox_didRenderObservers, _KupBox_setObserver;
74
+ const KupBox = /*@__PURE__*/ proxyCustomElement(class KupBox extends HTMLElement {
75
+ constructor() {
76
+ super();
77
+ this.__registerHost();
78
+ this.__attachShadow();
79
+ this.kupBoxClick = createEvent(this, "kup-box-click", 6);
80
+ this.kupBoxSelected = createEvent(this, "kup-box-selected", 6);
81
+ this.kupAutoBoxSelect = createEvent(this, "kup-box-autoselect", 6);
82
+ this.kupRowActionMenuClick = createEvent(this, "kup-box-rowactionmenuclick", 6);
83
+ this.kupRowActionClick = createEvent(this, "kup-box-rowactionclick", 6);
84
+ this.kupDidLoad = createEvent(this, "kup-box-didload", 6);
85
+ this.kupDidUnload = createEvent(this, "kup-box-didunload", 6);
86
+ this.kupBoxContextMenu = createEvent(this, "kup-box-contextmenu", 6);
87
+ _KupBox_instances.add(this);
88
+ this.state = new KupBoxState();
89
+ /*-------------------------------------------------*/
90
+ /* I n t e r n a l V a r i a b l e s */
91
+ /*-------------------------------------------------*/
92
+ /**
93
+ * Instance of the KupManager class.
94
+ */
95
+ this.kupManager = kupManagerInstance();
96
+ this.visibleColumns = [];
97
+ this.rows = [];
98
+ this.filteredRows = [];
99
+ this.sectionRef = null;
100
+ this.rowsRefs = [];
101
+ this.hold = false;
102
+ this.interactableDrag = [];
103
+ this.interactableDrop = [];
104
+ this.interactableTouch = [];
105
+ _KupBox_intObserver.set(this, undefined);
106
+ _KupBox_rowsRefs.set(this, []);
107
+ _KupBox_navBarHeight.set(this, 0);
108
+ this.collapsedSection = {};
109
+ this.selectedRows = [];
110
+ this.rowActionMenuOpened = undefined;
111
+ this.currentPage = 1;
112
+ this.currentRowsPerPage = 10;
113
+ this.cardData = null;
114
+ this.columns = 1;
115
+ this.customStyle = '';
116
+ this.data = null;
117
+ this.dragEnabled = false;
118
+ this.dropEnabled = false;
119
+ this.dropOnSection = false;
120
+ this.editableData = false;
121
+ this.enableRowActions = false;
122
+ this.globalFilter = false;
123
+ this.globalFilterValue = '';
124
+ this.kanban = null;
125
+ this.layout = undefined;
126
+ this.lazyLoadRows = false;
127
+ this.multiSelection = false;
128
+ this.pageSelected = 1;
129
+ this.pageSize = 10;
130
+ this.pagination = false;
131
+ this.rowsPerPage = undefined;
132
+ this.scrollOnHover = false;
133
+ this.selectBox = undefined;
134
+ this.selectedRowsState = undefined;
135
+ this.showSelection = true;
136
+ this.sortBy = undefined;
137
+ this.sortEnabled = false;
138
+ this.stateId = '';
139
+ this.store = undefined;
140
+ this.swipeDisabled = false;
141
+ }
142
+ initWithPersistedState() {
143
+ if (this.store && this.stateId) {
144
+ const state = this.store.getState(this.stateId);
145
+ if (state != null) {
146
+ this.kupManager.debug.logMessage(this, 'Initialize with state for stateId ' +
147
+ this.stateId +
148
+ ': ' +
149
+ state);
150
+ // *** PROPS ***
151
+ this.sortBy = this.state.sortBy;
152
+ this.globalFilterValue = this.state.globalFilterValue;
153
+ this.selectedRowsState = this.state.selectedRowsState;
154
+ this.pageSelected = this.state.pageSelected;
155
+ this.rowsPerPage = this.state.rowsPerPage;
156
+ }
157
+ }
158
+ }
159
+ persistState() {
160
+ if (this.store && this.stateId) {
161
+ let somethingChanged = false;
162
+ if (!this.kupManager.objects.deepEqual(this.state.sortBy, this.sortBy)) {
163
+ this.state.sortBy = this.sortBy;
164
+ somethingChanged = true;
165
+ }
166
+ if (!this.kupManager.objects.deepEqual(this.state.globalFilterValue, this.globalFilterValue)) {
167
+ this.state.globalFilterValue = this.globalFilterValue;
168
+ somethingChanged = true;
169
+ }
170
+ if (!this.kupManager.objects.deepEqual(this.state.pageSelected, this.currentPage)) {
171
+ this.state.pageSelected = this.currentPage;
172
+ somethingChanged = true;
173
+ }
174
+ if (!this.kupManager.objects.deepEqual(this.state.rowsPerPage, this.currentRowsPerPage)) {
175
+ this.state.rowsPerPage = this.currentRowsPerPage;
176
+ somethingChanged = true;
177
+ }
178
+ const selectedRowsState = this.selectedRows.reduce((accumulator, row, currentIndex) => {
179
+ const prefix = currentIndex > 0 ? ';' : '';
180
+ return accumulator + prefix + row.id;
181
+ }, '');
182
+ if (!this.kupManager.objects.deepEqual(this.state.selectedRowsState, selectedRowsState)) {
183
+ this.state.selectedRowsState = selectedRowsState;
184
+ somethingChanged = true;
185
+ }
186
+ if (!this.state.load) {
187
+ this.state.load = true;
188
+ return;
189
+ }
190
+ if (somethingChanged) {
191
+ this.kupManager.debug.logMessage(this, 'Persisting state for stateId ' +
192
+ this.stateId +
193
+ ': ' +
194
+ this.state);
195
+ this.store.persistState(this.stateId, this.state);
196
+ }
197
+ }
198
+ }
199
+ /*-------------------------------------------------*/
200
+ /* W a t c h e r s */
201
+ /*-------------------------------------------------*/
202
+ rowsPerPageHandler(newValue) {
203
+ this.currentRowsPerPage = newValue;
204
+ }
205
+ recalculateRows() {
206
+ this.initRows();
207
+ }
208
+ onDataChanged() {
209
+ identify(this.getRows());
210
+ this.initVisibleColumns();
211
+ this.initRows();
212
+ this.checkLayout();
213
+ }
214
+ onLayoutChanged() {
215
+ this.checkLayout();
216
+ }
217
+ onSelectBoxChanged() {
218
+ this.handleAutomaticBoxSelection();
219
+ }
220
+ /*-------------------------------------------------*/
221
+ /* P u b l i c M e t h o d s */
222
+ /*-------------------------------------------------*/
223
+ /**
224
+ * Used to retrieve component's props values.
225
+ * @param {boolean} descriptions - When provided and true, the result will be the list of props with their description.
226
+ * @returns {Promise<GenericObject>} List of props as object, each key will be a prop.
227
+ */
228
+ async getProps(descriptions) {
229
+ return getProps(this, KupBoxProps, descriptions);
230
+ }
231
+ async loadRowActions(row, actions) {
232
+ row.actions = actions;
233
+ // show menu
234
+ this.rowActionMenuOpened = row;
235
+ }
236
+ /**
237
+ * This method is used to trigger a new render of the component.
238
+ */
239
+ async refresh() {
240
+ forceUpdate(this);
241
+ }
242
+ /**
243
+ * Sets the props to the component.
244
+ * @param {GenericObject} props - Object containing props that will be set to the component.
245
+ */
246
+ async setProps(props) {
247
+ setProps(this, KupBoxProps, props);
248
+ }
249
+ /*-------------------------------------------------*/
250
+ /* P r i v a t e M e t h o d s */
251
+ /*-------------------------------------------------*/
252
+ getColumns() {
253
+ return this.data && this.data.columns
254
+ ? this.data.columns
255
+ : [{ title: '', name: '', size: undefined }];
256
+ }
257
+ initVisibleColumns() {
258
+ this.visibleColumns = this.getColumns().filter((column) => {
259
+ if (column.hasOwnProperty('visible')) {
260
+ return column.visible;
261
+ }
262
+ return true;
263
+ });
264
+ }
265
+ getRows() {
266
+ return this.data && this.data.rows ? this.data.rows : [];
267
+ }
268
+ initRows() {
269
+ this.filteredRows = this.getRows();
270
+ if (this.globalFilter && this.globalFilterValue) {
271
+ // filtering rows
272
+ this.filteredRows = filterRows(this.filteredRows, null, this.globalFilterValue, this.visibleColumns);
273
+ }
274
+ this.rows = this.sortRows(this.filteredRows);
275
+ if (this.pagination) {
276
+ this.rows = paginateRows(this.rows, this.currentPage, this.currentRowsPerPage, false);
277
+ }
278
+ }
279
+ sortRows(rows) {
280
+ let sortedRows = rows;
281
+ if (this.sortBy) {
282
+ // create 'fake' sortObject
283
+ const sortObject = {
284
+ column: this.sortBy,
285
+ sortMode: SortMode.A,
286
+ };
287
+ sortedRows = sortRows(sortedRows, [sortObject]);
288
+ }
289
+ return sortedRows;
290
+ }
291
+ checkScrollOnHover() {
292
+ if (!this.kupManager.scrollOnHover.isRegistered(this.boxContainer)) {
293
+ if (this.scrollOnHover) {
294
+ this.kupManager.scrollOnHover.register(this.boxContainer);
295
+ }
296
+ }
297
+ else {
298
+ if (!this.scrollOnHover) {
299
+ this.kupManager.scrollOnHover.unregister(this.boxContainer);
300
+ }
301
+ }
302
+ }
303
+ checkLayout() {
304
+ // check if there is a layout.
305
+ // if not, create a default layout
306
+ if (this.layout) {
307
+ this.boxLayout = this.layout;
308
+ return;
309
+ }
310
+ // only one section, containing all visible fields
311
+ const section = {
312
+ horizontal: false,
313
+ sections: [],
314
+ };
315
+ // adding box objects to section
316
+ const visibleColumns = this.visibleColumns;
317
+ let size = visibleColumns.length;
318
+ let content = [];
319
+ let cnt = 0;
320
+ while (size-- > 0) {
321
+ content.push({
322
+ column: visibleColumns[cnt++].name,
323
+ });
324
+ }
325
+ section.content = content;
326
+ // creating a new layout
327
+ this.boxLayout = {
328
+ sections: [section],
329
+ };
330
+ }
331
+ onSortChange(e) {
332
+ let column = getColumnByName(this.visibleColumns, e.detail.value);
333
+ this.sortBy = column.name;
334
+ }
335
+ onGlobalFilterChange({ detail }) {
336
+ let value = '';
337
+ if (detail && detail.value) {
338
+ value = detail.value;
339
+ }
340
+ this.globalFilterValue = value;
341
+ }
342
+ isSectionExpanded(row, section) {
343
+ if (!row.id || !section.id) {
344
+ return false;
345
+ }
346
+ return (this.collapsedSection[section.id] &&
347
+ this.collapsedSection[section.id][row.id]);
348
+ }
349
+ handleAutomaticBoxSelection() {
350
+ if (this.selectBox &&
351
+ this.selectBox > 0 &&
352
+ this.selectBox <= this.data.rows.length) {
353
+ this.selectedRows = [];
354
+ for (let boxRow of this.data.rows) {
355
+ if (boxRow.id === (this.selectBox - 1).toString()) {
356
+ this.selectedRows.push(boxRow);
357
+ break;
358
+ }
359
+ }
360
+ this.kupAutoBoxSelect.emit({
361
+ comp: this,
362
+ id: this.rootElement.id,
363
+ row: this.selectedRows[0],
364
+ });
365
+ }
366
+ }
367
+ getEventDetails(el, e) {
368
+ let boxObject = null;
369
+ let cell = null;
370
+ let row = null;
371
+ let column = null;
372
+ if (el) {
373
+ boxObject =
374
+ el.closest('.box-object') ||
375
+ el.querySelector('.box-object') ||
376
+ el.closest('.f-cell');
377
+ }
378
+ if (boxObject) {
379
+ if (boxObject.classList.contains('f-cell')) {
380
+ const props = boxObject['kup-get-cell-props']();
381
+ cell = props.cell;
382
+ column = props.column;
383
+ row = props.row;
384
+ }
385
+ else {
386
+ cell = boxObject['data-cell'];
387
+ row = boxObject['data-row'];
388
+ column = getColumnByName(this.visibleColumns, boxObject.dataset.column);
389
+ }
390
+ }
391
+ return {
392
+ boxObject: boxObject ? boxObject : null,
393
+ column: column ? column : null,
394
+ cell: cell ? cell : null,
395
+ originalEvent: e,
396
+ row: row ? row : null,
397
+ };
398
+ }
399
+ contextMenuHandler(e) {
400
+ const details = this.getEventDetails(e.target, e);
401
+ return details;
402
+ }
403
+ /**
404
+ * Checks if the element is the svg that opens the "row actions menu"
405
+ * @param element the element to check
406
+ */
407
+ checkIfElementIsActionMenuIcon(element) {
408
+ if (element.tagName && element.parentElement) {
409
+ return (element.tagName === 'svg' &&
410
+ element.parentElement.classList.contains('row-actions-toggler'));
411
+ }
412
+ return false;
413
+ }
414
+ // event listeners
415
+ onBoxClick({ target }, row) {
416
+ if (!(target instanceof HTMLElement)) {
417
+ return;
418
+ }
419
+ // searching parent
420
+ let element = target;
421
+ let classList = element.classList;
422
+ while (!classList.contains('box-object') &&
423
+ !classList.contains('box-section') &&
424
+ !classList.contains('box')) {
425
+ element = element.parentElement;
426
+ if (element === null) {
427
+ break;
428
+ }
429
+ classList = element.classList;
430
+ }
431
+ // evaluating column
432
+ let column = null;
433
+ if (classList.contains('box-object')) {
434
+ column = element.dataset.column;
435
+ }
436
+ this.kupBoxClick.emit({
437
+ comp: this,
438
+ id: this.rootElement.id,
439
+ row,
440
+ column,
441
+ });
442
+ // selecting box
443
+ if (this.multiSelection) {
444
+ // triggering multi selection
445
+ this.onSelectionCheckChange(row);
446
+ }
447
+ else {
448
+ this.selectedRows = [row];
449
+ }
450
+ }
451
+ onSelectionCheckChange(row) {
452
+ var index = -1;
453
+ for (let i = 0; i < this.selectedRows.length; i++) {
454
+ const select = this.selectedRows[i];
455
+ if (select.id === row.id) {
456
+ index = i;
457
+ break;
458
+ }
459
+ }
460
+ if (index >= 0) {
461
+ // remove row
462
+ this.selectedRows.splice(index, 1);
463
+ this.selectedRows = [...this.selectedRows];
464
+ }
465
+ else {
466
+ // add row
467
+ this.selectedRows = [...this.selectedRows, row];
468
+ }
469
+ this.kupBoxSelected.emit({
470
+ comp: this,
471
+ id: this.rootElement.id,
472
+ rows: this.selectedRows,
473
+ });
474
+ }
475
+ toggleSectionExpand(row, section) {
476
+ // check if section / row has id
477
+ if (!section.id) {
478
+ // error
479
+ console.error('cannot expand / collapse a section withoun an ID');
480
+ return;
481
+ }
482
+ if (!row.id) {
483
+ // error
484
+ console.error('cannot expand / collapse a section of a row without ad id');
485
+ return;
486
+ }
487
+ // check if section already in collapsedSection
488
+ if (!this.collapsedSection[section.id]) {
489
+ // adding element and row, setting it to expanded
490
+ this.collapsedSection[section.id] = {};
491
+ this.collapsedSection[section.id][row.id] = true;
492
+ }
493
+ else {
494
+ const s = this.collapsedSection[section.id];
495
+ if (!s[row.id]) {
496
+ s[row.id] = true;
497
+ }
498
+ else {
499
+ s[row.id] = !s[row.id];
500
+ }
501
+ }
502
+ // triggering rendering
503
+ this.collapsedSection = Object.assign({}, this.collapsedSection);
504
+ }
505
+ onRowAction(row) {
506
+ if (!row) {
507
+ return;
508
+ }
509
+ if (row === this.rowActionMenuOpened) {
510
+ // closing menu
511
+ this.rowActionMenuOpened = null;
512
+ return;
513
+ }
514
+ if (row.actions) {
515
+ // actions already loaded -> show menu
516
+ this.rowActionMenuOpened = row;
517
+ }
518
+ else {
519
+ // no actions -> triggering event
520
+ this.kupRowActionMenuClick.emit({
521
+ comp: this,
522
+ id: this.rootElement.id,
523
+ row,
524
+ });
525
+ }
526
+ }
527
+ onRowActionClick(row, action, index) {
528
+ this.kupRowActionClick.emit({
529
+ comp: this,
530
+ id: this.rootElement.id,
531
+ row,
532
+ action,
533
+ index,
534
+ });
535
+ }
536
+ /**
537
+ * see onDocumentClick in kup-combo
538
+ */
539
+ clickFunction(event) {
540
+ try {
541
+ const targets = event.composedPath();
542
+ for (let target of targets) {
543
+ if (this.checkIfElementIsActionMenuIcon(target)) {
544
+ return;
545
+ }
546
+ }
547
+ }
548
+ catch (err) {
549
+ if (this.checkIfElementIsActionMenuIcon(event.target)) {
550
+ return;
551
+ }
552
+ }
553
+ this.rowActionMenuOpened = null;
554
+ }
555
+ handlePageChange(pageNumber) {
556
+ const newPage = pageChange(pageNumber, this.filteredRows.length, this.currentRowsPerPage);
557
+ if (newPage) {
558
+ this.currentPage = newPage;
559
+ }
560
+ }
561
+ handleRowsPerPageChange(rowsNumber) {
562
+ const newRows = rowsPerPageChange(rowsNumber, this.filteredRows.length);
563
+ if (newRows) {
564
+ this.currentRowsPerPage = newRows;
565
+ this.adjustPaginator();
566
+ }
567
+ }
568
+ adjustPaginator() {
569
+ const numberOfRows = this.rows.length;
570
+ // check if current page is valid
571
+ const numberOfPages = Math.ceil(numberOfRows / this.currentRowsPerPage);
572
+ if (this.currentPage > numberOfPages) {
573
+ // reset page
574
+ this.currentPage = 1;
575
+ }
576
+ }
577
+ // render methods
578
+ renderSectionAsCard(row) {
579
+ let skipPush = false;
580
+ const cardData = {
581
+ button: [],
582
+ cell: [],
583
+ columns: [],
584
+ image: [],
585
+ progressbar: [],
586
+ text: [],
587
+ };
588
+ for (let index = 0; index < this.data.columns.length; index++) {
589
+ const column = this.data.columns[index];
590
+ if (column.visible !== false) {
591
+ cardData.cell.push(row.cells[column.name]);
592
+ cardData.columns.push(column);
593
+ }
594
+ }
595
+ //First cycle sets specific binds between cardIDs and cells
596
+ for (const key in row.cells) {
597
+ if (row.cells.hasOwnProperty(key)) {
598
+ const cell = row.cells[key];
599
+ if (cell.cardID !== undefined && cell.obj) {
600
+ switch (cell.obj.p) {
601
+ case 'BTN':
602
+ do {
603
+ cardData.button.push({});
604
+ } while (cardData.button.length < cell.cardID);
605
+ cardData.button[cell.cardID] = {
606
+ label: cell.value,
607
+ };
608
+ break;
609
+ case 'IMG':
610
+ do {
611
+ cardData.image.push({});
612
+ } while (cardData.image.length < cell.cardID);
613
+ cardData.image[cell.cardID] = {
614
+ resource: cell.value,
615
+ };
616
+ break;
617
+ case 'PGB':
618
+ do {
619
+ cardData.progressbar.push({});
620
+ } while (cardData.progressbar.length < cell.cardID);
621
+ cardData.progressbar[cell.cardID] = {
622
+ value: cell.value,
623
+ };
624
+ break;
625
+ default:
626
+ do {
627
+ cardData.text.push('');
628
+ } while (cardData.text.length < cell.cardID);
629
+ cardData.text[cell.cardID] = cell.value;
630
+ break;
631
+ }
632
+ }
633
+ }
634
+ }
635
+ //Second cycle sets leftover binds automatically
636
+ for (const key in row.cells) {
637
+ if (row.cells.hasOwnProperty(key)) {
638
+ const cell = row.cells[key];
639
+ if (cell.cardID === undefined && cell.obj) {
640
+ skipPush = false;
641
+ switch (cell.obj.p) {
642
+ case 'BTN':
643
+ for (let index = 0; index < cardData.button.length; index++) {
644
+ //If there are empty elements, the first one will be used
645
+ if (!Object.keys(cardData.button[index]).length) {
646
+ cardData.button[index] = {
647
+ label: cell.value,
648
+ };
649
+ skipPush = true;
650
+ break;
651
+ }
652
+ }
653
+ //Otherwise a new element will be pushed
654
+ if (!skipPush) {
655
+ cardData.button.push({
656
+ label: cell.value,
657
+ });
658
+ }
659
+ break;
660
+ case 'IMG':
661
+ for (let index = 0; index < cardData.image.length; index++) {
662
+ //If there are empty elements, the first one will be used
663
+ if (!Object.keys(cardData.image[index]).length) {
664
+ cardData.image[index] = {
665
+ resource: cell.value,
666
+ };
667
+ skipPush = true;
668
+ break;
669
+ }
670
+ }
671
+ //Otherwise a new element will be pushed
672
+ if (!skipPush) {
673
+ cardData.image.push({
674
+ resource: cell.value,
675
+ });
676
+ }
677
+ break;
678
+ case 'PGB':
679
+ for (let index = 0; index < cardData.progressbar.length; index++) {
680
+ //If there are empty elements, the first one will be used
681
+ if (!Object.keys(cardData.progressbar[index])
682
+ .length) {
683
+ cardData.progressbar[index] = {
684
+ value: cell.value,
685
+ };
686
+ skipPush = true;
687
+ break;
688
+ }
689
+ }
690
+ //Otherwise a new element will be pushed
691
+ if (!skipPush) {
692
+ cardData.progressbar.push({
693
+ value: cell.value,
694
+ });
695
+ }
696
+ break;
697
+ default:
698
+ for (let index = 0; index < cardData.text.length; index++) {
699
+ //If there are empty elements, the first one will be used
700
+ if (cardData.text[index] === '') {
701
+ cardData.text[index] = cell.value;
702
+ skipPush = true;
703
+ break;
704
+ }
705
+ }
706
+ //Otherwise a new element will be pushed
707
+ if (!skipPush) {
708
+ cardData.text.push(cell.value);
709
+ }
710
+ break;
711
+ }
712
+ }
713
+ }
714
+ }
715
+ return h("kup-card", Object.assign({ data: cardData }, this.cardData));
716
+ }
717
+ renderRow(row) {
718
+ const visibleColumns = [...this.visibleColumns];
719
+ let boxContent = null;
720
+ // if layout in row, use that one
721
+ let rowLayout = row.layout;
722
+ if (!rowLayout) {
723
+ // otherwise, use 'default' layout
724
+ rowLayout = this.boxLayout;
725
+ }
726
+ let horizontal = false;
727
+ if (rowLayout) {
728
+ if (rowLayout.horizontal) {
729
+ horizontal = true;
730
+ }
731
+ const sections = rowLayout.sections;
732
+ let size = sections.length;
733
+ let cnt = 0;
734
+ if (size > 0) {
735
+ boxContent = [];
736
+ }
737
+ // create fake parent section
738
+ const parent = {
739
+ horizontal: horizontal,
740
+ };
741
+ while (size-- > 0) {
742
+ if (this.cardData !== null &&
743
+ this.cardData !== undefined &&
744
+ typeof this.cardData === 'object') {
745
+ boxContent.push(this.renderSectionAsCard(row));
746
+ }
747
+ else {
748
+ boxContent.push(this.renderSection(sections[cnt++], parent, row, visibleColumns));
749
+ }
750
+ }
751
+ }
752
+ var isSelected = false;
753
+ for (let select of this.selectedRows) {
754
+ if (select.id === row.id) {
755
+ isSelected = true;
756
+ }
757
+ }
758
+ let multiSel = null;
759
+ if (this.multiSelection) {
760
+ multiSel = (h("div", { class: "box-selection" }, h("kup-checkbox", { checked: isSelected })));
761
+ }
762
+ let rowObject = null;
763
+ if (this.enableRowActions && !this.swipeDisabled) {
764
+ const menuClass = {
765
+ 'row-action-menu': true,
766
+ open: row === this.rowActionMenuOpened,
767
+ };
768
+ let rowActionMenuContent = null;
769
+ if (row.actions) {
770
+ const actionItems = row.actions.map((item, index) => {
771
+ const iconClass = `icon ${item.icon}`;
772
+ return (h("li", { tabindex: "0", onClick: () => this.onRowActionClick(row, item, index) }, h("div", { class: iconClass }), h("div", { class: "text" }, item.text)));
773
+ });
774
+ rowActionMenuContent = h("ul", null, actionItems);
775
+ }
776
+ rowObject = (h("div", { class: "row-actions-wrapper" }, h("div", { class: "row-actions-toggler" }, h("svg", { version: "1.1", width: "24", height: "24", viewBox: "0 0 24 24", onClick: () => this.onRowAction(row) }, h("path", { d: "M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z" })), h("div", { class: menuClass }, rowActionMenuContent))));
777
+ }
778
+ let badges = null;
779
+ if (row.badgeData && row.badgeData.length > 0) {
780
+ badges = row.badgeData.map((badge) => (h("kup-badge", { text: badge.text, class: badge['className']
781
+ ? `centered ${badge['className']}`
782
+ : 'centered', imageData: badge.imageData })));
783
+ }
784
+ const boxClass = {
785
+ box: true,
786
+ draggable: this.dragEnabled,
787
+ selected: this.showSelection && isSelected,
788
+ column: !horizontal,
789
+ };
790
+ const rowStyle = row.style || {};
791
+ return (h("div", { class: "box-wrapper", style: rowStyle, ref: (el) => __classPrivateFieldGet(this, _KupBox_rowsRefs, "f").push(el) }, h("div", { class: boxClass, onClick: (e) => this.onBoxClick(e, row), ref: (el) => this.rowsRefs.push(el) }, multiSel, boxContent, badges), rowObject));
792
+ }
793
+ renderSection(section, parent, row, visibleColumns) {
794
+ let sectionContent = null;
795
+ if (section.sections && section.sections.length > 0) {
796
+ // rendering child
797
+ const sections = section.sections;
798
+ let size = sections.length;
799
+ let cnt = 0;
800
+ if (size > 0) {
801
+ sectionContent = [];
802
+ }
803
+ while (size-- > 0) {
804
+ sectionContent.push(this.renderSection(sections[cnt++], section, row, visibleColumns));
805
+ }
806
+ }
807
+ else if (section.content) {
808
+ // rendering box objects
809
+ const content = section.content;
810
+ let size = content.length;
811
+ let cnt = 0;
812
+ if (size > 0) {
813
+ sectionContent = [];
814
+ }
815
+ while (size-- > 0) {
816
+ sectionContent.push(this.renderBoxObject({
817
+ boxObject: content[cnt++],
818
+ row,
819
+ visibleColumns,
820
+ }, true));
821
+ }
822
+ }
823
+ else if (visibleColumns.length > 0) {
824
+ const column = visibleColumns[0];
825
+ sectionContent = this.renderBoxObject({
826
+ boxObject: { column: column.name },
827
+ row,
828
+ visibleColumns,
829
+ });
830
+ }
831
+ const sectionExpanded = this.isSectionExpanded(row, section);
832
+ const isGrid = !!section.columns;
833
+ const sectionClass = {
834
+ 'box-section': true,
835
+ open: sectionExpanded,
836
+ column: !isGrid && !section.horizontal,
837
+ grid: isGrid,
838
+ titled: !!section.title,
839
+ 'last-child': !section.sections || section.sections.length === 0,
840
+ };
841
+ const sectionStyle = section.style || {};
842
+ if (section.dim && parent) {
843
+ sectionStyle.flex = `0 0 ${section.dim}`;
844
+ sectionStyle.overflow = 'hidden';
845
+ if (parent.horizontal) {
846
+ sectionStyle.maxWidth = section.dim;
847
+ }
848
+ else {
849
+ sectionStyle.maxHeight = section.dim;
850
+ }
851
+ }
852
+ if (isGrid) {
853
+ sectionStyle['grid-template-columns'] = `repeat(${section.columns}, 1fr)`;
854
+ }
855
+ let sectionContainer = null;
856
+ if (section.collapsible) {
857
+ sectionClass['collapse-section'] = true;
858
+ const contentClass = {
859
+ content: true,
860
+ };
861
+ // TODO I18N
862
+ let headerTitle = '';
863
+ if (section.title) {
864
+ headerTitle = section.title;
865
+ }
866
+ else if (sectionExpanded) {
867
+ headerTitle = this.kupManager.language.translate(KupLanguageGeneric.COLLAPSE);
868
+ }
869
+ else {
870
+ headerTitle = this.kupManager.language.translate(KupLanguageGeneric.EXPAND);
871
+ }
872
+ sectionContainer = (h("div", { class: sectionClass, style: sectionStyle }, h("div", { class: contentClass }, sectionContent), h("div", { class: "header", role: "button", onClick: (e) => {
873
+ e.stopPropagation();
874
+ this.toggleSectionExpand(row, section);
875
+ } }, h("div", { class: "header-content" }, h("span", null, headerTitle), h(FImage, { resource: `${KupThemeIconValues.DROPDOWN}`, sizeX: "1.25em", sizeY: "1.25em", wrapperClass: sectionExpanded ? 'toggled' : '' })))));
876
+ }
877
+ else {
878
+ const title = section.title ? h("h3", null, section.title) : null;
879
+ sectionContainer = (h("div", { class: sectionClass, style: sectionStyle }, title, sectionContent));
880
+ }
881
+ return sectionContainer;
882
+ }
883
+ renderBoxObject({ boxObject, row, visibleColumns, }, fromSection) {
884
+ const classObj = {
885
+ 'box-object': true,
886
+ };
887
+ const boStyle = {};
888
+ let column = null;
889
+ let index = -1;
890
+ for (let i = 0; i < visibleColumns.length; i++) {
891
+ const c = visibleColumns[i];
892
+ if (c.name === boxObject.column) {
893
+ index = i;
894
+ break;
895
+ }
896
+ }
897
+ if (index >= 0) {
898
+ column = visibleColumns[index];
899
+ visibleColumns.splice(index, 1);
900
+ }
901
+ else if (fromSection) {
902
+ column = this.data.columns.find((x) => x.name === boxObject.column);
903
+ }
904
+ const cell = row.cells[boxObject.column];
905
+ let title = undefined;
906
+ if (cell && !this.kupManager.objects.isEmptyKupObj(cell.obj)) {
907
+ classObj['is-obj'] = true;
908
+ if (this.kupManager.debug.isDebug()) {
909
+ title =
910
+ cell.obj.t + '; ' + cell.obj.p + '; ' + cell.obj.k + ';';
911
+ }
912
+ }
913
+ const cellProps = {
914
+ cell: cell,
915
+ column: column,
916
+ component: this,
917
+ editable: this.editableData,
918
+ renderKup: true,
919
+ row: row,
920
+ setSizes: true,
921
+ shape: boxObject.shape,
922
+ };
923
+ return (h("div", { "data-cell": cell, "data-row": row, "data-column": boxObject.column, class: classObj, style: boStyle, title: title }, cell && column ? (h(FCell, Object.assign({}, cellProps))) : (h("span", null, boxObject.value))));
924
+ }
925
+ /**
926
+ * Prepares the kanban sections by sorting the boxlist's data.
927
+ * @returns {{jsx: VNode[], style: { [index: string]: string }}} jsx contains the virtual nodes of the Kanban sections, style contains the grid CSS settings.
928
+ */
929
+ kanbanMode() {
930
+ // Testing whether there are columns to group by
931
+ if (!this.kanban.columns || this.kanban.columns.length === 0) {
932
+ this.kupManager.debug.logMessage(this, 'No columns to group by detected.', KupDebugCategory.ERROR);
933
+ return {
934
+ jsx: (h("div", { id: "empty-data-message", class: "box-wrapper" }, h("div", { ref: (el) => this.rowsRefs.push(el) }), this.kupManager.language.translate(KupLanguageGeneric.EMPTY_DATA))),
935
+ style: { 'grid-template-columns': `repeat(1, 1fr)` },
936
+ };
937
+ }
938
+ const kanbanSections = [];
939
+ // Creating empty sections from prop-defined labels
940
+ if (this.kanban.labels) {
941
+ for (let index = 0; index < this.kanban.labels.length; index++) {
942
+ const key = this.kanban.labels[index];
943
+ kanbanSections.push({ labels: key, nodes: [] });
944
+ }
945
+ }
946
+ // Browsing all rows
947
+ for (let index = 0; index < this.rows.length; index++) {
948
+ let key = [];
949
+ // Creating the key for the current row
950
+ for (let j = 0; j < this.kanban.columns.length; j++) {
951
+ try {
952
+ key.push(this.rows[index].cells[this.kanban.columns[j]].value);
953
+ }
954
+ catch (error) {
955
+ this.kupManager.debug.logMessage(this, error, KupDebugCategory.WARNING);
956
+ }
957
+ }
958
+ const check = {
959
+ found: false,
960
+ index: null,
961
+ };
962
+ // Browsing key array to search whether the current key exists or not
963
+ for (let j = 0; j < kanbanSections.length; j++) {
964
+ let sortingKey = kanbanSections[j].labels;
965
+ let found = true;
966
+ for (let i = 0; i < sortingKey.length; i++) {
967
+ if (key[i] !== sortingKey[i]) {
968
+ found = false;
969
+ break;
970
+ }
971
+ }
972
+ if (found) {
973
+ check.found = true;
974
+ check.index = j;
975
+ break;
976
+ }
977
+ }
978
+ // If current key exists, box will be pushed into the existing array of virtual nodes
979
+ if (check.found) {
980
+ kanbanSections[check.index].nodes.push(this.renderRow(this.rows[index]));
981
+ }
982
+ else {
983
+ // Otherwise, a new section will be defined starting with just the current virtal node
984
+ kanbanSections.push({
985
+ labels: key,
986
+ nodes: [this.renderRow(this.rows[index])],
987
+ });
988
+ }
989
+ }
990
+ // Once the arrays are set, they need to be emptied into columns
991
+ const kanbanJSX = [];
992
+ for (let index = 0; index < kanbanSections.length; index++) {
993
+ const sortingKey = kanbanSections[index].labels;
994
+ const props = {
995
+ data: [],
996
+ };
997
+ for (let index = 0; index < sortingKey.length; index++) {
998
+ props.data.push({
999
+ value: sortingKey[index],
1000
+ id: sortingKey[index],
1001
+ });
1002
+ }
1003
+ kanbanJSX.push(h("div", { class: "kanban-section" }, h(FChip, Object.assign({}, props)), kanbanSections[index].nodes));
1004
+ }
1005
+ return {
1006
+ jsx: kanbanJSX,
1007
+ style: {
1008
+ 'grid-template-columns': this.kanban.isStacked
1009
+ ? 'repeat(1fr)'
1010
+ : this.kanban.size
1011
+ ? `repeat(${Object.keys(kanbanSections).length}, ${this.kanban.size})`
1012
+ : `repeat(${Object.keys(kanbanSections).length}, 1fr)`,
1013
+ },
1014
+ };
1015
+ }
1016
+ didLoadInteractables() {
1017
+ this.interactableTouch.push(this.boxContainer);
1018
+ const tapCb = (e) => {
1019
+ if (this.hold) {
1020
+ this.hold = false;
1021
+ return;
1022
+ }
1023
+ switch (e.button) {
1024
+ case 2:
1025
+ this.kupBoxContextMenu.emit({
1026
+ comp: this,
1027
+ id: this.rootElement.id,
1028
+ details: this.contextMenuHandler(e),
1029
+ });
1030
+ break;
1031
+ }
1032
+ };
1033
+ const holdCb = (e) => {
1034
+ if (e.pointerType === 'pen' || e.pointerType === 'touch') {
1035
+ this.hold = true;
1036
+ this.kupBoxContextMenu.emit({
1037
+ comp: this,
1038
+ id: this.rootElement.id,
1039
+ details: this.contextMenuHandler(e),
1040
+ });
1041
+ }
1042
+ };
1043
+ this.kupManager.interact.on(this.boxContainer, KupPointerEventTypes.TAP, tapCb);
1044
+ this.kupManager.interact.on(this.boxContainer, KupPointerEventTypes.HOLD, holdCb);
1045
+ }
1046
+ didRenderInteractables() {
1047
+ if (this.dragEnabled) {
1048
+ for (let index = 0; index < this.rowsRefs.length; index++) {
1049
+ const row = this.rowsRefs[index];
1050
+ const dataCb = () => {
1051
+ const cellEl = this.rootElement.shadowRoot.querySelector('.box-object:hover');
1052
+ return {
1053
+ cell: cellEl['data-cell'],
1054
+ column: getColumnByName(this.visibleColumns, cellEl.dataset.column),
1055
+ id: this.rootElement.id,
1056
+ multiple: this.multiSelection,
1057
+ row: cellEl['data-row'],
1058
+ selectedRows: this.selectedRows,
1059
+ };
1060
+ };
1061
+ if (row && !this.interactableDrag.includes(row)) {
1062
+ this.interactableDrag.push(row);
1063
+ this.kupManager.interact.draggable(row, {
1064
+ allowFrom: '.box-object',
1065
+ cursorChecker() {
1066
+ return null;
1067
+ },
1068
+ }, {
1069
+ callback: dataCb,
1070
+ }, KupDragEffect.BADGE);
1071
+ }
1072
+ }
1073
+ }
1074
+ if (this.dropEnabled) {
1075
+ const dataCb = () => {
1076
+ const receivingDetails = this.getEventDetails(this.rootElement.shadowRoot.querySelector('.box:hover'));
1077
+ return {
1078
+ cell: receivingDetails.cell,
1079
+ column: receivingDetails.column,
1080
+ id: this.rootElement.id,
1081
+ row: receivingDetails.row,
1082
+ };
1083
+ };
1084
+ if (!this.interactableDrop.includes(this.sectionRef)) {
1085
+ this.interactableDrop.push(this.sectionRef);
1086
+ this.kupManager.interact.dropzone(this.sectionRef, {
1087
+ accept: `[${kupDraggableCellAttr}]`,
1088
+ }, {
1089
+ dispatcher: this.rootElement,
1090
+ type: KupDropEventTypes.BOX,
1091
+ });
1092
+ }
1093
+ for (let index = 0; index < this.rowsRefs.length; index++) {
1094
+ const row = this.rowsRefs[index];
1095
+ if (row && !this.interactableDrop.includes(row)) {
1096
+ this.interactableDrop.push(row);
1097
+ this.kupManager.interact.dropzone(row, {
1098
+ accept: `[${kupDraggableCellAttr}]`,
1099
+ }, {
1100
+ callback: dataCb,
1101
+ dispatcher: this.rootElement,
1102
+ type: KupDropEventTypes.BOX,
1103
+ });
1104
+ }
1105
+ }
1106
+ }
1107
+ }
1108
+ /*-------------------------------------------------*/
1109
+ /* L i f e c y c l e H o o k s */
1110
+ /*-------------------------------------------------*/
1111
+ componentWillLoad() {
1112
+ this.kupManager.debug.logLoad(this, false);
1113
+ if (this.rowsPerPage) {
1114
+ this.currentRowsPerPage = this.rowsPerPage;
1115
+ }
1116
+ else if (this.pageSize) {
1117
+ this.currentRowsPerPage = this.pageSize;
1118
+ }
1119
+ if (this.data &&
1120
+ this.data.rows &&
1121
+ this.currentRowsPerPage > this.data.rows.length) {
1122
+ this.currentRowsPerPage = this.data.rows.length;
1123
+ }
1124
+ this.kupManager.language.register(this);
1125
+ this.kupManager.theme.register(this);
1126
+ this.onDataChanged();
1127
+ this.adjustPaginator();
1128
+ if (document.querySelector('.header')) {
1129
+ __classPrivateFieldSet(this, _KupBox_navBarHeight, document.querySelector('.header').clientHeight, "f");
1130
+ }
1131
+ else {
1132
+ __classPrivateFieldSet(this, _KupBox_navBarHeight, 0, "f");
1133
+ }
1134
+ if (document.querySelector('.topbar')) {
1135
+ __classPrivateFieldSet(this, _KupBox_navBarHeight, __classPrivateFieldGet(this, _KupBox_navBarHeight, "f") + document.querySelector('.topbar').clientHeight, "f");
1136
+ }
1137
+ __classPrivateFieldGet(this, _KupBox_instances, "m", _KupBox_setObserver).call(this);
1138
+ }
1139
+ componentDidLoad() {
1140
+ this.handleAutomaticBoxSelection();
1141
+ // When component is created, then the listener is set. @See clickFunction for more details
1142
+ document.addEventListener('click', this.clickFunction.bind(this));
1143
+ this.currentPage = this.pageSelected;
1144
+ if (this.multiSelection && this.selectedRowsState) {
1145
+ this.selectedRows = [];
1146
+ let selectedIds = this.selectedRowsState.split(';');
1147
+ this.selectedRows = this.data.rows.filter((r) => {
1148
+ return selectedIds.indexOf(r.id) >= 0;
1149
+ });
1150
+ }
1151
+ this.didLoadInteractables();
1152
+ this.kupDidLoad.emit({ comp: this, id: this.rootElement.id });
1153
+ this.kupManager.debug.logLoad(this, true);
1154
+ }
1155
+ componentWillRender() {
1156
+ this.kupManager.debug.logRender(this, false);
1157
+ }
1158
+ componentDidRender() {
1159
+ const root = this.rootElement.shadowRoot;
1160
+ if (root) {
1161
+ const fs = root.querySelectorAll('.f-text-field');
1162
+ for (let index = 0; index < fs.length; index++) {
1163
+ FTextFieldMDC(fs[index]);
1164
+ }
1165
+ }
1166
+ this.checkScrollOnHover();
1167
+ this.persistState();
1168
+ this.didRenderInteractables();
1169
+ __classPrivateFieldGet(this, _KupBox_instances, "m", _KupBox_didRenderObservers).call(this);
1170
+ this.kupManager.debug.logRender(this, true);
1171
+ }
1172
+ render() {
1173
+ const isKanban = !!(typeof this.kanban === 'object' && this.kanban !== null);
1174
+ let sortPanel = null;
1175
+ if (this.sortEnabled) {
1176
+ // creating items
1177
+ const visibleColumnsItems = this.visibleColumns.map((column) => {
1178
+ const item = {
1179
+ value: column.title,
1180
+ id: column.name,
1181
+ selected: column.name === this.sortBy,
1182
+ };
1183
+ return item;
1184
+ });
1185
+ const items = [{ value: '', id: '' }, ...visibleColumnsItems];
1186
+ let textfieldData = {
1187
+ label: this.kupManager.language.translate(KupLanguageGeneric.SORT_BY),
1188
+ trailingIcon: true,
1189
+ };
1190
+ let listData = {
1191
+ data: items,
1192
+ selectable: true,
1193
+ };
1194
+ let data = {
1195
+ 'kup-text-field': textfieldData,
1196
+ 'kup-list': listData,
1197
+ };
1198
+ sortPanel = (h("div", { id: "sort-panel" }, h("kup-combobox", { data: data, initialValue: this.sortBy, "onkup-combobox-itemclick": (e) => this.onSortChange(e) })));
1199
+ }
1200
+ let filterPanel = null;
1201
+ if (this.globalFilter) {
1202
+ filterPanel = (h("div", { id: "global-filter" }, h("kup-text-field", { fullWidth: true, label: this.kupManager.language.translate(KupLanguageSearch.SEARCH), icon: KupThemeIconValues.SEARCH, initialValue: this.globalFilterValue, "onkup-textfield-input": (event) => {
1203
+ window.clearTimeout(this.globalFilterTimeout);
1204
+ this.globalFilterTimeout = window.setTimeout(() => this.onGlobalFilterChange(event), 600);
1205
+ } })));
1206
+ }
1207
+ let paginator = null;
1208
+ if (this.pagination) {
1209
+ paginator = (h(FPaginator, { id: top ? 'top-paginator' : 'bottom-paginator', currentPage: this.currentPage, max: this.filteredRows.length, mode: FPaginatorMode.SIMPLE, perPage: this.currentRowsPerPage
1210
+ ? this.currentRowsPerPage
1211
+ : this.pageSize, onPageChange: (e) => this.handlePageChange(e.detail.value), onRowsChange: (e) => this.handleRowsPerPageChange(e.detail.value) }));
1212
+ }
1213
+ let boxContent = null;
1214
+ let containerStyle = {};
1215
+ if (this.rows.length === 0) {
1216
+ boxContent = (h("div", { id: "empty-data-message", class: "box-wrapper" }, h("div", { class: "box", ref: (el) => this.rowsRefs.push(el) }, this.kupManager.language.translate(KupLanguageGeneric.EMPTY_DATA))));
1217
+ containerStyle = { 'grid-template-columns': `repeat(1, 1fr)` };
1218
+ }
1219
+ else if (isKanban) {
1220
+ const kanban = this.kanbanMode();
1221
+ boxContent = kanban.jsx;
1222
+ containerStyle = kanban.style;
1223
+ }
1224
+ else {
1225
+ containerStyle = {
1226
+ 'grid-template-columns': `repeat(${this.columns}, 1fr)`,
1227
+ };
1228
+ const rows = this.rows;
1229
+ let size = rows.length;
1230
+ let cnt = 0;
1231
+ boxContent = [];
1232
+ while (size-- > 0) {
1233
+ boxContent.push(this.renderRow(rows[cnt++]));
1234
+ }
1235
+ }
1236
+ return (h(Host, null, h("style", null, this.kupManager.theme.setKupStyle(this.rootElement)), h("div", { id: componentWrapperId }, h("div", { class: 'box-component', ref: (el) => (this.sectionRef = el) }, sortPanel, filterPanel, paginator, h("div", { class: isKanban ? 'is-kanban' : '', id: 'box-container', style: containerStyle, onContextMenu: (e) => {
1237
+ e.preventDefault();
1238
+ }, ref: (el) => (this.boxContainer =
1239
+ el) }, boxContent)))));
1240
+ }
1241
+ disconnectedCallback() {
1242
+ this.kupManager.interact.unregister(this.interactableDrag.concat(this.interactableDrop));
1243
+ this.kupManager.language.unregister(this);
1244
+ this.kupManager.theme.unregister(this);
1245
+ if (this.scrollOnHover) {
1246
+ this.kupManager.scrollOnHover.unregister(this.boxContainer);
1247
+ }
1248
+ // When component is destroyed, then the listener is removed. @See clickFunction for more details
1249
+ document.removeEventListener('click', this.clickFunction.bind(this));
1250
+ this.kupDidUnload.emit({ comp: this, id: this.rootElement.id });
1251
+ }
1252
+ get rootElement() { return this; }
1253
+ static get watchers() { return {
1254
+ "pageSize": ["rowsPerPageHandler", "recalculateRows"],
1255
+ "globalFilterValue": ["recalculateRows"],
1256
+ "sortBy": ["recalculateRows"],
1257
+ "pagination": ["recalculateRows"],
1258
+ "currentPage": ["recalculateRows"],
1259
+ "currentRowsPerPage": ["recalculateRows"],
1260
+ "data": ["onDataChanged"],
1261
+ "layout": ["onLayoutChanged"],
1262
+ "selectBox": ["onSelectBoxChanged"]
1263
+ }; }
1264
+ static get style() { return kupBoxCss; }
1265
+ }, [1, "kup-box", {
1266
+ "cardData": [16],
1267
+ "columns": [2],
1268
+ "customStyle": [1, "custom-style"],
1269
+ "data": [16],
1270
+ "dragEnabled": [4, "drag-enabled"],
1271
+ "dropEnabled": [4, "drop-enabled"],
1272
+ "dropOnSection": [4, "drop-on-section"],
1273
+ "editableData": [4, "editable-data"],
1274
+ "enableRowActions": [4, "enable-row-actions"],
1275
+ "globalFilter": [4, "global-filter"],
1276
+ "globalFilterValue": [1537, "global-filter-value"],
1277
+ "kanban": [16],
1278
+ "layout": [16],
1279
+ "lazyLoadRows": [4, "lazy-load-rows"],
1280
+ "multiSelection": [4, "multi-selection"],
1281
+ "pageSelected": [2, "page-selected"],
1282
+ "pageSize": [2, "page-size"],
1283
+ "pagination": [4],
1284
+ "rowsPerPage": [2, "rows-per-page"],
1285
+ "scrollOnHover": [4, "scroll-on-hover"],
1286
+ "selectBox": [2, "select-box"],
1287
+ "selectedRowsState": [1025, "selected-rows-state"],
1288
+ "showSelection": [4, "show-selection"],
1289
+ "sortBy": [1025, "sort-by"],
1290
+ "sortEnabled": [4, "sort-enabled"],
1291
+ "stateId": [1, "state-id"],
1292
+ "store": [16],
1293
+ "swipeDisabled": [4, "swipe-disabled"],
1294
+ "collapsedSection": [32],
1295
+ "selectedRows": [32],
1296
+ "rowActionMenuOpened": [32],
1297
+ "currentPage": [32],
1298
+ "currentRowsPerPage": [32],
1299
+ "getProps": [64],
1300
+ "loadRowActions": [64],
1301
+ "refresh": [64],
1302
+ "setProps": [64]
1303
+ }]);
1304
+ _KupBox_intObserver = new WeakMap(), _KupBox_rowsRefs = new WeakMap(), _KupBox_navBarHeight = new WeakMap(), _KupBox_instances = new WeakSet(), _KupBox_didRenderObservers = function _KupBox_didRenderObservers() {
1305
+ if (this.lazyLoadRows &&
1306
+ this.currentRowsPerPage < this.data.rows.length) {
1307
+ __classPrivateFieldGet(this, _KupBox_intObserver, "f").observe(__classPrivateFieldGet(this, _KupBox_rowsRefs, "f")[__classPrivateFieldGet(this, _KupBox_rowsRefs, "f").length - 1]);
1308
+ }
1309
+ }, _KupBox_setObserver = function _KupBox_setObserver() {
1310
+ const callback = (entries) => {
1311
+ entries.forEach((entry) => {
1312
+ if (entry.isIntersecting) {
1313
+ this.kupManager.debug.logMessage(this, 'Last row entering the viewport, loading more elements.');
1314
+ const delta = this.data.rows.length - this.currentRowsPerPage;
1315
+ if (delta < 10) {
1316
+ this.currentRowsPerPage += delta;
1317
+ }
1318
+ else {
1319
+ this.currentRowsPerPage += 10;
1320
+ }
1321
+ entry.target.classList.remove('last-row');
1322
+ __classPrivateFieldGet(this, _KupBox_intObserver, "f").unobserve(entry.target);
1323
+ }
1324
+ });
1325
+ };
1326
+ const options = {
1327
+ threshold: 0,
1328
+ rootMargin: '-' + __classPrivateFieldGet(this, _KupBox_navBarHeight, "f") + 'px 0px 0px 0px',
1329
+ };
1330
+ __classPrivateFieldSet(this, _KupBox_intObserver, new IntersectionObserver(callback, options), "f");
1331
+ };
1332
+ function defineCustomElement() {
1333
+ if (typeof customElements === "undefined") {
1334
+ return;
1335
+ }
1336
+ const components = ["kup-box", "kup-autocomplete", "kup-badge", "kup-button", "kup-button-list", "kup-card", "kup-chart", "kup-checkbox", "kup-chip", "kup-color-picker", "kup-combobox", "kup-data-table", "kup-date-picker", "kup-dialog", "kup-dropdown-button", "kup-form", "kup-gauge", "kup-image", "kup-list", "kup-progress-bar", "kup-radio", "kup-rating", "kup-spinner", "kup-switch", "kup-tab-bar", "kup-text-field", "kup-time-picker", "kup-tree"];
1337
+ components.forEach(tagName => { switch (tagName) {
1338
+ case "kup-box":
1339
+ if (!customElements.get(tagName)) {
1340
+ customElements.define(tagName, KupBox);
1341
+ }
1342
+ break;
1343
+ case "kup-autocomplete":
1344
+ if (!customElements.get(tagName)) {
1345
+ defineCustomElement$r();
1346
+ }
1347
+ break;
1348
+ case "kup-badge":
1349
+ if (!customElements.get(tagName)) {
1350
+ defineCustomElement$q();
1351
+ }
1352
+ break;
1353
+ case "kup-button":
1354
+ if (!customElements.get(tagName)) {
1355
+ defineCustomElement$p();
1356
+ }
1357
+ break;
1358
+ case "kup-button-list":
1359
+ if (!customElements.get(tagName)) {
1360
+ defineCustomElement$o();
1361
+ }
1362
+ break;
1363
+ case "kup-card":
1364
+ if (!customElements.get(tagName)) {
1365
+ defineCustomElement$n();
1366
+ }
1367
+ break;
1368
+ case "kup-chart":
1369
+ if (!customElements.get(tagName)) {
1370
+ defineCustomElement$m();
1371
+ }
1372
+ break;
1373
+ case "kup-checkbox":
1374
+ if (!customElements.get(tagName)) {
1375
+ defineCustomElement$l();
1376
+ }
1377
+ break;
1378
+ case "kup-chip":
1379
+ if (!customElements.get(tagName)) {
1380
+ defineCustomElement$k();
1381
+ }
1382
+ break;
1383
+ case "kup-color-picker":
1384
+ if (!customElements.get(tagName)) {
1385
+ defineCustomElement$j();
1386
+ }
1387
+ break;
1388
+ case "kup-combobox":
1389
+ if (!customElements.get(tagName)) {
1390
+ defineCustomElement$i();
1391
+ }
1392
+ break;
1393
+ case "kup-data-table":
1394
+ if (!customElements.get(tagName)) {
1395
+ defineCustomElement$h();
1396
+ }
1397
+ break;
1398
+ case "kup-date-picker":
1399
+ if (!customElements.get(tagName)) {
1400
+ defineCustomElement$g();
1401
+ }
1402
+ break;
1403
+ case "kup-dialog":
1404
+ if (!customElements.get(tagName)) {
1405
+ defineCustomElement$f();
1406
+ }
1407
+ break;
1408
+ case "kup-dropdown-button":
1409
+ if (!customElements.get(tagName)) {
1410
+ defineCustomElement$e();
1411
+ }
1412
+ break;
1413
+ case "kup-form":
1414
+ if (!customElements.get(tagName)) {
1415
+ defineCustomElement$d();
1416
+ }
1417
+ break;
1418
+ case "kup-gauge":
1419
+ if (!customElements.get(tagName)) {
1420
+ defineCustomElement$c();
1421
+ }
1422
+ break;
1423
+ case "kup-image":
1424
+ if (!customElements.get(tagName)) {
1425
+ defineCustomElement$b();
1426
+ }
1427
+ break;
1428
+ case "kup-list":
1429
+ if (!customElements.get(tagName)) {
1430
+ defineCustomElement$a();
1431
+ }
1432
+ break;
1433
+ case "kup-progress-bar":
1434
+ if (!customElements.get(tagName)) {
1435
+ defineCustomElement$9();
1436
+ }
1437
+ break;
1438
+ case "kup-radio":
1439
+ if (!customElements.get(tagName)) {
1440
+ defineCustomElement$8();
1441
+ }
1442
+ break;
1443
+ case "kup-rating":
1444
+ if (!customElements.get(tagName)) {
1445
+ defineCustomElement$7();
1446
+ }
1447
+ break;
1448
+ case "kup-spinner":
1449
+ if (!customElements.get(tagName)) {
1450
+ defineCustomElement$6();
1451
+ }
1452
+ break;
1453
+ case "kup-switch":
1454
+ if (!customElements.get(tagName)) {
1455
+ defineCustomElement$5();
1456
+ }
1457
+ break;
1458
+ case "kup-tab-bar":
1459
+ if (!customElements.get(tagName)) {
1460
+ defineCustomElement$4();
1461
+ }
1462
+ break;
1463
+ case "kup-text-field":
1464
+ if (!customElements.get(tagName)) {
1465
+ defineCustomElement$3();
1466
+ }
1467
+ break;
1468
+ case "kup-time-picker":
1469
+ if (!customElements.get(tagName)) {
1470
+ defineCustomElement$2();
1471
+ }
1472
+ break;
1473
+ case "kup-tree":
1474
+ if (!customElements.get(tagName)) {
1475
+ defineCustomElement$1();
1476
+ }
1477
+ break;
1478
+ } });
1415
1479
  }
1416
1480
 
1417
1481
  export { KupBox as K, defineCustomElement as d };